Revision: 1319
          http://mrbs.svn.sourceforge.net/mrbs/?rev=1319&view=rev
Author:   cimorrison
Date:     2010-04-09 09:57:20 +0000 (Fri, 09 Apr 2010)

Log Message:
-----------
Allowed provisional bookings to be enabled on a per-area basis.

Modified Paths:
--------------
    mrbs/trunk/tables.my.sql
    mrbs/trunk/tables.pg.73and_above.sql
    mrbs/trunk/tables.pg.sql
    mrbs/trunk/web/Themes/default/header.inc
    mrbs/trunk/web/dbsys.inc
    mrbs/trunk/web/edit_area_room.php
    mrbs/trunk/web/functions.inc
    mrbs/trunk/web/lang.en
    mrbs/trunk/web/pending.php

Added Paths:
-----------
    mrbs/trunk/web/upgrade/13/
    mrbs/trunk/web/upgrade/13/mysql.sql
    mrbs/trunk/web/upgrade/13/pgsql.sql
    mrbs/trunk/web/upgrade/13/post.inc

Modified: mrbs/trunk/tables.my.sql
===================================================================
--- mrbs/trunk/tables.my.sql    2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/tables.my.sql    2010-04-09 09:57:20 UTC (rev 1319)
@@ -32,6 +32,8 @@
   max_book_ahead_enabled tinyint(1),
   max_book_ahead_secs    int,
   custom_html            text,
+  provisional_enabled    tinyint(1),
+  reminders_enabled      tinyint(1),
 
   PRIMARY KEY (id)
 );

Modified: mrbs/trunk/tables.pg.73and_above.sql
===================================================================
--- mrbs/trunk/tables.pg.73and_above.sql        2010-04-08 09:10:46 UTC (rev 
1318)
+++ mrbs/trunk/tables.pg.73and_above.sql        2010-04-09 09:57:20 UTC (rev 
1319)
@@ -47,7 +47,9 @@
   min_book_ahead_secs    int,
   max_book_ahead_enabled smallint,
   max_book_ahead_secs    int,
-  custom_html            text
+  custom_html            text,
+  provisional_enabled    smallint,
+  reminders_enabled      smallint
 );
 
 CREATE TABLE mrbs_room

Modified: mrbs/trunk/tables.pg.sql
===================================================================
--- mrbs/trunk/tables.pg.sql    2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/tables.pg.sql    2010-04-09 09:57:20 UTC (rev 1319)
@@ -35,7 +35,9 @@
   min_book_ahead_secs    int,
   max_book_ahead_enabled smallint,
   max_book_ahead_secs    int,
-  custom_html            text
+  custom_html            text,
+  provisional_enabled    smallint,
+  reminders_enabled      smallint
 );
 
 CREATE TABLE mrbs_room

Modified: mrbs/trunk/web/Themes/default/header.inc
===================================================================
--- mrbs/trunk/web/Themes/default/header.inc    2010-04-08 09:10:46 UTC (rev 
1318)
+++ mrbs/trunk/web/Themes/default/header.inc    2010-04-09 09:57:20 UTC (rev 
1319)
@@ -7,7 +7,7 @@
 {
   global $mrbs_company, $mrbs_company_logo, $mrbs_company_url, 
$mrbs_company_more_info,
          $search_str, $locale_warning, $provisional_enabled;
-  global $tbl_entry;
+  global $tbl_entry, $tbl_room, $tbl_area;
   global $PHP_SELF;
   
   $page = basename($PHP_SELF, ".php" );
@@ -384,12 +384,20 @@
         </form>
         <?php
         // Provide a link to the list of outstanding provisional bookings
+        // (if there are any areas where we are using provisional bookings)
         $user = getUserName();
-        if ($provisional_enabled && (authGetUserLevel($user) >= 1))
+        $provisional_somewhere = (sql_query1("SELECT COUNT(*) FROM $tbl_area 
WHERE provisional_enabled>0 LIMIT 1") > 0);
+        if ($provisional_somewhere && (authGetUserLevel($user) >= 1))
         {
           $is_admin = (authGetUserLevel($user) >= 2);
           // Find out how many provisional bookings there are
-          $sql = "SELECT COUNT(*) FROM $tbl_entry WHERE status=" . 
STATUS_PROVISIONAL;
+          // (but only for areas where provisional bookings are enabled)
+          $sql = "SELECT COUNT(*)
+                    FROM $tbl_entry E, $tbl_room R, $tbl_area A
+                   WHERE status=" . STATUS_PROVISIONAL . "
+                     AND E.room_id = R.id
+                     AND R.area_id = A.id
+                     AND A.provisional_enabled>0";
           if (!$is_admin)
           {
             // Ordinary users can only see their own

Modified: mrbs/trunk/web/dbsys.inc
===================================================================
--- mrbs/trunk/web/dbsys.inc    2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/web/dbsys.inc    2010-04-09 09:57:20 UTC (rev 1319)
@@ -15,7 +15,7 @@
 $tbl_variables = $db_tbl_prefix . "variables";
 
 
-$db_schema_version = 12;
+$db_schema_version = 13;
 $local_db_schema_version = 1;
 
 

Modified: mrbs/trunk/web/edit_area_room.php
===================================================================
--- mrbs/trunk/web/edit_area_room.php   2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/web/edit_area_room.php   2010-04-09 09:57:20 UTC (rev 1319)
@@ -81,6 +81,8 @@
 $area_private_default = get_form_var('area_private_default', 'int');
 $area_private_mandatory = get_form_var('area_private_mandatory', 'string');
 $area_private_override = get_form_var('area_private_override', 'string');
+$area_provisional_enabled = get_form_var('area_provisional_enabled', 'string');
+$area_reminders_enabled = get_form_var('area_reminders_enabled', 'string');
 $custom_html = get_form_var('custom_html', 'string');  // Used for both area 
and room, but you only ever have one or the other
 $change_done = get_form_var('change_done', 'string');
 $change_room = get_form_var('change_room', 'string');
@@ -319,6 +321,8 @@
   $area_max_ba_enabled = (!empty($area_max_ba_enabled)) ? 1 : 0;
   $area_private_enabled = (!empty($area_private_enabled)) ? 1 : 0;
   $area_private_mandatory = (!empty($area_private_mandatory)) ? 1 : 0;
+  $area_provisional_enabled = (!empty($area_provisional_enabled)) ? 1 : 0;
+  $area_reminders_enabled = (!empty($area_reminders_enabled)) ? 1 : 0;
     
   if (!$enable_periods)
   { 
@@ -381,6 +385,8 @@
     $assign_array[] = "private_default=" . $area_private_default;
     $assign_array[] = "private_mandatory=" . $area_private_mandatory;
     $assign_array[] = "private_override='" . $area_private_override . "'";
+    $assign_array[] = "provisional_enabled=" . $area_provisional_enabled;
+    $assign_array[] = "reminders_enabled=" . $area_reminders_enabled;
             
     $sql .= implode(",", $assign_array) . " WHERE id=$area";
     if (sql_command($sql) < 0)
@@ -906,8 +912,22 @@
       } // end if (!$enable_periods)
     
       ?>
-        
+      
       <fieldset>
+      <legend><?php echo get_vocab("provisional_settings")?></legend>
+        <div>
+          <label for="area_provisional_enabled"><?php echo 
get_vocab("enable_provisional")?>:</label>
+          <?php $checked = ($provisional_enabled) ? " checked=\"checked\"" : 
"" ?>
+          <input class="checkbox" type="checkbox"<?php echo $checked ?> 
id="area_provisional_enabled" name="area_provisional_enabled">
+        </div>
+        <div>
+          <label for="area_reminders_enabled"><?php echo 
get_vocab("enable_reminders")?>:</label>
+          <?php $checked = ($reminders_enabled) ? " checked=\"checked\"" : "" 
?>
+          <input class="checkbox" type="checkbox"<?php echo $checked ?> 
id="area_reminders_enabled" name="area_reminders_enabled">
+        </div>
+      </fieldset>
+      
+      <fieldset>
       <legend><?php echo get_vocab("private_settings")?></legend>
         <div>
           <label for="area_private_enabled"><?php echo 
get_vocab("allow_private")?>:</label>

Modified: mrbs/trunk/web/functions.inc
===================================================================
--- mrbs/trunk/web/functions.inc        2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/web/functions.inc        2010-04-09 09:57:20 UTC (rev 1319)
@@ -395,15 +395,18 @@
   global $resolution, $default_duration, $morningstarts, 
$morningstarts_minutes, $eveningends, $eveningends_minutes;
   global $private_enabled, $private_default, $private_mandatory, 
$private_override;
   global $min_book_ahead_enabled, $max_book_ahead_enabled, 
$min_book_ahead_secs, $max_book_ahead_secs;
+  global $provisional_enabled, $reminders_enabled;
   
   $booleans = array('private_enabled', 'private_default', 'private_mandatory',
-                    'min_book_ahead_enabled', 'max_book_ahead_enabled');
+                    'min_book_ahead_enabled', 'max_book_ahead_enabled',
+                    'provisional_enabled', 'reminders_enabled');
   // Get all the "per area" config settings                  
   $sql = "SELECT resolution, default_duration, morningstarts, 
morningstarts_minutes,
                  eveningends, eveningends_minutes,
                  private_enabled, private_default, private_mandatory, 
private_override,
                  min_book_ahead_enabled, max_book_ahead_enabled,
-                 min_book_ahead_secs, max_book_ahead_secs
+                 min_book_ahead_secs, max_book_ahead_secs,
+                 provisional_enabled, reminders_enabled
           FROM $tbl_area 
           WHERE id=$area 
           LIMIT 1";

Modified: mrbs/trunk/web/lang.en
===================================================================
--- mrbs/trunk/web/lang.en      2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/web/lang.en      2010-04-09 09:57:20 UTC (rev 1319)
@@ -308,6 +308,9 @@
 $vocab["too_many_slots"]          = 'You need to increase the value of 
$max_slots in the config file!';
 $vocab["general_settings"]        = "General";
 $vocab["time_settings"]           = "Slot times";
+$vocab["provisional_settings"]    = "Provisional bookings";
+$vocab["enable_provisional"]      = "Enable provisional bookings";
+$vocab["enable_reminders"]        = "Allow users to remind admins";
 $vocab["private_settings"]        = "Private bookings";
 $vocab["allow_private"]           = "Allow private bookings";
 $vocab["force_private"]           = "Force private bookings";

Modified: mrbs/trunk/web/pending.php
===================================================================
--- mrbs/trunk/web/pending.php  2010-04-08 09:10:46 UTC (rev 1318)
+++ mrbs/trunk/web/pending.php  2010-04-09 09:57:20 UTC (rev 1319)
@@ -168,6 +168,7 @@
 echo "<h1>" . get_vocab("pending") . "</h1>\n";
 
 // Get a list of all the provisional bookings
+// We are only interested in areas where provisional bookings are enabled
 $sql = "SELECT E.id, E.name, E.room_id, E.start_time, E.create_by, " .
                sql_syntax_timestamp_to_unix("E.timestamp") . " AS last_updated,
                E.reminded, E.repeat_id,
@@ -175,6 +176,7 @@
         FROM  $tbl_room AS R, $tbl_area AS A, $tbl_entry AS E
         WHERE E.room_id = R.id
           AND R.area_id = A.id
+          AND A.provisional_enabled>0
           AND status=" . STATUS_PROVISIONAL;
 
 // Ordinary users can only see their own bookings       

Added: mrbs/trunk/web/upgrade/13/mysql.sql
===================================================================
--- mrbs/trunk/web/upgrade/13/mysql.sql                         (rev 0)
+++ mrbs/trunk/web/upgrade/13/mysql.sql 2010-04-09 09:57:20 UTC (rev 1319)
@@ -0,0 +1,5 @@
+# $Id$
+
+ALTER TABLE %DB_TBL_PREFIX%area 
+ADD COLUMN provisional_enabled   tinyint(1),
+ADD COLUMN reminders_enabled     tinyint(1);


Property changes on: mrbs/trunk/web/upgrade/13/mysql.sql
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: mrbs/trunk/web/upgrade/13/pgsql.sql
===================================================================
--- mrbs/trunk/web/upgrade/13/pgsql.sql                         (rev 0)
+++ mrbs/trunk/web/upgrade/13/pgsql.sql 2010-04-09 09:57:20 UTC (rev 1319)
@@ -0,0 +1,5 @@
+-- $Id$
+
+ALTER TABLE %DB_TBL_PREFIX%area 
+ADD COLUMN provisional_enabled    smallint,
+ADD COLUMN reminders_enabled      smallint;


Property changes on: mrbs/trunk/web/upgrade/13/pgsql.sql
___________________________________________________________________
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native

Added: mrbs/trunk/web/upgrade/13/post.inc
===================================================================
--- mrbs/trunk/web/upgrade/13/post.inc                          (rev 0)
+++ mrbs/trunk/web/upgrade/13/post.inc  2010-04-09 09:57:20 UTC (rev 1319)
@@ -0,0 +1,26 @@
+<?php
+
+// $Id$
+
+// Populate the new columns in the area table with the default values taken
+// from the config file.
+
+global $tbl_area;
+global $provisional_enabled, $reminders_enabled;
+
+$provisional_enabled = ($provisional_enabled) ? 1 : 0;
+$reminders_enabled = ($reminders_enabled) ? 1 : 0;
+
+$sql = "UPDATE $tbl_area SET
+        provisional_enabled=$provisional_enabled,
+        reminders_enabled=$reminders_enabled";
+    
+$res = sql_command($sql);
+if ($res == -1)
+{
+  echo sql_error();
+  // No need to localise, should never happen
+  print "<span class=\"error\">Failed to set default values for new columns in 
area table.</span>";
+}
+
+?>


Property changes on: mrbs/trunk/web/upgrade/13/post.inc
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Id
Added: svn:eol-style
   + native


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Mrbs-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mrbs-commits

Reply via email to