diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/App.js | 2 | ||||
-rw-r--r-- | source/api.js | 79 | ||||
-rw-r--r-- | source/dataView.js | 45 | ||||
-rw-r--r-- | source/main.js | 3 | ||||
-rw-r--r-- | source/moduleManager.js | 27 | ||||
-rw-r--r-- | source/settings.js | 2 |
6 files changed, 89 insertions, 69 deletions
diff --git a/source/App.js b/source/App.js index 8aa1e2a..9550160 100644 --- a/source/App.js +++ b/source/App.js @@ -103,7 +103,7 @@ enyo.kind({ }, openDataView: function (inSender, inEvent) { - this.$.dataView.setSection(inEvent.section); + this.$.dataView.updateSection(inEvent.section); this.$.panel.setIndex(6); }, diff --git a/source/api.js b/source/api.js index fdd9e22..d2efafc 100644 --- a/source/api.js +++ b/source/api.js @@ -13,7 +13,7 @@ var api = { wrapper: function (inCallback) { //console.log("isInitialized...", this.isInitialized); if (this.isInitialized) { - inCallback(null, this.db); + if(inCallback) inCallback(null, this.db); } else { var self = this; this.db = new this.store({ @@ -35,7 +35,7 @@ var api = { bmWrapper: function (inCallback) { //console.log("isInitialized...", this.isInitialized); if (this.isBmInitialized) { - inCallback(null, this.bmStore); + if(inCallback) inCallback(null, this.bmStore); } else { var self = this; this.bmStore = new this.store({ @@ -62,7 +62,7 @@ var api = { hlWrapper: function (inCallback) { //console.log("isInitialized...", this.isHlInitialized); if (this.isHlInitialized) { - inCallback(null, this.hlStore); + if(inCallback) inCallback(null, this.hlStore); } else { var self = this; this.hlStore = new this.store({ @@ -88,7 +88,7 @@ var api = { noteWrapper: function (inCallback) { //console.log("isInitialized...", this.isHlInitialized); if (this.isNoteInitialized) { - inCallback(null, this.noteStore); + if(inCallback) inCallback(null, this.noteStore); } else { var self = this; this.noteStore = new this.store({ @@ -127,7 +127,7 @@ var api = { put: function (inObject, inCallback) { this.wrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._put(inDB, inObject, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -143,12 +143,12 @@ var api = { inOsisObject["bookmarkId"] = inId; this.put(inOsisObject, inCallback); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -164,12 +164,12 @@ var api = { inOsisObject["highlightId"] = inId; this.put(inOsisObject, inCallback); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -188,10 +188,10 @@ var api = { inOsisObject["noteId"] = inId; this.put(inOsisObject, inCallback); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); } else { //Update an existing note @@ -200,11 +200,11 @@ var api = { inNoteObject["text"] = inObject["text"]; this._put(inDB, inNoteObject, inCallback); } else { - inCallback(inError); + if(inCallback) inCallback(inError); } })); } - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -244,70 +244,70 @@ var api = { _query: function(inDB, inOptions, inCallback) { //inOptions["onError"] = function (inError) {inCallback(inError);}; inDB.query(function (inResults) { - inCallback(null, inResults); + if(inCallback) inCallback(null, inResults); }, inOptions); }, get: function (inId, inCallback) { this.wrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._get(inDB, inId, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getAll: function(inCallback) { this.wrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._getAll(inDB, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getBookmark: function (inId, inCallback) { this.bmWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._get(inDB, inId, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getAllBookmarks: function (inCallback) { this.bmWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._query(inDB, {index: "osisRef"}, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getHighlights: function (inIds, inCallback) { this.hlWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._getBatch(inDB, inIds, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getAllHighlights: function (inCallback) { this.hlWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._query(inDB, {index: "osisRef"}, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getNote: function (inId, inCallback) { this.noteWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._get(inDB, inId, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getNotes: function (inIds, inCallback) { this.noteWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._getBatch(inDB, inIds, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, getAllNotes: function (inCallback) { this.noteWrapper(enyo.bind(this, function (inError, inDB) { if(!inError) this._query(inDB, {index: "osisRef"}, inCallback); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -327,7 +327,7 @@ var api = { if(z === inVMax) inCallback(null, userData); else z++; } else - inCallback(inError); + if(inCallback) inCallback(inError); }); } }, @@ -354,14 +354,14 @@ var api = { delete inOsisObject["bookmarkId"]; this.put(inOsisObject, inCallback); } else - inCallback({message: "api.removeBookmark: Couldn't remove bookmarkId from osisObject"}); + if(inCallback) inCallback({message: "api.removeBookmark: Couldn't remove bookmarkId from osisObject"}); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -376,14 +376,14 @@ var api = { delete inOsisObject["highlightId"]; this.put(inOsisObject, inCallback); } else - inCallback({message: "api.removeHighlight: Couldn't remove highlightId from osisObject"}); + if(inCallback) inCallback({message: "api.removeHighlight: Couldn't remove highlightId from osisObject"}); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, @@ -398,24 +398,25 @@ var api = { delete inOsisObject["noteId"]; this.put(inOsisObject, inCallback); } else - inCallback({message: "api.removeHighlight: Couldn't remove noteId from osisObject"}); + if(inCallback) inCallback({message: "api.removeHighlight: Couldn't remove noteId from osisObject"}); } else - inCallback(inError); + if(inCallback) inCallback(inError); })); else - inCallback(inError); + if(inCallback) inCallback(inError); })); - else inCallback(inError); + else if(inCallback) inCallback(inError); })); }, putSetting: function (inKey, inValue, inCallback) { this.get("settings", enyo.bind(this, function (inError, inSettings) { if(!inError) { + if(!inSettings) inSettings = {id: "settings"}; inSettings[inKey] = inValue; this.put(inSettings, inCallback); } else { - inCallback(inError); + if(inCallback) inCallback(inError); } })); }, diff --git a/source/dataView.js b/source/dataView.js index c9444a8..e5d3a21 100644 --- a/source/dataView.js +++ b/source/dataView.js @@ -39,19 +39,19 @@ enyo.kind({ return true; }, + updateSection: function (inSection) { + if(inSection) + this.section = inSection; + this.sectionChanged(); + }, + sectionChanged: function (inSender, inEvent) { if (this.section === "bookmarks") { this.$.rbBm.setActive(true); api.getAllBookmarks(enyo.bind(this, function (inError, inData) { if(!inError) { this.data = inData; - this.$.dataList.setCount(this.data.length); - if(this.data.length === 0) { - this.$.noData.show(); - this.$.noData.setContent($L("No Bookmarks.") + " " + $L("Tap on a verse number to add one.")); - } else - this.$.noData.hide(); - this.$.dataList.refresh(); + this.updateList(); } else this.handleError(inError); })); @@ -60,12 +60,7 @@ enyo.kind({ api.getAllNotes(enyo.bind(this, function (inError, inData) { if(!inError) { this.data = inData; - this.$.dataList.setCount(this.data.length); - if(this.data.length === 0) { - this.$.noData.show(); - this.$.noData.setContent($L("No Bookmarks.") + " " + $L("Tap on a verse number to add one.")); - } else - this.$.noData.hide(); + this.updateList(); this.$.dataList.refresh(); } else this.handleError(inError); @@ -75,19 +70,29 @@ enyo.kind({ api.getAllHighlights(enyo.bind(this, function (inError, inData) { if(!inError) { this.data = inData; - if(this.data.length === 0) { - this.$.noData.show(); - this.$.noData.setContent($L("No Bookmarks.") + " " + $L("Tap on a verse number to add one.")); - } else - this.$.noData.hide(); - this.$.dataList.setCount(this.data.length); - this.$.dataList.refresh(); + this.updateList(); } else this.handleError(inError); })); } }, + updateList: function () { + this.$.dataList.setCount(this.data.length); + if(this.data.length === 0) { + this.$.noData.show(); + if(this.section === "bookmarks") + this.$.noData.setContent($L("No Bookmarks.") + " " + $L("Tap on a verse number to add one.")); + else if(this.section === "note") + this.$.noData.setContent($L("No Notes.") + " " + $L("Tap on a verse number to add one.")); + else if(this.section === "highlights") + this.$.noData.setContent($L("No Highlights.") + " " + $L("Tap on a verse number to add one.")); + } else + this.$.noData.hide(); + this.$.dataList.refresh(); + this.$.dataList.reflow(); + }, + setupItem: function(inSender, inEvent) { var data = this.data[inEvent.index]; this.$.itemOsis.setContent(api.formatOsis(data.osisRef)); diff --git a/source/main.js b/source/main.js index 0a3a283..ccb19df 100644 --- a/source/main.js +++ b/source/main.js @@ -24,7 +24,7 @@ enyo.kind({ {name: "bcPopup", classes: "biblez-bc-popup", kind: "onyx.Popup", modal: true, floating: true, components: [ {kind: "biblez.bcSelector", name: "bcSelector", onSelect: "passageChanged", onBack: "closePopup"} ]}, - {kind: "onyx.MoreToolbar", classes: "main-toolbar", name: "topTB", components: [ + {kind: "onyx.MoreToolbar", showing: false, classes: "main-toolbar", name: "topTB", components: [ {name: "moduleSelector", kind: "onyx.MenuDecorator", onSelect: "moduleSelected", components: [ {kind: "onyx.Button", name: "btnModules", classes: "tb-button", style: "background-color: #934A15;"}, {kind: "onyx.Menu", maxHeight: "300", name: "moduleMenu"} @@ -166,6 +166,7 @@ enyo.kind({ this.$.firstStart.show(); this.$.mainPanel.setIndex(5); } + this.reflow(); } else { this.handleError(inError); } diff --git a/source/moduleManager.js b/source/moduleManager.js index 332c068..ece7f4b 100644 --- a/source/moduleManager.js +++ b/source/moduleManager.js @@ -15,6 +15,7 @@ enyo.kind({ ]}, {name: "panel", arrangerKind: "CollapsingArranger", fit: true, kind: "Panels", classes: "app-panels", components: [ {name: "panelLang", kind: "enyo.FittableRows", components: [ + {classes: "center", components: [{kind: "onyx.Spinner", name: "spinner", classes: "onyx-light center"}]}, {name: "langList", kind: "List", fit: true, touch: true, onSetupItem: "setupLangItem", components: [ {classes: "item", ontap: "handleLanguage", components: [ {kind: "enyo.FittableColumns", components: [ @@ -61,7 +62,8 @@ enyo.kind({ start: function () { if (!this.started) { - this.$.scrim.show(); + //this.$.scrim.show(); + this.$.spinner.show(); api.get("repos", enyo.bind(this, function (inError, inData) { if(!inData) this.getRepos(); @@ -83,10 +85,14 @@ enyo.kind({ handleRepoChange: function (inSender, inEvent) { this.$.detailsContainer.hide(); - this.$.scrim.show(); + this.$.modList.setCount(0); this.$.modList.refresh(); + this.$.langList.setCount(0); + this.$.langList.refresh(); + this.$.spinner.show(); this.$.panel.setIndex(0); + api.get("repos", enyo.bind(this, function(inError, inRepos) { if(!inError) { inRepos["currentRepo"] = this.repos[inEvent.selected.index]; @@ -94,6 +100,7 @@ enyo.kind({ } else this.handleError(inError); })); + //console.log(inEvent.selected.index); this.getRemoteModules(this.repos[inEvent.selected.index]); }, @@ -137,16 +144,19 @@ enyo.kind({ getRemoteModules: function (inRepo) { //console.log(inRepo); - api.get("currentModules", enyo.bind(this, function (inError, currentModules) { + api.get("downloadedModules", enyo.bind(this, function (inError, allModules) { + //console.log(inRepo, allModules, this.repos); if(!inError) { - if(currentModules && inRepo.name === currentModules.name) { - this.modules = currentModules.modules; + if(allModules && allModules.hasOwnProperty(inRepo.name.replace(" ", ""))) { + this.modules = allModules[inRepo.name.replace(" ", "")].modules; this.prepareLangList(this.modules); } else { sword.installMgr.getModules(inRepo, enyo.bind(this, function (inError, inModules) { //enyo.log(inError, inModules, inModules.length); if(!inError) { - api.put({id: "currentModules", modules: inModules, name: inRepo.name}, enyo.bind(this, function (inError, inId) { + if(!allModules) allModules = {id: "downloadedModules"}; + allModules[inRepo.name.replace(" ", "")] = {modules: inModules, name: inRepo.name}; + api.put(allModules, enyo.bind(this, function (inError, inId) { if(inError) this.handleError(inError); })); @@ -165,6 +175,7 @@ enyo.kind({ }, prepareLangList: function (inModules) { + this.$.spinner.hide(); this.lang = []; inModules.forEach(enyo.bind(this, function(module, idx) { //console.log(module.Lang, inModules[idx+1].Lang); @@ -174,9 +185,11 @@ enyo.kind({ this.lang.push({lang: module.Lang}); } })); + this.$.panelLang.reflow(); this.$.langList.setCount(this.lang.length); this.$.langList.refresh(); - this.$.scrim.hide(); + + }, setupLangItem: function(inSender, inEvent) { diff --git a/source/settings.js b/source/settings.js index e7673b1..f5fa5de 100644 --- a/source/settings.js +++ b/source/settings.js @@ -53,7 +53,7 @@ enyo.kind({ toggleLinebreak: function (inSender, inEvent) { api.putSetting("linebreak", inSender.getValue(), enyo.bind(this, function (inError, inId) { if(!inError) - this.doChange({setting: "linebreak", value: true}); + this.doChange({setting: "linebreak", value: inSender.getValue()}); })); }, |