-dojo.provide("fox.FeedTree");
-dojo.provide("fox.FeedStoreModel");
-
-dojo.require("dijit.Tree");
-dojo.require("dijit.Menu");
-
-dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
- getItemsInCategory: function (id) {
- if (!this.store._itemsByIdentity) return undefined;
-
- cat = this.store._itemsByIdentity['CAT:' + id];
-
- if (cat && cat.items)
- return cat.items;
- else
- return undefined;
-
- },
- getItemById: function(id) {
- return this.store._itemsByIdentity[id];
- },
- getFeedValue: function(feed, is_cat, key) {
- if (!this.store._itemsByIdentity) return undefined;
-
- if (is_cat)
- treeItem = this.store._itemsByIdentity['CAT:' + feed];
- else
- treeItem = this.store._itemsByIdentity['FEED:' + feed];
-
- if (treeItem)
- return this.store.getValue(treeItem, key);
- },
- getFeedName: function(feed, is_cat) {
- return this.getFeedValue(feed, is_cat, 'name');
- },
- getFeedUnread: function(feed, is_cat) {
- var unread = parseInt(this.getFeedValue(feed, is_cat, 'unread'));
- return (isNaN(unread)) ? 0 : unread;
- },
- setFeedUnread: function(feed, is_cat, unread) {
- return this.setFeedValue(feed, is_cat, 'unread', parseInt(unread));
- },
- setFeedValue: function(feed, is_cat, key, value) {
- if (!value) value = '';
- if (!this.store._itemsByIdentity) return undefined;
-
- if (is_cat)
- treeItem = this.store._itemsByIdentity['CAT:' + feed];
- else
- treeItem = this.store._itemsByIdentity['FEED:' + feed];
-
- if (treeItem)
- return this.store.setValue(treeItem, key, value);
- },
- getNextUnreadFeed: function (feed, is_cat) {
- if (!this.store._itemsByIdentity)
- return null;
-
- if (is_cat) {
- treeItem = this.store._itemsByIdentity['CAT:' + feed];
- items = this.store._arrayOfTopLevelItems;
- } else {
- treeItem = this.store._itemsByIdentity['FEED:' + feed];
- items = this.store._arrayOfAllItems;
- }
-
- for (var i = 0; i < items.length; i++) {
- if (items[i] == treeItem) {
-
- for (var j = i+1; j < items.length; j++) {
- var unread = this.store.getValue(items[j], 'unread');
- var id = this.store.getValue(items[j], 'id');
-
- if (unread > 0 && (is_cat || id.match("FEED:"))) return items[j];
- }
-
- for (var j = 0; j < i; j++) {
- var unread = this.store.getValue(items[j], 'unread');
- var id = this.store.getValue(items[j], 'id');
-
- if (unread > 0 && (is_cat || id.match("FEED:"))) return items[j];
- }
+/* global dijit */
+define(["dojo/_base/declare", "dojo/dom-construct", "dijit/Tree", "dijit/Menu"], function (declare, domConstruct) {
+
+ return declare("fox.FeedTree", dijit.Tree, {
+ _onKeyPress: function(/* Event */ e) {
+ return; // Stop dijit.Tree from interpreting keystrokes
+ },
+ _createTreeNode: function(args) {
+ const tnode = new dijit._TreeNode(args);
+
+ const icon = dojo.doc.createElement('img');
+ if (args.item.icon && args.item.icon[0]) {
+ icon.src = args.item.icon[0];
+ } else {
+ icon.src = 'images/blank_icon.gif';