68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
/* global define, dijit */
|
|
|
|
define(["dojo/_base/declare", "dijit/tree/ForestStoreModel"], function (declare) {
|
|
|
|
return declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
|
|
getItemsInCategory: function (id) {
|
|
if (!this.store._itemsByIdentity) return undefined;
|
|
|
|
const 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;
|
|
|
|
let treeItem;
|
|
|
|
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) {
|
|
const unread = parseInt(this.getFeedValue(feed, is_cat, 'unread'));
|
|
return (isNaN(unread)) ? -1 : 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;
|
|
|
|
let treeItem;
|
|
|
|
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);
|
|
},
|
|
hasCats: function () {
|
|
if (this.store && this.store._itemsByIdentity)
|
|
return this.store._itemsByIdentity['CAT:-1'] != undefined;
|
|
else
|
|
return false;
|
|
},
|
|
|
|
});
|
|
});
|
|
|
|
|