move code up one directory
[atutor.git] / mods / _standard / patcher / patch_edit_interface.tmpl.php
1 <?php\r
2 /************************************************************************/\r
3 /* ATutor                                                               */\r
4 /************************************************************************/\r
5 /* Copyright (c) 2002-2010                                              */\r
6 /* Inclusive Design Institute                                           */\r
7 /* http://atutor.ca                                                     */\r
8 /*                                                                      */\r
9 /* This program is free software. You can redistribute it and/or        */\r
10 /* modify it under the terms of the GNU General Public License          */\r
11 /* as published by the Free Software Foundation.                        */\r
12 /************************************************************************/\r
13 // $Id$\r
14 \r
15 require ('include/json.inc.php');\r
16 require (AT_INCLUDE_PATH.'header.inc.php');\r
17 ?>\r
18 \r
19 <form enctype="multipart/form-data" action='<?php echo $url; ?>' method="post" name="form" target="messageIFrame">\r
20 \r
21 <div class="input-form">\r
22 \r
23 <iframe id="messageIFrame" name="messageIFrame" src='' style='width:1px;height:1px;border:0' onload="show_message()"></iframe>\r
24 <div id="messageDIV"></div>\r
25         \r
26         <div class="row">\r
27                 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="atutor_patch_id"><?php echo _AT('atutor_patch_id'); ?></label><br />\r
28                 <small>&middot; <?php echo _AT('contain_only'); ?></small><br />\r
29                 <input id="atutor_patch_id" name="atutor_patch_id" type="text" maxlength="100" size="30" value="<?php echo $row_patches['atutor_patch_id']; ?>" /><br />\r
30         </div>\r
31 \r
32         <div class="row">\r
33                 <span class="required" title="<?php echo _AT('required_field'); ?>">*</span><label for="atutor_version_to_apply"><?php echo _AT('atutor_version_to_apply'); ?></label><br />\r
34                 <input id="atutor_version_to_apply" name="atutor_version_to_apply" type="text" maxlength="100" size="30" value="<?php echo $row_patches['applied_version']; ?>" /><br />\r
35         </div>\r
36 \r
37         <div class="row">\r
38                 <label for="description"><?php echo _AT('description'); ?></label><br />\r
39                 <textarea id="description" name="description" cols="40" rows="4"><?php echo $row_patches['description']; ?></textarea><br />\r
40         </div>\r
41 \r
42         <div class="row">\r
43                 <label for="sql_statement"><?php echo _AT('sql_statement'); ?></label><br />\r
44                 <textarea id="sql_statement" name="sql_statement" cols="40" rows="8"><?php echo $row_patches['sql_statement']; ?></textarea><br />\r
45         </div>\r
46 \r
47         <div class="row">\r
48                 <label for="dependent_patches"><?php echo _AT('dependent_patches'); ?></label><br />\r
49         </div>\r
50 \r
51         <div class="row">\r
52                 <table id="dependent_patches" class="data" rules="cols" align="left" style="width: 50%;">\r
53                 <thead>\r
54                 <tr>\r
55                         <th scope="col"><?php echo _AT('dependent_patch_id'); ?></th>\r
56                 </tr>\r
57                 </thead>\r
58 \r
59                 <tbody>\r
60 <?php\r
61 // when edit existing patch\r
62 if ($result_patch_dependent)  \r
63 {\r
64         $num_of_dependents = mysql_num_rows($result_patch_dependent);\r
65         while ($row_patch_dependent = mysql_fetch_assoc($result_patch_dependent))\r
66         {\r
67         ?>\r
68                         <tr>\r
69                                 <td><input id="dependent_patch" name="dependent_patch[]" value="<?php echo $row_patch_dependent['dependent_patch_id']; ?>" type="text" maxlength="100" size="100" style="max-width:100%; display:block" /></td>\r
70                         </tr>\r
71         <?php\r
72         }\r
73 }\r
74 \r
75 // when creating new patch\r
76 if ($num_of_dependents == 0)\r
77 {\r
78 ?>\r
79                 <tr>\r
80                         <td><input id="dependent_patch" name="dependent_patch[]" type="text" maxlength="100" size="100" style="max-width:100%; display:block" /></td>\r
81                 </tr>\r
82                 </tbody>\r
83 <?php\r
84 }\r
85 ?>\r
86         \r
87                 <tfoot>\r
88                 <tr>\r
89                         <td colspan="4">\r
90                                 <div class="buttons"  style="float:left">\r
91                                         <input type="button" name="add_dependent_patch" value="<?php echo _AT('add_dependent_patch'); ?>" onclick="add_dependent()" />\r
92                                 </div>\r
93                         </td>\r
94                 </tr>\r
95                 </tfoot>\r
96 \r
97                 </table>\r
98         </div>\r
99         \r
100         <br /><br /><br /><br /><br /><br />\r
101         <div class="row">\r
102                 <label for="filesDiv"><?php echo _AT('files'); ?></label><br />\r
103                 <small>&middot; <?php echo _AT('relative_directory'); ?></small>\r
104         </div>\r
105 \r
106         <div id="filesDiv" class="row">\r
107         </div>\r
108 \r
109         <div class="row buttons"  style="float:left">\r
110                 <input type="button" name="add_a_file" value="<?php echo _AT('add_a_file'); ?>" onclick="add_file()" />\r
111         </div>\r
112         \r
113         <br /><br />\r
114         \r
115         <div class="row buttons">\r
116                 <input type="submit" name="create" value=" <?php echo _AT('create_patch'); ?> " accesskey="c" />\r
117                 <input type="submit" name="save" value=" <?php echo _AT('save'); ?> " accesskey="s" onclick="document.form.target=''; "/>\r
118                 <input type="button" name="cancel" value=" <?php echo _AT('cancel'); ?> " onclick="location.href='mods/_standard/patcher/myown_patches.php'" />\r
119         </div>\r
120 \r
121 </div>\r
122 </form>\r
123 \r
124 <script language="JavaScript" type="text/javascript">\r
125 //<!--\r
126 \r
127 myescape = function(/*string*/ str) {\r
128     return str.replace(/(['"\.*+?^${}()|[\]\/\\])/g, "\\$1").replace(/\n/g, '\\n');\r
129 }\r
130 \r
131 function show_message()\r
132 {\r
133         var messageDIV = document.getElementById("messageDIV"); \r
134         var i = document.getElementById("messageIFrame"); \r
135         \r
136   if (i.contentDocument) {\r
137       var d = i.contentDocument;\r
138   } else if (i.contentWindow) {\r
139       var d = i.contentWindow.document;\r
140   } else {\r
141       var d = window.frames[id].document;\r
142   }     \r
143         messageDIV.innerHTML = d.body.innerHTML;\r
144 }\r
145 \r
146 function add_dependent() {\r
147   var dependentPatchesTable = document.getElementById("dependent_patches").tBodies[0];\r
148   var dependentPatch = dependentPatchesTable.rows[dependentPatchesTable.rows.length - 1].cloneNode(true);\r
149   dependentPatchesTable.appendChild(dependentPatch);\r
150   dependentPatch.cells[0].firstChild.value='';\r
151   \r
152   var dependents = document.form["dependent_patch[]"];\r
153   dependents[dependents.length - 1].focus();\r
154     //  document.form['dependent_patch['+ pos +']'].focus();\r
155 }\r
156 \r
157 var num_of_files = 0;\r
158 function add_file(filedata) {\r
159         var newDiv = document.createElement("div");\r
160         \r
161         newDiv.innerHTML = ACTION_HTML_TEMPLATE.replace(/\{1\}/g, num_of_files);\r
162         document.getElementById("filesDiv").appendChild(newDiv);\r
163         \r
164         document.form['rb_action[' +num_of_files +']'][0].focus();\r
165         \r
166         if(filedata) {\r
167                 var srcElement = null;\r
168 \r
169                 if(filedata.action=="add") {\r
170                         // set focus on radio button "add"\r
171                         document.form['rb_action[' +num_of_files +']'][0].checked = true;\r
172                         document.form['rb_action[' +num_of_files +']'][0].focus();\r
173 \r
174                         // set value\r
175                         srcElement = document.form['rb_action[' +num_of_files +']'][0];\r
176                         document.form['add_filename[' +num_of_files +']'].value = filedata.name;\r
177                         document.form['add_dir[' +num_of_files +']'].value = filedata.location;\r
178                         \r
179                         // set uploaded file\r
180                         if (filedata.uploaded_file != "")\r
181                         {\r
182                                 document.form['add_uploaded_file[' +num_of_files +']'].value = filedata.uploaded_file;\r
183                                 var tables = newDiv.getElementsByTagName('TABLE');\r
184                                 tables[0].rows[2].style.display='';    // display the row of uploaded file\r
185                                 tables[0].rows[2].cells[1].innerHTML=filedata.uploaded_file;    // display uploaded file name\r
186                                 tables[0].rows[3].cells[0].innerHTML='<?php echo _AT("replace_file"); ?>';    // change label from "upload file" to "replace file"\r
187                         }\r
188                         \r
189                         // set uploaded file\r
190                 } else if(filedata.action=="alter") {\r
191                         document.form['rb_action[' +num_of_files +']'][1].checked = true;\r
192                         document.form['rb_action[' +num_of_files +']'][1].focus();\r
193 \r
194                         srcElement = document.form['rb_action[' +num_of_files +']'][1];\r
195                         document.form['alter_filename[' +num_of_files +']'].value = filedata.name;\r
196                         document.form['alter_dir[' +num_of_files +']'].value = filedata.location;\r
197                         document.form['alter_code_from[' +num_of_files +']'].value = filedata.code_from;\r
198                         document.form['alter_code_to[' +num_of_files +']'].value = filedata.code_to;\r
199                 } else if(filedata.action=="delete") {\r
200                         document.form['rb_action[' +num_of_files +']'][2].checked = true;\r
201                         document.form['rb_action[' +num_of_files +']'][2].focus();\r
202 \r
203                         srcElement = document.form['rb_action[' +num_of_files +']'][2];\r
204                         document.form['delete_filename[' +num_of_files +']'].value = filedata.name;\r
205                         document.form['delete_dir[' +num_of_files +']'].value = filedata.location;\r
206                 } if(filedata.action=="overwrite") {\r
207                         document.form['rb_action[' +num_of_files +']'][3].checked = true;\r
208                         document.form['rb_action[' +num_of_files +']'][3].focus();\r
209 \r
210                         srcElement = document.form['rb_action[' +num_of_files +']'][3];\r
211                         document.form['overwrite_filename[' +num_of_files +']'].value = filedata.name;\r
212                         document.form['overwrite_dir[' +num_of_files +']'].value = filedata.location;\r
213 \r
214                         // set uploaded file\r
215                         if (filedata.uploaded_file != "")\r
216                         {\r
217                                 document.form['overwrite_uploaded_file[' +num_of_files +']'].value = filedata.uploaded_file;\r
218                                 var tables = newDiv.getElementsByTagName('TABLE');\r
219                                 tables[3].rows[2].style.display='';    // display the row of uploaded file\r
220                                 tables[3].rows[2].cells[1].innerHTML=filedata.uploaded_file;    // display uploaded file name\r
221                                 tables[3].rows[3].cells[0].innerHTML='<?php echo _AT("replace_file"); ?>';    // change label from "upload file" to "replace file"\r
222                         }\r
223                         \r
224                 }\r
225                 \r
226                 show_content({srcElement:srcElement});\r
227         }\r
228 \r
229         num_of_files++;\r
230 }\r
231 \r
232 function del_file(evt) {\r
233         var target =(evt.srcElement)?evt.srcElement:evt.currentTarget;\r
234         var div =  target.parentNode.parentNode ;\r
235         div.parentNode.removeChild(div);\r
236 }\r
237 \r
238 function show_content(evt) {\r
239         var target =(evt.srcElement)?evt.srcElement:evt.currentTarget;\r
240         var tables = target.parentNode.parentNode.getElementsByTagName('TABLE');\r
241         tables[0].style.display='none';\r
242         tables[1].style.display='none';\r
243         tables[2].style.display='none';\r
244         tables[3].style.display='none';\r
245         if(target.value == 'add') tables[0].style.display='';\r
246         if(target.value == 'alter') tables[1].style.display='';\r
247         if(target.value == 'delete') tables[2].style.display='';\r
248         if(target.value == 'overwrite') tables[3].style.display='';\r
249 }\r
250 \r
251 var ACTION_HTML_TEMPLATE = ' \\r
252 <div style="border-width:thin; border-style:solid; padding: 5px 5px 5px 5px; margin:5px 5px 5px 5px"> \\r
253         <div style="float:left">Action:  \\r
254                 <input type="radio" name="rb_action[{1}]" value="add" id="add[{1}]" checked onclick="show_content(event);" /><label for="add[{1}]"><?php echo addslashes(_AT("add")); ?></label> \\r
255                 <input type="radio" name="rb_action[{1}]" value="alter" id="alter[{1}]" onclick="show_content(event);" /><label for="alter[{1}]"><?php echo addslashes(_AT("alter")); ?></label> \\r
256                 <input type="radio" name="rb_action[{1}]" value="delete" id="delete[{1}]" onclick="show_content(event);" /><label for="delete[{1}]"><?php echo addslashes(_AT("delete")); ?></label> \\r
257                 <input type="radio" name="rb_action[{1}]" value="overwrite" id="overwrite[{1}]" onclick="show_content(event);" /><label for="overwrite[{1}]"><?php echo addslashes(_AT("overwrite")); ?></label> \\r
258         </div> \\r
259         <br /><br /> \\r
260         <div> \\r
261         <table style="display:" width="100%"> \\r
262                 <tr> \\r
263                         <td width="150px"><?php echo addslashes(_AT("file_name")); ?></td> \\r
264                         <td><input name="add_filename[{1}]" type="text"  /></td> \\r
265                 </tr> \\r
266                 <tr> \\r
267                         <td><?php echo addslashes(_AT("directory")); ?></td> \\r
268                         <td><input name="add_dir[{1}]" type="text"  /></td> \\r
269                 </tr> \\r
270                 <tr style="display: none"> \\r
271                         <td><?php echo addslashes(_AT("file")); ?></td> \\r
272                         <td></td> \\r
273                         <td><INPUT TYPE="hidden" NAME="add_uploaded_file[{1}]" SIZE="40" style="max-width:100%" /></td> \\r
274                 </tr> \\r
275                 <tr> \\r
276                         <td><?php echo addslashes(_AT("upload_file")); ?></td> \\r
277                         <td><INPUT TYPE="file" NAME="add_upload_file[{1}]" SIZE="40" style="max-width:100%" /></td> \\r
278                 </tr> \\r
279         </table> \\r
280         <table style="display: none" width="100%"> \\r
281                 <tr> \\r
282                         <td width="150px"><?php echo addslashes(_AT("file_name")); ?></td> \\r
283                         <td><input name="alter_filename[{1}]" type="text" maxlength="100" size="100" /></td> \\r
284                 </tr> \\r
285                 <tr> \\r
286                         <td><?php echo addslashes(_AT("directory")); ?></td> \\r
287                         <td><input name="alter_dir[{1}]" type="text" maxlength="100" size="100" style="max-width:100%" /></td> \\r
288                 </tr> \\r
289                 <tr> \\r
290                         <td><?php echo addslashes(_AT("code_to_replace_from")); ?></td> \\r
291                         <td><textarea name="alter_code_from[{1}]" rows="5" cols="120" style="max-width:100%"></textarea></td> \\r
292                 </tr> \\r
293                 <tr> \\r
294                         <td><?php echo addslashes(_AT("code_to_replace_to")); ?></td> \\r
295                         <td><textarea name="alter_code_to[{1}]" rows="5" cols="120" style="max-width:100%"></textarea></td> \\r
296                 </tr> \\r
297         </table> \\r
298         <table style="display: none" width="100%"> \\r
299                 <tr> \\r
300                         <td width="150px"><?php echo addslashes(_AT("file_name")); ?></td> \\r
301                         <td><input name="delete_filename[{1}]" type="text" maxlength="100" size="100" /></td> \\r
302                 </tr> \\r
303                 <tr> \\r
304                         <td><?php echo addslashes(_AT("directory")); ?></td> \\r
305                         <td><input name="delete_dir[{1}]" type="text" maxlength="100" size="100" /></td> \\r
306                 </tr> \\r
307         </table> \\r
308         <table style="display: none" width="100%"> \\r
309                 <tr> \\r
310                         <td width="150px"><?php echo addslashes(_AT("file_name")); ?></td> \\r
311                         <td><input name="overwrite_filename[{1}]" type="text" /></td> \\r
312                 </tr> \\r
313                 <tr> \\r
314                         <td><?php echo addslashes(_AT("directory")); ?></td> \\r
315                         <td><input name="overwrite_dir[{1}]" type="text" maxlength="100" size="100" /></td> \\r
316                 </tr> \\r
317                 <tr id="overwrite_uploaded_file" style="display:none"> \\r
318                         <td><?php echo addslashes(_AT("file")); ?></td> \\r
319                         <td></td> \\r
320                         <td><INPUT type="hidden" NAME="overwrite_uploaded_file[{1}]" SIZE="40" style="max-width:100%" /></td> \\r
321                 </tr> \\r
322                 <tr> \\r
323                         <td><?php echo addslashes(_AT("upload_file")); ?></td> \\r
324                         <td><INPUT TYPE="file" NAME="overwrite_upload_file[{1}]" SIZE="40" style="max-width:100%" /></td> \\r
325                 </tr> \\r
326         </table> \\r
327         </div> \\r
328         <div class="row buttons" style="float:left"> \\r
329                 <input type="button" value="<?php echo addslashes(_AT("delete_this_file")); ?>" onclick="del_file(event)" /> \\r
330         </div> \\r
331         <br /><br /> \\r
332 </div> \\r
333 ';\r
334 \r
335 //-->\r
336 </script>\r
337 \r
338 \r
339 <script language="JavaScript" type="text/javascript">\r
340         var patch_files = <?php echo json_encode_result($result_patch_files); ?>;\r
341         \r
342         window.onload = function() {\r
343                 for(var i=0; i<patch_files.length; i++) {\r
344                         add_file(patch_files[i]);\r
345                 }\r
346         }\r
347 </script>\r
348         \r
349 <?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>\r