From 504e139bf2ebfb497a93ff613af8b53111f1fc70 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Mon, 11 Aug 2014 23:52:46 +0200 Subject: [PATCH] adapted the changes on the seconds branch to the refactored code --- index.html | 1 + js/uhr-de_CH-seconds.js | 247 ++++++++++++++++++++++++++++++++++++++++ js/uhr.js | 58 ++++++---- manifest.appcache | 3 +- showcase/index.html | 8 +- uhr-de_CH-seconds.js | 246 --------------------------------------- 6 files changed, 290 insertions(+), 273 deletions(-) create mode 100644 js/uhr-de_CH-seconds.js delete mode 100644 uhr-de_CH-seconds.js diff --git a/index.html b/index.html index 08049c1..320b743 100644 --- a/index.html +++ b/index.html @@ -37,6 +37,7 @@ along with this program. If not, see . + diff --git a/js/uhr-de_CH-seconds.js b/js/uhr-de_CH-seconds.js new file mode 100644 index 0000000..8732d2f --- /dev/null +++ b/js/uhr-de_CH-seconds.js @@ -0,0 +1,247 @@ +/* + * Copyright (C) Schweizerische Bundesbahnen SBB, 2014. + */ + +/* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ +(function () { + 'use strict'; + var vorne0 = { + 3: [2, 3, 4], + 4: [1, 5], + 5: [1, 4, 5], + 6: [1, 3, 5], + 7: [1, 2, 5], + 8: [1, 5], + 9: [2, 3, 4] + }; + var hinten0 = { + 3: [8, 9, 10], + 4: [7, 11], + 5: [7, 10, 11], + 6: [7, 9, 11], + 7: [7, 8, 11], + 8: [7, 11], + 9: [8, 9, 10] + }; + var vorne1 = { + 3: [3], + 4: [2, 3], + 5: [3], + 6: [3], + 7: [3], + 8: [3], + 9: [2, 3, 4] + }; + var hinten1 = { + 3: [9], + 4: [8, 9], + 5: [9], + 6: [9], + 7: [9], + 8: [9], + 9: [8, 9, 10] + }; + var vorne2 = { + 3: [2, 3, 4], + 4: [1, 5], + 5: [5], + 6: [4], + 7: [3], + 8: [2], + 9: [1, 2, 3, 4, 5] + }; + var hinten2 = { + 3: [8, 9, 10], + 4: [7, 11], + 5: [11], + 6: [10], + 7: [9], + 8: [8], + 9: [7, 8, 9, 10, 11] + }; + var vorne3 = { + 3: [1, 2, 3, 4, 5], + 4: [4], + 5: [3], + 6: [4], + 7: [5], + 8: [1, 5], + 9: [2, 3, 4] + }; + var hinten3 = { + 3: [7, 8, 9, 10, 11], + 4: [10], + 5: [9], + 6: [10], + 7: [11], + 8: [7, 11], + 9: [8, 9, 10] + }; + var vorne4 = { + 3: [4], + 4: [3, 4], + 5: [2, 4], + 6: [1, 4], + 7: [1, 2, 3, 4, 5], + 8: [4], + 9: [4] + }; + var hinten4 = { + 3: [10], + 4: [9, 10], + 5: [8, 10], + 6: [7, 10], + 7: [7, 8, 9, 10, 11], + 8: [10], + 9: [10] + }; + var vorne5 = { + 3: [1, 2, 3, 4, 5], + 4: [1], + 5: [1, 2, 3, 4], + 6: [5], + 7: [5], + 8: [1, 5], + 9: [2, 3, 4] + }; + var hinten5 = { + 3: [7, 8, 9, 10, 11], + 4: [7], + 5: [7, 8, 9, 10], + 6: [11], + 7: [11], + 8: [7, 11], + 9: [8, 9, 10] + }; + var hinten6 = { + 3: [9, 10], + 4: [8], + 5: [7], + 6: [7, 8, 9, 10], + 7: [7, 11], + 8: [7, 11], + 9: [8, 9, 10] + }; + var hinten7 = { + 3: [7, 8, 9, 10, 11], + 4: [11], + 5: [10], + 6: [9], + 7: [8], + 8: [8], + 9: [8] + }; + var hinten8 = { + 3: [8, 9, 10], + 4: [7, 11], + 5: [7, 11], + 6: [8, 9, 10], + 7: [7, 11], + 8: [7, 11], + 9: [8, 9, 10] + }; + var hinten9 = { + 3: [8, 9, 10], + 4: [7, 11], + 5: [7, 11], + 6: [8, 9, 10, 11], + 7: [11], + 8: [10], + 9: [8, 9] + }; + var layout = { + "version": 2, + "language": 'Bärndütschi Sekunde', + "letters": [ + 'ESKISCHAFÜF', + 'VIERTUBFZÄÄ', + 'ZWÄNZGSIVOR', + 'ABOHAUBIEGE', + 'EISZWÖISDRÜ', + 'VIERIFÜFIQT', + 'SÄCHSISIBNI', + 'ACHTINÜNIEL', + 'ZÄNIERBEUFI', + 'ZWÖUFINAUHR' + ], + "seconds": { + "0": [vorne0, hinten0], + "1": [vorne0, hinten1], + "2": [vorne0, hinten2], + "3": [vorne0, hinten3], + "4": [vorne0, hinten4], + "5": [vorne0, hinten5], + "6": [vorne0, hinten6], + "7": [vorne0, hinten7], + "8": [vorne0, hinten8], + "9": [vorne0, hinten9], + "10": [vorne1, hinten0], + "11": [vorne1, hinten1], + "12": [vorne1, hinten2], + "13": [vorne1, hinten3], + "14": [vorne1, hinten4], + "15": [vorne1, hinten5], + "16": [vorne1, hinten6], + "17": [vorne1, hinten7], + "18": [vorne1, hinten8], + "19": [vorne1, hinten9], + "20": [vorne2, hinten0], + "21": [vorne2, hinten1], + "22": [vorne2, hinten2], + "23": [vorne2, hinten3], + "24": [vorne2, hinten4], + "25": [vorne2, hinten5], + "26": [vorne2, hinten6], + "27": [vorne2, hinten7], + "28": [vorne2, hinten8], + "29": [vorne2, hinten9], + "30": [vorne3, hinten0], + "31": [vorne3, hinten1], + "32": [vorne3, hinten2], + "33": [vorne3, hinten3], + "34": [vorne3, hinten4], + "35": [vorne3, hinten5], + "36": [vorne3, hinten6], + "37": [vorne3, hinten7], + "38": [vorne3, hinten8], + "39": [vorne3, hinten9], + "40": [vorne4, hinten0], + "41": [vorne4, hinten1], + "42": [vorne4, hinten2], + "43": [vorne4, hinten3], + "44": [vorne4, hinten4], + "45": [vorne4, hinten5], + "46": [vorne4, hinten6], + "47": [vorne4, hinten7], + "48": [vorne4, hinten8], + "49": [vorne4, hinten9], + "50": [vorne5, hinten0], + "51": [vorne5, hinten1], + "52": [vorne5, hinten2], + "53": [vorne5, hinten3], + "54": [vorne5, hinten4], + "55": [vorne5, hinten5], + "56": [vorne5, hinten6], + "57": [vorne5, hinten7], + "58": [vorne5, hinten8], + "59": [vorne5, hinten9] + }, + "getDotMinute": function (time) { + return 0; + } + }; + $.fritteli.uhr.register('de_CH_seconds', layout); +}()); diff --git a/js/uhr.js b/js/uhr.js index 4e59b06..11bcc62 100644 --- a/js/uhr.js +++ b/js/uhr.js @@ -116,7 +116,6 @@ e.height(realWidth); e.css('font-size', (realWidth / 40) + 'px'); }; - // private interface methods var create = function create() { this.id = uhrGlobals.id++; @@ -277,10 +276,12 @@ var update = function update() { if (isOn.bind(this)()) { var time = this.options.time; - if (time.getMinutes() === this.currentMinute) { - return; + if (!language.bind(this)().hasOwnProperty('seconds')) { + if (time.getMinutes() === this.currentMinute) { + return; + } + this.currentMinute = time.getMinutes(); } - this.currentMinute = time.getMinutes(); show.bind(this)(time); } else { clear.bind(this)(); @@ -288,6 +289,7 @@ } }; var show = function show(time) { + var second = getSecond.bind(this)(time); var dotMinute = getDotMinute.bind(this)(time); var hour = getHour.bind(this)(time); var coarseMinute = getCoarseMinute.bind(this)(time); @@ -296,6 +298,7 @@ for (var i = 1; i <= dotMinute; i++) { highlight.bind(this)('dot' + i); } + highlight.bind(this)('second' + second); highlight.bind(this)('minute' + coarseMinute); highlight.bind(this)('hour' + hour); }; @@ -305,6 +308,12 @@ var clear = function clear() { this.element.find('.item').removeClass('active'); }; + var getSecond = function getSecond(date) { + if (typeof language.bind(this)().getSeconds === 'function') { + return language.bind(this)().getSeconds(date); + } + return date.getSeconds(); + }; var getDotMinute = function getDotMinute(date) { if (typeof language.bind(this)().getDotMinute === 'function') { return language.bind(this)().getDotMinute(date); @@ -401,32 +410,38 @@ function UhrRendererV2Delegate(layout) { function parseArrayOrObject(letters, styleClass, input) { - if (Array.isArray(input)) { - input.forEach(function (item) { - parseObject(letters, styleClass, item); - }); - } else { - parseObject(letters, styleClass, input); + if (typeof input !== 'undefined' && input !== null) { + if (Array.isArray(input)) { + input.forEach(function (item) { + parseObject(letters, styleClass, item); + }); + } else { + parseObject(letters, styleClass, input); + } } } function parseObject(letters, styleClass, object) { - Object.keys(object).forEach(function (y) { - var highlightLetters = object[y]; - highlightLetters.forEach(function (x) { - letters[y - 1][x - 1].addStyle(styleClass); + if (typeof object !== 'undefined' && object !== null) { + Object.keys(object).forEach(function (y) { + var highlightLetters = object[y]; + highlightLetters.forEach(function (x) { + letters[y - 1][x - 1].addStyle(styleClass); + }); }); - }); + } } function parseTimeDefinition(letters, styleClass, definition) { - Object.keys(definition).forEach(function (listString) { - var array = listString.split(','); - var highlightLetters = definition[listString]; - array.forEach(function (item) { - parseArrayOrObject(letters, styleClass + item, highlightLetters); + if (typeof definition !== 'undefined' && definition !== null) { + Object.keys(definition).forEach(function (listString) { + var array = listString.split(','); + var highlightLetters = definition[listString]; + array.forEach(function (item) { + parseArrayOrObject(letters, styleClass + item, highlightLetters); + }); }); - }); + } } this.parse = function parse() { @@ -440,6 +455,7 @@ letters.push(line); }); parseArrayOrObject(letters, 'on', layout.permanent); + parseTimeDefinition(letters, 'second', layout.seconds); parseTimeDefinition(letters, 'minute', layout.minutes); parseTimeDefinition(letters, 'hour', layout.hours); return letters; diff --git a/manifest.appcache b/manifest.appcache index 8775b62..96cd2b5 100644 --- a/manifest.appcache +++ b/manifest.appcache @@ -14,8 +14,8 @@ info/info.css js/uhr.js js/uhr-de.js js/uhr-de_CH.js -uhr-de_CH-seconds.js js/uhr-de_CH_genau.js +js/uhr-de_CH-seconds.js js/uhr-en.js js/uhr-fr.js js/uhr-it.js @@ -31,4 +31,3 @@ showcase/index.html COPYING README.md index.html -uhr-de_CH.js diff --git a/showcase/index.html b/showcase/index.html index 35d181d..b995e98 100644 --- a/showcase/index.html +++ b/showcase/index.html @@ -29,8 +29,8 @@ along with this program. If not, see . - - + + @@ -41,7 +41,7 @@ along with this program. If not, see .

Go back to the main page

- + @@ -50,7 +50,7 @@ along with this program. If not, see . (function($) { var width = $(window).width(); var height = $(window).height() - 150; - var size = width < height ? width : height; + var size = Math.min(width, height); if (size < 200) { size = 200; } diff --git a/uhr-de_CH-seconds.js b/uhr-de_CH-seconds.js deleted file mode 100644 index 09d1ff8..0000000 --- a/uhr-de_CH-seconds.js +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright (C) Schweizerische Bundesbahnen SBB, 2014. - */ - -/* -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ -var h = { - "vorne0": { - 3:[2,3,4], - 4:[1,5], - 5:[1,4,5], - 6:[1,3,5], - 7:[1,2,5], - 8:[1,5], - 9:[2,3,4] - }, - "hinten0": { - 3:[8,9,10], - 4:[7,11], - 5:[7,10,11], - 6:[7,9,11], - 7:[7,8,11], - 8:[7,11], - 9:[8,9,10] - }, - "vorne1": { - 3:[3], - 4:[2,3], - 5:[3], - 6:[3], - 7:[3], - 8:[3], - 9:[2,3,4] - }, - "hinten1": { - 3:[9], - 4:[8,9], - 5:[9], - 6:[9], - 7:[9], - 8:[9], - 9:[8,9,10] - }, - "vorne2": { - 3:[2,3,4], - 4:[1,5], - 5:[5], - 6:[4], - 7:[3], - 8:[2], - 9:[1,2,3,4,5] - }, - "hinten2": { - 3:[8,9,10], - 4:[7,11], - 5:[11], - 6:[10], - 7:[9], - 8:[8], - 9:[7,8,9,10,11] - }, - "vorne3": { - 3:[1,2,3,4,5], - 4:[4], - 5:[3], - 6:[4], - 7:[5], - 8:[1,5], - 9:[2,3,4] - }, - "hinten3": { - 3:[7,8,9,10,11], - 4:[10], - 5:[9], - 6:[10], - 7:[11], - 8:[7,11], - 9:[8,9,10] - }, - "vorne4": { - 3:[4], - 4:[3,4], - 5:[2,4], - 6:[1,4], - 7:[1,2,3,4,5], - 8:[4], - 9:[4] - }, - "hinten4": { - 3:[10], - 4:[9,10], - 5:[8,10], - 6:[7,10], - 7:[7,8,9,10,11], - 8:[10], - 9:[10] - }, - "vorne5": { - 3:[1,2,3,4,5], - 4:[1], - 5:[1,2,3,4], - 6:[5], - 7:[5], - 8:[1,5], - 9:[2,3,4] - }, - "hinten5": { - 3:[7,8,9,10,11], - 4:[7], - 5:[7,8,9,10], - 6:[11], - 7:[11], - 8:[7,11], - 9:[8,9,10] - }, - "hinten6": { - 3:[9,10], - 4:[8], - 5:[7], - 6:[7,8,9,10], - 7:[7,11], - 8:[7,11], - 9:[8,9,10] - }, - "hinten7": { - 3:[7,8,9,10,11], - 4:[11], - 5:[10], - 6:[9], - 7:[8], - 8:[8], - 9:[8] - }, - "hinten8": { - 3:[8,9,10], - 4:[7,11], - 5:[7,11], - 6:[8,9,10], - 7:[7,11], - 8:[7,11], - 9:[8,9,10] - }, - "hinten9": { - 3:[8,9,10], - 4:[7,11], - 5:[7,11], - 6:[8,9,10,11], - 7:[11], - 8:[10], - 9:[8,9] - } -}; -var layout = { - "version": 2, - "language": 'Bärndütschi Sekunde', - "letters": [ - 'ESKISCHAFÜF', - 'VIERTUBFZÄÄ', - 'ZWÄNZGSIVOR', - 'ABOHAUBIEGE', - 'EISZWÖISDRÜ', - 'VIERIFÜFIQT', - 'SÄCHSISIBNI', - 'ACHTINÜNIEL', - 'ZÄNIERBEUFI', - 'ZWÖUFINAUHR' - ], - "seconds": { - "0": [h.vorne0, h.hinten0], - "1": [h.vorne0, h.hinten1], - "2": [h.vorne0, h.hinten2], - "3": [h.vorne0, h.hinten3], - "4": [h.vorne0, h.hinten4], - "5": [h.vorne0, h.hinten5], - "6": [h.vorne0, h.hinten6], - "7": [h.vorne0, h.hinten7], - "8": [h.vorne0, h.hinten8], - "9": [h.vorne0, h.hinten9], - "10": [h.vorne1, h.hinten0], - "11": [h.vorne1, h.hinten1], - "12": [h.vorne1, h.hinten2], - "13": [h.vorne1, h.hinten3], - "14": [h.vorne1, h.hinten4], - "15": [h.vorne1, h.hinten5], - "16": [h.vorne1, h.hinten6], - "17": [h.vorne1, h.hinten7], - "18": [h.vorne1, h.hinten8], - "19": [h.vorne1, h.hinten9], - "20": [h.vorne2, h.hinten0], - "21": [h.vorne2, h.hinten1], - "22": [h.vorne2, h.hinten2], - "23": [h.vorne2, h.hinten3], - "24": [h.vorne2, h.hinten4], - "25": [h.vorne2, h.hinten5], - "26": [h.vorne2, h.hinten6], - "27": [h.vorne2, h.hinten7], - "28": [h.vorne2, h.hinten8], - "29": [h.vorne2, h.hinten9], - "30": [h.vorne3, h.hinten0], - "31": [h.vorne3, h.hinten1], - "32": [h.vorne3, h.hinten2], - "33": [h.vorne3, h.hinten3], - "34": [h.vorne3, h.hinten4], - "35": [h.vorne3, h.hinten5], - "36": [h.vorne3, h.hinten6], - "37": [h.vorne3, h.hinten7], - "38": [h.vorne3, h.hinten8], - "39": [h.vorne3, h.hinten9], - "40": [h.vorne4, h.hinten0], - "41": [h.vorne4, h.hinten1], - "42": [h.vorne4, h.hinten2], - "43": [h.vorne4, h.hinten3], - "44": [h.vorne4, h.hinten4], - "45": [h.vorne4, h.hinten5], - "46": [h.vorne4, h.hinten6], - "47": [h.vorne4, h.hinten7], - "48": [h.vorne4, h.hinten8], - "49": [h.vorne4, h.hinten9], - "50": [h.vorne5, h.hinten0], - "51": [h.vorne5, h.hinten1], - "52": [h.vorne5, h.hinten2], - "53": [h.vorne5, h.hinten3], - "54": [h.vorne5, h.hinten4], - "55": [h.vorne5, h.hinten5], - "56": [h.vorne5, h.hinten6], - "57": [h.vorne5, h.hinten7], - "58": [h.vorne5, h.hinten8], - "59": [h.vorne5, h.hinten9] - }, - "getDotMinute": function(time) { - return 0; - } -}; -window,_uhr.register('de_CH_seconds', layout);