[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [8422] api: set value when defining attibute,
Sigurd Nes <=