initial prefpane work

This commit is contained in:
Andrew Dolgov 2005-08-22 02:17:12 +01:00
parent c442fb6e28
commit 007bda3585
4 changed files with 215 additions and 0 deletions

View file

@ -199,5 +199,35 @@
} }
if ($op == "pref-feeds") {
$result = pg_query("SELECT * FROM ttrss_feeds ORDER by title");
print "<p><table width=\"100%\" class=\"prefFeedList\">";
print "<tr class=\"title\">
<td>Select</td><td>Title</td><td>Link</td><td>Last Updated</td></tr>";
$lnum = 0;
while ($line = pg_fetch_assoc($result)) {
$class = ($lnum % 2) ? "even" : "odd";
print "<tr class=\"$class\">";
print "<td><input onclick='toggleSelectRow(this);'
type=\"checkbox\" id=\"FROW-".$line["id"]."\"></td>";
print "<td>" . $line["title"] . "</td>";
print "<td>" . $line["feed_url"] . "</td>";
print "<td>" . $line["last_updated"] . "</td>";
print "</tr>";
++$lnum;
}
print "</table>";
}
pg_close($link);
?> ?>

87
prefs.js Normal file
View file

@ -0,0 +1,87 @@
/*
This program is Copyright (c) 2003-2005 Andrew Dolgov <cthulhoo@gmail.com>
Licensed under GPL v.2 or (at your preference) any later version.
*/
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 param_escape(arg) {
if (typeof encodeURIComponent != 'undefined')
return encodeURIComponent(arg);
else
return escape(arg);
}
function param_unescape(arg) {
if (typeof decodeURIComponent != 'undefined')
return decodeURIComponent(arg);
else
return unescape(arg);
}
function notify(msg) {
var n = document.getElementById("notify");
n.innerHTML = msg;
}
function feedlist_callback() {
var container = document.getElementById('feeds');
if (xmlhttp.readyState == 4) {
container.innerHTML=xmlhttp.responseText;
}
}
function update_feeds() {
document.getElementById("feeds").innerHTML = "Loading feeds, please wait...";
xmlhttp.open("GET", "backend.php?op=pref-feeds", true);
xmlhttp.onreadystatechange=feedlist_callback;
xmlhttp.send(null);
}
function toggleSelectRow(sender) {
var parent_row = sender.parentNode.parentNode;
if (sender.checked) {
if (!parent_row.className.match("Selected")) {
parent_row.className = parent_row.className + "Selected";
}
} else {
if (parent_row.className.match("Selected")) {
parent_row.className = parent_row.className.replace("Selected", "");
}
}
}
function init() {
notify("init");
update_feeds();
}

49
prefs.php Normal file
View file

@ -0,0 +1,49 @@
<html>
<head>
<title>Tiny Tiny RSS</title>
<link rel="stylesheet" href="tt-rss.css" type="text/css">
<script type="text/javascript" src="prefs.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body onload="init()">
<table width="100%" height="100%" cellspacing=0 cellpadding=0 class="main">
<tr>
<td class="header" valign="middle" colspan="1">
Preferences
</td>
</tr>
<tr>
<td class="toolbar" valign="middle" colspan="1">
<a class="button">Close</a>
</td>
</tr>
</tr>
<td class="content" id="content" valign="top">
<h2>Feed Configuration</h2>
<table class="prefAddFeed">
<tr><td>Title:</td><td><input id="fadd_title"></td></tr>
<tr><td>Link:</td><td><input id="fadd_link"></td></tr>
<tr><td colspan="2" align="right">
<a class="button" href="javascript:addFeed()">Add feed</a></td></tr>
</table>
<!-- <input type="submit" value="Add feed"> -->
<div id="feeds">&nbsp;</div>
<hr>
</td>
</tr>
<tr>
<td colspan="2" id="notify" class="notify">
<a href="">Tiny-Tiny RSS</a> v0.1 &copy; 2005 Andrew Dolgov
</td>
</td>
</table>
</body>
</html>

View file

@ -5,6 +5,24 @@ body {
padding : 0px; padding : 0px;
} }
h1 {
font-size : 16pt;
}
h2 {
font-size : 14pt;
font-color : bold;
border-width : 0px 0px 1px 0px;
border-style : solid;
border-color : #e0e0e0;
}
hr {
border-width : 0px 0px 1px 0px;
border-style : dashed;
border-color : #e0e0e0;
}
a { a {
color : black; color : black;
text-decoration : none; text-decoration : none;
@ -178,3 +196,34 @@ ul {
.invisible { .invisible {
display : none; display : none;
} }
table.prefAddFeed td {
padding : 2px;
}
table.prefAddFeed input {
width : 250px;
}
table.prefAddFeed {
background : #f0f0f0;
border : 1px solid #c0c0c0;
padding : 10px;
-moz-border-radius : 5px;
}
table.prefFeedList tr.title td {
font-weight : bold;
border-width : 0px 0px 1px 0px;
border-color : #f0f0f0;
border-style : solid;
}
.evenSelected {
background-color : #c0c0c0;
}
.oddSelected {
background-color : #c0c0c0;
}