dynamically show new label markers in headlines buffer w/o reload

This commit is contained in:
Andrew Dolgov 2009-01-18 16:07:31 +01:00
parent 1380f8eed4
commit f92471951b
4 changed files with 56 additions and 3 deletions

View file

@ -5019,7 +5019,7 @@
$feed_id = $line["feed_id"];
$labels = get_article_labels($link, $id);
$labels_str = "";
$labels_str = "<span id=\"HLLCTR-$id\">";
foreach ($labels as $l) {
$labels_str .= "<span
@ -5027,6 +5027,8 @@
$l[1]."</span>";
}
$labels_str .= "</span>";
if (count($topmost_article_ids) < 5) {
array_push($topmost_article_ids, $id);
}

View file

@ -450,14 +450,34 @@
$label = label_find_caption($link, $label_id, $_SESSION["uid"]);
print "<rpc-reply>";
print "<info-for-headlines>";
if ($label) {
foreach ($ids as $id) {
label_add_article($link, $id, $label, $_SESSION["uid"]);
print "<entry id=\"$id\"><![CDATA[";
$labels = get_article_labels($link, $id, $_SESSION["uid"]);
foreach ($labels as $l) {
print "<span class='hlLabelRef'>".$l[1]."</span>";
}
print "]]></entry>";
}
}
print "<rpc-reply>OK</rpc-reply>";
print "</info-for-headlines>";
print "<counters>";
getAllCounters($link, $omode);
print "</counters>";
print "</rpc-reply>";
return;
}

View file

@ -1794,6 +1794,8 @@ ul.headlineDropdownMenu ul {
border-color : #c0c0c0;
border-style : solid;
margin-left : -1px;
max-height : 300px;
overflow : auto;
}
ul.headlineDropdownMenu ul li {

View file

@ -907,7 +907,8 @@ function selectionAssignLabel(id) {
new Ajax.Request(query, {
onComplete: function(transport) {
viewCurrentFeed();
show_labels_in_headlines(transport);
all_counters_callback2(transport);
} });
}
@ -2008,3 +2009,31 @@ function scrollArticle(offset) {
exception_error("scrollArticle", e);
}
}
function show_labels_in_headlines(transport) {
try {
if (transport.responseXML) {
var info = transport.responseXML.getElementsByTagName("info-for-headlines")[0];
var elems = info.getElementsByTagName("entry");
for (var l = 0; l < elems.length; l++) {
var e_id = elems[l].getAttribute("id");
if (e_id) {
var ctr = document.getElementById("HLLCTR-" + e_id);
if (ctr) {
ctr.innerHTML = elems[l].firstChild.nodeValue;
}
}
}
}
} catch (e) {
exception_error("show_labels_in_headlines", e);
}
}