summaryrefslogtreecommitdiff
path: root/functions.js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-11-09 01:04:00 +0300
committerAndrew Dolgov <[email protected]>2010-11-09 01:04:00 +0300
commit1c31e1908a1c8d8e46df83a756f2a5ad445ceb70 (patch)
treeabef2cbd40d9c0ee4ef875ccd2760b3402fc4766 /functions.js
parentec16da866b94a9ddc00bffb0ed8c242edc33b4d1 (diff)
allow adding labels on the fly
Diffstat (limited to 'functions.js')
-rw-r--r--functions.js39
1 files changed, 36 insertions, 3 deletions
diff --git a/functions.js b/functions.js
index af18f8383..ae4737dca 100644
--- a/functions.js
+++ b/functions.js
@@ -1983,7 +1983,7 @@ function uploadFeedIcon() {
}
}
-function addLabel() {
+function addLabel(select, callback) {
try {
@@ -1999,14 +1999,19 @@ function addLabel() {
var query = "?op=pref-labels&subop=add&caption=" +
param_escape(caption);
+ if (select)
+ query += "&output=select";
+
notify_progress("Loading, please wait...", true);
- if (inPreferences()) active_tab = "labelConfig";
+ if (inPreferences() && !select) active_tab = "labelConfig";
new Ajax.Request("backend.php", {
parameters: query,
onComplete: function(transport) {
- if (inPreferences()) {
+ if (callback) {
+ callback(transport);
+ } else if (inPreferences()) {
infobox_submit_callback2(transport);
} else {
updateFeedList();
@@ -2232,3 +2237,31 @@ function genUrlChangeKey(feed, is_cat) {
return false;
}
+function labelSelectOnChange(elem) {
+ try {
+ var value = elem[elem.selectedIndex].value;
+ var def = elem.getAttribute('default');
+
+ if (value == "ADD_LABEL") {
+
+ if (def)
+ dropboxSelect(elem, def);
+ else
+ elem.selectedIndex = 0;
+
+ addLabel(elem, function(transport) {
+ var response = transport.responseXML;
+
+ var payload = response.getElementsByTagName("payload")[0];
+
+ if (payload)
+ elem.innerHTML = payload.firstChild.nodeValue;
+ });
+ }
+
+ } catch (e) {
+ exception_error("catSelectOnChange", e);
+ }
+}
+
+