Merge branch 'feature/seconds-as-firstclass-citizens' into 'develop'
Feature/seconds as firstclass citizens This closes #8 See merge request !27
This commit is contained in:
commit
665fc71dd3
7 changed files with 369 additions and 318 deletions
11
README.md
11
README.md
|
@ -34,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. um 15:00 Uhr "ES ISCH GENAU DRÜ").
|
||||
`uhr-de_CH_genau.js` ist eine Variante von Berndeutsch, bei der zur vollen Stunde zusätzlich das Wort "genau" angezeigt wird (also z.B. um 15:00 Uhr "ES ISCH GENAU DRÜ").
|
||||
|
||||
2. Uhr-Element im HTML-Dokument einfügen
|
||||
----------------------------------------
|
||||
|
@ -56,10 +56,11 @@ Damit wird eine Uhr in der Standardkonfiguration erzeugt. Das heisst:
|
|||
* Die Uhr ist eingeschaltet
|
||||
* Die Bedienelemente werden angezeigt
|
||||
* Die Uhr passt sich in der Grösse an, wenn das Elternelement seine Grösse ändert
|
||||
* Die Uhr zeigt die aktuelle Stunde und Minute
|
||||
|
||||
Mit den Bedienelementen kannst du die Uhr ein- und ausschalten sowie Sprache und Farbe wechseln.
|
||||
Mit den Bedienelementen kannst du die Uhr ein- und ausschalten, zwischen Stunden/Minuten- oder Sekundenanzeige wechseln sowie Sprache und Farbe einstellen.
|
||||
|
||||
Wie du diese Optionen ändern kannst, verrät der nächte Abschnitt.
|
||||
Wie du diese Optionen ändern kannst, verrät der nächste Abschnitt.
|
||||
|
||||
Es kann natürlich auch eine Collection von Elementen übergeben werden. Mit
|
||||
|
||||
|
@ -75,10 +76,12 @@ Der uhr()-Methode kann ein Options-Objekt mitgegeben werden:
|
|||
status: 'on', // 'on' (default) oder 'off'
|
||||
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)
|
||||
mode: 'normal', // 'normal' (default): Die Uhr zeigt die aktuelle Zeit (Stunden und Minuten) in Worten an
|
||||
// 'seconds': Die Uhr zeigt die aktuellen Sekunden als grosse Ziffern an
|
||||
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-, Zeitmodus- 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
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
6.3.3
|
||||
6.4-SNAPSHOT
|
||||
|
|
22
css/uhr.css
22
css/uhr.css
|
@ -126,7 +126,7 @@ body {
|
|||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.onoffswitch-inner {
|
||||
.onoffswitch-inner, .modeswitch-inner {
|
||||
width: 200%;
|
||||
margin-left: -100%;
|
||||
-moz-transition: margin 0.3s ease-in 0s;
|
||||
|
@ -135,7 +135,7 @@ body {
|
|||
transition: margin 0.3s ease-in 0s;
|
||||
}
|
||||
|
||||
.onoffswitch-inner:before, .onoffswitch-inner:after {
|
||||
.onoffswitch-inner:before, .onoffswitch-inner:after, .modeswitch-inner:before, .modeswitch-inner:after {
|
||||
float: left;
|
||||
width: 50%;
|
||||
height: 24px;
|
||||
|
@ -180,7 +180,8 @@ body {
|
|||
transition: all 0.3s ease-in 0s;
|
||||
}
|
||||
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner,
|
||||
.onoffswitch-checkbox:checked + .onoffswitch-label .modeswitch-inner {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
|
@ -188,6 +189,21 @@ body {
|
|||
right: 0;
|
||||
}
|
||||
|
||||
.modeswitch-inner:before {
|
||||
content: "MIN";
|
||||
padding-left: 12px;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.modeswitch-inner:after {
|
||||
content: "SEC";
|
||||
padding-right: 12px;
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
a.uhr-configlink {
|
||||
cursor: pointer;
|
||||
background: url("../resources/settings.png") no-repeat;
|
||||
|
|
|
@ -37,7 +37,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<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>
|
||||
|
|
132
info/index.html
132
info/index.html
|
@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<meta name="viewport" content="width=device-width,user-scalable=yes,initial-scale=1"/>
|
||||
<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="../css/uhr-red.css" data-class="red"/>
|
||||
<link rel="stylesheet" type="text/css" href="info.css"/>
|
||||
<link rel="shortcut icon" type="image/png" href="../resources/favicon.png"/>
|
||||
<script type="text/javascript" src="../lib/jquery-2.1.0.min.js"></script>
|
||||
|
@ -44,7 +45,8 @@ 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 class="inline"><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>
|
||||
|
@ -60,16 +62,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<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="#license">Lizenz</a> hältst.</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="#license">Lizenz</a> hältst.</p>
|
||||
|
||||
<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>
|
||||
<div id="uhr1" style="display:inline-block"></div>
|
||||
<div id="uhr2" style="display:inline-block"></div>
|
||||
</a>
|
||||
|
||||
<h3 id="requirements">Benötigte Bibliotheken<a href="#toc" class="toclink">Zum Inhalt</a></h3>
|
||||
|
@ -84,9 +86,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<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<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>
|
||||
<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
|
||||
<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" />
|
||||
|
@ -108,12 +112,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
<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>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>
|
||||
<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/>
|
||||
|
@ -121,7 +127,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
</p>
|
||||
<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/>
|
||||
<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() {
|
||||
jQuery('#meine-uhr').uhr();
|
||||
|
@ -129,10 +136,10 @@ 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'
|
||||
|
@ -143,40 +150,47 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
|
||||
<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.
|
||||
<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>
|
||||
<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>.
|
||||
<br/>Typ: boolean
|
||||
<br/>Default: <code>true</code></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).
|
||||
<br/>Typ: boolean
|
||||
<br/>Default: <code>false</code></dd>
|
||||
<dt><code>language</code></dt>
|
||||
<dd>Die anfänglich ausgewählte Sprache als String. Welche Sprachen unterstützt werden, hängt davon ab, welche
|
||||
Sprachdateien eingebunden werden.
|
||||
<br/>Typ: String
|
||||
<br/>Default: <code>'100%'</code></dd>
|
||||
<br/>Default: <code>'de_CH'</code></dd>
|
||||
<dt><code>mode</code></dt>
|
||||
<dd>Der Zeit-Anzeigemodus, entweder <code>'normal'</code> (aktuelle Zeit in Worten anzeigen als "ES IST VIER
|
||||
UHR") oder <code>'seconds'</code> (aktuelle Sekunden als grosse Ziffern anzeigen).
|
||||
<br/>Typ: String
|
||||
<br/>Default: <code>'normal'</code></dd>
|
||||
<dt><code>status</code></dt>
|
||||
<dd>Der Anfangszustand der Uhr, entweder <code>'on'</code> oder <code>'off'</code>
|
||||
<br/>Typ: String
|
||||
<br/> Default: <code>'on'</code></dd>
|
||||
<dt><code>language</code></dt>
|
||||
<dd>Die anfänglich ausgewählte Sprache als String. Welche Sprachen unterstützt werden, hängt davon ab, welche Sprachdateien eingebunden werden.
|
||||
<br/>Typ: String
|
||||
<br/>Default: <code>'de_CH'</code></dd>
|
||||
<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.
|
||||
<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>
|
||||
<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).
|
||||
<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>.
|
||||
<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>
|
||||
<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.
|
||||
<br/>Typ: String
|
||||
<br/>Default: <code>'100%'</code></dd>
|
||||
</dl>
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
|
@ -186,23 +200,38 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
theme: 'black',
|
||||
controls: false,
|
||||
force: true,
|
||||
autoresize: false
|
||||
autoresize: false,
|
||||
mode: 'normal'
|
||||
});
|
||||
$('#uhr2').uhr({
|
||||
width: '200px',
|
||||
language: 'de_CH',
|
||||
theme: 'red',
|
||||
controls: false,
|
||||
force: true,
|
||||
autoresize: false,
|
||||
mode: 'seconds'
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
||||
</script>
|
||||
<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>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://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>
|
||||
<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>
|
||||
|
||||
|
@ -904,6 +933,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<<a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>>.</p>
|
||||
<<a href="http://www.gnu.org/philosophy/why-not-lgpl.html">http://www.gnu.org/philosophy/why-not-lgpl.html</a>>.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,247 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) Schweizerische Bundesbahnen SBB, 2014.
|
||||
*/
|
||||
|
||||
/*
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <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));
|
272
js/uhr.js
272
js/uhr.js
|
@ -77,7 +77,7 @@
|
|||
this.start();
|
||||
}
|
||||
};
|
||||
var setLanguage = function setLanugage(languageKey) {
|
||||
var setLanguage = function setLanguage(languageKey) {
|
||||
if (languageKey !== this.options.language) {
|
||||
this.options.language = languageKey;
|
||||
var renderer = new UhrRenderer(language.bind(this)(), this.element.find('.letterarea'));
|
||||
|
@ -109,6 +109,12 @@
|
|||
}
|
||||
update.bind(this)();
|
||||
};
|
||||
var setMode = function(mode) {
|
||||
this.options.mode = mode;
|
||||
this.currentMinute = -1;
|
||||
update.bind(this)();
|
||||
setCookie.bind(this)('uhr-mode', mode);
|
||||
};
|
||||
var setWidth = function setWidth(width) {
|
||||
var e = this.element;
|
||||
e.css('width', width);
|
||||
|
@ -168,6 +174,14 @@
|
|||
'<div class="onoffswitch-inner"></div>' + '<div class="onoffswitch-switch"></div>' + '</label>');
|
||||
content.append(toggleSwitch);
|
||||
|
||||
// time mode switch
|
||||
var modeSwitch = $('<div class="onoffswitch" id="uhr-modeswitch' + this.id + '"></div>');
|
||||
modeSwitch.append('<input type="checkbox" class="onoffswitch-checkbox" id="uhr-modeswitch-checkbox' + this.id +
|
||||
'" checked="checked" />');
|
||||
modeSwitch.append('<label class="onoffswitch-label" for="uhr-modeswitch-checkbox' + this.id + '">' +
|
||||
'<div class="modeswitch-inner"></div>' + '<div class="onoffswitch-switch"></div>' +
|
||||
'</label>');
|
||||
content.append(modeSwitch);
|
||||
// language chooser
|
||||
if (uhrGlobals.languages.length > 1) {
|
||||
var languageChooser = $('<select id="uhr-languagechooser' + this.id + '"></select>');
|
||||
|
@ -211,6 +225,27 @@
|
|||
this.stop();
|
||||
}
|
||||
|
||||
// time mode switch
|
||||
var modeSwitch = $('#uhr-modeswitch-checkbox' + this.id);
|
||||
modeSwitch.on('click', function() {
|
||||
if (this.options.mode === 'seconds') {
|
||||
setMode.bind(this)('normal');
|
||||
} else {
|
||||
setMode.bind(this)('seconds');
|
||||
}
|
||||
}.bind(this));
|
||||
|
||||
var mode = $.cookie('uhr-mode' + this.id);
|
||||
if (mode === undefined || this.options.force) {
|
||||
mode = this.options.mode;
|
||||
}
|
||||
modeSwitch.prop('checked', mode !== 'seconds');
|
||||
if (mode === 'seconds') {
|
||||
setMode.bind(this)('seconds');
|
||||
} else {
|
||||
setMode.bind(this)('normal');
|
||||
}
|
||||
|
||||
// language chooser
|
||||
var languageChooser = $('#uhr-languagechooser' + this.id);
|
||||
languageChooser.on('change', function() {
|
||||
|
@ -290,7 +325,7 @@
|
|||
var update = function update() {
|
||||
if (isOn.bind(this)()) {
|
||||
var time = this.options.time;
|
||||
if (!language.bind(this)().hasOwnProperty('seconds')) {
|
||||
if (!language.bind(this)().hasOwnProperty('seconds') && this.options.mode !== 'seconds') {
|
||||
if (time.getMinutes() === this.currentMinute) {
|
||||
return;
|
||||
}
|
||||
|
@ -308,13 +343,16 @@
|
|||
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);
|
||||
if (this.options.mode === 'seconds') {
|
||||
highlight.bind(this)('second' + second);
|
||||
} else {
|
||||
highlight.bind(this)('on');
|
||||
for (var i = 1; i <= dotMinute; i++) {
|
||||
highlight.bind(this)('dot' + i);
|
||||
}
|
||||
highlight.bind(this)('minute' + coarseMinute);
|
||||
highlight.bind(this)('hour' + hour);
|
||||
}
|
||||
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');
|
||||
|
@ -351,7 +389,6 @@
|
|||
}
|
||||
return hour;
|
||||
};
|
||||
|
||||
var language = function language() {
|
||||
var matchingLanguages = uhrGlobals.languages.filter(function(element) {
|
||||
return (element.code === this.options.language);
|
||||
|
@ -372,7 +409,8 @@
|
|||
force: false,
|
||||
controls: true,
|
||||
cookiePath: undefined,
|
||||
autoresize: true
|
||||
autoresize: true,
|
||||
mode: 'normal'
|
||||
},
|
||||
"start": start,
|
||||
"stop": stop,
|
||||
|
@ -380,6 +418,7 @@
|
|||
"language": setLanguage,
|
||||
"theme": setTheme,
|
||||
"time": setTime,
|
||||
"mode": setMode,
|
||||
"width": setWidth,
|
||||
// constructor method
|
||||
"_create": create
|
||||
|
@ -424,6 +463,213 @@
|
|||
}
|
||||
|
||||
function UhrRendererV2Delegate(layout) {
|
||||
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 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]
|
||||
};
|
||||
|
||||
function parseArrayOrObject(letters, styleClass, input) {
|
||||
if (typeof input !== 'undefined' && input !== null) {
|
||||
if (Array.isArray(input)) {
|
||||
|
@ -470,7 +716,11 @@
|
|||
letters.push(line);
|
||||
});
|
||||
parseArrayOrObject(letters, 'on', layout.permanent);
|
||||
parseTimeDefinition(letters, 'second', layout.seconds);
|
||||
if (typeof layout.seconds !== 'undefined' && layout.seconds !== null) {
|
||||
parseTimeDefinition(letters, 'second', layout.seconds);
|
||||
} else {
|
||||
parseTimeDefinition(letters, 'second', seconds)
|
||||
}
|
||||
parseTimeDefinition(letters, 'minute', layout.minutes);
|
||||
parseTimeDefinition(letters, 'hour', layout.hours);
|
||||
return letters;
|
||||
|
|
Loading…
Reference in a new issue