fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [8422] api: set value when defining attibute


From: Sigurd Nes
Subject: [Fmsystem-commits] [8422] api: set value when defining attibute
Date: Fri, 23 Dec 2011 11:34:32 +0000

Revision: 8422
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8422
Author:   sigurdne
Date:     2011-12-23 11:34:31 +0000 (Fri, 23 Dec 2011)
Log Message:
-----------
api: set value when defining attibute

Modified Paths:
--------------
    trunk/admin/inc/class.soconfig.inc.php

Modified: trunk/admin/inc/class.soconfig.inc.php
===================================================================
--- trunk/admin/inc/class.soconfig.inc.php      2011-12-23 09:56:11 UTC (rev 
8421)
+++ trunk/admin/inc/class.soconfig.inc.php      2011-12-23 11:34:31 UTC (rev 
8422)
@@ -22,6 +22,7 @@
                public $config_data = array();
                protected $db;
                protected $location_id = 0;
+               protected $global_lock = false;
 
                public function __construct($location_id = 0)
                {
@@ -142,8 +143,16 @@
 
                function add_section(array $values)
                {
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
 
+
                        $values['name'] = 
$this->db->db_addslashes($values['name']);
                        $values['descr'] = 
$this->db->db_addslashes($values['descr']);
 
@@ -174,15 +183,26 @@
                        $receipt['message'][]=array('msg'=>lang('config section 
has been saved'));
                        $receipt['section_id']= $values['section_id'];
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
 
                        return $receipt;
                }
 
                function edit_section(array $values)
                {
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
 
+
                        $value_set['name']              = 
$this->db->db_addslashes($values['name']);
                        $value_set['descr']             = 
$this->db->db_addslashes($values['descr']);
 
@@ -190,7 +210,10 @@
 
                        $this->db->query("UPDATE phpgw_config2_section set 
$value_set WHERE id=" . $values['section_id'],__LINE__,__FILE__);
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
 
                        $receipt['message'][]=array('msg'=>lang('config section 
has been edited'));
 
@@ -201,12 +224,25 @@
                function delete_section(int $id)
                {
                        $id = (int)$id;
-                       $this->db->transaction_begin();
+
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
+
                        $this->db->query("DELETE FROM phpgw_config2_value WHERE 
section_id = {$id}",__LINE__,__FILE__);
                        $this->db->query("DELETE FROM phpgw_config2_choice 
WHERE section_id = {$id}",__LINE__,__FILE__);
                        $this->db->query("DELETE FROM phpgw_config2_attrib 
WHERE section_id = {$id}",__LINE__,__FILE__);
                        $this->db->query("DELETE FROM phpgw_config2_section 
WHERE id = {$id}",__LINE__,__FILE__);
-                       $this->db->transaction_commit();
+
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
                }
 
                function read_attrib(array $data)
@@ -332,7 +368,14 @@
 
                function add_attrib(array $values)
                {
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
 
                        $values['name'] = 
$this->db->db_addslashes($values['name']);
                        $values['descr'] = 
$this->db->db_addslashes($values['descr']);
@@ -363,18 +406,45 @@
                        $this->db->query("INSERT INTO phpgw_config2_attrib 
(section_id,id,input_type,name,descr) "
                                . "VALUES ($insert_values)",__LINE__,__FILE__);
 
+
+                       $choice_map = array();
+                       if(isset($values['choice']) && $values['choice'])
+                       {
+                               foreach ($values['choice'] as $choice)
+                               {
+                                       $values['new_choice'] = $choice;
+                                       $this->edit_attrib($values);            
                
+                               }
+                       }
+
+                       if(isset($values['value']) && $values['value'])
+                       {
+                               $this->add_value($values);
+                       }
+
                        $receipt['message'][]=array('msg'=>lang('config attrib 
has been saved'));
                        $receipt['attrib_id']= $values['attrib_id'];
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
 
                        return $receipt;
                }
 
                function edit_attrib(array $values)
                {
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
 
+
                        $value_set['name']      = 
$this->db->db_addslashes($values['name']);
                        $value_set['descr']     = 
$this->db->db_addslashes($values['descr']);
                        $value_set['input_type']        = $values['input_type'];
@@ -410,11 +480,15 @@
                                }
                        }
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
 
                        $receipt['message'][]=array('msg'=>lang('config attrib 
has been edited'));
 
                        $receipt['attrib_id']= $values['attrib_id'];
+                       $receipt['choice_id'] = $choice_id;
                        return $receipt;
                }
 
@@ -423,11 +497,22 @@
                        $section_id     = (int) $section_id;
                        $id                     = (int) $id;
 
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
+
                        $this->db->query("DELETE FROM phpgw_config2_value WHERE 
section_id ={$section_id} AND attrib_id={$id}",__LINE__,__FILE__);
                        $this->db->query("DELETE FROM phpgw_config2_choice 
WHERE section_id ={$section_id} AND attrib_id={$id}",__LINE__,__FILE__);
                        $this->db->query("DELETE FROM phpgw_config2_attrib 
WHERE section_id ={$section_id} AND id={$id}",__LINE__,__FILE__);
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
                }
 
                function read_value(array $data)
@@ -513,8 +598,16 @@
                                $values['value'] = 
phpgwapi_datetime::date_to_timestamp($values['value']);
                        }
 
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
 
+
                        $values['value'] = 
$this->db->db_addslashes($values['value']);
                        $id = 
$this->db->next_id('phpgw_config2_value',array('section_id'=>$values['section_id'],'attrib_id'=>$values['attrib_id']));
 
@@ -533,7 +626,10 @@
                        $receipt['message'][]=array('msg'=>lang('config value 
has been saved'));
                        $receipt['id']= $id;
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
 
                        return $receipt;
                }
@@ -551,11 +647,23 @@
                        }
                        else
                        {
-                               $this->db->transaction_begin();
+                               if ( $this->db->get_transaction() )
+                               {
+                                       $this->global_lock = true;
+                               }
+                               else
+                               {
+                                       $this->db->transaction_begin();
+                               }
+
                                $value_set['value']     = 
$this->db->db_addslashes($values['value']);
                                $value_set      = 
$this->db->validate_update($value_set);
                                $this->db->query("UPDATE phpgw_config2_value 
SET {$value_set} WHERE section_id =" . (int)$values['section_id'] . ' AND 
attrib_id=' . (int)$values['attrib_id'] . ' AND id=' . 
(int)$values['id'],__LINE__,__FILE__);
-                               $this->db->transaction_commit();
+
+                               if ( !$this->global_lock )
+                               {
+                                       $this->db->transaction_commit();
+                               }
                        }
 
                        $receipt['message'][]=array('msg'=>lang('config value 
has been edited'));
@@ -570,9 +678,20 @@
                        $attrib_id      = (int) $attrib_id;
                        $id                     = (int) $id;
 
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
+
                        $this->db->query("DELETE FROM phpgw_config2_value WHERE 
section_id ={$section_id} AND attrib_id={$attrib_id} AND 
id={$id}",__LINE__,__FILE__);
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
                }
 
                function select_choice_list($section_id,$attrib_id)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]