2 /************************************************************************/
\r
4 /************************************************************************/
\r
5 /* Copyright (c) 2002-2008 by Greg Gay, Joel Kronenberg & Heidi Hazelton*/
\r
6 /* Adaptive Technology Resource Centre / University of Toronto */
\r
7 /* http://atutor.ca */
\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: patch_edit_interface.tmpl.php 7208 2008-03-13 16:07:24Z cindy $
\r
15 require ('include/json.inc.php');
\r
16 require (AT_INCLUDE_PATH.'header.inc.php');
\r
19 <form enctype="multipart/form-data" action='<?php echo $url; ?>' method="post" name="form" target="messageIFrame">
\r
21 <div class="input-form">
\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
27 <div class="required" title="<?php echo _AT('required_field'); ?>">*</div><label for="atutor_patch_id"><?php echo _AT('atutor_patch_id'); ?></label><br />
\r
28 <small>· <?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
33 <div class="required" title="<?php echo _AT('required_field'); ?>">*</div><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
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
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
48 <label for="dependent_patches"><?php echo _AT('dependent_patches'); ?></label><br />
\r
52 <table id="dependent_patches" class="data" rules="cols" align="left" style="width: 50%;">
\r
55 <th scope="col"><?php echo _AT('dependent_patch_id'); ?></th>
\r
61 // when edit existing patch
\r
62 if ($result_patch_dependent)
\r
64 $num_of_dependents = mysql_num_rows($result_patch_dependent);
\r
65 while ($row_patch_dependent = mysql_fetch_assoc($result_patch_dependent))
\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
75 // when creating new patch
\r
76 if ($num_of_dependents == 0)
\r
80 <td><input id="dependent_patch" name="dependent_patch[]" type="text" maxlength="100" size="100" style="max-width:100%; display:block" /></td>
\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
100 <br /><br /><br /><br /><br /><br />
\r
102 <label for="filesDiv"><?php echo _AT('files'); ?></label><br />
\r
103 <small>· <?php echo _AT('relative_directory'); ?></small>
\r
106 <div id="filesDiv" class="row">
\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
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/patcher/myown_patches.php'" />
\r
124 <script language="JavaScript" type="text/javascript">
\r
127 myescape = function(/*string*/ str) {
\r
128 return str.replace(/(['"\.*+?^${}()|[\]\/\\])/g, "\\$1").replace(/\n/g, '\\n');
\r
131 function show_message()
\r
133 var messageDIV = document.getElementById("messageDIV");
\r
134 var i = document.getElementById("messageIFrame");
\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
141 var d = window.frames[id].document;
\r
143 messageDIV.innerHTML = d.body.innerHTML;
\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
152 var dependents = document.form["dependent_patch[]"];
\r
153 dependents[dependents.length - 1].focus();
\r
154 // document.form['dependent_patch['+ pos +']'].focus();
\r
157 var num_of_files = 0;
\r
158 function add_file(filedata) {
\r
159 var newDiv = document.createElement("div");
\r
161 newDiv.innerHTML = ACTION_HTML_TEMPLATE.replace(/\{1\}/g, num_of_files);
\r
162 document.getElementById("filesDiv").appendChild(newDiv);
\r
164 document.form['rb_action[' +num_of_files +']'][0].focus();
\r
167 var srcElement = null;
\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
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
179 // set uploaded file
\r
180 if (filedata.uploaded_file != "")
\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
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
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
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
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
214 // set uploaded file
\r
215 if (filedata.uploaded_file != "")
\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
226 show_content({srcElement:srcElement});
\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
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
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" checked onclick="show_content(event);" /><label for="add"><?php echo _AT("add"); ?></label> \
\r
255 <input type="radio" name="rb_action[{1}]" value="alter" id="alter" onclick="show_content(event);" /><label for="alter"><?php echo _AT("alter"); ?></label> \
\r
256 <input type="radio" name="rb_action[{1}]" value="delete" id="delete" onclick="show_content(event);" /><label for="delete"><?php echo _AT("delete"); ?></label> \
\r
257 <input type="radio" name="rb_action[{1}]" value="overwrite" id="overwrite" onclick="show_content(event);" /><label for="overwrite"><?php echo _AT("overwrite"); ?></label> \
\r
261 <table style="display:" width="100%"> \
\r
263 <td width="150px"><?php echo _AT("file_name"); ?></td> \
\r
264 <td><input name="add_filename[{1}]" type="text" /></td> \
\r
267 <td><?php echo _AT("directory"); ?></td> \
\r
268 <td><input name="add_dir[{1}]" type="text" /></td> \
\r
270 <tr style="display: none"> \
\r
271 <td><?php echo _AT("file"); ?></td> \
\r
273 <td><INPUT TYPE="hidden" NAME="add_uploaded_file[{1}]" SIZE="40" style="max-width:100%" /></td> \
\r
276 <td><?php echo _AT("upload_file"); ?></td> \
\r
277 <td><INPUT TYPE="file" NAME="add_upload_file[{1}]" SIZE="40" style="max-width:100%" /></td> \
\r
280 <table style="display: none" width="100%"> \
\r
282 <td width="150px"><?php echo _AT("file_name"); ?></td> \
\r
283 <td><input name="alter_filename[{1}]" type="text" maxlength="100" size="100" /></td> \
\r
286 <td><?php echo _AT("directory"); ?></td> \
\r
287 <td><input name="alter_dir[{1}]" type="text" maxlength="100" size="100" style="max-width:100%" /></td> \
\r
290 <td><?php echo _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
294 <td><?php echo _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
298 <table style="display: none" width="100%"> \
\r
300 <td width="150px"><?php echo _AT("file_name"); ?></td> \
\r
301 <td><input name="delete_filename[{1}]" type="text" maxlength="100" size="100" /></td> \
\r
304 <td><?php echo _AT("directory"); ?></td> \
\r
305 <td><input name="delete_dir[{1}]" type="text" maxlength="100" size="100" /></td> \
\r
308 <table style="display: none" width="100%"> \
\r
310 <td width="150px"><?php echo _AT("file_name"); ?></td> \
\r
311 <td><input name="overwrite_filename[{1}]" type="text" /></td> \
\r
314 <td><?php echo _AT("directory"); ?></td> \
\r
315 <td><input name="overwrite_dir[{1}]" type="text" maxlength="100" size="100" /></td> \
\r
317 <tr id="overwrite_uploaded_file" style="display:none"> \
\r
318 <td><?php echo _AT("file"); ?></td> \
\r
320 <td><INPUT type="hidden" NAME="overwrite_uploaded_file[{1}]" SIZE="40" style="max-width:100%" /></td> \
\r
323 <td><?php echo _AT("upload_file"); ?></td> \
\r
324 <td><INPUT TYPE="file" NAME="overwrite_upload_file[{1}]" SIZE="40" style="max-width:100%" /></td> \
\r
328 <div class="row buttons" style="float:left"> \
\r
329 <input type="button" value="<?php echo _AT("delete_this_file"); ?>" onClick="del_file(event)" /> \
\r
339 <script language="JavaScript" type="text/javascript">
\r
340 var patch_files = <?php echo json_encode_result($result_patch_files); ?>;
\r
342 window.onload = function() {
\r
343 for(var i=0; i<patch_files.length; i++) {
\r
344 add_file(patch_files[i]);
\r
349 <?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>
\r