+ },
+ getTooltip: function (item) {
+ if (item.updated)
+ return item.updated;
+ else
+ return "";
+ },
+ getIconClass: function (item, opened) {
+ return (!item || this.model.mayHaveChildren(item)) ? (opened ? "dijitFolderOpened" : "dijitFolderClosed") : "feedIcon";
+ },
+ getLabelClass: function (item, opened) {
+ return (item.unread == 0) ? "dijitTreeLabel" : "dijitTreeLabel Unread";
+ },
+ getRowClass: function (item, opened) {
+ let rc = (!item.error || item.error == '') ? "dijitTreeRow" :
+ "dijitTreeRow Error";
+
+ if (item.unread > 0) rc += " Unread";
+ if (item.updates_disabled > 0) rc += " UpdatesDisabled";
+
+ return rc;
+ },
+ getLabel: function(item) {
+ let name = String(item.name);
+
+ /* Horrible */
+ name = name.replace(/"/g, "\"");
+ name = name.replace(/&/g, "&");
+ name = name.replace(/—/g, "-");
+ name = name.replace(/</g, "<");
+ name = name.replace(/>/g, ">");
+
+ /* var label;
+
+ if (item.unread > 0) {
+ label = name + " (" + item.unread + ")";
+ } else {
+ label = name;
+ } */
+
+ return name;
+ },
+ expandParentNodes: function(feed, is_cat, list) {
+ try {
+ for (let i = 0; i < list.length; i++) {
+ const id = String(list[i].id);
+ let item = this._itemNodesMap[id];
+
+ if (item) {
+ item = item[0];
+ this._expandNode(item);
+ }
+ }
+ } catch (e) {
+ exception_error(e);
+ }
+ },
+ findNodeParentsAndExpandThem: function(feed, is_cat, root, parents) {
+ // expands all parents of specified feed to properly mark it as active
+ // my fav thing about frameworks is doing everything myself
+ try {
+ const test_id = is_cat ? 'CAT:' + feed : 'FEED:' + feed;
+
+ if (!root) {
+ if (!this.model || !this.model.store) return false;
+
+ const items = this.model.store._arrayOfTopLevelItems;
+
+ for (let i = 0; i < items.length; i++) {
+ if (String(items[i].id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents);
+ } else {
+ this.findNodeParentsAndExpandThem(feed, is_cat, items[i], []);
+ }
+ }
+ } else if (root.items) {
+ parents.push(root);
+
+ for (let i = 0; i < root.items.length; i++) {
+ if (String(root.items[i].id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents);
+ } else {
+ this.findNodeParentsAndExpandThem(feed, is_cat, root.items[i], parents.slice(0));
+ }
+ }
+ } else if (String(root.id) == test_id) {
+ this.expandParentNodes(feed, is_cat, parents.slice(0));
+ }
+ } catch (e) {
+ exception_error(e);
+ }
+ },
+ selectFeed: function(feed, is_cat) {
+ this.findNodeParentsAndExpandThem(feed, is_cat, false, false);