allow adding labels on the fly
This commit is contained in:
parent
ec16da866b
commit
1c31e1908a
39
functions.js
39
functions.js
|
@ -1983,7 +1983,7 @@ function uploadFeedIcon() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function addLabel() {
|
function addLabel(select, callback) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
@ -1999,14 +1999,19 @@ function addLabel() {
|
||||||
var query = "?op=pref-labels&subop=add&caption=" +
|
var query = "?op=pref-labels&subop=add&caption=" +
|
||||||
param_escape(caption);
|
param_escape(caption);
|
||||||
|
|
||||||
|
if (select)
|
||||||
|
query += "&output=select";
|
||||||
|
|
||||||
notify_progress("Loading, please wait...", true);
|
notify_progress("Loading, please wait...", true);
|
||||||
|
|
||||||
if (inPreferences()) active_tab = "labelConfig";
|
if (inPreferences() && !select) active_tab = "labelConfig";
|
||||||
|
|
||||||
new Ajax.Request("backend.php", {
|
new Ajax.Request("backend.php", {
|
||||||
parameters: query,
|
parameters: query,
|
||||||
onComplete: function(transport) {
|
onComplete: function(transport) {
|
||||||
if (inPreferences()) {
|
if (callback) {
|
||||||
|
callback(transport);
|
||||||
|
} else if (inPreferences()) {
|
||||||
infobox_submit_callback2(transport);
|
infobox_submit_callback2(transport);
|
||||||
} else {
|
} else {
|
||||||
updateFeedList();
|
updateFeedList();
|
||||||
|
@ -2232,3 +2237,31 @@ function genUrlChangeKey(feed, is_cat) {
|
||||||
return false;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -523,7 +523,8 @@
|
||||||
$result = db_query($link, "SELECT caption FROM ttrss_labels2
|
$result = db_query($link, "SELECT caption FROM ttrss_labels2
|
||||||
WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY caption");
|
WHERE owner_uid = '".$_SESSION["uid"]."' ORDER BY caption");
|
||||||
|
|
||||||
print "<select name=\"$name\" style=\"$style\">";
|
print "<select default=\"$value\" name=\"$name\" style=\"$style\"
|
||||||
|
onchange=\"labelSelectOnChange(this)\" >";
|
||||||
|
|
||||||
while ($line = db_fetch_assoc($result)) {
|
while ($line = db_fetch_assoc($result)) {
|
||||||
|
|
||||||
|
@ -533,6 +534,8 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print "<option value=\"ADD_LABEL\">" .__("Add label...") . "</option>";
|
||||||
|
|
||||||
print "</select>";
|
print "</select>";
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -93,15 +93,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($subop == "add") {
|
if ($subop == "add") {
|
||||||
|
|
||||||
$caption = db_escape_string($_REQUEST["caption"]);
|
$caption = db_escape_string($_REQUEST["caption"]);
|
||||||
|
$output = db_escape_string($_REQUEST["output"]);
|
||||||
|
|
||||||
if ($caption) {
|
if ($caption) {
|
||||||
|
|
||||||
if (label_create($link, $caption)) {
|
if (label_create($link, $caption)) {
|
||||||
print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
|
if (!$output) {
|
||||||
|
print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($output == "select") {
|
||||||
|
header("Content-Type: text/xml");
|
||||||
|
|
||||||
|
print "<rpc-reply><payload><![CDATA[";
|
||||||
|
|
||||||
|
print_label_select($link, "select_label",
|
||||||
|
$caption, "");
|
||||||
|
|
||||||
|
print "]]></payload></rpc-reply>";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue