]> git.wh0rd.org Git - tt-rss.git/commitdiff
add experimental support for feedlist popup menu
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Fri, 19 Nov 2010 17:18:20 +0000 (20:18 +0300)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Fri, 19 Nov 2010 17:18:20 +0000 (20:18 +0300)
FeedTree.js
modules/backend-rpc.php
tt-rss.js

index f4a88e3318325a6b5d1cda9474828887a609b2fe..f01fd24cf0dddf56c1dd812283fd58412600436a 100644 (file)
@@ -2,6 +2,7 @@ dojo.provide("fox.FeedTree");
 dojo.provide("fox.FeedStoreModel");
 
 dojo.require("dijit.Tree");
+dojo.require("dijit.Menu");
 
 dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
        getItemById: function(id) {
@@ -45,10 +46,33 @@ dojo.declare("fox.FeedStoreModel", dijit.tree.ForestStoreModel, {
 dojo.declare("fox.FeedTree", dijit.Tree, {
        _createTreeNode: function(args) {
                var tnode = new dijit._TreeNode(args);
-
+               
                if (args.item.icon)
                        tnode.iconNode.src = args.item.icon[0];
 
+               var id = args.item.id[0];
+               var bare_id = parseInt(id.substr(id.indexOf(':')+1));
+
+               if (id.match("FEED:") && bare_id > 0) {
+                       var menu = new dijit.Menu();
+                       menu.row_id = bare_id;
+
+                       menu.addChild(new dijit.MenuItem({
+                               label: __("Edit feed"),
+                               onClick: function() {
+                                       editFeedDlg(this.getParent().row_id);
+                               }}));
+
+                       menu.addChild(new dijit.MenuItem({
+                               label: __("Update feed"),
+                               onClick: function() {
+                                       scheduleFeedUpdate(this.getParent().row_id, false);
+                               }}));
+
+                       menu.bindDomNode(tnode.domNode);
+                       tnode._menu = menu;
+               }
+
                //tnode.labelNode.innerHTML = args.label;
                return tnode;
        },
index d241df494c031e2ada82c87dd8295d8a9d3f6f3d..65f689a36ea9f14a412db90901ee0a6e550ef1e7 100644 (file)
 
                if ($subop == "scheduleFeedUpdate") {
                        $feed_id = db_escape_string($_REQUEST["id"]);
-                       $is_cat = db_escape_string($_REQUEST['is_cat']);
+                       $is_cat =  db_escape_string($_REQUEST['is_cat']) == 'true';
 
                        $message = __("Your request could not be completed.");
 
index 56105167e54b0c141b0feedfb8690620b01a98ef..af9f46726beae7dcbd118f9f266370dd115d8560 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -115,11 +115,28 @@ function updateFeedList() {
                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");
+
+//                     var node = dijit.byId("feedTree")._itemNodesMap['FEED:-2'][0].domNode
+//                     menu.bindDomNode(node);
+
                        loading_set_progress(25);
                });
 
@@ -1100,17 +1117,21 @@ function handle_rpc_reply(transport, scheduled_call) {
        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);