X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;ds=sidebyside;f=functions.js;h=ca94dd93da92b1503d9c1578c6160221b7b6d9b3;hb=e4d4442cdb77e53e3813de6a2d3f22f6f83db47c;hp=79068c0fd8340f33317d214a2c71ae8c81e41f97;hpb=569720c589e979cdbc0102f6d45dcecf1af1ea59;p=tt-rss.git diff --git a/functions.js b/functions.js index 79068c0f..ca94dd93 100644 --- a/functions.js +++ b/functions.js @@ -2,6 +2,7 @@ var hotkeys_enabled = true; var xmlhttp_rpc = Ajax.getTransport(); var notify_silent = false; var last_progress_point = 0; +var async_counters_work = false; /* add method to remove element from array */ @@ -11,15 +12,48 @@ Array.prototype.remove = function(s) { } } -function is_msie() { - return navigator.userAgent.match("MSIE"); -} - function is_opera() { return window.opera; } -function exception_error(location, e, silent) { +function exception_error(location, e, ext_info) { + var msg = format_exception_error(location, e); + + disableHotkeys(); + + try { + + var ebc = document.getElementById("xebContent"); + + if (ebc) { + + Element.show("dialog_overlay"); + Element.show("errorBoxShadow"); + + if (ext_info) { + if (ext_info.responseText) { + ext_info = ext_info.responseText; + } + } + + ebc.innerHTML = + "
Error message:
" + + "
" + msg + "
" + + "
Additional information:
" + + ""; + + } else { + alert(msg); + } + + } catch (e) { + alert(msg); + + } + +} + +function format_exception_error(location, e) { var msg; if (e.fileName) { @@ -28,18 +62,19 @@ function exception_error(location, e, silent) { msg = "Exception: " + e.name + ", " + e.message + "\nFunction: " + location + "()" + "\nLocation: " + base_fname + ":" + e.lineNumber; - + + } else if (e.description) { + msg = "Exception: " + e.description + "\nFunction: " + location + "()"; } else { msg = "Exception: " + e + "\nFunction: " + location + "()"; } debug("EXCEPTION: " + msg + ""); - if (!silent) { - alert(msg); - } + return msg; } + function disableHotkeys() { hotkeys_enabled = false; } @@ -207,34 +242,6 @@ function printLockingError() { notify_info("Please wait until operation finishes."); } -function cleanSelectedList(element) { - var content = document.getElementById(element); - - if (!document.getElementById("feedCatHolder")) { - for (i = 0; i < content.childNodes.length; i++) { - var child = content.childNodes[i]; - try { - child.className = child.className.replace("Selected", ""); - } catch (e) { - // - } - } - } else { - for (i = 0; i < content.childNodes.length; i++) { - var child = content.childNodes[i]; - if (child.id == "feedCatHolder") { - debug(child.id); - var fcat = child.lastChild; - for (j = 0; j < fcat.childNodes.length; j++) { - var feed = fcat.childNodes[j]; - feed.className = feed.className.replace("Selected", ""); - } - } - } - } -} - - function cleanSelected(element) { var content = document.getElementById(element); @@ -435,30 +442,6 @@ function gotoExportOpml() { document.location.href = "opml.php?op=Export"; } -function getActiveFeedId() { -// return getCookie("ttrss_vf_actfeed"); - try { - debug("gAFID: " + active_feed_id); - return active_feed_id; - } catch (e) { - exception_error("getActiveFeedId", e); - } -} - -function activeFeedIsCat() { - return active_feed_is_cat; -} - -function setActiveFeedId(id) { -// return setCookie("ttrss_vf_actfeed", id); - try { - debug("sAFID(" + id + ")"); - active_feed_id = id; - } catch (e) { - exception_error("setActiveFeedId", e); - } -} - function parse_counters(reply, scheduled_call) { try { @@ -534,7 +517,7 @@ function parse_counters(reply, scheduled_call) { } } - if (has_img && feed_img && !is_msie()) { + if (has_img && feed_img) { if (!feed_img.src.match(id + ".ico")) { feed_img.src = getInitParam("icons_location") + "/" + id + ".ico"; } @@ -561,7 +544,7 @@ function parse_counters(reply, scheduled_call) { } if (ctr > 0) { - feedctr.className = "odd"; + feedctr.className = "feedCtrHasUnread"; if (!feedr.className.match("Unread")) { var is_selected = feedr.className.match("Selected"); @@ -581,13 +564,13 @@ function parse_counters(reply, scheduled_call) { queue: { position:'end', scope: 'EFQ-' + id, limit: 1 } } ); } } else { - feedctr.className = "invisible"; + feedctr.className = "feedCtrNoUnread"; feedr.className = feedr.className.replace("Unread", ""); } } } - hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); + hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); var feeds_stored = number_of_feeds; @@ -648,22 +631,24 @@ function parse_counters_reply(transport, scheduled_call) { parse_runtime_info(runtime_info); - if (getInitParam("feeds_sort_by_unread") == 1) { - resort_feedlist(); - } + if (feedsSortByUnread()) { + resort_feedlist(); + } - hideOrShowFeeds(document, getInitParam("hide_read_feeds") == 1); + hideOrShowFeeds(getInitParam("hide_read_feeds") == 1); } -function all_counters_callback2(transport) { +function all_counters_callback2(transport, async_call) { try { + if (async_call) async_counters_work = true; + debug("all_counters_callback2 IN: " + transport + ""); parse_counters_reply(transport); debug("all_counters_callback2 OUT: " + transport + ""); } catch (e) { - exception_error("all_counters_callback2", e); + exception_error("all_counters_callback2", e, transport); } } @@ -671,12 +656,22 @@ function get_feed_unread(id) { try { return parseInt(document.getElementById("FEEDU-" + id).innerHTML); } catch (e) { - exception_error("get_feed_unread", e, true); return -1; } } -function get_feed_entry_unread(doc, elem) { +function get_cat_unread(id) { + try { + var ctr = document.getElementById("FCATCTR-" + id).innerHTML; + ctr = ctr.replace("(", ""); + ctr = ctr.replace(")", ""); + return parseInt(ctr); + } catch (e) { + return -1; + } +} + +function get_feed_entry_unread(elem) { var id = elem.id.replace("FEEDR-", ""); @@ -685,38 +680,49 @@ function get_feed_entry_unread(doc, elem) { } try { - return parseInt(doc.getElementById("FEEDU-" + id).innerHTML); + return parseInt(document.getElementById("FEEDU-" + id).innerHTML); } catch (e) { return -1; } } -function resort_category(doc, node) { - debug("resort_category: " + node); - - if (node.hasChildNodes() && node.firstChild.nextSibling != false) { - for (i = 0; i < node.childNodes.length; i++) { - if (node.childNodes[i].nodeName != "LI") { continue; } +function get_feed_entry_name(elem) { + var id = elem.id.replace("FEEDR-", ""); + return getFeedName(id); +} - if (get_feed_entry_unread(doc, node.childNodes[i]) < 0) { - continue; - } - for (j = i+1; j < node.childNodes.length; j++) { - if (node.childNodes[j].nodeName != "LI") { continue; } +function resort_category(node) { - var tmp_val = get_feed_entry_unread(doc, node.childNodes[i]); - var cur_val = get_feed_entry_unread(doc, node.childNodes[j]); + try { - if (cur_val > tmp_val) { - tempnode_i = node.childNodes[i].cloneNode(true); - tempnode_j = node.childNodes[j].cloneNode(true); - node.replaceChild(tempnode_i, node.childNodes[j]); - node.replaceChild(tempnode_j, node.childNodes[i]); + debug("resort_category: " + node); + + var by_unread = feedsSortByUnread(); + + var list = node.getElementsByTagName("LI"); + + for (i = 0; i < list.length; i++) { + + for (j = i+1; j < list.length; j++) { + + var tmp_val = get_feed_entry_unread(list[i]); + var cur_val = get_feed_entry_unread(list[j]); + + var tmp_name = get_feed_entry_name(list[i]); + var cur_name = get_feed_entry_name(list[j]); + + if ((by_unread && (cur_val > tmp_val)) || (!by_unread && (cur_name < tmp_name))) { + tempnode_i = list[i].cloneNode(true); + tempnode_j = list[j].cloneNode(true); + node.replaceChild(tempnode_i, list[j]); + node.replaceChild(tempnode_j, list[i]); } } - } + + } catch (e) { + exception_error("resort_category", e); } } @@ -724,24 +730,18 @@ function resort_category(doc, node) { function resort_feedlist() { debug("resort_feedlist"); - var fd = document; - - if (fd.getElementById("feedCatHolder")) { + if (document.getElementById("FCATLIST--1")) { - var feeds = fd.getElementById("feedList"); - var child = feeds.firstChild; + var lists = document.getElementsByTagName("UL"); - while (child) { - - if (child.id == "feedCatHolder") { - resort_category(fd, child.firstChild); + for (var i = 0; i < lists.length; i++) { + if (lists[i].id && lists[i].id.match("FCATLIST-")) { + resort_category(lists[i]); } - - child = child.nextSibling; } } else { - resort_category(fd, fd.getElementById("feedList")); + resort_category(document.getElementById("feedList")); } } @@ -779,107 +779,123 @@ function resort_feedlist() { } -function hideOrShowFeeds(doc, hide) { - - debug("hideOrShowFeeds: " + doc + ", " + hide); +function hideOrShowFeeds(hide) { - var fd = document; + try { - var list = fd.getElementById("feedList"); + debug("hideOrShowFeeds: " + hide); - if (fd.getElementById("feedCatHolder")) { + if (document.getElementById("FCATLIST--1")) { - var feeds = fd.getElementById("feedList"); - var child = feeds.firstChild; + var lists = document.getElementsByTagName("UL"); - while (child) { + for (var i = 0; i < lists.length; i++) { + if (lists[i].id && lists[i].id.match("FCATLIST-")) { - if (child.id == "feedCatHolder") { - hideOrShowFeedsCategory(fd, child.firstChild, hide, child.previousSibling); + var id = lists[i].id.replace("FCATLIST-", ""); + hideOrShowFeedsCategory(id, hide); } - - child = child.nextSibling; } } else { - hideOrShowFeedsCategory(fd, fd.getElementById("feedList"), hide); + hideOrShowFeedsCategory(null, hide); } -} -function hideOrShowFeedsCategory(doc, node, hide, cat_node) { - -// debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")"); - - var cat_unread = 0; - - if (!node) { - debug("hideOrShowFeeds: passed node is null, aborting"); - return; + } catch (e) { + exception_error("hideOrShowFeeds", e); } +} -// debug("cat: " + node.id); +function hideOrShowFeedsCategory(id, hide) { - if (node.hasChildNodes() && node.firstChild.nextSibling != false) { - for (i = 0; i < node.childNodes.length; i++) { - if (node.childNodes[i].nodeName != "LI") { continue; } + try { + + var node = null; + var cat_node = null; - if (node.childNodes[i].style != undefined) { + if (id) { + node = document.getElementById("FCATLIST-" + id); + cat_node = document.getElementById("FCAT-" + id); + } else { + node = document.getElementById("feedList"); // no categories + } - var has_unread = (node.childNodes[i].className != "feed" && - node.childNodes[i].className != "label" && - !(!getInitParam("hide_read_shows_special") && - node.childNodes[i].className == "virt") && - node.childNodes[i].className != "error" && - node.childNodes[i].className != "tag"); + // debug("hideOrShowFeedsCategory: " + node + " (" + hide + ")"); -// debug(node.childNodes[i].id + " --> " + has_unread); + var cat_unread = 0; - if (hide && !has_unread) { - //node.childNodes[i].style.display = "none"; - var id = node.childNodes[i].id; - Effect.Fade(node.childNodes[i], {duration : 0.3, - queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }}); - } + if (!node) { + debug("hideOrShowFeeds: passed node is null, aborting"); + return; + } - if (!hide) { - node.childNodes[i].style.display = "list-item"; - //Effect.Appear(node.childNodes[i], {duration : 0.3}); - } + // debug("cat: " + node.id); - if (has_unread) { - node.childNodes[i].style.display = "list-item"; - cat_unread++; - //Effect.Appear(node.childNodes[i], {duration : 0.3}); - //Effect.Highlight(node.childNodes[i]); + if (node.hasChildNodes() && node.firstChild.nextSibling != false) { + for (i = 0; i < node.childNodes.length; i++) { + if (node.childNodes[i].nodeName != "LI") { continue; } + + if (node.childNodes[i].style != undefined) { + + var has_unread = (node.childNodes[i].className != "feed" && + node.childNodes[i].className != "label" && + !(!getInitParam("hide_read_shows_special") && + node.childNodes[i].className == "virt") && + node.childNodes[i].className != "error" && + node.childNodes[i].className != "tag"); + + // debug(node.childNodes[i].id + " --> " + has_unread); + + if (hide && !has_unread) { + //node.childNodes[i].style.display = "none"; + var id = node.childNodes[i].id; + Effect.Fade(node.childNodes[i], {duration : 0.3, + queue: { position: 'end', scope: 'FFADE-' + id, limit: 1 }}); + } + + if (!hide) { + node.childNodes[i].style.display = "list-item"; + //Effect.Appear(node.childNodes[i], {duration : 0.3}); + } + + if (has_unread) { + node.childNodes[i].style.display = "list-item"; + cat_unread++; + //Effect.Appear(node.childNodes[i], {duration : 0.3}); + //Effect.Highlight(node.childNodes[i]); + } } } - } - } - -// debug("end cat: " + node.id + " unread " + cat_unread); - - if (cat_unread == 0) { - if (cat_node.style == undefined) { - debug("ERROR: supplied cat_node " + cat_node + - " has no styles. WTF?"); - return; - } - if (hide) { - //cat_node.style.display = "none"; - Effect.Fade(cat_node, {duration : 0.3, - queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }}); + } + + // debug("end cat: " + node.id + " unread " + cat_unread); + + if (cat_unread == 0) { + if (cat_node.style == undefined) { + debug("ERROR: supplied cat_node " + cat_node + + " has no styles. WTF?"); + return; + } + if (hide) { + //cat_node.style.display = "none"; + Effect.Fade(cat_node, {duration : 0.3, + queue: { position: 'end', scope: 'CFADE-' + node.id, limit: 1 }}); + } else { + cat_node.style.display = "list-item"; + } } else { - cat_node.style.display = "list-item"; - } - } else { - try { - cat_node.style.display = "list-item"; - } catch (e) { - debug(e); + try { + cat_node.style.display = "list-item"; + } catch (e) { + debug(e); + } } - } // debug("unread for category: " + cat_unread); + + } catch (e) { + exception_error("hideOrShowFeedsCategory", e); + } } function selectTableRow(r, do_select) { @@ -1029,6 +1045,110 @@ function toggleSelectRow(sender) { } } +function getNextUnreadCat(id) { + try { + var rows = document.getElementById("feedList").getElementsByTagName("LI"); + var feeds = new Array(); + + var unread_only = true; + var is_cat = true; + + for (var i = 0; i < rows.length; i++) { + if (rows[i].id.match("FCAT-")) { + if (rows[i].id == "FCAT-" + id && is_cat || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) { + + var cat_id = parseInt(rows[i].id.replace("FCAT-", "")); + + if (cat_id >= 0) { + if (!unread_only || get_cat_unread(cat_id) > 0) { + feeds.push(cat_id); + } + } + } + } + } + + var idx = feeds.indexOf(id); + if (idx != -1 && idx < feeds.length) { + return feeds[idx+1]; + } else { + return feeds.shift(); + } + + } catch (e) { + exception_error("getNextUnreadCat", e); + } +} + +function getRelativeFeedId2(id, is_cat, direction, unread_only) { + try { + +// alert(id + " IC: " + is_cat + " D: " + direction + " U: " + unread_only); + + var rows = document.getElementById("feedList").getElementsByTagName("LI"); + var feeds = new Array(); + + for (var i = 0; i < rows.length; i++) { + if (rows[i].id.match("FEEDR-")) { + + if (rows[i].id == "FEEDR-" + id && !is_cat || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) { + + if (!unread_only || + (rows[i].className.match("Unread") || rows[i].id == "FEEDR-" + id)) { + feeds.push(rows[i].id.replace("FEEDR-", "")); + } + } + } + + if (rows[i].id.match("FCAT-")) { + if (rows[i].id == "FCAT-" + id && is_cat || (Element.visible(rows[i]) && Element.visible(rows[i].parentNode))) { + + var cat_id = parseInt(rows[i].id.replace("FCAT-", "")); + + if (cat_id >= 0) { + if (!unread_only || get_cat_unread(cat_id) > 0) { + feeds.push("CAT:"+cat_id); + } + } + } + } + } + +// alert(feeds.toString()); + + if (!id) { + if (direction == "next") { + return feeds.shift(); + } else { + return feeds.pop(); + } + } else { + if (direction == "next") { + if (is_cat) id = "CAT:" + id; + var idx = feeds.indexOf(id); + if (idx != -1 && idx < feeds.length) { + return feeds[idx+1]; + } else { + return getRelativeFeedId2(false, is_cat, direction, unread_only); + } + } else { + if (is_cat) id = "CAT:" + id; + var idx = feeds.indexOf(id); + if (idx > 0) { + return feeds[idx-1]; + } else { + return getRelativeFeedId2(false, is_cat, direction, unread_only); + } + } + + } + + } catch (e) { + exception_error("getRelativeFeedId2", e); + } +} + + function getRelativeFeedId(list, id, direction, unread_only) { var rows = list.getElementsByTagName("LI"); var feeds = new Array(); @@ -1095,9 +1215,9 @@ function appearBlockElement_afh(effect) { function checkboxToggleElement(elem, id) { if (elem.checked) { - Effect.SlideDown(id, {duration : 0.5}); + Effect.Appear(id, {duration : 0.5}); } else { - Effect.SlideUp(id, {duration : 0.5}); + Effect.Fade(id, {duration : 0.5}); } } @@ -1157,22 +1277,32 @@ function leading_zero(p) { return s; } -function closeInfoBox(cleanup) { - - Element.hide("dialog_overlay"); +function closeErrorBox() { - var box = document.getElementById('infoBox'); - var shadow = document.getElementById('infoBoxShadow'); + if (Element.visible("errorBoxShadow")) { + Element.hide("dialog_overlay"); + Element.hide("errorBoxShadow"); - if (shadow) { - shadow.style.display = "none"; - } else if (box) { - box.style.display = "none"; + enableHotkeys(); } - if (cleanup) box.innerHTML = " "; + return false; +} + +function closeInfoBox(cleanup) { + + if (Element.visible("infoBoxShadow")) { + Element.hide("dialog_overlay"); + + var shadow = document.getElementById('infoBoxShadow'); + var box = document.getElementById('infoBoxShadow'); + + Element.hide(shadow); - enableHotkeys(); + if (cleanup) box.innerHTML = " "; + + enableHotkeys(); + } return false; } @@ -1342,22 +1472,6 @@ function filterCR(e, f) } } -function getMainContext() { - return this.window; -} - -function getFeedsContext() { - return this.window; -} - -function getContentContext() { - return this.window; -} - -function getHeadlinesContext() { - return this.window; -} - var debug_last_class = "even"; function debug(msg) { @@ -1391,7 +1505,7 @@ function storeInitParam(key, value) { init_params[key] = value; } -function fatalError(code, message) { +function fatalError(code, msg, ext_info) { try { if (code == 6) { @@ -1399,14 +1513,29 @@ function fatalError(code, message) { } else if (code == 5) { window.location.href = "update.php"; } else { - var fe = document.getElementById("fatal_error"); - var fc = document.getElementById("fatal_error_msg"); - if (message == "") message = "Unknown error"; + if (msg == "") msg = "Unknown error"; + + var ebc = document.getElementById("xebContent"); + + if (ebc) { + + Element.show("dialog_overlay"); + Element.show("errorBoxShadow"); + Element.hide("xebBtn"); - fc.innerHTML = " " + message + " (Code " + code + ")"; + if (ext_info) { + if (ext_info.responseText) { + ext_info = ext_info.responseText; + } + } - fe.style.display = "block"; + ebc.innerHTML = + "
Error message:
" + + "
" + msg + "
" + + "
Additional information:
" + + ""; + } } } catch (e) { @@ -1415,14 +1544,12 @@ function fatalError(code, message) { } function getFeedName(id, is_cat) { - var d = getFeedsContext().document; - var e; if (is_cat) { - e = d.getElementById("FCATN-" + id); + e = document.getElementById("FCATN-" + id); } else { - e = d.getElementById("FEEDN-" + id); + e = document.getElementById("FEEDN-" + id); } if (e) { return e.innerHTML.stripTags(); @@ -1431,8 +1558,37 @@ function getFeedName(id, is_cat) { } } -function viewContentUrl(url) { - getContentContext().location = url; +function filterDlgCheckType(sender) { + + try { + + var ftype = sender[sender.selectedIndex].value; + + var form = document.forms["filter_add_form"]; + + if (!form) { + form = document.forms["filter_edit_form"]; + } + + if (!form) { + debug("filterDlgCheckType: can't find form!"); + return; + } + + // if selected filter type is 5 (Date) enable the modifier dropbox + if (ftype == 5) { + Element.show("filter_dlg_date_mod_box"); + Element.show("filter_dlg_date_chk_box"); + } else { + Element.hide("filter_dlg_date_mod_box"); + Element.hide("filter_dlg_date_chk_box"); + + } + + } catch (e) { + exception_error("filterDlgCheckType", e); + } + } function filterDlgCheckAction(sender) { @@ -1452,18 +1608,25 @@ function filterDlgCheckAction(sender) { return; } - var action_param = form.action_param; + var action_param = document.getElementById("filter_dlg_param_box"); if (!action_param) { - debug("filterDlgCheckAction: can't find action param!"); + debug("filterDlgCheckAction: can't find action param box!"); return; } // if selected action supports parameters, enable params field - if (action == 4 || action == 6) { - action_param.disabled = false; + if (action == 4 || action == 6 || action == 7) { + Element.show(action_param); + if (action != 7) { + Element.show(form.action_param); + Element.hide(form.action_param_label); + } else { + Element.show(form.action_param_label); + Element.hide(form.action_param); + } } else { - action_param.disabled = true; + Element.hide(action_param); } } catch (e) { @@ -1472,6 +1635,55 @@ function filterDlgCheckAction(sender) { } +function filterDlgCheckDate() { + try { + var form = document.forms["filter_add_form"]; + + if (!form) { + form = document.forms["filter_edit_form"]; + } + + if (!form) { + debug("filterDlgCheckAction: can't find form!"); + return; + } + + var reg_exp = form.reg_exp.value; + + var query = "backend.php?op=rpc&subop=checkDate&date=" + reg_exp; + + new Ajax.Request(query, { + onComplete: function(transport) { + + var form = document.forms["filter_add_form"]; + + if (!form) { + form = document.forms["filter_edit_form"]; + } + + if (transport.responseXML) { + var result = transport.responseXML.getElementsByTagName("result")[0]; + + if (result && result.firstChild) { + if (result.firstChild.nodeValue == "1") { + + new Effect.Highlight(form.reg_exp, {startcolor : '#00ff00'}); + + return; + } + } + } + + new Effect.Highlight(form.reg_exp, {startcolor : '#ff0000'}); + + } }); + + + } catch (e) { + exception_error("filterDlgCheckDate", e); + } +} + function explainError(code) { return displayDlg("explainError", code); } @@ -1683,3 +1895,195 @@ function remove_splash() { debug("removed splash!"); } } + +function addLabelExample() { + try { + var form = document.forms["label_edit_form"]; + + var text = form.sql_exp; + var op = form.label_fields[form.label_fields.selectedIndex]; + var p = form.label_fields_param; + + if (op) { + op = op.value; + + var tmp = ""; + + if (text.value != "") { + if (text.value.substring(text.value.length-3, 3).toUpperCase() != "AND") { + tmp = " AND "; + } else { + tmp = " "; + } + } + + if (op == "unread") { + tmp = tmp + "unread = true"; + } + + if (op == "updated") { + tmp = tmp + "last_read is null and unread = false"; + } + + if (op == "kw_title") { + if (p.value == "") { + alert("This action requires a parameter."); + return false; + } + tmp = tmp + "ttrss_entries.title like '%"+p.value+"%'"; + } + + if (op == "kw_content") { + if (p.value == "") { + alert("This action requires a parameter."); + return false; + } + + tmp = tmp + "ttrss_entries.content like '%"+p.value+"%'"; + } + + if (op == "scoreE") { + if (isNaN(parseInt(p.value))) { + alert("This action expects numeric parameter."); + return false; + } + tmp = tmp + "score = " + p.value; + } + + if (op == "scoreG") { + if (isNaN(parseInt(p.value))) { + alert("This action expects numeric parameter."); + return false; + } + tmp = tmp + "score > " + p.value; + } + + if (op == "scoreL") { + if (isNaN(parseInt(p.value))) { + alert("This action expects numeric parameter."); + return false; + } + tmp = tmp + "score < " + p.value; + } + + if (op == "newerD") { + if (isNaN(parseInt(p.value))) { + alert("This action expects numeric parameter."); + return false; + } + tmp = tmp + "updated > NOW() - INTERVAL '"+parseInt(p.value)+" days'"; + } + + if (op == "newerH") { + if (isNaN(parseInt(p.value))) { + alert("This action expects numeric parameter."); + return false; + } + + tmp = tmp + "updated > NOW() - INTERVAL '"+parseInt(p.value)+" hours'"; + } + + text.value = text.value + tmp; + + p.value = ""; + + } + + } catch (e) { + exception_error("addLabelExample", e); + } + + return false; +} + +function labelFieldsCheck(elem) { + try { + var op = elem[elem.selectedIndex].value; + + var p = document.forms["label_edit_form"].label_fields_param; + + if (op == "kw_title" || op == "kw_content" || op == "scoreL" || + op == "scoreG" || op == "scoreE" || op == "newerD" || + op == "newerH" ) { + Element.show(p); + } else { + Element.hide(p); + } + + } catch (e) { + exception_error("labelFieldsCheck", e); + + } +} + +function getSelectedFeedsFromBrowser() { + + var list = document.getElementById("browseFeedList"); + if (!list) list = document.getElementById("browseBigFeedList"); + + var selected = new Array(); + + for (i = 0; i < list.childNodes.length; i++) { + var child = list.childNodes[i]; + if (child.id && child.id.match("FBROW-")) { + var id = child.id.replace("FBROW-", ""); + + var cb = document.getElementById("FBCHK-" + id); + + if (cb.checked) { + selected.push(id); + } + } + } + + return selected; +} + +function updateFeedBrowser() { + try { + + var query = "backend.php?op=rpc&subop=feedBrowser"; + + var search = document.getElementById("feed_browser_search"); + var limit = document.getElementById("feed_browser_limit"); + + if (limit) { + query = query + "&limit=" + limit[limit.selectedIndex].value; + } + + if (search) { + query = query + "&search=" + param_escape(search.value); + } + + notify_progress("Loading, please wait...", true); + + new Ajax.Request(query, { + onComplete: function(transport) { + notify(''); + + var c = document.getElementById("browseFeedList"); + var r = transport.responseXML.getElementsByTagName("content")[0]; + var nr = transport.responseXML.getElementsByTagName("num-results")[0]; + var sb = document.getElementById("feed_browser_subscribe"); + + if (c && r) { + c.innerHTML = r.firstChild.nodeValue; + } + + if (nr && sb) { + if (nr.getAttribute("value") > 0) { + sb.disabled = false; + } else { + sb.disabled = true; + } + } + + } }); + + + } catch (e) { + exception_error("updateFeedBrowser", e); + } +} + +