]>
Commit | Line | Data |
---|---|---|
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"]; |
ceb30ba4 AD |
36 | } |
37 | } else { | |
38 | print $old_caption; | |
ef8be8ea | 39 | } |
ef8be8ea AD |
40 | } |
41 | ||
ceb30ba4 | 42 | db_query($link, "COMMIT"); |
ef8be8ea AD |
43 | |
44 | return; | |
45 | } | |
46 | ||
ef8be8ea AD |
47 | if ($subop == "remove") { |
48 | ||
ceb30ba4 | 49 | $ids = split(",", db_escape_string($_GET["ids"])); |
ef8be8ea AD |
50 | |
51 | foreach ($ids as $id) { | |
ceb30ba4 AD |
52 | db_query($link, "DELETE FROM ttrss_labels2 WHERE id = '$id' |
53 | AND owner_uid = " . $_SESSION["uid"]); | |
ef8be8ea AD |
54 | } |
55 | } | |
56 | ||
57 | if ($subop == "add") { | |
ef8be8ea | 58 | |
ceb30ba4 | 59 | $caption = db_escape_string($_GET["caption"]); |
ef8be8ea | 60 | |
ceb30ba4 | 61 | if ($caption) { |
caf1f12f | 62 | |
ceb30ba4 AD |
63 | $result = db_query($link, "SELECT id FROM ttrss_labels2 |
64 | WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]); | |
ef8be8ea | 65 | |
ceb30ba4 | 66 | if (db_num_rows($result) == 0) { |
5e6f933a | 67 | |
ceb30ba4 AD |
68 | $result = db_query($link, |
69 | "INSERT INTO ttrss_labels2 (caption,owner_uid) | |
70 | VALUES ('$caption', '".$_SESSION["uid"]."')"); | |
71 | ||
72 | if (db_affected_rows($link, $result) != 0) { | |
73 | print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption)); | |
74 | } | |
75 | } | |
5e6f933a AD |
76 | } |
77 | ||
78 | return; | |
ef8be8ea AD |
79 | } |
80 | ||
fe8d2059 AD |
81 | set_pref($link, "_PREFS_ACTIVE_TAB", "labelConfig"); |
82 | ||
ef8be8ea AD |
83 | $sort = db_escape_string($_GET["sort"]); |
84 | ||
85 | if (!$sort || $sort == "undefined") { | |
ceb30ba4 | 86 | $sort = "caption"; |
ef8be8ea AD |
87 | } |
88 | ||
112d2aec AD |
89 | $label_search = db_escape_string($_GET["search"]); |
90 | ||
91 | if (array_key_exists("search", $_GET)) { | |
92 | $_SESSION["prefs_label_search"] = $label_search; | |
93 | } else { | |
94 | $label_search = $_SESSION["prefs_label_search"]; | |
95 | } | |
96 | ||
97 | print "<div class=\"feedEditSearch\"> | |
98 | <input id=\"label_search\" size=\"20\" type=\"search\" | |
4cf6fc6a AD |
99 | onfocus=\"javascript:disableHotkeys();\" |
100 | onblur=\"javascript:enableHotkeys();\" | |
112d2aec AD |
101 | onchange=\"javascript:updateLabelList()\" value=\"$label_search\"> |
102 | <input type=\"submit\" class=\"button\" | |
103 | onclick=\"javascript:updateLabelList()\" value=\"".__('Search')."\"> | |
112d2aec | 104 | </div>"; |
0d32b41e | 105 | |
ef8be8ea AD |
106 | print "<div class=\"prefGenericAddBox\">"; |
107 | ||
108 | print"<input type=\"submit\" class=\"button\" | |
109 | id=\"label_create_btn\" | |
ceb30ba4 | 110 | onclick=\"return addLabel()\" |
a3c159c4 | 111 | value=\"".__('Create label')."\"></div>"; |
ef8be8ea | 112 | |
112d2aec | 113 | if ($label_search) { |
ceb30ba4 | 114 | $label_search_query = "caption LIKE '%$label_search%' AND"; |
112d2aec AD |
115 | } else { |
116 | $label_search_query = ""; | |
117 | } | |
118 | ||
ef8be8ea | 119 | $result = db_query($link, "SELECT |
ceb30ba4 | 120 | id,caption |
ef8be8ea | 121 | FROM |
ceb30ba4 | 122 | ttrss_labels2 |
ef8be8ea | 123 | WHERE |
112d2aec | 124 | $label_search_query |
ef8be8ea AD |
125 | owner_uid = ".$_SESSION["uid"]." |
126 | ORDER BY $sort"); | |
127 | ||
128 | // print "<div id=\"infoBoxShadow\"><div id=\"infoBox\">PLACEHOLDER</div></div>"; | |
129 | ||
130 | if (db_num_rows($result) != 0) { | |
131 | ||
ef8be8ea AD |
132 | print "<p><table width=\"100%\" cellspacing=\"0\" |
133 | class=\"prefLabelList\" id=\"prefLabelList\">"; | |
134 | ||
135 | print "<tr><td class=\"selectPrompt\" colspan=\"8\"> | |
e8d0177d AD |
136 | ".__('Select:')." |
137 | <a href=\"javascript:selectPrefRows('label', true)\">".__('All')."</a>, | |
138 | <a href=\"javascript:selectPrefRows('label', false)\">".__('None')."</a> | |
ef8be8ea AD |
139 | </td</tr>"; |
140 | ||
141 | print "<tr class=\"title\"> | |
142 | <td width=\"5%\"> </td> | |
ceb30ba4 | 143 | <td width=\"95%\"><a href=\"javascript:updateLabelList('description')\">".__('Caption')."</a></td> |
ef8be8ea AD |
144 | </td> |
145 | </tr>"; | |
146 | ||
147 | $lnum = 0; | |
148 | ||
149 | while ($line = db_fetch_assoc($result)) { | |
150 | ||
151 | $class = ($lnum % 2) ? "even" : "odd"; | |
152 | ||
153 | $label_id = $line["id"]; | |
ceb30ba4 AD |
154 | $this_row_id = "id=\"LILRR-$label_id\""; |
155 | ||
ef8be8ea AD |
156 | print "<tr class=\"$class\" $this_row_id>"; |
157 | ||
ceb30ba4 | 158 | $line["caption"] = htmlspecialchars($line["caption"]); |
ef8be8ea | 159 | |
ceb30ba4 AD |
160 | print "<td align='center'><input |
161 | onclick='toggleSelectPrefRow(this, \"label\");' | |
ef8be8ea AD |
162 | type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>"; |
163 | ||
ceb30ba4 AD |
164 | print "<td><span id=\"LILT-".$line["id"]."\">" . $line["caption"] . |
165 | "</span></td>"; | |
ef8be8ea AD |
166 | |
167 | print "</tr>"; | |
168 | ||
169 | ++$lnum; | |
170 | } | |
a5bd7bf0 | 171 | |
ef8be8ea | 172 | print "</table>"; |
ef8be8ea AD |
173 | |
174 | print "<p id=\"labelOpToolbar\">"; | |
a3c159c4 | 175 | print "<input type=\"submit\" class=\"button\" disabled=\"true\" |
a3c159c4 | 176 | onclick=\"javascript:removeSelectedLabels()\" value=\"".__('Remove')."\">"; |
ceb30ba4 | 177 | print "</p>"; |
ef8be8ea AD |
178 | |
179 | } else { | |
a5bd7bf0 AD |
180 | print "<p>"; |
181 | if (!$label_search) { | |
182 | print __('No labels defined.'); | |
183 | } else { | |
184 | print __('No matching labels found.'); | |
185 | } | |
186 | print "</p>"; | |
187 | ||
ef8be8ea AD |
188 | } |
189 | } | |
190 | ?> |