var init_params = {};
var _force_scheduled_update = false;
var last_scheduled_update = false;
-var treeModel;
var _rpc_seq = 0;
var store = new dojo.data.ItemFileWriteStore({
url: "backend.php?op=feeds"});
- treeModel = new dijit.tree.ForestStoreModel({
+ var treeModel = new fox.FeedStoreModel({
store: store,
query: {
"type": "feed"
childrenAttrs: ["items"]
});
- var tree = new dijit.Tree({
+ var tree = new fox.FeedTree({
model: treeModel,
- _createTreeNode: function(args) {
- var tnode = new dijit._TreeNode(args);
-
- if (args.item.icon)
- tnode.iconNode.src = args.item.icon[0];
-
- //tnode.labelNode.innerHTML = args.label;
- return tnode;
- },
- 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) {
- return (!item.error || item.error == '') ? "dijitTreeRow" :
- "dijitTreeRow Error";
- },
- getLabel: function(item) {
- if (item.unread > 0) {
- return item.name + " (" + item.unread + ")";
- } else {
- return item.name;
- }
- },
onOpen: function (item, node) {
var id = String(item.id);
var cat_id = id.substr(id.indexOf(":")+1);
new Ajax.Request("backend.php",
{ parameters: "backend.php?op=feeds&subop=collapse&cid=" +
- param_escape(cat_id) + "&mode=1" } );
+ param_escape(cat_id) + "&mode=0" } );
},
onClose: function (item, node) {
var id = String(item.id);
new Ajax.Request("backend.php",
{ parameters: "backend.php?op=feeds&subop=collapse&cid=" +
- param_escape(cat_id) + "&mode=0" } );
+ param_escape(cat_id) + "&mode=1" } );
},
onClick: function (item, node) {
id: "feedTree",
}, "feedTree");
+/* var menu = new dijit.Menu({id: 'feedMenu'});
+
+ menu.addChild(new dijit.MenuItem({
+ label: "Simple menu item"
+ }));
+
+// menu.bindDomNode(tree.domNode); */
+
+ var tmph = dojo.connect(dijit.byId('feedMenu'), '_openMyself', function (event) {
+ console.log(dijit.getEnclosingWidget(event.target));
+ dojo.disconnect(tmph);
+ });
+
$("feeds-holder").appendChild(tree.domNode);
var tmph = dojo.connect(tree, 'onLoad', function() {
dojo.disconnect(tmph);
Element.hide("feedlistLoading");
+
+ tree.collapseHiddenCats();
+
+ feedlist_init();
+
+// var node = dijit.byId("feedTree")._itemNodesMap['FEED:-2'][0].domNode
+// menu.bindDomNode(node);
+
+ loading_set_progress(25);
});
tree.startup();
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.Dialog");
dojo.require("dijit.form.Button");
+ dojo.require("dijit.Menu");
dojo.require("dojo.data.ItemFileWriteStore");
dojo.require("dijit.Tree");
dojo.require("dijit.form.Select");
+ dojo.require("dijit.form.TextBox");
+ dojo.require("dijit.form.ValidationTextBox");
+ dojo.require("dijit.form.FilteringSelect");
+ dojo.require("dijit.form.CheckBox");
dojo.require("dijit.Toolbar");
- dojo.require("dojo.parser");
+ dojo.require("dijit.ProgressBar");
+ dojo.require("dijit.Menu");
+
+ dojo.registerModulePath("fox", "../..");
+
+ dojo.require("fox.FeedTree");
if (typeof themeBeforeLayout == 'function') {
themeBeforeLayout();
if (!genericSanityCheck())
return;
- var params = "&ua=" + param_escape(navigator.userAgent);
-
- loading_set_progress(30);
+ loading_set_progress(20);
new Ajax.Request("backend.php", {
- parameters: "backend.php?op=rpc&subop=sanityCheck" + params,
+ parameters: {op: "rpc", subop: "sanityCheck"},
onComplete: function(transport) {
backend_sanity_check_callback(transport);
} });
feeds_sort_by_unread = getInitParam("feeds_sort_by_unread") == 1;
- loading_set_progress(60);
+ loading_set_progress(30);
if (has_local_storage())
localStorage.clear();
- feedlist_init();
- setTimeout("timeout()", 3000);
-
console.log("second stage ok");
} catch (e) {
}
if (opid == "qmcEditFeed") {
- editFeedDlg(getActiveFeedId());
+ if (activeFeedIsCat())
+ alert(__("You can't edit this kind of feed."));
+ else
+ editFeed(getActiveFeedId());
+ return;
}
if (opid == "qmcRemoveFeed") {
var query = "?op=rpc&subop=setpref&key=HIDE_READ_FEEDS&value=" +
param_escape(hide);
+ setInitParam("hide_read_feeds", hide);
+
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- setInitParam("hide_read_feeds", hide);
} });
} catch (e) {
}
}
-function editFeedDlg(feed) {
- try {
-
- if (!feed) {
- alert(__("Please select some feed first."));
- return;
- }
-
- if ((feed <= 0) || activeFeedIsCat()) {
- alert(__("You can't edit this kind of feed."));
- return;
- }
-
- var query = "";
-
- if (feed > 0) {
- query = "?op=pref-feeds&subop=editfeed&id=" + param_escape(feed);
- } else {
- query = "?op=pref-labels&subop=edit&id=" + param_escape(-feed-11);
- }
-
- disableHotkeys();
-
- notify_progress("Loading, please wait...", true);
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- infobox_callback2(transport);
- document.forms["edit_feed_form"].title.focus();
- } });
-
- } catch (e) {
- exception_error("editFeedDlg", e);
- }
-}
-
-/* this functions duplicate those of prefs.js feed editor, with
- some differences because there is no feedlist */
-
-function feedEditCancel() {
- closeInfoBox();
- return false;
-}
-
-function feedEditSave() {
-
- try {
-
- // FIXME: add parameter validation
-
- var query = Form.serialize("edit_feed_form");
-
- notify_progress("Saving feed...");
-
- new Ajax.Request("backend.php", {
- parameters: query,
- onComplete: function(transport) {
- dlg_frefresh_callback(transport);
- } });
-
- cache_flush();
- closeInfoBox();
-
- return false;
-
- } catch (e) {
- exception_error("feedEditSave (main)", e);
- }
-}
-
function collapse_feedlist() {
try {
}
if (keycode == 69) { // e
- editFeedDlg(getActiveFeedId());
+
+ if (activeFeedIsCat())
+ alert(__("You can't edit this kind of feed."));
+ else
+ editFeed(getActiveFeedId());
+ return;
+
return false;
}
return true;
}
-function scheduleFeedUpdate() {
+function scheduleFeedUpdate(id, is_cat) {
try {
+ if (!id) {
+ id = getActiveFeedId();
+ is_cat = activeFeedIsCat();
+ }
- if (!getActiveFeedId()) {
+ if (!id) {
alert(__("Please select some feed first."));
return;
}
var query = "?op=rpc&subop=scheduleFeedUpdate&id=" +
- param_escape(getActiveFeedId()) +
- "&is_cat=" + param_escape(activeFeedIsCat());
+ param_escape(id) +
+ "&is_cat=" + param_escape(is_cat);
console.log(query);