summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-08-21 11:13:10 +0100
committerAndrew Dolgov <[email protected]>2005-08-21 11:13:10 +0100
commit1cd17194a52bb717f0fb42b52a105891e2df9ea8 (patch)
tree288eafdb32e0b4f2e48e15bc1c3cf899b6ea757f
initial mockup
-rw-r--r--backend.php76
-rw-r--r--tt-rss.css80
-rw-r--r--tt-rss.js103
-rw-r--r--tt-rss.php37
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>