]>
Commit | Line | Data |
---|---|---|
ef8be8ea | 1 | <?php |
ef8be8ea | 2 | function module_pref_labels($link) { |
ef8be8ea | 3 | |
b4e75b2a | 4 | $subop = $_REQUEST["subop"]; |
ef8be8ea | 5 | |
b8776a07 AD |
6 | if ($subop == "color-set") { |
7 | $kind = db_escape_string($_REQUEST["kind"]); | |
8 | $ids = split(',', db_escape_string($_REQUEST["ids"])); | |
9 | $color = db_escape_string($_REQUEST["color"]); | |
b6ba48c1 AD |
10 | $fg = db_escape_string($_REQUEST["fg"]); |
11 | $bg = db_escape_string($_REQUEST["bg"]); | |
b8776a07 AD |
12 | |
13 | foreach ($ids as $id) { | |
b6ba48c1 AD |
14 | |
15 | if ($kind == "fg" || $kind == "bg") { | |
16 | db_query($link, "UPDATE ttrss_labels2 SET | |
17 | ${kind}_color = '$color' WHERE id = '$id' | |
18 | AND owner_uid = " . $_SESSION["uid"]); | |
19 | } else { | |
20 | db_query($link, "UPDATE ttrss_labels2 SET | |
21 | fg_color = '$fg', bg_color = '$bg' WHERE id = '$id' | |
22 | AND owner_uid = " . $_SESSION["uid"]); | |
23 | } | |
b8776a07 AD |
24 | } |
25 | ||
aec9df48 AD |
26 | return; |
27 | } | |
28 | ||
29 | if ($subop == "color-reset") { | |
30 | $ids = split(',', db_escape_string($_REQUEST["ids"])); | |
31 | ||
32 | foreach ($ids as $id) { | |
33 | db_query($link, "UPDATE ttrss_labels2 SET | |
34 | fg_color = '', bg_color = '' WHERE id = '$id' | |
35 | AND owner_uid = " . $_SESSION["uid"]); | |
36 | } | |
37 | ||
b8776a07 AD |
38 | } |
39 | ||
ceb30ba4 | 40 | if ($subop == "save") { |
071ec48f | 41 | |
ceb30ba4 | 42 | $id = db_escape_string($_REQUEST["id"]); |
9c5e85fe | 43 | $caption = db_escape_string(trim($_REQUEST["value"])); |
071ec48f | 44 | |
ceb30ba4 | 45 | db_query($link, "BEGIN"); |
10fa6615 | 46 | |
ceb30ba4 AD |
47 | $result = db_query($link, "SELECT caption FROM ttrss_labels2 |
48 | WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]); | |
ef8be8ea | 49 | |
ceb30ba4 AD |
50 | if (db_num_rows($result) != 0) { |
51 | $old_caption = db_fetch_result($result, 0, "caption"); | |
a4919a16 | 52 | |
ceb30ba4 AD |
53 | $result = db_query($link, "SELECT id FROM ttrss_labels2 |
54 | WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); | |
ef8be8ea | 55 | |
ceb30ba4 AD |
56 | if (db_num_rows($result) == 0) { |
57 | if ($caption) { | |
58 | $result = db_query($link, "UPDATE ttrss_labels2 SET | |
59 | caption = '$caption' WHERE id = '$id' AND | |
60 | owner_uid = " . $_SESSION["uid"]); | |
ef8be8ea | 61 | |
ceb30ba4 | 62 | /* Update filters that reference label being renamed */ |
ef8be8ea | 63 | |
7a13338b AD |
64 | $old_caption = db_escape_string($old_caption); |
65 | ||
ceb30ba4 AD |
66 | db_query($link, "UPDATE ttrss_filters SET |
67 | action_param = '$caption' WHERE action_param = '$old_caption' | |
68 | AND action_id = 7 | |
69 | AND owner_uid = " . $_SESSION["uid"]); | |
ef8be8ea | 70 | |
9c5e85fe | 71 | print $_REQUEST["value"]; |
625acd1c AD |
72 | } else { |
73 | print $old_caption; | |
ceb30ba4 AD |
74 | } |
75 | } else { | |
76 | print $old_caption; | |
ef8be8ea | 77 | } |
ef8be8ea AD |
78 | } |
79 | ||
ceb30ba4 | 80 | db_query($link, "COMMIT"); |
ef8be8ea AD |
81 | |
82 | return; | |
83 | } | |
84 | ||
ef8be8ea AD |
85 | if ($subop == "remove") { |
86 | ||
b4e75b2a | 87 | $ids = split(",", db_escape_string($_REQUEST["ids"])); |
ef8be8ea | 88 | |
f6f7817d | 89 | foreach ($ids as $id) { |
1380f8ee | 90 | label_remove($link, $id, $_SESSION["uid"]); |
ef8be8ea | 91 | } |
f6f7817d | 92 | |
ef8be8ea AD |
93 | } |
94 | ||
95 | if ($subop == "add") { | |
ef8be8ea | 96 | |
b4e75b2a | 97 | $caption = db_escape_string($_REQUEST["caption"]); |
ef8be8ea | 98 | |
ceb30ba4 | 99 | if ($caption) { |
caf1f12f | 100 | |
6b2ee18d AD |
101 | if (label_create($link, $caption)) { |
102 | print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption)); | |
ceb30ba4 | 103 | } |
6b2ee18d | 104 | |
5e6f933a AD |
105 | } |
106 | ||
107 | return; | |
ef8be8ea AD |
108 | } |
109 | ||
fe8d2059 AD |
110 | set_pref($link, "_PREFS_ACTIVE_TAB", "labelConfig"); |
111 | ||
b4e75b2a | 112 | $sort = db_escape_string($_REQUEST["sort"]); |
ef8be8ea AD |
113 | |
114 | if (!$sort || $sort == "undefined") { | |
ceb30ba4 | 115 | $sort = "caption"; |
ef8be8ea AD |
116 | } |
117 | ||
b4e75b2a | 118 | $label_search = db_escape_string($_REQUEST["search"]); |
112d2aec | 119 | |
b4e75b2a | 120 | if (array_key_exists("search", $_REQUEST)) { |
112d2aec AD |
121 | $_SESSION["prefs_label_search"] = $label_search; |
122 | } else { | |
123 | $label_search = $_SESSION["prefs_label_search"]; | |
124 | } | |
125 | ||
126 | print "<div class=\"feedEditSearch\"> | |
127 | <input id=\"label_search\" size=\"20\" type=\"search\" | |
4cf6fc6a AD |
128 | onfocus=\"javascript:disableHotkeys();\" |
129 | onblur=\"javascript:enableHotkeys();\" | |
112d2aec AD |
130 | onchange=\"javascript:updateLabelList()\" value=\"$label_search\"> |
131 | <input type=\"submit\" class=\"button\" | |
132 | onclick=\"javascript:updateLabelList()\" value=\"".__('Search')."\"> | |
112d2aec | 133 | </div>"; |
0d32b41e | 134 | |
ef8be8ea AD |
135 | print "<div class=\"prefGenericAddBox\">"; |
136 | ||
137 | print"<input type=\"submit\" class=\"button\" | |
138 | id=\"label_create_btn\" | |
ceb30ba4 | 139 | onclick=\"return addLabel()\" |
a3c159c4 | 140 | value=\"".__('Create label')."\"></div>"; |
ef8be8ea | 141 | |
112d2aec | 142 | if ($label_search) { |
1638fc4e AD |
143 | |
144 | $label_search = split(" ", $label_search); | |
145 | $tokens = array(); | |
146 | ||
147 | foreach ($label_search as $token) { | |
148 | ||
149 | $token = trim($token); | |
150 | array_push($tokens, "(UPPER(caption) LIKE UPPER('%$token%'))"); | |
151 | ||
152 | } | |
153 | ||
154 | $label_search_query = "(" . join($tokens, " AND ") . ") AND "; | |
155 | ||
112d2aec AD |
156 | } else { |
157 | $label_search_query = ""; | |
158 | } | |
159 | ||
ef8be8ea | 160 | $result = db_query($link, "SELECT |
2eb9c95c | 161 | * |
ef8be8ea | 162 | FROM |
ceb30ba4 | 163 | ttrss_labels2 |
ef8be8ea | 164 | WHERE |
112d2aec | 165 | $label_search_query |
ef8be8ea AD |
166 | owner_uid = ".$_SESSION["uid"]." |
167 | ORDER BY $sort"); | |
168 | ||
169 | // print "<div id=\"infoBoxShadow\"><div id=\"infoBox\">PLACEHOLDER</div></div>"; | |
170 | ||
171 | if (db_num_rows($result) != 0) { | |
172 | ||
ef8be8ea AD |
173 | print "<p><table width=\"100%\" cellspacing=\"0\" |
174 | class=\"prefLabelList\" id=\"prefLabelList\">"; | |
175 | ||
176 | print "<tr><td class=\"selectPrompt\" colspan=\"8\"> | |
e8d0177d AD |
177 | ".__('Select:')." |
178 | <a href=\"javascript:selectPrefRows('label', true)\">".__('All')."</a>, | |
179 | <a href=\"javascript:selectPrefRows('label', false)\">".__('None')."</a> | |
ef8be8ea AD |
180 | </td</tr>"; |
181 | ||
4d23f96e | 182 | /* print "<tr class=\"title\"> |
ef8be8ea | 183 | <td width=\"5%\"> </td> |
4d23f96e | 184 | <td width=\"95%\"><a href=\"javascript:updateLabelList('caption')\">".__('Caption')."</a></td> |
ef8be8ea | 185 | </td> |
4d23f96e | 186 | </tr>"; */ |
ef8be8ea AD |
187 | |
188 | $lnum = 0; | |
189 | ||
190 | while ($line = db_fetch_assoc($result)) { | |
191 | ||
192 | $class = ($lnum % 2) ? "even" : "odd"; | |
193 | ||
194 | $label_id = $line["id"]; | |
ceb30ba4 AD |
195 | $this_row_id = "id=\"LILRR-$label_id\""; |
196 | ||
ef8be8ea AD |
197 | print "<tr class=\"$class\" $this_row_id>"; |
198 | ||
ceb30ba4 | 199 | $line["caption"] = htmlspecialchars($line["caption"]); |
2eb9c95c AD |
200 | |
201 | $fg_color = $line["fg_color"]; | |
202 | $bg_color = $line["bg_color"]; | |
203 | ||
aec9df48 AD |
204 | if (!$fg_color) $fg_color = ""; |
205 | if (!$bg_color) $bg_color = ""; | |
2eb9c95c | 206 | |
4d23f96e | 207 | print "<td width='5%' align='center'><input |
ceb30ba4 | 208 | onclick='toggleSelectPrefRow(this, \"label\");' |
ef8be8ea AD |
209 | type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>"; |
210 | ||
76b2bc65 | 211 | $id = $line['id']; |
c17d514b | 212 | |
aec9df48 AD |
213 | print "<td>"; |
214 | ||
215 | print "<div class='labelColorIndicator' id='LICID-$id' | |
2eb9c95c | 216 | style='color : $fg_color; background-color : $bg_color' |
7daf349a | 217 | title='".__('Click to change color')."' |
b6ba48c1 AD |
218 | onclick=\"colorPicker('$id', '$fg_color', '$bg_color')\">α"; |
219 | print_color_picker($id); | |
220 | print "</div>"; | |
c17d514b | 221 | |
c17d514b | 222 | |
aec9df48 | 223 | print "<span class='prefsLabelEntry' |
2eb9c95c | 224 | id=\"LILT-".$line["id"]."\">" . $line["caption"] . |
c17d514b AD |
225 | "</span>"; |
226 | ||
76b2bc65 | 227 | print "</td>"; |
ef8be8ea AD |
228 | |
229 | print "</tr>"; | |
230 | ||
231 | ++$lnum; | |
232 | } | |
a5bd7bf0 | 233 | |
ef8be8ea | 234 | print "</table>"; |
ef8be8ea AD |
235 | |
236 | print "<p id=\"labelOpToolbar\">"; | |
d86ad7bf | 237 | |
b8776a07 AD |
238 | print "<input type=\"submit\" class=\"button\" disabled=\"true\" |
239 | onclick=\"javascript:removeSelectedLabels()\" value=\"".__('Remove')."\">"; | |
240 | ||
b6ba48c1 AD |
241 | print " "; |
242 | /* print " <input type=\"submit\" class=\"button\" disabled=\"true\" | |
b8776a07 | 243 | onclick=\"labelColorSet('fg')\" value=\"".__('Fg')."\"> "; |
d86ad7bf | 244 | print "<input type=\"submit\" class=\"button\" disabled=\"true\" |
b6ba48c1 | 245 | onclick=\"labelColorSet('bg')\" value=\"".__('Bg')."\"> "; */ |
d86ad7bf | 246 | print "<input type=\"submit\" class=\"button\" disabled=\"true\" |
b6ba48c1 | 247 | onclick=\"labelColorReset()\" value=\"".__('Clear colors')."\">"; |
d86ad7bf | 248 | |
ceb30ba4 | 249 | print "</p>"; |
ef8be8ea AD |
250 | |
251 | } else { | |
a5bd7bf0 AD |
252 | print "<p>"; |
253 | if (!$label_search) { | |
cea04d61 | 254 | print_warning(__('No labels defined.')); |
a5bd7bf0 | 255 | } else { |
cea04d61 | 256 | print_warning(__('No matching labels found.')); |
a5bd7bf0 AD |
257 | } |
258 | print "</p>"; | |
259 | ||
ef8be8ea AD |
260 | } |
261 | } | |
1d4a2918 AD |
262 | |
263 | function print_color_picker($id) { | |
264 | ||
265 | print "<div id=\"colorPicker-$id\" | |
266 | onmouseover=\"colorPickerActive(true)\" | |
267 | onmouseout=\"colorPickerActive(false)\" | |
268 | class=\"colorPicker\" style='display : none'>"; | |
269 | ||
270 | $color_picker_pairs = array( | |
271 | array('#ff0000', '#ffffff'), | |
272 | array('#009000', '#ffffff'), | |
273 | array('#0000ff', '#ffffff'), | |
274 | array('#ff00ff', '#ffffff'), | |
275 | array('#009090', '#ffffff'), | |
276 | ||
277 | array('#ffffff', '#ff0000'), | |
278 | array('#000000', '#00ff00'), | |
279 | array('#ffffff', '#0000ff'), | |
280 | array('#ffffff', '#ff00ff'), | |
281 | array('#000000', '#00ffff'), | |
282 | ||
283 | array('#7b07e1', '#ffffff'), | |
284 | array('#0091b4', '#ffffff'), | |
285 | array('#00aa71', '#ffffff'), | |
286 | array('#7d9e01', '#ffffff'), | |
287 | array('#e14a00', '#ffffff'), | |
288 | ||
289 | array('#ffffff', '#7b07e1'), | |
290 | array('#ffffff', '#00b5e1'), | |
291 | array('#ffffff', '#00e196'), | |
292 | array('#ffffff', '#b3e100'), | |
293 | array('#ffffff', '#e14a00'), | |
294 | ||
295 | array('#000000', '#ffffff'), | |
296 | array('#ffffff', '#000000'), | |
297 | array('#ffffff', '#909000'), | |
298 | array('#063064', '#fff7d5'), | |
299 | array('#ffffff', '#4E4E90'), | |
300 | ); | |
301 | ||
302 | foreach ($color_picker_pairs as $c) { | |
303 | $fg_color = $c[0]; | |
304 | $bg_color = $c[1]; | |
305 | ||
306 | print "<div class='colorPickerEntry' | |
307 | style='color : $fg_color; background-color : $bg_color;' | |
308 | onclick=\"colorPickerDo('$id', '$fg_color', '$bg_color')\">α</div>"; | |
309 | ||
310 | } | |
311 | ||
312 | print "<br clear='both'>"; | |
313 | ||
314 | print "<br/><b>".__('custom color:')."</b>"; | |
315 | print "<div class=\"ccPrompt\" onclick=\"labelColorAsk('$id', 'fg')\">".__("foreground")."</div>"; | |
316 | print "<div class=\"ccPrompt\" onclick=\"labelColorAsk('$id', 'bg')\">".__("background")."</div>"; | |
317 | ||
318 | print "</div>"; | |
319 | } | |
320 | ||
ef8be8ea | 321 | ?> |