From 96a78914e204326b789e4dec92d60bb1db5047b9 Mon Sep 17 00:00:00 2001 From: Dave Zaikos Date: Fri, 3 May 2013 21:22:16 -0400 Subject: Modified the behaviour of catchup_visible_articles() in digest mode. The "Mark as read" option now first checks if articles are selected. If so, it only marks as read the selected articles. If no articles are selected, the previous behaviour is executed: marking all visible articles as read. --- plugins/digest/digest.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'plugins/digest/digest.js') diff --git a/plugins/digest/digest.js b/plugins/digest/digest.js index e3cb1e299..842b1006b 100644 --- a/plugins/digest/digest.js +++ b/plugins/digest/digest.js @@ -46,9 +46,8 @@ function catchup_feed(feed_id, callback) { } } -function get_visible_article_ids() { +function parse_article_elements_for_ids(elems) { try { - var elems = $("headlines-content").getElementsByTagName("LI"); var ids = []; for (var i = 0; i < elems.length; i++) { @@ -59,6 +58,28 @@ function get_visible_article_ids() { return ids; + } catch (e) { + exception_error("parse_article_elements_for_ids", e); + } +} + +function get_selected_article_ids() { + try { + var elems = $$('#headlines-content li.selected'); + + return parse_article_elements_for_ids(elems); + + } catch (e) { + exception_error("get_visible_article_ids", e); + } +} + +function get_visible_article_ids() { + try { + var elems = $("headlines-content").getElementsByTagName("LI"); + + return parse_article_elements_for_ids(elems); + } catch (e) { exception_error("get_visible_article_ids", e); } @@ -67,9 +88,15 @@ function get_visible_article_ids() { function catchup_visible_articles(callback) { try { - var ids = get_visible_article_ids(); + var ids = get_selected_article_ids(); + if ( 0 == ids.length ) { + ids = get_visible_article_ids(); + ntext = [ "Mark %d displayed article as read?", "Mark %d displayed articles as read?" ]; + } else { + ntext = [ "Mark %d selected article as read?", "Mark %d selected articles as read?" ]; + } - if (confirm(ngettext("Mark %d displayed article as read?", "Mark %d displayed articles as read?", ids.length).replace("%d", ids.length))) { + if (confirm(ngettext(ntext[0], ntext[1], ids.length).replace("%d", ids.length))) { var query = "op=rpc&method=catchupSelected" + "&cmode=0&ids=" + param_escape(ids); -- cgit v1.2.3-54-g00ecf From d88922a5d31062196da6e69ab109079cda8867b2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 7 May 2013 10:08:34 +0400 Subject: digest and mobile (old) moved to -contrib repository --- plugins/digest/digest.css | 337 ---------- plugins/digest/digest.js | 951 ----------------------------- plugins/digest/digest_body.php | 97 --- plugins/digest/images/tile.png | Bin 958 -> 0 bytes plugins/digest/init.php | 109 ---- plugins/digest/mobile.css | 345 ----------- plugins/mobile/article.php | 28 - plugins/mobile/backend.php | 59 -- plugins/mobile/cat.php | 25 - plugins/mobile/feed.php | 29 - plugins/mobile/home.php | 29 - plugins/mobile/index.php | 86 --- plugins/mobile/init.php | 45 -- plugins/mobile/iui/LICENSE.txt | 21 - plugins/mobile/iui/NOTICE.txt | 33 - plugins/mobile/iui/backButton.png | Bin 816 -> 0 bytes plugins/mobile/iui/blueButton.png | Bin 517 -> 0 bytes plugins/mobile/iui/cancel.png | Bin 362 -> 0 bytes plugins/mobile/iui/grayButton.png | Bin 943 -> 0 bytes plugins/mobile/iui/iui-logo-touch-icon.png | Bin 2887 -> 0 bytes plugins/mobile/iui/iui.css | 398 ------------ plugins/mobile/iui/iui.js | 542 ---------------- plugins/mobile/iui/iuix.css | 1 - plugins/mobile/iui/iuix.js | 1 - plugins/mobile/iui/listArrow.png | Bin 259 -> 0 bytes plugins/mobile/iui/listArrowSel.png | Bin 308 -> 0 bytes plugins/mobile/iui/listGroup.png | Bin 2867 -> 0 bytes plugins/mobile/iui/loading.gif | Bin 1435 -> 0 bytes plugins/mobile/iui/pinstripes.png | Bin 117 -> 0 bytes plugins/mobile/iui/redButton.png | Bin 947 -> 0 bytes plugins/mobile/iui/selection.png | Bin 159 -> 0 bytes plugins/mobile/iui/thumb.png | Bin 2835 -> 0 bytes plugins/mobile/iui/toggle.png | Bin 2815 -> 0 bytes plugins/mobile/iui/toggleOn.png | Bin 163 -> 0 bytes plugins/mobile/iui/toolButton.png | Bin 531 -> 0 bytes plugins/mobile/iui/toolbar.png | Bin 171 -> 0 bytes plugins/mobile/iui/whiteButton.png | Bin 978 -> 0 bytes plugins/mobile/login_form.php | 58 -- plugins/mobile/logout.php | 15 - plugins/mobile/mobile-functions.php | 542 ---------------- plugins/mobile/mobile.css | 38 -- plugins/mobile/mobile.js | 163 ----- plugins/mobile/prefs.php | 60 -- 43 files changed, 4012 deletions(-) delete mode 100644 plugins/digest/digest.css delete mode 100644 plugins/digest/digest.js delete mode 100644 plugins/digest/digest_body.php delete mode 100644 plugins/digest/images/tile.png delete mode 100644 plugins/digest/init.php delete mode 100644 plugins/digest/mobile.css delete mode 100644 plugins/mobile/article.php delete mode 100644 plugins/mobile/backend.php delete mode 100644 plugins/mobile/cat.php delete mode 100644 plugins/mobile/feed.php delete mode 100644 plugins/mobile/home.php delete mode 100644 plugins/mobile/index.php delete mode 100644 plugins/mobile/init.php delete mode 100644 plugins/mobile/iui/LICENSE.txt delete mode 100644 plugins/mobile/iui/NOTICE.txt delete mode 100644 plugins/mobile/iui/backButton.png delete mode 100644 plugins/mobile/iui/blueButton.png delete mode 100644 plugins/mobile/iui/cancel.png delete mode 100644 plugins/mobile/iui/grayButton.png delete mode 100644 plugins/mobile/iui/iui-logo-touch-icon.png delete mode 100644 plugins/mobile/iui/iui.css delete mode 100644 plugins/mobile/iui/iui.js delete mode 100644 plugins/mobile/iui/iuix.css delete mode 100644 plugins/mobile/iui/iuix.js delete mode 100644 plugins/mobile/iui/listArrow.png delete mode 100644 plugins/mobile/iui/listArrowSel.png delete mode 100644 plugins/mobile/iui/listGroup.png delete mode 100644 plugins/mobile/iui/loading.gif delete mode 100644 plugins/mobile/iui/pinstripes.png delete mode 100644 plugins/mobile/iui/redButton.png delete mode 100644 plugins/mobile/iui/selection.png delete mode 100644 plugins/mobile/iui/thumb.png delete mode 100644 plugins/mobile/iui/toggle.png delete mode 100644 plugins/mobile/iui/toggleOn.png delete mode 100644 plugins/mobile/iui/toolButton.png delete mode 100644 plugins/mobile/iui/toolbar.png delete mode 100644 plugins/mobile/iui/whiteButton.png delete mode 100644 plugins/mobile/login_form.php delete mode 100644 plugins/mobile/logout.php delete mode 100644 plugins/mobile/mobile-functions.php delete mode 100644 plugins/mobile/mobile.css delete mode 100644 plugins/mobile/mobile.js delete mode 100644 plugins/mobile/prefs.php (limited to 'plugins/digest/digest.js') diff --git a/plugins/digest/digest.css b/plugins/digest/digest.css deleted file mode 100644 index 54568e3bc..000000000 --- a/plugins/digest/digest.css +++ /dev/null @@ -1,337 +0,0 @@ -body#ttrssDigest { - color : black; - font-family : sans-serif; - font-size : 12px; - margin : 0px; - background : url("images/tile.png"); -} - -a { - color : #0069D8; - text-decoration : none; -} - -a:hover { - color : gray; -} - -#header a, #footer a { - color : gray; -} - -#header a:hover, #footer a:hover { - color : #0069D8; -} - -#header { - font-size : 13px; - font-family : "Segoe UI", Tahoma, sans-serif; - padding : 5px 5px 5px 1.5em; - color : gray; - position : absolute; - top : 0px; - height : 30px; - left : 0px; - right : 0px; - color : #a0a0a0; -} - -#header span.title { - font-weight : bold; - font-style : italic; -} - -#header div.links { - position : absolute; - right : 1.5em; -} - -#search { - float : right; - clear : left; - -} - -#title { -} - -#latest { - padding : 5px; -} - -#content { - position : absolute; - left : 0px; - top : 30px; - right : 0px; - bottom : 0px; - -webkit-transition: left 0.2s linear, right 0.2s linear; - -moz-transition: left 0.2s linear, right 0.2s linear; - transition: left 0.2s linear, right 0.2s linear; -} - -#article { - position : absolute; - overflow : auto; - right : 0px; - width : 60%; - bottom : 0px; - top : 30px; - background : white; - z-index : -1; - opacity : 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} - -#article.visible { - opacity : 1; -} - -#article #article-content h1 { - margin : 0px 0px 10px 0px; - padding : 0px 0px 5px 0px; - font-family : "Segoe UI", Tahoma, sans-serif; - font-size : 21px; - font-weight : bold; - border-width : 0px 0px 3px 0px; - border-style : solid; - border-color : #e0e0e0; - color : gray; -} - -#article #article-content #toolbar { - border-width : 0px 0px 1px 0px; - border-color : #e0e0e0; - border-style : solid; - background : #fafafa; - font-size : 14px; - font-weight : bold; - padding : 5px 10px 5px 10px; - margin : 0px 0px 0px 0px; -} - -#article #article-content { - padding : 0px; - font-size : 16px; -} - -#article #article-content #tags { - color : #a0a0a0; -} - -#article #article-content #ops { - float : right; -} - -#article #article-content #ops img { - cursor : pointer; - margin-right : 0px; - margin-left : 10px; -} - -#article #article-content #inner { - padding : 20px; -} - -#article #article-content img { - max-width : 90%; -} - -#content.move { - left : -300px; - right : 60% -} - -#feeds { - position : absolute; - left : 0px; - width : 300px; - top : -30px; - bottom : 0px; - font-size : 14px; - overflow : auto; - border-width : 0px 3px 0px 0px; - border-color : #88b0f0; - border-style : solid; - background : #eee; -} - -#feeds ul#feeds-content img { - width : 16px; - height : 16px; - vertical-align : middle; - margin-right : 5px; -} - -#feeds ul#feeds-content div.unread-ctr { - color : #d0d0d0; - padding-left : 10px; - float : right; -} - -#feeds ul#feeds-content li { - padding : 10px; - clear : both; - cursor : pointer; - color : #303030; - white-space : nowrap; -} - -#feeds ul#feeds-content li.selected { - background : white; -} - -#feeds ul#feeds-content { - list-style-type : none; - font-weight : bold; - margin : 0px; - padding : 0px; -} - -#headlines { - font-size : 14px; - position : absolute; - left : 303px; - top : 0px; - bottom : 0px; - right : 0px; - overflow : auto; - border-width : 0px 3px 0px 0px; - border-style : solid; - border-color : #88b0f0; -} - -#headlines h1 a { - color : #684C99; -} - -#headlines ul#headlines-content .cb { - vertical-align : middle; - margin-right : 5px; - float : left; -} - -#headlines ul#headlines-content img.icon { - width : 16px; - height : 16px; - vertical-align : middle; - margin-right : 5px; - float : right; -} - -#headlines ul#headlines-content { - list-style-type : none; - color : gray; - margin : 0px; - padding : 0px; -} - -#headlines ul#headlines-content li { - margin : 0px 0px 0px 0px; - padding : 10px; - color : gray; - clear : left; - border-width : 0px 0px 1px 0px; - border-style : solid; - border-color : #e0e0e0; - background : #eee; -} - -#headlines ul#headlines-content a.title { - font-size : 14px; - font-weight : bold; - display : block; - margin-left : 21px; - position : relative; -} - -#headlines ul#headlines-content li.fresh a.title { - color : #007FFF; -} - -#headlines ul#headlines-content li.unread a.title { - color : black; - /* color : #8DB1D6; */ -} - -#headlines ul#headlines-content li.read a.title { - color : gray; -} - -#headlines ul#headlines-content li.unread, -#headlines ul#headlines-content li.fresh { - background-color : white; -} - -#headlines ul#headlines-content li.selected { - background-color : #fff7d5; - border-color : white white #e0e0e0; -} - -#headlines ul#headlines-content img#H-LOADING-IMG { - margin-left : 5px; -} - -#headlines ul#headlines-content div.excerpt { - color : #404040; - cursor : pointer; - margin-top : 5px; -} - -#headlines ul#headlines-content div.content { - color : #404040; -} - -#headlines ul#headlines-content div.content img { - max-width : 75%; -} - -#headlines ul#headlines-content div.body { - margin-left : 21px; - /*margin-left : 42px;*/ -} - -#headlines ul#headlines-content div.info { - font-size : 11px; - margin-top : 5px; -} - -#headlines ul#headlines-content div.info a { - color : gray; -} - -#overlay { - background : white; - left : 0; - top : 0; - height : 100%; - width : 100%; - z-index : 100; - position : absolute; - text-align : center; -} - -#overlay_inner { - margin : 1em; -} - -#overlay img { - vertical-align : middle; -} - -div.fatalError button { - margin-top : 5px; -} - -div.fatalError textarea { - width : 100%; - height : 100px; -} - -div.insensitive { - color : gray; -} - - diff --git a/plugins/digest/digest.js b/plugins/digest/digest.js deleted file mode 100644 index 842b1006b..000000000 --- a/plugins/digest/digest.js +++ /dev/null @@ -1,951 +0,0 @@ -var last_feeds = []; -var init_params = {}; -var hotkeys_map = false; -var hotkey_prefix = false; -var mobile_mode = false; - -var _active_feed_id = false; -var _update_timeout = false; -var _view_update_timeout = false; -var _feedlist_expanded = false; -var _update_seq = 1; - -function article_appear(article_id) { - try { - new Effect.Appear('A-' + article_id); - } catch (e) { - exception_error("article_appear", e); - } -} - -function catchup_feed(feed_id, callback) { - try { - - var fn = find_feed(last_feeds, feed_id).title; - - if (confirm(__("Mark all articles in %s as read?").replace("%s", fn))) { - - var is_cat = ""; - - if (feed_id < 0) is_cat = "true"; // KLUDGE - - var query = "op=rpc&method=catchupFeed&feed_id=" + - feed_id + "&is_cat=" + is_cat; - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - if (callback) callback(transport); - - update(); - } }); - } - - } catch (e) { - exception_error("catchup_article", e); - } -} - -function parse_article_elements_for_ids(elems) { - try { - var ids = []; - - for (var i = 0; i < elems.length; i++) { - if (elems[i].id && elems[i].id.match("A-")) { - ids.push(elems[i].id.replace("A-", "")); - } - } - - return ids; - - } catch (e) { - exception_error("parse_article_elements_for_ids", e); - } -} - -function get_selected_article_ids() { - try { - var elems = $$('#headlines-content li.selected'); - - return parse_article_elements_for_ids(elems); - - } catch (e) { - exception_error("get_visible_article_ids", e); - } -} - -function get_visible_article_ids() { - try { - var elems = $("headlines-content").getElementsByTagName("LI"); - - return parse_article_elements_for_ids(elems); - - } catch (e) { - exception_error("get_visible_article_ids", e); - } -} - -function catchup_visible_articles(callback) { - try { - - var ids = get_selected_article_ids(); - if ( 0 == ids.length ) { - ids = get_visible_article_ids(); - ntext = [ "Mark %d displayed article as read?", "Mark %d displayed articles as read?" ]; - } else { - ntext = [ "Mark %d selected article as read?", "Mark %d selected articles as read?" ]; - } - - if (confirm(ngettext(ntext[0], ntext[1], ids.length).replace("%d", ids.length))) { - - var query = "op=rpc&method=catchupSelected" + - "&cmode=0&ids=" + param_escape(ids); - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - if (callback) callback(transport); - - viewfeed(_active_feed_id, 0); - } }); - - } - - } catch (e) { - exception_error("catchup_visible_articles", e); - } -} - -function catchup_article(article_id, callback) { - try { - var query = "op=rpc&method=catchupSelected" + - "&cmode=0&ids=" + article_id; - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - if (callback) callback(transport); - } }); - - } catch (e) { - exception_error("catchup_article", e); - } -} - -function set_selected_article(article_id) { - try { - $$("#headlines-content > li[id*=A-]").each(function(article) { - var id = article.id.replace("A-", ""); - - var cb = article.getElementsByTagName("INPUT")[0]; - - if (id == article_id) { - article.addClassName("selected"); - cb.checked = true; - } else { - article.removeClassName("selected"); - cb.checked = false; - } - - }); - - } catch (e) { - exception_error("set_selected_article", e); - } -} - - -function set_selected_feed(feed_id) { - try { - var feeds = $("feeds-content").getElementsByTagName("LI"); - - for (var i = 0; i < feeds.length; i++) { - if (feeds[i].id == "F-" + feed_id) - feeds[i].className = "selected"; - else - feeds[i].className = ""; - } - - _active_feed_id = feed_id; - - } catch (e) { - exception_error("set_selected_feed", e); - } -} - -function load_more() { - try { - var pr = $("H-LOADING-IMG"); - - if (pr) Element.show(pr); - - var offset = $$("#headlines-content > li[id*=A-][class*=fresh],li[id*=A-][class*=unread]").length; - - viewfeed(false, offset, false, false, true, - function() { - var pr = $("H-LOADING-IMG"); - - if (pr) Element.hide(pr); - }); - } catch (e) { - exception_error("load_more", e); - } -} - -function update(callback) { - try { - console.log('updating feeds...'); - - window.clearTimeout(_update_timeout); - - new Ajax.Request("backend.php", { - parameters: "op=digest&method=digestinit", - onComplete: function(transport) { - fatal_error_check(transport); - parse_feeds(transport); - set_selected_feed(_active_feed_id); - - if (callback) callback(transport); - } }); - - _update_timeout = window.setTimeout('update()', 5*1000); - } catch (e) { - exception_error("update", e); - } -} - -function remove_headline_entry(article_id) { - try { - var elem = $('A-' + article_id); - - if (elem) { - elem.parentNode.removeChild(elem); - } - - } catch (e) { - exception_error("remove_headline_entry", e); - } -} - -function view_update() { - try { - viewfeed(_active_feed_id, _active_feed_offset, false, true, true); - update(); - } catch (e) { - exception_error("view_update", e); - } -} - -function view(article_id) { - try { - $("content").addClassName("move"); - - var a = $("A-" + article_id); - var h = $("headlines"); - - setTimeout(function() { - // below or above viewport, reposition headline - if (a.offsetTop > h.scrollTop + h.offsetHeight || a.offsetTop+a.offsetHeight < h.scrollTop+a.offsetHeight) - h.scrollTop = a.offsetTop - (h.offsetHeight/2 - a.offsetHeight/2); - }, 500); - - new Ajax.Request("backend.php", { - parameters: "op=digest&method=digestgetcontents&article_id=" + - article_id, - onComplete: function(transport) { - fatal_error_check(transport); - - var reply = JSON.parse(transport.responseText); - - if (reply) { - var article = reply['article']; - - var mark_part = ""; - var publ_part = ""; - - var tags_part = ""; - - if (article.tags.length > 0) { - tags_part = " " + __("in") + " "; - - for (var i = 0; i < Math.min(5, article.tags.length); i++) { - //tags_part += "" + - // article.tags[i] + ", "; - - tags_part += article.tags[i] + ", "; - } - - tags_part = tags_part.replace(/, $/, ""); - tags_part = "" + tags_part + ""; - - } - - if (article.marked) - mark_part = ""; - else - mark_part = ""; - - if (article.published) - publ_part = ""; - else - publ_part = ""; - - var tmp = "
" + - "
" + - mark_part + - publ_part + - "
" + - "

" + "" + - article.title + "" + "

" + - "
" + - tags_part + - "
" + - article.content + "
"; - - $("article-content").innerHTML = tmp; - $("article").addClassName("visible"); - - set_selected_article(article.id); - - catchup_article(article_id, - function() { - $("A-" + article_id).addClassName("read"); - }); - - } else { - elem.innerHTML = __("Error: unable to load article."); - } - } - }); - - - return false; - } catch (e) { - exception_error("view", e); - } -} - -function close_feed() { - $("headlines").removeClassName("move"); - - if (mobile_mode) set_selected_feed(false); -} - -function go_back() { - if ($("article").hasClassName("visible")) { - close_article(); - } else { - close_feed(); - } -} - -function close_article() { - $("content").removeClassName("move"); - $("article").removeClassName("visible"); -} - -function viewfeed(feed_id, offset, replace, no_effects, no_indicator, callback) { - try { - - $("headlines").addClassName("move"); - - if (!feed_id) feed_id = _active_feed_id; - if (offset == undefined) offset = 0; - if (replace == undefined) replace = (offset == 0); - - _update_seq = _update_seq + 1; - - if (!offset) $("headlines").scrollTop = 0; - - var query = "op=digest&method=digestupdate&feed_id=" + - param_escape(feed_id) + "&offset=" + offset + - "&seq=" + _update_seq; - - console.log(query); - - var img = false; - - if ($("F-" + feed_id)) { - img = $("F-" + feed_id).getElementsByTagName("IMG")[0]; - - if (img && !no_indicator) { - img.setAttribute("orig_src", img.src); - img.src = 'images/indicator_tiny.gif'; - } - } - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - Element.hide("overlay"); - - fatal_error_check(transport); - parse_headlines(transport, replace, no_effects); - set_selected_feed(feed_id); - _active_feed_offset = offset; - - if (img && !no_indicator) - img.src = img.getAttribute("orig_src"); - - if (callback) callback(transport); - - } }); - - } catch (e) { - exception_error("view", e); - } -} - -function find_article(articles, article_id) { - try { - for (var i = 0; i < articles.length; i++) { - if (articles[i].id == article_id) - return articles[i]; - } - - return false; - - } catch (e) { - exception_error("find_article", e); - } -} - -function find_feed(feeds, feed_id) { - try { - for (var i = 0; i < feeds.length; i++) { - if (feeds[i].id == feed_id) - return feeds[i]; - } - - return false; - - } catch (e) { - exception_error("find_feed", e); - } -} - -function get_feed_icon(feed) { - try { - if (feed.has_icon) - return getInitParam('icons_url') + "/" + feed.id + '.ico'; - - if (feed.id == -1) - return 'images/mark_set.svg'; - - if (feed.id == -2) - return 'images/pub_set.svg'; - - if (feed.id == -3) - return 'images/fresh.png'; - - if (feed.id == -4) - return 'images/tag.png'; - - if (feed.id < -10) - return 'images/label.png'; - - return 'images/blank_icon.gif'; - - } catch (e) { - exception_error("get_feed_icon", e); - } -} - -function add_feed_entry(feed) { - try { - var icon_part = ""; - - icon_part = ""; - - var title = (feed.title.length > 30) ? - feed.title.substring(0, 30) + "…" : - feed.title; - - var tmp_html = "
  • " + - "
    " + "" + feed.unread + "
    " + - icon_part + title + - "
  • "; - - $("feeds-content").innerHTML += tmp_html; - - - } catch (e) { - exception_error("add_feed_entry", e); - } -} - -function add_headline_entry(article, feed, no_effects) { - try { - - var icon_part = ""; - - icon_part = ""; - - - var style = ""; - - //if (!no_effects) style = "style=\"display : none\""; - - if (article.excerpt.trim() == "") - article.excerpt = __("Click to expand article."); - - var li_class = "unread"; - - var fresh_max = getInitParam("fresh_article_max_age") * 60 * 60; - var d = new Date(); - - if (d.getTime() / 1000 - article.updated < fresh_max) - li_class = "fresh"; - - var checkbox_part = ""; - - var date = new Date(article.updated * 1000); - - var date_part = date.toString().substring(0,21); - - var tmp_html = "
  • " + - checkbox_part + - icon_part + - "" + - article.title + "" + - "
    " + - "
    " + - article.excerpt + "
    " + - "
    "; - -/* tmp_html += "" + - feed.title + " " + " @ "; */ - - tmp_html += date_part + "
    " + - "
  • "; - - $("headlines-content").innerHTML += tmp_html; - - if (!no_effects) - window.setTimeout('article_appear(' + article.id + ')', 100); - - } catch (e) { - exception_error("add_headline_entry", e); - } -} - -function expand_feeds() { - try { - _feedlist_expanded = true; - - redraw_feedlist(last_feeds); - - } catch (e) { - exception_error("expand_feeds", e); - } -} - -function redraw_feedlist(feeds) { - try { - - $('feeds-content').innerHTML = ""; - - var limit = 10; - - if (_feedlist_expanded) limit = feeds.length; - - for (var i = 0; i < Math.min(limit, feeds.length); i++) { - add_feed_entry(feeds[i]); - } - - if (feeds.length > limit) { - $('feeds-content').innerHTML += "
  • " + - "" + - "" + - ngettext("%d more...", "%d more...", feeds.length-10).replace("%d", feeds.length-10) + - "" + "
  • "; - } - - if (feeds.length == 0) { - $('feeds-content').innerHTML = - "
    " + - __("No unread feeds.") + "
    "; - } - - if (_active_feed_id) - set_selected_feed(_active_feed_id); - - } catch (e) { - exception_error("redraw_feedlist", e); - } -} - -function parse_feeds(transport) { - try { - var reply = JSON.parse(transport.responseText); - - if (!reply) return; - - var feeds = reply['feeds']; - - if (feeds) { - - feeds.sort( function (a,b) - { - if (b.unread != a.unread) - return (b.unread - a.unread); - else - if (a.title > b.title) - return 1; - else if (a.title < b.title) - return -1; - else - return 0; - }); - - var all_articles = find_feed(feeds, -4); - - update_title(all_articles.unread); - - last_feeds = feeds; - - redraw_feedlist(feeds); - } - - if (reply['hotkeys']) { - hotkeys_map = reply['hotkeys']; - } - - } catch (e) { - console.log(e); - //exception_error("parse_feeds", e); - } -} - -function parse_headlines(transport, replace, no_effects) { - try { - var reply = JSON.parse(transport.responseText); - if (!reply) return; - - var seq = reply['seq']; - - if (seq) { - if (seq != _update_seq) { - console.log("parse_headlines: wrong sequence received."); - return; - } - } else { - return; - } - - var headlines = reply['headlines']['content']; - var headlines_title = reply['headlines']['title']; - - if (headlines && headlines_title) { - - if (replace) { - $('headlines-content').innerHTML = ''; - } - - var pr = $('H-MORE-PROMPT'); - - if (pr) pr.parentNode.removeChild(pr); - - var inserted = false; - - for (var i = 0; i < headlines.length; i++) { - - if (!$('A-' + headlines[i].id)) { - add_headline_entry(headlines[i], - find_feed(last_feeds, headlines[i].feed_id), !no_effects); - - } - } - - console.log(inserted.id); - - var ids = get_visible_article_ids(); - - if (ids.length > 0) { - if (pr) { - $('headlines-content').appendChild(pr); - - } else { - $('headlines-content').innerHTML += "
  • " + - "
  • "; - } - } else { - // FIXME : display some kind of "nothing to see here" prompt here - } - -// if (replace && !no_effects) -// new Effect.Appear('headlines-content', {duration : 0.3}); - - //new Effect.Appear('headlines-content'); - } - - } catch (e) { - exception_error("parse_headlines", e); - } -} - -function init_second_stage() { - try { - new Ajax.Request("backend.php", { - parameters: "op=digest&method=digestinit&init=1", - onComplete: function(transport) { - parse_feeds(transport); - Element.hide("overlay"); - - document.onkeydown = hotkey_handler; - - if (!mobile_mode) - window.setTimeout('viewfeed(-4)', 100); - _update_timeout = window.setTimeout('update()', 5*1000); - } }); - - } catch (e) { - exception_error("init_second_stage", e); - } -} - -function init(mobile) { - try { - mobile_mode = mobile; - - new Ajax.Request("backend.php", { - parameters: {op: "rpc", method: "sanityCheck"}, - onComplete: function(transport) { - backend_sanity_check_callback(transport); - } }); - - } catch (e) { - exception_error("digest_init", e); - } -} - -function toggle_mark(img, id) { - - try { - - var query = "op=rpc&id=" + id + "&method=mark"; - - if (!img) return; - - if (img.src.match("mark_unset")) { - img.src = img.src.replace("mark_unset", "mark_set"); - img.alt = __("Unstar article"); - query = query + "&mark=1"; - } else { - img.src = img.src.replace("mark_set", "mark_unset"); - img.alt = __("Star article"); - query = query + "&mark=0"; - } - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - update(); - } }); - - } catch (e) { - exception_error("toggle_mark", e); - } -} - -function toggle_pub(img, id, note) { - - try { - - var query = "op=rpc&id=" + id + "&method=publ"; - - if (note != undefined) { - query = query + "¬e=" + param_escape(note); - } else { - query = query + "¬e=undefined"; - } - - if (!img) return; - - if (img.src.match("pub_unset") || note != undefined) { - img.src = img.src.replace("pub_unset", "pub_set"); - img.alt = __("Unpublish article"); - query = query + "&pub=1"; - - } else { - img.src = img.src.replace("pub_set", "pub_unset"); - img.alt = __("Publish article"); - query = query + "&pub=0"; - } - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - update(); - } }); - - } catch (e) { - exception_error("toggle_pub", e); - } -} - -function fatal_error(code, msg) { - try { - - if (code == 6) { - window.location.href = "digest.php"; - } else if (code == 5) { - window.location.href = "public.php?op=dbupdate"; - } else { - - if (msg == "") msg = "Unknown error"; - - console.error("Fatal error: " + code + "\n" + - msg); - - } - - } catch (e) { - exception_error("fatalError", e); - } -} - -function fatal_error_check(transport) { - try { - if (transport.responseXML) { - var error = transport.responseXML.getElementsByTagName("error")[0]; - - if (error) { - var code = error.getAttribute("error-code"); - var msg = error.getAttribute("error-msg"); - if (code != 0) { - fatal_error(code, msg); - return false; - } - } - } - } catch (e) { - exception_error("fatal_error_check", e); - } - return true; -} - -function update_title(unread) { - try { - document.title = "Tiny Tiny RSS"; - - if (unread > 0) - document.title += " (" + unread + ")"; - - } catch (e) { - exception_error("update_title", e); - } -} - -function toggle_select_article(elem) { - try { - var article = elem.parentNode; - - if (article.hasClassName("selected")) - article.removeClassName("selected"); - else - article.addClassName("selected"); - - } catch (e) { - exception_error("toggle_select_article", e); - } -} - -function hotkey_handler(e) { - try { - - if (e.target.nodeName == "INPUT" || e.target.nodeName == "TEXTAREA") return; - - var keycode = false; - var shift_key = false; - - var cmdline = $('cmdline'); - - try { - shift_key = e.shiftKey; - } catch (e) { - - } - - if (window.event) { - keycode = window.event.keyCode; - } else if (e) { - keycode = e.which; - } - - var keychar = String.fromCharCode(keycode); - - if (!shift_key) keychar = keychar.toLowerCase(); - - if (keycode == 16) return; // ignore lone shift - if (keycode == 17) return; // ignore lone ctrl - - var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")"; - hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey; - hotkey_prefix = false; - - var hotkey_action = false; - var hotkeys = getInitParam("hotkeys"); - - for (sequence in hotkeys[1]) { - if (sequence == hotkey) { - hotkey_action = hotkeys[1][sequence]; - break; - } - } - - switch (keycode) { - case 27: // esc - go_back(); - return false; - } - - switch (hotkey_action) { - case "next_feed": - var feeds = $$("#feeds li"); - for (var i = 0; i < feeds.length; i++) { - var base_id = feeds[i].id.replace("F-", ""); - - if (base_id == _active_feed_id) { - if (feeds[i+1]) { - viewfeed(feeds[i+1].id.replace("F-", "")); - } - break; - } - } - return false; - case "prev_feed": - var feeds = $$("#feeds li"); - for (var i = 0; i < feeds.length; i++) { - var base_id = feeds[i].id.replace("F-", ""); - - if (base_id == _active_feed_id) { - if (feeds[i-1]) { - viewfeed(feeds[i-1].id.replace("F-", "")); - } - break; - } - } - return false; - case "next_article": - return false; - case "prev_article": - return false; - default: - console.log("unhandled action: " + hotkey_action + "; hotkey: " + hotkey); - } - - - } catch (e) { - exception_error("hotkey_handler", e); - } -} diff --git a/plugins/digest/digest_body.php b/plugins/digest/digest_body.php deleted file mode 100644 index 18932e536..000000000 --- a/plugins/digest/digest_body.php +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Tiny Tiny RSS - - isMobile() || @$_REQUEST['mode'] == 'mobile') { - $_SESSION["digest_mobile"] = 1; - echo stylesheet_tag("plugins/digest/mobile.css"); - } else { - $_SESSION["digest_mobile"] = 0; - echo stylesheet_tag("plugins/digest/digest.css"); - } - ?> - - - - - - - - - - - - - - - - - - -
    -
    - - - - -
    -
    - - - -
     
    - -
    - -
    -
    -
    - -
    -
    -
    -
    - - - diff --git a/plugins/digest/images/tile.png b/plugins/digest/images/tile.png deleted file mode 100644 index 72f2f4553..000000000 Binary files a/plugins/digest/images/tile.png and /dev/null differ diff --git a/plugins/digest/init.php b/plugins/digest/init.php deleted file mode 100644 index aee351cd8..000000000 --- a/plugins/digest/init.php +++ /dev/null @@ -1,109 +0,0 @@ -link = $host->get_link(); - $this->host = $host; - - $host->add_handler("digest", "*", $this); - } - - function index() { - header("Content-type: text/html; charset=utf-8"); - - login_sequence(); - - require_once dirname(__FILE__) . "/digest_body.php"; - } - - /* function get_js() { - return file_get_contents(dirname(__FILE__) . "/digest.js"); - } */ - - function csrf_ignore($method) { - return in_array($method, array("index")); - } - - function before($method) { - return true; - } - - function after() { - - } - - function digestgetcontents() { - $article_id = db_escape_string($_REQUEST['article_id']); - - $result = db_query("SELECT content,title,link,marked,published - FROM ttrss_entries, ttrss_user_entries - WHERE id = '$article_id' AND ref_id = id AND owner_uid = ".$_SESSION['uid']); - - $content = sanitize(db_fetch_result($result, 0, "content")); - $title = strip_tags(db_fetch_result($result, 0, "title")); - $article_url = htmlspecialchars(db_fetch_result($result, 0, "link")); - $marked = sql_bool_to_bool(db_fetch_result($result, 0, "marked")); - $published = sql_bool_to_bool(db_fetch_result($result, 0, "published")); - - print json_encode(array("article" => - array("id" => $article_id, "url" => $article_url, - "tags" => get_article_tags($article_id), - "marked" => $marked, "published" => $published, - "title" => $title, "content" => $content))); - } - - function digestupdate() { - $feed_id = db_escape_string($_REQUEST['feed_id']); - $offset = db_escape_string($_REQUEST['offset']); - $seq = db_escape_string($_REQUEST['seq']); - - if (!$feed_id) $feed_id = -4; - if (!$offset) $offset = 0; - - $reply = array(); - - $reply['seq'] = $seq; - - $headlines = API::api_get_headlines($feed_id, 30, $offset, - '', ($feed_id == -4), true, false, "unread", "updated DESC", 0, 0); - - $reply['headlines'] = array(); - $reply['headlines']['title'] = getFeedTitle($feed_id); - $reply['headlines']['content'] = $headlines; - - print json_encode($reply); - } - - function digestinit() { - $tmp_feeds = API::api_get_feeds(-4, true, false, 0); - - $params = array(); - $feeds = array(); - - foreach ($tmp_feeds as $f) { - if ($f['id'] > 0 || $f['id'] == -4) array_push($feeds, $f); - } - - if ($_REQUEST["init"] == 1) { - $params["hotkeys"] = get_hotkeys_map(); - } - $params["feeds"] = $feeds; - - print json_encode($params); - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/digest/mobile.css b/plugins/digest/mobile.css deleted file mode 100644 index 89989dfe6..000000000 --- a/plugins/digest/mobile.css +++ /dev/null @@ -1,345 +0,0 @@ -body#ttrssDigest { - color : black; - font-family : sans-serif; - font-size : 12px; - margin : 0px; - background : url("images/tile.png"); -} - -a { - color : #0069D8; - text-decoration : none; -} - -a:hover { - color : gray; -} - -#header a, #footer a { - color : gray; -} - -#header a:hover, #footer a:hover { - color : #0069D8; -} - -#header { - font-size : 14px; - font-weight : bold; - font-family : "Segoe UI", Tahoma, sans-serif; - padding : 5px 5px 5px 1.5em; - color : gray; - position : absolute; - top : 0px; - height : 30px; - left : 0px; - right : 0px; - color : #a0a0a0; -} - -#header span.title { - font-weight : bold; - font-style : italic; -} - -#header div.links { - position : absolute; - right : 1.5em; -} - -#search { - float : right; - clear : left; - -} - -#title { -} - -#latest { - padding : 5px; -} - -#content { - position : absolute; - left : 0px; - top : 30px; - right : 0px; - bottom : 0px; - -webkit-transition: left 0.2s linear, right 0.2s linear; - -moz-transition: left 0.2s linear, right 0.2s linear; - transition: left 0.2s linear, right 0.2s linear; -} - -#article { - position : absolute; - overflow : auto; - right : 0px; - width : 100%; - bottom : 0px; - top : 30px; - background : white; - opacity : 0; - -webkit-transition: opacity 0.2s linear; - -moz-transition: opacity 0.2s linear; - transition: opacity 0.2s linear; -} - -#article.visible { - opacity : 1; -} - -#article #article-content h1 { - margin : 0px; - padding : 0px; - font-family : "Segoe UI", Tahoma, sans-serif; - font-size : 21px; - font-weight : bold; - border-width : 0px 0px 3px 0px; - border-style : solid; - border-color : #e0e0e0; - color : gray; -} - -#article #article-content #toolbar { - border-width : 0px 0px 1px 0px; - border-color : #e0e0e0; - border-style : solid; - background : #fafafa; - font-size : 14px; - font-weight : bold; - padding : 5px 10px 5px 10px; - margin : 0px 0px 0px 0px; -} - -#article #article-content { - padding : 0px; - font-size : 16px; -} - -#article #article-content #tags { - color : #a0a0a0; - margin-bottom : 5px; -} - -#article #article-content #ops { - float : right; -} - -#article #article-content #ops img { - cursor : pointer; - margin-right : 0px; - margin-left : 10px; -} - -#article #article-content #inner { - padding : 10px; -} - -#article #article-content img { - max-width : 90%; -} - -#content.move { - left : 0px; - right : 100%; -} - -#feeds { - position : absolute; - left : 0px; - top : 0px; - right : 0px; - bottom : 0px; - font-size : 14px; - overflow : auto; - background : white; -} - -#feeds ul#feeds-content img { - width : 16px; - height : 16px; - vertical-align : middle; - margin-right : 5px; -} - -#feeds ul#feeds-content div.unread-ctr { - color : #d0d0d0; - padding-left : 10px; - float : right; -} - -#feeds ul#feeds-content li { - padding : 10px; - clear : both; - cursor : pointer; - color : #303030; - white-space : nowrap; -} - -#feeds ul#feeds-content li.selected { - background : white; -} - -#feeds ul#feeds-content { - list-style-type : none; - font-weight : bold; - margin : 0px; - padding : 0px; -} - -#headlines { - font-size : 14px; - position : absolute; - top : 0px; - bottom : 0px; - right : 0px; - overflow : auto; - background : white; - border-width : 0px 3px 0px 0px; - border-style : solid; - border-color : #88b0f0; - left : 100%; - - -webkit-transition: left 0.2s linear, right 0.2s linear; - -moz-transition: left 0.2s linear, right 0.2s linear; - transition: left 0.2s linear, right 0.2s linear; - -} - -#headlines.move { - left : 0px; -} - -#headlines h1 a { - color : #684C99; -} - -#headlines ul#headlines-content .cb { - vertical-align : middle; - margin-right : 5px; - float : left; -} - -#headlines ul#headlines-content img.icon { - width : 16px; - height : 16px; - vertical-align : middle; - margin-right : 5px; - float : right; -} - -#headlines ul#headlines-content { - list-style-type : none; - color : gray; - margin : 0px; - padding : 0px; -} - -#headlines ul#headlines-content li { - margin : 0px 0px 0px 0px; - padding : 10px; - color : gray; - clear : left; - border-width : 0px 0px 1px 0px; - border-style : solid; - border-color : #e0e0e0; - background : #eee; -} - -#headlines ul#headlines-content a.title { - font-size : 14px; - font-weight : bold; - display : block; - margin-left : 21px; - position : relative; -} - -#headlines ul#headlines-content li.fresh a.title { - color : #007FFF; -} - -#headlines ul#headlines-content li.unread a.title { - color : black; - /* color : #8DB1D6; */ -} - -#headlines ul#headlines-content li.read a.title { - color : gray; -} - -#headlines ul#headlines-content li.unread, -#headlines ul#headlines-content li.fresh { - background-color : white; -} - -#headlines ul#headlines-content li.selected { - background-color : #fff7d5; - border-color : white white #e0e0e0; -} - -#headlines ul#headlines-content img#H-LOADING-IMG { - margin-left : 5px; -} - -#headlines ul#headlines-content div.excerpt { - color : #404040; - cursor : pointer; - margin-top : 5px; -} - -#headlines ul#headlines-content div.content { - color : #404040; -} - -#headlines ul#headlines-content div.content img { - max-width : 75%; -} - -#headlines ul#headlines-content div.body { - margin-left : 21px; - /*margin-left : 42px;*/ -} - -#headlines ul#headlines-content div.info { - font-size : 11px; - margin-top : 5px; -} - -#headlines ul#headlines-content div.info a { - color : gray; -} - -#overlay { - background : white; - left : 0; - top : 0; - height : 100%; - width : 100%; - z-index : 100; - position : absolute; - text-align : center; -} - -#overlay_inner { - margin : 1em; -} - -#overlay img { - vertical-align : middle; -} - -div.fatalError button { - margin-top : 5px; -} - -div.fatalError textarea { - width : 100%; - height : 100px; -} - -div.insensitive { - color : gray; -} - - diff --git a/plugins/mobile/article.php b/plugins/mobile/article.php deleted file mode 100644 index 64768c983..000000000 --- a/plugins/mobile/article.php +++ /dev/null @@ -1,28 +0,0 @@ - - diff --git a/plugins/mobile/backend.php b/plugins/mobile/backend.php deleted file mode 100644 index 4065dc2a4..000000000 --- a/plugins/mobile/backend.php +++ /dev/null @@ -1,59 +0,0 @@ - - diff --git a/plugins/mobile/cat.php b/plugins/mobile/cat.php deleted file mode 100644 index 21d04550f..000000000 --- a/plugins/mobile/cat.php +++ /dev/null @@ -1,25 +0,0 @@ - - diff --git a/plugins/mobile/feed.php b/plugins/mobile/feed.php deleted file mode 100644 index 345026efd..000000000 --- a/plugins/mobile/feed.php +++ /dev/null @@ -1,29 +0,0 @@ - - diff --git a/plugins/mobile/home.php b/plugins/mobile/home.php deleted file mode 100644 index 3039635a5..000000000 --- a/plugins/mobile/home.php +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/plugins/mobile/index.php b/plugins/mobile/index.php deleted file mode 100644 index 9e9c339e3..000000000 --- a/plugins/mobile/index.php +++ /dev/null @@ -1,86 +0,0 @@ - - - - - -Tiny Tiny RSS - - - - - - - - - - - - - - -
    -

    - - Preferences -
    - - - - - diff --git a/plugins/mobile/init.php b/plugins/mobile/init.php deleted file mode 100644 index 1a59fe33c..000000000 --- a/plugins/mobile/init.php +++ /dev/null @@ -1,45 +0,0 @@ -host = $host; - - $host->add_handler("mobile", "index", $this); - } - - function index() { - header("Content-type: text/html; charset=utf-8"); - - header("Location: plugins/mobile/index.php"); - } - - /* function get_js() { - return file_get_contents(dirname(__FILE__) . "/digest.js"); - } */ - - function csrf_ignore($method) { - return true; //in_array($method, array("index")); - } - - function before($method) { - return true; - } - - function after() { - - } - - function api_version() { - return 2; - } - -} -?> diff --git a/plugins/mobile/iui/LICENSE.txt b/plugins/mobile/iui/LICENSE.txt deleted file mode 100644 index c9d2a0d65..000000000 --- a/plugins/mobile/iui/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2007-2009, iUI Project Members - -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of the iUI Project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/plugins/mobile/iui/NOTICE.txt b/plugins/mobile/iui/NOTICE.txt deleted file mode 100644 index 3a23f563b..000000000 --- a/plugins/mobile/iui/NOTICE.txt +++ /dev/null @@ -1,33 +0,0 @@ -NOTICE.txt - iUI credits and copyright notices - - iUI is Copyright (c) 2007-2009 by the iUI project members: - M. Sean Gilligan (msgilligan) - Past members: - Joe Hewitt (joehewitt) - Christopher Allen (ChristopherA) - -CREDITS - schlueter - committed fixes for issues #9, #11, #63 -- added samples - ??? - created iUI icon - kris.tate - named it "iUI", created Google Code project, initial checkin - others - let us know if we missed you - iUI users - thanks for your patience, feedback, and bug reports - -THIRD PARTY COMPONENTS - - * iUI includes software developed by the Mozilla Project - Copyright (c) 1997-2007, Netscape Communications Corporation and others. - All rights reserved. - http://www.mozilla.org/rhino/ - - * iUI includes software developed by the Dojo Foundation - http://dojotoolkit.org/docs/shrinksafe - - * iUI includes software developed by LCA Soft Ltd. - http://www.lcasoft.com/compress-js.html - - * iUI includes software developed by the ant-googlcode Project - http://code.google.com/p/ant-googlecode/ - - - diff --git a/plugins/mobile/iui/backButton.png b/plugins/mobile/iui/backButton.png deleted file mode 100644 index e27ea8cdf..000000000 Binary files a/plugins/mobile/iui/backButton.png and /dev/null differ diff --git a/plugins/mobile/iui/blueButton.png b/plugins/mobile/iui/blueButton.png deleted file mode 100644 index 0f92dfd94..000000000 Binary files a/plugins/mobile/iui/blueButton.png and /dev/null differ diff --git a/plugins/mobile/iui/cancel.png b/plugins/mobile/iui/cancel.png deleted file mode 100644 index 5f6dcc87d..000000000 Binary files a/plugins/mobile/iui/cancel.png and /dev/null differ diff --git a/plugins/mobile/iui/grayButton.png b/plugins/mobile/iui/grayButton.png deleted file mode 100644 index 0ce6a30d4..000000000 Binary files a/plugins/mobile/iui/grayButton.png and /dev/null differ diff --git a/plugins/mobile/iui/iui-logo-touch-icon.png b/plugins/mobile/iui/iui-logo-touch-icon.png deleted file mode 100644 index 8817b3022..000000000 Binary files a/plugins/mobile/iui/iui-logo-touch-icon.png and /dev/null differ diff --git a/plugins/mobile/iui/iui.css b/plugins/mobile/iui/iui.css deleted file mode 100644 index 3933dbad9..000000000 --- a/plugins/mobile/iui/iui.css +++ /dev/null @@ -1,398 +0,0 @@ -/* iui.css (c) 2007-9 by iUI Project Members, see LICENSE.txt for license */ -body { - margin: 0; - font-family: Helvetica; - background: #FFFFFF; - color: #000000; - overflow-x: hidden; - -webkit-user-select: none; - -webkit-text-size-adjust: none; -} - -body > *:not(.toolbar) { - display: none; - position: absolute; - margin: 0; - padding: 0; - left: 0; - top: 45px; - width: 100%; - min-height: 372px; - -webkit-transition-duration: 300ms; - -webkit-transition-property: -webkit-transform; - -webkit-transform: translateX(0%); -} - -body[orient="landscape"] > *:not(.toolbar) { - min-height: 268px; -} - -body > *[selected="true"] { - display: block; -} - -a[selected], a:active { - background-color: #194fdb !important; - background-image: url(listArrowSel.png), url(selection.png) !important; - background-repeat: no-repeat, repeat-x; - background-position: right center, left top; - color: #FFFFFF !important; -} - -a[selected="progress"] { - background-image: url(loading.gif), url(selection.png) !important; -} - -/************************************************************************************************/ - -body > .toolbar { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - border-bottom: 1px solid #2d3642; - border-top: 1px solid #6d84a2; - padding: 10px; - height: 45px; - background: url(toolbar.png) #6d84a2 repeat-x; -} - -.toolbar > h1 { - position: absolute; - overflow: hidden; - left: 50%; - margin: 1px 0 0 -75px; - height: 45px; - font-size: 20px; - width: 150px; - font-weight: bold; - text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; - text-align: center; - text-overflow: ellipsis; - white-space: nowrap; - color: #FFFFFF; -} - -body[orient="landscape"] > .toolbar > h1 { - margin-left: -125px; - width: 250px; -} - -.button { - position: absolute; - overflow: hidden; - top: 8px; - right: 6px; - margin: 0; - border-width: 0 5px; - padding: 0 3px; - width: auto; - height: 30px; - line-height: 30px; - font-family: inherit; - font-size: 12px; - font-weight: bold; - color: #FFFFFF; - text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0; - text-overflow: ellipsis; - text-decoration: none; - white-space: nowrap; - background: none; - -webkit-border-image: url(toolButton.png) 0 5 0 5; -} - -.blueButton { - -webkit-border-image: url(blueButton.png) 0 5 0 5; - border-width: 0 5px; -} - -.leftButton { - left: 6px; - right: auto; -} - -#backButton { - display: none; - left: 6px; - right: auto; - padding: 0; - max-width: 55px; - border-width: 0 8px 0 14px; - -webkit-border-image: url(backButton.png) 0 8 0 14; -} - -.whiteButton, -.redButton, -.grayButton { - display: block; - border-width: 0 12px; - padding: 10px; - text-align: center; - font-size: 20px; - font-weight: bold; - text-decoration: inherit; - color: inherit; -} - -.whiteButton { - -webkit-border-image: url(whiteButton.png) 0 12 0 12; - text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0; -} - -.redButton { - -webkit-border-image: url(redButton.png) 0 12 0 12; - color:#fff; - text-shadow: #7a0001 0 -1px 0; -} - -.grayButton { - -webkit-border-image: url(grayButton.png) 0 12 0 12; - color: #FFFFFF; -} - -/************************************************************************************************/ - -body > ul > li { - position: relative; - margin: 0; - border-bottom: 1px solid #E0E0E0; - padding: 8px 0 8px 10px; - font-size: 20px; - font-weight: bold; - list-style: none; -} - -body > ul > li.group { - position: relative; - top: -1px; - margin-bottom: -2px; - border-top: 1px solid #7d7d7d; - border-bottom: 1px solid #999999; - padding: 1px 10px; - background: url(listGroup.png) repeat-x; - font-size: 17px; - font-weight: bold; - text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0; - color: #FFFFFF; -} - -body > ul > li.group:first-child { - top: 0; - border-top: none; -} - -body > ul > li > a { - display: block; - margin: -8px 0 -8px -10px; - padding: 8px 32px 8px 10px; - text-decoration: none; - color: inherit; - background: url(listArrow.png) no-repeat right center; -} - -a[target="_replace"] { - box-sizing: border-box; - -webkit-box-sizing: border-box; - padding-top: 25px; - padding-bottom: 25px; - font-size: 18px; - color: cornflowerblue; - background-color: #FFFFFF; - background-image: none; -} - -/************************************************************************************************/ - -body > .dialog { - top: 0; - width: 100%; - min-height: 417px; - z-index: 2; - background: rgba(0, 0, 0, 0.8); - padding: 0; - text-align: right; -} - -.dialog > fieldset { - box-sizing: border-box; - -webkit-box-sizing: border-box; - width: 100%; - margin: 0; - border: none; - border-top: 1px solid #6d84a2; - padding: 10px 6px; - background: url(toolbar.png) #7388a5 repeat-x; -} - -.dialog > fieldset > h1 { - margin: 0 10px 0 10px; - padding: 0; - font-size: 20px; - font-weight: bold; - color: #FFFFFF; - text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; - text-align: center; -} - -.dialog > fieldset > label { - position: absolute; - margin: 16px 0 0 6px; - font-size: 14px; - color: #999999; -} - -/*input:not(input[type|=radio]):not(input[type|=checkbox]) {*/ -input[type|=text], input[type|=password] { - box-sizing: border-box; - -webkit-box-sizing: border-box; - width: 100%; - margin: 8px 0 0 0; - padding: 6px 6px 6px 44px; - font-size: 16px; - font-weight: normal; -} - -/************************************************************************************************/ - -body > .panel { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - padding: 10px; - background: #c8c8c8 url(pinstripes.png); -} - -.panel > fieldset { - position: relative; - margin: 0 0 20px 0; - padding: 0; - background: #FFFFFF; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - border: 1px solid #999999; - text-align: right; - font-size: 16px; -} - -.row { - position: relative; - min-height: 42px; - border-bottom: 1px solid #999999; - -webkit-border-radius: 0; - text-align: left; -} - -fieldset > .row:last-child { - border-bottom: none !important; -} - -/*.row > input:not(input[type|=radio]):not(input[type|=checkbox]) {*/ -.row > input[type|=text], .row > input[type|=password] { - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - margin: 0; - border: none; - padding: 12px 10px 0 110px; -/* height: 42px;*/ - background: none; -} -.row > input[type|=radio], .row > input[type|=checkbox] { - margin: 7px 7px 0 0; - height: 25px; - width: 25px; -} - -.row > label { - position: absolute; - margin: 0 0 0 14px; - line-height: 42px; - font-weight: bold; -} - -.row > span { - position: absolute; - padding: 12px 10px 0 110px; - margin: 0; -} - -.row > .toggle { - position: absolute; - top: 6px; - right: 6px; - width: 100px; - height: 28px; -} - -.toggle { - border: 1px solid #888888; - -webkit-border-radius: 6px; - background: #FFFFFF url(toggle.png) repeat-x; - font-size: 19px; - font-weight: bold; - line-height: 30px; -} - -.toggle[toggled="true"] { - border: 1px solid #143fae; - background: #194fdb url(toggleOn.png) repeat-x; -} - -.toggleOn { - display: none; - position: absolute; - width: 60px; - text-align: center; - left: 0; - top: 0; - color: #FFFFFF; - text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0; -} - -.toggleOff { - position: absolute; - width: 60px; - text-align: center; - right: 0; - top: 0; - color: #666666; -} - -.toggle[toggled="true"] > .toggleOn { - display: block; -} - -.toggle[toggled="true"] > .toggleOff { - display: none; -} - -.thumb { - position: absolute; - top: -1px; - left: -1px; - width: 40px; - height: 28px; - border: 1px solid #888888; - -webkit-border-radius: 6px; - background: #ffffff url(thumb.png) repeat-x; -} - -.toggle[toggled="true"] > .thumb { - left: auto; - right: -1px; -} - -.panel > h2 { - margin: 0 0 8px 14px; - font-size: inherit; - font-weight: bold; - color: #4d4d70; - text-shadow: rgba(255, 255, 255, 0.75) 2px 2px 0; -} - -/************************************************************************************************/ - -#preloader { - display: none; - background-image: url(loading.gif), url(selection.png), - url(blueButton.png), url(listArrowSel.png), url(listGroup.png); -} diff --git a/plugins/mobile/iui/iui.js b/plugins/mobile/iui/iui.js deleted file mode 100644 index 0937afe05..000000000 --- a/plugins/mobile/iui/iui.js +++ /dev/null @@ -1,542 +0,0 @@ -/* - Copyright (c) 2007-9, iUI Project Members - See LICENSE.txt for licensing terms - */ - - -(function() { - -var slideSpeed = 20; -var slideInterval = 0; - -var currentPage = null; -var currentDialog = null; -var currentWidth = 0; -var currentHash = location.hash; -var hashPrefix = "#_"; -var pageHistory = []; -var newPageCount = 0; -var checkTimer; -var hasOrientationEvent = false; -var portraitVal = "portrait"; -var landscapeVal = "landscape"; - -// ************************************************************************************************* - -window.iui = -{ - animOn: true, // Slide animation with CSS transition is now enabled by default where supported - - showPage: function(page, backwards) - { - if (page) - { - if (currentDialog) - { - currentDialog.removeAttribute("selected"); - currentDialog = null; - } - - if (hasClass(page, "dialog")) - showDialog(page); - else - { - var fromPage = currentPage; - currentPage = page; - - if (fromPage) - setTimeout(slidePages, 0, fromPage, page, backwards); - else - updatePage(page, fromPage); - } - } - }, - - showPageById: function(pageId) - { - var page = $(pageId); - if (page) - { - var index = pageHistory.indexOf(pageId); - var backwards = index != -1; - if (backwards) - pageHistory.splice(index, pageHistory.length); - - iui.showPage(page, backwards); - } - }, - - showPageByHref: function(href, args, method, replace, cb, bw) - { - var req = new XMLHttpRequest(); - req.onerror = function() - { - if (cb) - cb(false); - }; - - req.onreadystatechange = function() - { - if (req.readyState == 4) - { - if (replace) - replaceElementWithSource(replace, req.responseText); - else - { - var frag = document.createElement("div"); - frag.innerHTML = req.responseText; - iui.insertPages(frag.childNodes, bw); - } - if (cb) - setTimeout(cb, 1000, true); - } - }; - - if (args) - { - req.open(method || "GET", href, true); - req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - req.setRequestHeader("Content-Length", args.length); - req.send(args.join("&")); - } - else - { - req.open(method || "GET", href, true); - req.send(null); - } - }, - - insertPages: function(nodes, bw) - { - var targetPage; - for (var i = 0; i < nodes.length; ++i) - { - var child = nodes[i]; - if (child.nodeType == 1) - { - if (!child.id) - child.id = "__" + (++newPageCount) + "__"; - - var clone = $(child.id); - if (clone) - clone.parentNode.replaceChild(child, clone); - else - document.body.appendChild(child); - - if (child.getAttribute("selected") == "true" || !targetPage) - targetPage = child; - - --i; - } - } - - if (targetPage) - iui.showPage(targetPage, bw); - }, - - getSelectedPage: function() - { - for (var child = document.body.firstChild; child; child = child.nextSibling) - { - if (child.nodeType == 1 && child.getAttribute("selected") == "true") - return child; - } - }, - isNativeUrl: function(href) - { - for(var i = 0; i < iui.nativeUrlPatterns.length; i++) - { - if(href.match(iui.nativeUrlPatterns[i])) return true; - } - return false; - }, - nativeUrlPatterns: [ - new RegExp("^http:\/\/maps.google.com\/maps\?"), - new RegExp("^mailto:"), - new RegExp("^tel:"), - new RegExp("^http:\/\/www.youtube.com\/watch\\?v="), - new RegExp("^http:\/\/www.youtube.com\/v\/"), - new RegExp("^javascript:"), - - ] -}; - -// ************************************************************************************************* - -addEventListener("load", function(event) -{ - var page = iui.getSelectedPage(); - var locPage = getPageFromLoc(); - - if (page) - iui.showPage(page); - - if (locPage && (locPage != page)) - iui.showPage(locPage); - - setTimeout(preloadImages, 0); - if (typeof window.onorientationchange == "object") - { - window.onorientationchange=orientChangeHandler; - hasOrientationEvent = true; - setTimeout(orientChangeHandler, 0); - } - setTimeout(checkOrientAndLocation, 0); - checkTimer = setInterval(checkOrientAndLocation, 300); -}, false); - -addEventListener("unload", function(event) -{ - return; -}, false); - -addEventListener("click", function(event) -{ - var link = findParent(event.target, "a"); - if (link) - { - function unselect() { link.removeAttribute("selected"); } - - if (link.href && link.hash && link.hash != "#" && !link.target) - { - link.setAttribute("selected", "true"); - iui.showPage($(link.hash.substr(1))); - setTimeout(unselect, 500); - } - else if (link == $("backButton")) - history.back(); - else if (link.getAttribute("type") == "submit") - { - var form = findParent(link, "form"); - if (form.target == "_self") - { - form.submit(); - return; // return so we don't preventDefault - } - submitForm(form); - } - else if (link.getAttribute("type") == "cancel") - cancelDialog(findParent(link, "form")); - else if (link.target == "_replace") - { - link.setAttribute("selected", "progress"); - iui.showPageByHref(link.href, null, null, link, unselect); - } - else if (iui.isNativeUrl(link.href)) - { - return; - } - else if (link.target == "_webapp") - { - location.href = link.href; - } - else if (!link.target) - { - link.setAttribute("selected", "progress"); - var bw = link.getAttribute("backwards"); - iui.showPageByHref(link.href, null, null, null, unselect, bw); - } - else - return; - - event.preventDefault(); - } -}, true); - -addEventListener("click", function(event) -{ - var div = findParent(event.target, "div"); - if (div && hasClass(div, "toggle")) - { - div.setAttribute("toggled", div.getAttribute("toggled") != "true"); - event.preventDefault(); - } -}, true); - -function getPageFromLoc() -{ - var page; - var result = location.hash.match(/#_([^\?_]+)/); - if (result) - page = result[1]; - if (page) - page = $(page); - return page; -} - -function orientChangeHandler() -{ - var orientation=window.orientation; - switch(orientation) - { - case 0: - setOrientation(portraitVal); - break; - - case 90: - case -90: - setOrientation(landscapeVal); - break; - } -} - - -function checkOrientAndLocation() -{ - if (!hasOrientationEvent) - { - if (window.innerWidth != currentWidth) - { - currentWidth = window.innerWidth; - var orient = currentWidth == 320 ? portraitVal : landscapeVal; - setOrientation(orient); - } - } - - if (location.hash != currentHash) - { - var pageId = location.hash.substr(hashPrefix.length); - iui.showPageById(pageId); - } -} - -function setOrientation(orient) -{ - document.body.setAttribute("orient", orient); - setTimeout(scrollTo, 100, 0, 1); -} - -function showDialog(page) -{ - currentDialog = page; - page.setAttribute("selected", "true"); - - if (hasClass(page, "dialog") && !page.target) - showForm(page); -} - -function showForm(form) -{ - form.onsubmit = function(event) - { - event.preventDefault(); - submitForm(form); - }; - - form.onclick = function(event) - { - if (event.target == form && hasClass(form, "dialog")) - cancelDialog(form); - }; -} - -function cancelDialog(form) -{ - form.removeAttribute("selected"); -} - -function updatePage(page, fromPage) -{ - if (!page.id) - page.id = "__" + (++newPageCount) + "__"; - - location.hash = currentHash = hashPrefix + page.id; - pageHistory.push(page.id); - - var pageTitle = $("pageTitle"); - if (page.title) - pageTitle.innerHTML = page.title; - - if (page.localName.toLowerCase() == "form" && !page.target) - showForm(page); - - var backButton = $("backButton"); - if (backButton) - { - var prevPage = $(pageHistory[pageHistory.length-2]); - if (prevPage && !page.getAttribute("hideBackButton")) - { - backButton.style.display = "inline"; - backButton.innerHTML = prevPage.title ? prevPage.title : "Back"; - } - else - backButton.style.display = "none"; - } - - var backButton = $("myBackButton"); - if (backButton) - { - var label = page.getAttribute("myBackLabel"); - - if (label) - { - backButton.style.display = "inline"; - backButton.innerHTML = label; - backButton.href = page.getAttribute("myBackHref"); - //backButton.target = page.getAttribute("myBackTarget"); - target = page.getAttribute("myBackTarget"); - if (target == null) - backButton.target = ''; - else - backButton.target = target; - backButton.setAttribute("backwards", "true"); - } - else - backButton.style.display = "none"; - } - -} - -function slidePages(fromPage, toPage, backwards) -{ - var axis = (backwards ? fromPage : toPage).getAttribute("axis"); - - clearInterval(checkTimer); - - if (canDoSlideAnim() && axis != 'y') - { - slide2(fromPage, toPage, backwards, slideDone); - } - else - { - slide1(fromPage, toPage, backwards, axis, slideDone); - } - - function slideDone() - { - if (!hasClass(toPage, "dialog")) - fromPage.removeAttribute("selected"); - checkTimer = setInterval(checkOrientAndLocation, 300); - setTimeout(updatePage, 0, toPage, fromPage); - fromPage.removeEventListener('webkitTransitionEnd', slideDone, false); - } -} - -function canDoSlideAnim() -{ - return (iui.animOn) && (typeof WebKitCSSMatrix == "object"); -} - -function slide1(fromPage, toPage, backwards, axis, cb) -{ - if (axis == "y") - (backwards ? fromPage : toPage).style.top = "100%"; - else - toPage.style.left = "100%"; - - scrollTo(0, 1); - toPage.setAttribute("selected", "true"); - var percent = 100; - slide(); - var timer = setInterval(slide, slideInterval); - - function slide() - { - percent -= slideSpeed; - if (percent <= 0) - { - percent = 0; - clearInterval(timer); - cb(); - } - - if (axis == "y") - { - backwards - ? fromPage.style.top = (100-percent) + "%" - : toPage.style.top = percent + "%"; - } - else - { - fromPage.style.left = (backwards ? (100-percent) : (percent-100)) + "%"; - toPage.style.left = (backwards ? -percent : percent) + "%"; - } - } -} - - -function slide2(fromPage, toPage, backwards, cb) -{ - toPage.style.webkitTransitionDuration = '0ms'; // Turn off transitions to set toPage start offset - // fromStart is always 0% and toEnd is always 0% - // iPhone won't take % width on toPage - var toStart = 'translateX(' + (backwards ? '-' : '') + window.innerWidth + 'px)'; - var fromEnd = 'translateX(' + (backwards ? '100%' : '-100%') + ')'; - toPage.style.webkitTransform = toStart; - toPage.setAttribute("selected", "true"); - toPage.style.webkitTransitionDuration = ''; // Turn transitions back on - function startTrans() - { - fromPage.style.webkitTransform = fromEnd; - toPage.style.webkitTransform = 'translateX(0%)'; //toEnd - } - fromPage.addEventListener('webkitTransitionEnd', cb, false); - setTimeout(startTrans, 0); -} - -function preloadImages() -{ - var preloader = document.createElement("div"); - preloader.id = "preloader"; - document.body.appendChild(preloader); -} - -function submitForm(form) -{ - iui.showPageByHref(form.action || "POST", encodeForm(form), form.method); -} - -function encodeForm(form) -{ - function encode(inputs) - { - for (var i = 0; i < inputs.length; ++i) - { - if (inputs[i].name) - args.push(inputs[i].name + "=" + escape(inputs[i].value)); - } - } - - var args = []; - encode(form.getElementsByTagName("input")); - encode(form.getElementsByTagName("textarea")); - encode(form.getElementsByTagName("select")); - return args; -} - -function findParent(node, localName) -{ - while (node && (node.nodeType != 1 || node.localName.toLowerCase() != localName)) - node = node.parentNode; - return node; -} - -function hasClass(self, name) -{ - var re = new RegExp("(^|\\s)"+name+"($|\\s)"); - return re.exec(self.getAttribute("class")) != null; -} - -function replaceElementWithSource(replace, source) -{ - var page = replace.parentNode; - var parent = replace; - while (page.parentNode != document.body) - { - page = page.parentNode; - parent = parent.parentNode; - } - - var frag = document.createElement(parent.localName); - frag.innerHTML = source; - - page.removeChild(parent); - - while (frag.firstChild) - page.appendChild(frag.firstChild); -} - -function $(id) { return document.getElementById(id); } -function ddd() { console.log.apply(console, arguments); } - -})(); diff --git a/plugins/mobile/iui/iuix.css b/plugins/mobile/iui/iuix.css deleted file mode 100644 index 1df7e8a00..000000000 --- a/plugins/mobile/iui/iuix.css +++ /dev/null @@ -1 +0,0 @@ -body{margin:0;font-family:Helvetica;background:#FFF;color:#000;overflow-x:hidden;-webkit-user-select:none;-webkit-text-size-adjust:none;}body>*:not(.toolbar){display:none;position:absolute;margin:0;padding:0;left:0;top:45px;width:100%;min-height:372px;-webkit-transition-duration:300ms;-webkit-transition-property:-webkit-transform;-webkit-transform:translateX(0%);}body[orient="landscape"]>*:not(.toolbar){min-height:268px;}body>*[selected="true"]{display:block;}a[selected],a:active{background-color:#194fdb!important;background-image:url(listArrowSel.png),url(selection.png)!important;background-repeat:no-repeat,repeat-x;background-position:right center,left top;color:#FFF!important;}a[selected="progress"]{background-image:url(loading.gif),url(selection.png)!important;}body>.toolbar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-bottom:1px solid #2d3642;border-top:1px solid #6d84a2;padding:10px;height:45px;background:url(toolbar.png) #6d84a2 repeat-x;}.toolbar>h1{position:absolute;overflow:hidden;left:50%;margin:1px 0 0 -75px;height:45px;font-size:20px;width:150px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#FFF;}body[orient="landscape"]>.toolbar>h1{margin-left:-125px;width:250px;}.button{position:absolute;overflow:hidden;top:8px;right:6px;margin:0;border-width:0 5px;padding:0 3px;width:auto;height:30px;line-height:30px;font-family:inherit;font-size:12px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.6) 0 -1px 0;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;background:none;-webkit-border-image:url(toolButton.png) 0 5 0 5;}.blueButton{-webkit-border-image:url(blueButton.png) 0 5 0 5;border-width:0 5px;}.leftButton{left:6px;right:auto;}#backButton{display:none;left:6px;right:auto;padding:0;max-width:55px;border-width:0 8px 0 14px;-webkit-border-image:url(backButton.png) 0 8 0 14;}.whiteButton,.redButton,.grayButton{display:block;border-width:0 12px;padding:10px;text-align:center;font-size:20px;font-weight:bold;text-decoration:inherit;color:inherit;}.whiteButton{-webkit-border-image:url(whiteButton.png) 0 12 0 12;text-shadow:rgba(255,255,255,0.7) 0 1px 0;}.redButton{-webkit-border-image:url(redButton.png) 0 12 0 12;color:#fff;text-shadow:#7a0001 0 -1px 0;}.grayButton{-webkit-border-image:url(grayButton.png) 0 12 0 12;color:#FFF;}body>ul>li{position:relative;margin:0;border-bottom:1px solid #E0E0E0;padding:8px 0 8px 10px;font-size:20px;font-weight:bold;list-style:none;}body>ul>li.group{position:relative;top:-1px;margin-bottom:-2px;border-top:1px solid #7d7d7d;border-bottom:1px solid #999;padding:1px 10px;background:url(listGroup.png) repeat-x;font-size:17px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 1px 0;color:#FFF;}body>ul>li.group:first-child{top:0;border-top:none;}body>ul>li>a{display:block;margin:-8px 0 -8px -10px;padding:8px 32px 8px 10px;text-decoration:none;color:inherit;background:url(listArrow.png) no-repeat right center;}a[target="_replace"]{box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:25px;padding-bottom:25px;font-size:18px;color:cornflowerblue;background-color:#FFF;background-image:none;}body>.dialog{top:0;width:100%;min-height:417px;z-index:2;background:rgba(0,0,0,0.8);padding:0;text-align:right;}.dialog>fieldset{box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:0;border:none;border-top:1px solid #6d84a2;padding:10px 6px;background:url(toolbar.png) #7388a5 repeat-x;}.dialog>fieldset>h1{margin:0 10px 0 10px;padding:0;font-size:20px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;}.dialog>fieldset>label{position:absolute;margin:16px 0 0 6px;font-size:14px;color:#999;}input:not(input[type|=radio]):not(input[type|=checkbox]){box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:8px 0 0 0;padding:6px 6px 6px 44px;font-size:16px;font-weight:normal;}body>.panel{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:10px;background:#c8c8c8 url(pinstripes.png);}.panel>fieldset{position:relative;margin:0 0 20px 0;padding:0;background:#FFF;-webkit-border-radius:10px;-moz-border-radius:10px;border:1px solid #999;text-align:right;font-size:16px;}.row{position:relative;min-height:42px;border-bottom:1px solid #999;-webkit-border-radius:0;text-align:right;}fieldset>.row:last-child{border-bottom:none!important;}.row>input:not(input[type|=radio]):not(input[type|=checkbox]){box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;border:none;padding:12px 10px 0 110px;height:42px;background:none;}.row>input[type|=radio],.row>input[type|=checkbox]{margin:7px 7px 0 0;height:25px;width:25px;}.row>label{position:absolute;margin:0 0 0 14px;line-height:42px;font-weight:bold;}.row>span{position:absolute;padding:12px 10px 0 110px;margin:0;}.row>.toggle{position:absolute;top:6px;right:6px;width:100px;height:28px;}.toggle{border:1px solid #888;-webkit-border-radius:6px;background:#FFF url(toggle.png) repeat-x;font-size:19px;font-weight:bold;line-height:30px;}.toggle[toggled="true"]{border:1px solid #143fae;background:#194fdb url(toggleOn.png) repeat-x;}.toggleOn{display:none;position:absolute;width:60px;text-align:center;left:0;top:0;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;}.toggleOff{position:absolute;width:60px;text-align:center;right:0;top:0;color:#666;}.toggle[toggled="true"]>.toggleOn{display:block;}.toggle[toggled="true"]>.toggleOff{display:none;}.thumb{position:absolute;top:-1px;left:-1px;width:40px;height:28px;border:1px solid #888;-webkit-border-radius:6px;background:#fff url(thumb.png) repeat-x;}.toggle[toggled="true"]>.thumb{left:auto;right:-1px;}.panel>h2{margin:0 0 8px 14px;font-size:inherit;font-weight:bold;color:#4d4d70;text-shadow:rgba(255,255,255,0.75) 2px 2px 0;}#preloader{display:none;background-image:url(loading.gif),url(selection.png),url(blueButton.png),url(listArrowSel.png),url(listGroup.png);} \ No newline at end of file diff --git a/plugins/mobile/iui/iuix.js b/plugins/mobile/iui/iuix.js deleted file mode 100644 index 09d2eb993..000000000 --- a/plugins/mobile/iui/iuix.js +++ /dev/null @@ -1 +0,0 @@ -(function(){var _1=20;var _2=0;var _3=null;var _4=null;var _5=0;var _6=location.hash;var _7="#_";var _8=[];var _9=0;var _a;var _b=false;var _c="portrait";var _d="landscape";window.iui={animOn:true,showPage:function(_e,_f){if(_e){if(_4){_4.removeAttribute("selected");_4=null;}if(hasClass(_e,"dialog")){showDialog(_e);}else{var _10=_3;_3=_e;if(_10){setTimeout(slidePages,0,_10,_e,_f);}else{updatePage(_e,_10);}}}},showPageById:function(_11){var _12=$(_11);if(_12){var _13=_8.indexOf(_11);var _14=_13!=-1;if(_14){_8.splice(_13,_8.length);}iui.showPage(_12,_14);}},showPageByHref:function(_15,_16,_17,_18,cb){var req=new XMLHttpRequest();req.onerror=function(){if(cb){cb(false);}};req.onreadystatechange=function(){if(req.readyState==4){if(_18){replaceElementWithSource(_18,req.responseText);}else{var _1b=document.createElement("div");_1b.innerHTML=req.responseText;iui.insertPages(_1b.childNodes);}if(cb){setTimeout(cb,1000,true);}}};if(_16){req.open(_17||"GET",_15,true);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");req.setRequestHeader("Content-Length",_16.length);req.send(_16.join("&"));}else{req.open(_17||"GET",_15,true);req.send(null);}},insertPages:function(_1c){var _1d;for(var i=0;i<_1c.length;++i){var _1f=_1c[i];if(_1f.nodeType==1){if(!_1f.id){_1f.id="__"+(++_9)+"__";}var _20=$(_1f.id);if(_20){_20.parentNode.replaceChild(_1f,_20);}else{document.body.appendChild(_1f);}if(_1f.getAttribute("selected")=="true"||!_1d){_1d=_1f;}--i;}}if(_1d){iui.showPage(_1d);}},getSelectedPage:function(){for(var _21=document.body.firstChild;_21;_21=_21.nextSibling){if(_21.nodeType==1&&_21.getAttribute("selected")=="true"){return _21;}}},isNativeUrl:function(_22){for(var i=0;i - - - -Tiny Tiny RSS - - - - - - - - - - - - - -
    -

    - - -
    - -
    " - method="post"> - - - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - - - - - - - diff --git a/plugins/mobile/logout.php b/plugins/mobile/logout.php deleted file mode 100644 index afc411abc..000000000 --- a/plugins/mobile/logout.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/plugins/mobile/mobile-functions.php b/plugins/mobile/mobile-functions.php deleted file mode 100644 index 1e65a3c36..000000000 --- a/plugins/mobile/mobile-functions.php +++ /dev/null @@ -1,542 +0,0 @@ - 0) { - $limit_qpart = "LIMIT $limit OFFSET $offset"; - } else { - $limit_qpart = ""; - } - - $result = db_query("SELECT id, - title, - (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries - WHERE feed_id = ttrss_feeds.id AND unread = true - AND ttrss_user_entries.ref_id = ttrss_entries.id - AND owner_uid = '$owner_uid') AS unread - FROM ttrss_feeds - WHERE - ttrss_feeds.owner_uid = '$owner_uid' - ORDER BY $order_by $limit_qpart"); - - if (!$offset) print '
      '; - - - // print "
    • ".__('Actions...')."
    • "; - - $num_feeds = 0; - - while ($line = db_fetch_assoc($result)) { - $id = $line["id"]; - $unread = $line["unread"]; - - // $unread = rand(0, 100); - - if ($unread > 0) { - $line["title"] = $line["title"] . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if (mobile_feed_has_icon($id)) { - $icon_url = "../../".ICONS_URL."/$id.ico"; - } else { - $icon_url = "../../images/blank_icon.gif"; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - print "
    • " . - "". - $line["title"] . "
    • "; - } - - ++$num_feeds; - } - -/* $next_offset = $offset + $num_feeds; - - print "
    • Show more feeds...
    • "; */ - - if (!$offset) print "
    "; - - } - - function render_category($cat_id, $offset) { - $owner_uid = $_SESSION["uid"]; - - if ($cat_id >= 0) { - - if ($cat_id != 0) { - $cat_query = "cat_id = '$cat_id'"; - } else { - $cat_query = "cat_id IS NULL"; - } - - if (mobile_get_pref("SORT_FEEDS_UNREAD")) { - $order_by = "unread DESC, title"; - } else { - $order_by = "title"; - } - - $result = db_query("SELECT id, - title, - (SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries - WHERE feed_id = ttrss_feeds.id AND unread = true - AND ttrss_user_entries.ref_id = ttrss_entries.id - AND owner_uid = '$owner_uid') as unread - FROM ttrss_feeds - WHERE - ttrss_feeds.owner_uid = '$owner_uid' AND - $cat_query - ORDER BY $order_by"); - - $title = getCategoryTitle($cat_id); - - print "
      "; - - // print "
    • ".__('Actions...')."
    • "; - - while ($line = db_fetch_assoc($result)) { - $id = $line["id"]; - $unread = $line["unread"]; - - // $unread = rand(0, 100); - - if ($unread > 0) { - $line["title"] = $line["title"] . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if (mobile_feed_has_icon($id)) { - $icon_url = "../../".ICONS_URL."/$id.ico"; - } else { - $icon_url = "../../images/blank_icon.gif"; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - print "
    • " . - "". - $line["title"] . "
    • "; - } - } - - print "
    "; - } else if ($cat_id == -1) { - - $title = __('Special'); - - print "
      "; - - foreach (array(-4, -3, -1, -2, 0) as $id) { - $title = getFeedTitle($id); - $unread = getFeedUnread($id, false); - $icon = getFeedIcon($id); - - if ($unread > 0) { - $title = $title . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - print "
    • - - $title
    • "; - } - } - - print "
    "; - } else if ($cat_id == -2) { - - $title = __('Labels'); - - print "
      "; - - $result = db_query("SELECT id, caption FROM ttrss_labels2 - WHERE owner_uid = '$owner_uid'"); - - $label_data = array(); - - while ($line = db_fetch_assoc($result)) { - - $id = label_to_feed_id($line["id"]); - - $unread = getFeedUnread($id); - $title = $line["caption"]; - - if ($unread > 0) { - $title = $title . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - print "
    • - $title
    • "; - } - } - print "
    "; - } - } - - function render_categories_list($link) { - $owner_uid = $_SESSION["uid"]; - - $cat_browse = mobile_get_pref("BROWSE_CATS"); - - print '
      '; - -// print "
    • Search...
    • "; - - foreach (array(-1, -2) as $id) { - $title = getCategoryTitle($id); - $unread = getFeedUnread($id, true); - if ($unread > 0) { - $title = $title . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if ($cat_browse) - print "
    • $title
    • "; - else - print "
    • $title
    • "; - } - - $result = db_query("SELECT - ttrss_feed_categories.id, - ttrss_feed_categories.title, - COUNT(ttrss_feeds.id) AS num_feeds - FROM ttrss_feed_categories, ttrss_feeds - WHERE ttrss_feed_categories.owner_uid = $owner_uid - AND ttrss_feed_categories.id = cat_id - GROUP BY ttrss_feed_categories.id, - ttrss_feed_categories.title - ORDER BY ttrss_feed_categories.title"); - - while ($line = db_fetch_assoc($result)) { - - if ($line["num_feeds"] > 0) { - - $unread = getFeedUnread($line["id"], true); - $id = $line["id"]; - - if ($unread > 0) { - $line["title"] = $line["title"] . " ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - - if ($cat_browse) - print "
    • " . - $line["title"] . "
    • "; - else - print "
    • ". - $line["title"] . "
    • "; - } - } - } - - - $result = db_query("SELECT COUNT(*) AS nf FROM ttrss_feeds WHERE - cat_id IS NULL and owner_uid = '$owner_uid'"); - - $num_feeds = db_fetch_result($result, 0, "nf"); - - if ($num_feeds > 0) { - $unread = getFeedUnread(0, true); - $title = "Uncategorized"; - - if ($unread > 0) { - $title = "$title ($unread)"; - $class = ''; - } else { - $class = 'oldItem'; - } - - if ($unread > 0 || !mobile_get_pref("HIDE_READ")) { - if ($cat_browse) - print "
    • $title
    • "; - else - print "
    • $title
    • "; - - } - } - - print "
    "; - } - - function render_headlines_list($feed_id, $cat_id, $offset, $search, - $is_cat = false) { - - $feed_id = $feed_id; - $limit = 15; - $filter = ''; - - if (!mobile_get_pref("HIDE_READ")) - $view_mode = "all_articles"; - else - $view_mode = 'adaptive'; - - if ($search) { - $search_mode = 'this_feed'; - } else { - $search_mode = ''; - } - - $qfh_ret = queryFeedHeadlines($feed_id, $limit, - $view_mode, $is_cat, $search, $search_mode, - "score DESC, date_entered ".(mobile_get_pref('REVERSE_HEADLINES') ? 'ASC' : 'DESC'), $offset); - - $result = $qfh_ret[0]; - $feed_title = $qfh_ret[1]; - - if (!$offset) { - - print "
    - - - - -
    -

    Search

    - Cancel - Search - - - -
    -
    "; - - if ($cat_id) { - $cat_title = getCategoryTitle($cat_id); - - print "
      "; - } else { - print "
        "; - } - - print "
      • Search...
      • "; - } - - $num_headlines = 0; - - while ($line = db_fetch_assoc($result)) { - $id = $line["id"]; - $real_feed_id = $line["feed_id"]; - - if (sql_bool_to_bool($line["unread"])) { - $class = ''; - } else { - $class = 'oldItem'; - } - - if (mobile_feed_has_icon($real_feed_id)) { - $icon_url = "../../".ICONS_URL."/$real_feed_id.ico"; - } else { - $icon_url = "../../images/blank_icon.gif"; - } - - print "
      • - "; - print $line["title"]; - print "
      • "; - - ++$num_headlines; - - } - - if ($num_headlines == 0 && $search) { - $articles_url = "feed.php?id=$feed_id&cat=$cat_id&skip=$next_offset"; - - print "
      • " . __("Nothing found (click to reload feed).") . "
      • "; - - } - -// print "Next $limit articles..."; - - $next_offset = $offset + $num_headlines; - $num_unread = getFeedUnread($feed_id, $is_cat); - - /* FIXME needs normal implementation */ - - if ($num_headlines > 0 && ($num_unread == 0 || $num_unread > $next_offset)) { - - if ($is_cat) { - $articles_url = "feed.php?id=$feed_id&skip=$next_offset". - "&search=$search&is_cat=true"; - } else { - $articles_url = "feed.php?id=$feed_id&cat=$cat_id&skip=$next_offset". - "&search=$search"; - } - - print "
      • Get more articles...
      • "; - } - - if (!$offset) print "
      "; - - } - - function render_article($id, $feed_id, $cat_id, $is_cat) { - - $query = "SELECT title,link,content,feed_id,comments,int_id, - marked,unread,published, - ".SUBSTRING_FOR_DATE."(updated,1,16) as updated, - author - FROM ttrss_entries,ttrss_user_entries - WHERE id = '$id' AND ref_id = id AND owner_uid = " . - $_SESSION["uid"] ; - - $result = db_query($query); - - if (db_num_rows($result) != 0) { - - $line = db_fetch_assoc($result); - - $tmp_result = db_query("UPDATE ttrss_user_entries - SET unread = false,last_read = NOW() - WHERE ref_id = '$id' - AND owner_uid = " . $_SESSION["uid"]); - - $updated_fmt = make_local_datetime($line['updated'], false); - - $title = $line["title"]; - $article_link = $line["link"]; - - if (!$is_cat) - $feed_title = getFeedTitle($feed_id); - else - $feed_title = getCategoryTitle($feed_id); - - print "
      "; - - if ($line['feed_id'] != $feed_id) { - $real_feed_title = getFeedTitle($line['feed_id']); - $real_feed_id = $line['feed_id']; - $feed_link = "($real_feed_title)"; - } -// print "
      "; - - print "
      ($updated_fmt)
      "; - - print "

      $title $feed_link

      "; - - print "
      "; - -/* print "
      "; - print ""; - print "
      "; */ - - $is_starred = (sql_bool_to_bool($line["marked"])) ? "true" : "false"; - $is_published = (sql_bool_to_bool($line["published"])) ? "true" : "false"; - - //print "
      "; - //print ""; - //print ""; - //print "
      "; - -// print "
      "; - - $content = sanitize($line["content"]); - $content = preg_replace("/href=/i", "target=\"_blank\" href=", $content); - - if (!mobile_get_pref("SHOW_IMAGES")) { - $content = preg_replace('/]+>/is', '', $content); - } - - print "

      $content

      "; - - print ""; - - print "
      "; - - print "
      - -
      ONOFF
      -
      "; - - print "
      - -
      ONOFF
      -
      "; - - print "
      - -
      ONOFF
      -
      "; - - - print "
      "; - - print "
      "; - - } - } -?> diff --git a/plugins/mobile/mobile.css b/plugins/mobile/mobile.css deleted file mode 100644 index 8068e3d38..000000000 --- a/plugins/mobile/mobile.css +++ /dev/null @@ -1,38 +0,0 @@ -div.nav { - height: 40px; - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - background-color: #ffffff; - border: 1px solid #999999; - text-align: center; - margin-bottom: 1em; -} -div.nav label { - line-height: 40px; - color: black; - font-weight: bold; -} -div.nav .button { - position: static; - margin: 5px 10px; - -webkit-border-image: url(../lib/iui/whiteButton.png) 0 12 0 12; - text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0; - color: black; - cursor: pointer; /* On a touch screen ? */ -} -div.nav .button.left { - float: left; -} -div.nav .button.right { - float: right; -} - -ul li a.read { - color: #666666; -} - -ul li span.browse { - color : #909090; - text-align : right; - float : right; -} diff --git a/plugins/mobile/mobile.js b/plugins/mobile/mobile.js deleted file mode 100644 index 3fed3a1d7..000000000 --- a/plugins/mobile/mobile.js +++ /dev/null @@ -1,163 +0,0 @@ -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) { - 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 - -
      - -
      - -
      - -
      ">
      -
      - -
      - -
      ">
      -
      - - -
      - -
      ">
      -
      - -
      - -
      ">
      -
      - -
      - -
      ">
      -
      - -
      - -
      ">
      -
      - -
      -- cgit v1.2.3-54-g00ecf