diff options
author | Andrew Dolgov <[email protected]> | 2008-12-13 12:57:53 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2008-12-13 12:57:53 +0100 |
commit | d0da85c27c2a97173dd997f7f2a29f09556698ed (patch) | |
tree | 839608b369dc33c8b84bc15fecae1aa0447b614c | |
parent | 75fa1e31266b55ea502876dae9b14474bd58bf9a (diff) |
preliminary UI work on date checking filter (refs #225)
-rw-r--r-- | functions.js | 82 | ||||
-rw-r--r-- | modules/backend-rpc.php | 18 | ||||
-rw-r--r-- | modules/popup-dialog.php | 17 | ||||
-rw-r--r-- | sanity_check.php | 2 |
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> </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 " <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 |