diff options
-rw-r--r-- | backend.php | 76 | ||||
-rw-r--r-- | tt-rss.css | 80 | ||||
-rw-r--r-- | tt-rss.js | 103 | ||||
-rw-r--r-- | tt-rss.php | 37 |
4 files changed, 296 insertions, 0 deletions
diff --git a/backend.php b/backend.php new file mode 100644 index 000000000..b4ec48c11 --- /dev/null +++ b/backend.php @@ -0,0 +1,76 @@ +<? + header("Content-Type: application/xml"); + + $op = $_GET["op"]; + + if ($op == "feeds") { + + $feeds = array("Art.Gnome.Org Releases", "Footnotes", "Freedesktop.org", + "Planet Debian", "Planet Gnome"); + + + print "<ul>"; + + $lnum = 0; + + foreach ($feeds as $feed) { + $class = ($lnum % 2) ? "even" : "odd"; + +// if ($lnum == 2 || $lnum == 0) $feed = "<b>$feed</b>"; + + $feed = "<a href=\"javascript:viewfeed('$feed')\">$feed</a>"; + + print "<li class=\"$class\">$feed</li>"; + ++$lnum; + } + + print "</ul>"; + + } + + if ($op == "view") { + + $post = $_GET["post"]; + $feed = $_GET["feed"]; + + print "<h1>$post</h1>"; + print "<h2>$feed</h2>"; + + print "<p>Blah blah blah blah blah</p>"; + + } + + if ($op == "viewfeed") { + + $feed = $_GET["feed"]; + + $headlines = array("Linus Torvalds flies to the Moon", + "SCO bankrupt at last", + "OMG WTF ANOTHER HEADLINE", + "Another clever headline from $feed", + "I'm really not feeling creative today", + "No, seriously"); + + $headlines = array_merge($headlines, $headlines); + + print "<ul>"; + + $lnum = 0; + + foreach ($headlines as $hl) { + $class = ($lnum % 2) ? "even" : "odd"; + +// if ($lnum == 2 || $lnum == 0) $feed = "<b>$feed</b>"; + + $hl = "<a href=\"javascript:view('$feed','$hl')\">$hl</a>"; + + print "<li class=\"$class\">$hl</li>"; + ++$lnum; + } + + print "</ul>"; + + } + + +?> diff --git a/tt-rss.css b/tt-rss.css new file mode 100644 index 000000000..3f09e2b1b --- /dev/null +++ b/tt-rss.css @@ -0,0 +1,80 @@ +body { + background : white; + color : black; + margin : 0px; + padding : 0px; +} + +a { + color : black; + text-decoration : none; +} + +a:hover { + text-decoration : underline; + +} + +td.header { + font-size : 18pt; + background : #f0f0f0; + height : 100px; + padding-left : 80px; + font-weight : bold; +} + +td.feeds { + width : 180px; + border-width : 1px 1px 0px 0px; + border-color : #c0c0c0; + border-style : solid; + padding : 10px; +} + +td.headlines { + height : 25%; + padding : 10px; + border-width : 1px 0px 0px 0px; + border-color : #c0c0c0; + border-style : solid; + overflow : scroll; +} + +td.content { + padding : 10px; + border-width : 1px 0px 0px 0px; + border-color : #c0c0c0; + border-style : solid; + overflow : scroll; +} + +td.notify { + height : 40px; + border-width : 1px 0px 0px 0px; + border-color : #c0c0c0; + border-style : solid; + font-size : small; + text-align : center; + color : gray; +} + +.even { + background-color : #f0f0f0; +} + +.odd { + + +} + + +li { + list-style-type : none; + +} + +ul { + margin : 0px; + padding : 0px; + border : 1px solid #f0f0f0; +} diff --git a/tt-rss.js b/tt-rss.js new file mode 100644 index 000000000..6d3a2f342 --- /dev/null +++ b/tt-rss.js @@ -0,0 +1,103 @@ +/* + This program is Copyright (c) 2003-2005 Andrew Dolgov <[email protected]> + 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() { + if (xmlhttp.readyState == 4) { + document.getElementById('feeds').innerHTML=xmlhttp.responseText; + } +} + +function viewfeed_callback() { + if (xmlhttp.readyState == 4) { + document.getElementById('headlines').innerHTML=xmlhttp.responseText; + } +} + +function view_callback() { + if (xmlhttp.readyState == 4) { + document.getElementById('content').innerHTML=xmlhttp.responseText; + } +} + + +function update_feed_list() { + + xmlhttp.open("GET", "backend.php?op=feeds", true); + xmlhttp.onreadystatechange=feedlist_callback; + xmlhttp.send(null); + +} + +function viewfeed(feed) { + + notify("view-feed: " + feed); + + xmlhttp.open("GET", "backend.php?op=viewfeed&feed=" + param_escape(feed) , true); + xmlhttp.onreadystatechange=viewfeed_callback; + xmlhttp.send(null); + +} + +function view(feed, post) { + + notify("view: " + feed + ", " + post); + + xmlhttp.open("GET", "backend.php?op=view&feed=" + param_escape(feed) + + "&post=" + post, true); + xmlhttp.onreadystatechange=view_callback; + xmlhttp.send(null); + +} + +function init() { + + notify("init"); + + update_feed_list(); + +} diff --git a/tt-rss.php b/tt-rss.php new file mode 100644 index 000000000..2abcea1a6 --- /dev/null +++ b/tt-rss.php @@ -0,0 +1,37 @@ +<html> +<head> + <title>Tiny Tiny RSS</title> + <link rel="stylesheet" href="tt-rss.css" type="text/css"> + <script type="text/javascript" src="tt-rss.js"></script> +</head> + +<body onload="init()"> + +<table width="100%" height="100%" cellspacing=0 cellpadding=0> +<tr> + <td class="header" valign="middle" colspan="2"> + Tiny Tiny RSS + </td> +</tr> +<tr> + <td valign="top" rowspan="2" id="feeds" class="feeds"> + Here be feeds + </td> + <td id="headlines" class="headlines" valign="top"> + Here be headlines + </td> +</tr> + <td class="content" id="content" valign="top"> + Here be content + </td> +</tr> +<tr> + <td colspan="2" id="notify" class="notify"> + [Status Message Placeholder] + </td> +</td> +</table> + + +</body> +</html> |