make auto-detection more robust and include a fallback if cookie or config
doesn't match available themes
This commit is contained in:
parent
ae3da935be
commit
448747626c
1 changed files with 17 additions and 0 deletions
17
uhr.js
17
uhr.js
|
@ -37,6 +37,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
window._uhr.themes.push({'class': styleClass, 'name': name});
|
window._uhr.themes.push({'class': styleClass, 'name': name});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// fall-back if no theme was included
|
||||||
|
if (window._uhr.themes.length == 0) {
|
||||||
|
window._uhr.themes.push({});
|
||||||
|
}
|
||||||
$.widget("fritteli.uhr", {
|
$.widget("fritteli.uhr", {
|
||||||
options: {
|
options: {
|
||||||
width: '100%',
|
width: '100%',
|
||||||
|
@ -292,6 +296,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
if (selectedTheme == undefined || this.options.force) {
|
if (selectedTheme == undefined || this.options.force) {
|
||||||
selectedTheme = this.options.theme;
|
selectedTheme = this.options.theme;
|
||||||
}
|
}
|
||||||
|
var found = false;
|
||||||
|
for (var i = 0; i < window._uhr.themes.length; i++) {
|
||||||
|
var styleClass = window._uhr.themes[i].class;
|
||||||
|
if (selectedTheme == styleClass) {
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
var fallback = window._uhr.themes[0].class;
|
||||||
|
console.warn("Theme " + selectedTheme + " not found! Using fallback: " + fallback);
|
||||||
|
selectedTheme = fallback;
|
||||||
|
}
|
||||||
themeChooser.val(selectedTheme);
|
themeChooser.val(selectedTheme);
|
||||||
this.options.theme = "";
|
this.options.theme = "";
|
||||||
this.theme(selectedTheme);
|
this.theme(selectedTheme);
|
||||||
|
|
Loading…
Reference in a new issue