+
+function feedActionChange() {
+ try {
+ var chooser = $("feedActionChooser");
+ var opid = chooser[chooser.selectedIndex].value;
+
+ chooser.selectedIndex = 0;
+ feedActionGo(opid);
+ } catch (e) {
+ exception_error("feedActionChange", e);
+ }
+}
+
+function feedActionGo(op) {
+ try {
+ if (op == "facEdit") {
+
+ var rows = getSelectedFeeds();
+
+ if (rows.length > 1) {
+ editSelectedFeeds();
+ } else {
+ editSelectedFeed();
+ }
+ }
+
+ if (op == "facClear") {
+ clearSelectedFeeds();
+ }
+
+ if (op == "facPurge") {
+ purgeSelectedFeeds();
+ }
+
+ if (op == "facEditCats") {
+ editFeedCats();
+ }
+
+ if (op == "facRescore") {
+ rescoreSelectedFeeds();
+ }
+
+ if (op == "facUnsubscribe") {
+ removeSelectedFeeds();
+ }
+
+ } catch (e) {
+ exception_error("feedActionGo", e);
+
+ }
+}
+
+function clearFeedArticles(feed_id) {
+
+ notify_progress("Clearing feed...");
+
+ var query = "backend.php?op=pref-feeds&quiet=1&subop=clear&id=" + feed_id;
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ notify('');
+ } });
+
+ return false;
+}
+
+function rescoreSelectedFeeds() {
+
+ var sel_rows = getSelectedFeeds();
+
+ if (sel_rows.length > 0) {
+
+ //var ok = confirm(__("Rescore last 100 articles in selected feeds?"));
+ var ok = confirm(__("Rescore articles in selected feeds?"));
+
+ if (ok) {
+ notify_progress("Rescoring selected feeds...", true);
+
+ var query = "backend.php?op=pref-feeds&subop=rescore&quiet=1&ids="+
+ param_escape(sel_rows.toString());
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ notify_callback2(transport);
+ } });
+
+ }
+ } else {
+ alert(__("No feeds are selected."));
+ }
+
+ return false;
+}
+
+function rescore_all_feeds() {
+ var ok = confirm(__("Rescore all articles? This operation may take a lot of time."));
+
+ if (ok) {
+ notify_progress("Rescoring feeds...", true);
+
+ var query = "backend.php?op=pref-feeds&subop=rescoreAll&quiet=1";
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ notify_callback2(transport);
+ } });
+ }
+}
+
+function removeFilter(id, title) {
+
+ try {
+
+ var msg = __("Remove filter %s?").replace("%s", title);
+
+ var ok = confirm(msg);
+
+ if (ok) {
+ closeInfoBox();
+
+ notify_progress("Removing filter...");
+
+ var query = "backend.php?op=pref-filters&subop=remove&ids="+
+ param_escape(id);
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ filterlist_callback2(transport);
+ } });
+
+ }
+
+ } catch (e) {
+ exception_error("removeFilter", e);
+ }
+
+ return false;
+}
+
+function unsubscribeFeed(id, title) {
+
+ try {
+
+ var msg = __("Unsubscribe from %s?").replace("%s", title);
+
+ var ok = confirm(msg);
+
+ if (ok) {
+ closeInfoBox();
+
+ notify_progress("Removing feed...");
+
+ var query = "backend.php?op=pref-feeds&subop=remove&ids="+
+ param_escape(id);
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ feedlist_callback2(transport);
+ } });
+ }
+
+ } catch (e) {
+ exception_error("unsubscribeFeed", e);
+ }
+
+ return false;
+
+}
+
+function feedsEditSave() {
+ try {
+
+ var ok = confirm(__("Save changes to selected feeds?"));
+
+ if (ok) {
+
+ var f = document.forms["batch_edit_feed_form"];
+
+ var query = Form.serialize("batch_edit_feed_form");
+
+ /* Form.serialize ignores unchecked checkboxes */
+
+ if (!query.match("&hidden=") &&
+ f.hidden.disabled == false) {
+ query = query + "&hidden=false";
+ }
+
+ if (!query.match("&rtl_content=") &&
+ f.rtl_content.disabled == false) {
+ query = query + "&rtl_content=false";
+ }
+
+ if (!query.match("&private=") &&
+ f.private.disabled == false) {
+ query = query + "&private=false";
+ }
+
+ if (!query.match("&cache_images=") &&
+ f.cache_images.disabled == false) {
+ query = query + "&cache_images=false";
+ }
+
+ if (!query.match("&include_in_digest=") &&
+ f.include_in_digest.disabled == false) {
+ query = query + "&include_in_digest=false";
+ }
+
+ closeInfoBox();
+
+ notify_progress("Saving feeds...");
+
+ new Ajax.Request("backend.php", {
+ parameters: query,
+ onComplete: function(transport) {
+ feedlist_callback2(transport);
+ } });
+
+ }
+
+ return false;
+ } catch (e) {
+ exception_error("feedsEditSave", e);
+ }
+}
+
+function batchFeedsToggleField(cb, elem, label) {
+ try {
+ var f = document.forms["batch_edit_feed_form"];
+ var l = $(label);
+
+ if (cb.checked) {
+ f[elem].disabled = false;
+
+ if (l) {
+ l.className = "";
+ };
+
+// new Effect.Highlight(f[elem], {duration: 1, startcolor: "#fff7d5",
+// queue: { position:'end', scope: 'BPEFQ', limit: 1 } } );
+
+ } else {
+ f[elem].disabled = true;
+
+ if (l) {
+ l.className = "insensitive";
+ };
+
+ }
+ } catch (e) {
+ exception_error("batchFeedsToggleField", e);
+ }
+}
+
+function labelColorReset() {
+ try {
+ var labels = getSelectedLabels();
+
+ var ok = confirm(__("Reset label colors to default?"));
+
+ if (ok) {
+
+ var query = "backend.php?op=pref-labels&subop=color-reset&ids="+
+ param_escape(labels.toString());
+
+ new Ajax.Request(query, {
+ onComplete: function(transport) {
+ labellist_callback2(transport);
+ } });
+ }
+
+ } catch (e) {
+ exception_error("labelColorReset", e);
+ }
+}
+
+function labelColorAsk(id, kind) {
+ try {
+
+ var p = null
+
+ if (kind == "fg") {
+ p = prompt(__("Please enter new label foreground color:"));
+ } else {
+ p = prompt(__("Please enter new label background color:"));
+ }
+
+ if (p != null) {
+
+ var query = "backend.php?op=pref-labels&subop=color-set&kind=" + kind +
+ "&ids="+ param_escape(id) + "&color=" + param_escape(p);
+
+ selectPrefRows('label', false);
+
+ var e = $("LICID-" + id);
+
+ if (e) {
+ if (kind == "fg") {
+ e.style.color = p
+ } else {
+ e.style.backgroundColor = p;
+ }
+ }
+
+ new Ajax.Request(query);
+ }
+
+ } catch (e) {
+ exception_error("labelColorReset", e);
+ }
+}
+
+
+function colorPicker(id, fg, bg) {
+ try {
+ var picker = $("colorPicker-" + id);
+
+ if (picker) Element.show(picker);
+
+ } catch (e) {
+ exception_error("colorPicker", e);
+ }
+}
+
+function colorPickerHideAll() {
+ try {
+ if ($("prefLabelList")) {
+
+ var elems = $("prefLabelList").getElementsByTagName("DIV");
+
+ for (var i = 0; i < elems.length; i++) {
+ if (elems[i].id && elems[i].id.match("colorPicker-")) {
+ Element.hide(elems[i]);
+ }
+ }
+ }
+
+ } catch (e) {
+ exception_error("colorPickerHideAll", e);
+ }
+}
+
+function colorPickerDo(id, fg, bg) {
+ try {
+
+ var query = "backend.php?op=pref-labels&subop=color-set&kind=both"+
+ "&ids=" + param_escape(id) + "&fg=" + param_escape(fg) +
+ "&bg=" + param_escape(bg);
+
+ var e = $("LICID-" + id);
+
+ if (e) {
+ e.style.color = fg;
+ e.style.backgroundColor = bg;
+ }
+
+ new Ajax.Request(query);
+
+ } catch (e) {
+ exception_error("colorPickerDo", e);
+ }
+}
+
+function colorPickerActive(b) {
+ color_picker_active = b;
+}
+
+function mouse_down_handler(e) {
+ try {
+
+ /* do not prevent right click */
+ if (e.button && e.button == 2) return;
+
+ if (selection_disabled) {
+ document.onselectstart = function() { return false; };
+ return false;
+ }
+
+ } catch (e) {
+ exception_error("mouse_move_handler", e);
+ }
+}
+
+function mouse_up_handler(e) {
+ try {
+ mouse_is_down = false;
+
+ if (!selection_disabled) {
+ document.onselectstart = null;
+ }
+
+ if (!color_picker_active) {
+ colorPickerHideAll();
+ }
+
+ } catch (e) {
+ exception_error("mouse_move_handler", e);
+ }
+}
+