X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=Main.js;h=8f9789efe80bad6cb9c7bdea40fad0d3357104d2;hb=be221ae155290b04705bd1a6deeb82f495def012;hp=9a0a2093ad4318168bd60dccb07f469e7a2b7ccc;hpb=98d8bc4d5f0bc0b315b54369a8f288d93e9b2c44;p=Hacks.git diff --git a/Main.js b/Main.js index 9a0a209..8f9789e 100644 --- a/Main.js +++ b/Main.js @@ -12,6 +12,9 @@ enyo.kind({ {name: "hacksListSelector", kind: "ListSelector", popupAlign: "left", onChange: "selectHack", style: "width: 200px"}, {kind: "Spacer"}, {name: "notice", className: "notice"} + ]}, + {name: "noPrefsDialog", kind: "ModalDialog", caption: "No Preferences", components: [ + {kind: "Button", content: "Okay", onclick: "closeNoPrefsDialog"} ]} ]}, {name: "preferencesView", kind: "HackPreferences", onClose: "savePreferences"} @@ -29,12 +32,14 @@ enyo.kind({ ], create: function() { this.inherited(arguments); - /* - this.index = localStorage.getItem('hack.index'); - if (!this.index) + try { + this.index = localStorage.getItem('hack.index'); + if (!this.index) + this.index = 0; + } catch(e) { + enyo.log("Could not load last hack index"); this.index = 0; - */ - this.index = 0; + } this.lastScrollPos = 0; this.$.hacksCarousel.setCenterView(this.getHack(this.index)); }, @@ -68,23 +73,29 @@ enyo.kind({ }, openPreferences: function() { var view = this.$.hacksCarousel.fetchView('center'); - view.stop(); var meta = view.getPreferencesMetadata(); - if (meta) { + if (meta.length) { + view.stop(); var values = view.getPreferences(); this.$.preferencesView.load(this.hacksList[this.index].name, meta, values); this.selectView(this.$.preferencesView); } else { - alert("No prefs"); + this.$.noPrefsDialog.openAtCenter(); } }, savePreferences: function(inSender, prefs) { - enyo.log("Saving prefs: " + JSON.stringify(prefs)); - this.back(); var view = this.$.hacksCarousel.fetchView('center'); - view.setPreferences(prefs); - view.start(); + if (prefs == null) { + enyo.log("Clearing prefs"); + view.resetPreferences(prefs); + this.selectHack(this, this.index); + } else { + enyo.log("Saving prefs: " + JSON.stringify(prefs)); + view.setPreferences(prefs); + view.start(); + } + this.back(); }, windowActivated: function() { this.startHack(); @@ -92,7 +103,7 @@ enyo.kind({ windowDeactivated: function() { this.stopHack(); }, - selectHack: function(inSender, inValue, inOldValue) { + selectHack: function(inSender, inValue) { this.stopHack(); this.index = inValue; this.lastScrollPos = 0; @@ -108,7 +119,11 @@ enyo.kind({ //enyo.log('starting view ' + view); if (view) view.start(); - //localStorage.setItem('hack.index', this.index); + try { + localStorage.setItem('hack.index', this.index); + } catch(e) { + enyo.log("Could not set hack index"); + } }, stopHack: function(direction) { var view = this.$.hacksCarousel.fetchView(direction || 'center'); @@ -172,5 +187,8 @@ enyo.kind({ stopScroll: function(inSender) { this.lastScrollPos = this.$.hacksCarousel.scrollLeft; this.startHack(); + }, + closeNoPrefsDialog: function() { + this.$.noPrefsDialog.close(); } });