AND ttrss_user_entries.ref_id = ttrss_entries.id
AND owner_uid = '$owner_uid') as unread,
(SELECT title FROM ttrss_feed_categories
- WHERE id = cat_id) AS category
+ WHERE id = cat_id) AS category,
+ cat_id,
+ (SELECT collapsed FROM ttrss_feed_categories
+ WHERE id = cat_id) AS collapsed
FROM ttrss_feeds WHERE owner_uid = '$owner_uid' ORDER BY $order_by_qpart");
$actid = $_GET["actid"];
$total = $line["total"];
$unread = $line["unread"];
+ $cat_id = $line["cat_id"];
+
$tmp_category = $line["category"];
if (!$tmp_category) {
}
$category = $tmp_category;
+
+ $collapsed = $line["collapsed"];
+
+ if ($collapsed == "t" || $collapsed == "1") {
+ $holder_class = "invisible";
+ $tmp_category .= "...";
+ } else {
+ $holder_class = "";
+ }
- print "<li class=\"feedCat\">$category</li>";
- print "<li id=\"feedCatHolder\"><ul class=\"feedCatList\">";
+ print "<li class=\"feedCat\" id=\"FCAT-$cat_id\">
+ <a href=\"javascript:toggleCollapseCat($cat_id)\">$tmp_category</a></li>";
+ print "<li id=\"feedCatHolder\" class=\"$holder_class\"><ul class=\"feedCatList\">";
}
printFeedEntry($feed_id, $class, $feed, $unread,
last_read = NOW(),unread = false WHERE owner_uid = " . $_SESSION["uid"]);
}
+ if ($subop == "collapse") {
+ $cat_id = db_escape_string($_GET["cid"]);
+ db_query($link, "UPDATE ttrss_feed_categories SET
+ collapsed = NOT collapsed WHERE id = '$cat_id' AND owner_uid = " .
+ $_SESSION["uid"]);
+ return;
+ }
+
outputFeedList($link, $tags);
}
+var xmlhttp = false;
+
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+// JScript gives us Conditional compilation, we can cope with old IE versions.
+// and security blocked creation of the objects.
+try {
+ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+} catch (e) {
+ try {
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (E) {
+ xmlhttp = false;
+ }
+}
+@end @*/
+
+if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
+ xmlhttp = new XMLHttpRequest();
+}
function viewfeed(feed, skip, subop, doc) {
try {
}
+function toggleCollapseCat(cat) {
+ try {
+ if (!xmlhttp_ready(xmlhttp)) {
+ printLockingError();
+ return;
+ }
+
+ var cat_elem = document.getElementById("FCAT-" + cat);
+ var cat_list = cat_elem.nextSibling;
+ var caption = cat_elem.lastChild;
+
+ if (cat_list.className.match("invisible")) {
+ cat_list.className = "";
+ caption.innerHTML = caption.innerHTML.replace("...", "");
+ } else {
+ cat_list.className = "invisible";
+ caption.innerHTML = caption.innerHTML + "...";
+ }
+
+ xmlhttp_rpc.open("GET", "backend.php?op=feeds&subop=collapse&cid=" +
+ param_escape(cat), true);
+ xmlhttp_rpc.onreadystatechange=rpc_pnotify_callback;
+ xmlhttp_rpc.send(null);
+
+ } catch (e) {
+ exception_error(e);
+ }
+}
+
function init() {
hideOrShowFeeds(document, getCookie("ttrss_vf_hreadf") == 1);
document.onkeydown = hotkey_handler;