summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2005-11-17 06:26:54 +0100
committerAndrew Dolgov <[email protected]>2005-11-17 06:26:54 +0100
commit77e9671919d21b2b1d08c9da38520ba7a40592a1 (patch)
tree76a6f5f92d3d01daf35d5702fd8e6528b71ad100
parent541492a9ce6c251588f4a14cfc8fe6fc0df3e03f (diff)
preferences editor
-rw-r--r--backend.php124
-rw-r--r--functions.php13
-rw-r--r--prefs.js2
-rw-r--r--tt-rss.css8
4 files changed, 144 insertions, 3 deletions
diff --git a/backend.php b/backend.php
index e70fc9d7e..f37c51bd8 100644
--- a/backend.php
+++ b/backend.php
@@ -1,7 +1,7 @@
<?
define(SCHEMA_VERSION, 2);
- $op = $_GET["op"];
+ $op = $_REQUEST["op"];
if ($op == "rpc" || $op == "updateAllFeeds") {
header("Content-Type: application/xml");
@@ -1504,6 +1504,128 @@
}
+ if ($op == "pref-prefs") {
+
+ $subop = $_POST["subop"];
+
+ if ($subop == "Save configuration") {
+
+ foreach (array_keys($_POST) as $pref_name) {
+
+ $pref_name = db_escape_string($pref_name);
+ $value = db_escape_string($_POST[$pref_name]);
+
+ $result = db_query($link, "SELECT type_name
+ FROM ttrss_prefs,ttrss_prefs_types
+ WHERE pref_name = '$pref_name' AND type_id = ttrss_prefs_types.id");
+
+ if (db_num_rows($result) > 0) {
+
+ $type_name = db_fetch_result($result, 0, "type_name");
+
+ if ($type_name == "bool") {
+ if ($value == 1) {
+ $value = "true";
+ } else {
+ $value = "false";
+ }
+ } else if ($type_name == "integer") {
+ $value = sprintf("%d", $value);
+ }
+
+// print "$pref_name : $type_name : $value<br>";
+
+ db_query($link, "UPDATE ttrss_prefs SET value = '$value'
+ WHERE pref_name = '$pref_name'");
+
+ }
+
+ header("Location: prefs.php");
+
+ }
+
+ } else if ($subop == "Reset to defaults") {
+
+ header("Location: prefs.php");
+
+ } else {
+
+ $result = db_query($link, "SELECT
+ pref_name,short_desc,help_text,value,type_name,
+ section_name,def_value
+ FROM ttrss_prefs,ttrss_prefs_types,ttrss_prefs_sections
+ WHERE type_id = ttrss_prefs_types.id AND
+ section_id = ttrss_prefs_sections.id
+ ORDER BY section_name,short_desc");
+
+ print "<form action=\"backend.php\" method=\"POST\">";
+
+ print "<table width=\"100%\" class=\"prefPrefsList\">";
+
+ $lnum = 0;
+
+ $active_section = "";
+
+ while ($line = db_fetch_assoc($result)) {
+
+ if ($active_section != $line["section_name"]) {
+ $active_section = $line["section_name"];
+ print "<tr><td colspan=\"3\"><h3>$active_section</h3></td></tr>";
+ print "<tr class=\"title\">
+ <td width=\"25%\">Option</td><td>Value</td></tr>";
+ }
+
+ $class = ($lnum % 2) ? "even" : "odd";
+
+ print "<tr class=\"$class\">";
+
+ print "<td width=\"40%\">" . $line["short_desc"] . "</td>";
+
+ $type_name = $line["type_name"];
+ $pref_name = $line["pref_name"];
+ $value = $line["value"];
+ $def_value = $line["def_value"];
+
+ print "<td>";
+
+ if ($type_name == "bool") {
+// print_select($pref_name, $value, array("true", "false"));
+
+ if ($value == "true") {
+ $value = "Yes";
+ } else {
+ $value = "No";
+ }
+
+ print_radio($pref_name, $value, array("Yes", "No"));
+
+ } else {
+ print "<input class=\"editbox\" name=\"$pref_name\" value=\"$value\">";
+ }
+
+ print "</td>";
+
+ print "</tr>";
+
+ $lnum++;
+ }
+
+ print "</table>";
+
+ print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
+
+ print "<p><input class=\"button\" type=\"submit\"
+ name=\"subop\" value=\"Save configuration\">";
+
+ print "&nbsp;<input class=\"button\" type=\"submit\"
+ name=\"subop\" value=\"Reset to defaults\"></p>";
+
+ print "</form>";
+
+ }
+
+ }
+
db_close($link);
?>
diff --git a/functions.php b/functions.php
index d9d9c37fd..75fc8003c 100644
--- a/functions.php
+++ b/functions.php
@@ -454,4 +454,17 @@
return ((float)$usec + (float)$sec);
}
+ function print_radio($id, $default, $values, $attributes = "") {
+ foreach ($values as $v) {
+
+ if ($v == $default)
+ $sel = "checked value=\"1\"";
+ else
+ $sel = "value=\"0\"";
+
+ print "<input type=\"radio\" $sel $attributes name=\"$id\">&nbsp;$v&nbsp;";
+
+ }
+ }
+
?>
diff --git a/prefs.js b/prefs.js
index 170423423..a7764758e 100644
--- a/prefs.js
+++ b/prefs.js
@@ -779,7 +779,7 @@ function init() {
return;
}
- selectTab("feedConfig");
+ selectTab("genConfig");
document.onkeydown = hotkey_handler;
notify("");
diff --git a/tt-rss.css b/tt-rss.css
index 933575aba..5c3251abb 100644
--- a/tt-rss.css
+++ b/tt-rss.css
@@ -246,6 +246,11 @@ a:hover {
padding-left : 2px;
}
+input.editbox {
+ width : 200px;
+ padding-left : 2px;
+}
+
#notify {
font-size : 10pt;
text-align : right;
@@ -390,7 +395,8 @@ table.prefAddFeed input {
}
table.prefFeedList tr.title td, table.prefFilterList tr.title td,
- table.headlinesList tr.title td, table.prefLabelList tr.title td {
+ table.headlinesList tr.title td, table.prefLabelList tr.title td,
+ table.prefPrefsList tr.title td {
font-weight : bold;
border-width : 0px 0px 1px 0px;
border-color : #f0f0f0;