]> git.wh0rd.org - tt-rss.git/blame - modules/pref-labels.php
support colored labels
[tt-rss.git] / modules / pref-labels.php
CommitLineData
ef8be8ea 1<?php
ef8be8ea 2 function module_pref_labels($link) {
ef8be8ea
AD
3
4 $subop = $_GET["subop"];
5
ceb30ba4 6 if ($subop == "save") {
071ec48f 7
ceb30ba4 8 $id = db_escape_string($_REQUEST["id"]);
9c5e85fe 9 $caption = db_escape_string(trim($_REQUEST["value"]));
071ec48f 10
ceb30ba4 11 db_query($link, "BEGIN");
10fa6615 12
ceb30ba4
AD
13 $result = db_query($link, "SELECT caption FROM ttrss_labels2
14 WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]);
ef8be8ea 15
ceb30ba4
AD
16 if (db_num_rows($result) != 0) {
17 $old_caption = db_fetch_result($result, 0, "caption");
a4919a16 18
ceb30ba4
AD
19 $result = db_query($link, "SELECT id FROM ttrss_labels2
20 WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]);
ef8be8ea 21
ceb30ba4
AD
22 if (db_num_rows($result) == 0) {
23 if ($caption) {
24 $result = db_query($link, "UPDATE ttrss_labels2 SET
25 caption = '$caption' WHERE id = '$id' AND
26 owner_uid = " . $_SESSION["uid"]);
ef8be8ea 27
ceb30ba4 28 /* Update filters that reference label being renamed */
ef8be8ea 29
ceb30ba4
AD
30 db_query($link, "UPDATE ttrss_filters SET
31 action_param = '$caption' WHERE action_param = '$old_caption'
32 AND action_id = 7
33 AND owner_uid = " . $_SESSION["uid"]);
ef8be8ea 34
9c5e85fe 35 print $_REQUEST["value"];
625acd1c
AD
36 } else {
37 print $old_caption;
ceb30ba4
AD
38 }
39 } else {
40 print $old_caption;
ef8be8ea 41 }
ef8be8ea
AD
42 }
43
ceb30ba4 44 db_query($link, "COMMIT");
ef8be8ea
AD
45
46 return;
47 }
48
ef8be8ea
AD
49 if ($subop == "remove") {
50
ceb30ba4 51 $ids = split(",", db_escape_string($_GET["ids"]));
ef8be8ea 52
f6f7817d 53 foreach ($ids as $id) {
1380f8ee 54 label_remove($link, $id, $_SESSION["uid"]);
ef8be8ea 55 }
f6f7817d 56
ef8be8ea
AD
57 }
58
59 if ($subop == "add") {
ef8be8ea 60
ceb30ba4 61 $caption = db_escape_string($_GET["caption"]);
ef8be8ea 62
ceb30ba4 63 if ($caption) {
caf1f12f 64
6b2ee18d
AD
65 if (label_create($link, $caption)) {
66 print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
ceb30ba4 67 }
6b2ee18d 68
5e6f933a
AD
69 }
70
71 return;
ef8be8ea
AD
72 }
73
fe8d2059
AD
74 set_pref($link, "_PREFS_ACTIVE_TAB", "labelConfig");
75
ef8be8ea
AD
76 $sort = db_escape_string($_GET["sort"]);
77
78 if (!$sort || $sort == "undefined") {
ceb30ba4 79 $sort = "caption";
ef8be8ea
AD
80 }
81
112d2aec
AD
82 $label_search = db_escape_string($_GET["search"]);
83
84 if (array_key_exists("search", $_GET)) {
85 $_SESSION["prefs_label_search"] = $label_search;
86 } else {
87 $label_search = $_SESSION["prefs_label_search"];
88 }
89
90 print "<div class=\"feedEditSearch\">
91 <input id=\"label_search\" size=\"20\" type=\"search\"
4cf6fc6a
AD
92 onfocus=\"javascript:disableHotkeys();\"
93 onblur=\"javascript:enableHotkeys();\"
112d2aec
AD
94 onchange=\"javascript:updateLabelList()\" value=\"$label_search\">
95 <input type=\"submit\" class=\"button\"
96 onclick=\"javascript:updateLabelList()\" value=\"".__('Search')."\">
112d2aec 97 </div>";
0d32b41e 98
ef8be8ea
AD
99 print "<div class=\"prefGenericAddBox\">";
100
101 print"<input type=\"submit\" class=\"button\"
102 id=\"label_create_btn\"
ceb30ba4 103 onclick=\"return addLabel()\"
a3c159c4 104 value=\"".__('Create label')."\"></div>";
ef8be8ea 105
112d2aec 106 if ($label_search) {
ceb30ba4 107 $label_search_query = "caption LIKE '%$label_search%' AND";
112d2aec
AD
108 } else {
109 $label_search_query = "";
110 }
111
ef8be8ea 112 $result = db_query($link, "SELECT
2eb9c95c 113 *
ef8be8ea 114 FROM
ceb30ba4 115 ttrss_labels2
ef8be8ea 116 WHERE
112d2aec 117 $label_search_query
ef8be8ea
AD
118 owner_uid = ".$_SESSION["uid"]."
119 ORDER BY $sort");
120
121// print "<div id=\"infoBoxShadow\"><div id=\"infoBox\">PLACEHOLDER</div></div>";
122
123 if (db_num_rows($result) != 0) {
124
ef8be8ea
AD
125 print "<p><table width=\"100%\" cellspacing=\"0\"
126 class=\"prefLabelList\" id=\"prefLabelList\">";
127
128 print "<tr><td class=\"selectPrompt\" colspan=\"8\">
e8d0177d
AD
129 ".__('Select:')."
130 <a href=\"javascript:selectPrefRows('label', true)\">".__('All')."</a>,
131 <a href=\"javascript:selectPrefRows('label', false)\">".__('None')."</a>
ef8be8ea
AD
132 </td</tr>";
133
4d23f96e 134/* print "<tr class=\"title\">
ef8be8ea 135 <td width=\"5%\">&nbsp;</td>
4d23f96e 136 <td width=\"95%\"><a href=\"javascript:updateLabelList('caption')\">".__('Caption')."</a></td>
ef8be8ea 137 </td>
4d23f96e 138 </tr>"; */
ef8be8ea
AD
139
140 $lnum = 0;
141
142 while ($line = db_fetch_assoc($result)) {
143
144 $class = ($lnum % 2) ? "even" : "odd";
145
146 $label_id = $line["id"];
ceb30ba4
AD
147 $this_row_id = "id=\"LILRR-$label_id\"";
148
ef8be8ea
AD
149 print "<tr class=\"$class\" $this_row_id>";
150
ceb30ba4 151 $line["caption"] = htmlspecialchars($line["caption"]);
2eb9c95c
AD
152
153 $fg_color = $line["fg_color"];
154 $bg_color = $line["bg_color"];
155
156 if (!$fg_color) $fg_color = "black";
157 if (!$bg_color) $bg_color = "transparent";
158
4d23f96e 159 print "<td width='5%' align='center'><input
ceb30ba4 160 onclick='toggleSelectPrefRow(this, \"label\");'
ef8be8ea
AD
161 type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>";
162
2eb9c95c
AD
163 print "<td><span class='prefsLabelEntry'
164 style='color : $fg_color; background-color : $bg_color'
165 id=\"LILT-".$line["id"]."\">" . $line["caption"] .
ceb30ba4 166 "</span></td>";
ef8be8ea
AD
167
168 print "</tr>";
169
170 ++$lnum;
171 }
a5bd7bf0 172
ef8be8ea 173 print "</table>";
ef8be8ea
AD
174
175 print "<p id=\"labelOpToolbar\">";
a3c159c4 176 print "<input type=\"submit\" class=\"button\" disabled=\"true\"
a3c159c4 177 onclick=\"javascript:removeSelectedLabels()\" value=\"".__('Remove')."\">";
ceb30ba4 178 print "</p>";
ef8be8ea
AD
179
180 } else {
a5bd7bf0
AD
181 print "<p>";
182 if (!$label_search) {
183 print __('No labels defined.');
184 } else {
185 print __('No matching labels found.');
186 }
187 print "</p>";
188
ef8be8ea
AD
189 }
190 }
191?>