]> git.wh0rd.org Git - tt-rss.git/commitdiff
create label now uses dialog, code cleanups
authorAndrew Dolgov <fox@madoka.spb.ru>
Thu, 17 Aug 2006 04:54:57 +0000 (05:54 +0100)
committerAndrew Dolgov <fox@madoka.spb.ru>
Thu, 17 Aug 2006 04:54:57 +0000 (05:54 +0100)
backend.php
prefs.js

index 7155846b669dcc2edf9f795705406cb76704d7cf..8b31297fb8760945036f47ca8f6cbf995723fc09 100644 (file)
                        if (!WEB_DEMO_MODE) {
 
                                // no escaping is done here on purpose
-                               $exp = trim($_GET["exp"]);
+                               $sql_exp = trim($_GET["sql_exp"]);
+                               $description = db_escape_string($_GET["description"]);
                                        
                                $result = db_query($link,
                                        "INSERT INTO ttrss_labels (sql_exp,description,owner_uid) 
-                                               VALUES ('$exp', '$exp', '".$_SESSION["uid"]."')");
+                                               VALUES ('$sql_exp', '$description', '".$_SESSION["uid"]."')");
                        } 
                }
 
-               print "<div class=\"prefGenericAddBox\">
-                       <input size=\"40\"                      
-                               onkeyup=\"toggleSubmitNotEmpty(this, 'label_create_btn')\"
-                               id=\"ladd_expr\">&nbsp;";
-                       
+               print "<div class=\"prefGenericAddBox\">";
+
                print"<input type=\"submit\" class=\"button\" 
-                       disabled=\"true\" id=\"label_create_btn\"
-                       onclick=\"javascript:addLabel()\" value=\"Create label\"></div>";
+                       id=\"label_create_btn\"
+                       onclick=\"return displayDlg('quickAddLabel', false)\" 
+                       value=\"Create label\"></div>";
 
                $result = db_query($link, "SELECT 
                                id,sql_exp,description
 
                }
 
+               if ($id == "quickAddLabel") {
+                       print "<div id=\"infoBoxTitle\">Create label</div>";
+                       print "<div class=\"infoBoxContents\">";
+
+                       print "<form id=\"label_edit_form\">";
+
+                       print "<input type=\"hidden\" name=\"op\" value=\"pref-labels\">";
+                       print "<input type=\"hidden\" name=\"subop\" value=\"add\">"; 
+
+                       print "<table width='100%'>";
+
+                       print "<tr><td>Caption:</td>
+                               <td><input onkeypress=\"return filterCR(event)\"
+                                        onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
+                                        name=\"description\" class=\"iedit\">";
+
+                       print "</td></tr>";
+
+                       print "<tr><td colspan=\"2\">
+                               <p>SQL Expression:</p>";
+
+                       print "<textarea onkeyup=\"toggleSubmitNotEmpty(this, 'infobox_submit')\"
+                                        rows=\"4\" name=\"sql_exp\" class=\"iedit\"></textarea>";
+
+                       print "</td></tr></table>";
+
+                       print "</form>";
+
+                       print "<div style=\"display : none\" id=\"label_test_result\"></div>";
+
+                       print "<div align='right'>";
+
+                       print "<input type=\"submit\" onclick=\"labelTest()\" value=\"Test\">
+                               ";
+
+                       print "<input type=\"submit\" 
+                               id=\"infobox_submit\"
+                               disabled=\"true\"
+                               class=\"button\" onclick=\"return addLabel()\" 
+                               value=\"Create\"> ";
+
+                       print "<input class=\"button\"
+                               type=\"submit\" onclick=\"return labelEditCancel()\" 
+                               value=\"Cancel\">";
+               }
+
                if ($id == "quickAddFilter") {
 
                        $active_feed_id = db_escape_string($_GET["param"]);
index 28e54ee4faa78ff9ac0f90bdc35b6b27856667e4..2ac772fc184b23db5b5e7bce0b3034ebe0da594c 100644 (file)
--- a/prefs.js
+++ b/prefs.js
@@ -63,8 +63,8 @@ function filterlist_callback() {
 function labellist_callback() {
        var container = document.getElementById('prefContent');
        if (xmlhttp.readyState == 4) {
+               closeInfoBox();
                container.innerHTML=xmlhttp.responseText;
-
                if (active_label) {
                        var row = document.getElementById("LILRR-" + active_label);
                        if (row) {
@@ -181,55 +181,26 @@ function addLabel() {
                return
        }
 
-       var sqlexp = document.getElementById("ladd_expr");
-
-       if (sqlexp.value.length == 0) {
-               alert("Can't add label: missing SQL expression.");
-       } else {
-               notify("Adding label...");
+       var form = document.forms['label_edit_form'];
 
-               xmlhttp.open("GET", "backend.php?op=pref-labels&subop=add&exp=" +
-                       param_escape(sqlexp.value), true);                      
-                       
-               xmlhttp.onreadystatechange=labellist_callback;
-               xmlhttp.send(null);
+       var sql_exp = form.sql_exp.value;
+       var description = form.description.value;
 
-               sqlexp.value = "";
+       if (sql_exp == "") {
+               alert("Can't create label: missing SQL expression.");
+               return false;
        }
 
-}
-
-function addFilter() {
-
-       if (!xmlhttp_ready(xmlhttp)) {
-               printLockingError();
-               return
+       if (description == "") {
+               alert("Can't create label: missing caption.");
+               return false;
        }
 
-       var regexp = document.getElementById("fadd_regexp");
-       var match = document.getElementById("fadd_match");
-       var feed = document.getElementById("fadd_feed");
-       var action = document.getElementById("fadd_action");
-
-       if (regexp.value.length == 0) {
-               alert("Can't add filter: missing filter expression.");
-       } else {
-               notify("Adding filter...");
-
-               var v_match = match[match.selectedIndex].text;
-               var feed_id = feed[feed.selectedIndex].id;
-               var action_id = action[action.selectedIndex].id;
-
-               xmlhttp.open("GET", "backend.php?op=pref-filters&subop=add&regexp=" +
-                       param_escape(regexp.value) + "&match=" + v_match +
-                       "&fid=" + param_escape(feed_id) + "&aid=" + param_escape(action_id), true);
-                       
-               xmlhttp.onreadystatechange=filterlist_callback;
-               xmlhttp.send(null);
-
-               regexp.value = "";
-       }
+       var query = Form.serialize("label_edit_form");
 
+       xmlhttp.open("GET", "backend.php?op=pref-labels&subop=add&" + query, true);                     
+       xmlhttp.onreadystatechange=infobox_submit_callback;
+       xmlhttp.send(null);
 }
 
 function addFeed() {
@@ -315,6 +286,8 @@ function editLabel(id) {
                return
        }
 
+       document.getElementById("label_create_btn").disabled = true;
+
        active_label = id;
 
        selectTableRowsByIdPrefix('prefLabelList', 'LILRR-', 'LICHK-', false);
@@ -709,6 +682,8 @@ function labelEditCancel() {
                return
        }
 
+       document.getElementById("label_create_btn").disabled = false;
+
        active_label = false;
 
        selectPrefRows('label', false); // cleanup feed selection