[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/calendar/setup/ -> tables_update.inc.php (source)

   1  <?php
   2    /**************************************************************************\
   3    * eGroupWare - Setup                                                       *
   4    * http://www.egroupware.org                                                *
   5    * --------------------------------------------                             *
   6    *  This program is free software; you can redistribute it and/or modify it *
   7    *  under the terms of the GNU General Public License as published by the   *
   8    *  Free Software Foundation; either version 2 of the License, or (at your  *
   9    *  option) any later version.                                              *
  10    \**************************************************************************/
  11  
  12    /* $Id: tables_update.inc.php 21493 2006-04-30 12:53:55Z ralfbecker $ */
  13  
  14  	function calendar_v0_9_2to0_9_3update_owner($table, $field)
  15      {
  16          $GLOBALS['egw_setup']->oProc->query("select distinct($field) from $table");
  17          if ($GLOBALS['egw_setup']->oProc->num_rows())
  18          {
  19              while ($GLOBALS['egw_setup']->oProc->next_record())
  20              {
  21                  $owner[count($owner)] = $GLOBALS['egw_setup']->oProc->f($field);
  22              }
  23              if($GLOBALS['egw_setup']->alessthanb($GLOBALS['setup_info']['phpgwapi']['currentver'],'0.9.10pre4'))
  24              {
  25                  $acctstbl = 'accounts';
  26              }
  27              else
  28              {
  29                  $acctstbl = 'phpgw_accounts';
  30              }
  31              for($i=0;$i<count($owner);$i++)
  32              {
  33                  $GLOBALS['egw_setup']->oProc->query("SELECT account_id FROM $acctstbl WHERE account_lid='".$owner[$i]."'");
  34                  $GLOBALS['egw_setup']->oProc->next_record();
  35                  $GLOBALS['egw_setup']->oProc->query("UPDATE $table SET $field=".$GLOBALS['egw_setup']->oProc->f('account_id')." WHERE $field='".$owner[$i]."'");
  36              }
  37          }
  38          $GLOBALS['egw_setup']->oProc->AlterColumn($table, $field, array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => 0));
  39      }
  40  
  41      $test[] = '0.9.3pre1';
  42  	function calendar_upgrade0_9_3pre1()
  43      {
  44          calendar_v0_9_2to0_9_3update_owner('webcal_entry','cal_create_by');
  45          calendar_v0_9_2to0_9_3update_owner('webcal_entry_user','cal_login');
  46          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre2';
  47          return $GLOBALS['setup_info']['calendar']['currentver'];
  48      }
  49  
  50      $test[] = "0.9.3pre2";
  51  	function calendar_upgrade0_9_3pre2()
  52      {
  53          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre3';
  54          return $GLOBALS['setup_info']['calendar']['currentver'];
  55      }
  56  
  57      $test[] = "0.9.3pre3";
  58  	function calendar_upgrade0_9_3pre3()
  59      {
  60          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre4';
  61          return $GLOBALS['setup_info']['calendar']['currentver'];
  62      }
  63  
  64      $test[] = "0.9.3pre4";
  65  	function calendar_upgrade0_9_3pre4()
  66      {
  67          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre5';
  68          return $GLOBALS['setup_info']['calendar']['currentver'];
  69      }
  70  
  71      $test[] = "0.9.3pre5";
  72  	function calendar_upgrade0_9_3pre5()
  73      {
  74          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre6';
  75          return $GLOBALS['setup_info']['calendar']['currentver'];
  76      }
  77  
  78      $test[] = "0.9.3pre6";
  79  	function calendar_upgrade0_9_3pre6()
  80      {
  81          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre7';
  82          return $GLOBALS['setup_info']['calendar']['currentver'];
  83      }
  84  
  85      $test[] = "0.9.3pre7";
  86  	function calendar_upgrade0_9_3pre7()
  87      {
  88          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre8';
  89          return $GLOBALS['setup_info']['calendar']['currentver'];
  90      }
  91  
  92      $test[] = "0.9.3pre8";
  93  	function calendar_upgrade0_9_3pre8()
  94      {
  95          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre9';
  96          return $GLOBALS['setup_info']['calendar']['currentver'];
  97      }
  98  
  99      $test[] = "0.9.3pre9";
 100  	function calendar_upgrade0_9_3pre9()
 101      {
 102          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3pre10';
 103          return $GLOBALS['setup_info']['calendar']['currentver'];
 104      }
 105  
 106      $test[] = "0.9.3pre10";
 107  	function calendar_upgrade0_9_3pre10()
 108      {
 109          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.3';
 110          return $GLOBALS['setup_info']['calendar']['currentver'];
 111      }
 112  
 113      $test[] = "0.9.3";
 114  	function calendar_upgrade0_9_3()
 115      {
 116          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4pre1';
 117          return $GLOBALS['setup_info']['calendar']['currentver'];
 118      }
 119  
 120      $test[] = "0.9.4pre1";
 121  	function calendar_upgrade0_9_4pre1()
 122      {
 123          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4pre2';
 124          return $GLOBALS['setup_info']['calendar']['currentver'];
 125      }
 126  
 127      $test[] = '0.9.4pre2';
 128  	function calendar_upgrade0_9_4pre2()
 129      {
 130          $GLOBALS['egw_setup']->oProc->RenameColumn('webcal_entry', 'cal_create_by', 'cal_owner');
 131          $GLOBALS['egw_setup']->oProc->AlterColumn('webcal_entry', 'cal_owner', array('type' => 'int', 'precision' => 4, 'nullable' => false));
 132          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4pre3';
 133          return $GLOBALS['setup_info']['calendar']['currentver'];
 134      }
 135  
 136      $test[] = "0.9.4pre3";
 137  	function calendar_upgrade0_9_4pre3()
 138      {
 139          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4pre4';
 140          return $GLOBALS['setup_info']['calendar']['currentver'];
 141      }
 142      $test[] = "0.9.4pre4";
 143  	function calendar_upgrade0_9_4pre4()
 144      {
 145          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4pre5';
 146          return $GLOBALS['setup_info']['calendar']['currentver'];
 147      }
 148      $test[] = "0.9.4pre5";
 149  	function calendar_upgrade0_9_4pre5()
 150      {
 151          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.4';
 152          return $GLOBALS['setup_info']['calendar']['currentver'];
 153      }
 154      $test[] = "0.9.4";
 155  	function calendar_upgrade0_9_4()
 156      {
 157          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.5pre1';
 158          return $GLOBALS['setup_info']['calendar']['currentver'];
 159      }
 160      $test[] = "0.9.5pre1";
 161  	function calendar_upgrade0_9_5pre1()
 162      {
 163          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.5pre2';
 164          return $GLOBALS['setup_info']['calendar']['currentver'];
 165      }
 166      $test[] = "0.9.5pre2";
 167  	function calendar_upgrade0_9_5pre2()
 168      {
 169          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.5pre3';
 170          return $GLOBALS['setup_info']['calendar']['currentver'];
 171      }
 172      $test[] = "0.9.5";
 173  	function calendar_upgrade0_9_5()
 174      {
 175          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.6';
 176          return $GLOBALS['setup_info']['calendar']['currentver'];
 177      }
 178      $test[] = "0.9.6";
 179  	function calendar_upgrade0_9_6()
 180      {
 181          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.7pre1';
 182          return $GLOBALS['setup_info']['calendar']['currentver'];
 183      }
 184  
 185      $test[] = '0.9.7pre1';
 186  	function calendar_upgrade0_9_7pre1()
 187      {
 188          $db2 = clone($GLOBALS['egw_setup']->db);
 189  
 190          $GLOBALS['egw_setup']->oProc->CreateTable('calendar_entry',
 191              Array(
 192                  'fd' => array(
 193                      'cal_id' => array('type' => 'auto', 'nullable' => false),
 194                      'cal_owner' => array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => '0'),
 195                      'cal_group' => array('type' => 'varchar', 'precision' => 255),
 196                      'cal_datetime' => array('type' => 'int', 'precision' => 4),
 197                      'cal_mdatetime' => array('type' => 'int', 'precision' => 4),
 198                      'cal_duration' => array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => '0'),
 199                      'cal_priority' => array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => '2'),
 200                      'cal_type' => array('type' => 'varchar', 'precision' => 10),
 201                      'cal_access' => array('type' => 'varchar', 'precision' => 10),
 202                      'cal_name' => array('type' => 'varchar', 'precision' => 80, 'nullable' => false),
 203                      'cal_description' => array('type' => 'text')
 204                  ),
 205                  'pk' => array("cal_id"),
 206                  'ix' => array(),
 207                  'fk' => array(),
 208                  'uc' => array()
 209              )
 210          );
 211      
 212          $GLOBALS['egw_setup']->oProc->query('SELECT count(*) FROM webcal_entry',__LINE__,__FILE__);
 213          $GLOBALS['egw_setup']->oProc->next_record();
 214          if($GLOBALS['egw_setup']->oProc->f(0))
 215          {
 216              $GLOBALS['egw_setup']->oProc->query('SELECT cal_id,cal_owner,cal_duration,cal_priority,cal_type,cal_access,cal_name,cal_description,cal_id,cal_date,cal_time,cal_mod_date,cal_mod_time FROM webcal_entry ORDER BY cal_id',__LINE__,__FILE__);
 217              while($GLOBALS['egw_setup']->oProc->next_record())
 218              {
 219                  $cal_id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 220                  $cal_owner = $GLOBALS['egw_setup']->oProc->f('cal_owner');
 221                  $cal_duration = $GLOBALS['egw_setup']->oProc->f('cal_duration');
 222                  $cal_priority = $GLOBALS['egw_setup']->oProc->f('cal_priority');
 223                  $cal_type = $GLOBALS['egw_setup']->oProc->f('cal_type');
 224                  $cal_access = $GLOBALS['egw_setup']->oProc->f('cal_access');
 225                  $cal_name = $GLOBALS['egw_setup']->oProc->f('cal_name');
 226                  $cal_description = $GLOBALS['egw_setup']->oProc->f('cal_description');
 227                  $datetime = mktime(intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_time')),4))),intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_time')),2,2))),intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_time')),0,2))),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_date'),4,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_date'),6,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_date'),0,4)));
 228                  $moddatetime = mktime(intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_mod_time')),4))),intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_mod_time')),2,2))),intval(strrev(substr(strrev($GLOBALS['egw_setup']->oProc->f('cal_mod_time')),0,2))),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_mod_date'),4,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_mod_date'),6,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_mod_date'),0,4)));
 229                  $db2->query('SELECT groups FROM webcal_entry_groups WHERE cal_id='.$cal_id,__LINE__,__FILE__);
 230                  $db2->next_record();
 231                  $cal_group = $db2->f('groups');
 232                  $db2->query('INSERT INTO calendar_entry(cal_id,cal_owner,cal_group,cal_datetime,cal_mdatetime,cal_duration,cal_priority,cal_type,cal_access,cal_name,cal_description) '
 233                      .'VALUES('.$cal_id.",'".$cal_owner."','".$cal_group."',".$datetime.",".$moddatetime.",".$cal_duration.",".$cal_priority.",'".$cal_type."','".$cal_access."','".$cal_name."','".$cal_description."')",__LINE__,__FILE__);
 234              }
 235          }
 236      
 237          $GLOBALS['egw_setup']->oProc->DropTable('webcal_entry_groups');
 238          $GLOBALS['egw_setup']->oProc->DropTable('webcal_entry');
 239      
 240          $GLOBALS['egw_setup']->oProc->CreateTable('calendar_entry_user',
 241              Array(
 242                  'fd' => array(
 243                      'cal_id' => array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => '0'),
 244                      'cal_login' => array('type' => 'int', 'precision' => 4, 'nullable' => false, 'default' => '0'),
 245                      'cal_status' => array('type' => 'char', 'precision' => 1, 'default' => 'A')
 246                  ),
 247                  'pk' => array('cal_id', 'cal_login'),
 248                  'ix' => array(),
 249                  'fk' => array(),
 250                  'uc' => array()
 251              )
 252          );
 253      
 254          $GLOBALS['egw_setup']->oProc->query('SELECT count(*) FROM webcal_entry_user',__LINE__,__FILE__);
 255          $GLOBALS['egw_setup']->oProc->next_record();
 256          if($GLOBALS['egw_setup']->oProc->f(0))
 257          {
 258              $GLOBALS['egw_setup']->oProc->query('SELECT cal_id,cal_login,cal_status FROM webcal_entry_user ORDER BY cal_id',__LINE__,__FILE__);
 259              while($GLOBALS['egw_setup']->oProc->next_record())
 260              {
 261                  $cal_id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 262                  $cal_login = $GLOBALS['egw_setup']->oProc->f('cal_login');
 263                  $cal_status = $GLOBALS['egw_setup']->oProc->f('cal_status');
 264                  $db2->query('INSERT INTO calendar_entry_user(cal_id,cal_login,cal_status) VALUES('.$cal_id.','.$cal_login.",'".$cal_status."')",__LINE__,__FILE__);
 265              }
 266          }
 267      
 268          $GLOBALS['egw_setup']->oProc->DropTable('webcal_entry_user');
 269      
 270          $GLOBALS['egw_setup']->oProc->CreateTable('calendar_entry_repeats',
 271              Array(
 272                  'fd' => array(
 273                      'cal_id' => array('type' => 'int', 'precision' => 4, 'default' => '0', 'nullable' => false),
 274                      'cal_type' => array('type' => 'varchar', 'precision' => 20, 'default' => 'daily', 'nullable' => false),
 275                      'cal_use_end' => array('type' => 'int', 'precision' => 4, 'default' => '0'),
 276                      'cal_end' => array('type' => 'int', 'precision' => 4),
 277                      'cal_frequency' => array('type' => 'int', 'precision' => 4, 'default' => '1'),
 278                      'cal_days' => array('type' => 'char', 'precision' => 7)
 279                  ),
 280                  'pk' => array(),
 281                  'ix' => array(),
 282                  'fk' => array(),
 283                  'uc' => array()
 284              )
 285          );
 286      
 287          $GLOBALS['egw_setup']->oProc->query('SELECT count(*) FROM webcal_entry_repeats',__LINE__,__FILE__);
 288          $GLOBALS['egw_setup']->oProc->next_record();
 289          if($GLOBALS['egw_setup']->oProc->f(0))
 290          {
 291              $GLOBALS['egw_setup']->oProc->query('SELECT cal_id,cal_type,cal_end,cal_frequency,cal_days FROM webcal_entry_repeats ORDER BY cal_id',__LINE__,__FILE__);
 292              while($GLOBALS['egw_setup']->oProc->next_record())
 293              {
 294                  $cal_id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 295                  $cal_type = $GLOBALS['egw_setup']->oProc->f('cal_type');
 296                  if(isset($GLOBALS['egw_setup']->oProc->Record['cal_end']))
 297                  {
 298                      $enddate = mktime(0,0,0,intval(substr($GLOBALS['egw_setup']->oProc->f('cal_end'),4,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_end'),6,2)),intval(substr($GLOBALS['egw_setup']->oProc->f('cal_end'),0,4)));
 299                      $useend = 1;
 300                  }
 301                  else
 302                  {
 303                      $enddate = 0;
 304                      $useend = 0;
 305                  }
 306                  $cal_frequency = $GLOBALS['egw_setup']->oProc->f('cal_frequency');
 307                  $cal_days = $GLOBALS['egw_setup']->oProc->f('cal_days');
 308                  $db2->query('INSERT INTO calendar_entry_repeats(cal_id,cal_type,cal_use_end,cal_end,cal_frequency,cal_days) VALUES('.$cal_id.",'".$cal_type."',".$useend.",".$enddate.",".$cal_frequency.",'".$cal_days."')",__LINE__,__FILE__);
 309              }
 310          }
 311      
 312          $GLOBALS['egw_setup']->oProc->DropTable('webcal_entry_repeats');
 313          $GLOBALS['egw_setup']->oProc->query("UPDATE {$GLOBALS['egw_setup']->applications_table} SET app_tables='calendar_entry,calendar_entry_user,calendar_entry_repeats' WHERE app_name='calendar'",__LINE__,__FILE__);
 314      
 315          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.7pre2';
 316          return $GLOBALS['setup_info']['calendar']['currentver'];
 317      }
 318  
 319      $test[] = "0.9.7pre2";
 320  	function calendar_upgrade0_9_7pre2()
 321      {
 322          $db2 = $GLOBALS['egw_setup']->db;
 323      
 324          $GLOBALS['egw_setup']->oProc->RenameColumn('calendar_entry', 'cal_duration', 'cal_edatetime');
 325          $GLOBALS['egw_setup']->oProc->query('SELECT cal_id,cal_datetime,cal_owner,cal_edatetime,cal_mdatetime FROM calendar_entry ORDER BY cal_id',__LINE__,__FILE__);
 326          if($GLOBALS['egw_setup']->oProc->num_rows())
 327          {
 328              while($GLOBALS['egw_setup']->oProc->next_record())
 329              {
 330                  $db2->query("SELECT preference_value FROM preferences WHERE preference_name='tz_offset' AND preference_appname='common' AND preference_owner=".$GLOBALS['egw_setup']->db->f('cal_owner'),__LINE__,__FILE__);
 331                  $db2->next_record();
 332                  $tz = $db2->f('preference_value');
 333                  $cal_id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 334                  $datetime = $GLOBALS['egw_setup']->oProc->f('cal_datetime') - ((60 * 60) * $tz);
 335                  $mdatetime = $GLOBALS['egw_setup']->oProc->f('cal_mdatetime') - ((60 * 60) * $tz);
 336                  $edatetime = $datetime + (60 * $GLOBALS['egw_setup']->oProc->f('cal_edatetime'));
 337                  $db2->query('UPDATE calendar_entry SET cal_datetime='.$datetime.', cal_edatetime='.$edatetime.', cal_mdatetime='.$mdatetime.' WHERE cal_id='.$cal_id,__LINE__,__FILE__);
 338              }
 339          }
 340      
 341          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.7pre3';
 342          return $GLOBALS['setup_info']['calendar']['currentver'];
 343      }
 344  
 345      $test[] = "0.9.7pre3";
 346  	function calendar_upgrade0_9_7pre3()
 347      {
 348          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.7';
 349          return $GLOBALS['setup_info']['calendar']['currentver'];
 350      }
 351      $test[] = "0.9.7";
 352  	function calendar_upgrade0_9_7()
 353      {
 354          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.8pre1';
 355          return $GLOBALS['setup_info']['calendar']['currentver'];
 356      }
 357      $test[] = "0.9.8pre1";
 358  	function calendar_upgrade0_9_8pre1()
 359      {
 360          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.8pre2';
 361          return $GLOBALS['setup_info']['calendar']['currentver'];
 362      }
 363      $test[] = "0.9.8pre2";
 364  	function calendar_upgrade0_9_8pre2()
 365      {
 366          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.8pre3';
 367          return $GLOBALS['setup_info']['calendar']['currentver'];
 368      }
 369      $test[] = "0.9.8pre3";
 370  	function calendar_upgrade0_9_8pre3()
 371      {
 372          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.8pre4';
 373          return $GLOBALS['setup_info']['calendar']['currentver'];
 374      }
 375      $test[] = "0.9.8pre4";
 376  	function calendar_upgrade0_9_8pre4()
 377      {
 378          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.8pre5';
 379          return $GLOBALS['setup_info']['calendar']['currentver'];
 380      }
 381      $test[] = '0.9.8pre5';
 382  	function calendar_upgrade0_9_8pre5()
 383      {
 384          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.9pre1';
 385          return $GLOBALS['setup_info']['calendar']['currentver'];
 386      }
 387      $test[] = "0.9.9pre1";
 388  	function calendar_upgrade0_9_9pre1()
 389      {
 390          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.9';
 391          return $GLOBALS['setup_info']['calendar']['currentver'];
 392      }
 393      $test[] = "0.9.9";
 394  	function calendar_upgrade0_9_9()
 395      {
 396          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre1';
 397          return $GLOBALS['setup_info']['calendar']['currentver'];
 398      }
 399      $test[] = "0.9.10pre1";
 400  	function calendar_upgrade0_9_10pre1()
 401      {
 402          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre2';
 403          return $GLOBALS['setup_info']['calendar']['currentver'];
 404      }
 405      $test[] = "0.9.10pre2";
 406  	function calendar_upgrade0_9_10pre2()
 407      {
 408          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre3';
 409          return $GLOBALS['setup_info']['calendar']['currentver'];
 410      }
 411      $test[] = "0.9.10pre3";
 412  	function calendar_upgrade0_9_10pre3()
 413      {
 414          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre4';
 415          return $GLOBALS['setup_info']['calendar']['currentver'];
 416      }
 417      $test[] = "0.9.10pre4";
 418  	function calendar_upgrade0_9_10pre4()
 419      {
 420          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre5';
 421          return $GLOBALS['setup_info']['calendar']['currentver'];
 422      }
 423      $test[] = "0.9.10pre5";
 424  	function calendar_upgrade0_9_10pre5()
 425      {
 426          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre6';
 427          return $GLOBALS['setup_info']['calendar']['currentver'];
 428      }
 429      $test[] = "0.9.10pre6";
 430  	function calendar_upgrade0_9_10pre6()
 431      {
 432          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre7';
 433          return $GLOBALS['setup_info']['calendar']['currentver'];
 434      }
 435      $test[] = "0.9.10pre7";
 436  	function calendar_upgrade0_9_10pre7()
 437      {
 438          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre8';
 439          return $GLOBALS['setup_info']['calendar']['currentver'];
 440      }
 441      $test[] = "0.9.10pre8";
 442  	function calendar_upgrade0_9_10pre8()
 443      {
 444          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre9';
 445          return $GLOBALS['setup_info']['calendar']['currentver'];
 446      }
 447      $test[] = '0.9.10pre9';
 448  	function calendar_upgrade0_9_10pre9()
 449      {
 450          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre10';
 451          return $GLOBALS['setup_info']['calendar']['currentver'];
 452      }
 453      $test[] = '0.9.10pre10';
 454  	function calendar_upgrade0_9_10pre10()
 455      {
 456          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre11';
 457          return $GLOBALS['setup_info']['calendar']['currentver'];
 458      }
 459      $test[] = '0.9.10pre11';
 460  	function calendar_upgrade0_9_10pre11()
 461      {
 462          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre12';
 463          return $GLOBALS['setup_info']['calendar']['currentver'];
 464      }
 465      $test[] = '0.9.10pre12';
 466  	function calendar_upgrade0_9_10pre12()
 467      {
 468          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre13';
 469          return $GLOBALS['setup_info']['calendar']['currentver'];
 470      }
 471      $test[] = '0.9.10pre13';
 472  	function calendar_upgrade0_9_10pre13()
 473      {
 474          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre14';
 475          return $GLOBALS['setup_info']['calendar']['currentver'];
 476      }
 477      $test[] = '0.9.10pre14';
 478  	function calendar_upgrade0_9_10pre14()
 479      {
 480          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre15';
 481          return $GLOBALS['setup_info']['calendar']['currentver'];
 482      }
 483      $test[] = '0.9.10pre15';
 484  	function calendar_upgrade0_9_10pre15()
 485      {
 486          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre16';
 487          return $GLOBALS['setup_info']['calendar']['currentver'];
 488      }
 489      $test[] = '0.9.10pre16';
 490  	function calendar_upgrade0_9_10pre16()
 491      {
 492          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre17';
 493          return $GLOBALS['setup_info']['calendar']['currentver'];
 494      }
 495      $test[] = '0.9.10pre17';
 496  	function calendar_upgrade0_9_10pre17()
 497      {
 498          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre18';
 499          return $GLOBALS['setup_info']['calendar']['currentver'];
 500      }
 501      $test[] = '0.9.10pre18';
 502  	function calendar_upgrade0_9_10pre18()
 503      {
 504          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre19';
 505          return $GLOBALS['setup_info']['calendar']['currentver'];
 506      }
 507      $test[] = '0.9.10pre19';
 508  	function calendar_upgrade0_9_10pre19()
 509      {
 510          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre20';
 511          return $GLOBALS['setup_info']['calendar']['currentver'];
 512      }
 513      $test[] = '0.9.10pre20';
 514  	function calendar_upgrade0_9_10pre20()
 515      {
 516          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre21';
 517          return $GLOBALS['setup_info']['calendar']['currentver'];
 518      }
 519      $test[] = '0.9.10pre21';
 520  	function calendar_upgrade0_9_10pre21()
 521      {
 522          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre22';
 523          return $GLOBALS['setup_info']['calendar']['currentver'];
 524      }
 525      $test[] = '0.9.10pre22';
 526  	function calendar_upgrade0_9_10pre22()
 527      {
 528          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre23';
 529          return $GLOBALS['setup_info']['calendar']['currentver'];
 530      }
 531      $test[] = '0.9.10pre23';
 532  	function calendar_upgrade0_9_10pre23()
 533      {
 534          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre24';
 535          return $GLOBALS['setup_info']['calendar']['currentver'];
 536      }
 537      $test[] = '0.9.10pre24';
 538  	function calendar_upgrade0_9_10pre24()
 539      {
 540          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre25';
 541          return $GLOBALS['setup_info']['calendar']['currentver'];
 542      }
 543      $test[] = '0.9.10pre25';
 544  	function calendar_upgrade0_9_10pre25()
 545      {
 546          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre26';
 547          return $GLOBALS['setup_info']['calendar']['currentver'];
 548      }
 549      $test[] = '0.9.10pre26';
 550  	function calendar_upgrade0_9_10pre26()
 551      {
 552          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre27';
 553          return $GLOBALS['setup_info']['calendar']['currentver'];
 554      }
 555      $test[] = '0.9.10pre27';
 556  	function calendar_upgrade0_9_10pre27()
 557      {
 558          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10pre28';
 559          return $GLOBALS['setup_info']['calendar']['currentver'];
 560      }
 561      $test[] = '0.9.10pre28';
 562  	function calendar_upgrade0_9_10pre28()
 563      {
 564          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.10';
 565          return $GLOBALS['setup_info']['calendar']['currentver'];
 566      }
 567      $test[] = '0.9.10';
 568  	function calendar_upgrade0_9_10()
 569      {
 570          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.001';
 571          return $GLOBALS['setup_info']['calendar']['currentver'];
 572      }
 573      $test[] = '0.9.11';
 574  	function calendar_upgrade0_9_11()
 575      {
 576          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.001';
 577          return $GLOBALS['setup_info']['calendar']['currentver'];
 578      }
 579  
 580      $test[] = '0.9.11.001';
 581  	function calendar_upgrade0_9_11_001()
 582      {
 583          $db2 = $GLOBALS['egw_setup']->db;
 584  
 585          if(extension_loaded('mcal') == False)
 586          {
 587              define(RECUR_NONE,0);
 588              define(RECUR_DAILY,1);
 589              define(RECUR_WEEKLY,2);
 590              define(RECUR_MONTHLY_MDAY,3);
 591              define(RECUR_MONTHLY_WDAY,4);
 592              define(RECUR_YEARLY,5);
 593      
 594              define(M_SUNDAY,1);
 595              define(M_MONDAY,2);
 596              define(M_TUESDAY,4);
 597              define(M_WEDNESDAY,8);
 598              define(M_THURSDAY,16);
 599              define(M_FRIDAY,32);
 600              define(M_SATURDAY,64);
 601          }
 602  
 603  // calendar_entry => phpgw_cal
 604          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal',
 605              Array(
 606                  'fd' => array(
 607                      'cal_id' => array('type' => 'auto', 'nullable' => False),
 608                      'owner' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
 609                      'category' => array('type' => 'int', 'precision' => 8, 'default' => '0', 'nullable' => True),
 610                      'groups' => array('type' => 'varchar', 'precision' => 255, 'nullable' => True),
 611                      'datetime' => array('type' => 'int', 'precision' => 8, 'nullable' => True),
 612                      'mdatetime' => array('type' => 'int', 'precision' => 8, 'nullable' => True),
 613                      'edatetime' => array('type' => 'int', 'precision' => 8, 'nullable' => True),
 614                      'priority' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => '2'),
 615                      'cal_type' => array('type' => 'varchar', 'precision' => 10, 'nullable' => True),
 616                      'is_public' => array('type' => 'int', 'precision' => 8, 'nullable' => False, 'default' => '1'),
 617                      'title' => array('type' => 'varchar', 'precision' => 80, 'nullable' => False, 'default' => '1'),
 618                      'description' => array('type' => 'text', 'nullable' => True)
 619                  ),
 620                  'pk' => array('cal_id'),
 621                  'fk' => array(),
 622                  'ix' => array(),
 623                  'uc' => array()
 624              )
 625          );
 626  
 627          $GLOBALS['egw_setup']->oProc->query('SELECT * FROM calendar_entry',__LINE__,__FILE__);
 628          while($GLOBALS['egw_setup']->oProc->next_record())
 629          {
 630              $id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 631              $owner = $GLOBALS['egw_setup']->oProc->f('cal_owner');
 632              $access = $GLOBALS['egw_setup']->oProc->f('cal_access');
 633              switch($access)
 634              {
 635                  case 'private':
 636                      $is_public = 0;
 637                      break;
 638                  case 'public':
 639                      $is_public = 1;
 640                      break;
 641                  case 'group':
 642                      $is_public = 2;
 643                      break;
 644              }
 645              $groups = $GLOBALS['egw_setup']->oProc->f('cal_group');
 646              $datetime = $GLOBALS['egw_setup']->oProc->f('cal_datetime');
 647              $mdatetime = $GLOBALS['egw_setup']->oProc->f('cal_mdatetime');
 648              $edatetime = $GLOBALS['egw_setup']->oProc->f('cal_edatetime');
 649              $priority = $GLOBALS['egw_setup']->oProc->f('cal_priority');
 650              $type = $GLOBALS['egw_setup']->oProc->f('cal_type');
 651              $title = $GLOBALS['egw_setup']->oProc->f('cal_name');
 652              $description = $GLOBALS['egw_setup']->oProc->f('cal_description');
 653  
 654              $db2->query("INSERT INTO phpgw_cal(cal_id,owner,groups,datetime,mdatetime,edatetime,priority,cal_type,is_public,title,description) "
 655                  . "VALUES($id,$owner,'$groups',$datetime,$mdatetime,$edatetime,$priority,'$type',$is_public,'$title','$description')",__LINE__,__FILE__);
 656          }
 657          $GLOBALS['egw_setup']->oProc->DropTable('calendar_entry');
 658  
 659  // calendar_entry_repeats => phpgw_cal_repeats
 660          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal_repeats',
 661              Array(
 662                  'fd' => array(
 663                      'cal_id' => array('type' => 'int', 'precision' => 8,'nullable' => False),
 664                      'recur_type' => array('type' => 'int', 'precision' => 8,'nullable' => False),
 665                      'recur_use_end' => array('type' => 'int', 'precision' => 8,'nullable' => True),
 666                      'recur_enddate' => array('type' => 'int', 'precision' => 8,'nullable' => True),
 667                      'recur_interval' => array('type' => 'int', 'precision' => 8,'nullable' => True,'default' => '1'),
 668                      'recur_data' => array('type' => 'int', 'precision' => 8,'nullable' => True,'default' => '1')
 669                  ),
 670                  'pk' => array(),
 671                  'fk' => array(),
 672                  'ix' => array(),
 673                  'uc' => array()
 674              )
 675          );
 676          $GLOBALS['egw_setup']->oProc->query('SELECT * FROM calendar_entry_repeats',__LINE__,__FILE__);
 677          while($GLOBALS['egw_setup']->oProc->next_record())
 678          {
 679              $id = $GLOBALS['egw_setup']->oProc->f('cal_id');
 680              $recur_type = $GLOBALS['egw_setup']->oProc->f('cal_type');
 681              switch($recur_type)
 682              {
 683                  case 'daily':
 684                      $recur_type_num = RECUR_DAILY;
 685                      break;
 686                  case 'weekly':
 687                      $recur_type_num = RECUR_WEEKLY;
 688                      break;
 689                  case 'monthlybydate':
 690                      $recur_type_num = RECUR_MONTHLY_MDAY;
 691                      break;
 692                  case 'monthlybyday':
 693                      $recur_type_num = RECUR_MONTHLY_WDAY;
 694                      break;
 695                  case 'yearly':
 696                      $recur_type_num = RECUR_YEARLY;
 697                      break;
 698              }
 699              $recur_end_use = $GLOBALS['egw_setup']->oProc->f('cal_use_end');
 700              $recur_end = $GLOBALS['egw_setup']->oProc->f('cal_end');
 701              $recur_interval = $GLOBALS['egw_setup']->oProc->f('cal_frequency');
 702              $days = strtoupper($GLOBALS['egw_setup']->oProc->f('cal_days'));
 703              $recur_data = 0;
 704              $recur_data += (substr($days,0,1)=='Y'?M_SUNDAY:0);
 705              $recur_data += (substr($days,1,1)=='Y'?M_MONDAY:0);
 706              $recur_data += (substr($days,2,1)=='Y'?M_TUESDAY:0);
 707              $recur_data += (substr($days,3,1)=='Y'?M_WEDNESDAY:0);
 708              $recur_data += (substr($days,4,1)=='Y'?M_THURSDAY:0);
 709              $recur_data += (substr($days,5,1)=='Y'?M_FRIDAY:0);
 710              $recur_data += (substr($days,6,1)=='Y'?M_SATURDAY:0);
 711              $db2->query("INSERT INTO phpgw_cal_repeats(cal_id,recur_type,recur_use_end,recur_enddate,recur_interval,recur_data) "
 712                  . "VALUES($id,$recur_type_num,$recur_use_end,$recur_end,$recur_interval,$recur_data)",__LINE__,__FILE__);
 713          }
 714          $GLOBALS['egw_setup']->oProc->DropTable('calendar_entry_repeats');
 715  
 716  // calendar_entry_user => phpgw_cal_user
 717          $GLOBALS['egw_setup']->oProc->RenameTable('calendar_entry_user','phpgw_cal_user');
 718  
 719          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.002';
 720          return $GLOBALS['setup_info']['calendar']['currentver'];
 721      }
 722  
 723      $test[] = '0.9.11.002';
 724  	function calendar_upgrade0_9_11_002()
 725      {
 726          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.003';
 727          return $GLOBALS['setup_info']['calendar']['currentver'];
 728      }
 729  
 730      $test[] = '0.9.11.003';
 731  	function calendar_upgrade0_9_11_003()
 732      {
 733          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal_holidays',
 734              Array(
 735                  'fd' => array(
 736                      'locale' => array('type' => 'char', 'precision' => 2,'nullable' => False),
 737                      'name' => array('type' => 'varchar', 'precision' => 50,'nullable' => False),
 738                      'date_time' => array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0')
 739                  ),
 740                  'pk' => array('locale','name'),
 741                  'fk' => array(),
 742                  'ix' => array(),
 743                  'uc' => array()
 744              )
 745          );
 746  
 747          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.004';
 748          return $GLOBALS['setup_info']['calendar']['currentver'];
 749      }
 750  
 751      $test[] = '0.9.11.004';
 752  	function calendar_upgrade0_9_11_004()
 753      {
 754          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.005';
 755          return $GLOBALS['setup_info']['calendar']['currentver'];
 756      }
 757  
 758      $test[] = '0.9.11.005';
 759  	function calendar_upgrade0_9_11_005()
 760      {
 761          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.006';
 762          return $GLOBALS['setup_info']['calendar']['currentver'];
 763      }
 764  
 765      $test[] = '0.9.11.006';
 766  	function calendar_upgrade0_9_11_006()
 767      {
 768          $GLOBALS['egw_setup']->oProc->DropTable('phpgw_cal_holidays');
 769          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal_holidays',
 770              Array(
 771                  'fd' => array(
 772                      'hol_id' => array('type' => 'auto','nullable' => False),
 773                      'locale' => array('type' => 'char', 'precision' => 2,'nullable' => False),
 774                      'name' => array('type' => 'varchar', 'precision' => 50,'nullable' => False),
 775                      'date_time' => array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0')
 776                  ),
 777                  'pk' => array('hol_id'),
 778                  'fk' => array(),
 779                  'ix' => array(),
 780                  'uc' => array()
 781              )
 782          );
 783  
 784          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.007';
 785          return $GLOBALS['setup_info']['calendar']['currentver'];
 786      }
 787  
 788      $test[] = '0.9.11.007';
 789  	function calendar_upgrade0_9_11_007()
 790      {
 791          $GLOBALS['egw_setup']->oProc->query('DELETE FROM phpgw_cal_holidays');
 792          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_holidays','mday',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 793          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_holidays','month_num',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 794          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_holidays','occurence',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 795          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_holidays','dow',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 796  
 797          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.008';
 798          return $GLOBALS['setup_info']['calendar']['currentver'];
 799      }
 800  
 801      $test[] = '0.9.11.008';
 802  	function calendar_upgrade0_9_11_008()
 803      {
 804          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.009';
 805          return $GLOBALS['setup_info']['calendar']['currentver'];
 806      }
 807  
 808      $test[] = '0.9.11.009';
 809  	function calendar_upgrade0_9_11_009()
 810      {
 811          $GLOBALS['egw_setup']->oProc->query('DELETE FROM phpgw_cal_holidays');
 812          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_holidays','observance_rule',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 813  
 814          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.010';
 815          return $GLOBALS['setup_info']['calendar']['currentver'];
 816      }
 817  
 818      $test[] = '0.9.11.010';
 819  	function calendar_upgrade0_9_11_010()
 820      {
 821          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.11.011';
 822          return $GLOBALS['setup_info']['calendar']['currentver'];
 823      }
 824  
 825      $test[] = '0.9.11.011';
 826  	function calendar_upgrade0_9_11_011()
 827      {
 828          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.001';
 829          return $GLOBALS['setup_info']['calendar']['currentver'];
 830      }
 831      $test[] = '0.9.12';
 832  	function calendar_upgrade0_9_12()
 833      {
 834          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.001';
 835          return $GLOBALS['setup_info']['calendar']['currentver'];
 836      }
 837      $test[] = '0.9.13.001';
 838  	function calendar_upgrade0_9_13_001()
 839      {
 840          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.002';
 841          return $GLOBALS['setup_info']['calendar']['currentver'];
 842      }
 843  
 844      $test[] = '0.9.13.002';
 845  	function calendar_upgrade0_9_13_002()
 846      {
 847          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal','reference',array('type' => 'int', 'precision' => 8,'nullable' => False, 'default' => '0'));
 848  
 849          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.003';
 850          return $GLOBALS['setup_info']['calendar']['currentver'];
 851      }
 852  
 853      $test[] = '0.9.13.003';
 854  	function calendar_upgrade0_9_13_003()
 855      {
 856          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal_alarm',
 857              Array(
 858                  'fd' => array(
 859                      'alarm_id' => array('type' => 'auto','nullable' => False),        
 860                      'cal_id'   => array('type' => 'int', 'precision' => 8, 'nullable' => False),
 861                      'cal_owner'    => array('type' => 'int', 'precision' => 8, 'nullable' => False),
 862                      'cal_time' => array('type' => 'int', 'precision' => 8, 'nullable' => False),
 863                      'cal_text' => array('type' => 'varchar', 'precision' => 50, 'nullable' => False)
 864                  ),
 865                  'pk' => array('alarm_id'),
 866                  'fk' => array(),
 867                  'ix' => array(),
 868                  'uc' => array()
 869              )
 870          );
 871  
 872          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal','uid',array('type' => 'varchar', 'precision' => 255,'nullable' => False));
 873          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal','location',array('type' => 'varchar', 'precision' => 255,'nullable' => True));
 874  
 875          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.004';
 876          return $GLOBALS['setup_info']['calendar']['currentver'];
 877      }
 878  
 879      $test[] = '0.9.13.004';
 880  	function calendar_upgrade0_9_13_004()
 881      {
 882          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_alarm','alarm_enabled',array('type' => 'int', 'precision' => 4,'nullable' => False, 'default' => '1'));
 883  
 884          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.005';
 885          return $GLOBALS['setup_info']['calendar']['currentver'];
 886      }
 887  
 888      $test[] = '0.9.13.005';
 889  	function calendar_upgrade0_9_13_005()
 890      {
 891          $calendar_data = Array();
 892          $GLOBALS['egw_setup']->oProc->query('SELECT cal_id, category FROM phpgw_cal',__LINE__,__FILE__);
 893          while($GLOBALS['egw_setup']->oProc->next_record())
 894          {
 895              $calendar_data[$GLOBALS['egw_setup']->oProc->f('cal_id')] = $GLOBALS['egw_setup']->oProc->f('category');
 896          }
 897  
 898          $GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_cal','category',array('type' => 'varchar', 'precision' => 30,'nullable' => True));
 899  
 900          @reset($calendar_data);
 901          while($calendar_data && list($cal_id,$category) = each($calendar_data))
 902          {
 903              $GLOBALS['egw_setup']->oProc->query("UPDATE phpgw_cal SET category='".$category."' WHERE cal_id=".$cal_id,__LINE__,__FILE__);        
 904          }
 905          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.006';
 906          return $GLOBALS['setup_info']['calendar']['currentver'];
 907      }
 908  
 909      $test[] = '0.9.13.006';
 910  	function calendar_upgrade0_9_13_006()
 911      {
 912          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_repeats','recur_exception',array('type' => 'varchar', 'precision' => 255, 'nullable' => True, 'default' => ''));
 913  
 914          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.13.007';
 915          return $GLOBALS['setup_info']['calendar']['currentver'];
 916      }
 917  
 918  
 919      $test[] = '0.9.13.007';
 920  	function calendar_upgrade0_9_13_007()
 921      {
 922          $GLOBALS['egw_setup']->oProc->AddColumn('phpgw_cal_user','cal_type',array(
 923              'type' => 'varchar',
 924              'precision' => '1',
 925              'nullable' => False,
 926              'default' => 'u'
 927          ));
 928  
 929          $GLOBALS['egw_setup']->oProc->CreateTable('phpgw_cal_extra',array(
 930              'fd' => array(
 931                  'cal_id' => array('type' => 'int','precision' => '4','nullable' => False),
 932                  'cal_extra_name' => array('type' => 'varchar','precision' => '40','nullable' => False),
 933                  'cal_extra_value' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '')
 934              ),
 935              'pk' => array('cal_id','cal_extra_name'),
 936              'fk' => array(),
 937              'ix' => array(),
 938              'uc' => array()
 939          ));
 940  
 941          $GLOBALS['egw_setup']->oProc->DropTable('phpgw_cal_alarm');
 942  
 943          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.002';
 944          return $GLOBALS['setup_info']['calendar']['currentver'];
 945      }
 946  
 947  
 948      $test[] = '0.9.16.001';
 949  	function calendar_upgrade0_9_16_001()
 950      {
 951          // this is to set the default as schema_proc was not setting an empty default
 952          $GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_cal_user','cal_type',array(
 953              'type' => 'varchar',
 954              'precision' => '1',
 955              'nullable' => False,
 956              'default' => 'u'
 957          ));
 958  
 959          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.002';
 960          return $GLOBALS['setup_info']['calendar']['currentver'];
 961      }
 962  
 963  
 964      // the following series of updates add some indices, to speedup the selects
 965  
 966      $test[] = '0.9.16.002';
 967  	function calendar_upgrade0_9_16_002()
 968      {
 969          $GLOBALS['egw_setup']->oProc->RefreshTable('phpgw_cal_repeats',array(
 970              'fd' => array(
 971                  'cal_id' => array('type' => 'int','precision' => '8','nullable' => False),
 972                  'recur_type' => array('type' => 'int','precision' => '8','nullable' => False),
 973                  'recur_use_end' => array('type' => 'int','precision' => '8','default' => '0'),
 974                  'recur_enddate' => array('type' => 'int','precision' => '8'),
 975                  'recur_interval' => array('type' => 'int','precision' => '8','default' => '1'),
 976                  'recur_data' => array('type' => 'int','precision' => '8','default' => '1'),
 977                  'recur_exception' => array('type' => 'varchar','precision' => '255','default' => '')
 978              ),
 979              'pk' => array(),
 980              'fk' => array(),
 981              'ix' => array('cal_id'),
 982              'uc' => array()
 983          ));
 984  
 985          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.003';
 986          return $GLOBALS['setup_info']['calendar']['currentver'];
 987      }
 988  
 989  
 990      $test[] = '0.9.16.003';
 991  	function calendar_upgrade0_9_16_003()
 992      {
 993          $GLOBALS['egw_setup']->oProc->RefreshTable('phpgw_cal_user',array(
 994              'fd' => array(
 995                  'cal_id' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
 996                  'cal_login' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
 997                  'cal_status' => array('type' => 'char','precision' => '1','default' => 'A'),
 998                  'cal_type' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'u')
 999              ),
1000              'pk' => array('cal_id','cal_login','cal_type'),
1001              'fk' => array(),
1002              'ix' => array(),
1003              'uc' => array()
1004          ));
1005  
1006          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.004';
1007          return $GLOBALS['setup_info']['calendar']['currentver'];
1008      }
1009  
1010  
1011      $test[] = '0.9.16.004';
1012  	function calendar_upgrade0_9_16_004()
1013      {
1014          $GLOBALS['egw_setup']->oProc->RefreshTable('phpgw_cal_holidays',array(
1015              'fd' => array(
1016                  'hol_id' => array('type' => 'auto','nullable' => False),
1017                  'locale' => array('type' => 'char','precision' => '2','nullable' => False),
1018                  'name' => array('type' => 'varchar','precision' => '50','nullable' => False),
1019                  'mday' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1020                  'month_num' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1021                  'occurence' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1022                  'dow' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1023                  'observance_rule' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
1024              ),
1025              'pk' => array('hol_id'),
1026              'fk' => array(),
1027              'ix' => array('locale'),
1028              'uc' => array()
1029          ));
1030  
1031          $GLOBALS['setup_info']['calendar']['currentver'] = '0.9.16.005';
1032          return $GLOBALS['setup_info']['calendar']['currentver'];
1033      }
1034  
1035  
1036      $test[] = '0.9.16.005';
1037  	function calendar_upgrade0_9_16_005()
1038      {
1039          // creates uid's for all entries which do not have unique ones, they are '-@domain.com'
1040          // very old entries even have an empty uid, see 0.9.16.006 update
1041          $GLOBALS['egw_setup']->oProc->query("SELECT config_name,config_value FROM {$GLOBALS['egw_setup']->config_table} WHERE config_name IN ('install_id','mail_suffix') AND config_app='phpgwapi'",__LINE__,__FILE__);
1042          while ($GLOBALS['egw_setup']->oProc->next_record())
1043          {
1044              $config[$GLOBALS['egw_setup']->oProc->f(0)] = $GLOBALS['egw_setup']->oProc->f(1);
1045          }
1046          $GLOBALS['egw_setup']->oProc->query('UPDATE phpgw_cal SET uid='.
1047              $GLOBALS['egw_setup']->db->concat($GLOBALS['egw_setup']->db->quote('cal-'),'cal_id',
1048                  $GLOBALS['egw_setup']->db->quote('-'.$config['install_id'].'@'.
1049                  ($config['mail_suffix'] ? $config['mail_suffix'] : 'local'))).
1050              " WHERE uid LIKE '-@%' OR uid=''");
1051  
1052          // we dont need to do update 0.9.16.007, as UpdateSequenze is called now by RefreshTable
1053          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0';
1054          return $GLOBALS['setup_info']['calendar']['currentver'];
1055      }
1056  
1057  
1058      $test[] = '0.9.16.006';
1059  	function calendar_upgrade0_9_16_006()
1060      {
1061          // re-run the update as very old entries only have an empty uid
1062          return calendar_upgrade0_9_16_005();
1063      }
1064      
1065      
1066      $test[] = '0.9.16.007';
1067  	function calendar_upgrade0_9_16_007()
1068      {
1069          // update the sequenzes for refreshed tables (postgres only)
1070          $GLOBALS['egw_setup']->oProc->UpdateSequence('phpgw_cal_holidays','hol_id');
1071          
1072          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0';
1073          return $GLOBALS['setup_info']['calendar']['currentver'];
1074      }
1075  
1076  
1077      $test[] = '1.0.0';
1078  	function calendar_upgrade1_0_0()
1079      {
1080          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','uid','cal_uid');
1081          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','owner','cal_owner');
1082          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','category','cal_category');
1083          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','groups','cal_groups');
1084          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','datetime','cal_starttime');
1085          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','mdatetime','cal_modified');
1086          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','edatetime','cal_endtime');
1087          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','priority','cal_priority');
1088          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','is_public','cal_public');
1089          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','title','cal_title');
1090          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','description','cal_description');
1091          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','location','cal_location');
1092          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal','reference','cal_reference');
1093  
1094          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0.001';
1095          return $GLOBALS['setup_info']['calendar']['currentver'];
1096      }
1097  
1098  
1099      $test[] = '1.0.0.001';
1100  	function calendar_upgrade1_0_0_001()
1101      {
1102          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','locale','hol_locale');
1103          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','name','hol_name');
1104          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','mday','hol_mday');
1105          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','month_num','hol_month_num');
1106          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','occurence','hol_occurence');
1107          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','dow','hol_dow');
1108          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_holidays','observance_rule','hol_observance_rule');
1109  
1110          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0.002';
1111          return $GLOBALS['setup_info']['calendar']['currentver'];
1112      }
1113  
1114  
1115      $test[] = '1.0.0.002';
1116  	function calendar_upgrade1_0_0_002()
1117      {
1118          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_user','cal_login','cal_user_id');
1119          $GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_cal_user','cal_type','cal_user_type');
1120  
1121          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0.003';
1122          return $GLOBALS['setup_info']['calendar']['currentver'];
1123      }
1124  
1125  
1126      $test[] = '1.0.0.003';
1127  	function calendar_upgrade1_0_0_003()
1128      {
1129          $GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_cal','cal_title',array(
1130              'type' => 'varchar',
1131              'precision' => '255',
1132              'nullable' => False,
1133              'default' => '1'
1134          ));
1135  
1136          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0.004';
1137          return $GLOBALS['setup_info']['calendar']['currentver'];
1138      }
1139  
1140  
1141      $test[] = '1.0.0.004';
1142  	function calendar_upgrade1_0_0_004()
1143      {
1144          $GLOBALS['egw_setup']->oProc->RefreshTable('phpgw_cal_repeats',array(
1145              'fd' => array(
1146                  'cal_id' => array('type' => 'int','precision' => '8','nullable' => False),
1147                  'recur_type' => array('type' => 'int','precision' => '8','nullable' => False),
1148                  'recur_use_end' => array('type' => 'int','precision' => '8','default' => '0'),
1149                  'recur_enddate' => array('type' => 'int','precision' => '8'),
1150                  'recur_interval' => array('type' => 'int','precision' => '8','default' => '1'),
1151                  'recur_data' => array('type' => 'int','precision' => '8','default' => '1'),
1152                  'recur_exception' => array('type' => 'varchar','precision' => '255','default' => '')
1153              ),
1154              'pk' => array('cal_id'),
1155              'fk' => array(),
1156              'ix' => array(),
1157              'uc' => array()
1158          ));
1159  
1160          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.0.005';
1161          return $GLOBALS['setup_info']['calendar']['currentver'];
1162      }
1163  
1164  
1165      $test[] = '1.0.0.005';
1166  	function calendar_upgrade1_0_0_005()
1167      {
1168          // change prefix of all calendar tables to egw_
1169          foreach(array('cal_user','cal_repeats','cal_extra','cal_holidays','cal') as $name)
1170          {
1171              $GLOBALS['egw_setup']->oProc->RenameTable('phpgw_'.$name,'egw_'.$name);
1172          }
1173  
1174          // create new dates table, with content from the egw_cal table
1175          $GLOBALS['egw_setup']->oProc->CreateTable('egw_cal_dates',array(
1176              'fd' => array(
1177                  'cal_id' => array('type' => 'int','precision' => '4','nullable' => False),
1178                  'cal_start' => array('type' => 'int','precision' => '8','nullable' => False),
1179                  'cal_end' => array('type' => 'int','precision' => '8','nullable' => False)
1180              ),
1181              'pk' => array('cal_id','cal_start'),
1182              'fk' => array(),
1183              'ix' => array(),
1184              'uc' => array()
1185          ));
1186          $GLOBALS['egw_setup']->oProc->query("INSERT INTO egw_cal_dates SELECT cal_id,cal_starttime,cal_endtime FROM egw_cal");
1187  
1188          // drop the fields transfered to the dates table
1189          $GLOBALS['egw_setup']->oProc->DropColumn('egw_cal',array(
1190              'fd' => array(
1191                  'cal_id' => array('type' => 'auto','nullable' => False),
1192                  'cal_uid' => array('type' => 'varchar','precision' => '255','nullable' => False),
1193                  'cal_owner' => array('type' => 'int','precision' => '8','nullable' => False),
1194                  'cal_category' => array('type' => 'varchar','precision' => '30'),
1195                  'cal_groups' => array('type' => 'varchar','precision' => '255'),
1196                  'cal_modified' => array('type' => 'int','precision' => '8'),
1197                  'cal_endtime' => array('type' => 'int','precision' => '8'),
1198                  'cal_priority' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '2'),
1199                  'cal_type' => array('type' => 'varchar','precision' => '10'),
1200                  'cal_public' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '1'),
1201                  'cal_title' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '1'),
1202                  'cal_description' => array('type' => 'text'),
1203                  'cal_location' => array('type' => 'varchar','precision' => '255'),
1204                  'cal_reference' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
1205              ),
1206              'pk' => array('cal_id'),
1207              'fk' => array(),
1208              'ix' => array(),
1209              'uc' => array()
1210          ),'cal_starttime');
1211          $GLOBALS['egw_setup']->oProc->DropColumn('egw_cal',array(
1212              'fd' => array(
1213                  'cal_id' => array('type' => 'auto','nullable' => False),
1214                  'cal_uid' => array('type' => 'varchar','precision' => '255','nullable' => False),
1215                  'cal_owner' => array('type' => 'int','precision' => '8','nullable' => False),
1216                  'cal_category' => array('type' => 'varchar','precision' => '30'),
1217                  'cal_groups' => array('type' => 'varchar','precision' => '255'),
1218                  'cal_modified' => array('type' => 'int','precision' => '8'),
1219                  'cal_priority' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '2'),
1220                  'cal_type' => array('type' => 'varchar','precision' => '10'),
1221                  'cal_public' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '1'),
1222                  'cal_title' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '1'),
1223                  'cal_description' => array('type' => 'text'),
1224                  'cal_location' => array('type' => 'varchar','precision' => '255'),
1225                  'cal_reference' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
1226              ),
1227              'pk' => array('cal_id'),
1228              'fk' => array(),
1229              'ix' => array(),
1230              'uc' => array()
1231          ),'cal_endtime');
1232  
1233          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.001';
1234          return $GLOBALS['setup_info']['calendar']['currentver'];
1235      }
1236  
1237  
1238      $test[] = '1.0.1.001';
1239  	function calendar_upgrade1_0_1_001()
1240      {
1241          /* done by RefreshTable() anyway
1242          $GLOBALS['egw_setup']->oProc->AddColumn('egw_cal_user','cal_recur_date',array(
1243              'type' => 'int',
1244              'precision' => '8',
1245              'default' => '0'
1246          ));*/
1247          $GLOBALS['egw_setup']->oProc->RefreshTable('egw_cal_user',array(
1248              'fd' => array(
1249                  'cal_id' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1250                  'cal_recur_date' => array('type' => 'int','precision' => '8','default' => '0'),
1251                  'cal_user_type' => array('type' => 'varchar','precision' => '1','nullable' => False,'default' => 'u'),
1252                  'cal_user_id' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0'),
1253                  'cal_status' => array('type' => 'char','precision' => '1','default' => 'A')
1254              ),
1255              'pk' => array('cal_id','cal_recur_date','cal_user_type','cal_user_id'),
1256              'fk' => array(),
1257              'ix' => array(),
1258              'uc' => array()
1259          ));
1260  
1261          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.002';
1262          return $GLOBALS['setup_info']['calendar']['currentver'];
1263      }
1264  
1265  
1266      $test[] = '1.0.1.002';
1267  	function calendar_upgrade1_0_1_002()
1268      {
1269          $GLOBALS['egw_setup']->oProc->DropColumn('egw_cal',array(
1270              'fd' => array(
1271                  'cal_id' => array('type' => 'auto','nullable' => False),
1272                  'cal_uid' => array('type' => 'varchar','precision' => '255','nullable' => False),
1273                  'cal_owner' => array('type' => 'int','precision' => '8','nullable' => False),
1274                  'cal_category' => array('type' => 'varchar','precision' => '30'),
1275                  'cal_groups' => array('type' => 'varchar','precision' => '255'),
1276                  'cal_modified' => array('type' => 'int','precision' => '8'),
1277                  'cal_priority' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '2'),
1278                  'cal_public' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '1'),
1279                  'cal_title' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '1'),
1280                  'cal_description' => array('type' => 'text'),
1281                  'cal_location' => array('type' => 'varchar','precision' => '255'),
1282                  'cal_reference' => array('type' => 'int','precision' => '8','nullable' => False,'default' => '0')
1283              ),
1284              'pk' => array('cal_id'),
1285              'fk' => array(),
1286              'ix' => array(),
1287              'uc' => array()
1288          ),'cal_type');
1289          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal','cal_owner',array(
1290              'type' => 'int',
1291              'precision' => '4',
1292              'nullable' => False
1293          ));
1294          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal','cal_priority',array(
1295              'type' => 'int',
1296              'precision' => '2',
1297              'nullable' => False,
1298              'default' => '2'
1299          ));
1300          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal','cal_public',array(
1301              'type' => 'int',
1302              'precision' => '2',
1303              'nullable' => False,
1304              'default' => '1'
1305          ));
1306          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal','cal_reference',array(
1307              'type' => 'int',
1308              'precision' => '4',
1309              'nullable' => False,
1310              'default' => '0'
1311          ));
1312          $GLOBALS['egw_setup']->oProc->AddColumn('egw_cal','cal_modifier',array(
1313              'type' => 'int',
1314              'precision' => '4'
1315          ));
1316  
1317          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.003';
1318          return $GLOBALS['setup_info']['calendar']['currentver'];
1319      }
1320  
1321  
1322      $test[] = '1.0.1.003';
1323  	function calendar_upgrade1_0_1_003()
1324      {
1325          $GLOBALS['egw_setup']->oProc->DropColumn('egw_cal_repeats',array(
1326              'fd' => array(
1327                  'cal_id' => array('type' => 'int','precision' => '8','nullable' => False),
1328                  'recur_type' => array('type' => 'int','precision' => '8','nullable' => False),
1329                  'recur_enddate' => array('type' => 'int','precision' => '8'),
1330                  'recur_interval' => array('type' => 'int','precision' => '8','default' => '1'),
1331                  'recur_data' => array('type' => 'int','precision' => '8','default' => '1'),
1332                  'recur_exception' => array('type' => 'varchar','precision' => '255','default' => '')
1333              ),
1334              'pk' => array('cal_id'),
1335              'fk' => array(),
1336              'ix' => array(),
1337              'uc' => array()
1338          ),'recur_use_end');
1339          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_repeats','cal_id',array(
1340              'type' => 'int',
1341              'precision' => '4',
1342              'nullable' => False
1343          ));
1344          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_repeats','recur_type',array(
1345              'type' => 'int',
1346              'precision' => '2',
1347              'nullable' => False
1348          ));
1349          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_repeats','recur_interval',array(
1350              'type' => 'int',
1351              'precision' => '2',
1352              'default' => '1'
1353          ));
1354          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_repeats','recur_data',array(
1355              'type' => 'int',
1356              'precision' => '2',
1357              'default' => '1'
1358          ));
1359  
1360          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.004';
1361          return $GLOBALS['setup_info']['calendar']['currentver'];
1362      }
1363  
1364  
1365      $test[] = '1.0.1.004';
1366  	function calendar_upgrade1_0_1_004()
1367      {
1368          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_user','cal_id',array(
1369              'type' => 'int',
1370              'precision' => '4',
1371              'nullable' => False,
1372              'default' => '0'
1373          ));
1374          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_user','cal_user_id',array(
1375              'type' => 'int',
1376              'precision' => '4',
1377              'nullable' => False,
1378              'default' => '0'
1379          ));
1380  
1381          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.005';
1382          return $GLOBALS['setup_info']['calendar']['currentver'];
1383      }
1384  
1385  
1386      $test[] = '1.0.1.005';
1387  	function calendar_upgrade1_0_1_005()
1388      {
1389          $GLOBALS['egw_setup']->oProc->AddColumn('egw_cal_user','cal_quantity',array(
1390              'type' => 'int',
1391              'precision' => '4',
1392              'default' => '1'
1393          ));
1394  
1395          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.006';
1396          return $GLOBALS['setup_info']['calendar']['currentver'];
1397      }
1398  
1399  
1400      $test[] = '1.0.1.006';
1401  	function calendar_upgrade1_0_1_006()
1402      {
1403          $GLOBALS['egw_setup']->oProc->AddColumn('egw_cal','cal_non_blocking',array(
1404              'type' => 'int',
1405              'precision' => '2',
1406              'default' => '0'
1407          ));
1408  
1409          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.007';
1410          return $GLOBALS['setup_info']['calendar']['currentver'];
1411      }
1412  
1413  
1414      $test[] = '1.0.1.007';
1415  	function calendar_upgrade1_0_1_007()
1416      {
1417          $GLOBALS['egw_setup']->db->update('egw_cal_repeats',array('recur_exception' => null),array('recur_exception' => ''),__LINE__,__FILE__,'calendar');
1418  
1419          $GLOBALS['egw_setup']->oProc->AlterColumn('egw_cal_repeats','recur_exception',array(
1420              'type' => 'text'
1421          ));
1422  
1423          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.008';
1424          return $GLOBALS['setup_info']['calendar']['currentver'];
1425      }
1426  
1427  
1428      $test[] = '1.0.1.008';
1429  	function calendar_upgrade1_0_1_008()
1430      {
1431          $config =& CreateObject('phpgwapi.config','calendar');
1432          $config_data = $config->read_repository();
1433          if (isset($config_data['fields']))    // old custom fields
1434          {
1435              $customfields = array();
1436              $order = 0;
1437              foreach($config_data['fields'] as $name => $data)
1438              {
1439                  if ($name{0} == '#' && !$data['disabled'])    // real not-disabled custom field
1440                  {
1441                      $customfields[substr($name,1)] = array(
1442                          'type'  => 'text',
1443                          'len'   => $data['length'].($data['shown'] ? ','.$data['shown'] : ''),
1444                          'label' => $data['name'],
1445                          'order' => ($order += 10),
1446                      );
1447                  }
1448              }
1449              if (count($customfields))
1450              {
1451                  $config->save_value('customfields',$customfields);
1452              }
1453              $config->delete_value('fields');
1454              $config->save_repository();        // delete_value does not save
1455          }
1456          $GLOBALS['setup_info']['calendar']['currentver'] = '1.0.1.009';
1457          return $GLOBALS['setup_info']['calendar']['currentver'];
1458      }
1459  
1460  
1461      $test[] = '1.0.1.009';
1462  	function calendar_upgrade1_0_1_009()
1463      {
1464          $db2 = clone($GLOBALS['egw_setup']->db);
1465          $add_groups = array();
1466          $GLOBALS['egw_setup']->db->select('egw_cal','DISTINCT egw_cal.cal_id,cal_groups,cal_recur_date',"cal_groups != ''",__LINE__,__FILE__,
1467              False,'','calendar',0,',egw_cal_user WHERE egw_cal.cal_id=egw_cal_user.cal_id');
1468          while(($row = $GLOBALS['egw_setup']->db->row(true)))
1469          {
1470              $row['cal_user_type'] = 'u';
1471              foreach(explode(',',$row['cal_groups']) as $group)
1472              {
1473                  $row['cal_user_id'] = $group;
1474                  $db2->insert('egw_cal_user',array('cal_status' => 'U'),$row,__LINE__,__FILE__,'calendar');
1475              }
1476          }
1477          $GLOBALS['egw_setup']->oProc->DropColumn('egw_cal',array(
1478              'fd' => array(
1479                  'cal_id' => array('type' => 'auto','nullable' => False),
1480                  'cal_uid' => array('type' => 'varchar','precision' => '255','nullable' => False),
1481                  'cal_owner' => array('type' => 'int','precision' => '4','nullable' => False),
1482                  'cal_category' => array('type' => 'varchar','precision' => '30'),
1483                  'cal_modified' => array('type' => 'int','precision' => '8'),
1484                  'cal_priority' => array('type' => 'int','precision' => '2','nullable' => False,'default' => '2'),
1485                  'cal_public' => array('type' => 'int','precision' => '2','nullable' => False,'default' => '1'),
1486                  'cal_title' => array('type' => 'varchar','precision' => '255','nullable' => False,'default' => '1'),
1487                  'cal_description' => array('type' => 'text'),
1488                  'cal_location' => array('type' => 'varchar','precision' => '255'),
1489                  'cal_reference' => array('type' => 'int','precision' => '4','nullable' => False,'default' => '0'),
1490                  'cal_modifier' => array('type' => 'int','precision' => '4'),
1491                  'cal_non_blocking' => array('type' => 'int','precision' => '2','default' => '0')
1492              ),
1493              'pk' => array('cal_id'),
1494              'fk' => array(),
1495              'ix' => array(),
1496              'uc' => array()
1497          ),'cal_groups');
1498  
1499          return $GLOBALS['setup_info']['calendar']['currentver'] = '1.2';
1500      }
1501      
1502  
1503      $test[] = '1.2';
1504  	function calendar_upgrade1_2()
1505      {
1506          // get old alarms (saved before 1.2) working again
1507          $GLOBALS['egw_setup']->db->query("UPDATE egw_async SET async_method ='calendar.bocalupdate.send_alarm' WHERE async_method ='calendar.bocalendar.send_alarm'",__LINE__,__FILE__);
1508          
1509          return $GLOBALS['setup_info']['calendar']['currentver'] = '1.2.001';
1510      }


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7