fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [9296] property: custom fields at tickets


From: Sigurd Nes
Subject: [Fmsystem-commits] [9296] property: custom fields at tickets
Date: Mon, 07 May 2012 14:00:40 +0000

Revision: 9296
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9296
Author:   sigurdne
Date:     2012-05-07 14:00:35 +0000 (Mon, 07 May 2012)
Log Message:
-----------
property: custom fields at tickets

Modified Paths:
--------------
    trunk/property/inc/class.botts.inc.php
    trunk/property/inc/class.custom_fields.inc.php
    trunk/property/inc/class.sotts.inc.php
    trunk/property/inc/class.uitts.inc.php

Modified: trunk/property/inc/class.botts.inc.php
===================================================================
--- trunk/property/inc/class.botts.inc.php      2012-05-07 12:39:18 UTC (rev 
9295)
+++ trunk/property/inc/class.botts.inc.php      2012-05-07 14:00:35 UTC (rev 
9296)
@@ -180,55 +180,68 @@
                        $this->vendor_id                = 
isset($data['vendor_id'])?$data['vendor_id']:'';
                }
 
-               function column_list($selected = 
array(),$type_id='',$allrows='')
+
+               function column_list($selected = array())
                {
                        if(!$selected)
                        {
                                $selected = 
isset($GLOBALS['phpgw_info']['user']['preferences']['property']['ticket_columns'])
 ? $GLOBALS['phpgw_info']['user']['preferences']['property']['ticket_columns'] 
: '';
                        }
-                       $filter = array('list' => ''); // translates to "list 
IS NULL"
+                       $_columns = $this->get_columns();
+
                        $columns = array();
+                       foreach($_columns as $id => $column_info)
+                       {
+                               $columns[] = $column_info;
+                       }
 
+                       
$column_list=$this->bocommon->select_multi_list($selected,$columns);
+                       return $column_list;
+               }
 
-                       $columns[] = array
+               public function get_columns()
+               {
+                       $columns = array();
+
+                       $columns['modified_date'] = array
                                (
                                        'id'            => 'modified_date',
                                        'name'          => lang('modified 
date'),
 //                                     'sortable'      => true
                                );
 
-                       $columns[] = array
+                       $columns['status'] = array
                                (
                                        'id' => 'status',
                                        'name'=> lang('status')
                                );
-                       $columns[] = array
+                       $columns['address'] = array
                                (
                                        'id' => 'address',
                                        'name'=> lang('address')
                                );
-                       $columns[] = array
+                       $columns['user'] = array
                                (
                                        'id' => 'user',
                                        'name'=> lang('user')
                                );
-                       $columns[] = array
+                       $columns['assignedto'] = array
                                (
                                        'id' => 'assignedto',
                                        'name'=> lang('assignedto')
                                );
 
-                       $columns[] = array
+                       $columns['vendor'] = array
                                (
                                        'id' => 'vendor',
                                        'name'=> lang('vendor')
                                );
-                       $columns[] = array
+                       $columns['billable_hours'] = array
                                (
                                        'id' => 'billable_hours',
                                        'name'=> lang('billable hours')
                                );
-                       $columns[] = array
+                       $columns['district'] = array
                                (
                                        'id' => 'district',
                                        'name'=> lang('district')
@@ -238,7 +251,7 @@
 
                        foreach($this->uicols_related as $related)
                        {
-                               $columns[] = array
+                               $columns[$related] = array
                                (
                                                'id' => $related,
                                                'name'=> 
ltrim(lang(str_replace('_', ' ', $related)),'!')
@@ -247,22 +260,35 @@
 
                        if( $this->show_finnish_date )
                        {
-                               $columns[] = array
+                               $columns['finnish_date'] = array
                                        (
                                                'id' => 'finnish_date',
                                                'name'=> lang('finnish_date')
                                        );
-                               $columns[] = array
+                               $columns['delay'] = array
                                        (
                                                'id' => 'delay',
                                                'name'=> lang('delay')
                                        );
                        }
 
-                       
$column_list=$this->bocommon->select_multi_list($selected,$columns);
-                       return $column_list;
+
+                       $custom_cols = $this->custom->find('property', 
'.ticket', 0, '', 'ASC', 'attrib_sort', true, true);
+                       foreach ($custom_cols as $custom_col)
+                       {
+                               $columns[$custom_col['column_name']] = array
+                               (
+                                       'id' => $custom_col['column_name'],
+                                       'name'=> $custom_col['input_text'],
+                                       'datatype' => $custom_col['datatype'],
+                               );
+                       }
+
+                       return $columns;
                }
 
+
+
                function filter($data=0)
                {
                        if(is_array($data))

Modified: trunk/property/inc/class.custom_fields.inc.php
===================================================================
--- trunk/property/inc/class.custom_fields.inc.php      2012-05-07 12:39:18 UTC 
(rev 9295)
+++ trunk/property/inc/class.custom_fields.inc.php      2012-05-07 14:00:35 UTC 
(rev 9296)
@@ -94,21 +94,28 @@
                                                $attributes['lang_datetitle']   
= lang('Select date');
                                        }
 
-                                       if(isset($attributes['value']) && 
$attributes['value'])
+
+                                       if($attributes['datatype'] == 'D')
                                        {
-                                               if($attributes['datatype'] == 
'DT')
-                                               {
-                                                       $timestamp= 
strtotime($attributes['value']);
-                                                       $attributes['value'] = 
array();
-                                                       
$attributes['value']['date'] = 
$GLOBALS['phpgw']->common->show_date($timestamp,$dateformat);
-                                                       
$attributes['value']['hour'] = date('H', $timestamp);
-                                                       
$attributes['value']['min'] = date('i', $timestamp);
                                                        
$clear_functions[$m]['name']    = "clear_{$attributes['name']}()";
                                                        $confirm_msg = 
lang('delete') . '?';
                                                        
$clear_functions[$m]['action']  = <<<JS
                                                        
if(confirm("{$confirm_msg}"))
                                                        {
                                                                var 
attribute_{$i}_date = document.getElementById('values_attribute_{$i}');
+                                                               
attribute_{$i}_date.value = '';
+                                                       }
+JS;
+                                                       $m++;
+                                       }
+                                       else if($attributes['datatype'] == 'DT')
+                                       {
+                                                       
$clear_functions[$m]['name']    = "clear_{$attributes['name']}()";
+                                                       $confirm_msg = 
lang('delete') . '?';
+                                                       
$clear_functions[$m]['action']  = <<<JS
+                                                       
if(confirm("{$confirm_msg}"))
+                                                       {
+                                                               var 
attribute_{$i}_date = document.getElementById('values_attribute_{$i}');
                                                                var 
attribute_{$i}_hour = document.getElementById('values_attribute_{$i}_hour');
                                                                var 
attribute_{$i}_min = document.getElementById('values_attribute_{$i}_min');
                                                                
attribute_{$i}_date.value = '';
@@ -117,7 +124,18 @@
                                                        }
 JS;
                                                        $m++;
+                                       }
 
+                                       if(isset($attributes['value']) && 
$attributes['value'])
+                                       {
+                                               if($attributes['datatype'] == 
'DT')
+                                               {
+                                                       $timestamp= 
strtotime($attributes['value']);
+                                                       $attributes['value'] = 
array();
+                                                       
$attributes['value']['date'] = 
$GLOBALS['phpgw']->common->show_date($timestamp,$dateformat);
+                                                       
$attributes['value']['hour'] = date('H', $timestamp);
+                                                       
$attributes['value']['min'] = date('i', $timestamp);
+
                                                }
                                                else
                                                {

Modified: trunk/property/inc/class.sotts.inc.php
===================================================================
--- trunk/property/inc/class.sotts.inc.php      2012-05-07 12:39:18 UTC (rev 
9295)
+++ trunk/property/inc/class.sotts.inc.php      2012-05-07 14:00:35 UTC (rev 
9296)
@@ -439,7 +439,13 @@
                        . 
"fm_tts_tickets.entry_date,fm_tts_tickets.modified_date,fm_tts_tickets.finnish_date,fm_tts_tickets.finnish_date2,fm_tts_tickets.order_id,fm_tts_tickets.vendor_id,fm_tts_tickets.actual_cost,"
                        . 
"fm_tts_tickets.budget,fm_tts_tickets.billable_hours,fm_district.descr as 
district,fm_tts_views.id as view,fm_location1.loc1_name {$result_order_field}";
 
-                       //fm_tts_tickets.* ,fm_location1.loc1_name, 
fm_tts_views.id as view {$result_order_field},fm_district.descr as district
+                       $custom_cols = $this->custom->find('property', 
'.ticket', 0, '', 'ASC', 'attrib_sort', true, true);
+                       
+                       foreach ($custom_cols as $custom_col)
+                       {
+                               $return_fields .= 
",fm_tts_tickets.{$custom_col['column_name']}";
+                       }
+
                        $sql = "SELECT DISTINCT {$return_fields}  FROM 
fm_tts_tickets"
                                . " {$this->join} fm_location1 ON 
fm_tts_tickets.loc1=fm_location1.loc1"
                                . " {$this->join} fm_part_of_town ON 
fm_location1.part_of_town_id=fm_part_of_town.part_of_town_id"
@@ -508,6 +514,7 @@
                                        unset($_fetch_single);
                                }
 
+                               $i = 0;
                                while ($this->db->next_record())
                                {
                                        $tickets[]= array
@@ -535,6 +542,26 @@
                                                        'new_ticket'            
=> $this->db->f('view') ? false : true,
                                                        'billable_hours'        
=> $this->db->f('billable_hours'),
                                        );
+
+                                       foreach ($custom_cols as $custom_col)
+                                       {
+                                               if($custom_value = 
$this->db->f($custom_col['column_name'],true))
+                                               {
+                                                       
switch($custom_col['datatype'])
+                                                       {
+                                                               case 'DT':
+                                                                       
$custom_value = $GLOBALS['phpgw']->common->show_date(strtotime($custom_value) - 
phpgwapi_datetime::user_timezone());
+                                                                       break;
+                                                               case 'D':
+                                                                       
$custom_value = $GLOBALS['phpgw']->common->show_date(strtotime($custom_value) - 
phpgwapi_datetime::user_timezone(),$this->dateformat);
+                                                                       break;
+                                                               default:
+                                                               // nothing
+                                                       }
+                                               }
+                                               
$tickets[$i][$custom_col['column_name']] = $custom_value;
+                                       }
+                                       $i ++;
                                }
                        }
 

Modified: trunk/property/inc/class.uitts.inc.php
===================================================================
--- trunk/property/inc/class.uitts.inc.php      2012-05-07 12:39:18 UTC (rev 
9295)
+++ trunk/property/inc/class.uitts.inc.php      2012-05-07 14:00:35 UTC (rev 
9296)
@@ -374,7 +374,7 @@
                        $data = array
                                (
                                        'msgbox_data'           => 
$GLOBALS['phpgw']->common->msgbox($msgbox_data),
-                                       'column_list'           => 
$this->bo->column_list($selected , $this->type_id, $allrows=true),
+                                       'column_list'           => 
$this->bo->column_list($selected),
                                        'function_msg'          => 
$function_msg,
                                        'form_action'           => 
$GLOBALS['phpgw']->link('/index.php',$link_data),
                                        'lang_columns'          => 
lang('columns'),
@@ -930,11 +930,13 @@
                        $uicols['descr'][]      = lang('entry date');
 
                        $custom_cols = 
isset($GLOBALS['phpgw_info']['user']['preferences']['property']['ticket_columns'])
 && $GLOBALS['phpgw_info']['user']['preferences']['property']['ticket_columns'] 
? $GLOBALS['phpgw_info']['user']['preferences']['property']['ticket_columns'] : 
array();
+                       $columns = $this->bo->get_columns();
 
+//_debug_array($custom_cols);die();
                        foreach ($custom_cols as $col)
                        {
                                $uicols['name'][]               = $col;
-                               $uicols['descr'][]              = 
lang(str_replace('_', ' ', $col));
+                               $uicols['descr'][]              = 
$columns[$col]['name'];
                        }
 
 




reply via email to

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