4 * This page will present the HTML form to add or edit a report.
7 * report_id (optional) - the report id of the report to edit.
8 * If blank, user is adding a new report.
9 * public (optional) - If set to '1' and user is an admin user,
10 * then we are creating a report for the public user.
13 * If system setting $reports_enabled is set to anything other than
14 * 'Y', then don't allow access to this page.
15 * If $allow_view_other is 'N', then do not allow selection of
17 * If not an admin user, only report creator (cal_login in webcal_report)
18 * can edit/delete report.
20 include_once $gfplugins.'webcalendar/www/includes/init.php';
21 load_user_categories ();
23 $updating_public = false;
26 if ( empty ( $reports_enabled ) || $reports_enabled != 'Y' ) {
27 $error = translate ( "You are not authorized" ) . ".";
30 if ( $is_admin && ! empty ( $public ) && $public_access == "Y" ) {
31 $updating_public = true;
32 $report_user = "__public__";
37 $report_id = getIntValue ( "report_id", true );
39 $adding_report = false;
40 if ( empty ( $report_id ) ) {
41 $adding_report = true;
43 $include_header = 'Y';
44 $report_is_global = 'N';
45 $report_allow_nav = 'Y';
48 $show_participants = true;
49 if ( $single_user == 'Y' || $disable_participants_field == 'Y' ) {
50 $show_participants = false;
53 if ( $login == "__public__" ) {
54 $error = translate ( "You are not authorized" );
57 $charset = ( ! empty ( $LANGUAGE )?translate("charset"): "iso-8859-1" );
59 // Set date range options
61 "0" => translate ( "Tomorrow" ),
62 "1" => translate ( "Today" ),
63 "2" => translate ( "Yesterday" ),
64 "3" => translate ( "Day before yesterday" ),
65 "10" => translate ( "Next week" ),
66 "11" => translate ( "This week" ),
67 "12" => translate ( "Last week" ),
68 "13" => translate ( "Week before last" ),
69 "20" => translate ( "Next week and week after" ),
70 "21" => translate ( "This week and next week" ),
71 "22" => translate ( "Last week and this week" ),
72 "23" => translate ( "Last two weeks" ),
73 "30" => translate ( "Next month" ),
74 "31" => translate ( "This month" ),
75 "32" => translate ( "Last month" ),
76 "33" => translate ( "Month before last" ),
77 "40" => translate ( "Next year" ),
78 "41" => translate ( "This year" ),
79 "42" => translate ( "Last year" ),
80 "43" => translate ( "Year before last" ),
81 "50" => translate ( "Next 14 days" ),
82 "51" => translate ( "Next 30 days" ),
83 "52" => translate ( "Next 60 days" ),
84 "53" => translate ( "Next 90 days" ),
85 "54" => translate ( "Next 180 days" ),
86 "55" => translate ( "Next 365 days" ),
89 // Get list of users that the current user can see
90 if ( empty ( $error ) && $show_participants ) {
91 $userlist = get_my_users ();
92 if ($nonuser_enabled == "Y" ) {
93 $nonusers = get_nonuser_cals ();
94 $userlist = ($nonuser_at_top == "Y") ? array_merge($nonusers, $userlist) :
95 array_merge($userlist, $nonusers);
100 $page_template = "<dl>\${days}</dl>";
101 $day_template = "<dt><b>\${date}</b></dt>\n<dd><dl>\${events}</dl></dd>";
102 $event_template = "<dt>\${name}</dt>\n<dd>" .
103 "<b>" . translate ( "Date" ) . ":</b> \${date}<br />\n" .
104 "<b>" . translate ( "Time" ) . ":</b> \${time}<br />\n" .
105 "\${description}</dd>\n";
107 if ( empty ( $error ) && $report_id >= 0 ) {
108 $sql = "SELECT cal_login, cal_report_id, cal_is_global, " .
109 "cal_report_type, cal_include_header, cal_report_name, " .
110 "cal_time_range, cal_user, cal_allow_nav, cal_cat_id, " .
111 "cal_include_empty, cal_show_in_trailer, cal_update_date " .
112 "FROM webcal_report " .
113 "WHERE cal_report_id = $report_id";
114 //echo "SQL: $sql<br /><br />";
115 $res = dbi_query ( $sql );
117 if ( $row = dbi_fetch_row ( $res ) ) {
119 $report_login = $row[$i++];
120 $report_id = $row[$i++];
121 $report_is_global = $row[$i++];
122 $report_type = $row[$i++];
123 $report_include_header = $row[$i++];
124 $report_name = $row[$i++];
125 $report_time_range = $row[$i++];
126 $report_user = $row[$i++];
127 $report_allow_nav = $row[$i++];
128 $report_cat_id = $row[$i++];
129 $report_include_empty = $row[$i++];
130 $report_show_in_trailer = $row[$i++];
131 $report_update_date = $row[$i++];
133 // Check permissions.
134 if ( $show_participants && ! empty ( $report_user ) ) {
135 $user_is_in_list = false;
136 for ( $i = 0; $i < count ( $userlist ); $i++ ) {
137 if ( $report_user == $userlist[$i]['cal_login'] ) {
138 $user_is_in_list = true;
141 if ( ! $user_is_in_list && $report_login != $login && ! $is_admin ) {
142 $error = translate ( "You are not authorized" );
145 if ( ! $is_admin && $login != $report_login ) {
146 // If not admin, only creator can edit/delete the event
147 $error = translate ( "You are not authorized" );
150 // If we are editing a public user report we need to set $updating_public
151 if ( $is_admin && $report_login == "__public__" ) {
152 $updating_public = true;
156 $error = translate ( "Invalid report id" ) . ": $report_id";
158 dbi_free_result ( $res );
160 $error = translate("Database error") . ": " . dbi_error ();
162 $res = dbi_query ( "SELECT cal_template_type, cal_template_text " .
163 "FROM webcal_report_template " .
164 "WHERE cal_report_id = $report_id" );
166 while ( $row = dbi_fetch_row ( $res ) ) {
167 if ( $row[0] == 'P' ) {
168 $page_template = $row[1];
169 } else if ( $row[0] == 'D' ) {
170 $day_template = $row[1];
171 } else if ( $row[0] == 'E' ) {
172 $event_template = $row[1];
175 dbi_free_result ( $res );
178 // default values for new report
179 $report_login = $login;
181 $report_is_global = 'N';
182 $report_type = 'html';
183 $report_include_header = 'Y';
184 $report_name = translate("Unnamed Report");
185 $report_time_range = 11; // current week
186 //$report_user already set
187 $report_allow_nav = 'Y';
189 $report_include_empty = 'N';
190 $report_show_in_trailer = 'N';
191 $report_update_date = '';
195 //echo "report_id: $report_id <br />\n";
196 //echo "report_name: $report_name <br />\n";
197 //echo "report_user: $report_user <br />\n";
201 if ( $updating_public ) {
202 echo translate($PUBLIC_ACCESS_FULLNAME) . " ";
204 if ( $adding_report ) {
205 etranslate("Add Report");
207 etranslate("Edit Report");
212 if ( ! empty ( $error ) ) {
214 include_once "includes/trailer.php";
220 <form action="edit_report_handler.php" method="post" name="reportform">
221 <?php if ( $updating_public ) { ?>
222 <input type="hidden" name="public" value="1" />
224 <?php if ( ! $adding_report ) { ?>
225 <input type="hidden" name="report_id" value="<?php echo $report_id?>" />
228 <table style="border-width:0px;">
230 <label for="rpt_name"><?php etranslate("Report name")?>:</label></td><td>
231 <input type="text" name="report_name" id="rpt_name" size="40" maxlength="50"
232 value="<?php echo $report_name; ?>" />
235 if ( $show_participants ) {
236 $users = "<option value=\"\"";
237 if ( empty ( $report_user ) ) {
238 $users .= " selected=\"selected\"";
240 $users .= ">" . translate ( "Current User" ) . "</option>\n";
241 for ( $i = 0; $i < count ( $userlist ); $i++ ) {
242 $users .= "<option value=\"" . $userlist[$i]['cal_login'] . "\"";
243 if ( ! empty ( $report_user ) ) {
244 if ( $report_user == $userlist[$i]['cal_login'] ) {
245 $users .= " selected=\"selected\"";
248 $users .= ">" . $userlist[$i]['cal_fullname'] . "</option>\n";
250 print "<tr><td><label for=\"rpt_user\">" .
251 translate("User") . ":</label></td>\n";
252 print "<td><select name=\"report_user\" id=\"rpt_user\" size=\"1\">$users\n";
254 print "</td></tr>\n";
258 <?php if ( $is_admin ) { ?>
260 <?php etranslate("Global")?>:</label></td><td>
261 <label><input type="radio" name="is_global" value="Y"
262 <?php if ( $report_is_global != 'N' ) echo " checked=\"checked\""; ?>
263 /> <?php etranslate("Yes") ?></label>
264 <label><input type="radio" name="is_global" value="N"
265 <?php if ( $report_is_global == 'N' ) echo " checked=\"checked\""; ?>
266 /> <?php etranslate("No") ?></label>
271 // The report will always be shown in the trailer for the creator
272 // of the report. For admin users who create a global report,
273 // allow option of adding to all users trailer.
277 <?php etranslate("Include link in trailer")?>:</label></td><td>
278 <label><input type="radio" name="show_in_trailer" value="Y"
279 <?php if ( $report_show_in_trailer != 'N' ) echo " checked=\"checked\""; ?>
280 /> <?php etranslate("Yes") ?></label>
281 <label><input type="radio" name="show_in_trailer" value="N"
282 <?php if ( $report_show_in_trailer == 'N' ) echo " checked=\"checked\""; ?>
283 /> <?php etranslate("No") ?></label>
287 <?php etranslate("Include standard header/trailer")?>:
289 <label><input type="radio" name="include_header" value="Y"
290 <?php if ( $report_include_header != 'N' ) echo " checked=\"checked\""; ?>
291 /> <?php etranslate("Yes") ?></label>
292 <label><input type="radio" name="include_header" value="N"
293 <?php if ( $report_include_header == 'N' ) echo " checked=\"checked\""; ?>
294 /> <?php etranslate("No") ?></label>
297 <label for="rpt_time_range"><?php etranslate("Date range")?>:</label></td><td>
298 <select name="time_range" id="rpt_time_range">
300 while ( list ( $num, $descr ) = each ( $ranges ) ) {
301 echo "<option value=\"$num\"";
302 if ( $report_time_range == $num ) {
303 echo " selected=\"selected\"";
305 echo ">$descr</option>\n";
310 <label for="rpt_cat_id"><?php etranslate("Category")?>:</label></td><td>
311 <select name="cat_id" id="rpt_cat_id">
312 <option value=""><?php etranslate("None") ?></option>
314 while ( list ( $cat_id, $descr ) = each ( $categories ) ) {
315 echo "<option value=\"$cat_id\"";
316 if ( $report_cat_id == $cat_id ) {
317 echo " selected=\"selected\"";
319 echo ">$descr</option>\n";
324 <?php etranslate("Include previous/next links")?>:</label></td><td>
325 <label><input type="radio" name="allow_nav" value="Y"
326 <?php if ( $report_allow_nav != 'N' ) echo " checked=\"checked\""; ?>
327 /> <?php etranslate("Yes") ?></label>
328 <label><input type="radio" name="allow_nav" value="N"
329 <?php if ( $report_allow_nav == 'N' ) echo " checked=\"checked\""; ?>
330 /> <?php etranslate("No") ?></label>
333 <?php etranslate("Include empty dates")?>:</label></td><td>
334 <label><input type="radio" name="include_empty" value="Y"
335 <?php if ( $report_include_empty != 'N' ) echo " checked=\"checked\""; ?>
336 /> <?php etranslate("Yes") ?></label>
337 <label><input type="radio" name="include_empty" value="N"
338 <?php if ( $report_include_empty == 'N' ) echo " checked=\"checked\""; ?>
339 /> <?php etranslate("No") ?></label>
343 <table style="border-width:0px;">
344 <tr><td> </td><td> </td><td><label>
345 <?php etranslate("Template variables")?></label>
347 <tr><td valign="top"><label>
348 <?php etranslate("Page template")?>:</label></td><td>
349 <textarea rows="12" cols="60" name="page_template">
350 <?php echo htmlentities ( $page_template, ENT_COMPAT, $charset )?>
351 </textarea></td><td style="vertical-align:top;">
352 <tt>${days}</tt><br />
353 <tt>${report_id}</tt><br />
355 <tr><td valign="top"><label>
356 <?php etranslate("Day template")?>:</label></td><td>
357 <textarea rows="12" cols="60" name="day_template">
358 <?php echo htmlentities ( $day_template, ENT_COMPAT, $charset )?>
359 </textarea></td><td style="vertical-align:top;">
360 <tt>${events}</tt><br />
361 <tt>${date}</tt><br />
362 <tt>${fulldate}</tt><br />
363 <tt>${report_id}</tt><br />
365 <tr><td valign="top"><label>
366 <?php etranslate("Event template")?>:</label></td><td>
367 <textarea rows="12" cols="60" name="event_template">
368 <?php echo htmlentities ( $event_template, ENT_COMPAT, $charset )?>
369 </textarea></td><td style="vertical-align:top;">
370 <tt>${name}</tt><br />
371 <tt>${description}</tt><br />
372 <tt>${date}</tt><br />
373 <tt>${fulldate}</tt><br />
374 <tt>${time}</tt><br />
375 <tt>${starttime}</tt><br />
376 <tt>${endtime}</tt><br />
377 <tt>${duration}</tt><br />
378 <tt>${priority}</tt><br />
379 <tt>${href}</tt><br />
380 <tt>${user}</tt><br />
381 <tt>${report_id}</tt>
384 <input type="submit" value="<?php etranslate("Save")?>" />
385 <?php if ( ! $adding_report ) { ?>
386 <input type="submit" name="action"
387 value="<?php etranslate("Delete");?>"
388 onclick="return confirm('<?php etranslate("Are you sure you want to delete this report?")?>');" />
394 <?php print_trailer(); ?>