}
+ 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);
?>
--- /dev/null
+/*
+ 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();
+
+}
--- /dev/null
+<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"> </div>
+
+ <hr>
+ </td>
+</tr>
+<tr>
+ <td colspan="2" id="notify" class="notify">
+ <a href="">Tiny-Tiny RSS</a> v0.1 © 2005 Andrew Dolgov
+ </td>
+</td>
+</table>
+
+
+</body>
+</html>
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 {
color : black;
text-decoration : none;
.invisible {
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;
+}
+