fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [8114]


From: Torstein
Subject: [Fmsystem-commits] [8114]
Date: Wed, 16 Nov 2011 07:02:38 +0000

Revision: 8114
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8114
Author:   vator
Date:     2011-11-16 07:02:33 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------


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

Modified: trunk/controller/inc/class.socontrol_group_list.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol_group_list.inc.php     2011-11-15 
19:52:03 UTC (rev 8113)
+++ trunk/controller/inc/class.socontrol_group_list.inc.php     2011-11-16 
07:02:33 UTC (rev 8114)
@@ -123,6 +123,20 @@
                }
        }
        
+       function delete($control_id, $control_group_id)
+       {               
+               $result = $this->db->query("DELETE FROM 
controller_control_group_list WHERE control_id = $control_id AND 
control_group_id = $control_group_id");
+                               
+               return isset($result);
+       }
+       
+       function delete_control_groups($control_id)
+       {               
+               $result = $this->db->query("DELETE FROM 
controller_control_group_list WHERE control_id = $control_id");
+                               
+               return isset($result);
+       }
+       
        function get_control_groups_by_control_id($control_id)
        {
                $this->db->query("SELECT cg.*, cgl.order_nr FROM 
controller_control_group_list cgl, controller_control_group cg WHERE 
cgl.control_id=$control_id AND cgl.control_group_id=cg.id ORDER BY 
cgl.order_nr", __LINE__, __FILE__);

Modified: trunk/controller/inc/class.socontrol_item_list.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol_item_list.inc.php      2011-11-15 
19:52:03 UTC (rev 8113)
+++ trunk/controller/inc/class.socontrol_item_list.inc.php      2011-11-16 
07:02:33 UTC (rev 8114)
@@ -120,13 +120,18 @@
        
        function delete($control_id, $control_item_id)
        {               
-               var_dump("DELETE FROM controller_control_item_list WHERE 
control_id = $control_id AND control_item_id = $control_item_id");
-               
                $result = $this->db->query("DELETE FROM 
controller_control_item_list WHERE control_id = $control_id AND control_item_id 
= $control_item_id", __LINE__,__FILE__);
                                
                return isset($result);
        }
        
+       function delete_control_items($control_id)
+       {               
+               $result = $this->db->query("DELETE FROM 
controller_control_item_list WHERE control_id = $control_id");
+                               
+               return isset($result);
+       }
+       
        /**
         * Get a list of procedure objects matching the specific filters
         * 

Modified: trunk/controller/inc/class.uicontrol.inc.php
===================================================================
--- trunk/controller/inc/class.uicontrol.inc.php        2011-11-15 19:52:03 UTC 
(rev 8113)
+++ trunk/controller/inc/class.uicontrol.inc.php        2011-11-16 07:02:33 UTC 
(rev 8114)
@@ -170,10 +170,12 @@
                
                        if(isset($control_id) && $control_id > 0)
                        {
-                               $control = $this->so->get_single($control_id);  
+                               $control = $this->so->get_single($control_id);
                        }
 
                        $control_areas_array = 
$this->so_control_area->get_control_areas_as_array();
+
+                       // Fetches prosedures that are related to first control 
area in list
                        $control_area_id = $control_areas_array[0]['id'];
                        $procedures_array = 
$this->so_procedure->get_procedures_by_control_area_id($control_area_id);
                        
@@ -185,8 +187,6 @@
                                                        'label' => "3: " . 
lang('Choose_control_items')
                                                ), array(
                                                        'label' => "4: " . 
lang('Sort_check_list')
-                                               ), array(
-                                                       'label' => "5: " . 
lang('Show_check_lists')
                                                ));
                        
                        $data = array
@@ -210,7 +210,6 @@
                }
                
                public function save_control_details(){
-               
                        $control_id = phpgw::get_var('control_id');             
                        
                        // Update control details
@@ -224,24 +223,44 @@
                        }
                        
                        $control->populate();
-                       $control_id = $this->so->store($control);
-                       $control_title = $control->get_title();
-               
-                       $this->redirect(array('menuaction' => 
'controller.uicontrol.view_control_groups', 'control_id'=>$control_id, 
'control_area_id'=>$control->get_control_area_id(), 
'control_title'=>$control_title));     
+                                                                       
+                       if( $control->get_title() == "" ){
+                               $this->redirect(array('menuaction' => 
'controller.uicontrol.view_control_details', 'control_id'=>$control_id, 
'control_area_id'=>$control->get_control_area_id()));     
+                       }
+                       else
+                       {
+                               $control_id = $this->so->store($control);
+                               $this->redirect(array('menuaction' => 
'controller.uicontrol.view_control_groups', 'control_id'=>$control_id, 
'control_area_id'=>$control->get_control_area_id()));
+                       }
                }
                                                
                // Displays control groups based on previously chosen control 
area
                public function view_control_groups(){
                        
                        $control_id = phpgw::get_var('control_id');
+                       $control = $this->so->get_single($control_id);  
                        $control_area_id = phpgw::get_var('control_area_id');
-                       $control_title = phpgw::get_var('control_title');
-                       $control_group_ids = 
phpgw::get_var('control_group_ids');
-                                       
-                       $control_area = $this->so_control_area->get_single( 
$control_area_id );
                        
+                       // Contains earlier selected control_groups
+                       $selected_control_group_ids = 
phpgw::get_var('control_group_ids');
+                               
+                       $control_area = $this->so_control_area->get_single( 
$control_area_id );         
                        $control_groups_as_array = 
$this->so_control_group->get_control_groups_as_array($control_area->get_id(), 
25);
                        
+                       $control_groups = array();
+                       
+                       foreach($control_groups_as_array as $control_group){
+                               $control_group_id = $control_group['id'];
+                               
+                               if( in_array($control_group_id, 
$selected_control_group_ids )){
+                                       $control_groups[] = array("checked" => 
1, "control_group" => $control_group);
+                               }
+                               else
+                               {
+                                       $control_groups[] = array("checked" => 
0, "control_group" => $control_group);
+                               }
+                       }
+                       
                        $tabs = array(
                                                array(
                                                        'label' => "1: " . 
lang('Details'),
@@ -256,49 +275,90 @@
                                                ), 
                                                array(
                                                        'label' => "4: " . 
lang('Sort_check_list')
-                                               ), 
-                                               array(
-                                                       'label' => "5: " . 
lang('Show_check_lists')
-                                               )
-                                       );
+                                               ));
                        
                        $data = array
                        (
-                               'tabs'                                          
=> $GLOBALS['phpgw']->common->create_tabs($tabs, 1),
-                               'view'                                          
=> "control_groups",
-                               'editable'                                      
=> true,
-                               'control_id'                            => 
$control_id,
-                               'control_title'                         => 
$control_title,
-                               'control_area'                          => 
$control_area->toArray(),
-                               'control_groups'                        => 
$control_groups_as_array,
-                               'chosen_control_groups'         => 
$control_group_ids
+                               'tabs'                                          
        => $GLOBALS['phpgw']->common->create_tabs($tabs, 1),
+                               'view'                                          
        => "control_groups",
+                               'editable'                                      
        => true,
+                               'control'                                       
        => $control->toArray(),
+                               'control_area'                                  
=> $control_area->toArray(),
+                               'control_groups'                                
=> $control_groups,
                        );
                        
                        self::add_javascript('controller', 'yahoo', 
'control_tabs.js');
                        self::render_template_xsl(array('control_tabs', 
'control_groups'), $data);
                }
                
+               public function save_control_groups(){
+                       $control_id = phpgw::get_var('control_id');
+                       $control_area_id = phpgw::get_var('control_area_id');
+                       $control_group_ids = 
phpgw::get_var('control_group_ids');               
+
+                       $group_order_nr = 1;
+
+                       // Saving control groups 
+                       foreach ($control_group_ids as $control_group_id)
+                       {
+                               $control_group_list = new 
controller_control_group_list();
+                               
$control_group_list->set_control_id($control_id);
+                               
$control_group_list->set_control_group_id($control_group_id);
+                               
$control_group_list->set_order_nr($group_order_nr);
+                                                       
+                               
$this->so_control_group_list->add($control_group_list);
+                               $group_order_nr++;
+                       }
+                       
+                       $this->redirect(array('menuaction' => 
'controller.uicontrol.view_control_items', 
+                                                                 
'control_id'=>$control_id, 'control_area_id'=>$control_area_id, 
+                                                                 
'control_title'=>$control_title, 'control_group_ids'=>$control_group_ids));   
+               }
+               
                // Gets a comma separated list of control groups, and displays 
control items for these groups
                public function view_control_items(){
                        $control_id = phpgw::get_var('control_id', 'int');
                        $control = $this->so->get_single($control_id);
-                       $control_title = $control->get_title();
                        
-                       $control_group_ids = array();
                        $control_group_ids = 
phpgw::get_var('control_group_ids');
-
+               
+                       // Fetches saved control items from db
+                       $selected_control_items = 
$this->so_control_item->get_control_items_by_control_id($control_id);
+                       $selected_control_item_ids = array();
+                       
+                       foreach($selected_control_items as $control_item){
+                               $selected_control_item_ids[] = 
$control_item->get_id();
+                       }
+                       
+                       // Array with selected control groups and items
                        $groups_with_control_items = array();
-                                       
-                       // Fetching control items for each control group and 
populates array that contains groups with chosen items 
+                       
+                       // Fetches control items for control group and 
populates groups_with_control_items with groups and chosen control items
                        foreach ($control_group_ids as $control_group_id)
                        {       
                                $group_control_items_array = 
$this->so_control_item->get_control_items_as_array($control_group_id);
                                
+                               $control_items_for_group_array = array();
+                               
+                               foreach($group_control_items_array as 
$control_item){
+                                       $control_item_id = $control_item['id'];
+                                       
+                                       if( in_array($control_item_id, 
$selected_control_item_ids )){
+                                               
$control_items_for_group_array[] = array("checked" => 1, "control_item" => 
$control_item);
+                                       }
+                                       else
+                                       {
+                                               
$control_items_for_group_array[] = array("checked" => 0, "control_item" => 
$control_item);
+                                       }
+                               }
+                               
                                $control_group = 
$this->so_control_group->get_single($control_group_id);
                                
-                               $groups_with_control_items[] = 
array("control_group" => $control_group->toArray(), "group_control_items" => 
$group_control_items_array);
+                               $groups_with_control_items[] = 
array("control_group" => $control_group->toArray(), "group_control_items" => 
$control_items_for_group_array);
                        }                       
                        
+                       //print_r( $groups_with_control_items[0] );
+                       
                        $tabs = array(
                                                array(
                                                        'label' => "1: " . 
lang('Details'),
@@ -311,42 +371,42 @@
                                                                                
                                                                               
'control_id' => $control_id, 'control_group_ids' => $control_group_ids, 
                                                                                
                                                                               
'control_area_id' => $control->get_control_area_id()))
                                                ),
-                                               array('label' => "3: " . 
lang('Choose_control_items')), 
-                                               array('label' => "4: " . 
lang('Sort_check_list')), 
-                                               array('label' => "5: " . 
lang('Show_check_lists'))
-                                       );
+                                               array('label' => "3: " . 
lang('Choose_control_items')));
                                        
                        $data = array
                        (
                                'tabs'                                          
=> $GLOBALS['phpgw']->common->create_tabs($tabs, 2),
                                'view'                                          
=> 'control_items',
                                'control_group_ids'                     => 
implode($control_group_ids, ","),
-                               'control_id'                            => 
$control_id,
-                               'control_title'                         => 
$control_title,
+                               'control'                                   => 
$control->toArray(),
                                'groups_with_control_items'     => 
$groups_with_control_items                   
                        );
                        
                        self::add_javascript('controller', 'yahoo', 
'control_tabs.js');
                        self::add_javascript('controller', 'controller', 
'jquery.js');
                        self::add_javascript('controller', 'controller', 
'custom_ui.js');
-                       self::render_template_xsl(array('control_tabs', 
'choose_control_items'), $data);
+                       self::render_template_xsl(array('control_tabs', 
'choose_control_items'), $data); 
                }
                
                // Saves chosen control items through receiving a comma 
separated list of control tags (1:2, control_group_id:control_item_id) 
                public function save_control_items(){
                        $control_id = phpgw::get_var('control_id');
-                       $control_title = phpgw::get_var('control_title');
                        $control_group_ids = explode(",", 
phpgw::get_var('control_group_ids'));
                        
                        // 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 groups
+                       
$this->so_control_group_list->delete_control_groups($control_id);
+                       
+                       // Deleting earlier saved control items
+                       
$this->so_control_item_list->delete_control_items($control_id);
+                                               
                        $group_order_nr = 1;
                        
                        // Saving control groups 
                        foreach ($control_group_ids as $control_group_id)
                        {
-                               //var_dump("control_group_id: " . 
$control_group_id);
                                $control_group_list = new 
controller_control_group_list();
                                
$control_group_list->set_control_id($control_id);
                                
$control_group_list->set_control_group_id($control_group_id);
@@ -375,7 +435,6 @@
                public function view_check_list(){
                        $control_id = phpgw::get_var('control_id');
                        $control = $this->so->get_single($control_id);
-                       $control_title = $control->get_title();
                        
                        $control_group_ids = 
phpgw::get_var('control_group_ids');
                        
@@ -425,7 +484,6 @@
                                                                                
                                                                                
   'view' => "view_control_items", 'control_id' => $control_id, 
                                                                                
                                                                                
   'control_group_ids' => $control_group_ids))
                                                ),array('label' => "4: " . 
lang('Sort_check_list')
-                                               ),array('label' => "5: " . 
lang('Show_check_lists')
                                                )
                                                
                                        );
@@ -434,8 +492,7 @@
                        (
                                'tabs'                                  => 
$GLOBALS['phpgw']->common->create_tabs($tabs, 3),
                                'view'                                  => 
"sort_check_list",
-                               'control_id'                    => $control_id,
-                               'control_title'                 => 
$control_title,
+                               'control'                               => 
$control->toArray(),
                                'saved_groups_with_items_array' => 
$saved_groups_with_items_array
                        );
                        
@@ -517,9 +574,7 @@
                                                                                
                                                                                
   'view' => "view_control_items", 'control_id' => $control_id, 
                                                                                
                                                                                
   'control_group_ids' => $control_group_ids))
                                                ),array('label' => "4: " . 
lang('Sort_check_list')
-                                               ),array('label' => "5: " . 
lang('Show_check_lists')
                                                )
-                                               
                                        );
                        
                        $data = array




reply via email to

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