Merge branch 'develop' into feature/splashscreen
Conflicts: index.html uhr.js
This commit is contained in:
commit
6f3c4a8e6b
46 changed files with 13372 additions and 1893 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1 +1,5 @@
|
|||
*~
|
||||
.idea
|
||||
*.iml
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
|
|
58
.jshintrc
Normal file
58
.jshintrc
Normal file
|
@ -0,0 +1,58 @@
|
|||
{
|
||||
// Settings
|
||||
"passfail" : false, // Stop on first error.
|
||||
"maxerr" : 100, // Maximum error before stopping.
|
||||
|
||||
|
||||
// Predefined globals whom JSHint will ignore.
|
||||
"browser" : true, // Standard browser globals e.g. `window`, `document`.
|
||||
|
||||
"jquery" : true,
|
||||
|
||||
"predef" : [
|
||||
"suite",
|
||||
"test"
|
||||
],
|
||||
|
||||
|
||||
// Development.
|
||||
"debug" : false, // Allow debugger statements e.g. browser breakpoints.
|
||||
"devel" : true, // Allow developments statements e.g. `console.log();`.
|
||||
|
||||
"strict" : true, // Require `use strict` pragma in every file.
|
||||
"globalstrict" : false, // Allow global "use strict" (also enables 'strict').
|
||||
|
||||
|
||||
// The Good Parts.
|
||||
"asi" : false, // Tolerate Automatic Semicolon Insertion (no semicolons).
|
||||
"laxbreak" : false, // Tolerate unsafe line breaks e.g. `return [\n] x` without semicolons.
|
||||
"bitwise" : true, // Prohibit bitwise operators (&, |, ^, etc.).
|
||||
"boss" : false, // Tolerate assignments inside if, for & while. Usually conditions & loops are for comparison, not assignments.
|
||||
"curly" : true, // Require {} for every new block or scope.
|
||||
"eqeqeq" : true, // Require triple equals i.e. `===`.
|
||||
"eqnull" : false, // Tolerate use of `== null`.
|
||||
"evil" : false, // Tolerate use of `eval`.
|
||||
"expr" : false, // Tolerate `ExpressionStatement` as Programs.
|
||||
"forin" : false, // Tolerate `for in` loops without `hasOwnPrototype`.
|
||||
"immed" : true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );`
|
||||
"latedef" : true, // Prohipit variable use before definition.
|
||||
"loopfunc" : false, // Allow functions to be defined within loops.
|
||||
"noarg" : true, // Prohibit use of `arguments.caller` and `arguments.callee`.
|
||||
"scripturl" : true, // Tolerate script-targeted URLs.
|
||||
"shadow" : false, // Allows re-define variables later in code e.g. `var x=1; x=2;`.
|
||||
"supernew" : false, // Tolerate `new function () { ... };` and `new Object;`.
|
||||
"undef" : true, // Require all non-global variables be declared before they are used.
|
||||
|
||||
|
||||
// Personal styling preferences.
|
||||
"newcap" : true, // Require capitalization of all constructor functions e.g. `new F()`.
|
||||
"noempty" : true, // Prohibit use of empty blocks.
|
||||
"nonew" : true, // Prohibit use of constructors for side-effects.
|
||||
"nomen" : true, // Prohibit use of initial or trailing underbars in names.
|
||||
"onevar" : false, // Allow only one `var` statement per function.
|
||||
"plusplus" : false, // Prohibit use of `++` & `--`.
|
||||
"sub" : false, // Tolerate all forms of subscript notation besides dot notation e.g. `dict['key']` instead of `dict.key`.
|
||||
"trailing" : true, // Prohibit trailing whitespaces.
|
||||
"white" : false, // Check against strict whitespace and indentation rules.
|
||||
"indent" : 0 // Specify indentation spacing
|
||||
}
|
24
README.md
24
README.md
|
@ -9,10 +9,11 @@ Du willst Bärneruhr auf deiner Website verwenden? Dank des jQuery-Plugins geht
|
|||
* uhr.css
|
||||
* Binde zusätzlich mindestens eine der folgenden CSS-Dateien im HTML ein, je nach dem, welche Farben deine Uhr unterstützen soll:
|
||||
* uhr-black.css
|
||||
* uhr-blue.css
|
||||
* uhr-green.css
|
||||
* uhr-red.css
|
||||
* uhr-white.css
|
||||
* uhr-red.css
|
||||
* uhr-yellow.css
|
||||
* uhr-green.css
|
||||
* uhr-blue.css
|
||||
* uhr-pink.css
|
||||
|
||||
Beim Einbinden muss das attribut `data-class` angegeben werden, welches die CSS-Klasse des Themes definiert. Optional kann mit `data-name` ein im Dropdown anzuzeigender Name angegeben werden. Beispiel:
|
||||
|
@ -25,7 +26,7 @@ Beim Einbinden muss das attribut `data-class` angegeben werden, welches die CSS-
|
|||
* Von jquery-ui werden die Komponenten 'core' und 'widget' benötigt.
|
||||
* jquery-cookie-1.4.0.js (Falls nicht bereits vorhanden)
|
||||
* uhr.js
|
||||
* Binde mindestens eine der folgenden Javascript-Dateien im HTML ein, je nach dem, welche Sprachen deine Uhr unterstützen soll:
|
||||
* Binde mindestens eine der folgenden Javascript-Dateien im HTML nach uhr.js ein, je nach dem, welche Sprachen deine Uhr unterstützen soll:
|
||||
* uhr-de_CH.js
|
||||
* uhr-de_CH_genau.js
|
||||
* uhr-de.js
|
||||
|
@ -33,7 +34,7 @@ Beim Einbinden muss das attribut `data-class` angegeben werden, welches die CSS-
|
|||
* uhr-fr.js
|
||||
* uhr-it.js
|
||||
|
||||
`uhr-de_CH_genau.js` ist eine Variante von Berndeutsch, bei der zur vollen Stunde zusätlich das Wort "genau" angezeigt wird (also z.B. "ES ISCH GENAU DRÜ").
|
||||
`uhr-de_CH_genau.js` ist eine Variante von Berndeutsch, bei der zur vollen Stunde zusätlich das Wort "genau" angezeigt wird (also z.B. um 15:00 Uhr "ES ISCH GENAU DRÜ").
|
||||
|
||||
2. Uhr-Element im HTML-Dokument einfügen
|
||||
----------------------------------------
|
||||
|
@ -54,6 +55,9 @@ Damit wird eine Uhr in der Standardkonfiguration erzeugt. Das heisst:
|
|||
* Sprache ist Bärndütsch
|
||||
* Die Uhr ist eingeschaltet
|
||||
* Die Bedienelemente werden angezeigt
|
||||
* Die Uhr passt sich in der Grösse an, wenn das Elternelement seine Grösse ändert
|
||||
|
||||
Mit den Bedienelementen kannst du die Uhr ein- und ausschalten sowie Sprache und Farbe wechseln.
|
||||
|
||||
Wie du diese Optionen ändern kannst, verrät der nächte Abschnitt.
|
||||
|
||||
|
@ -69,18 +73,20 @@ Der uhr()-Methode kann ein Options-Objekt mitgegeben werden:
|
|||
|
||||
jQuery('#uhrcontainer').uhr({
|
||||
status: 'on', // 'on' (default) oder 'off'
|
||||
theme: 'black', // 'black' (default), 'red', 'blue', 'green' oder 'white'
|
||||
language: 'de_CH', // 'de_CH' (default), 'de' oder 'en' (je nach eingebundenen Sprachdateien)
|
||||
theme: 'black', // 'black' (default), 'white', 'red', 'yellow', 'green', 'blue' oder 'pink' (je nach eingebundenen Theme-Stylesheets)
|
||||
language: 'de_CH', // 'de_CH' (default), 'de_CH_genau', 'de', 'en', 'fr' oder 'it' (je nach eingebundenen Sprachdateien)
|
||||
width: '100%', // eine CSS-Grössenangabe (default: 100%)
|
||||
force: false, // false (default): Falls ein Cookie im Browser besteht, werden dessen Konfigurationswerte übernommen;
|
||||
// true: immer die angegebene Konfiguration verwenden
|
||||
controls: true // true (default): Die Bedienelemente (Ein-/Ausschalter, Theme- und Sprachwähler) werden angezeigt
|
||||
controls: true, // true (default): Die Bedienelemente (Ein-/Ausschalter, Theme- und Sprachwähler) werden angezeigt
|
||||
// false: Die Bedienelemente werden nicht angezeigt
|
||||
autoresize: true // true (default): Die Uhr passt ihre Grösse dynamisch an
|
||||
// false: Die Uhr behält ihre anfängliche Grösse
|
||||
});
|
||||
|
||||
5. Sonderfunktionen
|
||||
-------------------
|
||||
Es gibt noch einen zusätzlichen Konfigurationsparameter. Mit
|
||||
Es gibt noch einen zusätzlichen Konfigurationsparameter. Mittels
|
||||
|
||||
{
|
||||
time: new Date()
|
||||
|
|
1
VERSION
Normal file
1
VERSION
Normal file
|
@ -0,0 +1 @@
|
|||
6.3.3
|
|
@ -15,13 +15,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.black {
|
||||
background-color: #111;
|
||||
}
|
||||
|
||||
.black .onoffswitch-inner:before {
|
||||
background-color: #111;
|
||||
}
|
||||
|
||||
.uhr.black .dot:not(.active) {
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.uhr.black .letter:not(.active) {
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
|
@ -15,13 +15,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.blue {
|
||||
background-color: #00a;
|
||||
}
|
||||
|
||||
.blue .onoffswitch-inner:before {
|
||||
background-color: #00a;
|
||||
}
|
||||
|
||||
.uhr.blue .dot:not(.active) {
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.uhr.blue .letter:not(.active) {
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
|
@ -15,13 +15,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.green {
|
||||
background-color: #0c0;
|
||||
}
|
||||
|
||||
.green .onoffswitch-inner:before {
|
||||
background-color: #0c0;
|
||||
}
|
||||
|
||||
.uhr.green .dot:not(.active) {
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.uhr.green .letter:not(.active) {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(0, 0, 0, 0.1);
|
|
@ -15,21 +15,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.pink {
|
||||
background-color: #f0a;
|
||||
}
|
||||
|
||||
.uhr.pink .dot.active {
|
||||
border-color: #fff;
|
||||
box-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.uhr.pink .letter.active {
|
||||
color: #fff;
|
||||
text-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.pink .onoffswitch-inner:before {
|
||||
background-color: #f0a;
|
||||
}
|
||||
|
||||
.uhr.pink .dot:not(.active) {
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.uhr.pink .letter:not(.active) {
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
|
@ -15,13 +15,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.red {
|
||||
background-color: #700;
|
||||
}
|
||||
|
||||
.red .onoffswitch-inner:before {
|
||||
background-color: #700;
|
||||
}
|
||||
|
||||
.uhr.red .dot:not(.active) {
|
||||
border-color: rgba(255, 255, 255, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.uhr.red .letter:not(.active) {
|
||||
color: rgba(255, 255, 255, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(255, 255, 255, 0.1);
|
|
@ -15,21 +15,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.white {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.uhr.white .dot.active {
|
||||
border-color: #fff;
|
||||
box-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.uhr.white .letter.active {
|
||||
color: #fff;
|
||||
text-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.white .onoffswitch-inner:before {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.uhr.white .dot:not(.active) {
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0 0 0.1em rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.uhr.white .letter:not(.active) {
|
||||
color: rgba(0, 0, 0, 0.1);
|
||||
text-shadow: 0 0 0.1em rgba(0, 0, 0, 0.1);
|
|
@ -15,21 +15,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
.uhr.yellow {
|
||||
background-color: #fd0;
|
||||
}
|
||||
|
||||
.uhr.yellow .dot.active {
|
||||
border-color: #fff;
|
||||
box-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.uhr.yellow .letter.active {
|
||||
color: #fff;
|
||||
text-shadow: 0 0 0.1em #fff;
|
||||
}
|
||||
|
||||
.yellow .onoffswitch-inner:before {
|
||||
background-color: #fd0;
|
||||
}
|
||||
|
||||
.uhr.yellow .dot:not(.active) {
|
||||
border-color: rgba(0, 0, 0, 0.05);
|
||||
box-shadow: 0 0 0.1em rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.uhr.yellow .letter:not(.active) {
|
||||
color: rgba(0, 0, 0, 0.05);
|
||||
text-shadow: 0 0 0.1em rgba(0, 0, 0, 0.05);
|
250
css/uhr.css
Normal file
250
css/uhr.css
Normal file
|
@ -0,0 +1,250 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Uhrenfont';
|
||||
src: url('../resources/uhr.woff') format('woff');
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Uhrenfont', sans-serif;
|
||||
}
|
||||
|
||||
.uhr {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
transition: background-color 0.5s;
|
||||
}
|
||||
|
||||
.uhr .reflection {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: radial-gradient(225em 45em at 160% 0, rgba(255, 255, 255, 0.4) 0, rgba(255, 255, 255, 0.05) 40%, rgba(255, 255, 255, 0) 40%) no-repeat scroll;
|
||||
display: block;
|
||||
margin: 0.15em;
|
||||
}
|
||||
|
||||
#themeswitcher {
|
||||
}
|
||||
|
||||
.uhr .letterarea {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 12%;
|
||||
bottom: 12%;
|
||||
left: 12%;
|
||||
right: 12%;
|
||||
overflow: hidden;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
.item {
|
||||
transition: box-shadow 0.5s, text-shadow 0.5s, border-color 0.5s, color 0.5s;
|
||||
}
|
||||
|
||||
.dot {
|
||||
position: absolute;
|
||||
display: block;
|
||||
height: 0;
|
||||
width: 0;
|
||||
border: 0.2em solid;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
.dot.active {
|
||||
border-color: #eee;
|
||||
box-shadow: 0 0 0.2em #eee;
|
||||
}
|
||||
|
||||
.dot1 {
|
||||
top: 3.75%;
|
||||
left: 3.75%;
|
||||
}
|
||||
|
||||
.dot2 {
|
||||
top: 3.75%;
|
||||
right: 3.75%;
|
||||
}
|
||||
|
||||
.dot3 {
|
||||
bottom: 3.75%;
|
||||
right: 3.75%;
|
||||
}
|
||||
|
||||
.dot4 {
|
||||
bottom: 3.75%;
|
||||
left: 3.75%;
|
||||
}
|
||||
|
||||
.letter {
|
||||
height: 10%;
|
||||
width: 9.0909%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 160%;
|
||||
}
|
||||
|
||||
.letter.active {
|
||||
color: #eee;
|
||||
text-shadow: 0 0 0.2em #eee;
|
||||
}
|
||||
|
||||
.onoffswitch {
|
||||
position: relative;
|
||||
width: 86px;
|
||||
margin: 1em;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.onoffswitch-label {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
border: 2px solid #999;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.onoffswitch-inner {
|
||||
width: 200%;
|
||||
margin-left: -100%;
|
||||
-moz-transition: margin 0.3s ease-in 0s;
|
||||
-webkit-transition: margin 0.3s ease-in 0s;
|
||||
-o-transition: margin 0.3s ease-in 0s;
|
||||
transition: margin 0.3s ease-in 0s;
|
||||
}
|
||||
|
||||
.onoffswitch-inner:before, .onoffswitch-inner:after {
|
||||
float: left;
|
||||
width: 50%;
|
||||
height: 24px;
|
||||
padding: 0;
|
||||
line-height: 24px;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.onoffswitch-inner:before {
|
||||
content: "EIN";
|
||||
padding-left: 12px;
|
||||
color: #eee;
|
||||
transition: background-color 0.5s;
|
||||
}
|
||||
|
||||
.onoffswitch-inner:after {
|
||||
content: "AUS";
|
||||
padding-right: 12px;
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.onoffswitch-switch {
|
||||
width: 30px;
|
||||
margin: -3px;
|
||||
background: #fff;
|
||||
border: 2px solid #999;
|
||||
border-radius: 50px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 58px;
|
||||
-moz-transition: all 0.3s ease-in 0s;
|
||||
-webkit-transition: all 0.3s ease-in 0s;
|
||||
-o-transition: all 0.3s ease-in 0s;
|
||||
transition: all 0.3s ease-in 0s;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
a.uhr-configlink {
|
||||
cursor: pointer;
|
||||
background: url("../resources/settings.png") no-repeat;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: inline-block;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
.uhr-controlpanel {
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 400px) {
|
||||
.uhr-controlpanel .content {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 401px) {
|
||||
.uhr-controlpanel .content {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 10em;
|
||||
top: 1em;
|
||||
border-radius: 0.5em;
|
||||
box-shadow: 0 0 1em black;
|
||||
}
|
||||
}
|
||||
|
||||
.uhr-controlpanel .content {
|
||||
background-color: #fff;
|
||||
padding: 2em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
a.uhr-closecontrolpanel {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 3px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: url("../resources/close.png") no-repeat;
|
||||
}
|
||||
|
||||
#disclaimer {
|
||||
font-size: 0.5em;
|
||||
}
|
||||
|
||||
#disclaimer a {
|
||||
color: #444;
|
||||
text-decoration: underline;
|
||||
}
|
48
index.html
48
index.html
|
@ -16,36 +16,50 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<html>
|
||||
<head>
|
||||
<title>Bärneruhr - Die Zeit im Wort</title>
|
||||
<link rel="shortcut icon" type="image/png" href="favicon.png" />
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
|
||||
<meta name="apple-mobile-web-app-title" content="Bärneruhr"/>
|
||||
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1"/>
|
||||
<link rel="stylesheet" type="text/css" href="uhr.css" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-black.css" data-class="black" data-name="Schwarz" />
|
||||
<link rel="shortcut icon" type="image/png" href="favicon.png" />
|
||||
<link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png" />
|
||||
<script type="text/javascript" src="jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script type="text/javascript" src="jquery-cookie-1.4.0.js"></script>
|
||||
<script type="text/javascript" src="uhr.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-black.css" data-class="black" data-name="Schwarz"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-white.css" data-class="white" data-name="Weiss"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-red.css" data-class="red" data-name="Rot"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-yellow.css" data-class="yellow" data-name="Gelb"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-green.css" data-class="green" data-name="Grün"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-blue.css" data-class="blue" data-name="Blau"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/uhr-pink.css" data-class="pink" data-name="Pink"/>
|
||||
<link rel="shortcut icon" type="image/png" href="resources/favicon.png"/>
|
||||
<link rel="apple-touch-icon-precomposed" href="resources/apple-touch-icon-precomposed.png"/>
|
||||
<script type="text/javascript" src="lib/jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="lib/jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script type="text/javascript" src="lib/jquery-cookie-1.4.0.js"></script>
|
||||
<script type="text/javascript" src="js/uhr.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-de_CH.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-de_CH_genau.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-de_CH-seconds.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-de.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-en.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-fr.js"></script>
|
||||
<script type="text/javascript" src="js/uhr-it.js"></script>
|
||||
<script type="text/javascript">
|
||||
function go(url) {
|
||||
window.location = url;
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="padding:0;margin:0;">
|
||||
<div id="uhr"></div>
|
||||
<p id="disclaimer">Created by <a href="http://www.fritteli.ch/">fritteli</a>, inspired by <a href="http://www.qlocktwo.com/">QLOCKTWO</a>. <a href="info/">Read more!</a> - <a href="showcase">View full showcase!</a></p>
|
||||
<script type="text/javascript" src="uhr-de_CH.js"></script>
|
||||
<p id="disclaimer">Created by <a href="http://www.fritteli.ch/">fritteli</a>, inspired by <a href="http://www.qlocktwo.com/">QLOCKTWO</a>. <a
|
||||
onclick="go('info/')" href="#">Read more!</a></p>
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
var width = $(window).width();
|
||||
var height = $(window).height();
|
||||
var size = (width < height ? width : height) + 'px';
|
||||
var size = Math.min(width, height) + 'px';
|
||||
$('#uhr').uhr({
|
||||
width: size,
|
||||
color: 'black',
|
||||
language: 'de_CH',
|
||||
force: true,
|
||||
controls: false
|
||||
width: size
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
|
|
171
info/index.html
171
info/index.html
|
@ -18,19 +18,25 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<title>Die Zeit im Wort - Informationen</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width,user-scalable=yes,initial-scale=1"/>
|
||||
<link rel="stylesheet" type="text/css" href="../uhr.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-black.css" data-class="black" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/uhr.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/uhr-black.css" data-class="black"/>
|
||||
<link rel="stylesheet" type="text/css" href="info.css"/>
|
||||
<link rel="shortcut icon" type="image/png" href="../favicon.png" />
|
||||
<script type="text/javascript" src="../jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script type="text/javascript" src="../jquery-cookie-1.4.0.js"></script>
|
||||
<script type="text/javascript" src="../uhr.js"></script>
|
||||
<script type="text/javascript" src="../uhr-de_CH.js"></script>
|
||||
<link rel="shortcut icon" type="image/png" href="../resources/favicon.png"/>
|
||||
<script type="text/javascript" src="../lib/jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="../lib/jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script type="text/javascript" src="../lib/jquery-cookie-1.4.0.js"></script>
|
||||
<script type="text/javascript" src="../js/uhr.js"></script>
|
||||
<script type="text/javascript" src="../js/uhr-de_CH.js"></script>
|
||||
<script type="text/javascript">
|
||||
function go(url) {
|
||||
window.location = url;
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="main-title">Die Zeit im Wort</h1>
|
||||
<nav>Inhalt:
|
||||
<nav><span id="toc">Inhalt:</span>
|
||||
<ol>
|
||||
<li><a href="#about">Was soll das?</a></li>
|
||||
<li><a href="#the-clock">Die Uhr</a>
|
||||
|
@ -38,7 +44,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<li><a href="#requirements">Benötigte Bibliotheken</a></li>
|
||||
<li><a href="#include-in-html">Einbinden in HTML</a>
|
||||
<ol>
|
||||
<li><a href="#js-and-css-in-head">Javascript- und CSS-Dateien im <code><head></code></a></li>
|
||||
<li><a href="#js-and-css-in-head">Javascript- und CSS-Dateien im <code class="inline"><head></code></a></li>
|
||||
<li><a href="#clock-element">Uhr-Element auf der Seite</a></li>
|
||||
<li><a href="#initialize">Uhr initialisieren</a></li>
|
||||
</ol>
|
||||
|
@ -50,19 +56,23 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<li><a href="#license">Lizenzbestimmungen</a></li>
|
||||
</ol>
|
||||
</nav>
|
||||
<h2 id="about">Was soll das?</h2>
|
||||
<h2 id="about">Was soll das?<a href="#toc" class="toclink">Zum Inhalt</a></h2>
|
||||
|
||||
<p>Hallo, Besucher!</p>
|
||||
|
||||
<p>Hier gibt's vertiefte Informationen über diese Uhr, die dir sagt,
|
||||
wie spät es ist. Hier erfährt du, wie du sie selber auf deiner
|
||||
Website einbauen kannst. Denn das darfst du gerne tun, solange du
|
||||
dich dabei an die Regeln der <a href="#lizenz">Lizenz</a> hältst.</p>
|
||||
<p><a href="..">Das interessiert mich nicht, ich will zurück zur grossen Uhr!</a></p>
|
||||
dich dabei an die Regeln der <a href="#license">Lizenz</a> hältst.</p>
|
||||
|
||||
<h2 id="the-clock">Die Uhr</h2>
|
||||
<a href="../">
|
||||
<p><a onclick="go('../')" href="#">Das interessiert mich nicht, ich will zurück zur grossen Uhr!</a></p>
|
||||
|
||||
<h2 id="the-clock">Die Uhr<a href="#toc" class="toclink">Zum Inhalt</a></h2>
|
||||
<a onclick="go('../')" href="#">
|
||||
<div id="uhr1"></div>
|
||||
</a>
|
||||
<h3 id="requirements">Benötigte Bibliotheken</h3>
|
||||
|
||||
<h3 id="requirements">Benötigte Bibliotheken<a href="#toc" class="toclink">Zum Inhalt</a></h3>
|
||||
<ul>
|
||||
<li><a href="http://jquery.com/download/">jQuery</a> (getestet mit Version 2.1.0)</li>
|
||||
<li><a href="http://jqueryui.com/download/">jQuery-UI</a> (getestet mit Version 1.10.4) mit folgenden Komponenten:
|
||||
|
@ -73,15 +83,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
</li>
|
||||
<li><a href="https://github.com/carhartl/jquery-cookie/releases">jQuery-cookie</a> (getestet mit Version 1.4.0)</li>
|
||||
</ul>
|
||||
<h3 id="include-in-html">Einbinden in HTML</h3>
|
||||
<h4 id="js-and-css-in-head">Javascript- und CSS-Dateien im <code><head></code></h4>
|
||||
<p>Füge folgende Zeilen im <code><head></code>-Tag deines HTML-Dokumentes ein. <strong>Beachte dabei, dass die CSS-Dateien <em>vor</em> den Javascript eingebunden werden</strong>.<br/>
|
||||
<h3 id="include-in-html">Einbinden in HTML<a href="#toc" class="toclink">Zum Inhalt</a></h3>
|
||||
<h4 id="js-and-css-in-head">Javascript- und CSS-Dateien im <code><head></code><a href="#toc" class="toclink">Zum Inhalt</a></h4>
|
||||
|
||||
<p>Füge folgende Zeilen im <code><head></code>-Tag deines HTML-Dokumentes ein. <strong>Beachte dabei, dass die CSS-Dateien <em>vor</em> den
|
||||
Javascript eingebunden werden</strong>.<br/>
|
||||
<code><link rel="stylesheet" type="text/css" href="uhr.css" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-black.css" data-class="black" data-name="Schwarz" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-blue.css" data-class="blue" data-name="Blau" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-green.css" data-class="green" data-name="Grün" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-red.css" data-class="red" data-name="Rot" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-white.css" data-class="white" data-name="Weiss" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-red.css" data-class="red" data-name="Rot" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-yellow.css" data-class="yellow" data-name="Gelb" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-green.css" data-class="green" data-name="Grün" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-blue.css" data-class="blue" data-name="Blau" />
|
||||
<link rel="stylesheet" type="text/css" href="uhr-pink.css" data-class="pink" data-name="Pink" />
|
||||
<script type="text/javascript" src="jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="jquery-ui-1.10.4.custom.min.js"></script>
|
||||
|
@ -94,13 +107,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<script type="text/javascript" src="uhr-fr.js"></script>
|
||||
<script type="text/javascript" src="uhr-it.js"></script></code>
|
||||
</p>
|
||||
<p>Von den Stylesheets zwingend ist <code>uhr.css</code> und mindestens eines der Farbschema-Stylesheets. Die Attribute <code>data-class</code> bzw. <code>data-name</code> definieren dabei die im Stylesheet deklarierte Klasse bzw. den im Auswahlmenu anzuzeigenden Namen. Der Name kann frei gewählt werden, die Style-Klasse muss mit der im Stylesheet definierten übereinstimmen.</p>
|
||||
<p><code>uhr-de_CH_genau.js</code> ist eine Variante von Berndeutsch, bei der zur vollen Stunde zusätlich das Wort <tt>genau</tt> angezeigt wird (also z.B. <tt>ES ISCH GENAU DRÜ</tt>).</p>
|
||||
<h4 id="clock-element">Uhr-Element auf der Seite</h4>
|
||||
|
||||
<p>Von den Stylesheets zwingend ist <code>uhr.css</code> und mindestens eines der Farbschema-Stylesheets. Die Attribute <code>data-class</code> bzw.
|
||||
<code>data-name</code> definieren dabei die im Stylesheet deklarierte Klasse bzw. den im Auswahlmenu anzuzeigenden Namen. Der Name kann frei
|
||||
gewählt werden, die Style-Klasse muss mit der im Stylesheet definierten übereinstimmen.</p>
|
||||
|
||||
<p><code>uhr-de_CH_genau.js</code> ist eine Variante von Berndeutsch, bei der zur vollen Stunde zusätlich das Wort <code class="inline">genau</code>
|
||||
angezeigt wird (also z.B. um 15:00 Uhr <code class="inline">ES ISCH GENAU DRÜ</code>).</p>
|
||||
<h4 id="clock-element">Uhr-Element auf der Seite<a href="#toc" class="toclink">Zum Inhalt</a></h4>
|
||||
|
||||
<p>Definiere an der Stelle, wo die Uhr angezeigt werden soll, ein leeres <code><div></code>-Element:<br/>
|
||||
<code><div id="meine-uhr"></div></code>
|
||||
</p>
|
||||
<h4 id="initialize">Uhr initialisieren</h4>
|
||||
<h4 id="initialize">Uhr initialisieren<a href="#toc" class="toclink">Zum Inhalt</a></h4>
|
||||
|
||||
<p>Definiere im HTML-Dokument (<code><head></code> oder <code><body></code>) ein Javascript-Snippet, um die Uhr zu initialisieren:<br/>
|
||||
<code><script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
|
@ -108,17 +128,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
});
|
||||
</script></code>
|
||||
</p>
|
||||
<p>Die Uhr wird so in der Standardkonfiguration angezeigt, das heisst: Berndeutsche Sprache, in der Farbe der ersten eingebundenen CSS-Datei (im Beispiel also Schwarz), eingeschaltet, Breite 100% des Elternelementes. Wenn dies nicht deinen Bedürfnissen entspricht, lässt sich die Uhr wie im folgenden Abschnitt beschrieben konfigurieren. Die Konfiguration wird der <code>.uhr()</code>-Methode als JSON-Objekt übergeben, beispielsweise so:<br/>
|
||||
|
||||
<p>Die Uhr wird so in der Standardkonfiguration angezeigt, das heisst: Berndeutsche Sprache, in der Farbe der ersten eingebundenen CSS-Datei (im
|
||||
Beispiel also Schwarz), eingeschaltet, Breite 100% des Elternelementes. Wenn dies nicht deinen Bedürfnissen entspricht, lässt sich die Uhr wie im
|
||||
folgenden Abschnitt beschrieben konfigurieren. Die Konfiguration wird der <code>.uhr()</code>-Methode als JSON-Objekt übergeben, beispielsweise
|
||||
so:<br/>
|
||||
<code>jQuery('#uhr').uhr({
|
||||
width: '200px',
|
||||
theme: 'red'
|
||||
});</code>
|
||||
</p>
|
||||
<h3 id="configuration">Konfiguration</h3>
|
||||
|
||||
<h3 id="configuration">Konfiguration<a href="#toc" class="toclink">Zum Inhalt</a></h3>
|
||||
|
||||
<p>Es existieren die folgenden Konfigurationsoptionen:</p>
|
||||
<dl>
|
||||
<dt><code>width</code></dt>
|
||||
<dd>Die Breite der Uhr als CSS-String, z.B. <code>'50%'</code>, <code>'120px'</code> oder <code>'2.8em'</code>. Die Höhe passt sich automatisch der Breite an, so dass die Uhr immer quadratisch ist.
|
||||
<dd>Die Breite der Uhr als CSS-String, z.B. <code>'50%'</code>, <code>'120px'</code> oder <code>'2.8em'</code>. Die Höhe passt sich automatisch
|
||||
der Breite an, so dass die Uhr immer quadratisch ist.
|
||||
<br/>Typ: String
|
||||
<br/>Default: <code>'100%'</code></dd>
|
||||
<dt><code>status</code></dt>
|
||||
|
@ -132,13 +159,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<dt><code>theme</code></dt>
|
||||
<dd>Die anfänglich ausgewählte Farbe der Uhr. Welche Farben unterstützt werden, hängt davon ab, welche CSS-Dateien eingebunden werden.
|
||||
<br/>Typ: String
|
||||
<br/>Default: Farbe der ersten eingebundenen CSS-Datei</dd>
|
||||
<br/>Default: Farbe der ersten eingebundenen CSS-Datei
|
||||
</dd>
|
||||
<dt><code>force</code></dt>
|
||||
<dd>Legt fest, ob die in der Konfiguration angegebenen Werte allfällig in einem Browser-Cookie gespeicherte Einstellungen überschreiben sollen oder nicht. Mögliche Werte sind <code>true</code> (Konfiguration überschreibt Cookie-Werte) oder <code>false</code> (Cookie-Werte haben Vorrang).
|
||||
<dd>Legt fest, ob die in der Konfiguration angegebenen Werte allfällig in einem Browser-Cookie gespeicherte Einstellungen überschreiben sollen
|
||||
oder nicht. Mögliche Werte sind <code>true</code> (Konfiguration überschreibt Cookie-Werte) oder <code>false</code> (Cookie-Werte haben
|
||||
Vorrang).
|
||||
<br/>Typ: boolean
|
||||
<br/>Default: <code>false</code></dd>
|
||||
<dt><code>controls</code></dt>
|
||||
<dd>Gibt an, ob die Steuerelemente zur Auswahl von Farbe und Sprache und der Ein-/Ausschalter angezeigt werden sollen. Mögliche Werte sind <code>true</code> oder <code>false</code>.
|
||||
<dd>Gibt an, ob die Steuerelemente zur Auswahl von Farbe und Sprache und der Ein-/Ausschalter angezeigt werden sollen. Mögliche Werte sind <code>true</code>
|
||||
oder <code>false</code>.
|
||||
<br/>Typ: boolean
|
||||
<br/>Default: <code>true</code></dd>
|
||||
<dt><code>autoresize</code></dt>
|
||||
<dd>Gibt an, ob die Uhr ihre Grösse dynamisch anpassen soll, wenn das Elternelement seine Grösse ändert, oder ob sie immer die anfängliche Grösse
|
||||
behält. Mögliche Werte sind <code>true</code> oder <code>false</code>.
|
||||
<br/>Typ: boolean
|
||||
<br/>Default: <code>true</code></dd>
|
||||
</dl>
|
||||
|
@ -149,21 +185,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
language: 'de_CH',
|
||||
theme: 'black',
|
||||
controls: false,
|
||||
force: true
|
||||
force: true,
|
||||
autoresize: false
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
<h2 id="information">Informationen</h2>
|
||||
<h2 id="information">Informationen<a href="#toc" class="toclink">Zum Inhalt</a></h2>
|
||||
|
||||
<p>Programmiert von <a href="mailto:manuel@fritteli.ch">Manuel Friedli</a> mit Inspiration von <a href="http://www.qlocktwo.com/">QLOCKTWO</a>.<br/>
|
||||
Diese Uhr ist aus Freude am Programmieren und am Konzept einer die Zeit in Worten ausdrückenden Uhr entstanden. Sollte daraus jemandem Schaden oder ein gravierender Nachteil erwachsen, so soll sich diese Person bei mir melden und wir werden bestimmt eine Lösung finden, die für alle beteiligten angemessen ist. Allen anderen Personen wünsche ich viel Freude mit der Zeit im Wort.</p>
|
||||
<p>Der Quellcode ist frei zugänglich unter <a href="https://git.friedli.info/manuel/uhr">https://git.friedli.info/manuel/uhr</a>.</p>
|
||||
<h2 id="license">Lizenzbestimmungen</h2>
|
||||
<p>Der komplette Sourcecode ist unter der GNU GPL 3.0 lizenziert und darf nach deren Vorgaben verwendet, kopiert, weitergegeben und verändert werden. Die GNU GPL 3.0 findest Du unter folgendem Link: <a href="https://www.gnu.org/licenses/gpl-3.0">GNU GPL 3.0</a>. Und direkt hier:</p>
|
||||
Diese Uhr ist aus Freude am Programmieren und am Konzept einer die Zeit in Worten ausdrückenden Uhr entstanden. Sollte daraus jemandem Schaden
|
||||
oder ein gravierender Nachteil erwachsen, so soll sich diese Person bei mir melden und wir werden bestimmt eine Lösung finden, die für alle
|
||||
beteiligten angemessen ist. Allen anderen Personen wünsche ich viel Freude mit der Zeit im Wort.</p>
|
||||
|
||||
<p>Der Quellcode ist frei zugänglich unter <a href="https://gittr.ch/manuel/uhr">https://gittr.ch/manuel/uhr</a>.</p>
|
||||
|
||||
<h2 id="license">Lizenzbestimmungen<a href="#toc" class="toclink">Zum Inhalt</a></h2>
|
||||
|
||||
<p>Der komplette Sourcecode ist unter der GNU GPL 3.0 lizenziert und darf nach deren Vorgaben verwendet, kopiert, weitergegeben und verändert werden.
|
||||
Die GNU GPL 3.0 findest Du unter folgendem Link: <a href="https://www.gnu.org/licenses/gpl-3.0">GNU GPL 3.0</a>. Und direkt hier:</p>
|
||||
|
||||
<h3 id="gpl-v3" style="text-align: center;">GNU GENERAL PUBLIC LICENSE</h3>
|
||||
|
||||
<p style="text-align: center;">Version 3, 29 June 2007</p>
|
||||
|
||||
<p>Copyright © 2007 Free Software Foundation, Inc.
|
||||
<<a href="http://fsf.org/">http://fsf.org/</a>></p><p>
|
||||
<<a href="http://fsf.org/">http://fsf.org/</a>></p>
|
||||
|
||||
<p>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.</p>
|
||||
|
||||
|
@ -375,12 +423,14 @@ terms of section 4, provided that you also meet all of these conditions:</p>
|
|||
|
||||
<ul>
|
||||
<li>a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.</li>
|
||||
it, and giving a relevant date.
|
||||
</li>
|
||||
|
||||
<li>b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
“keep intact all notices”.</li>
|
||||
“keep intact all notices”.
|
||||
</li>
|
||||
|
||||
<li>c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
|
@ -388,12 +438,14 @@ terms of section 4, provided that you also meet all of these conditions:</p>
|
|||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.</li>
|
||||
invalidate such permission if you have separately received it.
|
||||
</li>
|
||||
|
||||
<li>d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.</li>
|
||||
work need not make them do so.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>A compilation of a covered work with other separate and independent
|
||||
|
@ -417,7 +469,8 @@ in one of these ways:</p>
|
|||
<li>a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.</li>
|
||||
customarily used for software interchange.
|
||||
</li>
|
||||
|
||||
<li>b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
|
@ -429,13 +482,15 @@ in one of these ways:</p>
|
|||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.</li>
|
||||
Corresponding Source from a network server at no charge.
|
||||
</li>
|
||||
|
||||
<li>c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.</li>
|
||||
with subsection 6b.
|
||||
</li>
|
||||
|
||||
<li>d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
|
@ -448,12 +503,14 @@ in one of these ways:</p>
|
|||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.</li>
|
||||
available for as long as needed to satisfy these requirements.
|
||||
</li>
|
||||
|
||||
<li>e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.</li>
|
||||
charge under subsection 6d.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>A separable portion of the object code, whose source code is excluded
|
||||
|
@ -530,27 +587,33 @@ that material) supplement the terms of this License with terms:</p>
|
|||
|
||||
<ul>
|
||||
<li>a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or</li>
|
||||
terms of sections 15 and 16 of this License; or
|
||||
</li>
|
||||
|
||||
<li>b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or</li>
|
||||
Notices displayed by works containing it; or
|
||||
</li>
|
||||
|
||||
<li>c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or</li>
|
||||
reasonable ways as different from the original version; or
|
||||
</li>
|
||||
|
||||
<li>d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or</li>
|
||||
authors of the material; or
|
||||
</li>
|
||||
|
||||
<li>e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or</li>
|
||||
trade names, trademarks, or service marks; or
|
||||
</li>
|
||||
|
||||
<li>f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.</li>
|
||||
those licensors and authors.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>All other non-permissive additional terms are considered “further
|
||||
|
|
|
@ -1,17 +1,48 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
body {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
code {
|
||||
white-space: pre;
|
||||
white-space: pre-line;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
code.inline {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
ol {
|
||||
counter-reset: item;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
ol li {
|
||||
display: block;
|
||||
}
|
||||
|
||||
ol li:before {
|
||||
content: counters(item, ".") ". ";
|
||||
counter-increment: item;
|
||||
}
|
||||
|
||||
a.toclink {
|
||||
font-size: 25%;
|
||||
}
|
||||
|
||||
a.toclink:before {
|
||||
content: "▲ ";
|
||||
}
|
74
js/uhr-de.js
Normal file
74
js/uhr-de.js
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var es_ist = {1: [1, 2, 4, 5, 6]};
|
||||
var uhr = {10: [9, 10, 11]};
|
||||
var nach = {4: [8, 9, 10, 11]};
|
||||
var vor = {4: [1, 2, 3]};
|
||||
var halb = {5: [1, 2, 3, 4]};
|
||||
var fuenf = {1: [8, 9, 10, 11]};
|
||||
var zehn = {2: [1, 2, 3, 4]};
|
||||
var viertel = {3: [5, 6, 7, 8, 9, 10, 11]};
|
||||
var zwanzig = {2: [5, 6, 7, 8, 9, 10, 11]};
|
||||
var dreiviertel = {3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]};
|
||||
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Deutsch',
|
||||
"letters": [
|
||||
'ESKISTAFÜNF',
|
||||
'ZEHNZWANZIG',
|
||||
'DREIVIERTEL',
|
||||
'VORFUNKNACH',
|
||||
'HALBAELFÜNF',
|
||||
'EINSXAMZWEI',
|
||||
'DREIPMJVIER',
|
||||
'SECHSNLACHT',
|
||||
'SIEBENZWÖLF',
|
||||
'ZEHNEUNKUHR'
|
||||
],
|
||||
"permanent": es_ist,
|
||||
"minutes": {
|
||||
"0,1,2,3,4": uhr,
|
||||
"5,6,7,8,9": [fuenf, nach],
|
||||
"10,11,12,13,14": [zehn, nach],
|
||||
"15,16,17,18,19": [viertel, nach],
|
||||
"20,21,22,23,24": [zwanzig, nach],
|
||||
"25,26,27,28,29": [fuenf, vor, halb],
|
||||
"30,31,32,33,34": halb,
|
||||
"35,36,37,38,39": [fuenf, nach, halb],
|
||||
"40,41,42,43,44": [zwanzig, vor],
|
||||
"45,46,47,48,49": dreiviertel,
|
||||
"50,51,52,53,54": [zehn, vor],
|
||||
"55,56,57,58,59": [fuenf, vor]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {9: [7, 8, 9, 10, 11]},
|
||||
"1,13": {6: [1, 2, 3, 4]},
|
||||
"2,14": {6: [8, 9, 10, 11]},
|
||||
"3,15": {7: [1, 2, 3, 4]},
|
||||
"4,16": {7: [8, 9, 10, 11]},
|
||||
"5,17": {5: [8, 9, 10, 11]},
|
||||
"6,18": {8: [1, 2, 3, 4, 5]},
|
||||
"7,19": {9: [1, 2, 3, 4, 5, 6]},
|
||||
"8,20": {8: [8, 9, 10, 11]},
|
||||
"9,21": {10: [4, 5, 6, 7]},
|
||||
"10,22": {10: [1, 2, 3, 4]},
|
||||
"11,23": {5: [6, 7, 8]}
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('de', layout);
|
||||
}(jQuery));
|
247
js/uhr-de_CH-seconds.js
Normal file
247
js/uhr-de_CH-seconds.js
Normal file
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(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() {
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('de_CH_seconds', layout);
|
||||
}(jQuery));
|
97
js/uhr-de_CH.js
Normal file
97
js/uhr-de_CH.js
Normal file
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
// hilfsvariablen
|
||||
var es_isch = {1: [1, 2, 4, 5, 6, 7]};
|
||||
var ab = {4: [1, 2]};
|
||||
var vor = {3: [9, 10, 11]};
|
||||
var haubi = {4: [4, 5, 6, 7, 8]};
|
||||
var fuef = {1: [9, 10, 11]};
|
||||
var zae = {2: [9, 10, 11]};
|
||||
var viertu = {2: [1, 2, 3, 4, 5, 6]};
|
||||
var zwaenzg = {3: [1, 2, 3, 4, 5, 6]};
|
||||
var layout = {
|
||||
// version: zur Zeit immer 2 (Pflichtattribut)
|
||||
"version": 2,
|
||||
// Sprechender Name der Sprache
|
||||
"language": 'Bärndütsch',
|
||||
// Buchstabenfeld als Array von Strings.
|
||||
"letters": [
|
||||
'ESKISCHAFÜF',
|
||||
'VIERTUBFZÄÄ',
|
||||
'ZWÄNZGSIVOR',
|
||||
'ABOHAUBIEGE',
|
||||
'EISZWÖISDRÜ',
|
||||
'VIERIFÜFIQT',
|
||||
'SÄCHSISIBNI',
|
||||
'ACHTINÜNIEL',
|
||||
'ZÄNIERBEUFI',
|
||||
'ZWÖUFINAUHR'
|
||||
],
|
||||
// Permanent aktive Buchstaben. <array-or-object>, vgl. ausführliche Beschreibung bei "minutes".
|
||||
"permanent": es_isch,
|
||||
/*
|
||||
* Minuten: Objekt im folgenden Format:
|
||||
* {
|
||||
* <minuten>: <array-or-object>,
|
||||
* ...
|
||||
* }
|
||||
* <minuten>: String von Komma-separierten Minutenwerten, zu welchem die in <array-or-object> angegebenen Buchstaben aktiv sein sollen
|
||||
* <array-or-object> : [ <object>, ...] | <object>
|
||||
* <object>: { <zeile> : [ <spalte>, ... ] }
|
||||
* <zeile>: Die Zeile, in welcher die Buchstaben liegen; von oben gezählt, oben ist 1.
|
||||
* <spalte>: Die Spalte, in der ein einzelner Buchstabe liegt; von links gezählt, links ist 1.
|
||||
* Beispiel:
|
||||
* "minutes": {
|
||||
* "0,1": {1: [6, 7, 9]},
|
||||
* "5": [ {3: [1, 2]}, {4: [10, 11]} ]
|
||||
* }
|
||||
* Erklärung:
|
||||
* Bei Minuten 0 und 1 sind die Buchstaben 6, 7 und 9 der ersten Zeile aktiv.
|
||||
* Bei Minute 5 sind die Buchstaben 1 und 2 der Zeile 3 sowie die Buchstaben 10 und 11 der Zeile 4 aktiv.
|
||||
*/
|
||||
"minutes": {
|
||||
"5,6,7,8,9": [fuef, ab],
|
||||
"10,11,12,13,14": [zae, ab],
|
||||
"15,16,17,18,19": [viertu, ab],
|
||||
"20,21,22,23,24": [zwaenzg, ab],
|
||||
"25,26,27,28,29": [fuef, vor, haubi],
|
||||
"30,31,32,33,34": haubi,
|
||||
"35,36,37,38,39": [fuef, ab, haubi],
|
||||
"40,41,42,43,44": [zwaenzg, vor],
|
||||
"45,46,47,48,49": [viertu, vor],
|
||||
"50,51,52,53,54": [zae, vor],
|
||||
"55,56,57,58,59": [fuef, vor]
|
||||
},
|
||||
// Die Stunden; gleiches Format wie bei den Minuten
|
||||
"hours": {
|
||||
"0,12": {10: [1, 2, 3, 4, 5, 6]},
|
||||
"1,13": {5: [1, 2, 3]},
|
||||
"2,14": {5: [4, 5, 6, 7]},
|
||||
"3,15": {5: [9, 10, 11]},
|
||||
"4,16": {6: [1, 2, 3, 4, 5]},
|
||||
"5,17": {6: [6, 7, 8, 9]},
|
||||
"6,18": {7: [1, 2, 3, 4, 5, 6]},
|
||||
"7,19": {7: [7, 8, 9, 10, 11]},
|
||||
"8,20": {8: [1, 2, 3, 4, 5]},
|
||||
"9,21": {8: [6, 7, 8, 9]},
|
||||
"10,22": {9: [1, 2, 3, 4]},
|
||||
"11,23": {9: [8, 9, 10, 11]}
|
||||
}
|
||||
};
|
||||
// Das Layout bei der Uhr unter dem Code "de_CH" registrieren.
|
||||
$.fritteli.uhr.register('de_CH', layout);
|
||||
}(jQuery));
|
72
js/uhr-de_CH_genau.js
Normal file
72
js/uhr-de_CH_genau.js
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var es_isch = {1: [1, 2, 4, 5, 6, 7]};
|
||||
var genau = {3: [7, 8, 9, 10, 11]};
|
||||
var ab = {4: [4, 5]};
|
||||
var vor = {4: [1, 2, 3]};
|
||||
var haubi = {4: [7, 8, 9, 10, 11]};
|
||||
var fuef = {1: [9, 10, 11]};
|
||||
var zae = {2: [9, 10, 11]};
|
||||
var viertu = {2: [1, 2, 3, 4, 5, 6]};
|
||||
var zwaenzg = {3: [1, 2, 3, 4, 5, 6]};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Bärndütsch (genau)',
|
||||
"letters": [
|
||||
'ESKISCHAFÜF',
|
||||
'VIERTUBFZÄÄ',
|
||||
'ZWÄNZGGENAU',
|
||||
'VORABOHAUBI',
|
||||
'EISZWÖISDRÜ',
|
||||
'VIERIFÜFIQT',
|
||||
'SÄCHSISIBNI',
|
||||
'ACHTINÜNIEL',
|
||||
'ZÄNIERBEUFI',
|
||||
'ZWÖUFINAUHR'
|
||||
],
|
||||
"permanent": es_isch,
|
||||
"minutes": {
|
||||
"0": genau,
|
||||
"5,6,7,8,9": [fuef, ab],
|
||||
"10,11,12,13,14": [zae, ab],
|
||||
"15,16,17,18,19": [viertu, ab],
|
||||
"20,21,22,23,24": [zwaenzg, ab],
|
||||
"25,26,27,28,29": [fuef, vor, haubi],
|
||||
"30,31,32,33,34": haubi,
|
||||
"35,36,37,38,39": [fuef, ab, haubi],
|
||||
"40,41,42,43,44": [zwaenzg, vor],
|
||||
"45,46,47,48,49": [viertu, vor],
|
||||
"50,51,52,53,54": [zae, vor],
|
||||
"55,56,57,58,59": [fuef, vor]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {10: [1, 2, 3, 4, 5, 6]},
|
||||
"1,13": {5: [1, 2, 3]},
|
||||
"2,14": {5: [4, 5, 6, 7]},
|
||||
"3,15": {5: [9, 10, 11]},
|
||||
"4,16": {6: [1, 2, 3, 4, 5]},
|
||||
"5,17": {6: [6, 7, 8, 9]},
|
||||
"6,18": {7: [1, 2, 3, 4, 5, 6]},
|
||||
"7,19": {7: [7, 8, 9, 10, 11]},
|
||||
"8,20": {8: [1, 2, 3, 4, 5]},
|
||||
"9,21": {8: [6, 7, 8, 9]},
|
||||
"10,22": {9: [1, 2, 3, 4]},
|
||||
"11,23": {9: [8, 9, 10, 11]}
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('de_CH_genau', layout);
|
||||
}(jQuery));
|
81
js/uhr-en.js
Normal file
81
js/uhr-en.js
Normal file
|
@ -0,0 +1,81 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var it_is = {1: [1, 2, 4, 5]};
|
||||
var half = {4: [1, 2, 3, 4]};
|
||||
var to = {4: [10, 11]};
|
||||
var past = {5: [1, 2, 3, 4]};
|
||||
var o_clock = {10: [5, 6, 7, 8, 9, 10, 11]};
|
||||
var five = {3: [7, 8, 9, 10]};
|
||||
var ten = {4: [6, 7, 8]};
|
||||
var a_quarter = {2: [1, 3, 4, 5, 6, 7, 8, 9]};
|
||||
var twenty = {3: [1, 2, 3, 4, 5, 6]};
|
||||
var twentyfive = {3: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]};
|
||||
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'English',
|
||||
"letters": [
|
||||
'ITLISBFAMPM',
|
||||
'ACQUARTERDC',
|
||||
'TWENTYFIVEX',
|
||||
'HALFBTENFTO',
|
||||
'PASTERUNINE',
|
||||
'ONESIXTHREE',
|
||||
'FOURFIVETWO',
|
||||
'EIGHTELEVEN',
|
||||
'SEVENTWELVE',
|
||||
'TENSO\'CLOCK'
|
||||
],
|
||||
"permanent": it_is,
|
||||
"minutes": {
|
||||
"0,1,2,3,4": o_clock,
|
||||
"5,6,7,8,9": [five, past],
|
||||
"10,11,12,13,14": [ten, past],
|
||||
"15,16,17,18,19": [a_quarter, past],
|
||||
"20,21,22,23,24": [twenty, past],
|
||||
"25,26,27,28,29": [twentyfive, past],
|
||||
"30,31,32,33,34": [half, past],
|
||||
"35,36,37,38,39": [twentyfive, to],
|
||||
"40,41,42,43,44": [twenty, to],
|
||||
"45,46,47,48,49": [a_quarter, to],
|
||||
"50,51,52,53,54": [ten, to],
|
||||
"55,56,57,58,59": [five, to]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {9: [6, 7, 8, 9, 10, 11]},
|
||||
"1,13": {6: [1, 2, 3]},
|
||||
"2,14": {7: [9, 10, 11]},
|
||||
"3,15": {6: [7, 8, 9, 10, 11]},
|
||||
"4,16": {7: [1, 2, 3, 4]},
|
||||
"5,17": {7: [5, 6, 7, 8]},
|
||||
"6,18": {6: [4, 5, 6]},
|
||||
"7,19": {9: [1, 2, 3, 4, 5]},
|
||||
"8,20": {8: [1, 2, 3, 4, 5]},
|
||||
"9,21": {5: [8, 9, 10, 11]},
|
||||
"10,22": {10: [1, 2, 3]},
|
||||
"11,23": {8: [6, 7, 8, 9, 10, 11]}
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('en', layout);
|
||||
}(jQuery));
|
115
js/uhr-fr.js
Normal file
115
js/uhr-fr.js
Normal file
|
@ -0,0 +1,115 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var il_est = {1: [1, 2, 4, 5, 6]};
|
||||
var et = {8: [1, 2]};
|
||||
var moins = {7: [1, 2, 3, 4, 5]};
|
||||
var demie = {10: [4, 5, 6, 7, 8]};
|
||||
var heures = {6: [6, 7, 8, 9, 10, 11]};
|
||||
var le = {7: [7, 8]};
|
||||
var cinq = {9: [7, 8, 9, 10]};
|
||||
var dix = {7: [9, 10, 11]};
|
||||
var quart = {8: [4, 5, 6, 7, 8]};
|
||||
var vingt = {9: [1, 2, 3, 4, 5]};
|
||||
var vingtcinq = {9: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]};
|
||||
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Français',
|
||||
"letters": [
|
||||
'ILNESTODEUX',
|
||||
'QUATRETROIS',
|
||||
'NEUFUNESEPT',
|
||||
'HUITSIXCINQ',
|
||||
'MIDIXMINUIT',
|
||||
'ONZERHEURES',
|
||||
'MOINSOLEDIX',
|
||||
'ETRQUARTPMD',
|
||||
'VINGT-CINQU',
|
||||
'ETSDEMIEPAM'
|
||||
],
|
||||
"permanent": il_est,
|
||||
"minutes": {
|
||||
"5,6,7,8,9": cinq,
|
||||
"10,11,12,13,14": dix,
|
||||
"15,16,17,18,19": [et, quart],
|
||||
"20,21,22,23,24": vingt,
|
||||
"25,26,27,28,29": vingtcinq,
|
||||
"30,31,32,33,34": [et, demie],
|
||||
"35,36,37,38,39": [moins, vingtcinq],
|
||||
"40,41,42,43,44": [moins, vingt],
|
||||
"45,46,47,48,49": [moins, le, quart],
|
||||
"50,51,52,53,54": [moins, dix],
|
||||
"55,56,57,58,59": [moins, cinq]
|
||||
},
|
||||
"hours": {
|
||||
"0": {5: [6, 7, 8, 9, 10, 11]},
|
||||
"1,13": [
|
||||
{3: [5, 6, 7]},
|
||||
heures
|
||||
],
|
||||
"2,14": [
|
||||
{1: [8, 9, 10, 11]},
|
||||
heures
|
||||
],
|
||||
"3,15": [
|
||||
{2: [7, 8, 9, 10, 11]},
|
||||
heures
|
||||
],
|
||||
"4,16": [
|
||||
{2: [1, 2, 3, 4, 5, 6]},
|
||||
heures
|
||||
],
|
||||
"5,17": [
|
||||
{4: [8, 9, 10, 11]},
|
||||
heures
|
||||
],
|
||||
"6,18": [
|
||||
{4: [5, 6, 7]},
|
||||
heures
|
||||
],
|
||||
"7,19": [
|
||||
{3: [8, 9, 10, 11]},
|
||||
heures
|
||||
],
|
||||
"8,20": [
|
||||
{4: [1, 2, 3, 4]},
|
||||
heures
|
||||
],
|
||||
"9,21": [
|
||||
{3: [1, 2, 3, 4]},
|
||||
heures
|
||||
],
|
||||
"10,22": [
|
||||
{5: [3, 4, 5]},
|
||||
heures
|
||||
],
|
||||
"11,23": [
|
||||
{6: [1, 2, 3, 4]},
|
||||
heures
|
||||
],
|
||||
"12": {5: [1, 2, 3, 4]}
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('fr', layout);
|
||||
}(jQuery));
|
80
js/uhr-it.js
Normal file
80
js/uhr-it.js
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var sono_le = {1: [1, 2, 3, 4, 6, 7]};
|
||||
var e_l = {2: [1, 3, 4]};
|
||||
var e = {8: [1]};
|
||||
var meno = {7: [8, 9, 10, 11]};
|
||||
var mezza = {10: [7, 8, 9, 10, 11]};
|
||||
var cinque = {9: [6, 7, 8, 9, 10, 11]};
|
||||
var dieci = {10: [1, 2, 3, 4, 5]};
|
||||
var un_quarto = {8: [3, 4, 6, 7, 8, 9, 10, 11]};
|
||||
var venti = {9: [1, 2, 3, 4, 5]};
|
||||
var venticinque = {9: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]};
|
||||
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Italiano',
|
||||
"letters": [
|
||||
'SONORLEBORE',
|
||||
'ÈRL\'UNASDUE',
|
||||
'TREOTTONOVE',
|
||||
'DIECIUNDICI',
|
||||
'DODICISETTE',
|
||||
'QUATTROCSEI',
|
||||
'CINQUEAMENO',
|
||||
'ECUNOQUARTO',
|
||||
'VENTICINQUE',
|
||||
'DIECIPMEZZA'
|
||||
],
|
||||
"permanent": [],
|
||||
"minutes": {
|
||||
"5,6,7,8,9": [e, cinque],
|
||||
"10,11,12,13,14": [e, dieci],
|
||||
"15,16,17,18,19": [e, un_quarto],
|
||||
"20,21,22,23,24": [e, venti],
|
||||
"25,26,27,28,29": [e, venticinque],
|
||||
"30,31,32,33,34": [e, mezza],
|
||||
"35,36,37,38,39": [meno, venticinque],
|
||||
"40,41,42,43,44": [meno, venti],
|
||||
"45,46,47,48,49": [meno, un_quarto],
|
||||
"50,51,52,53,54": [meno, dieci],
|
||||
"55,56,57,58,59": [meno, cinque]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": [sono_le, {5: [1, 2, 3, 4, 5, 6]}],
|
||||
"1,13": [e_l, {2: [5, 6, 7]}],
|
||||
"2,14": [sono_le, {2: [9, 10, 11]}],
|
||||
"3,15": [sono_le, {3: [1, 2, 3]}],
|
||||
"4,16": [sono_le, {6: [1, 2, 3, 4, 5, 6, 7]}],
|
||||
"5,17": [sono_le, {7: [1, 2, 3, 4, 5, 6]}],
|
||||
"6,18": [sono_le, {6: [9, 10, 11]}],
|
||||
"7,19": [sono_le, {5: [7, 8, 9, 10, 11]}],
|
||||
"8,20": [sono_le, {3: [4, 5, 6, 7]}],
|
||||
"9,21": [sono_le, {3: [8, 9, 10, 11]}],
|
||||
"10,22": [sono_le, {4: [1, 2, 3, 4, 5]}],
|
||||
"11,23": [sono_le, {4: [6, 7, 8, 9, 10, 11]}]
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
$.fritteli.uhr.register('it', layout);
|
||||
}(jQuery));
|
499
js/uhr.js
Normal file
499
js/uhr.js
Normal file
|
@ -0,0 +1,499 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
var uhrGlobals = {
|
||||
"id": 0,
|
||||
"languages": [],
|
||||
"themes": [],
|
||||
registerLanguage: function registerLanguage(code, language) {
|
||||
var alreadyExists = uhrGlobals.languages.some(function(element) {
|
||||
if (code === element.code) {
|
||||
console.error("Error: Language code '" + code + "' cannot be registered for language '" + language.language +
|
||||
"' because it is already registered for language '" + element.language + "'!");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
if (!alreadyExists) {
|
||||
language.code = code;
|
||||
uhrGlobals.languages.push(language);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// auto-detect themes
|
||||
$('link[rel=stylesheet]').each(function(index, item) {
|
||||
var styleSheet = $(item);
|
||||
var styleClass = styleSheet.attr('data-class');
|
||||
if (styleClass !== undefined) {
|
||||
var name = styleSheet.attr('data-name');
|
||||
if (name === undefined) {
|
||||
name = styleClass;
|
||||
}
|
||||
uhrGlobals.themes.push({'styleClass': styleClass, 'name': name});
|
||||
}
|
||||
});
|
||||
// fall-back if no theme was included
|
||||
if (uhrGlobals.themes.length === 0) {
|
||||
uhrGlobals.themes.push({});
|
||||
}
|
||||
|
||||
// public interface methods (exported later)
|
||||
var start = function start() {
|
||||
if (!isOn.bind(this)()) {
|
||||
this.timer = window.setInterval(function() {
|
||||
this.options.time = new Date();
|
||||
update.bind(this)();
|
||||
}.bind(this), 1000);
|
||||
update.bind(this)();
|
||||
setCookie.bind(this)('uhr-status', 'on');
|
||||
}
|
||||
};
|
||||
var stop = function stop() {
|
||||
if (isOn.bind(this)()) {
|
||||
window.clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
update.bind(this)();
|
||||
setCookie.bind(this)('uhr-status', 'off');
|
||||
}
|
||||
};
|
||||
var toggle = function toggle() {
|
||||
if (isOn.bind(this)()) {
|
||||
this.stop();
|
||||
} else {
|
||||
this.start();
|
||||
}
|
||||
};
|
||||
var setLanguage = function setLanugage(languageKey) {
|
||||
if (languageKey !== this.options.language) {
|
||||
this.options.language = languageKey;
|
||||
var renderer = new UhrRenderer(language.bind(this)(), this.element.find('.letterarea'));
|
||||
renderer.render.bind(this)(function() {
|
||||
this.currentMinute = -1;
|
||||
update.bind(this)();
|
||||
}.bind(this));
|
||||
setCookie.bind(this)('uhr-language', languageKey);
|
||||
update.bind(this)();
|
||||
}
|
||||
};
|
||||
var setTheme = function setTheme(theme) {
|
||||
if (theme !== this.options.theme) {
|
||||
this.element.removeClass(this.options.theme).addClass(theme);
|
||||
$('#uhr-onoffswitch' + this.id).removeClass(this.options.theme).addClass(theme);
|
||||
this.options.theme = theme;
|
||||
setCookie.bind(this)('uhr-theme', theme);
|
||||
}
|
||||
};
|
||||
var setTime = function setTime(time) {
|
||||
this.currentMinute = -1;
|
||||
if (time === null) {
|
||||
this.options.time = new Date();
|
||||
} else {
|
||||
if (this.timer !== null) {
|
||||
window.clearInterval(this.timer);
|
||||
}
|
||||
this.options.time = time;
|
||||
}
|
||||
update.bind(this)();
|
||||
};
|
||||
var setWidth = function setWidth(width) {
|
||||
var e = this.element;
|
||||
e.css('width', width);
|
||||
var realWidth = e.width();
|
||||
e.width(realWidth);
|
||||
e.height(realWidth);
|
||||
e.css('font-size', (realWidth / 40) + 'px');
|
||||
};
|
||||
|
||||
// private interface methods
|
||||
var create = function create() {
|
||||
this.id = uhrGlobals.id++;
|
||||
this.timer = null;
|
||||
this.currentMinute = -1;
|
||||
var userTime = this.options.time;
|
||||
if (this.options.time === undefined) {
|
||||
this.options.time = new Date();
|
||||
}
|
||||
setupHTML.bind(this)();
|
||||
wireFunctionality.bind(this)();
|
||||
if (userTime !== undefined) {
|
||||
this.time(userTime);
|
||||
}
|
||||
};
|
||||
// private helper methods (not exported)
|
||||
var showConfigScreen = function showConfigScreen() {
|
||||
$('#uhr-controlpanel' + this.id).fadeIn('fast');
|
||||
};
|
||||
// set up
|
||||
var setupHTML = function setupHTML() {
|
||||
var e = this.element;
|
||||
// Base clock area
|
||||
e.addClass('uhr');
|
||||
e.empty();
|
||||
e.append('<span class="item dot dot1"></span>');
|
||||
e.append('<span class="item dot dot2"></span>');
|
||||
e.append('<span class="item dot dot3"></span>');
|
||||
e.append('<span class="item dot dot4"></span>');
|
||||
e.append('<div class="letterarea"></div>');
|
||||
e.append('<div class="reflection"></div>');
|
||||
setWidth.bind(this)(this.options.width);
|
||||
|
||||
if (this.options.controls) {
|
||||
var configlink = $('<a class="uhr-configlink" id="uhr-configlink' + this.id + '"></a>');
|
||||
configlink.on('click', function() {
|
||||
showConfigScreen.bind(this)();
|
||||
}.bind(this));
|
||||
e.after(configlink);
|
||||
var controlpanel = $('<div class="uhr-controlpanel" id="uhr-controlpanel' + this.id + '"></div>');
|
||||
var content = $('<div class="content"></div>');
|
||||
controlpanel.append(content);
|
||||
// on/off switch
|
||||
var toggleSwitch = $('<div class="onoffswitch" id="uhr-onoffswitch' + this.id + '"></div>');
|
||||
toggleSwitch.append('<input type="checkbox" class="onoffswitch-checkbox" id="uhr-onoffswitch-checkbox' + this.id +
|
||||
'" checked="checked" />');
|
||||
toggleSwitch.append('<label class="onoffswitch-label" for="uhr-onoffswitch-checkbox' + this.id + '">' +
|
||||
'<div class="onoffswitch-inner"></div>' + '<div class="onoffswitch-switch"></div>' + '</label>');
|
||||
content.append(toggleSwitch);
|
||||
|
||||
// language chooser
|
||||
if (uhrGlobals.languages.length > 1) {
|
||||
var languageChooser = $('<select id="uhr-languagechooser' + this.id + '"></select>');
|
||||
uhrGlobals.languages.forEach(function(item) {
|
||||
languageChooser.append('<option value="' + item.code + '">' + item.language + '</option>');
|
||||
});
|
||||
content.append(languageChooser);
|
||||
}
|
||||
|
||||
// theme chooser
|
||||
if (uhrGlobals.themes.length > 1) {
|
||||
var themeChooser = $('<select id="uhr-themechooser' + this.id + '"></select>');
|
||||
uhrGlobals.themes.forEach(function(item) {
|
||||
themeChooser.append('<option value="' + item.styleClass + '">' + item.name + '</option>');
|
||||
});
|
||||
content.append(themeChooser);
|
||||
}
|
||||
var closebutton = $('<a class="uhr-closecontrolpanel" id="uhr-closecontrolpanel' + this.id + '"></a>');
|
||||
closebutton.on('click', function() {
|
||||
$('#uhr-controlpanel' + this.id).fadeOut('fast');
|
||||
}.bind(this));
|
||||
content.append(closebutton);
|
||||
e.after(controlpanel);
|
||||
controlpanel.hide();
|
||||
}
|
||||
};
|
||||
var wireFunctionality = function wireFunctionality() {
|
||||
// on/off switch
|
||||
var toggleSwitch = $('#uhr-onoffswitch-checkbox' + this.id);
|
||||
toggleSwitch.on('click', function() {
|
||||
this.toggle();
|
||||
}.bind(this));
|
||||
var status = $.cookie('uhr-status' + this.id);
|
||||
if (status === undefined || this.options.force) {
|
||||
status = this.options.status;
|
||||
}
|
||||
toggleSwitch.prop('checked', status === 'on');
|
||||
if (status === 'on') {
|
||||
this.start();
|
||||
} else {
|
||||
this.stop();
|
||||
}
|
||||
|
||||
// language chooser
|
||||
var languageChooser = $('#uhr-languagechooser' + this.id);
|
||||
languageChooser.on('change', function() {
|
||||
var languageKey = $('#uhr-languagechooser' + this.id).val();
|
||||
this.language(languageKey);
|
||||
}.bind(this));
|
||||
var selectedLanguage = $.cookie('uhr-language' + this.id);
|
||||
if (selectedLanguage === undefined || this.options.force) {
|
||||
selectedLanguage = this.options.language;
|
||||
}
|
||||
var found = uhrGlobals.languages.some(function(item) {
|
||||
return selectedLanguage === item.code;
|
||||
});
|
||||
if (!found) {
|
||||
var fallbackLanguage;
|
||||
if (uhrGlobals.languages.length > 0) {
|
||||
fallbackLanguage = uhrGlobals.languages[0].code;
|
||||
} else {
|
||||
fallbackLanguage = '';
|
||||
}
|
||||
console.warn("Language '" + selectedLanguage + "' not found! Using fallback '" + fallbackLanguage + "'");
|
||||
selectedLanguage = fallbackLanguage;
|
||||
}
|
||||
languageChooser.val(selectedLanguage);
|
||||
this.options.language = "";
|
||||
this.language(selectedLanguage);
|
||||
|
||||
// theme chooser
|
||||
var themeChooser = $('#uhr-themechooser' + this.id);
|
||||
themeChooser.on('change', function() {
|
||||
var themeKey = $('#uhr-themechooser' + this.id).val();
|
||||
this.theme(themeKey);
|
||||
}.bind(this));
|
||||
var selectedTheme = $.cookie('uhr-theme' + this.id);
|
||||
if (selectedTheme === undefined || this.options.force) {
|
||||
selectedTheme = this.options.theme;
|
||||
}
|
||||
found = uhrGlobals.themes.some(function(item) {
|
||||
return selectedTheme === item.styleClass;
|
||||
});
|
||||
if (!found) {
|
||||
var fallbackTheme = uhrGlobals.themes[0].styleClass;
|
||||
console.warn("Theme '" + selectedTheme + "' not found! Using fallback '" + fallbackTheme + "'");
|
||||
selectedTheme = fallbackTheme;
|
||||
}
|
||||
themeChooser.val(selectedTheme);
|
||||
this.options.theme = "";
|
||||
this.theme(selectedTheme);
|
||||
if (this.options.autoresize) {
|
||||
$(window).on('resize', function() {
|
||||
var $e = this.element;
|
||||
var $parent = $e.parent();
|
||||
var $window = $(window);
|
||||
var parentWidth = $parent.width();
|
||||
var parentHeight = $parent.height();
|
||||
var windowWidth = $window.width();
|
||||
var windowHeight = $window.height();
|
||||
var size = Math.min(parentWidth, parentHeight, windowWidth, windowHeight) + 'px';
|
||||
setWidth.bind(this)(size);
|
||||
}.bind(this));
|
||||
}
|
||||
};
|
||||
var setCookie = function setCookie(cookieName, cookieValue) {
|
||||
var options = {};
|
||||
if (this.options.cookiePath !== undefined) {
|
||||
options = {expires: 365, path: this.options.cookiePath};
|
||||
} else {
|
||||
options = {expires: 365};
|
||||
}
|
||||
$.cookie(cookieName + this.id, cookieValue, options);
|
||||
};
|
||||
|
||||
// business logic
|
||||
var isOn = function isOn() {
|
||||
return this.timer !== null;
|
||||
};
|
||||
var update = function update() {
|
||||
if (isOn.bind(this)()) {
|
||||
var time = this.options.time;
|
||||
if (!language.bind(this)().hasOwnProperty('seconds')) {
|
||||
if (time.getMinutes() === this.currentMinute) {
|
||||
return;
|
||||
}
|
||||
this.currentMinute = time.getMinutes();
|
||||
}
|
||||
show.bind(this)(time);
|
||||
} else {
|
||||
clear.bind(this)();
|
||||
this.currentMinute = -1;
|
||||
}
|
||||
};
|
||||
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);
|
||||
clear.bind(this)();
|
||||
highlight.bind(this)('on');
|
||||
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);
|
||||
};
|
||||
var highlight = function highlight(itemClass) {
|
||||
this.element.find('.item.' + itemClass).addClass('active');
|
||||
};
|
||||
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);
|
||||
}
|
||||
var minutes = date.getMinutes();
|
||||
return minutes % 5;
|
||||
};
|
||||
var getCoarseMinute = function getCoarseMinute(date) {
|
||||
if (typeof language.bind(this)().getCoarseMinute === 'function') {
|
||||
return language.bind(this)().getCoarseMinute(date);
|
||||
}
|
||||
return date.getMinutes();
|
||||
};
|
||||
var getHour = function getHour(date) {
|
||||
if (typeof language.bind(this)().getHour === 'function') {
|
||||
return language.bind(this)().getHour(date);
|
||||
}
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 25) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
};
|
||||
|
||||
var language = function language() {
|
||||
var matchingLanguages = uhrGlobals.languages.filter(function(element) {
|
||||
return (element.code === this.options.language);
|
||||
}, this);
|
||||
if (matchingLanguages.length > 0) {
|
||||
return matchingLanguages[0];
|
||||
}
|
||||
// fallback: return empty object
|
||||
return {};
|
||||
};
|
||||
|
||||
$.widget("fritteli.uhr", {
|
||||
"options": {
|
||||
width: '100%',
|
||||
status: 'on',
|
||||
language: 'de_CH',
|
||||
theme: uhrGlobals.themes[0].styleClass,
|
||||
force: false,
|
||||
controls: true,
|
||||
cookiePath: undefined,
|
||||
autoresize: true
|
||||
},
|
||||
"start": start,
|
||||
"stop": stop,
|
||||
"toggle": toggle,
|
||||
"language": setLanguage,
|
||||
"theme": setTheme,
|
||||
"time": setTime,
|
||||
"width": setWidth,
|
||||
// constructor method
|
||||
"_create": create
|
||||
});
|
||||
$.fritteli.uhr.register = uhrGlobals.registerLanguage;
|
||||
/**
|
||||
* Hilfsklasse zum Rendern der Uhr.
|
||||
* @param layout Layout-Objekt, das gerendert werden soll.
|
||||
* @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll.
|
||||
*/
|
||||
function UhrRenderer(layout, renderarea) {
|
||||
this.render = function render(beforeshow) {
|
||||
if (layout.parsed === undefined) {
|
||||
switch (layout.version) {
|
||||
case 2:
|
||||
var delegate = new UhrRendererV2Delegate(layout);
|
||||
var parsedLayout = delegate.parse();
|
||||
Object.defineProperty(layout, "parsed", {"value": parsedLayout, "writable": false, "configurable": false});
|
||||
break;
|
||||
default:
|
||||
console.warn("Unknown layout version: '" + layout.version + "'");
|
||||
return;
|
||||
}
|
||||
}
|
||||
var letters = layout.parsed;
|
||||
renderarea.fadeOut('fast', function() {
|
||||
renderarea.empty();
|
||||
letters.forEach(function(line, index, array) {
|
||||
line.forEach(function(letter) {
|
||||
renderarea.append(letter.toString());
|
||||
});
|
||||
if (index < array.length - 1) {
|
||||
renderarea.append('<br/>');
|
||||
}
|
||||
});
|
||||
if (typeof beforeshow === 'function') {
|
||||
beforeshow();
|
||||
}
|
||||
renderarea.fadeIn('fast');
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function UhrRendererV2Delegate(layout) {
|
||||
function parseArrayOrObject(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) {
|
||||
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) {
|
||||
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() {
|
||||
var letters = [];
|
||||
layout.letters.forEach(function(string) {
|
||||
var line = [];
|
||||
for (var c = 0; c < string.length; c++) {
|
||||
var character = new Letter(string[c]);
|
||||
line.push(character);
|
||||
}
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Ein Buchstabe. Hilfsklasse für den Renderer und Inhalt der Layout-Arrays.
|
||||
* @param value Der Buchstabe, der Dargestellt werden soll.
|
||||
* @param style Die CSS-Styleklassen des Buchstabens.
|
||||
*/
|
||||
function Letter(value, style) {
|
||||
var myValue = value;
|
||||
var myStyle = style || '';
|
||||
this.addStyle = function(style) {
|
||||
if (myStyle === '') {
|
||||
myStyle = style;
|
||||
} else {
|
||||
myStyle += ' ' + style;
|
||||
}
|
||||
};
|
||||
this.toString = function() {
|
||||
return '<span class="item letter ' + myStyle + '">' + myValue + '</span>';
|
||||
};
|
||||
}
|
||||
})(jQuery);
|
|
@ -1,30 +1,33 @@
|
|||
CACHE MANIFEST
|
||||
# 6.2.1
|
||||
# 6.3.3
|
||||
|
||||
COPYING
|
||||
README.md
|
||||
apple-touch-icon-precomposed.png
|
||||
favicon.png
|
||||
index.html
|
||||
jquery-2.1.0.min.js
|
||||
jquery-cookie-1.4.0.js
|
||||
jquery-ui-1.10.4.custom.min.js
|
||||
uhr-black.css
|
||||
uhr-blue.css
|
||||
uhr-de.js
|
||||
uhr-de_CH.js
|
||||
uhr-de_CH_genau.js
|
||||
uhr-en.js
|
||||
uhr-fr.js
|
||||
uhr-green.css
|
||||
uhr-it.js
|
||||
uhr-pink.css
|
||||
uhr-red.css
|
||||
uhr-white.css
|
||||
uhr-yellow.css
|
||||
uhr.css
|
||||
uhr.js
|
||||
uhr.woff
|
||||
css/uhr.css
|
||||
css/uhr-black.css
|
||||
css/uhr-blue.css
|
||||
css/uhr-green.css
|
||||
css/uhr-pink.css
|
||||
css/uhr-red.css
|
||||
css/uhr-white.css
|
||||
css/uhr-yellow.css
|
||||
info/index.html
|
||||
info/info.css
|
||||
showcase/index.html
|
||||
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
|
||||
lib/jquery-2.1.0.min.js
|
||||
lib/jquery-cookie-1.4.0.js
|
||||
lib/jquery-ui-1.10.4.custom.min.js
|
||||
resources/apple-touch-icon-precomposed.png
|
||||
resources/close.png
|
||||
resources/favicon.png
|
||||
resources/settings.png
|
||||
resources/uhr.woff
|
||||
COPYING
|
||||
README.md
|
||||
VERSION
|
||||
index.html
|
||||
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
resources/close.png
Normal file
BIN
resources/close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 407 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
BIN
resources/settings.png
Normal file
BIN
resources/settings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 435 B |
|
@ -1,63 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<html manifest="../manifest.appcache">
|
||||
<head>
|
||||
<title>Bärneruhr - Die Zeit im Wort: Showcase</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
<meta name="apple-mobile-web-app-title" content="Bärneruhr" />
|
||||
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-black.css" data-class="black" data-name="Schwarz" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-white.css" data-class="white" data-name="Weiss" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-red.css" data-class="red" data-name="Rot" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-green.css" data-class="green" data-name="Grün" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-yellow.css" data-class="yellow" data-name="Gelb" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-blue.css" data-class="blue" data-name="Blau" />
|
||||
<link rel="stylesheet" type="text/css" href="../uhr-pink.css" data-class="pink" data-name="Pink" />
|
||||
<link rel="shortcut icon" type="image/png" href="favicon.png" />
|
||||
<link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png" />
|
||||
<script type="text/javascript" src="../jquery-2.1.0.min.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script type="text/javascript" src="../jquery-cookie-1.4.0.js"></script>
|
||||
<script type="text/javascript" src="../uhr.js"></script>
|
||||
</head>
|
||||
<body style="padding:0;margin:0;">
|
||||
<div id="uhr"></div>
|
||||
<p ><a href="..">Go back to the main page</a></p>
|
||||
<script type="text/javascript" src="../uhr-de_CH.js"></script>
|
||||
<script type="text/javascript" src="../uhr-de_CH_genau.js"></script>
|
||||
<script type="text/javascript" src="../uhr-de.js"></script>
|
||||
<script type="text/javascript" src="../uhr-en.js"></script>
|
||||
<script type="text/javascript" src="../uhr-fr.js"></script>
|
||||
<script type="text/javascript" src="../uhr-it.js"></script>
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
var width = $(window).width();
|
||||
var height = $(window).height() - 150;
|
||||
var size = width < height ? width : height;
|
||||
if (size < 200) {
|
||||
size = 200;
|
||||
}
|
||||
$('#uhr').uhr({
|
||||
width: size + 'px',
|
||||
language: 'de_CH'
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
270
test/css/mocha.css
Normal file
270
test/css/mocha.css
Normal file
|
@ -0,0 +1,270 @@
|
|||
@charset "utf-8";
|
||||
|
||||
body {
|
||||
margin:0;
|
||||
}
|
||||
|
||||
#mocha {
|
||||
font: 20px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
margin: 60px 50px;
|
||||
}
|
||||
|
||||
#mocha ul,
|
||||
#mocha li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#mocha ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#mocha h1,
|
||||
#mocha h2 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#mocha h1 {
|
||||
margin-top: 15px;
|
||||
font-size: 1em;
|
||||
font-weight: 200;
|
||||
}
|
||||
|
||||
#mocha h1 a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha h1 a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#mocha .suite .suite h1 {
|
||||
margin-top: 0;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
#mocha .hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha h2 {
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#mocha .suite {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#mocha .test {
|
||||
margin-left: 15px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#mocha .test.pending:hover h2::after {
|
||||
content: '(pending)';
|
||||
font-family: arial, sans-serif;
|
||||
}
|
||||
|
||||
#mocha .test.pass.medium .duration {
|
||||
background: #c09853;
|
||||
}
|
||||
|
||||
#mocha .test.pass.slow .duration {
|
||||
background: #b94a48;
|
||||
}
|
||||
|
||||
#mocha .test.pass::before {
|
||||
content: '✓';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #00d6b2;
|
||||
}
|
||||
|
||||
#mocha .test.pass .duration {
|
||||
font-size: 9px;
|
||||
margin-left: 5px;
|
||||
padding: 2px 5px;
|
||||
color: #fff;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
box-shadow: inset 0 1px 1px rgba(0,0,0,.2);
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-ms-border-radius: 5px;
|
||||
-o-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#mocha .test.pass.fast .duration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha .test.pending {
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.pending::before {
|
||||
content: '◦';
|
||||
color: #0b97c4;
|
||||
}
|
||||
|
||||
#mocha .test.fail {
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test.fail pre {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha .test.fail::before {
|
||||
content: '✖';
|
||||
font-size: 12px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin-right: 5px;
|
||||
color: #c00;
|
||||
}
|
||||
|
||||
#mocha .test pre.error {
|
||||
color: #c00;
|
||||
max-height: 300px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
/**
|
||||
* (1): approximate for browsers not supporting calc
|
||||
* (2): 42 = 2*15 + 2*10 + 2*1 (padding + margin + border)
|
||||
* ^^ seriously
|
||||
*/
|
||||
#mocha .test pre {
|
||||
display: block;
|
||||
float: left;
|
||||
clear: left;
|
||||
font: 12px/1.5 monaco, monospace;
|
||||
margin: 5px;
|
||||
padding: 15px;
|
||||
border: 1px solid #eee;
|
||||
max-width: 85%; /*(1)*/
|
||||
max-width: calc(100% - 42px); /*(2)*/
|
||||
word-wrap: break-word;
|
||||
border-bottom-color: #ddd;
|
||||
-webkit-border-radius: 3px;
|
||||
-webkit-box-shadow: 0 1px 3px #eee;
|
||||
-moz-border-radius: 3px;
|
||||
-moz-box-shadow: 0 1px 3px #eee;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
#mocha .test h2 {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#mocha .test a.replay {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
right: 0;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
display: block;
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
line-height: 15px;
|
||||
text-align: center;
|
||||
background: #eee;
|
||||
font-size: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
border-radius: 15px;
|
||||
-webkit-transition: opacity 200ms;
|
||||
-moz-transition: opacity 200ms;
|
||||
transition: opacity 200ms;
|
||||
opacity: 0.3;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
#mocha .test:hover a.replay {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#mocha-report.pass .test.fail {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.fail .test.pass {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#mocha-report.pending .test.pass,
|
||||
#mocha-report.pending .test.fail {
|
||||
display: none;
|
||||
}
|
||||
#mocha-report.pending .test.pass.pending {
|
||||
display: block;
|
||||
}
|
||||
|
||||
#mocha-error {
|
||||
color: #c00;
|
||||
font-size: 1.5em;
|
||||
font-weight: 100;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
#mocha-stats {
|
||||
position: fixed;
|
||||
top: 15px;
|
||||
right: 10px;
|
||||
font-size: 12px;
|
||||
margin: 0;
|
||||
color: #888;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#mocha-stats .progress {
|
||||
float: right;
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
#mocha-stats em {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#mocha-stats a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#mocha-stats a:hover {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#mocha-stats li {
|
||||
display: inline-block;
|
||||
margin: 0 5px;
|
||||
list-style: none;
|
||||
padding-top: 11px;
|
||||
}
|
||||
|
||||
#mocha-stats canvas {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
#mocha code .comment { color: #ddd; }
|
||||
#mocha code .init { color: #2f6fad; }
|
||||
#mocha code .string { color: #5890ad; }
|
||||
#mocha code .keyword { color: #8a6343; }
|
||||
#mocha code .number { color: #2f6fad; }
|
||||
|
||||
@media screen and (max-device-width: 480px) {
|
||||
#mocha {
|
||||
margin: 60px 0px;
|
||||
}
|
||||
|
||||
#mocha #stats {
|
||||
position: absolute;
|
||||
}
|
||||
}
|
4782
test/lib/chai.js
Normal file
4782
test/lib/chai.js
Normal file
File diff suppressed because it is too large
Load diff
5842
test/lib/mocha.js
Normal file
5842
test/lib/mocha.js
Normal file
File diff suppressed because it is too large
Load diff
28
test/test.html
Normal file
28
test/test.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head lang="en">
|
||||
<meta charset="UTF-8">
|
||||
<title>Test</title>
|
||||
<link rel="stylesheet" type="text/css" href="css/mocha.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/uhr.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/uhr-black.css" data-class="black"/>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mocha"></div>
|
||||
<script src="lib/mocha.js"></script>
|
||||
<script src="lib/chai.js"></script>
|
||||
<script>mocha.setup('tdd');</script>
|
||||
<script src="../lib/jquery-2.1.0.min.js"></script>
|
||||
<script src="../lib/jquery-ui-1.10.4.custom.min.js"></script>
|
||||
<script src="../lib/jquery-cookie-1.4.0.js"></script>
|
||||
<script src="../js/uhr.js"></script>
|
||||
<script src="../js/uhr-de_CH.js"></script>
|
||||
<script src="test.js"></script>
|
||||
<div id="u"></div>
|
||||
<script>
|
||||
mocha.checkLeaks();
|
||||
mocha.run();
|
||||
// $('#u').uhr({'width':'200px'});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
5
test/test.js
Normal file
5
test/test.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
suite('Bärneruhr', function() {
|
||||
"use strict";
|
||||
test('dummy', function() {
|
||||
});
|
||||
});
|
70
uhr-de.js
70
uhr-de.js
|
@ -1,70 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var h = {
|
||||
"_es_ist": {1:[1,2,4,5,6]},
|
||||
"_nach": {4:[8,9,10,11]},
|
||||
"_vor": {4:[1,2,3]},
|
||||
"_halb": {5:[1,2,3,4]},
|
||||
"_5": {1:[8,9,10,11]},
|
||||
"_10": {2:[1,2,3,4]},
|
||||
"_15": {3:[5,6,7,8,9,10,11]},
|
||||
"_20": {2:[5,6,7,8,9,10,11]},
|
||||
"_45": {3:[1,2,3,4,5,6,7,8,9,10,11]}
|
||||
};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Deutsch',
|
||||
"letters": [
|
||||
'ESKISTAFÜNF',
|
||||
'ZEHNZWANZIG',
|
||||
'DREIVIERTEL',
|
||||
'VORFUNKNACH',
|
||||
'HALBAELFÜNF',
|
||||
'EINSXAMZWEI',
|
||||
'DREIPMJVIER',
|
||||
'SECHSNLACHT',
|
||||
'SIEBENZWÖLF',
|
||||
'ZEHNEUNKUHR'
|
||||
],
|
||||
"permanent": h._es_ist,
|
||||
"minutes": {
|
||||
"5,6,7,8,9": [h._5, h._nach],
|
||||
"10,11,12,13,14": [h._10, h._nach],
|
||||
"15,16,17,18,19": [h._15, h._nach],
|
||||
"20,21,22,23,24": [h._20, h._nach],
|
||||
"25,26,27,28,29": [h._5, h._vor, h._halb],
|
||||
"30,31,32,33,34": h._halb,
|
||||
"35,36,37,38,39": [h._5, h._nach, h._halb],
|
||||
"40,41,42,43,44": [h._20, h._vor],
|
||||
"45,46,47,48,49": h._45,
|
||||
"50,51,52,53,54": [h._10, h._vor],
|
||||
"55,56,57,58,59": [h._5, h._vor]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {9:[7,8,9,10,11]},
|
||||
"1,13": {6:[1,2,3,4]},
|
||||
"2,14": {6:[8,9,10,11]},
|
||||
"3,15": {7:[1,2,3,4]},
|
||||
"4,16": {7:[8,9,10,11]},
|
||||
"5,17": {5:[8,9,10,11]},
|
||||
"6,18": {8:[1,2,3,4,5]},
|
||||
"7,19": {9:[1,2,3,4,5,6]},
|
||||
"8,20": {8:[8,9,10,11]},
|
||||
"9,21": {10:[4,5,6,7]},
|
||||
"10,22": {10:[1,2,3,4]},
|
||||
"11,23": {5:[6,7,8]}
|
||||
}
|
||||
};
|
||||
window,_uhr.register('de', layout);
|
96
uhr-de_CH.js
96
uhr-de_CH.js
|
@ -1,96 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
// hilfsvariablen
|
||||
var h = {
|
||||
"_es_isch": {1:[1,2,4,5,6,7]},
|
||||
"_ab": {4:[1,2]},
|
||||
"_vor": {3:[9,10,11]},
|
||||
"_haubi": {4:[4,5,6,7,8]},
|
||||
"_5": {1:[9,10,11]},
|
||||
"_10": {2:[9,10,11]},
|
||||
"_15": {2:[1,2,3,4,5,6]},
|
||||
"_20": {3:[1,2,3,4,5,6]}
|
||||
};
|
||||
var layout = {
|
||||
// version: zur Zeit immer 2 (Pflichtattribut)
|
||||
"version": 2,
|
||||
// Sprechender Name der Sprache
|
||||
"language": 'Bärndütsch',
|
||||
// Buchstabenfeld als Array von Strings.
|
||||
"letters": [
|
||||
'ESKISCHAFÜF',
|
||||
'VIERTUBFZÄÄ',
|
||||
'ZWÄNZGSIVOR',
|
||||
'ABOHAUBIEGE',
|
||||
'EISZWÖISDRÜ',
|
||||
'VIERIFÜFIQT',
|
||||
'SÄCHSISIBNI',
|
||||
'ACHTINÜNIEL',
|
||||
'ZÄNIERBEUFI',
|
||||
'ZWÖUFINAUHR'
|
||||
],
|
||||
// Permanent aktive Buchstaben. <array-or-object>, vgl. ausführliche Beschreibung bei "minutes".
|
||||
"permanent": h._es_isch,
|
||||
/*
|
||||
* Minuten: Objekt im folgenden Format:
|
||||
* {
|
||||
* <minuten>: <array-or-object>,
|
||||
* ...
|
||||
* }
|
||||
* <minuten>: String von Komma-separierten Minutenwerten, zu welchem die in <array-or-object> angegebenen Buchstaben aktiv sein sollen
|
||||
* <array-or-object> : [ <object>, ...] | <object>
|
||||
* <object>: { <zeile> : [ <spalte>, ... ] }
|
||||
* <zeile>: Die Zeile, in welcher die Buchstaben liegen; von oben gezählt, oben ist 1.
|
||||
* <spalte>: Die Spalte, in der ein einzelner Buchstabe liegt; von links gezählt, links ist 1.
|
||||
* Beispiel:
|
||||
* "minutes": {
|
||||
* "0,1": {1: [6, 7, 9]},
|
||||
* "5": [ {3: [1, 2]}, {4: [10, 11]} ]
|
||||
* }
|
||||
* Erklärung:
|
||||
* Bei Minuten 0 und 1 sind die Buchstaben 6, 7 und 9 der ersten Zeile aktiv.
|
||||
* Bei Minute 5 sind die Buchstaben 1 und 2 der Zeile 3 sowie die Buchstaben 10 und 11 der Zeile 4 aktiv.
|
||||
*/
|
||||
"minutes": {
|
||||
"5,6,7,8,9": [h._5, h._ab],
|
||||
"10,11,12,13,14": [h._10, h._ab],
|
||||
"15,16,17,18,19": [h._15, h._ab],
|
||||
"20,21,22,23,24": [h._20, h._ab],
|
||||
"25,26,27,28,29": [h._5, h._vor, h._haubi],
|
||||
"30,31,32,33,34": h._haubi,
|
||||
"35,36,37,38,39": [h._5, h._ab, h._haubi],
|
||||
"40,41,42,43,44": [h._20, h._vor],
|
||||
"45,46,47,48,49": [h._15, h._vor],
|
||||
"50,51,52,53,54": [h._10, h._vor],
|
||||
"55,56,57,58,59": [h._5, h._vor]
|
||||
},
|
||||
// Die Stunden; gleiches Format wie bei den Minuten
|
||||
"hours": {
|
||||
"0,12": {10:[1,2,3,4,5,6]},
|
||||
"1,13": {5:[1,2,3]},
|
||||
"2,14": {5:[4,5,6,7]},
|
||||
"3,15": {5:[9,10,11]},
|
||||
"4,16": {6:[1,2,3,4,5]},
|
||||
"5,17": {6:[6,7,8,9]},
|
||||
"6,18": {7:[1,2,3,4,5,6]},
|
||||
"7,19": {7:[7,8,9,10,11]},
|
||||
"8,20": {8:[1,2,3,4,5]},
|
||||
"9,21": {8:[6,7,8,9]},
|
||||
"10,22": {9:[1,2,3,4]},
|
||||
"11,23": {9:[8,9,10,11]}
|
||||
}
|
||||
};
|
||||
// Das Layout bei der Uhr unter dem Code "de_CH" registrieren.
|
||||
window,_uhr.register('de_CH', layout);
|
|
@ -1,71 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var h = {
|
||||
"_es_isch": {1:[1,2,4,5,6,7]},
|
||||
"_genau": {3:[7,8,9,10,11]},
|
||||
"_ab": {4:[4,5]},
|
||||
"_vor": {4:[1,2,3]},
|
||||
"_haubi": {4:[7,8,9,10,11]},
|
||||
"_5": {1:[9,10,11]},
|
||||
"_10": {2:[9,10,11]},
|
||||
"_15": {2:[1,2,3,4,5,6]},
|
||||
"_20": {3:[1,2,3,4,5,6]}
|
||||
};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Bärndütsch (genau)',
|
||||
"letters": [
|
||||
'ESKISCHAFÜF',
|
||||
'VIERTUBFZÄÄ',
|
||||
'ZWÄNZGGENAU',
|
||||
'VORABOHAUBI',
|
||||
'EISZWÖISDRÜ',
|
||||
'VIERIFÜFIQT',
|
||||
'SÄCHSISIBNI',
|
||||
'ACHTINÜNIEL',
|
||||
'ZÄNIERBEUFI',
|
||||
'ZWÖUFINAUHR'
|
||||
],
|
||||
"permanent": h._es_isch,
|
||||
"minutes": {
|
||||
"0": h._genau,
|
||||
"5,6,7,8,9": [h._5, h._ab],
|
||||
"10,11,12,13,14": [h._10, h._ab],
|
||||
"15,16,17,18,19": [h._15, h._ab],
|
||||
"20,21,22,23,24": [h._20, h._ab],
|
||||
"25,26,27,28,29": [h._5, h._vor, h._haubi],
|
||||
"30,31,32,33,34": h._haubi,
|
||||
"35,36,37,38,39": [h._5, h._ab, h._haubi],
|
||||
"40,41,42,43,44": [h._20, h._vor],
|
||||
"45,46,47,48,49": [h._15, h._vor],
|
||||
"50,51,52,53,54": [h._10, h._vor],
|
||||
"55,56,57,58,59": [h._5, h._vor]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {10:[1,2,3,4,5,6]},
|
||||
"1,13": {5:[1,2,3]},
|
||||
"2,14": {5:[4,5,6,7]},
|
||||
"3,15": {5:[9,10,11]},
|
||||
"4,16": {6:[1,2,3,4,5]},
|
||||
"5,17": {6:[6,7,8,9]},
|
||||
"6,18": {7:[1,2,3,4,5,6]},
|
||||
"7,19": {7:[7,8,9,10,11]},
|
||||
"8,20": {8:[1,2,3,4,5]},
|
||||
"9,21": {8:[6,7,8,9]},
|
||||
"10,22": {9:[1,2,3,4]},
|
||||
"11,23": {9:[8,9,10,11]}
|
||||
}
|
||||
};
|
||||
window,_uhr.register('de_CH_genau', layout);
|
79
uhr-en.js
79
uhr-en.js
|
@ -1,79 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var h = {
|
||||
"_it_is": {1:[1,2,4,5]},
|
||||
"_half": {4:[1,2,3,4]},
|
||||
"_to": {4:[10,11]},
|
||||
"_past": {5:[1,2,3,4]},
|
||||
"_o_clock": {10:[6,7,8,9,10,11]},
|
||||
"_5": {3:[7,8,9,10]},
|
||||
"_10": {4:[6,7,8]},
|
||||
"_15": {2:[1,3,4,5,6,7,8,9]},
|
||||
"_20": {3:[1,2,3,4,5,6]},
|
||||
"_25": {3:[1,2,3,4,5,6,7,8,9,10]}
|
||||
};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'English',
|
||||
"letters": [
|
||||
'ITLISBFAMPM',
|
||||
'ACQUARTERDC',
|
||||
'TWENTYFIVEX',
|
||||
'HALFBTENFTO',
|
||||
'PASTERUNINE',
|
||||
'ONESIXTHREE',
|
||||
'FOURFIVETWO',
|
||||
'EIGHTELEVEN',
|
||||
'SEVENTWELVE',
|
||||
'TENSEOCLOCK'
|
||||
],
|
||||
"permanent": h._it_is,
|
||||
"minutes": {
|
||||
"0,1,2,3,4": h._o_clock,
|
||||
"5,6,7,8,9": [h._5, h._past],
|
||||
"10,11,12,13,14": [h._10, h._past],
|
||||
"15,16,17,18,19": [h._15, h._past],
|
||||
"20,21,22,23,24": [h._20, h._past],
|
||||
"25,26,27,28,29": [h._25, h._past],
|
||||
"30,31,32,33,34": [h._half, h._past],
|
||||
"35,36,37,38,39": [h._25, h._to],
|
||||
"40,41,42,43,44": [h._20, h._to],
|
||||
"45,46,47,48,49": [h._15, h._to],
|
||||
"50,51,52,53,54": [h._10, h._to],
|
||||
"55,56,57,58,59": [h._5, h._to]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": {9:[6,7,8,9,10,11]},
|
||||
"1,13": {6:[1,2,3]},
|
||||
"2,14": {7:[9,10,11]},
|
||||
"3,15": {6:[7,8,9,10,11]},
|
||||
"4,16": {7:[1,2,3,4]},
|
||||
"5,17": {7:[5,6,7,8]},
|
||||
"6,18": {6:[4,5,6]},
|
||||
"7,19": {9:[1,2,3,4,5]},
|
||||
"8,20": {8:[1,2,3,4,5]},
|
||||
"9,21": {5:[8,9,10,11]},
|
||||
"10,22": {10:[1,2,3]},
|
||||
"11,23": {8:[6,7,8,9,10,11]}
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
window,_uhr.register('en', layout);
|
81
uhr-fr.js
81
uhr-fr.js
|
@ -1,81 +0,0 @@
|
|||
|
||||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var h = {
|
||||
"_il_est": {1:[1,2,4,5,6]},
|
||||
"_et": {8:[1,2]},
|
||||
"_moins": {7:[1,2,3,4,5]},
|
||||
"_demie": {10:[4,5,6,7,8]},
|
||||
"_heures": {6:[6,7,8,9,10,11]},
|
||||
"_le": {7:[7,8]},
|
||||
"_5": {9:[7,8,9,10]},
|
||||
"_10": {7:[9,10,11]},
|
||||
"_15": {8:[4,5,6,7,8]},
|
||||
"_20": {9:[1,2,3,4,5]},
|
||||
"_25": {9:[1,2,3,4,5,6,7,8,9,10]}
|
||||
};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Français',
|
||||
"letters": [
|
||||
'ILNESTODEUX',
|
||||
'QUATRETROIS',
|
||||
'NEUFUNESEPT',
|
||||
'HUITSIXCINQ',
|
||||
'MIDIXMINUIT',
|
||||
'ONZERHEURES',
|
||||
'MOINSOLEDIX',
|
||||
'ETRQUARTPMD',
|
||||
'VINGT-CINQU',
|
||||
'ETSDEMIEPAM'
|
||||
],
|
||||
"permanent": h._il_est,
|
||||
"minutes": {
|
||||
"5,6,7,8,9": h._5,
|
||||
"10,11,12,13,14": h._10,
|
||||
"15,16,17,18,19": [h._et, h._15],
|
||||
"20,21,22,23,24": h._20,
|
||||
"25,26,27,28,29": h._25,
|
||||
"30,31,32,33,34": [h._et, h._demie],
|
||||
"35,36,37,38,39": [h._moins, h._25],
|
||||
"40,41,42,43,44": [h._moins, h._20],
|
||||
"45,46,47,48,49": [h._moins, h._le, h._15],
|
||||
"50,51,52,53,54": [h._moins, h._10],
|
||||
"55,56,57,58,59": [h._moins, h._5]
|
||||
},
|
||||
"hours": {
|
||||
"0": {5:[6,7,8,9,10,11]},
|
||||
"1,13": [{3:[5,6,7]}, h._heures],
|
||||
"2,14": [{1:[8,9,10,11]}, h._heures],
|
||||
"3,15": [{2:[7,8,9,10,11]}, h._heures],
|
||||
"4,16": [{2:[1,2,3,4,5,6]}, h._heures],
|
||||
"5,17": [{4:[8,9,10,11]}, h._heures],
|
||||
"6,18": [{4:[5,6,7]}, h._heures],
|
||||
"7,19": [{3:[8,9,10,11]}, h._heures],
|
||||
"8,20": [{4:[1,2,3,4]}, h._heures],
|
||||
"9,21": [{3:[1,2,3,4]}, h._heures],
|
||||
"10,22": [{5:[3,4,5]}, h._heures],
|
||||
"11,23": [{6:[1,2,3,4]}, h._heures],
|
||||
"12": {5:[1,2,3,4]}
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
window,_uhr.register('fr', layout);
|
78
uhr-it.js
78
uhr-it.js
|
@ -1,78 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
var h = {
|
||||
"_sono_le": {1:[1,2,3,4,6,7]},
|
||||
"_e_l": {2:[1,3,4]},
|
||||
"_e": {8:[1]},
|
||||
"_meno": {7:[8,9,10,11]},
|
||||
"_mezza": {10:[7,8,9,10,11]},
|
||||
"_5": {9:[6,7,8,9,10,11]},
|
||||
"_10": {10:[1,2,3,4,5]},
|
||||
"_un_quarto": {8:[3,4,6,7,8,9,10,11]},
|
||||
"_20": {9:[1,2,3,4,5]},
|
||||
"_25": {9:[1,2,3,4,5,6,7,8,9,10,11]}
|
||||
};
|
||||
var layout = {
|
||||
"version": 2,
|
||||
"language": 'Italiano',
|
||||
"letters": [
|
||||
'SONORLEBORE',
|
||||
'ÈRL\'UNASDUE',
|
||||
'TREOTTONOVE',
|
||||
'DIECIUNDICI',
|
||||
'DODICISETTE',
|
||||
'QUATTROCSEI',
|
||||
'CINQUEAMENO',
|
||||
'ECUNOQUARTO',
|
||||
'VENTICINQUE',
|
||||
'DIECIPMEZZA'
|
||||
],
|
||||
"permanent": [],
|
||||
"minutes": {
|
||||
"5,6,7,8,9": [h._e, h._5],
|
||||
"10,11,12,13,14": [h._e, h._10],
|
||||
"15,16,17,18,19": [h._e, h._un_quarto],
|
||||
"20,21,22,23,24": [h._e, h._20],
|
||||
"25,26,27,28,29": [h._e, h._25],
|
||||
"30,31,32,33,34": [h._e, h._mezza],
|
||||
"35,36,37,38,39": [h._meno, h._25],
|
||||
"40,41,42,43,44": [h._meno, h._20],
|
||||
"45,46,47,48,49": [h._meno, h._un_quarto],
|
||||
"50,51,52,53,54": [h._meno, h._10],
|
||||
"55,56,57,58,59": [h._meno, h._5]
|
||||
},
|
||||
"hours": {
|
||||
"0,12": [h._sono_le, {5:[1,2,3,4,5,6]}],
|
||||
"1,13": [h._e_l, {2:[5,6,7]}],
|
||||
"2,14": [h._sono_le, {2:[9,10,11]}],
|
||||
"3,15": [h._sono_le, {3:[1,2,3]}],
|
||||
"4,16": [h._sono_le, {6:[1,2,3,4,5,6,7]}],
|
||||
"5,17": [h._sono_le, {7:[1,2,3,4,5,6]}],
|
||||
"6,18": [h._sono_le, {6:[9,10,11]}],
|
||||
"7,19": [h._sono_le, {5:[7,8,9,10,11]}],
|
||||
"8,20": [h._sono_le, {3:[4,5,6,7]}],
|
||||
"9,21": [h._sono_le, {3:[8,9,10,11]}],
|
||||
"10,22": [h._sono_le, {4:[1,2,3,4,5]}],
|
||||
"11,23": [h._sono_le, {4:[6,7,8,9,10,11]}]
|
||||
},
|
||||
"getHour": function(date) {
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 35) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
};
|
||||
window,_uhr.register('it', layout);
|
175
uhr.css
175
uhr.css
|
@ -1,175 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'Uhrenfont';
|
||||
src: url('uhr.woff') format('woff');
|
||||
}
|
||||
body {
|
||||
font-family: 'Uhrenfont', sans-serif;
|
||||
}
|
||||
.uhr {
|
||||
position: relative;
|
||||
margin: 0;
|
||||
transition: background-color 0.5s;
|
||||
}
|
||||
.uhr .reflection {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: radial-gradient(225em 45em at 160% 0, rgba(255, 255, 255, 0.4) 0, rgba(255, 255, 255, 0.05) 40%, rgba(255, 255, 255, 0) 40%) no-repeat scroll;
|
||||
display: block;
|
||||
margin: 0.15em;
|
||||
}
|
||||
#themeswitcher {
|
||||
}
|
||||
.uhr .letterarea {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 12%;
|
||||
bottom: 12%;
|
||||
left: 12%;
|
||||
right: 12%;
|
||||
overflow: hidden;
|
||||
font-size: 200%;
|
||||
}
|
||||
.item {
|
||||
transition: box-shadow 0.5s, text-shadow 0.5s, border-color 0.5s, color 0.5s;
|
||||
}
|
||||
.dot {
|
||||
position: absolute;
|
||||
display: block;
|
||||
height: 0;
|
||||
width: 0;
|
||||
border: 0.2em solid;
|
||||
border-radius: 1em;
|
||||
}
|
||||
.dot.active {
|
||||
border-color: #eee;
|
||||
box-shadow: 0 0 0.2em #eee;
|
||||
}
|
||||
.dot1 {
|
||||
top: 3.75%;
|
||||
left: 3.75%;
|
||||
}
|
||||
.dot2 {
|
||||
top: 3.75%;
|
||||
right: 3.75%;
|
||||
}
|
||||
.dot3 {
|
||||
bottom: 3.75%;
|
||||
right: 3.75%;
|
||||
}
|
||||
.dot4 {
|
||||
bottom: 3.75%;
|
||||
left: 3.75%;
|
||||
}
|
||||
.letter {
|
||||
height: 10%;
|
||||
width: 9.0909%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
line-height: 160%;
|
||||
}
|
||||
.letter.active {
|
||||
color: #eee;
|
||||
text-shadow: 0 0 0.2em #eee;
|
||||
}
|
||||
.onoffswitch {
|
||||
position: relative;
|
||||
width: 86px;
|
||||
margin: 1em;
|
||||
-webkit-user-select:none;
|
||||
-moz-user-select:none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
.onoffswitch-checkbox {
|
||||
display: none;
|
||||
}
|
||||
.onoffswitch-label {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
cursor: pointer;
|
||||
border: 2px solid #999;
|
||||
border-radius: 50px;
|
||||
}
|
||||
.onoffswitch-inner {
|
||||
width: 200%;
|
||||
margin-left: -100%;
|
||||
-moz-transition: margin 0.3s ease-in 0s;
|
||||
-webkit-transition: margin 0.3s ease-in 0s;
|
||||
-o-transition: margin 0.3s ease-in 0s;
|
||||
transition: margin 0.3s ease-in 0s;
|
||||
}
|
||||
.onoffswitch-inner:before, .onoffswitch-inner:after {
|
||||
float: left;
|
||||
width: 50%;
|
||||
height: 24px;
|
||||
padding: 0;
|
||||
line-height: 24px;
|
||||
font-size: 18px;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.onoffswitch-inner:before {
|
||||
content: "EIN";
|
||||
padding-left: 12px;
|
||||
color: #eee;
|
||||
transition: background-color 0.5s;
|
||||
}
|
||||
.onoffswitch-inner:after {
|
||||
content: "AUS";
|
||||
padding-right: 12px;
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.onoffswitch-switch {
|
||||
width: 30px;
|
||||
margin: -3px;
|
||||
background: #fff;
|
||||
border: 2px solid #999;
|
||||
border-radius: 50px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 58px;
|
||||
-moz-transition: all 0.3s ease-in 0s;
|
||||
-webkit-transition: all 0.3s ease-in 0s;
|
||||
-o-transition: all 0.3s ease-in 0s;
|
||||
transition: all 0.3s ease-in 0s;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
||||
right: 0px;
|
||||
}
|
||||
#disclaimer {
|
||||
font-size: 0.5em;
|
||||
}
|
||||
#disclaimer a {
|
||||
color: #444;
|
||||
text-decoration: underline;
|
||||
}
|
457
uhr.js
457
uhr.js
|
@ -1,457 +0,0 @@
|
|||
/*
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
(function($) {
|
||||
'use strict';
|
||||
|
||||
if (window._uhr !== undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
window._uhr = {
|
||||
id: 0,
|
||||
languages: [],
|
||||
themes: [],
|
||||
register: function(code, language) {
|
||||
for (var i = 0; i < this.languages.length; i++) {
|
||||
if (code == this.languages[i].code) {
|
||||
console.error('Error: Language code ' + code + ' cannot be registered for language "' + language.language + '" because it is already registered for language "' + this.languages[i].language + '"!');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
language.code = code;
|
||||
this.languages.push(language);
|
||||
}
|
||||
};
|
||||
// auto-detect themes
|
||||
var styleSheets = $('link[rel=stylesheet]');
|
||||
for (var i = 0; i < styleSheets.length; i++) {
|
||||
var styleSheet = $(styleSheets[i]);
|
||||
var styleClass = styleSheet.attr('data-class');
|
||||
if (styleClass !== undefined) {
|
||||
var name = styleSheet.attr('data-name');
|
||||
if (name === undefined) {
|
||||
name = styleClass;
|
||||
}
|
||||
window._uhr.themes.push({'styleClass': styleClass, 'name': name});
|
||||
}
|
||||
}
|
||||
// fall-back if no theme was included
|
||||
if (window._uhr.themes.length == 0) {
|
||||
window._uhr.themes.push({});
|
||||
}
|
||||
$.widget("fritteli.uhr", {
|
||||
options: {
|
||||
width: '100%',
|
||||
status: 'on',
|
||||
language: 'de_CH',
|
||||
theme: window._uhr.themes[0].styleClass,
|
||||
force: false,
|
||||
controls: true
|
||||
},
|
||||
start: function() {
|
||||
if (!this._isOn()) {
|
||||
var uhr = this;
|
||||
this._timer = window.setInterval(function() {
|
||||
uhr.options.time = new Date();
|
||||
uhr._update();
|
||||
}, 1000);
|
||||
this._update();
|
||||
this._setCookie('uhr-status', 'on');
|
||||
} else {
|
||||
}
|
||||
},
|
||||
stop: function() {
|
||||
if(this._isOn()) {
|
||||
window.clearInterval(this._timer);
|
||||
this._timer = null;
|
||||
this._update();
|
||||
this._setCookie('uhr-status', 'off');
|
||||
}
|
||||
},
|
||||
toggle: function() {
|
||||
if(this._isOn()) {
|
||||
this.stop();
|
||||
} else {
|
||||
this.start();
|
||||
}
|
||||
},
|
||||
language: function(languageKey) {
|
||||
if (languageKey !== this.options.language) {
|
||||
this.options.language = languageKey;
|
||||
var renderer = new UhrRenderer(this._language(), this.element.find('.letterarea'));
|
||||
var uhr = this;
|
||||
renderer.render(this, function() {
|
||||
uhr._currentMinute = -1;
|
||||
uhr._update();
|
||||
});
|
||||
this._setCookie('uhr-language', languageKey);
|
||||
this._update();
|
||||
}
|
||||
},
|
||||
theme: function(theme) {
|
||||
if (theme != this.options.theme) {
|
||||
this.element.removeClass(this.options.theme).addClass(theme);
|
||||
$('#uhr-onoffswitch' + this._id).removeClass(this.options.theme).addClass(theme);
|
||||
this.options.theme = theme;
|
||||
this._setCookie('uhr-theme', theme);
|
||||
}
|
||||
},
|
||||
time: function(time) {
|
||||
this._currentMinute = -1;
|
||||
if (time == null) {
|
||||
this.options.time = new Date();
|
||||
} else {
|
||||
if (this._timer != null) {
|
||||
window.clearInterval(this._timer);
|
||||
}
|
||||
this.options.time = time;
|
||||
}
|
||||
this._update();
|
||||
},
|
||||
// private variables
|
||||
_id: -1,
|
||||
_timer: null,
|
||||
_currentMinute: -1,
|
||||
// private methods
|
||||
_isOn: function() {
|
||||
return this._timer !== null;
|
||||
},
|
||||
_update: function() {
|
||||
if (this._isOn()) {
|
||||
var time = this.options.time;
|
||||
if (time.getMinutes() == this._currentMinute) {
|
||||
return;
|
||||
}
|
||||
this._currentMinute = time.getMinutes();
|
||||
this._show(time);
|
||||
} else {
|
||||
this._clear();
|
||||
this._currentMinute = -1;
|
||||
}
|
||||
},
|
||||
_show: function(time) {
|
||||
var dotMinute = this._getDotMinute(time);
|
||||
dotMinute=0;
|
||||
var hour = this._getHour(time);
|
||||
var coarseMinute = this._getCoarseMinute(time);
|
||||
this._clear();
|
||||
this._highlight('on');
|
||||
for (var i = 1; i <= dotMinute; i++) {
|
||||
this._highlight('dot' + i);
|
||||
}
|
||||
this._highlight('minute' + coarseMinute);
|
||||
this._highlight('hour' + hour);
|
||||
},
|
||||
_language: function() {
|
||||
for (var i = 0; i < window._uhr.languages.length; i++) {
|
||||
var language = window._uhr.languages[i];
|
||||
if (language.code == this.options.language) {
|
||||
return language;
|
||||
}
|
||||
}
|
||||
// fallback: return empty object
|
||||
return {};
|
||||
},
|
||||
_highlight: function(itemClass) {
|
||||
this.element.find('.item.' + itemClass).addClass('active');
|
||||
},
|
||||
_clear: function() {
|
||||
this.element.find('.item').removeClass('active');
|
||||
},
|
||||
_getHour: function(date) {
|
||||
if (typeof this._language().getHour === 'function') {
|
||||
return this._language().getHour(date);
|
||||
}
|
||||
var hour = date.getHours();
|
||||
if (date.getMinutes() >= 25) {
|
||||
return (hour + 1) % 24;
|
||||
}
|
||||
return hour;
|
||||
},
|
||||
_getCoarseMinute: function(date) {
|
||||
if (typeof this._language().getCoarseMinute === 'function') {
|
||||
return this._language().getCoarseMinute(date);
|
||||
}
|
||||
return date.getMinutes();
|
||||
},
|
||||
_getDotMinute: function(date) {
|
||||
if (typeof this._language().getDotMinute === 'function') {
|
||||
return this._language().getDotMinute(date);
|
||||
}
|
||||
var minutes = date.getMinutes();
|
||||
return minutes % 5;
|
||||
},
|
||||
_create: function() {
|
||||
this._id = window._uhr.id++;
|
||||
var userTime = this.options.time;
|
||||
if (this.options.time === undefined) {
|
||||
this.options.time = new Date();
|
||||
}
|
||||
this._setupHTML();
|
||||
this._wireFunctionality();
|
||||
if (userTime !== undefined) {
|
||||
this.time(userTime);
|
||||
}
|
||||
},
|
||||
_setupHTML: function() {
|
||||
var e = this.element;
|
||||
// Base clock area
|
||||
e.addClass('uhr');
|
||||
e.empty();
|
||||
e.append('<span class="item dot dot1"></span>');
|
||||
e.append('<span class="item dot dot2"></span>');
|
||||
e.append('<span class="item dot dot3"></span>');
|
||||
e.append('<span class="item dot dot4"></span>');
|
||||
e.append('<div class="letterarea"></div>');
|
||||
e.append('<div class="reflection"></div>');
|
||||
e.css('width', this.options.width);
|
||||
var realWidth = e.width();
|
||||
e.width(realWidth);
|
||||
e.height(realWidth);
|
||||
e.css('font-size', (realWidth / 40) + 'px');
|
||||
|
||||
if (this.options.controls) {
|
||||
// on/off switch
|
||||
var toggleSwitch = $('<div class="onoffswitch" id="uhr-onoffswitch' + this._id + '"></div>');
|
||||
toggleSwitch.append('<input type="checkbox" class="onoffswitch-checkbox" id="uhr-onoffswitch-checkbox' + this._id + '" checked="checked" />');
|
||||
toggleSwitch.append('<label class="onoffswitch-label" for="uhr-onoffswitch-checkbox' + this._id + '">'
|
||||
+ '<div class="onoffswitch-inner"></div>'
|
||||
+ '<div class="onoffswitch-switch"></div>'
|
||||
+ '</label>');
|
||||
e.after(toggleSwitch);
|
||||
|
||||
// language chooser
|
||||
if (window._uhr.languages.length > 1) {
|
||||
var languageChooser = $('<select id="uhr-languagechooser' + this._id + '"></select>');
|
||||
for (var i = 0; i < window._uhr.languages.length; i++) {
|
||||
var language = window._uhr.languages[i];
|
||||
languageChooser.append('<option value="' + language.code + '">' + language.language + '</option>');
|
||||
}
|
||||
e.after(languageChooser);
|
||||
}
|
||||
|
||||
// theme chooser
|
||||
if (window._uhr.themes.length > 1) {
|
||||
var themeChooser = $('<select id="uhr-themechooser' + this._id + '"></select>');
|
||||
for (var i = 0; i < window._uhr.themes.length; i++) {
|
||||
var theme = window._uhr.themes[i];
|
||||
themeChooser.append('<option value="' + theme.styleClass + '">' + theme.name + '</option>');
|
||||
}
|
||||
e.after(themeChooser);
|
||||
}
|
||||
}
|
||||
},
|
||||
_wireFunctionality: function() {
|
||||
var uhr = this;
|
||||
|
||||
// on/off switch
|
||||
var toggleSwitch = $('#uhr-onoffswitch-checkbox' + this._id);
|
||||
toggleSwitch.on('click', function() {
|
||||
uhr.toggle();
|
||||
});
|
||||
var status = $.cookie('uhr-status' + this._id);
|
||||
if (status == undefined || this.options.force) {
|
||||
status = this.options.status;
|
||||
}
|
||||
toggleSwitch.prop('checked', status == 'on');
|
||||
if (status == 'on') {
|
||||
this.start();
|
||||
} else {
|
||||
this.stop();
|
||||
}
|
||||
|
||||
// language chooser
|
||||
var languageChooser = $('#uhr-languagechooser' + this._id);
|
||||
languageChooser.on('change', function() {
|
||||
uhr.language(this.value);
|
||||
});
|
||||
var selectedLanguage = $.cookie('uhr-language' + this._id);
|
||||
if (selectedLanguage == undefined || this.options.force) {
|
||||
selectedLanguage = this.options.language;
|
||||
}
|
||||
var found = false;
|
||||
for (var i = 0; i < window._uhr.languages.length; i++) {
|
||||
var code = window._uhr.languages[i].code;
|
||||
if (selectedLanguage == code) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
var fallback;
|
||||
if (window._uhr.languages.length > 0) {
|
||||
fallback = window._uhr.languages[0].code;
|
||||
} else {
|
||||
fallback = '';
|
||||
}
|
||||
console.warn("Language " + selectedLanguage + " not found! Using fallback: " + fallback);
|
||||
selectedLanguage = fallback;
|
||||
}
|
||||
languageChooser.val(selectedLanguage);
|
||||
this.options.language = "";
|
||||
this.language(selectedLanguage);
|
||||
|
||||
// theme chooser
|
||||
var themeChooser = $('#uhr-themechooser' + this._id);
|
||||
themeChooser.on('change', function() {
|
||||
uhr.theme(this.value);
|
||||
});
|
||||
var selectedTheme = $.cookie('uhr-theme' + this._id);
|
||||
if (selectedTheme == undefined || this.options.force) {
|
||||
selectedTheme = this.options.theme;
|
||||
}
|
||||
found = false;
|
||||
for (var i = 0; i < window._uhr.themes.length; i++) {
|
||||
var styleClass = window._uhr.themes[i].styleClass;
|
||||
if (selectedTheme == styleClass) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
var fallback = window._uhr.themes[0].styleClass;
|
||||
console.warn("Theme " + selectedTheme + " not found! Using fallback: " + fallback);
|
||||
selectedTheme = fallback;
|
||||
}
|
||||
themeChooser.val(selectedTheme);
|
||||
this.options.theme = "";
|
||||
this.theme(selectedTheme);
|
||||
},
|
||||
_setCookie: function(cookieName, cookieValue) {
|
||||
var options = {};
|
||||
if (this.options.cookiePath !== undefined) {
|
||||
options = {expires: 365, path: this.options.cookiePath};
|
||||
} else {
|
||||
options = {expires: 365};
|
||||
}
|
||||
$.cookie(cookieName + this._id, cookieValue, options);
|
||||
}
|
||||
});
|
||||
/**
|
||||
* Hilfsklasse zum Rendern der Uhr.
|
||||
* @param layout Layout-Objekt, das gerendert werden soll.
|
||||
* @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll.
|
||||
*/
|
||||
function UhrRenderer(layout, renderarea) {
|
||||
this.layout = layout;
|
||||
this.renderarea = renderarea;
|
||||
}
|
||||
UhrRenderer.prototype.render = function(uhr, beforeshow) {
|
||||
var renderer = this;
|
||||
if (this.layout._parsed === undefined) {
|
||||
switch (this.layout.version) {
|
||||
case 2:
|
||||
var delegate = new _UhrRendererV2Delegate(this.layout);
|
||||
this.layout._parsed = delegate.parse();
|
||||
break;
|
||||
default:
|
||||
console.warn("Unknown layout version: '" + this.layout.version + "'");
|
||||
return;
|
||||
}
|
||||
}
|
||||
var letters = this.layout._parsed;
|
||||
this.renderarea.fadeOut('fast', function() {
|
||||
renderer.renderarea.empty();
|
||||
for (var y = 0; y < letters.length; y++) {
|
||||
for (var x = 0; x < letters[y].length; x++) {
|
||||
var letter = letters[y][x];
|
||||
renderer.renderarea.append(letter.toString());
|
||||
}
|
||||
if (y < letters.length - 1) {
|
||||
renderer.renderarea.append('<br/>');
|
||||
}
|
||||
}
|
||||
if (typeof beforeshow === 'function') {
|
||||
beforeshow();
|
||||
}
|
||||
renderer.renderarea.fadeIn('fast');
|
||||
});
|
||||
};
|
||||
function _UhrRendererV2Delegate(layout) {
|
||||
this.layout = layout;
|
||||
this._parseArrayOrObject = function(letters, styleClass, input) {
|
||||
if (Array.isArray(input)) {
|
||||
for (var i = 0; i < input.length; i++) {
|
||||
this._parseObject(letters, styleClass, input[i]);
|
||||
}
|
||||
} else {
|
||||
this._parseObject(letters, styleClass, input);
|
||||
}
|
||||
}
|
||||
this._parseObject = function(letters, styleClass, object) {
|
||||
for (var line in object) {
|
||||
if (object.hasOwnProperty(line)) {
|
||||
var highlightLetters = object[line];
|
||||
for (var i = 0; i < highlightLetters.length; i++) {
|
||||
var x = highlightLetters[i] - 1;
|
||||
letters[line - 1][x].addStyle(styleClass);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this._parseTimeDefinition = function(letters, styleClass, definition) {
|
||||
for (var listString in definition) {
|
||||
if (definition.hasOwnProperty(listString)) {
|
||||
var array = listString.split(',');
|
||||
var highlightLetters = definition[listString];
|
||||
for (var index = 0; index < array.length; index++) {
|
||||
this._parseArrayOrObject(letters, styleClass + array[index], highlightLetters);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_UhrRendererV2Delegate.prototype.parse = function() {
|
||||
var letters = [];
|
||||
for (var i = 0; i < this.layout.letters.length; i++) {
|
||||
var line = [];
|
||||
var string = this.layout.letters[i];
|
||||
for (var c = 0; c < string.length; c++) {
|
||||
var character = new Letter(string[c]);
|
||||
line.push(character);
|
||||
}
|
||||
letters.push(line);
|
||||
}
|
||||
this._parseArrayOrObject(letters, 'on', this.layout.permanent);
|
||||
this._parseTimeDefinition(letters, 'minute', this.layout.minutes);
|
||||
this._parseTimeDefinition(letters, 'hour', this.layout.hours);
|
||||
return letters;
|
||||
};
|
||||
/**
|
||||
* Ein Buchstabe. Hilfsklasse für den Renderer und Inhalt der Layout-Arrays.
|
||||
* @param value Der Buchstabe, der Dargestellt werden soll.
|
||||
* @param style Die CSS-Styleklassen des Buchstabens.
|
||||
*/
|
||||
function Letter(value, style) {
|
||||
this.value = value;
|
||||
this.style = style || '';
|
||||
this.getStyle = function() {
|
||||
return 'item letter ' + this.style;
|
||||
};
|
||||
this.getValue = function() {
|
||||
return value;
|
||||
}
|
||||
this.addStyle = function(style) {
|
||||
if (this.style == '') {
|
||||
this.style = style;
|
||||
} else {
|
||||
this.style += ' ' + style;
|
||||
}
|
||||
}
|
||||
}
|
||||
Letter.prototype.toString = function letterToString() {
|
||||
return '<span class="' + this.getStyle() + '">' + this.getValue() + '</span>';
|
||||
};
|
||||
})(jQuery);
|
Loading…
Reference in a new issue