refactor tags dialog

This commit is contained in:
Andrew Dolgov 2010-11-23 13:26:02 +03:00
parent 8cd576a12a
commit 8386f8614b
6 changed files with 62 additions and 144 deletions

View File

@ -83,7 +83,6 @@ function viewfeed(feed, subop, is_cat, offset) {
} }
hideAuxDlg(); hideAuxDlg();
closeInfoBox();
Form.enable("main_toolbar_form"); Form.enable("main_toolbar_form");

View File

@ -41,10 +41,6 @@ function exception_error(location, e, ext_info) {
content += "<div><b>Stack trace:</b></div>" + content += "<div><b>Stack trace:</b></div>" +
"<textarea readonly=\"1\">" + e.stack + "</textarea>"; "<textarea readonly=\"1\">" + e.stack + "</textarea>";
// content += "<div style='text-align : center'>" +
// "<button onclick=\"closeInfoBox()\">" +
// "Close this window" + "</button></div>";
content += "</div>"; content += "</div>";
// TODO: add code to automatically report errors to tt-rss.org // 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) function filterCR(e, f)
{ {
var key; var key;

View File

@ -569,10 +569,7 @@
if ($id == "editArticleTags") { if ($id == "editArticleTags") {
print "<title>".__('Edit Tags')."</title>"; # print "<form id=\"tag_edit_form\" onsubmit='return false'>";
print "<content><![CDATA[";
print "<form id=\"tag_edit_form\" onsubmit='return false'>";
print __("Tags for this article (separated by commas):")."<br>"; print __("Tags for this article (separated by commas):")."<br>";
@ -580,28 +577,30 @@
$tags_str = join(", ", $tags); $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> name='tags_str'>$tags_str</textarea>
<div class=\"autocomplete\" id=\"tags_choices\" <div class=\"autocomplete\" id=\"tags_choices\"
style=\"display:none\"></div> style=\"display:none\"></div>";
</td></tr>";
print "</table>"; print "</td></tr></table>";
print "</form>"; # print "</form>";
print "<div align='right'>"; print "<div class='dlgButtons'>";
print "<button onclick=\"return editTagsSave()\">".__('Save')."</button> "; print "<button dojoType=\"dijit.form.Button\"
print "<button onclick=\"return closeInfoBox()\">".__('Cancel')."</button>"; onclick=\"dijit.byId('editTagsDlg').execute()\">".__('Save')."</button> ";
print "<button dojoType=\"dijit.form.Button\"
onclick=\"dijit.byId('editTagsDlg').hide()\">".__('Cancel')."</button>";
print "</div>";
print "]]></content>";
//return;
} }
if ($id == "printTagCloud") { if ($id == "printTagCloud") {

View File

@ -35,14 +35,9 @@ function filterlist_callback2(transport) {
} }
function labellist_callback2(transport) { function labellist_callback2(transport) {
try { try {
dijit.byId('labelConfigTab').attr('content', transport.responseText); dijit.byId('labelConfigTab').attr('content', transport.responseText);
closeInfoBox();
notify(""); notify("");
} catch (e) { } catch (e) {
exception_error("labellist_callback2", e); exception_error("labellist_callback2", e);
} }
@ -850,7 +845,6 @@ function selectTab(id, noupdate, subop) {
try { try {
if (!noupdate) { if (!noupdate) {
notify_progress("Loading, please wait..."); notify_progress("Loading, please wait...");
closeInfoBox();
if (id == "feedConfig") { if (id == "feedConfig") {
updateFeedList(); updateFeedList();

View File

@ -636,7 +636,7 @@ function rescoreCurrentFeed() {
function hotkey_handler(e) { function hotkey_handler(e) {
try { try {
if (e.target.nodeName == "INPUT") return; if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return;
var keycode; var keycode;
var shift_key = false; var shift_key = false;

View File

@ -1083,37 +1083,36 @@ function catchupSelection() {
} }
} }
function editArticleTags(id, feed_id, cdm_enabled) { function editArticleTags(id) {
displayDlg('editArticleTags', id, /* displayDlg('editArticleTags', id,
function () { function () {
$("tags_str").focus(); $("tags_str").focus();
new Ajax.Autocompleter('tags_str', 'tags_choices', new Ajax.Autocompleter('tags_str', 'tags_choices',
"backend.php?op=rpc&subop=completeTags", "backend.php?op=rpc&subop=completeTags",
{ tokens: ',', paramName: "search" }); { tokens: ',', paramName: "search" });
}); }); */
}
function editTagsSave() { var query = "backend.php?op=dlg&id=editArticleTags&param=" + param_escape(id);
notify_progress("Saving article tags..."); if (dijit.byId("editTagsDlg"))
dijit.byId("editTagsDlg").destroyRecursive();
var form = document.forms["tag_edit_form"]; 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'));
var query = Form.serialize("tag_edit_form"); notify_progress("Saving article tags...", true);
query = "?op=rpc&subop=setArticleTags&" + query;
console.log(query);
new Ajax.Request("backend.php", { new Ajax.Request("backend.php", {
parameters: query, parameters: query,
onComplete: function(transport) { onComplete: function(transport) {
try { notify('');
//console.log("tags saved..."); dialog.hide();
closeInfoBox();
notify("");
if (transport.responseXML) { if (transport.responseXML) {
var tags_str = transport.responseXML.getElementsByTagName("tags-str")[0]; var tags_str = transport.responseXML.getElementsByTagName("tags-str")[0];
@ -1132,35 +1131,22 @@ function editTagsSave() {
} }
} }
} catch (e) { }});
exception_error("editTagsSave", e);
} }
} }); },
} href: query,
});
function editTagsInsert() { var tmph = dojo.connect(dialog, 'onLoad', function() {
try { dojo.disconnect(tmph);
var form = document.forms["tag_edit_form"]; new Ajax.Autocompleter('tags_str', 'tags_choices',
"backend.php?op=rpc&subop=completeTags",
{ tokens: ',', paramName: "search" });
});
var found_tags = form.found_tags; dialog.show();
var tags_str = form.tags_str;
var tag = found_tags[found_tags.selectedIndex].value;
if (tags_str.value.length > 0 &&
tags_str.value.lastIndexOf(", ") != tags_str.value.length - 2) {
tags_str.value = tags_str.value + ", ";
}
tags_str.value = tags_str.value + tag + ", ";
found_tags.selectedIndex = 0;
} catch (e) {
exception_error("editTagsInsert", e);
}
} }
function cdmScrollToArticleId(id) { function cdmScrollToArticleId(id) {