From a2ef54cd927a7c1d92efc14f7178bde53c8e56cb Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 1 Dec 2018 08:20:09 +0300 Subject: toggleMark, togglePub: refactor implementation shorten marked/published img CSS classes --- js/PrefFilterTree.js | 2 +- js/viewfeed.js | 113 +++++++++++++++++++-------------------------------- 2 files changed, 43 insertions(+), 72 deletions(-) (limited to 'js') diff --git a/js/PrefFilterTree.js b/js/PrefFilterTree.js index 0a9a1fd1a..1167365d6 100644 --- a/js/PrefFilterTree.js +++ b/js/PrefFilterTree.js @@ -26,7 +26,7 @@ define(["dojo/_base/declare", "dojo/dom-construct", "lib/CheckBoxTree"], functio if (this.model.store.getValue(args.item, 'id') != 'root') { const img = dojo.doc.createElement('img'); img.src ='images/filter.png'; - img.className = 'markedPic'; + img.className = 'marked-pic'; tnode._filterIconNode = img; domConstruct.place(tnode._filterIconNode, tnode.labelNode, 'before'); } diff --git a/js/viewfeed.js b/js/viewfeed.js index 8d6ee404b..6f66ca699 100755 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -400,93 +400,64 @@ function toggleMark(id, client_only) { const query = { op: "rpc", id: id, method: "mark" }; const row = $("RROW-" + id); - if (!row) return; - - const imgs = []; - - const row_imgs = row.getElementsByClassName("markedPic"); - - for (let i = 0; i < row_imgs.length; i++) - imgs.push(row_imgs[i]); - - const ft = $("floatingTitle"); - - if (ft && ft.getAttribute("data-article-id") == id) { - const fte = ft.getElementsByClassName("markedPic"); - for (var i = 0; i < fte.length; i++) - imgs.push(fte[i]); - } - - for (i = 0; i < imgs.length; i++) { - const img = imgs[i]; + if (row) { + const imgs = $$("img[class*=marked-pic][class*=marked-" + id + "]"); - if (!row.hasClassName("marked")) { - img.src = img.src.replace("mark_unset", "mark_set"); - query.mark = 1; - } else { - img.src = img.src.replace("mark_set", "mark_unset"); - query.mark = 0; - } - } + imgs.each((img) => { + if (!row.hasClassName("marked")) { + img.src = img.src.replace("mark_unset", "mark_set"); + query.mark = 1; + } else { + img.src = img.src.replace("mark_set", "mark_unset"); + query.mark = 0; + } + }); - row.toggleClassName("marked"); + row.toggleClassName("marked"); - if (!client_only) - xhrPost("backend.php", query, (transport) => { - handle_rpc_json(transport); - }); + if (!client_only) + xhrPost("backend.php", query, (transport) => { + handle_rpc_json(transport); + }); } +} function togglePub(id, client_only, no_effects, note) { const query = { op: "rpc", id: id, method: "publ" }; - if (note != undefined) { - query.note = note; - } else { - query.note = "undefined"; - } - const row = $("RROW-" + id); - if (!row) return; - const imgs = []; - - const row_imgs = row.getElementsByClassName("pubPic"); - - for (let i = 0; i < row_imgs.length; i++) - imgs.push(row_imgs[i]); + if (row) { + if (note != undefined) { + query.note = note; + } else { + query.note = "undefined"; + } - const ft = $("floatingTitle"); + const imgs = $$("img[class*=pub-pic][class*=pub-" + id + "]"); - if (ft && ft.getAttribute("data-article-id") == id) { - const fte = ft.getElementsByClassName("pubPic"); + imgs.each((img) => { + if (!row.hasClassName("published") || note != undefined) { + img.src = img.src.replace("pub_unset", "pub_set"); + query.pub = 1; + } else { + img.src = img.src.replace("pub_set", "pub_unset"); + query.pub = 0; + } + }); - for (let i = 0; i < fte.length; i++) - imgs.push(fte[i]); - } + if (note != undefined) + row.addClassName("published"); + else + row.toggleClassName("published"); - for (let i = 0; i < imgs.length; i++) { - const img = imgs[i]; + if (!client_only) + xhrPost("backend.php", query, (transport) => { + handle_rpc_json(transport); + }); - if (!row.hasClassName("published") || note != undefined) { - img.src = img.src.replace("pub_unset", "pub_set"); - query.pub = 1; - } else { - img.src = img.src.replace("pub_set", "pub_unset"); - query.pub = 0; - } } - - if (note != undefined) - row.addClassName("published"); - else - row.toggleClassName("published"); - - if (!client_only) - xhrPost("backend.php", query, (transport) => { - handle_rpc_json(transport); - }); } function moveToPost(mode, noscroll, noexpand) { @@ -1932,7 +1903,7 @@ function updateFloatingTitle(unread_only) { $("floatingTitle").setAttribute("data-article-id", child.getAttribute("data-article-id")); $("floatingTitle").innerHTML = header.innerHTML; - $("floatingTitle").firstChild.innerHTML = "" + $("floatingTitle").firstChild.innerHTML; + $("floatingTitle").firstChild.innerHTML = "" + $("floatingTitle").firstChild.innerHTML; initFloatingMenu(); -- cgit v1.2.3