diff options
author | Andrew Dolgov <[email protected]> | 2005-11-19 20:06:42 +0100 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2005-11-19 20:06:42 +0100 |
commit | c6c3a07f011abbca3eaa1bf0bb8776707ec7aabc (patch) | |
tree | f45fd54ca06cda6fecdb2c73b1f0e8a1781a9166 | |
parent | 8dcfffd01ecffacab30f6686a419fd165f14261f (diff) |
userDetails -> infoBox, feed infobox, user details improvements
-rw-r--r-- | backend.php | 66 | ||||
-rw-r--r-- | prefs.js | 48 | ||||
-rw-r--r-- | tt-rss.css | 14 |
3 files changed, 110 insertions, 18 deletions
diff --git a/backend.php b/backend.php index 3eca4eda7..0333e11fd 100644 --- a/backend.php +++ b/backend.php @@ -1011,6 +1011,8 @@ FROM ttrss_feeds WHERE owner_uid = '".$_SESSION["uid"]."' ORDER by title"); + print "<div id=\"infoBox\">PLACEHOLDER</div>"; + print "<p><table width=\"100%\" class=\"prefFeedList\" id=\"prefFeedList\">"; print "<tr class=\"title\"> <td> </td><td>Select</td><td width=\"30%\">Title</td> @@ -1133,6 +1135,8 @@ print " Selection: <input type=\"submit\" class=\"button\" + onclick=\"javascript:selectedFeedDetails()\" value=\"Details\"> + <input type=\"submit\" class=\"button\" onclick=\"javascript:editSelectedFeed()\" value=\"Edit\"> <input type=\"submit\" class=\"button\" onclick=\"javascript:removeSelectedFeeds()\" value=\"Remove\">"; @@ -1927,7 +1931,7 @@ ttrss_users ORDER by login"); - print "<div id=\"prefUserDetails\">PLACEHOLDER</div>"; + print "<div id=\"infoBox\">PLACEHOLDER</div>"; print "<p><table width=\"100%\" class=\"prefUserList\" id=\"prefUserList\">"; @@ -2041,9 +2045,11 @@ $uid = sprintf("%d", $_GET["id"]); - print "<div class='userDetails'>"; + print "<div class='infoBoxContents'>"; - $result = db_query($link, "SELECT login,last_login,access_level + $result = db_query($link, "SELECT login,last_login,access_level, + (SELECT COUNT(int_id) FROM ttrss_user_entries + WHERE owner_uid = id) AS stored_articles FROM ttrss_users WHERE id = '$uid'"); @@ -2059,10 +2065,12 @@ $login = db_fetch_result($result, 0, "login"); $last_login = db_fetch_result($result, 0, "last_login"); $access_level = db_fetch_result($result, 0, "access_level"); + $stored_articles = db_fetch_result($result, 0, "stored_articles"); print "<tr><td>Username</td><td>$login</td></tr>"; print "<tr><td>Access level</td><td>$access_level</td></tr>"; print "<tr><td>Last logged in</td><td>$last_login</td></tr>"; + print "<tr><td>Stored articles</td><td>$stored_articles</td></tr>"; $result = db_query($link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds WHERE owner_uid = '$uid'"); @@ -2073,11 +2081,12 @@ /* $result = db_query($link, "SELECT SUM(LENGTH(content)+LENGTH(title)+LENGTH(link)+LENGTH(guid)) AS db_size - FROM ttrss_entries WHERE owner_uid = '$uid'"); + FROM ttrss_user_entries,ttrss_entries + WHERE owner_uid = '$uid' AND ref_id = id"); $db_size = round(db_fetch_result($result, 0, "db_size") / 1024); - print "<tr><td>Approx. DB size</td><td>$db_size KBytes</td></tr>"; */ + print "<tr><td>Approx. used DB size</td><td>$db_size KBytes</td></tr>"; */ print "</table>"; @@ -2107,12 +2116,57 @@ print "<div align='center'> <input type='submit' class='button' - onclick=\"closeUserDetails()\" value=\"Close this window\"></div>"; + onclick=\"closeInfoBox()\" value=\"Close this window\"></div>"; // print "</body></html>"; } + if ($op == "feed-details") { + + $feed_id = $_GET["id"]; + + $result = db_query($link, + "SELECT + title,feed_url,last_updated, + (SELECT COUNT(int_id) FROM ttrss_user_entries + WHERE feed_id = id) AS total, + (SELECT COUNT(int_id) FROM ttrss_user_entries + WHERE feed_id = id AND unread = true) AS unread, + (SELECT COUNT(int_id) FROM ttrss_user_entries + WHERE feed_id = id AND marked = true) AS marked + FROM ttrss_feeds + WHERE id = '$feed_id' AND owner_uid = ".$_SESSION["uid"]); + + if (db_num_rows($result) == 0) return; + + $title = db_fetch_result($result, 0, "title"); + $last_updated = db_fetch_result($result, 0, "last_updated"); + $feed_url = db_fetch_result($result, 0, "feed_url"); + $total = db_fetch_result($result, 0, "total"); + $unread = db_fetch_result($result, 0, "unread"); + $marked = db_fetch_result($result, 0, "marked"); + + print "<div class=\"infoBoxContents\"><h1>$title</h1>"; + + print "<table width='100%'>"; + + print "<tr><td>Feed URL</td><td><a href=\"$feed_url\">$feed_url</a></td></tr>"; + print "<tr><td>Last updated</td><td>$last_updated</td></tr>"; + print "<tr><td>Total articles</td><td>$total</td></tr>"; + print "<tr><td>Unread articles</td><td>$unread</td></tr>"; + print "<tr><td>Starred articles</td><td>$marked</td></tr>"; + + print "</table>"; + + print "</div>"; + + print "<div align='center'> + <input type='submit' class='button' + onclick=\"closeInfoBox()\" value=\"Close this window\"></div>"; + + } + db_close($link); ?> @@ -119,11 +119,13 @@ function userlist_callback() { } } -function userdetails_callback() { - var container = document.getElementById('prefUserDetails'); +function infobox_callback() { + var container = document.getElementById('infoBox'); if (xmlhttp.readyState == 4) { - container.innerHTML=xmlhttp.responseText; - container.style.display = "block"; + if (container) { + container.innerHTML=xmlhttp.responseText; + container.style.display = "block"; + } } } @@ -880,7 +882,34 @@ function selectedUserDetails() { var id = rows[0]; xmlhttp.open("GET", "backend.php?op=user-details&id=" + id, true); - xmlhttp.onreadystatechange=userdetails_callback; + xmlhttp.onreadystatechange=infobox_callback; + xmlhttp.send(null); + +} + +function selectedFeedDetails() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + var rows = getSelectedFeeds(); + + if (rows.length == 0) { + notify("No feeds are selected."); + return; + } + + if (rows.length > 1) { + notify("Please select one feed."); + return; + } + + var id = rows[0]; + + xmlhttp.open("GET", "backend.php?op=feed-details&id=" + id, true); + xmlhttp.onreadystatechange=infobox_callback; xmlhttp.send(null); } @@ -993,6 +1022,11 @@ function updatePrefsList() { function selectTab(id) { + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + if (id == "feedConfig") { updateFeedList(); } else if (id == "filterConfig") { @@ -1066,7 +1100,7 @@ function dispOptionHelp(event, sender) { } */ -function closeUserDetails() { - var d = document.getElementById('prefUserDetails'); +function closeInfoBox() { + var d = document.getElementById('infoBox'); d.style.display = "none"; } diff --git a/tt-rss.css b/tt-rss.css index e6d8751b7..1a3e2031b 100644 --- a/tt-rss.css +++ b/tt-rss.css @@ -425,7 +425,7 @@ div.helpResponse { border : 1px solid #f0f0f0; } -div.userDetails { +div.infoBoxContents { background-image : url("images/vgrad_light_rev2.png"); background-position : top left; background-repeat : repeat-x; @@ -434,14 +434,14 @@ div.userDetails { border : 1px solid #f0f0f0; } -div.helpResponse h1, div.userDetails h1 { +div.helpResponse h1, div.infoBoxContents h1 { border-width : 0px 0px 1px 0px; border-style : solid; border-color : #c0c0c0; font-size : 16pt; } -div.helpResponse h2, div.userDetails h2 { +div.helpResponse h2, div.infoBoxContents h2 { border-width : 0px 0px 0px 0px; font-size : 12pt; } @@ -581,13 +581,17 @@ table.innerLoginForm td { padding : 3px 3px 5px 3px; } -#prefUserDetails { +#infoBox { position : absolute; margin-left : 30%; background-color : white; width : 30%; z-index : 3; border : 1px solid #c0c0c0; - display : none; padding-bottom : 10px; + display : none; +} + +div.small, p.small { + font-size : x-small; } |