Mercurial > hg > LGToc
comparison check_sections.php @ 0:723a162b6627
first commit
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 19 Mar 2015 15:06:34 +0100 |
parents | |
children | 1f9d2bfe1d13 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:723a162b6627 |
---|---|
1 <?php | |
2 include_once('Lib_mb_utf8.php'); | |
3 include_once('config.php'); | |
4 include_once('edit_section_db.php'); | |
5 set_time_limit(0); | |
6 ini_set('memory_limit', '-1'); | |
7 | |
8 $link_mysql = mysql_connect($mysql_server, $mysql_user, $mysql_password); | |
9 mysql_query("SET NAMES utf8"); | |
10 | |
11 if (!$link_mysql) { | |
12 die('Could not connect: ' . mysql_error()); | |
13 } | |
14 | |
15 $db_selected = mysql_select_db($mysql_database, $link_mysql); | |
16 if (!$db_selected) { | |
17 die ('Can\'t use foo : ' . mysql_error()); | |
18 } | |
19 | |
20 if (isset($_POST['func'])){ | |
21 switch ($_POST['func']) { | |
22 case 'UpdateTOCstatus': | |
23 UpdateTOCstatus($_POST['id'],$_POST['status']); | |
24 break; | |
25 | |
26 case 'UpdateTOCcomments': | |
27 UpdateTOCcomments($_POST['id'],$_POST['notes']); | |
28 break; | |
29 default: | |
30 # code... | |
31 break; | |
32 } | |
33 } | |
34 | |
35 | |
36 function UpdateTOCcomments($id, $notes) { | |
37 $query = "UPDATE books SET comments='".$notes."' WHERE id='".$id."'"; | |
38 | |
39 $result = mysql_query($query); | |
40 if (!$result){ | |
41 echo mysql_error(); | |
42 echo ("Failed during updating books table."); | |
43 } | |
44 | |
45 } | |
46 | |
47 function UpdateTOCstatus($id, $status) { | |
48 | |
49 $query = "UPDATE books SET toc_correction='".$status."' WHERE id='".$id."'"; | |
50 | |
51 $result = mysql_query($query); | |
52 if (!$result){ | |
53 echo mysql_error(); | |
54 echo ("Failed during updating books table."); | |
55 } | |
56 } | |
57 | |
58 function checkSections($count){ | |
59 | |
60 /* $query="SELECT books.name AS book_name, books.level1, books.level2, books.period, books.id, sections.name, start_page, end_page, COUNT( * ) AS count | |
61 FROM sections | |
62 JOIN books ON sections.books_id = books.id | |
63 WHERE NOT EXISTS | |
64 (SELECT 1 FROM sections_versions WHERE books_id=sections.books_id) | |
65 GROUP BY books_id, start_page, end_page | |
66 HAVING COUNT( * ) >=".$count." | |
67 ORDER BY COUNT( * ) DESC ";*/ | |
68 $query="(SELECT books.name AS book_name, books.level1, books.level2, books.period, books.id, sections.name, start_page, end_page, COUNT( * ) AS count | |
69 FROM sections | |
70 JOIN books ON sections.books_id = books.id | |
71 WHERE NOT EXISTS | |
72 (SELECT 1 FROM sections_versions WHERE books_id=sections.books_id) | |
73 GROUP BY books_id, start_page, end_page | |
74 HAVING COUNT( * ) >=".$count.") | |
75 UNION | |
76 (SELECT books.name AS book_name, books.level1, books.level2, books.period, books.id, sections_revisions.name, start_page, end_page, COUNT( * ) AS count | |
77 FROM sections_revisions | |
78 JOIN books ON sections_revisions.books_id = books.id | |
79 JOIN ( | |
80 SELECT sections_versions.id | |
81 FROM sections_versions WHERE sections_versions.version=(SELECT MAX(version) FROM sections_versions) | |
82 GROUP BY books_id | |
83 ) AS t ON t.id=sections_revisions.versions_id | |
84 WHERE deleted=0 | |
85 GROUP BY books_id, versions_id,start_page, end_page | |
86 HAVING COUNT( * ) >=".$count.") | |
87 ORDER BY count DESC "; | |
88 $result = mysql_query($query); | |
89 echo mysql_num_rows($result)." result(s)<br><br>"; | |
90 echo "<table>"; | |
91 echo "<tr>"; | |
92 echo "<td class='bookName'>book name<td class='level1'>level1<td class='level2'>level2<td class='period'>period<td class='sectionName'>section name<td class='sectionName'>page<td class='page'>count"; | |
93 while ($row = mysql_fetch_assoc($result)) { | |
94 $str="<tr>"; | |
95 $str.="<td>".$row['book_name']; | |
96 $str.="<td>".$row['level1']; | |
97 $str.="<td>".$row['level2']; | |
98 $str.="<td>".$row['period']; | |
99 $str.="<td><a href='tagging_text.php?id=".$row['id']."' target='_blank'>".$row['name']."</a>"; | |
100 $str.="<td>p".$row['start_page']."-".$row['end_page']; | |
101 $str.="<td><a href='check_sections_details.php?book_id=".$row['id']."&count=".$count."' target='_blank'>".$row['count']."</a>"; | |
102 echo $str; | |
103 } | |
104 echo "</table>"; | |
105 } | |
106 | |
107 | |
108 // sorting by the $sort_by parameter | |
109 function checkSections_sort_by($sort_by){ | |
110 switch ($sort_by) { | |
111 case 'time': | |
112 $query="(SELECT name AS book_name,level1,level2,period,dynasty,start_year,id,toc_correction,comments FROM books ORDER BY start_year)"; | |
113 $result = mysql_query($query); | |
114 echo mysql_num_rows($result)." result(s)<br><br>"; | |
115 | |
116 echo "<form autocomplete='off'>"; | |
117 echo "<table>"; | |
118 echo "<tr>"; | |
119 echo "<td class='bookName'>book name<td class='level1'>level1<td class='level2'>level2 | |
120 <td class='period'>period<td class='dynasty'>dynasty<td class='start_year'>start_year | |
121 <td class='last_editor'>last_editor<td class='level1'>edit_time | |
122 <td> <td> <td> Some notes for the book (optional)"; | |
123 while ($row = mysql_fetch_assoc($result)) { | |
124 $str="<tr>"; | |
125 $str.="<td>".$row['book_name']; | |
126 $str.="<td>".$row['level1']; | |
127 $str.="<td>".$row['level2']; | |
128 $str.="<td>".$row['period']; | |
129 $str.="<td>".$row['dynasty']; | |
130 $str.="<td>".$row['start_year']; | |
131 | |
132 $id = $row['id']; | |
133 | |
134 // query last_editor and last_edit_time | |
135 $query_editor = "(SELECT editor, date from sections_versions WHERE books_id='".$row['id']."' ORDER BY version DESC)"; | |
136 $row_sections_versions = mysql_fetch_assoc(mysql_query($query_editor)); // the first one | |
137 $last_editor = $row_sections_versions['editor']; | |
138 $last_edit_time = $row_sections_versions['date']; | |
139 $str.="<td>".$last_editor; | |
140 $str.="<td>".$last_edit_time; | |
141 | |
142 $str.="<td><a href='check_sections_details.php?book_id=".$row['id']."&count=100"."' target='_blank'>"."Edit"."</a>"; | |
143 | |
144 switch ($row['toc_correction']) { | |
145 | |
146 case '0': | |
147 $str.="<td> <input type='checkbox' name='".$id."' onchange='toc_status(this)' /> Finished"; | |
148 break; | |
149 | |
150 case '1': | |
151 $str.="<td> <input type='checkbox' name='".$id."' onchange='toc_status(this)' checked='true' /> Finished"; | |
152 break; | |
153 default: | |
154 break; | |
155 } | |
156 // comments for book | |
157 $comments = $row['comments']; | |
158 if ($comments != "") { | |
159 $str.="<td> <textarea rows='1' cols='30' name='".$id."' maxlength='100' onchange='toc_comments(this)'>".$comments."</textarea>"; | |
160 } else { | |
161 $str.="<td> <textarea rows='1' cols='30' name='".$id."' maxlength='100' onchange='toc_comments(this)'></textarea>"; | |
162 } | |
163 echo $str; | |
164 | |
165 } | |
166 echo "</table>"; | |
167 echo "</form>"; | |
168 break; | |
169 | |
170 default: | |
171 # code... | |
172 echo "no sorting parameter set"; | |
173 break; | |
174 } | |
175 } | |
176 | |
177 ?> | |
178 | |
179 | |
180 | |
181 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> | |
182 <html> | |
183 <head> | |
184 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | |
185 <link href="css/search.css" type="text/css" rel="stylesheet"/> | |
186 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> | |
187 <!--<script src="js/check_sections.js" charset="utf-8"></script>!--> | |
188 </head> | |
189 <body> | |
190 <form action='check_sections.php' method='GET'> | |
191 find sections overlapping more than <input type="text" name="count"> other sections | |
192 <input type="submit" name="find" value="find"> | |
193 </form> | |
194 <br> | |
195 <div id="search_result"> | |
196 <?php | |
197 if(isset($_GET['find']) && $_GET['count']!='' && is_numeric($_GET['count'])){ | |
198 checkSections($_GET['count']); | |
199 } | |
200 else if(isset($_GET['sort_by'])){ | |
201 checkSections_sort_by($_GET['sort_by']); | |
202 } | |
203 ?> | |
204 </div> | |
205 </body> | |
206 | |
207 | |
208 <script type="text/javascript"> | |
209 | |
210 function toc_status(t) { | |
211 var id = t.name; | |
212 var val; | |
213 | |
214 if (t.checked) { | |
215 val = '1'; | |
216 } else { | |
217 val = '0'; | |
218 } | |
219 | |
220 $.ajax({ | |
221 url : './check_sections.php', | |
222 async : false, | |
223 type : 'POST', | |
224 data : 'func=UpdateTOCstatus'+'&id='+id+'&status='+val, | |
225 complete: function(){ | |
226 switch (val){ | |
227 case '0': | |
228 alert('You update the status of book to "Not Finished"!'); | |
229 break; | |
230 case '1': | |
231 alert('You update the status of book to "Finished"!'); | |
232 break; | |
233 } | |
234 | |
235 }, | |
236 error:function() { | |
237 console.log("error to update toc status"); | |
238 alert('You have NOT updated the status of book. If this issue remains, please contact us. Thanks.'); | |
239 } | |
240 }); | |
241 | |
242 } | |
243 | |
244 function toc_comments(t) { | |
245 console.log(t.value); | |
246 var text = t.value; | |
247 var id = t.name; | |
248 | |
249 $.ajax({ | |
250 url: './check_sections.php', | |
251 async : false, | |
252 type: 'POST', | |
253 data: 'func=UpdateTOCcomments'+'&id='+id+'¬es='+text, | |
254 complete: function(){ | |
255 console.log('You update the comments of book!'); | |
256 }, | |
257 error:function() { | |
258 console.log("error to update toc comments"); | |
259 alert('You have NOT updated the status of book. If this issue remains, please contact us. Thanks.'); | |
260 } | |
261 }); | |
262 | |
263 } | |
264 </script> | |
265 | |
266 | |
267 | |
268 </html> | |
269 | |
270 <?php | |
271 ?> |