]> git.wh0rd.org - tt-rss.git/commitdiff
rework search dialog
authorAndrew Dolgov <fox@fakecake.org>
Sun, 21 Nov 2010 10:35:16 +0000 (13:35 +0300)
committerAndrew Dolgov <fox@fakecake.org>
Sun, 21 Nov 2010 10:35:16 +0000 (13:35 +0300)
feedlist.js
modules/popup-dialog.php
tt-rss.js

index d694b9be7975fb12714cfed1e4d052e0353300c9..05a16d865bc5ccbad4b6771467a4a258d1053a63 100644 (file)
@@ -1,6 +1,7 @@
 var _feed_cur_page = 0;
 var _infscroll_disable = 0;
 var _infscroll_request_sent = 0;
+var _search_query = false;
 
 var counter_timeout_id = false;
 
@@ -100,12 +101,10 @@ function viewfeed(feed, subop, is_cat, offset) {
                var query = "?op=viewfeed&feed=" + feed + "&" +
                        toolbar_query + "&subop=" + param_escape(subop);
 
-               if ($("search_form")) {
-                       var search_query = Form.serialize("search_form");
-                       query = query + "&" + search_query;
-                       $("search_form").query.value = "";
-                       closeInfoBox(true);
+               if (_search_query) {
                        force_nocache = true;
+                       query = query + "&" + _search_query;
+                       _search_query = false;
                }
 
 //             console.log("IS_CAT_STORED: " + activeFeedIsCat() + ", IS_CAT: " + is_cat);
index 1b90ecfd7d44ea65bd822c1a569e0fbe3103d04e..5d225da57fa80d2868abfa215fa0cbe42cc4d0b5 100644 (file)
 
                if ($id == "search") {
 
-                       print "<title>".__('Search')."</title>";
-                       print "<content><![CDATA[";
-
-                       print "<form id='search_form'  onsubmit='return false'>";
-
-                       #$active_feed_id = db_escape_string($_REQUEST["param"]);
-
                        $params = explode(":", db_escape_string($_REQUEST["param"]), 2);
 
                        $active_feed_id = sprintf("%d", $params[0]);
        
                                print_select_hash("match_on", 3, $search_fields); 
                        } else {
-                               print "<input onkeypress=\"return filterCR(event, search)\"
-                                       name=\"query\" size=\"50\" type=\"search\"      value=''>";
+                               print "<input dojoType=\"dijit.form.ValidationTextBox\" 
+                                       style=\"font-size : 16px; width : 20em;\"
+                                       required=\"1\" name=\"query\" type=\"search\" value=''>";
                        }
 
 
                        print "<br/>".__('Limit search to:')." ";
                        
-                       print "<select name=\"search_mode\">
+                       print "<select name=\"search_mode\" dojoType=\"dijit.form.Select\">
                                <option value=\"all_feeds\">".__('All feeds')."</option>";
                        
                        $feed_title = getFeedTitle($link, $active_feed_id);
                        }
                        
                        if ($active_feed_id && !$is_cat) {                              
-                               print "<option selected value=\"this_feed\">$feed_title</option>";
+                               print "<option selected=\"1\" value=\"this_feed\">$feed_title</option>";
                        } else {
-                               print "<option disabled>".__('This feed')."</option>";
+                               print "<option disabled=\"1\" value=\"false\">".__('This feed')."</option>";
                        }
 
                        if ($is_cat) {
-                               $cat_preselected = "selected";
+                               $cat_preselected = "selected=\"1\"";
                        }
 
                        if (get_pref($link, 'ENABLE_FEED_CATS') && ($active_feed_id > 0 || $is_cat)) {
 
                        print "</div>";
 
-                       print "</form>";
-
                        print "<div class=\"dlgButtons\">
-                       <button onclick=\"javascript:search()\">".__('Search')."</button>
-                       <button onclick=\"javascript:closeInfoBox(true)\">".__('Cancel')."</button>
+                       <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').execute()\">".__('Search')."</button>
+                       <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('searchDlg').hide()\">".__('Cancel')."</button>
                        </div>";
-
-                       print "]]></content>";
-
-                       //return;
-
                }
 
                if ($id == "quickAddFilter") {
index 08abbbe3ce1f24d0bcfbdbdc488e97280db3870a..4386fe2eeddb281d8414d2214a8777e4b7471b21 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -231,8 +231,26 @@ function timeout() {
 }
 
 function search() {
-       closeInfoBox(); 
-       viewCurrentFeed();
+       var query = "backend.php?op=dlg&id=search&param=" +
+               param_escape(getActiveFeedId() + ":" + activeFeedIsCat());
+
+       if (dijit.byId("searchDlg"))
+               dijit.byId("searchDlg").destroyRecursive();
+
+       dialog = new dijit.Dialog({
+               id: "searchDlg",
+               title: __("Search"),
+               style: "width: 600px",
+               execute: function() {
+                       if (this.validate()) {
+                               _search_query = dojo.objectToQuery(this.attr('value'));
+                               this.hide();
+                               viewCurrentFeed();
+                       }
+               },
+               href: query});
+
+       dialog.show();
 }
 
 function updateTitle() {
@@ -365,10 +383,7 @@ function quickMenuGo(opid) {
                }
 
                if (opid == "qmcSearch") {
-                       displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat(), 
-                               function() { 
-                                       document.forms['search_form'].query.focus();
-                               });
+                       search();
                        return;
                }
        
@@ -704,10 +719,7 @@ function hotkey_handler(e) {
                        }
 
                        if (keycode == 191 || keychar == '/') { // /
-                               displayDlg("search", getActiveFeedId() + ":" + activeFeedIsCat(), 
-                                       function() { 
-                                               document.forms['search_form'].query.focus();
-                                       });
+                               search();
                                return false;
                        }