summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2008-12-13 12:57:53 +0100
committerAndrew Dolgov <[email protected]>2008-12-13 12:57:53 +0100
commitd0da85c27c2a97173dd997f7f2a29f09556698ed (patch)
tree839608b369dc33c8b84bc15fecae1aa0447b614c
parent75fa1e31266b55ea502876dae9b14474bd58bf9a (diff)
preliminary UI work on date checking filter (refs #225)
-rw-r--r--functions.js82
-rw-r--r--modules/backend-rpc.php18
-rw-r--r--modules/popup-dialog.php17
-rw-r--r--sanity_check.php2
4 files changed, 116 insertions, 3 deletions
diff --git a/functions.js b/functions.js
index 77c5c13b1..9456a6a25 100644
--- a/functions.js
+++ b/functions.js
@@ -1523,6 +1523,39 @@ function getFeedName(id, is_cat) {
}
}
+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) {
try {
@@ -1560,6 +1593,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);
}
diff --git a/modules/backend-rpc.php b/modules/backend-rpc.php
index 2b3fe8726..75e4f946e 100644
--- a/modules/backend-rpc.php
+++ b/modules/backend-rpc.php
@@ -429,6 +429,24 @@
return;
}
+ if ($subop == "checkDate") {
+
+ $date = db_escape_string($_REQUEST["date"]);
+ $date_parsed = strtotime($date);
+
+ print "<rpc-reply>";
+
+ if ($date_parsed) {
+ print "<result>1</result>";
+ } else {
+ print "<result>0</result>";
+ }
+
+ print "</rpc-reply>";
+
+ return;
+ }
+
print "<rpc-reply><error>Unknown method: $subop</error></rpc-reply>";
}
?>
diff --git a/modules/popup-dialog.php b/modules/popup-dialog.php
index f86dd3db0..ea74eb583 100644
--- a/modules/popup-dialog.php
+++ b/modules/popup-dialog.php
@@ -358,13 +358,26 @@
print "<div class=\"dlgSecCont\">";
+ print "<span id=\"filter_dlg_date_mod_box\" style=\"display : none\">";
+ print "<select name=\"filter_date_modifier\">";
+ print "<option name=\"before\">".__('Before')."</option>";
+ print "<option name=\"after\">".__('After')."</option>";
+ print "</select>&nbsp;</span>";
+
print "<input onkeypress=\"return filterCR(event, createFilter)\"
onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
onchange=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
name=\"reg_exp\" size=\"30\" value=\"$reg_exp\">";
- print " " . __("on field") . " ";
- print_select_hash("filter_type", 1, $filter_types);
+ print "<span id=\"filter_dlg_date_chk_box\" style=\"display : none\">";
+ print "&nbsp;<input class=\"button\"
+ type=\"submit\" onclick=\"return filterDlgCheckDate()\"
+ value=\"".__('Check Date')."\">";
+ print "</span>";
+
+ print "<br/> " . __("on field") . " ";
+ print_select_hash("filter_type", 1, $filter_types,
+ 'onchange="filterDlgCheckType(this)"');
print "<br/>";
diff --git a/sanity_check.php b/sanity_check.php
index e84fb9f86..16819fa6a 100644
--- a/sanity_check.php
+++ b/sanity_check.php
@@ -2,7 +2,7 @@
require_once "functions.php";
define('EXPECTED_CONFIG_VERSION', 17);
- define('SCHEMA_VERSION', 45);
+ define('SCHEMA_VERSION', 46);
if (!file_exists("config.php")) {
print __("<b>Fatal Error</b>: You forgot to copy