]> git.wh0rd.org Git - tt-rss.git/blob - modules/pref-labels.php
new function: label_create
[tt-rss.git] / modules / pref-labels.php
1 <?php
2         function module_pref_labels($link) {
3
4                 $subop = $_GET["subop"];
5
6                 if ($subop == "save") {
7
8                         $id = db_escape_string($_REQUEST["id"]);
9                         $caption = db_escape_string(trim($_REQUEST["value"]));
10
11                         db_query($link, "BEGIN");
12
13                         $result = db_query($link, "SELECT caption FROM ttrss_labels2
14                                 WHERE id = '$id' AND owner_uid = ". $_SESSION["uid"]);
15
16                         if (db_num_rows($result) != 0) {
17                                 $old_caption = db_fetch_result($result, 0, "caption");
18
19                                 $result = db_query($link, "SELECT id FROM ttrss_labels2
20                                         WHERE caption = '$caption' AND owner_uid = ". $_SESSION["uid"]);
21
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"]);
27
28                                                 /* Update filters that reference label being renamed */
29
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"]);
34
35                                                 print $_REQUEST["value"];
36                                         } else {
37                                                 print $old_caption;
38                                         }
39                                 } else {
40                                         print $old_caption;
41                                 }
42                         }
43
44                         db_query($link, "COMMIT");
45
46                         return;
47                 }
48
49                 if ($subop == "remove") {
50
51                         $ids = split(",", db_escape_string($_GET["ids"]));
52
53                         foreach ($ids as $id) {
54                                 label_remove($link, $id, $_SESSION["uid"]);
55                         }
56
57                 }
58
59                 if ($subop == "add") {
60
61                         $caption = db_escape_string($_GET["caption"]);
62
63                         if ($caption) {
64
65                                 if (label_create($link, $caption)) {
66                                         print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
67                                 }
68
69                         }
70
71                         return;
72                 }
73
74                 set_pref($link, "_PREFS_ACTIVE_TAB", "labelConfig");
75
76                 $sort = db_escape_string($_GET["sort"]);
77
78                 if (!$sort || $sort == "undefined") {
79                         $sort = "caption";
80                 }
81
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\"
92                                 onfocus=\"javascript:disableHotkeys();\" 
93                                 onblur=\"javascript:enableHotkeys();\"
94                                 onchange=\"javascript:updateLabelList()\" value=\"$label_search\">
95                         <input type=\"submit\" class=\"button\" 
96                                 onclick=\"javascript:updateLabelList()\" value=\"".__('Search')."\">
97                         </div>";
98
99                 print "<div class=\"prefGenericAddBox\">";
100
101                 print"<input type=\"submit\" class=\"button\" 
102                         id=\"label_create_btn\"
103                         onclick=\"return addLabel()\" 
104                         value=\"".__('Create label')."\"></div>";
105
106                 if ($label_search) {
107                         $label_search_query = "caption LIKE '%$label_search%' AND";
108                 } else {
109                         $label_search_query = "";
110                 }
111
112                 $result = db_query($link, "SELECT 
113                                 id,caption
114                         FROM 
115                                 ttrss_labels2
116                         WHERE 
117                                 $label_search_query
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
125                         print "<p><table width=\"100%\" cellspacing=\"0\" 
126                                 class=\"prefLabelList\" id=\"prefLabelList\">";
127
128                         print "<tr><td class=\"selectPrompt\" colspan=\"8\">
129                                 ".__('Select:')." 
130                                         <a href=\"javascript:selectPrefRows('label', true)\">".__('All')."</a>,
131                                         <a href=\"javascript:selectPrefRows('label', false)\">".__('None')."</a>
132                                 </td</tr>";
133
134 /*                      print "<tr class=\"title\">
135                                                 <td width=\"5%\">&nbsp;</td>
136                                                 <td width=\"95%\"><a href=\"javascript:updateLabelList('caption')\">".__('Caption')."</a></td>
137                                                 </td>
138                                                 </tr>"; */
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"];
147                                 $this_row_id = "id=\"LILRR-$label_id\"";
148
149                                 print "<tr class=\"$class\" $this_row_id>";
150         
151                                 $line["caption"] = htmlspecialchars($line["caption"]);
152         
153                                 print "<td width='5%' align='center'><input 
154                                         onclick='toggleSelectPrefRow(this, \"label\");' 
155                                         type=\"checkbox\" id=\"LICHK-".$line["id"]."\"></td>";
156         
157                                 print "<td><span id=\"LILT-".$line["id"]."\">" . $line["caption"] . 
158                                         "</span></td>";
159
160                                 print "</tr>";
161         
162                                 ++$lnum;
163                         }
164
165                         print "</table>";
166         
167                         print "<p id=\"labelOpToolbar\">";
168                         print "<input type=\"submit\" class=\"button\" disabled=\"true\"
169                                 onclick=\"javascript:removeSelectedLabels()\" value=\"".__('Remove')."\">";
170                         print "</p>";
171
172                 } else {
173                         print "<p>";
174                         if (!$label_search) {
175                                 print __('No labels defined.');
176                         } else {
177                                 print __('No matching labels found.');
178                         }
179                         print "</p>";
180
181                 }
182         }
183 ?>