7b03703c55aa84c9a3f12b78b728bce981bf6e31
[atutor.git] / mods / gradebook / html / grade_scale_add_edit.inc.php
1 <?php\r
2 /************************************************************************/\r
3 /* ATutor                                                                                                                               */\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
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: grade_scale_add.php 7208 2008-05-28 16:07:24Z cindy $\r
14 \r
15 /************************************************************************/\r
16 /*\r
17 /* This script is called by gradebook/grade_scale_add.php, gradebook/grade_scale_edit.php\r
18 /* to add/edit grade scales\r
19 /*\r
20 /* Required parameter: $action: "add" or "edit"\r
21 /*\r
22 /************************************************************************/\r
23 \r
24 $page = 'gradebook';\r
25 \r
26 define('AT_INCLUDE_PATH', '../../include/');\r
27 require (AT_INCLUDE_PATH.'vitals.inc.php');\r
28 authenticate(AT_PRIV_GRADEBOOK);\r
29 \r
30 require('lib/gradebook.inc.php');\r
31 \r
32 if (isset($_POST['action'])) $action = $_POST['action'];\r
33 \r
34 if (isset($_POST['cancel'])) \r
35 {\r
36         $msg->addFeedback('CANCELLED');\r
37         header('Location: grade_scale.php');\r
38         exit;\r
39\r
40 else if (isset($_POST['submit'])) \r
41 {\r
42         $_POST['scale_name']    = trim($_POST['scale_name']);\r
43 \r
44         $empty_fields = array();\r
45         if ($_POST['scale_value'][0] == '') \r
46         {\r
47                 $empty_fields[] = _AT('scale_value').' at line 1';\r
48         }\r
49 \r
50         if ($_POST['percentage_from'][0] == '') \r
51         {\r
52                 $empty_fields[] = _AT('percentage_from').' at line 1';\r
53         }\r
54 \r
55         if ($_POST['percentage_to'][0] == '') \r
56         {\r
57                 $empty_fields[] = _AT('percentage_to').' at line 1';\r
58         }\r
59 \r
60         if (!empty($empty_fields)) \r
61         {\r
62                 $msg->addError(array('EMPTY_FIELDS', implode(', ', $empty_fields)));\r
63         }\r
64 \r
65         if (!$msg->containsErrors()) \r
66         {\r
67                 $_POST['scale_name']   = $addslashes($_POST['scale_name']);\r
68 \r
69                 if ($action == "add")\r
70                 {\r
71                         $sql    = "INSERT INTO ".TABLE_PREFIX."grade_scales\r
72                                  (member_id, scale_name, created_date) \r
73                                  VALUES (" . $_SESSION["member_id"] . ", '". $_POST["scale_name"] ."', now())";\r
74                         $result = mysql_query($sql, $db) or die(mysql_error());\r
75                         \r
76                         $grade_scale_id = mysql_insert_id();\r
77                 }\r
78                 else if ($action == "edit" && isset($_POST["grade_scale_id"]))\r
79                 {\r
80                         $grade_scale_id = $_POST["grade_scale_id"];\r
81                         \r
82                         $sql    = "UPDATE ".TABLE_PREFIX."grade_scales\r
83                                     SET scale_name = '".$_POST["scale_name"]."'\r
84                                  WHERE grade_scale_id = ". $grade_scale_id;\r
85                         $result = mysql_query($sql, $db) or die(mysql_error());\r
86                         \r
87                         // clean up scale details for new insertions\r
88                         $sql = "DELETE FROM ".TABLE_PREFIX."grade_scales_detail WHERE grade_scale_id = ". $grade_scale_id;\r
89                         $result = mysql_query($sql, $db) or die(mysql_error());\r
90                 }\r
91                 \r
92                 for ($i=0; $i<10; $i++) \r
93                 {\r
94                         if ($_POST['scale_value'][$i] <> "")\r
95                         {\r
96                                 $_POST['scale_value'][$i] = $addslashes(trim($_POST['scale_value'][$i]));\r
97                                 $_POST['percentage_from'][$i] = intval($_POST['percentage_from'][$i]);\r
98                                 $_POST['percentage_to'][$i] = intval($_POST['percentage_to'][$i]);\r
99         \r
100                                 $sql    = "INSERT INTO ".TABLE_PREFIX."grade_scales_detail\r
101                                          (grade_scale_id, scale_value, percentage_from, percentage_to) \r
102                                          VALUES (" . $grade_scale_id . ", '". $_POST['scale_value'][$i] ."', ".$_POST['percentage_from'][$i].", ".$_POST['percentage_to'][$i].")";\r
103 \r
104 //                              print $sql;\r
105                                 $result = mysql_query($sql, $db) or die(mysql_error());\r
106                         }\r
107                 }\r
108                 \r
109                 $msg->addFeedback('ACTION_COMPLETED_SUCCESSFULLY');\r
110                 header('Location: grade_scale.php');\r
111                 exit;\r
112         }\r
113\r
114 else if (isset($_POST['preset']) || ($action == 'edit' && isset($_REQUEST['grade_scale_id']))) \r
115 {\r
116         if (isset($_POST['selected_grade_scale_id']))\r
117         {\r
118                 // clean up values preset previously\r
119                 unset($_POST["scale_value"]);\r
120                 unset($_POST["percentage_from"]);\r
121                 unset($_POST["percentage_to"]);\r
122         }\r
123 \r
124         if (!$msg->containsErrors() && $_POST['selected_grade_scale_id'] > 0) \r
125         {\r
126                 // load preset\r
127                 $_POST['selected_grade_scale_id'] = intval($_POST['selected_grade_scale_id']);\r
128                 $sql    = "SELECT * FROM ".TABLE_PREFIX."grade_scales_detail d, ".TABLE_PREFIX."grade_scales g WHERE d.grade_scale_id = g.grade_scale_id AND d.grade_scale_id=".$_POST[selected_grade_scale_id]." ORDER BY percentage_to DESC";\r
129         }\r
130         else if ($action == 'edit' && isset($_REQUEST['grade_scale_id']))\r
131         {\r
132                 // edit existing\r
133                 $sql    = "SELECT * FROM ".TABLE_PREFIX."grade_scales_detail d, ".TABLE_PREFIX."grade_scales g WHERE d.grade_scale_id = g.grade_scale_id AND d.grade_scale_id=".$_REQUEST['grade_scale_id']." ORDER BY percentage_to DESC";\r
134         }\r
135         \r
136         $result = mysql_query($sql, $db) or die(mysql_error());\r
137         \r
138         $i = 0;\r
139         while ($row = mysql_fetch_assoc($result))\r
140         {\r
141                 $_POST["scale_name"] = $row["scale_name"];\r
142                 $_POST["scale_value"][$i] = $row["scale_value"];\r
143                 $_POST["percentage_from"][$i] = $row["percentage_from"];\r
144                 $_POST["percentage_to"][$i] = $row["percentage_to"];\r
145                 \r
146                 $i++;\r
147         }\r
148 }\r
149 \r
150 $onload = 'document.form.selected_grade_scale_id.focus();';\r
151 \r
152 require(AT_INCLUDE_PATH.'header.inc.php');\r
153 ?>\r
154 \r
155 <form action="<?php echo $_SERVER['PHP_SELF'] . (isset($_REQUEST['grade_scale_id'])? "?grade_scale_id=".$_REQUEST['grade_scale_id'] : ""); ?>" method="post" name="form">\r
156 <input type="hidden" name="grade_scale_id" value="<?php echo $_REQUEST['grade_scale_id']; ?>" />\r
157 <input type="hidden" name="action" value="<?php echo $action; ?>" />\r
158 \r
159 <div class="input-form">\r
160         <fieldset class="group_form"><legend class="group_form"><?php echo _AT('preset_scales'); ?></legend>\r
161 \r
162         <div class="row">\r
163         <?php print_grade_scale_selectbox($_POST["selected_grade_scale_id"]); ?>\r
164         </div>\r
165         \r
166         <div class="row buttons">\r
167                 <input type="submit" name="preset" value="<?php echo _AT('set_preset'); ?>" class="button" />\r
168         </div>\r
169         </fieldset>\r
170 </div>\r
171 \r
172 <br />\r
173 <div class="input-form">\r
174         <fieldset class="group_form"><legend class="group_form"><?php echo _AT('grade_scale'); ?></legend>\r
175         \r
176         <div class="row">\r
177                 <label for="scale_name"><?php echo _AT('name'); ?></label><br />\r
178                 <input type="text" id="scale_name" size="40" name="scale_name" value="<?php echo htmlspecialchars(stripslashes($_POST['scale_name'])); ?>" />\r
179         </div>\r
180 \r
181         <div class="row">\r
182                 <table style="width:100%">\r
183 <?php for ($i=0; $i<10; $i++) { ?>\r
184                 <tr>\r
185                         <td>\r
186                         </td>\r
187                         <td>\r
188                         <?php if ($i==0) { ?>\r
189                                 <div class="required" title="<?php echo _AT('required_field'); ?>">*</div>\r
190                         <?php } ?>\r
191                         <?php echo _AT('scale_value'); ?>\r
192                         </td>\r
193 \r
194                         <td>\r
195                         <?php if ($i==0) { ?>\r
196                                 <div class="required" title="<?php echo _AT('required_field'); ?>">*</div>\r
197                         <?php } ?>\r
198                         <?php echo _AT('percentage_from'); ?>\r
199                         </td>\r
200 \r
201                         <td>\r
202                         <?php if ($i==0) { ?>\r
203                                 <div class="required" title="<?php echo _AT('required_field'); ?>">*</div>\r
204                         <?php } ?>\r
205                         <?php echo _AT('percentage_to'); ?>\r
206                         </td>\r
207                 </tr>\r
208 \r
209                 <tr>\r
210                         <td><?php echo $i+1; ?></td>\r
211                         <td><input type="text" id="scale_value_<?php echo $i; ?>" size="40" name="scale_value[<?php echo $i; ?>]" value="<?php echo htmlspecialchars(stripslashes($_POST['scale_value'][$i])); ?>" /></td>\r
212                         <td><input type="text" id="percentage_from_<?php echo $i; ?>" size="40" name="percentage_from[<?php echo $i; ?>]" value="<?php echo htmlspecialchars(stripslashes($_POST['percentage_from'][$i])); ?>" />%</td>\r
213                         <td><input type="text" id="percentage_to_<?php echo $i; ?>" size="40" name="percentage_to[<?php echo $i; ?>]" value="<?php echo htmlspecialchars(stripslashes($_POST['percentage_to'][$i])); ?>" />%</td>\r
214                 </tr>\r
215 <?php } ?>\r
216                 </table>\r
217         </div>\r
218 \r
219         <div class="row buttons">\r
220                 <input type="submit" value="<?php echo _AT('save'); ?>"   name="submit" accesskey="s" />\r
221                 <input type="submit" value="<?php echo _AT('cancel'); ?>" name="cancel" />\r
222         </div>\r
223         </fieldset>\r
224 </div>\r
225 </form>\r
226 \r
227 <?php require (AT_INCLUDE_PATH.'footer.inc.php');  ?>