mobile: fix page to page navigation

This commit is contained in:
Andrew Dolgov 2009-12-17 20:35:49 +03:00
parent ea520dd6ac
commit 3e0923463f
5 changed files with 111 additions and 62 deletions

View file

@ -203,7 +203,7 @@ addEventListener("click", function(event)
iui.showPage($(link.hash.substr(1))); iui.showPage($(link.hash.substr(1)));
setTimeout(unselect, 500); setTimeout(unselect, 500);
} }
else if (link == $("backButton")) { if (link == $("backButton")) {
history.back(); history.back();
} else if (link.getAttribute("type") == "submit") } else if (link.getAttribute("type") == "submit")
{ {
@ -233,7 +233,10 @@ addEventListener("click", function(event)
else if (!link.target) else if (!link.target)
{ {
link.setAttribute("selected", "progress"); link.setAttribute("selected", "progress");
iui.showPageByHref(link.href, null, null, null, unselect);
var backwards = link.getAttribute("backwards");
iui.showPageByHref(link.href, null, null, null, unselect, backwards);
} }
else else
return; return;
@ -361,6 +364,25 @@ function updatePage(page, fromPage)
else else
backButton.style.display = "none"; 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");
backButton.setAttribute("backwards", "true");
}
else
backButton.style.display = "none";
}
} }
function slidePages(fromPage, toPage, backwards) function slidePages(fromPage, toPage, backwards)

View file

@ -22,7 +22,8 @@
$id = db_escape_string($_REQUEST["id"]); $id = db_escape_string($_REQUEST["id"]);
$feed_id = db_escape_string($_REQUEST["feed"]); $feed_id = db_escape_string($_REQUEST["feed"]);
$cat_id = db_escape_string($_REQUEST["cat"]);
render_article($link, $id, $feed_id); render_article($link, $id, $feed_id, $cat_id);
?> ?>

View file

@ -20,8 +20,9 @@
login_sequence($link, true); login_sequence($link, true);
$feed = db_escape_string($_REQUEST["id"]); $feed_id = db_escape_string($_REQUEST["id"]);
$cat_id = db_escape_string($_REQUEST["cat"]);
render_headlines_list($link, $feed); render_headlines_list($link, $feed_id, $cat_id);
?> ?>

View file

@ -33,15 +33,16 @@
$title = getCategoryTitle($link, $cat_id); $title = getCategoryTitle($link, $cat_id);
print "<ul id='cat-$cat_id' title='$title'>"; print "<ul id='cat-$cat_id' title='$title' myBackLabel='Feeds'
myBackHref='index.php' myBackTarget='_self'>";
print "<li><a href='#cat-actions'>".__('Actions...')."</a></li>"; // print "<li><a href='#cat-actions'>".__('Actions...')."</a></li>";
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
$id = $line["id"]; $id = $line["id"];
$unread = $line["unread"]; $unread = $line["unread"];
$unread = rand(0, 100); // $unread = rand(0, 100);
if ($unread > 0) { if ($unread > 0) {
$line["title"] = $line["title"] . " ($unread)"; $line["title"] = $line["title"] . " ($unread)";
@ -56,7 +57,7 @@
$icon_url = "../images/blank_icon.gif"; $icon_url = "../images/blank_icon.gif";
} }
print "<li class='$class'><a href='feed.php?id=$id'>" . print "<li class='$class'><a href='feed.php?id=$id&cat=$cat_id'>" .
"<img class='tinyIcon' src='$icon_url'/>". "<img class='tinyIcon' src='$icon_url'/>".
$line["title"] . "</a></li>"; $line["title"] . "</a></li>";
} }
@ -164,12 +165,12 @@
print "</ul>"; print "</ul>";
} }
function render_headlines_list($link, $feed_id, $is_cat = false) { function render_headlines_list($link, $feed_id, $cat_id) {
$feed_id = $feed_id; $feed_id = $feed_id;
$limit = 30; $limit = 30;
$filter = ''; $filter = '';
$is_cat = $is_cat; $is_cat = false;
$view_mode = 'adaptive'; $view_mode = 'adaptive';
/* do not rely on params below */ /* do not rely on params below */
@ -184,7 +185,10 @@
$result = $qfh_ret[0]; $result = $qfh_ret[0];
$feed_title = $qfh_ret[1]; $feed_title = $qfh_ret[1];
print "<ul id=\"feed-$feed_id\" title=\"$feed_title\" selected=\"true\">"; $cat_title = getCategoryTitle($link, $cat_id);
print "<ul id=\"feed-$feed_id\" title=\"$feed_title\" selected=\"true\"
myBackLabel='$cat_title' myBackHref='cat.php?id=$cat_id'>";
while ($line = db_fetch_assoc($result)) { while ($line = db_fetch_assoc($result)) {
$id = $line["id"]; $id = $line["id"];
@ -195,7 +199,8 @@
$class = 'oldItem'; $class = 'oldItem';
} }
print "<li class='$class'><a href='article.php?id=$id&feed=$feed_id'>"; print "<li class='$class'>
<a href='article.php?id=$id&feed=$feed_id&cat=$cat_id'>";
print $line["title"]; print $line["title"];
print "</a></li>"; print "</a></li>";
@ -205,7 +210,7 @@
} }
function render_article($link, $id, $feed_id) { function render_article($link, $id, $feed_id, $cat_id) {
$query = "SELECT title,link,content,feed_id,comments,int_id, $query = "SELECT title,link,content,feed_id,comments,int_id,
marked,unread,published, marked,unread,published,
@ -217,56 +222,67 @@
$result = db_query($link, $query); $result = db_query($link, $query);
$line = db_fetch_assoc($result); if (db_num_rows($result) != 0) {
$line = db_fetch_assoc($result);
$tmp_result = db_query($link, "UPDATE ttrss_user_entries
SET unread = false,last_read = NOW()
WHERE ref_id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
$updated_fmt = smart_date_time(strtotime($line["updated"]));
} else {
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
$updated_fmt = date($short_date, strtotime($line["updated"]));
}
$title = $line["title"];
$article_link = $line["link"];
$feed_title = getFeedTitle($link, $feed_id, false);
print "<div class=\"panel\" id=\"article-$id\" title=\"$title\"
selected=\"true\"
myBackLabel='$feed_title' myBackHref='feed.php?id=$feed_id&cat=$cat_id'>";
// print "<h2><a target='_blank' href='$link'>$title</a></h2>";
print "<fieldset>";
print "<div class=\"row\">";
print "<label id='title'><a target='_blank' href='$article_link'>$title</a></label>";
print "</div>";
$is_starred = (sql_bool_to_bool($line["marked"])) ? "true" : "false";
$is_published = (sql_bool_to_bool($line["published"])) ? "true" : "false";
print "<div class=\"row\">
<label>Starred</label>
<div class=\"toggle\" onclick=\"toggleMarked($id, this)\" toggled=\"$is_starred\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
</div>";
print "<div class=\"row\">
<label>Published</label>
<div class=\"toggle\" onclick=\"togglePublished($id, this)\" toggled=\"$is_published\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
</div>";
print "<div class=\"row\">";
print "<label id='updated'>Updated:</label>";
print "<input enabled='false' name='updated' disabled value='$updated_fmt'/>";
print "</div>";
print "</fieldset>";
print "<p>";
print $line["content"];
print "</p>";
print "</div>";
if (get_pref($link, 'HEADLINES_SMART_DATE')) {
$updated_fmt = smart_date_time(strtotime($line["updated"]));
} else {
$short_date = get_pref($link, 'SHORT_DATE_FORMAT');
$updated_fmt = date($short_date, strtotime($line["updated"]));
} }
$title = $line["title"];
$link = $line["link"];
print "<div class=\"panel\" id=\"article-$id\" title=\"$title\"
selected=\"true\">";
// print "<h2><a target='_blank' href='$link'>$title</a></h2>";
print "<fieldset>";
print "<div class=\"row\">";
print "<label id='title'><a target='_blank' href='$link'>$title</a></label>";
print "</div>";
$is_starred = (sql_bool_to_bool($line["marked"])) ? "true" : "false";
$is_published = (sql_bool_to_bool($line["published"])) ? "true" : "false";
print "<div class=\"row\">
<label>Starred</label>
<div class=\"toggle\" onclick=\"toggleMarked($id, this)\" toggled=\"$is_starred\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
</div>";
print "<div class=\"row\">
<label>Published</label>
<div class=\"toggle\" onclick=\"togglePublished($id, this)\" toggled=\"$is_published\"><span class=\"thumb\"></span><span class=\"toggleOn\">ON</span><span class=\"toggleOff\">OFF</span></div>
</div>";
print "<div class=\"row\">";
print "<label id='updated'>Updated:</label>";
print "<input enabled='false' name='updated' disabled value='$updated_fmt'/>";
print "</div>";
print "</fieldset>";
print "<p>";
print $line["content"];
print "</p>";
print "</div>";
} }
?> ?>

View file

@ -42,6 +42,16 @@
color : gray; color : gray;
} }
#myBackButton {
display: none;
left: 6px;
right: auto;
padding: 0;
max-width: 55px;
border-width: 0 8px 0 14px;
-webkit-border-image: url(../lib/iui/backButton.png) 0 8 0 14;
}
img.tinyIcon { img.tinyIcon {
max-width : 16px; max-width : 16px;
max-height : 16px; max-height : 16px;
@ -58,13 +68,12 @@
function togglePublished(id, elem) { function togglePublished(id, elem) {
alert(id + " => " + elem.getAttribute('toggled')); alert(id + " => " + elem.getAttribute('toggled'));
} }
</script> </script>
<body> <body>
<div class="toolbar"> <div class="toolbar">
<h1 id="pageTitle"></h1> <h1 id="pageTitle"></h1>
<a id="backButton" class="button" href="#"></a> <a id="myBackButton" class="button" href="#"></a>
<a class="button" target="_self" href="logout.php">Logout</a> <a class="button" target="_self" href="logout.php">Logout</a>
</div> </div>