mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-20 19:41:29 +00:00
userDetails -> infoBox, feed infobox, user details improvements
This commit is contained in:
66
backend.php
66
backend.php
@@ -1011,6 +1011,8 @@
|
|||||||
FROM
|
FROM
|
||||||
ttrss_feeds WHERE owner_uid = '".$_SESSION["uid"]."' ORDER by title");
|
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 "<p><table width=\"100%\" class=\"prefFeedList\" id=\"prefFeedList\">";
|
||||||
print "<tr class=\"title\">
|
print "<tr class=\"title\">
|
||||||
<td> </td><td>Select</td><td width=\"30%\">Title</td>
|
<td> </td><td>Select</td><td width=\"30%\">Title</td>
|
||||||
@@ -1132,6 +1134,8 @@
|
|||||||
|
|
||||||
print "
|
print "
|
||||||
Selection:
|
Selection:
|
||||||
|
<input type=\"submit\" class=\"button\"
|
||||||
|
onclick=\"javascript:selectedFeedDetails()\" value=\"Details\">
|
||||||
<input type=\"submit\" class=\"button\"
|
<input type=\"submit\" class=\"button\"
|
||||||
onclick=\"javascript:editSelectedFeed()\" value=\"Edit\">
|
onclick=\"javascript:editSelectedFeed()\" value=\"Edit\">
|
||||||
<input type=\"submit\" class=\"button\"
|
<input type=\"submit\" class=\"button\"
|
||||||
@@ -1927,7 +1931,7 @@
|
|||||||
ttrss_users
|
ttrss_users
|
||||||
ORDER by login");
|
ORDER by login");
|
||||||
|
|
||||||
print "<div id=\"prefUserDetails\">PLACEHOLDER</div>";
|
print "<div id=\"infoBox\">PLACEHOLDER</div>";
|
||||||
|
|
||||||
print "<p><table width=\"100%\" class=\"prefUserList\" id=\"prefUserList\">";
|
print "<p><table width=\"100%\" class=\"prefUserList\" id=\"prefUserList\">";
|
||||||
|
|
||||||
@@ -2041,9 +2045,11 @@
|
|||||||
|
|
||||||
$uid = sprintf("%d", $_GET["id"]);
|
$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
|
FROM ttrss_users
|
||||||
WHERE id = '$uid'");
|
WHERE id = '$uid'");
|
||||||
|
|
||||||
@@ -2059,10 +2065,12 @@
|
|||||||
$login = db_fetch_result($result, 0, "login");
|
$login = db_fetch_result($result, 0, "login");
|
||||||
$last_login = db_fetch_result($result, 0, "last_login");
|
$last_login = db_fetch_result($result, 0, "last_login");
|
||||||
$access_level = db_fetch_result($result, 0, "access_level");
|
$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>Username</td><td>$login</td></tr>";
|
||||||
print "<tr><td>Access level</td><td>$access_level</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>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
|
$result = db_query($link, "SELECT COUNT(id) as num_feeds FROM ttrss_feeds
|
||||||
WHERE owner_uid = '$uid'");
|
WHERE owner_uid = '$uid'");
|
||||||
@@ -2073,11 +2081,12 @@
|
|||||||
|
|
||||||
/* $result = db_query($link, "SELECT
|
/* $result = db_query($link, "SELECT
|
||||||
SUM(LENGTH(content)+LENGTH(title)+LENGTH(link)+LENGTH(guid)) AS db_size
|
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);
|
$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>";
|
print "</table>";
|
||||||
|
|
||||||
@@ -2107,12 +2116,57 @@
|
|||||||
|
|
||||||
print "<div align='center'>
|
print "<div align='center'>
|
||||||
<input type='submit' class='button'
|
<input type='submit' class='button'
|
||||||
onclick=\"closeUserDetails()\" value=\"Close this window\"></div>";
|
onclick=\"closeInfoBox()\" value=\"Close this window\"></div>";
|
||||||
|
|
||||||
// print "</body></html>";
|
// 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);
|
db_close($link);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
|||||||
44
prefs.js
44
prefs.js
@@ -119,13 +119,15 @@ function userlist_callback() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function userdetails_callback() {
|
function infobox_callback() {
|
||||||
var container = document.getElementById('prefUserDetails');
|
var container = document.getElementById('infoBox');
|
||||||
if (xmlhttp.readyState == 4) {
|
if (xmlhttp.readyState == 4) {
|
||||||
|
if (container) {
|
||||||
container.innerHTML=xmlhttp.responseText;
|
container.innerHTML=xmlhttp.responseText;
|
||||||
container.style.display = "block";
|
container.style.display = "block";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function prefslist_callback() {
|
function prefslist_callback() {
|
||||||
@@ -880,7 +882,34 @@ function selectedUserDetails() {
|
|||||||
var id = rows[0];
|
var id = rows[0];
|
||||||
|
|
||||||
xmlhttp.open("GET", "backend.php?op=user-details&id=" + id, true);
|
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);
|
xmlhttp.send(null);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -993,6 +1022,11 @@ function updatePrefsList() {
|
|||||||
|
|
||||||
function selectTab(id) {
|
function selectTab(id) {
|
||||||
|
|
||||||
|
if (!xmlhttp_ready(xmlhttp)) {
|
||||||
|
printLockingError();
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (id == "feedConfig") {
|
if (id == "feedConfig") {
|
||||||
updateFeedList();
|
updateFeedList();
|
||||||
} else if (id == "filterConfig") {
|
} else if (id == "filterConfig") {
|
||||||
@@ -1066,7 +1100,7 @@ function dispOptionHelp(event, sender) {
|
|||||||
|
|
||||||
} */
|
} */
|
||||||
|
|
||||||
function closeUserDetails() {
|
function closeInfoBox() {
|
||||||
var d = document.getElementById('prefUserDetails');
|
var d = document.getElementById('infoBox');
|
||||||
d.style.display = "none";
|
d.style.display = "none";
|
||||||
}
|
}
|
||||||
|
|||||||
14
tt-rss.css
14
tt-rss.css
@@ -425,7 +425,7 @@ div.helpResponse {
|
|||||||
border : 1px solid #f0f0f0;
|
border : 1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.userDetails {
|
div.infoBoxContents {
|
||||||
background-image : url("images/vgrad_light_rev2.png");
|
background-image : url("images/vgrad_light_rev2.png");
|
||||||
background-position : top left;
|
background-position : top left;
|
||||||
background-repeat : repeat-x;
|
background-repeat : repeat-x;
|
||||||
@@ -434,14 +434,14 @@ div.userDetails {
|
|||||||
border : 1px solid #f0f0f0;
|
border : 1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.helpResponse h1, div.userDetails h1 {
|
div.helpResponse h1, div.infoBoxContents h1 {
|
||||||
border-width : 0px 0px 1px 0px;
|
border-width : 0px 0px 1px 0px;
|
||||||
border-style : solid;
|
border-style : solid;
|
||||||
border-color : #c0c0c0;
|
border-color : #c0c0c0;
|
||||||
font-size : 16pt;
|
font-size : 16pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.helpResponse h2, div.userDetails h2 {
|
div.helpResponse h2, div.infoBoxContents h2 {
|
||||||
border-width : 0px 0px 0px 0px;
|
border-width : 0px 0px 0px 0px;
|
||||||
font-size : 12pt;
|
font-size : 12pt;
|
||||||
}
|
}
|
||||||
@@ -581,13 +581,17 @@ table.innerLoginForm td {
|
|||||||
padding : 3px 3px 5px 3px;
|
padding : 3px 3px 5px 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#prefUserDetails {
|
#infoBox {
|
||||||
position : absolute;
|
position : absolute;
|
||||||
margin-left : 30%;
|
margin-left : 30%;
|
||||||
background-color : white;
|
background-color : white;
|
||||||
width : 30%;
|
width : 30%;
|
||||||
z-index : 3;
|
z-index : 3;
|
||||||
border : 1px solid #c0c0c0;
|
border : 1px solid #c0c0c0;
|
||||||
display : none;
|
|
||||||
padding-bottom : 10px;
|
padding-bottom : 10px;
|
||||||
|
display : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.small, p.small {
|
||||||
|
font-size : x-small;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user