From: Andrew Dolgov Date: Tue, 13 Dec 2011 09:34:43 +0000 (+0400) Subject: add pref_labels class X-Git-Tag: 1.5.8~21^2~7 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=cbe50c800d4846be184673e623063abee7101a0c;p=tt-rss.git add pref_labels class --- diff --git a/backend.php b/backend.php index f0dc6ae1..5511668c 100644 --- a/backend.php +++ b/backend.php @@ -161,11 +161,6 @@ module_pref_filters($link); break; // pref-filters - case "pref_labels": - require_once "modules/pref-labels.php"; - module_pref_labels($link); - break; // pref-labels - case "pref_users": require_once "modules/pref-users.php"; module_pref_users($link); diff --git a/classes/pref_labels.php b/classes/pref_labels.php new file mode 100644 index 00000000..5de4443f --- /dev/null +++ b/classes/pref_labels.php @@ -0,0 +1,320 @@ +link, "SELECT * FROM ttrss_labels2 WHERE + id = '$label_id' AND owner_uid = " . $_SESSION["uid"]); + + $line = db_fetch_assoc($result); + + print ""; + print ""; + print ""; + + print "
".__("Caption")."
"; + + print "
"; + + $fg_color = $line['fg_color']; + $bg_color = $line['bg_color']; + + print "α"; + + print ""; + + print "
"; + print "
" . __("Colors") . "
"; + print "
"; + + print ""; + + print ""; + + print "
".__("Foreground:")."".__("Background:"). + "
"; + + print ""; + print ""; + + print "
+ +
"; + print ""; + + print "
"; + + print "
+ +
"; + print ""; + + print "
"; + print "
"; + +# print ""; + + print "
"; + print ""; + print ""; + print "
"; + + return; + } + + function getlabeltree() { + $root = array(); + $root['id'] = 'root'; + $root['name'] = __('Labels'); + $root['items'] = array(); + + $result = db_query($this->link, "SELECT * + FROM ttrss_labels2 + WHERE owner_uid = ".$_SESSION["uid"]." + ORDER BY caption"); + + while ($line = db_fetch_assoc($result)) { + $label = array(); + $label['id'] = 'LABEL:' . $line['id']; + $label['bare_id'] = $line['id']; + $label['name'] = $line['caption']; + $label['fg_color'] = $line['fg_color']; + $label['bg_color'] = $line['bg_color']; + $label['type'] = 'label'; + $label['checkbox'] = false; + + array_push($root['items'], $label); + } + + $fl = array(); + $fl['identifier'] = 'id'; + $fl['label'] = 'name'; + $fl['items'] = array($root); + + print json_encode($fl); + return; + } + + function colorset() { + $kind = db_escape_string($_REQUEST["kind"]); + $ids = split(',', db_escape_string($_REQUEST["ids"])); + $color = db_escape_string($_REQUEST["color"]); + $fg = db_escape_string($_REQUEST["fg"]); + $bg = db_escape_string($_REQUEST["bg"]); + + foreach ($ids as $id) { + + if ($kind == "fg" || $kind == "bg") { + db_query($this->link, "UPDATE ttrss_labels2 SET + ${kind}_color = '$color' WHERE id = '$id' + AND owner_uid = " . $_SESSION["uid"]); + } else { + db_query($this->link, "UPDATE ttrss_labels2 SET + fg_color = '$fg', bg_color = '$bg' WHERE id = '$id' + AND owner_uid = " . $_SESSION["uid"]); + } + + $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"])); + + /* Remove cached data */ + + db_query($this->link, "UPDATE ttrss_user_entries SET label_cache = '' + WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]); + + } + + return; + } + + function colorreset() { + $ids = split(',', db_escape_string($_REQUEST["ids"])); + + foreach ($ids as $id) { + db_query($this->link, "UPDATE ttrss_labels2 SET + fg_color = '', bg_color = '' WHERE id = '$id' + AND owner_uid = " . $_SESSION["uid"]); + + $caption = db_escape_string(label_find_caption($this->link, $id, $_SESSION["uid"])); + + /* Remove cached data */ + + db_query($this->link, "UPDATE ttrss_user_entries SET label_cache = '' + WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]); + } + + } + + function save() { + + $id = db_escape_string($_REQUEST["id"]); + $caption = db_escape_string(trim($_REQUEST["caption"])); + + db_query($this->link, "BEGIN"); + + $result = db_query($this->link, "SELECT caption FROM ttrss_labels2 + WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]); + + if (db_num_rows($result) != 0) { + $old_caption = db_fetch_result($result, 0, "caption"); + + $result = db_query($this->link, "SELECT id FROM ttrss_labels2 + WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); + + if (db_num_rows($result) == 0) { + if ($caption) { + $result = db_query($this->link, "UPDATE ttrss_labels2 SET + caption = '$caption' WHERE id = '$id' AND + owner_uid = " . $_SESSION["uid"]); + + /* Update filters that reference label being renamed */ + + $old_caption = db_escape_string($old_caption); + + db_query($this->link, "UPDATE ttrss_filters SET + action_param = '$caption' WHERE action_param = '$old_caption' + AND action_id = 7 + AND owner_uid = " . $_SESSION["uid"]); + + print $_REQUEST["value"]; + } else { + print $old_caption; + } + } else { + print $old_caption; + } + } + + db_query($this->link, "COMMIT"); + + return; + } + + function remove() { + + $ids = split(",", db_escape_string($_REQUEST["ids"])); + + foreach ($ids as $id) { + label_remove($this->link, $id, $_SESSION["uid"]); + } + + } + + function add() { + $caption = db_escape_string($_REQUEST["caption"]); + $output = db_escape_string($_REQUEST["output"]); + + if ($caption) { + + if (label_create($this->link, $caption)) { + if (!$output) { + print T_sprintf("Created label %s", htmlspecialchars($caption)); + } + } + + if ($output == "select") { + header("Content-Type: text/xml"); + + print ""; + + print_label_select($this->link, "select_label", + $caption, ""); + + print ""; + } + } + + return; + } + + function index() { + + $sort = db_escape_string($_REQUEST["sort"]); + + if (!$sort || $sort == "undefined") { + $sort = "caption"; + } + + $label_search = db_escape_string($_REQUEST["search"]); + + if (array_key_exists("search", $_REQUEST)) { + $_SESSION["prefs_label_search"] = $label_search; + } else { + $label_search = $_SESSION["prefs_label_search"]; + } + + print "
"; + print "
"; + print "
"; + + print "
". + "" . __('Select').""; + print "
"; + print "
".__('All')."
"; + print "
".__('None')."
"; + print "
"; + + print" "; + + print " "; + + print ""; + + + print "
"; #toolbar + print "
"; #pane + print "
"; + + print "
+ ". + __("Loading, please wait...")."
"; + + print "
+
+
+
+
+ + +
"; + + print "
"; #pane + print "
"; #container + + } +} + +?> diff --git a/js/prefs.js b/js/prefs.js index d1d02afd..4e1dadda 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -15,30 +15,11 @@ function instancelist_callback2(transport) { } } -function feedlist_callback2(transport) { - try { - dijit.byId('feedConfigTab').attr('content', transport.responseText); - selectTab("feedConfig", true); - notify(""); - } catch (e) { - exception_error("feedlist_callback2", e); - } -} - function filterlist_callback2(transport) { dijit.byId('filterConfigTab').attr('content', transport.responseText); notify(""); } -function labellist_callback2(transport) { - try { - dijit.byId('labelConfigTab').attr('content', transport.responseText); - notify(""); - } catch (e) { - exception_error("labellist_callback2", e); - } -} - function userlist_callback2(transport) { try { dijit.byId('userConfigTab').attr('content', transport.responseText); @@ -49,16 +30,6 @@ function userlist_callback2(transport) { } } -function prefslist_callback2(transport) { - try { - dijit.byId('genConfigTab').attr('content', transport.responseText); - - notify(""); - } catch (e) { - exception_error("prefslist_callback2", e); - } -} - function notify_callback2(transport) { notify_info(transport.responseText); } @@ -72,7 +43,9 @@ function updateFeedList(sort_key) { new Ajax.Request("backend.php", { parameters: "?op=pref-feeds&search=" + param_escape(search), onComplete: function(transport) { - feedlist_callback2(transport); + dijit.byId('feedConfigTab').attr('content', transport.responseText); + selectTab("feedConfig", true); + notify(""); } }); } @@ -329,7 +302,7 @@ function removeSelectedLabels() { new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - labellist_callback2(transport); + updateLabelList(); } }); } @@ -851,7 +824,8 @@ function updateLabelList() { new Ajax.Request("backend.php", { parameters: "?op=pref-labels", onComplete: function(transport) { - labellist_callback2(transport); + dijit.byId('labelConfigTab').attr('content', transport.responseText); + notify(""); } }); } @@ -859,7 +833,8 @@ function updatePrefsList() { new Ajax.Request("backend.php", { parameters: "?op=pref-prefs", onComplete: function(transport) { - prefslist_callback2(transport); + dijit.byId('genConfigTab').attr('content', transport.responseText); + notify(""); } }); } @@ -1440,13 +1415,13 @@ function labelColorReset() { var ok = confirm(__("Reset selected labels to default colors?")); if (ok) { - var query = "?op=pref-labels&method=color-reset&ids="+ + var query = "?op=pref-labels&method=colorreset&ids="+ param_escape(labels.toString()); new Ajax.Request("backend.php", { parameters: query, onComplete: function(transport) { - labellist_callback2(transport); + updateLabelList(); } }); } @@ -1705,7 +1680,7 @@ function editLabel(id, event) { color = bg; } - var query = "?op=pref-labels&method=color-set&kind="+kind+ + var query = "?op=pref-labels&method=colorset&kind="+kind+ "&ids=" + param_escape(id) + "&fg=" + param_escape(fg) + "&bg=" + param_escape(bg) + "&color=" + param_escape(color); diff --git a/modules/pref-labels.php b/modules/pref-labels.php deleted file mode 100644 index f9f2c19e..00000000 --- a/modules/pref-labels.php +++ /dev/null @@ -1,321 +0,0 @@ -"; - - print ""; - print ""; - print ""; - - print "
".__("Caption")."
"; - - print "
"; - - $fg_color = $line['fg_color']; - $bg_color = $line['bg_color']; - - print "α"; - - print ""; - - print "
"; - print "
" . __("Colors") . "
"; - print "
"; - - print ""; - - print ""; - - print "
".__("Foreground:")."".__("Background:"). - "
"; - - print ""; - print ""; - - print "
- -
"; - print ""; - - print "
"; - - print "
- -
"; - print ""; - - print "
"; - print "
"; - -# print ""; - - print "
"; - print ""; - print ""; - print "
"; - - return; - } - - if ($method == "getlabeltree") { - $root = array(); - $root['id'] = 'root'; - $root['name'] = __('Labels'); - $root['items'] = array(); - - $result = db_query($link, "SELECT * - FROM ttrss_labels2 - WHERE owner_uid = ".$_SESSION["uid"]." - ORDER BY caption"); - - while ($line = db_fetch_assoc($result)) { - $label = array(); - $label['id'] = 'LABEL:' . $line['id']; - $label['bare_id'] = $line['id']; - $label['name'] = $line['caption']; - $label['fg_color'] = $line['fg_color']; - $label['bg_color'] = $line['bg_color']; - $label['type'] = 'label'; - $label['checkbox'] = false; - - array_push($root['items'], $label); - } - - $fl = array(); - $fl['identifier'] = 'id'; - $fl['label'] = 'name'; - $fl['items'] = array($root); - - print json_encode($fl); - return; - } - - if ($method == "color-set") { - $kind = db_escape_string($_REQUEST["kind"]); - $ids = split(',', db_escape_string($_REQUEST["ids"])); - $color = db_escape_string($_REQUEST["color"]); - $fg = db_escape_string($_REQUEST["fg"]); - $bg = db_escape_string($_REQUEST["bg"]); - - foreach ($ids as $id) { - - if ($kind == "fg" || $kind == "bg") { - db_query($link, "UPDATE ttrss_labels2 SET - ${kind}_color = '$color' WHERE id = '$id' - AND owner_uid = " . $_SESSION["uid"]); - } else { - db_query($link, "UPDATE ttrss_labels2 SET - fg_color = '$fg', bg_color = '$bg' WHERE id = '$id' - AND owner_uid = " . $_SESSION["uid"]); - } - - $caption = db_escape_string(label_find_caption($link, $id, $_SESSION["uid"])); - - /* Remove cached data */ - - db_query($link, "UPDATE ttrss_user_entries SET label_cache = '' - WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]); - - } - - return; - } - - if ($method == "color-reset") { - $ids = split(',', db_escape_string($_REQUEST["ids"])); - - foreach ($ids as $id) { - db_query($link, "UPDATE ttrss_labels2 SET - fg_color = '', bg_color = '' WHERE id = '$id' - AND owner_uid = " . $_SESSION["uid"]); - - $caption = db_escape_string(label_find_caption($link, $id, $_SESSION["uid"])); - - /* Remove cached data */ - - db_query($link, "UPDATE ttrss_user_entries SET label_cache = '' - WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $_SESSION["uid"]); - } - - } - - if ($method == "save") { - - $id = db_escape_string($_REQUEST["id"]); - $caption = db_escape_string(trim($_REQUEST["caption"])); - - db_query($link, "BEGIN"); - - $result = db_query($link, "SELECT caption FROM ttrss_labels2 - WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]); - - if (db_num_rows($result) != 0) { - $old_caption = db_fetch_result($result, 0, "caption"); - - $result = db_query($link, "SELECT id FROM ttrss_labels2 - WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); - - if (db_num_rows($result) == 0) { - if ($caption) { - $result = db_query($link, "UPDATE ttrss_labels2 SET - caption = '$caption' WHERE id = '$id' AND - owner_uid = " . $_SESSION["uid"]); - - /* Update filters that reference label being renamed */ - - $old_caption = db_escape_string($old_caption); - - db_query($link, "UPDATE ttrss_filters SET - action_param = '$caption' WHERE action_param = '$old_caption' - AND action_id = 7 - AND owner_uid = " . $_SESSION["uid"]); - - print $_REQUEST["value"]; - } else { - print $old_caption; - } - } else { - print $old_caption; - } - } - - db_query($link, "COMMIT"); - - return; - } - - if ($method == "remove") { - - $ids = split(",", db_escape_string($_REQUEST["ids"])); - - foreach ($ids as $id) { - label_remove($link, $id, $_SESSION["uid"]); - } - - } - - if ($method == "add") { - $caption = db_escape_string($_REQUEST["caption"]); - $output = db_escape_string($_REQUEST["output"]); - - if ($caption) { - - if (label_create($link, $caption)) { - if (!$output) { - print T_sprintf("Created label %s", htmlspecialchars($caption)); - } - } - - if ($output == "select") { - header("Content-Type: text/xml"); - - print ""; - - print_label_select($link, "select_label", - $caption, ""); - - print ""; - } - } - - return; - } - - $sort = db_escape_string($_REQUEST["sort"]); - - if (!$sort || $sort == "undefined") { - $sort = "caption"; - } - - $label_search = db_escape_string($_REQUEST["search"]); - - if (array_key_exists("search", $_REQUEST)) { - $_SESSION["prefs_label_search"] = $label_search; - } else { - $label_search = $_SESSION["prefs_label_search"]; - } - - print "
"; - print "
"; - print "
"; - - print "
". - "" . __('Select').""; - print "
"; - print "
".__('All')."
"; - print "
".__('None')."
"; - print "
"; - - print" "; - - print " "; - - print ""; - - - print "
"; #toolbar - print "
"; #pane - print "
"; - - print "
- ". - __("Loading, please wait...")."
"; - - print "
-
-
-
-
- - -
"; - - print "
"; #pane - print "
"; #container - } - -?>