allow adding labels on the fly
This commit is contained in:
parent
ec16da866b
commit
1c31e1908a
3 changed files with 54 additions and 6 deletions
39
functions.js
39
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -523,7 +523,8 @@
|
|||
$result = db_query($link, "SELECT caption FROM ttrss_labels2
|
||||
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)) {
|
||||
|
||||
|
@ -533,6 +534,8 @@
|
|||
|
||||
}
|
||||
|
||||
print "<option value=\"ADD_LABEL\">" .__("Add label...") . "</option>";
|
||||
|
||||
print "</select>";
|
||||
|
||||
|
||||
|
|
|
@ -93,15 +93,27 @@
|
|||
}
|
||||
|
||||
if ($subop == "add") {
|
||||
|
||||
$caption = db_escape_string($_REQUEST["caption"]);
|
||||
$output = db_escape_string($_REQUEST["output"]);
|
||||
|
||||
if ($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;
|
||||
|
|
Loading…
Reference in a new issue