summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-04-09 16:13:32 +0400
committerAndrew Dolgov <[email protected]>2013-04-09 16:13:32 +0400
commit035d7a5a8fae5620e9b6121a5b5fa270184096ba (patch)
treee0f53083d161256e5862765e61753a307b370cf6 /js
parentaf4204def22268eab0bc42e92955d78dc15f822b (diff)
implement support for multiple pub/mark buttons, add plugin which adds a separate mark button to article botton in combined mode (closes #382)
Diffstat (limited to 'js')
-rw-r--r--js/viewfeed.js64
1 files changed, 37 insertions, 27 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js
index f8a7f373d..da5ded64f 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -442,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,
@@ -480,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,
@@ -915,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 {
@@ -925,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 {