[ Index ]
 

Code source de WebCalendar 1.0.5

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables | Statistiques

title

Body

[fermer]

/ -> edit_report.php (source)

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


Généré le : Fri Nov 30 19:09:19 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics