implement search in pref-filters

This commit is contained in:
Andrew Dolgov 2012-06-29 13:11:39 +04:00
parent 955d4f82ea
commit 310fa2ddef
5 changed files with 46 additions and 8 deletions

View File

@ -105,6 +105,13 @@ class Pref_Filters extends Protected_Handler {
$root['name'] = __('Filters'); $root['name'] = __('Filters');
$root['items'] = array(); $root['items'] = array();
$search = $_SESSION["prefs_filter_search"];
if ($search) $search_qpart = " (LOWER(reg_exp) LIKE LOWER('%$search%')
OR LOWER(ttrss_feeds.title) LIKE LOWER('%$search%')
OR LOWER(COALESCE(ttrss_feed_categories.title, '".__('Uncategorized')."'))
LIKE LOWER('%$search%') AND cat_filter = true) AND ";
$result = db_query($this->link, "SELECT $result = db_query($this->link, "SELECT
ttrss_filters.id AS id,reg_exp, ttrss_filters.id AS id,reg_exp,
ttrss_filter_types.name AS filter_type_name, ttrss_filter_types.name AS filter_type_name,
@ -119,7 +126,7 @@ class Pref_Filters extends Protected_Handler {
filter_type, filter_type,
ttrss_filter_actions.description AS action_description, ttrss_filter_actions.description AS action_description,
ttrss_feeds.title AS feed_title, ttrss_feeds.title AS feed_title,
ttrss_feed_categories.title AS cat_title, COALESCE(ttrss_feed_categories.title, '".__('Uncategorized')."') AS cat_title,
ttrss_filter_actions.name AS action_name, ttrss_filter_actions.name AS action_name,
ttrss_filters.action_param AS action_param ttrss_filters.action_param AS action_param
FROM FROM
@ -129,6 +136,7 @@ class Pref_Filters extends Protected_Handler {
WHERE WHERE
filter_type = ttrss_filter_types.id AND filter_type = ttrss_filter_types.id AND
ttrss_filter_actions.id = action_id AND ttrss_filter_actions.id = action_id AND
$search_qpart
ttrss_filters.owner_uid = ".$_SESSION["uid"]." ttrss_filters.owner_uid = ".$_SESSION["uid"]."
ORDER by action_description, reg_exp"); ORDER by action_description, reg_exp");
@ -580,6 +588,21 @@ class Pref_Filters extends Protected_Handler {
print "<div id=\"pref-filter-header\" dojoType=\"dijit.layout.ContentPane\" region=\"top\">"; print "<div id=\"pref-filter-header\" dojoType=\"dijit.layout.ContentPane\" region=\"top\">";
print "<div id=\"pref-filter-toolbar\" dojoType=\"dijit.Toolbar\">"; print "<div id=\"pref-filter-toolbar\" dojoType=\"dijit.Toolbar\">";
$filter_search = db_escape_string($_REQUEST["search"]);
if (array_key_exists("search", $_REQUEST)) {
$_SESSION["prefs_filter_search"] = $filter_search;
} else {
$filter_search = $_SESSION["prefs_filter_search"];
}
print "<div style='float : right; padding-right : 4px;'>
<input dojoType=\"dijit.form.TextBox\" id=\"filter_search\" size=\"20\" type=\"search\"
value=\"$filter_search\">
<button dojoType=\"dijit.form.Button\" onclick=\"updateFilterList()\">".
__('Search')."</button>
</div>";
print "<div dojoType=\"dijit.form.DropDownButton\">". print "<div dojoType=\"dijit.form.DropDownButton\">".
"<span>" . __('Select')."</span>"; "<span>" . __('Select')."</span>";
print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">"; print "<div dojoType=\"dijit.Menu\" style=\"display: none;\">";

View File

@ -1,5 +1,5 @@
<?php <?php
set_include_path(get_include_path() . PATH_SEPARATOR . set_include_path(get_include_path() . PATH_SEPARATOR .
dirname(__FILE__) . "/include"); dirname(__FILE__) . "/include");
require_once "functions.php"; require_once "functions.php";
@ -72,8 +72,11 @@
<?php echo __('Hello,') ?> <b><?php echo $_SESSION["name"] ?></b> | <?php echo __('Hello,') ?> <b><?php echo $_SESSION["name"] ?></b> |
<?php } ?> <?php } ?>
<?php if (!SINGLE_USER_MODE) { ?> <?php if (!SINGLE_USER_MODE) { ?>
<a href="backend.php?op=logout"><?php echo __('Logout') ?></a> <a href="backend.php?op=logout"><?php echo __('Logout') ?></a> |
<?php } ?> <?php } ?>
<a href='<?php echo get_self_url_prefix() ?>/index.php?mobile=false'>
<?php echo __("Regular version") ?></a>
</div> </div>
<span class="title">Tiny Tiny RSS</span> <span class="title">Tiny Tiny RSS</span>

View File

@ -18,9 +18,14 @@
$mobile = new Mobile_Detect(); $mobile = new Mobile_Detect();
if ($mobile->isMobile() && !$mobile->isTablet() && !$_REQUEST['mobile']) { if (!$_REQUEST['mobile']) {
header('Location: mobile/index.php'); if ($mobile->isTablet()) {
exit; header('Location: digest.php');
exit;
} else if ($mobile->isMobile()) {
header('Location: mobile/index.php');
exit;
}
} }
$link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);

View File

@ -824,8 +824,12 @@ function importData() {
function updateFilterList() { function updateFilterList() {
var user_search = $("filter_search");
var search = "";
if (user_search) { search = user_search.value; }
new Ajax.Request("backend.php", { new Ajax.Request("backend.php", {
parameters: "?op=pref-filters", parameters: "?op=pref-filters&search=" + param_escape(search),
onComplete: function(transport) { onComplete: function(transport) {
dijit.byId('filterConfigTab').attr('content', transport.responseText); dijit.byId('filterConfigTab').attr('content', transport.responseText);
notify(""); notify("");

View File

@ -45,7 +45,10 @@ function do_login() {
</div> </div>
</fieldset> </fieldset>
<div align='center'><a target='_self' href='<?php echo get_self_url_prefix() ?>/index.php?mobile=false'>
<?php echo __("Open regular version") ?></a>
</form> </form>
</body> </body>