diff --git a/.gitignore b/.gitignore
index 02a9152..07be4ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
*~
.idea
+*.iml
atlassian-ide-plugin.xml
-uhr.iml
\ No newline at end of file
+
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..0e85f0b 100644
--- a/js/uhr.js
+++ b/js/uhr.js
@@ -134,7 +134,7 @@
};
// private helper methods (not exported)
var showConfigScreen = function showConfigScreen() {
- $('#uhr-controlpanel' + this.id).show();
+ $('#uhr-controlpanel' + this.id).fadeIn('fast');
};
// set up
var setupHTML = function setupHTML() {
@@ -187,7 +187,7 @@
}
var closebutton = $('');
closebutton.on('click', function () {
- $('#uhr-controlpanel' + this.id).hide();
+ $('#uhr-controlpanel' + this.id).fadeOut('fast');
}.bind(this));
content.append(closebutton);
e.after(controlpanel);
@@ -277,10 +277,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 +290,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 +299,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 +309,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 +411,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 +456,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;
@@ -465,4 +482,4 @@
return '' + myValue + '';
};
}
-})(jQuery);
\ No newline at end of file
+})(jQuery);
diff --git a/manifest.appcache b/manifest.appcache
index 1e9edea..96cd2b5 100644
--- a/manifest.appcache
+++ b/manifest.appcache
@@ -15,6 +15,7 @@ js/uhr.js
js/uhr-de.js
js/uhr-de_CH.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
diff --git a/showcase/index.html b/showcase/index.html
index 77a7bd1..b995e98 100644
--- a/showcase/index.html
+++ b/showcase/index.html
@@ -29,8 +29,8 @@ along with this program. If not, see .
-
-
+
+
@@ -41,6 +41,7 @@ along with this program. If not, see .
Go back to the main page
+
@@ -49,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;
}