removed the window.uhr global variable! hooray!

This commit is contained in:
Manuel Friedli 2014-07-03 20:33:26 +02:00
parent 5a9ec0e0df
commit 85b5670dfc
8 changed files with 43 additions and 46 deletions

View file

@ -12,6 +12,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
var h = { var h = {
"_es_ist": {1:[1,2,4,5,6]}, "_es_ist": {1:[1,2,4,5,6]},
"_nach": {4:[8,9,10,11]}, "_nach": {4:[8,9,10,11]},
@ -67,4 +68,4 @@ var layout = {
"11,23": {5:[6,7,8]} "11,23": {5:[6,7,8]}
} }
}; };
window.uhr.register('de', layout); $.fritteli.uhr.register('de', layout);

View file

@ -12,6 +12,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
// hilfsvariablen // hilfsvariablen
var h = { var h = {
"_es_isch": {1:[1,2,4,5,6,7]}, "_es_isch": {1:[1,2,4,5,6,7]},
@ -93,4 +94,4 @@ var layout = {
} }
}; };
// Das Layout bei der Uhr unter dem Code "de_CH" registrieren. // Das Layout bei der Uhr unter dem Code "de_CH" registrieren.
window.uhr.register('de_CH', layout); $.fritteli.uhr.register('de_CH', layout);

View file

@ -12,6 +12,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
var h = { var h = {
"_es_isch": {1:[1,2,4,5,6,7]}, "_es_isch": {1:[1,2,4,5,6,7]},
"_genau": {3:[7,8,9,10,11]}, "_genau": {3:[7,8,9,10,11]},
@ -68,4 +69,4 @@ var layout = {
"11,23": {9:[8,9,10,11]} "11,23": {9:[8,9,10,11]}
} }
}; };
window.uhr.register('de_CH_genau', layout); $.fritteli.uhr.register('de_CH_genau', layout);

View file

@ -12,6 +12,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
var h = { var h = {
"_it_is": {1:[1,2,4,5]}, "_it_is": {1:[1,2,4,5]},
"_half": {4:[1,2,3,4]}, "_half": {4:[1,2,3,4]},
@ -76,4 +77,4 @@ var layout = {
return hour; return hour;
} }
}; };
window.uhr.register('en', layout); $.fritteli.uhr.register('en', layout);

View file

@ -13,6 +13,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
var h = { var h = {
"_il_est": {1:[1,2,4,5,6]}, "_il_est": {1:[1,2,4,5,6]},
"_et": {8:[1,2]}, "_et": {8:[1,2]},
@ -78,4 +79,4 @@ var layout = {
return hour; return hour;
} }
}; };
window.uhr.register('fr', layout); $.fritteli.uhr.register('fr', layout);

View file

@ -12,6 +12,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
'use strict';
var h = { var h = {
"_sono_le": {1:[1,2,3,4,6,7]}, "_sono_le": {1:[1,2,3,4,6,7]},
"_e_l": {2:[1,3,4]}, "_e_l": {2:[1,3,4]},
@ -75,4 +76,4 @@ var layout = {
return hour; return hour;
} }
}; };
window.uhr.register('it', layout); $.fritteli.uhr.register('it', layout);

View file

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
"languages": [], "languages": [],
"themes": [], "themes": [],
registerLanguage: function registerLanguage(code, language) { registerLanguage: function registerLanguage(code, language) {
var alreadyExists = this.languages.reduce(function (exists, element) { var alreadyExists = uhrGlobals.languages.reduce(function (exists, element) {
if (exists) { if (exists) {
return true; return true;
} }
@ -31,20 +31,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}, false); }, false);
if (!alreadyExists) { if (!alreadyExists) {
language.code = code; language.code = code;
this.languages.push(language); uhrGlobals.languages.push(language);
} }
} }
}; };
if (window.uhr !== undefined) {
return;
}
window.uhr = {
id: 0,
languages: [],
themes: [],
register: uhrGlobals.registerLanguage
};
// auto-detect themes // auto-detect themes
var styleSheets = $('link[rel=stylesheet]'); var styleSheets = $('link[rel=stylesheet]');
for (var i = 0; i < styleSheets.length; i++) { for (var i = 0; i < styleSheets.length; i++) {
@ -55,12 +46,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
if (name === undefined) { if (name === undefined) {
name = styleClass; name = styleClass;
} }
window.uhr.themes.push({'styleClass': styleClass, 'name': name}); uhrGlobals.themes.push({'styleClass': styleClass, 'name': name});
} }
} }
// fall-back if no theme was included // fall-back if no theme was included
if (window.uhr.themes.length === 0) { if (uhrGlobals.themes.length === 0) {
window.uhr.themes.push({}); uhrGlobals.themes.push({});
} }
// public interface methods (exported later) // public interface methods (exported later)
@ -126,7 +117,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// private interface methods // private interface methods
var create = function create() { var create = function create() {
this._id = window.uhr.id++; this._id = uhrGlobals.id++;
var userTime = this.options.time; var userTime = this.options.time;
if (this.options.time === undefined) { if (this.options.time === undefined) {
this.options.time = new Date(); this.options.time = new Date();
@ -167,20 +158,20 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
e.after(toggleSwitch); e.after(toggleSwitch);
// language chooser // language chooser
if (window.uhr.languages.length > 1) { if (uhrGlobals.languages.length > 1) {
var languageChooser = $('<select id="uhr-languagechooser' + uhr._id + '"></select>'); var languageChooser = $('<select id="uhr-languagechooser' + uhr._id + '"></select>');
for (var i = 0; i < window.uhr.languages.length; i++) { for (var i = 0; i < uhrGlobals.languages.length; i++) {
var language = window.uhr.languages[i]; var language = uhrGlobals.languages[i];
languageChooser.append('<option value="' + language.code + '">' + language.language + '</option>'); languageChooser.append('<option value="' + language.code + '">' + language.language + '</option>');
} }
e.after(languageChooser); e.after(languageChooser);
} }
// theme chooser // theme chooser
if (window.uhr.themes.length > 1) { if (uhrGlobals.themes.length > 1) {
var themeChooser = $('<select id="uhr-themechooser' + uhr._id + '"></select>'); var themeChooser = $('<select id="uhr-themechooser' + uhr._id + '"></select>');
for (var i = 0; i < window.uhr.themes.length; i++) { for (var i = 0; i < uhrGlobals.themes.length; i++) {
var theme = window.uhr.themes[i]; var theme = uhrGlobals.themes[i];
themeChooser.append('<option value="' + theme.styleClass + '">' + theme.name + '</option>'); themeChooser.append('<option value="' + theme.styleClass + '">' + theme.name + '</option>');
} }
e.after(themeChooser); e.after(themeChooser);
@ -215,8 +206,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
selectedLanguage = uhr.options.language; selectedLanguage = uhr.options.language;
} }
var found = false; var found = false;
for (var i = 0; i < window.uhr.languages.length; i++) { for (var i = 0; i < uhrGlobals.languages.length; i++) {
var code = window.uhr.languages[i].code; var code = uhrGlobals.languages[i].code;
if (selectedLanguage === code) { if (selectedLanguage === code) {
found = true; found = true;
break; break;
@ -224,8 +215,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
} }
if (!found) { if (!found) {
var fallback; var fallback;
if (window.uhr.languages.length > 0) { if (uhrGlobals.languages.length > 0) {
fallback = window.uhr.languages[0].code; fallback = uhrGlobals.languages[0].code;
} else { } else {
fallback = ''; fallback = '';
} }
@ -246,15 +237,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
selectedTheme = uhr.options.theme; selectedTheme = uhr.options.theme;
} }
found = false; found = false;
for (var i = 0; i < window.uhr.themes.length; i++) { for (var i = 0; i < uhrGlobals.themes.length; i++) {
var styleClass = window.uhr.themes[i].styleClass; var styleClass = uhrGlobals.themes[i].styleClass;
if (selectedTheme === styleClass) { if (selectedTheme === styleClass) {
found = true; found = true;
break; break;
} }
} }
if (!found) { if (!found) {
var fallback = window.uhr.themes[0].styleClass; var fallback = uhrGlobals.themes[0].styleClass;
console.warn("Theme " + selectedTheme + " not found! Using fallback: " + fallback); console.warn("Theme " + selectedTheme + " not found! Using fallback: " + fallback);
selectedTheme = fallback; selectedTheme = fallback;
} }
@ -332,7 +323,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
}; };
var language = function language(uhr) { var language = function language(uhr) {
var matchingLanguages = window.uhr.languages.filter(function (element) { var matchingLanguages = uhrGlobals.languages.filter(function (element) {
return (element.code === this.options.language) return (element.code === this.options.language)
}, uhr); }, uhr);
if (matchingLanguages.length > 0) { if (matchingLanguages.length > 0) {
@ -340,14 +331,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
} }
// fallback: return empty object // fallback: return empty object
return {}; return {};
/* for (var i = 0; i < window.uhr.languages.length; i++) {
var language = window.uhr.languages[i];
if (language.code == uhr.options.language) {
return language;
}
}
// fallback: return empty object
return {};*/
}; };
$.widget("fritteli.uhr", { $.widget("fritteli.uhr", {
@ -355,7 +338,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
width: '100%', width: '100%',
status: 'on', status: 'on',
language: 'de_CH', language: 'de_CH',
theme: window.uhr.themes[0].styleClass, theme: uhrGlobals.themes[0].styleClass,
force: false, force: false,
controls: true controls: true
}, },
@ -372,6 +355,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
"_timer": null, "_timer": null,
"_currentMinute": -1 "_currentMinute": -1
}); });
$.fritteli.uhr.register = uhrGlobals.registerLanguage;
/** /**
* Hilfsklasse zum Rendern der Uhr. * Hilfsklasse zum Rendern der Uhr.
* @param layout Layout-Objekt, das gerendert werden soll. * @param layout Layout-Objekt, das gerendert werden soll.

View file

@ -5,8 +5,12 @@
<title>Test</title> <title>Test</title>
<link rel="stylesheet" type="text/css" href="../css/uhr.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"/> <link rel="stylesheet" type="text/css" href="../css/uhr-black.css" data-class="black"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-pink.css" data-class="pink"/> <link rel="stylesheet" type="text/css" href="../css/uhr-white.css" data-class="white"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-red.css" data-class="red"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-yellow.css" data-class="yellow"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-green.css" data-class="green"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-blue.css" data-class="blue"/> <link rel="stylesheet" type="text/css" href="../css/uhr-blue.css" data-class="blue"/>
<link rel="stylesheet" type="text/css" href="../css/uhr-pink.css" data-class="pink"/>
<script src="../lib/jquery-2.1.0.min.js"></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-ui-1.10.4.custom.min.js"></script>
<script src="../lib/jquery-cookie-1.4.0.js"></script> <script src="../lib/jquery-cookie-1.4.0.js"></script>
@ -14,6 +18,9 @@
<script src="../js/uhr-de_CH.js"></script> <script src="../js/uhr-de_CH.js"></script>
<script src="../js/uhr-de_CH_genau.js"></script> <script src="../js/uhr-de_CH_genau.js"></script>
<script src="../js/uhr-de.js"></script> <script src="../js/uhr-de.js"></script>
<script src="../js/uhr-en.js"></script>
<script src="../js/uhr-fr.js"></script>
<script src="../js/uhr-it.js"></script>
</head> </head>
<body> <body>
<div id="u1"></div> <div id="u1"></div>
@ -21,7 +28,7 @@
<div id="u3"></div> <div id="u3"></div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function () { $(document).ready(function () {
$('div').uhr({'width':'200px','controls':false}); $('div').uhr({'width':'200px','controls':true});
}); });
</script> </script>
</body> </body>