]> git.wh0rd.org - tt-rss.git/commitdiff
refactor tags dialog
authorAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 23 Nov 2010 10:26:02 +0000 (13:26 +0300)
committerAndrew Dolgov <fox@madoka.volgo-balt.ru>
Tue, 23 Nov 2010 10:26:02 +0000 (13:26 +0300)
feedlist.js
functions.js
modules/popup-dialog.php
prefs.js
tt-rss.js
viewfeed.js

index 9270ea4bfdd9bc721996de76d90a141ac840ed0e..4c430af51f5d3fa244495a9263e1b9a9f05cb086 100644 (file)
@@ -83,7 +83,6 @@ function viewfeed(feed, subop, is_cat, offset) {
                }
 
                hideAuxDlg();
-               closeInfoBox();
 
                Form.enable("main_toolbar_form");
 
index 02e93eef8d827431c3682adab3337136e83e5bd1..1b5bfaf4b2898438e5aa87a2fa2d65baa06a3dbe 100644 (file)
@@ -41,10 +41,6 @@ function exception_error(location, e, ext_info) {
                content += "<div><b>Stack trace:</b></div>" +
                        "<textarea readonly=\"1\">" + e.stack + "</textarea>";
 
-//             content += "<div style='text-align : center'>" +
-//                     "<button onclick=\"closeInfoBox()\">" +
-//                     "Close this window" + "</button></div>";
-
                content += "</div>";
 
                // TODO: add code to automatically report errors to tt-rss.org
@@ -490,62 +486,6 @@ function infobox_callback2(transport) {
        }
 }
 
-function createFilter() {
-
-       try {
-
-               var form = document.forms['filter_add_form'];
-               var reg_exp = form.reg_exp.value;
-       
-               if (reg_exp == "") {
-                       alert(__("Can't add filter: nothing to match on."));
-                       return false;
-               }
-
-               var query = "?op=rpc&subop=verifyRegexp&reg_exp=" + param_escape(reg_exp);
-
-               notify_progress("Verifying regular expression...");
-
-               new Ajax.Request("backend.php", {
-                               parameters: query,
-                               onComplete: function(transport) {
-                                       handle_rpc_reply(transport);
-
-                                       var response = transport.responseXML;
-
-                                       if (response) {
-                                               var s = response.getElementsByTagName("status")[0].firstChild.nodeValue;
-       
-                                               notify('');
-
-                                               if (s == "INVALID") {
-                                                       alert("Match regular expression seems to be invalid.");
-                                                       return;
-                                               } else {
-
-                                                       var query = Form.serialize("filter_add_form");
-                                               
-                                                       // we can be called from some other tab in Prefs                
-                                                       if (typeof active_tab != 'undefined' && active_tab) {
-                                                               active_tab = "filterConfig";
-                                                       }
-                                               
-                                                       new Ajax.Request("backend.php?" + query, {
-                                                               onComplete: function (transport) {
-                                                                       infobox_submit_callback2(transport);
-                                                               } });
-                                                       
-                                                       return true;
-                                               }
-                                       }
-
-                       } });
-
-       } catch (e) {
-               exception_error("createFilter", e);
-       }
-}
-
 function filterCR(e, f)
 {
      var key;
index 584f6e51df2808dd5274eb54305e60acacb3d248..52b1f94f6da33ddaf7cb04905a9677626cbea53f 100644 (file)
 
                if ($id == "editArticleTags") {
 
-                       print "<title>".__('Edit Tags')."</title>";
-                       print "<content><![CDATA[";
-
-                       print "<form id=\"tag_edit_form\" onsubmit='return false'>";
+#                      print "<form id=\"tag_edit_form\" onsubmit='return false'>";
 
                        print __("Tags for this article (separated by commas):")."<br>";
 
 
                        $tags_str = join(", ", $tags);
 
-                       print "<table width='100%'>";
+                       print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$param\">";
+                       print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"rpc\">";
+                       print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"subop\" value=\"setArticleTags\">";
 
-                       print "<tr><td colspan='2'><input type=\"hidden\" name=\"id\" value=\"$param\"></td></tr>";
+                       print "<table width='100%'><tr><td>";
 
-                       print "<tr><td colspan='2'><textarea rows='4' class='iedit' id='tags_str' 
+                       print "<textarea dojoType=\"dijit.form.SimpleTextarea\" rows='4'
+                               style='font-size : 12px; width : 100%' id=\"tags_str\"
                                name='tags_str'>$tags_str</textarea>
                        <div class=\"autocomplete\" id=\"tags_choices\" 
-                                       style=\"display:none\"></div>   
-                       </td></tr>";
-
-                       print "</table>";
+                                       style=\"display:none\"></div>"; 
 
-                       print "</form>";
+                       print "</td></tr></table>";
 
-                       print "<div align='right'>";
+#                      print "</form>";
 
-                       print "<button onclick=\"return editTagsSave()\">".__('Save')."</button> ";
-                       print "<button onclick=\"return closeInfoBox()\">".__('Cancel')."</button>";
+                       print "<div class='dlgButtons'>";
 
-                       print "]]></content>";
+                       print "<button dojoType=\"dijit.form.Button\"
+                               onclick=\"dijit.byId('editTagsDlg').execute()\">".__('Save')."</button> ";
+                       print "<button dojoType=\"dijit.form.Button\"
+                               onclick=\"dijit.byId('editTagsDlg').hide()\">".__('Cancel')."</button>";
+                       print "</div>";
 
-                       //return;
                }
 
                if ($id == "printTagCloud") {
index 833a99d4600e501d1e681e94fc5a397a11e68066..f83ff0d92623ec422241db632bb85bb3bb4e1953 100644 (file)
--- a/prefs.js
+++ b/prefs.js
@@ -35,14 +35,9 @@ function filterlist_callback2(transport) {
 }
 
 function labellist_callback2(transport) {
-
        try {
-
                dijit.byId('labelConfigTab').attr('content', transport.responseText); 
-               closeInfoBox();
-
                notify("");
-
        } catch (e) {
                exception_error("labellist_callback2", e);
        }
@@ -850,7 +845,6 @@ function selectTab(id, noupdate, subop) {
        try {
                if (!noupdate) {
                        notify_progress("Loading, please wait...");
-                       closeInfoBox();
 
                        if (id == "feedConfig") {
                                updateFeedList();
index f3aad8c1d912e10a798894b554b914c47334fd58..ccb24ecae9d3b7efed1e03e963d9f044b87fe6b5 100644 (file)
--- a/tt-rss.js
+++ b/tt-rss.js
@@ -636,7 +636,7 @@ function rescoreCurrentFeed() {
 function hotkey_handler(e) {
        try {
 
-               if (e.target.nodeName == "INPUT") return;
+               if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return;
 
                var keycode;
                var shift_key = false;
index 7fe83b42e012e6838cede4145b44f0b56b2d465f..b276a3ef3e4f1db109f38d926a050f90367e0f45 100644 (file)
@@ -1083,84 +1083,70 @@ function catchupSelection() {
        }
 }
 
-function editArticleTags(id, feed_id, cdm_enabled) {
-       displayDlg('editArticleTags', id,
+function editArticleTags(id) {
+/*     displayDlg('editArticleTags', id,
                           function () {
                                        $("tags_str").focus();
 
                                        new Ajax.Autocompleter('tags_str', 'tags_choices',
                                           "backend.php?op=rpc&subop=completeTags",
                                           { tokens: ',', paramName: "search" });
-                          });
-}
-
-function editTagsSave() {
-
-       notify_progress("Saving article tags...");
+                          }); */
 
-       var form = document.forms["tag_edit_form"];
+               var query = "backend.php?op=dlg&id=editArticleTags&param=" + param_escape(id);
 
-       var query = Form.serialize("tag_edit_form");
+               if (dijit.byId("editTagsDlg"))
+                       dijit.byId("editTagsDlg").destroyRecursive();
 
-       query = "?op=rpc&subop=setArticleTags&" + query;
+               dialog = new dijit.Dialog({
+                       id: "editTagsDlg",
+                       title: __("Edit article Tags"),
+                       style: "width: 600px",
+                       execute: function() {
+                               if (this.validate()) {
+                                       var query = dojo.objectToQuery(this.attr('value'));
 
-       console.log(query);
+                                       notify_progress("Saving article tags...", true);
 
-       new Ajax.Request("backend.php", {
-               parameters: query,
-               onComplete: function(transport) {
-                               try {
-                                       //console.log("tags saved...");
-                       
-                                       closeInfoBox();
-                                       notify("");
-               
-                                       if (transport.responseXML) {
-                                               var tags_str = transport.responseXML.getElementsByTagName("tags-str")[0];
-                                               
-                                               if (tags_str) {
-                                                       var id = tags_str.getAttribute("id");
-                       
-                                                       if (id) {
-                                                               var tags = $("ATSTR-" + id);
-                                                               if (tags) {
-                                                                       tags.innerHTML = tags_str.firstChild.nodeValue;
+                                       new Ajax.Request("backend.php", {
+                                       parameters: query,
+                                       onComplete: function(transport) {
+                                               notify('');
+                                               dialog.hide();
+       
+                                               if (transport.responseXML) {
+                                                       var tags_str = transport.responseXML.getElementsByTagName("tags-str")[0];
+                                                       
+                                                       if (tags_str) {
+                                                               var id = tags_str.getAttribute("id");
+                               
+                                                               if (id) {
+                                                                       var tags = $("ATSTR-" + id);
+                                                                       if (tags) {
+                                                                               tags.innerHTML = tags_str.firstChild.nodeValue;
+                                                                       }
+       
+                                                                       cache_invalidate(id);
                                                                }
-
-                                                               cache_invalidate(id);
                                                        }
                                                }
-                                       }
-                       
-                               } catch (e) {
-                                       exception_error("editTagsSave", e);
+       
+                                       }});
                                }
-                       } });
-}
-
-function editTagsInsert() {
-       try {
-
-               var form = document.forms["tag_edit_form"];
-
-               var found_tags = form.found_tags;
-               var tags_str = form.tags_str;
-
-               var tag = found_tags[found_tags.selectedIndex].value;
+                       },
+                       href: query,
+               });
 
-               if (tags_str.value.length > 0 && 
-                               tags_str.value.lastIndexOf(", ") != tags_str.value.length - 2) {
+               var tmph = dojo.connect(dialog, 'onLoad', function() {
+               dojo.disconnect(tmph);
 
-                       tags_str.value = tags_str.value + ", ";
-               }
+                       new Ajax.Autocompleter('tags_str', 'tags_choices',
+                          "backend.php?op=rpc&subop=completeTags",
+                          { tokens: ',', paramName: "search" });
+               });
 
-               tags_str.value = tags_str.value + tag + ", ";
+               dialog.show();
 
-               found_tags.selectedIndex = 0;
-               
-       } catch (e) {
-               exception_error("editTagsInsert", e);
-       }
 }
 
 function cdmScrollToArticleId(id) {