fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [10617] Controller: Some changes to saving control it


From: Torstein
Subject: [Fmsystem-commits] [10617] Controller: Some changes to saving control items and control groups
Date: Fri, 21 Dec 2012 12:27:56 +0000

Revision: 10617
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10617
Author:   vator
Date:     2012-12-21 12:27:55 +0000 (Fri, 21 Dec 2012)
Log Message:
-----------
Controller: Some changes to saving control items and control groups

Modified Paths:
--------------
    trunk/controller/inc/class.socontrol_item_list.inc.php
    trunk/controller/inc/class.uicontrol.inc.php
    trunk/controller/inc/class.uicontrol_group.inc.php

Modified: trunk/controller/inc/class.socontrol_item_list.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol_item_list.inc.php      2012-12-19 
12:09:02 UTC (rev 10616)
+++ trunk/controller/inc/class.socontrol_item_list.inc.php      2012-12-21 
12:27:55 UTC (rev 10617)
@@ -139,14 +139,21 @@
 
                        $sql = "SELECT cil.* FROM controller_control_item_list 
cil WHERE cil.control_id = " . $control_id . " AND cil.control_item_id = " . 
$control_item_id;
                        $this->db->limit_query($sql, 0, __LINE__, __FILE__, 1);
-                       $this->db->next_record();
+                       $result = $this->db->next_record();
 
-                       $control_item_list = new 
controller_control_item_list($this->unmarshal($this->db->f('id'), 'int'));
-                       
$control_item_list->set_control_id($this->unmarshal($this->db->f('control_id'), 
'int'));
-                       
$control_item_list->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
 'int'));
-                       
$control_item_list->set_order_nr($this->unmarshal($this->db->f('order_nr'), 
'int'));
-
-                       return $control_item_list;
+                       if( $result )
+                       {
+                               $control_item_list = new 
controller_control_item_list($this->unmarshal($this->db->f('id'), 'int'));
+                               
$control_item_list->set_control_id($this->unmarshal($this->db->f('control_id'), 
'int'));
+                               
$control_item_list->set_control_item_id($this->unmarshal($this->db->f('control_item_id'),
 'int'));
+                               
$control_item_list->set_order_nr($this->unmarshal($this->db->f('order_nr'), 
'int'));
+                       
+                               return $control_item_list;
+                       }
+                       else
+                       {
+                               return null;    
+                       }
                }
                
                /**

Modified: trunk/controller/inc/class.uicontrol.inc.php
===================================================================
--- trunk/controller/inc/class.uicontrol.inc.php        2012-12-19 12:09:02 UTC 
(rev 10616)
+++ trunk/controller/inc/class.uicontrol.inc.php        2012-12-21 12:27:55 UTC 
(rev 10617)
@@ -262,13 +262,11 @@
                                }
                        }
                        
-                       // Sigurd: START as categories
                        $cats   = CreateObject('phpgwapi.categories', -1, 
'controller', '.control');
                        $cats->supress_info     = true;
                        
                        $control_areas = 
$cats->formatted_xslt_list(array('format'=>'filter','globals' => true,'use_acl' 
=> $this->_category_acl));
                        $control_areas_array = $control_areas['cat_list'];
-                       // END as categories
                
                        if($control != null)
                                $procedures_array = 
$this->so_procedure->get_procedures_by_control_area($control->get_control_area_id());
@@ -289,7 +287,7 @@
                                'tabs'                                          
                        => $GLOBALS['phpgw']->common->create_tabs($tabs, 0),
                                'view'                                          
                        => "control_details",
                                'editable'                                      
                => true,
-                               'control'                                       
                        => ($control != null) ? $control->toArray() : null,
+                               'control'                                       
                        => ($control != null) ? $control : null,
                                'control_areas_array'           => 
$control_areas_array,
                                'procedures_array'                      => 
$procedures_array,
                                'role_array'                                    
        => $role_array,
@@ -404,7 +402,7 @@
                                'tabs'                                          
=> $GLOBALS['phpgw']->common->create_tabs($tabs, 1),
                                'view'                                          
=> "control_groups",
                                'editable'                              => true,
-                               'control'                                       
=> $control->toArray(),
+                               'control'                                       
=> $control,
                                'control_area'          => $control_area,
                                'control_groups'        => $control_groups,
                        );
@@ -523,7 +521,7 @@
                                'tabs'                                          
                                        => 
$GLOBALS['phpgw']->common->create_tabs($tabs, 2),
                                'view'                                          
                                        => 'control_items',
                                'control_group_ids'                             
        => implode($control_group_ids, ","),
-                               'control'                                       
                        => $control->toArray(),
+                               'control'                                       
                        => $control,
                                'groups_with_control_items'     => 
$groups_with_control_items                   
                        );
                        
@@ -543,30 +541,57 @@
                 */ 
                public function save_control_items(){
                        $control_id = phpgw::get_var('control_id');
-                       
+
                        // Fetching selected control items. Tags are on the 
format 1:2 (group:item). 
                        $control_tag_ids = phpgw::get_var('control_tag_ids');
                        
-                       // Deleting earlier saved control items
-                       
$this->so_control_item_list->delete_control_items($control_id);
-       
+                       $saved_control_items = 
$this->so_control_item_list->get_control_items_by_control($control_id, 
"return_object");
+                       
+                       // Deleting formerly saved control items
+                       foreach ($saved_control_items as $saved_control_item)
+                       {
+                               $exists = false;
+                               $saved_control_item_id = 
$saved_control_item->get_id();
+                                 
+                               foreach ($control_tag_ids as $control_item_tag)
+                               {
+                                       $control_item_id = 
substr($control_item_tag, strpos($control_item_tag, ":")+1, 
strlen($control_item_tag));
+                                       
+                                       if($control_item_id == 
$saved_control_item_id)
+                                       {
+                                               $exists = true;
+                                       }
+                               }
+                               
+                               if($exists == false)
+                               {
+                                       $exists = false;
+                                       $status = 
$this->so_control_item_list->delete($control_id, $saved_control_item_id);
+                               }
+                       }
+                                               
                        $order_nr = 1;
-                       // Saving control items if submit save control items is 
clicked 
+                       // Saving new control items 
                        foreach ($control_tag_ids as $control_item_tag)
-                       {       
+                       {
                                // Fetch control_item_id from tag string
                                $control_item_id = substr($control_item_tag, 
strpos($control_item_tag, ":")+1, strlen($control_item_tag));
-                                                       
-                               // Saves control item
-                               $control_item_list = new 
controller_control_item_list();
-                               $control_item_list->set_control_id($control_id);
-                               
$control_item_list->set_control_item_id($control_item_id);
-                               $control_item_list->set_order_nr($order_nr);
-                               
$this->so_control_item_list->add($control_item_list);
                                
-                               $order_nr++;
-                       }       
-       
+                               $saved_control_list_item = 
$this->so_control_item_list->get_single_2($control_id, $control_item_id);
+                               
+                               if( $saved_control_list_item == null )
+                               {
+                                       // Saves control item
+                                       $control_item_list = new 
controller_control_item_list();
+                                       
$control_item_list->set_control_id($control_id);
+                                       
$control_item_list->set_control_item_id($control_item_id);
+                                       
$control_item_list->set_order_nr($order_nr);
+                                       
$this->so_control_item_list->add($control_item_list);
+                                       
+                                       $order_nr++;
+                               }
+                       }
+                       
                        $this->redirect(array('menuaction' => 
'controller.uicontrol.view_check_list', 'control_id'=>$control_id ));     
                }
 
@@ -601,7 +626,7 @@
                        (
                                'tabs'                                          
                                                        => 
$GLOBALS['phpgw']->common->create_tabs($tabs, 3),
                                'view'                                          
                                                        => "sort_check_list",
-                               'control'                                       
                                                        => $control->toArray(),
+                               'control'                                       
                                                        => $control,
                                'saved_groups_with_items_array' => 
$saved_groups_with_items_array
                        );
                        
@@ -621,7 +646,7 @@
 
                        $data = array
                        (
-                               'control'       => $control->toArray(),
+                               'control'       => $control
                        );
                  
                        self::render_template_xsl('control/control_details', 
$data);

Modified: trunk/controller/inc/class.uicontrol_group.inc.php
===================================================================
--- trunk/controller/inc/class.uicontrol_group.inc.php  2012-12-19 12:09:02 UTC 
(rev 10616)
+++ trunk/controller/inc/class.uicontrol_group.inc.php  2012-12-21 12:27:55 UTC 
(rev 10617)
@@ -547,7 +547,7 @@
                        $item_order_arr = explode(",", $item_order_str);
                        
                        $db_control_group_list = 
$this->so_control_group_list->get_db();
-                                       
+                       
                        // Saves order for control groups
                        foreach($group_order_arr as $group_id_order){
                                $group_id_order_arr = explode(":", 
$group_id_order);
@@ -561,7 +561,6 @@
                                
                                // Updates group order if control_group_list 
object exists      
                                if( $control_group_list != null ){
-                                       
                                        $control_group_list->set_order_nr( 
$group_order_nr );
                                        $id = 
$this->so_control_group_list->update( $control_group_list );
                                        




reply via email to

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