summaryrefslogtreecommitdiff
path: root/mobile
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2009-12-18 13:01:02 +0300
committerAndrew Dolgov <[email protected]>2009-12-18 13:01:02 +0300
commitf0a0c1ff3d81f8a58459ea500968748d268a6e91 (patch)
tree71b508a9a7be9a596b73c295ac22d375a4fe92fa /mobile
parent74357409fa7ba33f11fee41aa0af1de14830ce9d (diff)
mobile: add preferences
Diffstat (limited to 'mobile')
-rw-r--r--mobile/backend.php6
-rw-r--r--mobile/functions.php95
-rw-r--r--mobile/index.php2
-rw-r--r--mobile/mobile.js19
-rw-r--r--mobile/prefs.php43
5 files changed, 134 insertions, 31 deletions
diff --git a/mobile/backend.php b/mobile/backend.php
index c6b75c51b..85018c580 100644
--- a/mobile/backend.php
+++ b/mobile/backend.php
@@ -35,6 +35,12 @@
publishArticlesById($link, array($id), $cmode);
break;
+ case "setPref":
+ $id = db_escape_string($_REQUEST["id"]);
+ $value = db_escape_string($_REQUEST["to"]);
+ mobile_set_pref($link, $id, $value);
+ print_r($_SESSION);
+ break;
default:
print json_encode(array("error", "UNKNOWN_METHOD"));
break;
diff --git a/mobile/functions.php b/mobile/functions.php
index 1806e0eda..ff0510dcd 100644
--- a/mobile/functions.php
+++ b/mobile/functions.php
@@ -1,6 +1,21 @@
<?php
define('TTRSS_SESSION_NAME', 'ttrss_m_sid');
+ /* TODO replace with interface to db-prefs */
+
+ function mobile_pref_toggled($link, $id) {
+ if ($_SESSION["mobile-prefs"][$id]) return "true";
+
+ }
+
+ function mobile_get_pref($link, $id) {
+ return $_SESSION["mobile-prefs"][$id];
+ }
+
+ function mobile_set_pref($link, $id, $value) {
+ $_SESSION["mobile-prefs"][$id] = $value;
+ }
+
function mobile_feed_has_icon($id) {
$filename = "../".ICONS_DIR."/$id.ico";
@@ -10,6 +25,12 @@
function render_flat_feed_list($link) {
$owner_uid = $_SESSION["uid"];
+ if (mobile_get_pref($link, "SORT_FEEDS_UNREAD")) {
+ $order_by = "unread DESC, title";
+ } else {
+ $order_by = "title";
+ }
+
$result = db_query($link, "SELECT id,
title,
(SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
@@ -21,9 +42,10 @@
ttrss_feeds.hidden = false AND
ttrss_feeds.owner_uid = '$owner_uid' AND
parent_feed IS NULL
- ORDER BY unread DESC,title");
+ ORDER BY $order_by");
- print '<ul id="home" title="Feeds" selected="true">';
+ print '<ul id="home" title="Feeds" selected="true"
+ myBackLabel="Logout" myBackHref="logout.php" myBackTarget="_self">';
// print "<li><a href='#cat-actions'>".__('Actions...')."</a></li>";
@@ -45,10 +67,12 @@
} else {
$icon_url = "../images/blank_icon.gif";
}
-
- print "<li class='$class'><a href='feed.php?id=$id'>" .
- "<img class='tinyIcon' src='$icon_url'/>".
- $line["title"] . "</a></li>";
+
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'><a href='feed.php?id=$id'>" .
+ "<img class='tinyIcon' src='$icon_url'/>".
+ $line["title"] . "</a></li>";
+ }
}
print "</ul>";
@@ -67,7 +91,13 @@
} else {
$cat_query = "cat_id IS NULL";
}
-
+
+ if (mobile_get_pref($link, "SORT_FEEDS_UNREAD")) {
+ $order_by = "unread DESC, title";
+ } else {
+ $order_by = "title";
+ }
+
$result = db_query($link, "SELECT id,
title,
(SELECT COUNT(id) FROM ttrss_entries,ttrss_user_entries
@@ -80,7 +110,7 @@
ttrss_feeds.owner_uid = '$owner_uid' AND
parent_feed IS NULL AND
$cat_query
- ORDER BY unread DESC,title");
+ ORDER BY $order_by");
$title = getCategoryTitle($link, $cat_id);
@@ -107,10 +137,12 @@
} else {
$icon_url = "../images/blank_icon.gif";
}
-
- print "<li class='$class'><a href='feed.php?id=$id&cat=$cat_id'>" .
- "<img class='tinyIcon' src='$icon_url'/>".
- $line["title"] . "</a></li>";
+
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'><a href='feed.php?id=$id&cat=$cat_id'>" .
+ "<img class='tinyIcon' src='$icon_url'/>".
+ $line["title"] . "</a></li>";
+ }
}
print "</ul>";
@@ -132,8 +164,10 @@
$class = 'oldItem';
}
- print "<li class='$class'>
- <a href='feed.php?id=$id&cat_id=-1'>$title</a></li>";
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'>
+ <a href='feed.php?id=$id&cat_id=-1'>$title</a></li>";
+ }
}
print "</ul>";
@@ -163,9 +197,10 @@
$class = 'oldItem';
}
- print "<li class='$class'>
- <a href='feed.php?id=$id&cat=-2'>$title</a></li>";
-
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'>
+ <a href='feed.php?id=$id&cat=-2'>$title</a></li>";
+ }
}
print "</ul>";
}
@@ -175,7 +210,8 @@
$owner_uid = $_SESSION["uid"];
- print '<ul id="home" title="Feeds" selected="true">';
+ print '<ul id="home" title="'.__('Categories').'" selected="true"
+ myBackLabel="Logout" myBackHref="logout.php" myBackTarget="_self">';
foreach (array(-1, -2) as $id) {
$title = getCategoryTitle($link, $id);
@@ -202,8 +238,6 @@
ttrss_feed_categories.title
ORDER BY ttrss_feed_categories.title");
- $cat_ids = array();
-
while ($line = db_fetch_assoc($result)) {
if ($line["num_feeds"] > 0) {
@@ -217,13 +251,11 @@
} else {
$class = 'oldItem';
}
-
-
- print "<li class='$class'><a href='cat.php?id=$id'>" .
- $line["title"] . "</a></li>";
-
- array_push($cat_ids, $id);
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'><a href='cat.php?id=$id'>" .
+ $line["title"] . "</a></li>";
+ }
}
}
@@ -244,9 +276,9 @@
$class = 'oldItem';
}
- array_push($cat_ids, 0);
-
- print "<li class='$class'><a href='cat.php?id=0'>$title</a></li>";
+ if ($unread > 0 || !mobile_get_pref($link, "HIDE_READ")) {
+ print "<li class='$class'><a href='cat.php?id=0'>$title</a></li>";
+ }
}
print "</ul>";
@@ -367,6 +399,10 @@
$content = sanitize_rss($link, $line["content"]);
$content = preg_replace("/href=/i", "target=\"_blank\" href=", $content);
+ if (!mobile_get_pref($link, "SHOW_IMAGES")) {
+ $content = preg_replace('/<img[^>]+>/is', '', $content);
+ }
+
print "<p>$content</p>";
print "<fieldset>";
@@ -386,6 +422,5 @@
print "</div>";
}
-
}
?>
diff --git a/mobile/index.php b/mobile/index.php
index 3b933f96d..a530d0e8b 100644
--- a/mobile/index.php
+++ b/mobile/index.php
@@ -65,7 +65,7 @@
<div class="toolbar">
<h1 id="pageTitle"></h1>
<a id="myBackButton" class="button" href="#"></a>
- <a class="button" target="_self" href="logout.php">Logout</a>
+ <a class="button" href="prefs.php">Preferences</a>
</div>
<?php
diff --git a/mobile/mobile.js b/mobile/mobile.js
index 655987cee..669e63d09 100644
--- a/mobile/mobile.js
+++ b/mobile/mobile.js
@@ -39,3 +39,22 @@ function togglePublished(id, elem) {
}
+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) {
+ //
+ } });
+
+}
diff --git a/mobile/prefs.php b/mobile/prefs.php
new file mode 100644
index 000000000..b004b15ac
--- /dev/null
+++ b/mobile/prefs.php
@@ -0,0 +1,43 @@
+<?php
+ error_reporting(E_ERROR | E_WARNING | E_PARSE);
+
+ header('Content-Type: text/html; charset=utf-8');
+
+ define('MOBILE_VERSION', true);
+
+ require_once "../config.php";
+ require_once "functions.php";
+ require_once "../functions.php";
+
+ require_once "../sessions.php";
+
+ require_once "../version.php";
+ require_once "../db-prefs.php";
+
+ $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
+
+ init_connection($link);
+
+ login_sequence($link, true);
+?>
+
+<div class="panel" id="prefs" selected="yes" title="Preferences"
+ myBackLabel="Feeds" myBackHref="home.php">
+
+<fieldset>
+<div class="row">
+ <label>Hide read items</label>
+ <div class="toggle" id="HIDE_READ" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "HIDE_READ") ?>"><span class="thumb"></span><span class="toggleOn">ON</span><span class="toggleOff">OFF</span></div>
+</div>
+
+<div class="row">
+ <label>Sort feeds by unread</label>
+ <div class="toggle" id="SORT_FEEDS_UNREAD" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "SORT_FEEDS_UNREAD") ?>"><span class="thumb"></span><span class="toggleOn">ON</span><span class="toggleOff">OFF</span></div>
+</div>
+
+<div class="row">
+ <label>Show images</label>
+ <div class="toggle" id="SHOW_IMAGES" onclick="setPref(this)" toggled="<?php echo mobile_pref_toggled($link, "SHOW_IMAGES") ?>"><span class="thumb"></span><span class="toggleOn">ON</span><span class="toggleOff">OFF</span></div>
+</div>
+
+</fieldset>