From 071ec48fd1ec17646d1879bda73489d60fede1c2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 7 Aug 2008 09:06:12 +0100 Subject: [PATCH] label editor: simple control to add common rules --- functions.js | 98 ++++++++++++++++++++++++++++++++++++++++ functions.php | 24 ++++++++++ modules/popup-dialog.php | 8 +++- modules/pref-labels.php | 6 ++- 4 files changed, 134 insertions(+), 2 deletions(-) diff --git a/functions.js b/functions.js index dd7f51ea6..61eb83d95 100644 --- a/functions.js +++ b/functions.js @@ -1737,3 +1737,101 @@ 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") { + tmp = tmp + "ttrss_entries.title like '%"+p.value+"%'"; + } + if (op == "kw_content") { + tmp = tmp + "ttrss_entries.content like '%"+p.value+"%'"; + } + + if (op == "scoreE") { + tmp = tmp + "score = " + p.value; + } + + if (op == "scoreG") { + tmp = tmp + "score > " + p.value; + } + + if (op == "scoreL") { + tmp = tmp + "score < " + p.value; + } + + if (op == "newerD") { + if (isNaN(parseInt(p))) { + alert("This action expects numeric parameter."); + return false; + } + tmp = tmp + "updated > NOW() - INTERVAL '"+parseInt(p.value)+" days'"; + } + + if (op == "newerH") { + if (isNaN(parseInt(p))) { + 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); + + } +} diff --git a/functions.php b/functions.php index e23590d74..a4471fcfe 100644 --- a/functions.php +++ b/functions.php @@ -5646,4 +5646,28 @@ print ""; } + function print_label_dlg_common_examples() { + + print __("Match ") . " "; + + print ""; + + print ""; + + print " "; + } ?> diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php index 912ab03a6..b3fb99a62 100644 --- a/modules/popup-dialog.php +++ b/modules/popup-dialog.php @@ -243,7 +243,13 @@ print "
"; print ""; + rows=\"6\" name=\"sql_exp\" class=\"labelSQL\" + cols=\"50\">$sql_exp"; + + print "
"; + + print_label_dlg_common_examples(); + print "
"; diff --git a/modules/pref-labels.php b/modules/pref-labels.php index eed74c263..e54550034 100644 --- a/modules/pref-labels.php +++ b/modules/pref-labels.php @@ -48,7 +48,11 @@ print "
"; print ""; + rows=\"6\" name=\"sql_exp\" class=\"labelSQL\" cols=\"50\">$sql_exp"; + + print "
"; + + print_label_dlg_common_examples(); print "
";