]> git.wh0rd.org - tt-rss.git/blobdiff - js/viewfeed.js
implement support for multiple pub/mark buttons, add plugin which adds a separate...
[tt-rss.git] / js / viewfeed.js
index 108d27ea4dc53855fdf71dee3ef083cde1e30b10..da5ded64facd9b52a5784fdb183cb4115bdb0d66 100644 (file)
@@ -160,16 +160,10 @@ function headlines_callback2(transport, offset, background, infscroll_req) {
                                        initHeadlinesMenu();
 
                                        new_elems.each(function(child) {
-                                               var cb = dijit.byId(child.id.replace("RROW-", "RCHK-"));
+                                               dojo.parser.parse(child);
 
-                                               if (!cb) {
-                                                       dojo.parser.parse(child);
-
-                                                       if (!Element.visible(child))
-                                                               new Effect.Appear(child, { duration : 0.5 });
-                                               } else {
-                                                       c.domNode.removeChild(child);
-                                               }
+                                               if (!Element.visible(child))
+                                                       new Effect.Appear(child, { duration : 0.5 });
                                        });
 
                                } else {
@@ -448,21 +442,27 @@ function toggleMark(id, client_only) {
        try {
                var query = "?op=rpc&id=" + id + "&method=mark";
 
-               var img = $("FMPIC-" + id);
+               var row = $("RROW-" + id);
+               if (!row) return;
 
-               if (!img) return;
+               var imgs = row.getElementsByClassName("markedPic");
 
-               if (img.src.match("mark_unset")) {
-                       img.src = img.src.replace("mark_unset", "mark_set");
-                       img.alt = __("Unstar article");
-                       query = query + "&mark=1";
+               for (i = 0; i < imgs.length; i++) {
+                       var img = imgs[i];
 
-               } else {
-                       img.src = img.src.replace("mark_set", "mark_unset");
-                       img.alt = __("Star article");
-                       query = query + "&mark=0";
+                       if (!row.hasClassName("marked")) {
+                               img.src = img.src.replace("mark_unset", "mark_set");
+                               img.alt = __("Unstar article");
+                               query = query + "&mark=1";
+                       } else {
+                               img.src = img.src.replace("mark_set", "mark_unset");
+                               img.alt = __("Star article");
+                               query = query + "&mark=0";
+                       }
                }
 
+               row.toggleClassName("marked");
+
                if (!client_only) {
                        new Ajax.Request("backend.php", {
                                parameters: query,
@@ -486,22 +486,30 @@ function togglePub(id, client_only, no_effects, note) {
                        query = query + "&note=undefined";
                }
 
-               var img = $("FPPIC-" + id);
-
-               if (!img) return;
+               var row = $("RROW-" + id);
+               if (!row) return;
 
-               if (img.src.match("pub_unset") || note != undefined) {
-                       img.src = img.src.replace("pub_unset", "pub_set");
-                       img.alt = __("Unpublish article");
-                       query = query + "&pub=1";
+               var imgs = row.getElementsByClassName("pubPic");
 
-               } else {
-                       img.src = img.src.replace("pub_set", "pub_unset");
-                       img.alt = __("Publish article");
+               for (i = 0; i < imgs.length; i++) {
+                       var img = imgs[i];
 
-                       query = query + "&pub=0";
+                       if (!row.hasClassName("published") || note != undefined) {
+                               img.src = img.src.replace("pub_unset", "pub_set");
+                               img.alt = __("Unpublish article");
+                               query = query + "&pub=1";
+                       } else {
+                               img.src = img.src.replace("pub_set", "pub_unset");
+                               img.alt = __("Publish article");
+                               query = query + "&pub=0";
+                       }
                }
 
+               if (note != undefined)
+                       row.addClassName("published");
+               else
+                       row.toggleClassName("published");
+
                if (!client_only) {
                        new Ajax.Request("backend.php", {
                                parameters: query,
@@ -617,11 +625,12 @@ function moveToPost(mode, noscroll, noexpand) {
 
 function toggleSelected(id, force_on) {
        try {
-
-               var cb = dijit.byId("RCHK-" + id);
                var row = $("RROW-" + id);
 
                if (row) {
+                       var cb = dijit.getEnclosingWidget(
+                                       row.getElementsByClassName("rchk")[0]);
+
                        if (row.hasClassName('Selected') && !force_on) {
                                row.removeClassName('Selected');
                                if (cb) cb.attr("checked", false);
@@ -904,7 +913,9 @@ function selectArticles(mode) {
 
                children.each(function(child) {
                        var id = child.id.replace("RROW-", "");
-                       var cb = dijit.byId("RCHK-" + id);
+
+                       var cb = dijit.getEnclosingWidget(
+                                       child.getElementsByClassName("rchk")[0]);
 
                        if (mode == "all") {
                                child.addClassName("Selected");
@@ -918,9 +929,7 @@ function selectArticles(mode) {
                                        if (cb) cb.attr("checked", false);
                                }
                        } else if (mode == "marked") {
-                               var img = $("FMPIC-" + child.id.replace("RROW-", ""));
-
-                               if (img && img.src.match("mark_set")) {
+                               if (child.hasClassName("marked")) {
                                        child.addClassName("Selected");
                                        if (cb) cb.attr("checked", true);
                                } else {
@@ -928,9 +937,7 @@ function selectArticles(mode) {
                                        if (cb) cb.attr("checked", false);
                                }
                        } else if (mode == "published") {
-                               var img = $("FPPIC-" + child.id.replace("RROW-", ""));
-
-                               if (img && img.src.match("pub_set")) {
+                               if (child.hasClassName("published")) {
                                        child.addClassName("Selected");
                                        if (cb) cb.attr("checked", true);
                                } else {
@@ -1739,7 +1746,8 @@ function markHeadline(id, marked) {
 
        var row = $("RROW-" + id);
        if (row) {
-               var check = dijit.byId("RCHK-" + id);
+               var check = dijit.getEnclosingWidget(
+                               row.getElementsByClassName("rchk")[0]);
 
                if (check) {
                        check.attr("checked", marked);