summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-03-30 13:42:33 +0400
committerAndrew Dolgov <[email protected]>2013-03-30 13:42:33 +0400
commitbe7bb7d5eeab801fd1039db9de81594c1267477c (patch)
treeb4210e1da8a3d41ff4fb4e21a72792884f2da6bd /js
parent5e63e2fc9f4675d1a2198f972e3c20373a3c0dcd (diff)
headline menu: add ability to toggle unread/published/starred
Diffstat (limited to 'js')
-rw-r--r--js/viewfeed.js54
1 files changed, 46 insertions, 8 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 7abfef095..b7eaef362 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -726,9 +726,9 @@ function selectionAssignLabel(id, ids) {
}
}
-function selectionToggleUnread(set_state, callback, no_error) {
+function selectionToggleUnread(set_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
@@ -787,12 +787,13 @@ function selectionToggleUnread(set_state, callback, no_error) {
}
}
-function selectionToggleMarked() {
+// sel_state ignored
+function selectionToggleMarked(sel_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
- if (rows.length == 0) {
+ if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
return;
}
@@ -810,6 +811,7 @@ function selectionToggleMarked() {
parameters: query,
onComplete: function(transport) {
handle_rpc_json(transport);
+ if (callback) callback(transport);
} });
}
@@ -819,12 +821,13 @@ function selectionToggleMarked() {
}
}
-function selectionTogglePublished() {
+// sel_state ignored
+function selectionTogglePublished(sel_state, callback, no_error, ids) {
try {
- var rows = getSelectedArticleIds2();
+ var rows = ids ? ids : getSelectedArticleIds2();
- if (rows.length == 0) {
+ if (rows.length == 0 && !no_error) {
alert(__("No articles are selected."));
return;
}
@@ -1889,6 +1892,41 @@ function initHeadlinesMenu() {
menu.addChild(new dijit.MenuSeparator());
menu.addChild(new dijit.MenuItem({
+ label: __("Toggle unread"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionToggleUnread(undefined, false, true, ids);
+ }}));
+
+ menu.addChild(new dijit.MenuItem({
+ label: __("Toggle marked"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionToggleMarked(undefined, false, true, ids);
+ }}));
+
+ menu.addChild(new dijit.MenuItem({
+ label: __("Toggle published"),
+ onClick: function(event) {
+ var ids = getSelectedArticleIds2();
+ // cast to string
+ var id = this.getParent().callerRowId + "";
+ ids = ids.size() != 0 && ids.indexOf(id) != -1 ? ids : [id];
+
+ selectionTogglePublished(undefined, false, true, ids);
+ }}));
+
+ menu.addChild(new dijit.MenuSeparator());
+
+ menu.addChild(new dijit.MenuItem({
label: __("Mark above as read"),
onClick: function(event) {
catchupRelativeToArticle(0, this.getParent().callerRowId);