label editor: simple control to add common rules

This commit is contained in:
Andrew Dolgov 2008-08-07 09:06:12 +01:00
parent e274978132
commit 071ec48fd1
4 changed files with 134 additions and 2 deletions

View File

@ -1737,3 +1737,101 @@ function remove_splash() {
debug("removed 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);
}
}

View File

@ -5646,4 +5646,28 @@
print "</table>"; print "</table>";
} }
function print_label_dlg_common_examples() {
print __("Match ") . " ";
print "<select name=\"label_fields\" onchange=\"labelFieldsCheck(this)\">";
print "<option value=\"unread\">".__("Unread articles")."</option>";
print "<option value=\"updated\">".__("Updated articles")."</option>";
print "<option value=\"kw_title\">".__("Title contains")."</option>";
print "<option value=\"kw_content\">".__("Content contains")."</option>";
print "<option value=\"scoreE\">".__("Score is equals")."</option>";
print "<option value=\"scoreG\">".__("Score is less than")."</option>";
print "<option value=\"scoreL\">".__("Score is greater than")."</option>";
print "<option value=\"newerH\">".__("Articles newer than X hours")."</option>";
print "<option value=\"newerD\">".__("Articles newer than X days")."</option>";
print "</select>";
print "<input style=\"display : none\" name=\"label_fields_param\"
size=\"10\">";
print " <input type=\"submit\"
onclick=\"return addLabelExample()\"
value=\"".__("Add")."\">";
}
?> ?>

View File

@ -243,7 +243,13 @@
print "<div class=\"dlgSecCont\">"; print "<div class=\"dlgSecCont\">";
print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\" print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
rows=\"6\" name=\"sql_exp\" class=\"labelSQL\" cols=\"50\">$sql_exp</textarea>"; rows=\"6\" name=\"sql_exp\" class=\"labelSQL\"
cols=\"50\">$sql_exp</textarea>";
print "<br/>";
print_label_dlg_common_examples();
print "</div>"; print "</div>";

View File

@ -50,6 +50,10 @@
print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\" print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
rows=\"6\" name=\"sql_exp\" class=\"labelSQL\" cols=\"50\">$sql_exp</textarea>"; rows=\"6\" name=\"sql_exp\" class=\"labelSQL\" cols=\"50\">$sql_exp</textarea>";
print "<br/>";
print_label_dlg_common_examples();
print "</div>"; print "</div>";
print "</form>"; print "</form>";