123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- var backend = "backend.php";
- function toggleMarked(id, elem) {
- var toggled = false;
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
- var query = "op=toggleMarked&id=" + id + "&mark=" + toggled;
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
- }
- function togglePublished(id, elem) {
- var toggled = false;
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
- var query = "op=togglePublished&id=" + id + "&pub=" + toggled;
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
- }
- function toggleUnread(id, elem) {
- var toggled = false;
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
- var query = "op=toggleUnread&id=" + id + "&unread=" + toggled;
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
- }
- function setPref(elem) {
- var toggled = false;
- var id = elem.id;
- if (elem.getAttribute("toggled") == "true") {
- toggled = 1;
- } else {
- toggled = 0;
- }
- var query = "op=setPref&id=" + id + "&to=" + toggled;
- new Ajax.Request(backend, {
- parameters: query,
- onComplete: function (transport) {
- //
- } });
- }
- // Go directly to another item in the same feed
- function goToSibling(article_id, feed_id, link, step) {
- var links = linksInFeed(feed_id);
- for (var i=0 ; i<links.length ; i++) {
- var re = new RegExp(".*article\\.php\\?id="+article_id+"&.*");
- if (!re.test(links[i].href)) continue;
- // here, we've found the current article
- var index = i + step;
- if (index < 0) {
- markAsRead(feed_id);
- iui.showPage($("feed-"+feed_id), true);
- return false;
- }
- if (index >= links.length) {
- showRestOfFeed(feed_id);
- return false;
- }
- console.log(links[index]);
- var match = links[index].href.match(/.*article\.php\?(.*)/);
- var qs = match[1];
- var backwards = false;
- if (step < 0) backwards = true;
- link.setAttribute("selected", "progress");
- function unselect() { link.removeAttribute("selected"); }
- iui.showPageByHref("article.php?"+qs, null, null, null, unselect, backwards);
- return false;
- }
- return false;
- }
- function goPrev(article_id, feed_id, link) {
- return goToSibling(article_id, feed_id, link, -1);
- }
- function goNext(article_id, feed_id, link) {
- return goToSibling(article_id, feed_id, link, 1);
- }
- // Get all the links in the feed. The all_links variable includes the "get more article" link
- function linksInFeed(feed_id, all_links) {
- var feed_content = $("feed-"+feed_id);
- var links_raw = feed_content.getElementsByTagName("a");
- if (all_links) return links_raw;
- var links = [];
- // filter the array to remove the "get more articles" link
- // and the "search" link (which is always first)
- for (var i=1 ; i<links_raw.length ; i++) {
- if (links_raw[i].href.match(/.*article\.php\?id=.*/)) {
- links.push(links_raw[i]);
- }
- }
- return links;
- }
- // Adds the "read" class to all read links in the feed
- function markAsRead(feed_id) {
- var links = linksInFeed(feed_id);
- for (var j=0 ; j<links.length ; j++) {
- var match = links[j].href.match(/.*article\.php\?id=(\d+)&.*/);
- if ($("article-"+match[1])) {
- links[j].className = "read";
- }
- }
- }
- // Go the the articles list and expand the "get more articles" link
- function showRestOfFeed(feed_id) {
- var links_raw = linksInFeed(feed_id, true);
- var lastlink = links_raw[links_raw.length - 1];
- if (lastlink.target == "_replace") {
- // It's a "get more articles" link
- iui.showPage($("feed-"+feed_id), true);
- // Mark old items a "read"
- markAsRead(feed_id);
- // Simulate click on the "get more articles" link
- lastlink.setAttribute("selected", "progress");
- function unselect() { lastlink.removeAttribute("selected"); }
- setTimeout(window.scrollTo, 0, 0, 1000);
- iui.showPageByHref(lastlink.href, null, null, lastlink, unselect);
- } else {
- iui.showPage($("home"), true);
- }
- }
|