diff options
Diffstat (limited to 'source/bcSelector.js')
-rw-r--r-- | source/bcSelector.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/source/bcSelector.js b/source/bcSelector.js new file mode 100644 index 0000000..d2da696 --- /dev/null +++ b/source/bcSelector.js @@ -0,0 +1,72 @@ +enyo.kind({ + name: "biblez.bcSelector", + kind: "enyo.FittableRows", + events: { + onSelect: "", + onBack: "" + }, + published: { + module: null + }, + components: [ + {name: "bcPanel", kind: "Panels", arrangerKind: "CardArranger", fit: true, components: [ + {name: "bookPanel", kind: "enyo.FittableRows", components: [ + {kind: "onyx.Toolbar", components: [ + {kind: "onyx.IconButton", src: "assets/back.png", ontap: "doBack"}, + {content: $L("Books")} + ]}, + {kind: "enyo.Scroller", fit: true, touch: true, components: [ + {name: "bookRepeater", kind: "Repeater", count: 0, onSetupItem: "setBookItems", components: [ + {name: "bookItem", classes: "bc-item", ontap: "handleBook"} + ]} + ]} + ]}, + {name: "chapterPanel", kind: "enyo.FittableRows", components: [ + {kind: "onyx.Toolbar", components: [ + {kind: "onyx.IconButton", src: "assets/back.png", ontap: "handleBack"}, + {content: $L("Chapters")} + ]}, + {kind: "enyo.Scroller", fit: true, touch: true, components: [ + {name: "chapterRepeater", kind: "Repeater", count: 0, onSetupItem: "setChapterItems", components: [ + {name: "chapterItem", classes: "bc-item", ontap: "handleChapter"} + ]} + ]} + ]} + ]} + + ], + + books: [], + currentBook: null, + + setPanel: function (index) { + this.$.bcPanel.setIndex(index); + }, + + handleBack: function (inSender, inEvent) { + this.$.bcPanel.setIndex(0) + }, + + moduleChanged: function (inSender, inEvent) { + this.books = this.module.getAllBooks(); + this.$.bookRepeater.setCount(this.books.length); + }, + + setBookItems: function (inSender, inEvent) { + inEvent.item.$.bookItem.setContent(this.books[inEvent.index].abbrev.slice(0,4)); + }, + + handleBook: function (inSender, inEvent) { + this.currentBook = this.books[inEvent.index]; + this.$.chapterRepeater.setCount(this.currentBook.maxChapter); + this.$.bcPanel.setIndex(1); + }, + + setChapterItems: function (inSender, inEvent) { + inEvent.item.$.chapterItem.setContent(inEvent.index+1); + }, + + handleChapter: function (inSender, inEvent) { + this.doSelect({book: this.currentBook, chapter: inEvent.index+1, osis: this.currentBook.abbrev + "." + (inEvent.index+1)}); + } +});
\ No newline at end of file |