phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] property inc/class.boentity.inc.php inc/class.h...


From: Sigurd Nes
Subject: [Phpgroupware-cvs] property inc/class.boentity.inc.php inc/class.h...
Date: Sun, 05 Feb 2006 20:07:35 +0000

CVSROOT:        /sources/phpgroupware
Module name:    property
Branch:         
Changes by:     Sigurd Nes <address@hidden>     06/02/05 20:07:35

Modified files:
        inc            : class.boentity.inc.php class.historylog.inc.php 
                         class.soadmin_entity.inc.php 
                         class.soentity.inc.php 
                         class.uiadmin_entity.inc.php 
                         class.uientity.inc.php 
        setup          : setup.inc.php tables_current.inc.php 
                         tables_update.inc.php 
        templates/base : admin_entity.xsl attributes_form.xsl entity.xsl 
        templates/default: admin_entity.xsl attributes_form.xsl 
                           entity.xsl 

Log message:
        Configurable history on custom attributes

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.boentity.inc.php.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.historylog.inc.php.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.soadmin_entity.inc.php.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.soentity.inc.php.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.uiadmin_entity.inc.php.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/inc/class.uientity.inc.php.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/setup.inc.php.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/tables_current.inc.php.diff?tr1=1.39&tr2=1.40&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/setup/tables_update.inc.php.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/admin_entity.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/attributes_form.xsl.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/base/entity.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/admin_entity.xsl.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/attributes_form.xsl.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/phpgroupware/property/templates/default/entity.xsl.diff?tr1=1.6&tr2=1.7&r1=text&r2=text

Patches:
Index: property/inc/class.boentity.inc.php
diff -u property/inc/class.boentity.inc.php:1.15 
property/inc/class.boentity.inc.php:1.16
--- property/inc/class.boentity.inc.php:1.15    Fri Feb  3 12:05:49 2006
+++ property/inc/class.boentity.inc.php Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage entity
-       * @version $Id: class.boentity.inc.php,v 1.15 2006/02/03 12:05:49 
sigurdne Exp $
+       * @version $Id: class.boentity.inc.php,v 1.16 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -56,8 +56,6 @@
                function boentity($session=False)
                {
                        $this->currentapp       = 
$GLOBALS['phpgw_info']['flags']['currentapp'];
-                       $this->so                       = 
CreateObject($this->currentapp.'.soentity');
-
                        $this->solocation       = 
CreateObject($this->currentapp.'.solocation');
                        $this->bocommon         = 
CreateObject($this->currentapp.'.bocommon');
                        $this->vfs                      = 
CreateObject('phpgwapi.vfs');
@@ -83,7 +81,7 @@
                        $end_date       = 
get_var('end_date',array('POST','GET'));
 
                        $this->soadmin_entity           = 
CreateObject($this->currentapp.'.soadmin_entity',$entity_id,$cat_id);
-
+                       $this->so                       = 
CreateObject($this->currentapp.'.soentity',$entity_id,$cat_id);
                        $this->category_name    = 
$this->soadmin_entity->category_name;
 
                        if ($start)
@@ -632,5 +630,22 @@
                                return $this->so->generate_id($data);
                        }
                }
+               
+               function read_attrib_history($data)
+               {
+               //      _debug_array($data);
+                       $historylog = 
CreateObject($this->currentapp.'.historylog','entity_' . $data['entity_id'] 
.'_' . $data['cat_id']);
+                       $history_values = 
$historylog->return_array(array(),array('SO'),'history_timestamp','ASC',$data['id'],$data['attrib_id']);
+                       $this->total_records = count($history_values);          
        
+               //      _debug_array($history_values);
+                       return $history_values;
+               }
+               
+               function delete_history_item($data)
+               {
+                       $historylog = 
CreateObject($this->currentapp.'.historylog','entity_' . $data['entity_id'] 
.'_' . $data['cat_id']);
+                       $historylog->delete_single_record($data['history_id']);
+               }
+               
        }
-?>
\ No newline at end of file
+?>
Index: property/inc/class.historylog.inc.php
diff -u property/inc/class.historylog.inc.php:1.8 
property/inc/class.historylog.inc.php:1.9
--- property/inc/class.historylog.inc.php:1.8   Fri Feb  3 12:05:49 2006
+++ property/inc/class.historylog.inc.php       Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage core
-       * @version $Id: class.historylog.inc.php,v 1.8 2006/02/03 12:05:49 
sigurdne Exp $
+       * @version $Id: class.historylog.inc.php,v 1.9 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -35,7 +35,16 @@
                                $appname = 
$GLOBALS['phpgw_info']['flags']['currentapp'];
                        }
 
-                       switch($appname)
+                       if(substr($appname,0,6)=='entity')
+                       {
+                               $selector = 'entity';
+                       }
+                       else
+                       {
+                               $selector = $appname;
+                       }
+                       
+                       switch($selector)
                        {
                                case 'request':
                                        $this->table='fm_request_history';
@@ -52,31 +61,57 @@
                                case 'document':
                                        $this->table='fm_document_history';
                                        break;
+                               case 'entity':
+                                       $this->table='fm_entity_history';
+                                       break;
                        }
 
-
                        $this->appname = $appname;
-                       $this->db      = $GLOBALS['phpgw']->db;
+
+       //              $this->db      = $GLOBALS['phpgw']->db;
+                       $this->db = CreateObject('phpgwapi.db');
+                       $this->db->Host = 
$GLOBALS['phpgw_info']['server']['db_host'];
+                       $this->db->Type = 
$GLOBALS['phpgw_info']['server']['db_type'];
+                       $this->db->Database = 
$GLOBALS['phpgw_info']['server']['db_name'];
+                       $this->db->User = 
$GLOBALS['phpgw_info']['server']['db_user'];
+                       $this->db->Password = 
$GLOBALS['phpgw_info']['server']['db_pass'];
                }
 
-               function delete($record_id)
+               function delete($record_id,$attrib_id='')
                {
+                       if($attrib_id)
+                       {
+                               $attrib_id_condition = "and 
history_entity_attrib_id = $attrib_id";
+                       }
+
                        $this->db->query("delete from $this->table where 
history_record_id='$record_id' and "
-                               . "history_appname='" . $this->appname . 
"'",__LINE__,__FILE__);
+                               . "history_appname='" . $this->appname . "' 
$attrib_id_condition",__LINE__,__FILE__);
                }
 
-               function add($status,$record_id,$new_value)
+               function delete_single_record($history_id)
+               {
+                       $this->db->query("delete from $this->table where 
history_id='$history_id'",__LINE__,__FILE__);
+               }
+
+
+               function add($status,$record_id,$new_value,$old_value 
='',$attrib_id='')
                {
+                       if($attrib_id)
+                       {
+                               $attrib_id_field = ',history_entity_attrib_id';
+                               $attrib_id_value = ",$attrib_id";               
        
+                       }
+                       
                        $this->db->query("insert into $this->table 
(history_record_id,"
-                               . 
"history_appname,history_owner,history_status,history_new_value,history_timestamp)
 "
+                               . 
"history_appname,history_owner,history_status,history_new_value,history_timestamp
 $attrib_id_field) "
                                . "values ('$record_id','" . $this->appname . 
"','"
                                . $GLOBALS['phpgw_info']['user']['account_id'] 
. "','$status','"
                                . $this->db->db_addslashes($new_value) . "','" 
. $this->db->to_timestamp(time())
-                               . "')",__LINE__,__FILE__);
+                               . "' $attrib_id_value )",__LINE__,__FILE__);
                }
 
                // array $filter_out
-               function return_array($filter_out,$only_show,$_orderby = 
'',$sort = '', $record_id)
+               function return_array($filter_out,$only_show,$_orderby = 
'',$sort = '', $record_id,$attrib_id='')
                {
 
                        if (! $sort || ! $_orderby)
@@ -98,6 +133,11 @@
                                $filter = ' and ' . implode(' and ',$filtered);
                        }
 
+                       if($attrib_id)
+                       {
+                               $filter .= "and history_entity_attrib_id = 
$attrib_id";
+                       }
+
                        while (is_array($only_show) && list(,$_filter) = 
each($only_show))
                        {
                                $_only_show[] = "history_status='$_filter'";
Index: property/inc/class.soadmin_entity.inc.php
diff -u property/inc/class.soadmin_entity.inc.php:1.12 
property/inc/class.soadmin_entity.inc.php:1.13
--- property/inc/class.soadmin_entity.inc.php:1.12      Mon Jan 30 22:14:19 2006
+++ property/inc/class.soadmin_entity.inc.php   Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage admin
-       * @version $Id: class.soadmin_entity.inc.php,v 1.12 2006/01/30 22:14:19 
sigurdne Exp $
+       * @version $Id: class.soadmin_entity.inc.php,v 1.13 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -812,6 +812,7 @@
                                $attrib['lookup_form']                          
= $this->db->f('lookup_form');
                                $attrib['list']                                 
        = $this->db->f('list');
                                $attrib['search']                               
        = $this->db->f('search');
+                               $attrib['history']                              
        = $this->db->f('history');
                                if($this->db->f('datatype')=='R' || 
$this->db->f('datatype')=='CH' || $this->db->f('datatype')=='LB')
                                {
                                        $attrib['choice'] = 
$this->read_attrib_choice($entity_id,$cat_id,$id);
@@ -861,6 +862,7 @@
                                $attrib['statustext'],
                                $attrib['search'],
                                $attrib['list'],
+                               $attrib['history'],
                                $attrib_sort,
                                $attrib['column_info']['type'],
                                $attrib['column_info']['precision'],
@@ -873,7 +875,7 @@
 
                        $this->db->transaction_begin();
 
-                       $this->db->query("INSERT INTO fm_entity_attribute 
(entity_id,cat_id,id,column_name, input_text, 
statustext,search,list,attrib_sort, 
datatype,precision_,scale,default_value,nullable) "
+                       $this->db->query("INSERT INTO fm_entity_attribute 
(entity_id,cat_id,id,column_name, input_text, 
statustext,search,list,history,attrib_sort, 
datatype,precision_,scale,default_value,nullable) "
                                . "VALUES ($values)",__LINE__,__FILE__);
 
                        $receipt['id']= $attrib['id'];
@@ -947,8 +949,9 @@
                                $value_set=array(
                                        'input_text'    => 
$attrib['input_text'],
                                        'statustext'    => 
$attrib['statustext'],
-                                       'search'                => 
$attrib['search'],
-                                       'list'                  => 
$attrib['list'],
+                                       'search'        => $attrib['search'],
+                                       'list'          => $attrib['list'],
+                                       'history'       => $attrib['history'],
                                        );
 
                                $value_set      = 
$this->bocommon->validate_db_update($value_set);
Index: property/inc/class.soentity.inc.php
diff -u property/inc/class.soentity.inc.php:1.13 
property/inc/class.soentity.inc.php:1.14
--- property/inc/class.soentity.inc.php:1.13    Wed Feb  1 13:39:10 2006
+++ property/inc/class.soentity.inc.php Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage entity
-       * @version $Id: class.soentity.inc.php,v 1.13 2006/02/01 13:39:10 
sigurdne Exp $
+       * @version $Id: class.soentity.inc.php,v 1.14 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -18,7 +18,10 @@
 
        class soentity
        {
-               function soentity()
+               var $entity_id;
+               var $cat_id;
+
+               function soentity($entity_id='',$cat_id='')
                {
                        $this->currentapp       = 
$GLOBALS['phpgw_info']['flags']['currentapp'];
                        $this->account          = 
$GLOBALS['phpgw_info']['user']['account_id'];
@@ -26,9 +29,11 @@
                        $this->db               = $this->bocommon->new_db();
                        $this->db2              = $this->bocommon->new_db();
 
-                       $this->join                     = $this->bocommon->join;
+                       $this->join             = $this->bocommon->join;
                        $this->left_join        = $this->bocommon->left_join;
-                       $this->like                     = $this->bocommon->like;
+                       $this->like             = $this->bocommon->like;
+                       $this->entity_id        = $entity_id;
+                       $this->cat_id           = $cat_id;
                }
 
                function select_status_list($entity_id,$cat_id)
@@ -403,7 +408,8 @@
                                        'input_text'    => 
stripslashes($this->db->f('input_text')),
                                        'statustext'    => 
stripslashes($this->db->f('statustext')),
 //                                     'statustext'    => str_replace("\n"," 
",stripslashes($this->db->f('statustext'))),
-                                       'datatype'              => 
$this->db->f('datatype')
+                                       'datatype'              => 
$this->db->f('datatype'),
+                                       'history'               => 
$this->db->f('history')
                                );
                        }
 //_debug_array($entity);
@@ -617,6 +623,9 @@
                                $value_set[$column]     = $value;
                        }
 
+//_debug_array($values_attribute);
+                       $table = 'fm_entity_' . $entity_id .'_' . $cat_id;
+
                        if (isset($values_attribute) AND 
is_array($values_attribute))
                        {
                                foreach($values_attribute as $entry)
@@ -625,18 +634,36 @@
                                        {
                                                $value_set[$entry['name']]      
= $entry['value'];
                                        }
+                                       
+                                       if($entry['history'] == 1)
+                                       {
+                                               $this->db->query("select " . 
$entry['name'] . " from $table WHERE id=" . $values['id'],__LINE__,__FILE__);
+                                               $this->db->next_record();
+                                               $old_value = 
$this->db->f($entry['name']);
+                                               if($entry['value'] != 
$old_value)
+                                               {
+                                                       
$history_set[$entry['attrib_id']] = $entry['value'];
+                                               }
+                                       }                                       
                                }
                        }
 
-
+//_debug_array($history_set);
                        $value_set      = 
$this->bocommon->validate_db_update($value_set);
 
-                       $table='fm_entity_' . $entity_id .'_' . $cat_id;
-
                        $this->db->transaction_begin();
 
                        $this->db->query("UPDATE $table set $value_set WHERE 
id=" . $values['id'],__LINE__,__FILE__);
 
+                       if (isset($history_set) AND is_array($history_set))
+                       {
+                               $historylog     = 
CreateObject($this->currentapp.'.historylog','entity_' . $entity_id .'_' . 
$cat_id);
+                               while (list($attrib_id,$new_value) = 
each($history_set))
+                               {
+                                       
$historylog->add('SO',$values['id'],$new_value,False, $attrib_id);
+                               }
+                       }
+
                        $this->db->transaction_commit();
 
                        $receipt['message'][] = array('msg'=>lang('entity %1 
has been edited',$values['num']));
Index: property/inc/class.uiadmin_entity.inc.php
diff -u property/inc/class.uiadmin_entity.inc.php:1.14 
property/inc/class.uiadmin_entity.inc.php:1.15
--- property/inc/class.uiadmin_entity.inc.php:1.14      Fri Feb  3 12:05:49 2006
+++ property/inc/class.uiadmin_entity.inc.php   Sun Feb  5 20:07:35 2006
@@ -10,7 +10,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage admin
-       * @version $Id: class.uiadmin_entity.inc.php,v 1.14 2006/02/03 12:05:49 
sigurdne Exp $
+       * @version $Id: class.uiadmin_entity.inc.php,v 1.15 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -1224,6 +1224,9 @@
                                'lang_include_search'           => 
lang('Include in search'),
                                'lang_include_search_statustext'=> lang('check 
to show this attribute in location list'),
 
+                               'value_history'                         => 
$values['history'],
+                               'lang_history'          => lang('history'),
+                               'lang_history_statustext'=> lang('Enable 
history for this attribute'),
                        );
 //_debug_array($values);
 
Index: property/inc/class.uientity.inc.php
diff -u property/inc/class.uientity.inc.php:1.17 
property/inc/class.uientity.inc.php:1.18
--- property/inc/class.uientity.inc.php:1.17    Fri Feb  3 12:05:49 2006
+++ property/inc/class.uientity.inc.php Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage entity
-       * @version $Id: class.uientity.inc.php,v 1.17 2006/02/03 12:05:49 
sigurdne Exp $
+       * @version $Id: class.uientity.inc.php,v 1.18 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -37,7 +37,8 @@
                        'view'          => True,
                        'edit'          => True,
                        'delete'        => True,
-                       'view_file'     =>True
+                       'view_file'     => True,
+                       'attrib_history'=> True
                );
 
                function uientity()
@@ -450,7 +451,6 @@
                                'lang_date_search'                      => 
lang('Date search'),
                                'overlib_source'                        => 
'./'.$this->currentapp.'/inc/overlib.js',
 
-
                                'links'                                         
        => $links,
                                'allow_allrows'                                 
=> false,
                                'start_record'                                  
=> $this->start,
@@ -583,7 +583,7 @@
                                $location_code          = 
get_var('location_code',array('POST','GET'));
                                $values['descr']        = 
get_var('descr',array('POST','GET'));
                                $p_entity_id            = 
get_var('p_entity_id',array('POST','GET'));
-                               $p_cat_id                       = 
get_var('p_cat_id',array('POST','GET'));
+                               $p_cat_id               = 
get_var('p_cat_id',array('POST','GET'));
                                $values['p'][$p_entity_id]['p_entity_id']       
        = $p_entity_id;
                                $values['p'][$p_entity_id]['p_cat_id']          
        = $p_cat_id;
                                $values['p'][$p_entity_id]['p_num']             
                = get_var('p_num',array('POST','GET'));
@@ -858,14 +858,14 @@
                        $project_link_data = array
                        (
                                'menuaction'            => 
$this->currentapp.'.uiproject.edit',
-                               'bypass'                        => true,
+                               'bypass'                => true,
                                'location_code'         => 
$values['location_code'],
-                               'p_num'                         => 
$values['p_num'],
+                               'p_num'                 => $values['p_num'],
                                'p_entity_id'           => 
$values['p_entity_id'],
-                               'p_cat_id'                      => 
$values['p_cat_id'],
-                               'tenant_id'                     => 
$values['tenant_id'],
-                               'origin'                        => 'entity_' . 
$this->entity_id . '_' . $this->cat_id,
-                               'origin_id'                     => $id
+                               'p_cat_id'              => $values['p_cat_id'],
+                               'tenant_id'             => $values['tenant_id'],
+                               'origin'                => 'entity_' . 
$this->entity_id . '_' . $this->cat_id,
+                               'origin_id'             => $id
                        );
 
 //_debug_array($values['origin']);
@@ -891,6 +891,23 @@
                                }
                        }
 
+                       for ($i=0;$i<count($values['attributes']);$i++)
+                       {
+                               if($values['attributes'][$i]['history']==1)
+                               {
+                                       $link_history_data = array
+                                       (
+                                               'menuaction'    => 
$this->currentapp.'.uientity.attrib_history',
+                                               'entity_id'     => 
$this->entity_id,
+                                               'cat_id'        => 
$this->cat_id,
+                                               'attrib_id'     => 
$values['attributes'][$i]['attrib_id'],
+                                               'id'            => $id
+                                       );
+                               
+                                       
$values['attributes'][$i]['link_history']=$GLOBALS['phpgw']->link('/index.php',$link_history_data);
+                               }
+                       }
+
                        $data = array
                        (
                                'start_project'                                 
=> $category['start_project'],
@@ -947,7 +964,10 @@
                                'value_num'                                     
        => $values['num'],
                                'error_flag'                                    
=> $error_id,
                                'lang_done_statustext'                  => 
lang('Back to the list'),
-                               'lang_save_statustext'                  => 
lang('Save the entity')
+                               'lang_save_statustext'                  => 
lang('Save the entity'),
+                               'lang_history'                          => 
lang('history'),
+                               'lang_history_help'                     => 
lang('history of this attribute'),
+                               'overlib_source'                        => 
'./'.$this->currentapp.'/inc/overlib.js',
                        );
 
                        $appname                = $entity['name'];
@@ -1142,7 +1162,7 @@
                                'files'                                         
        => $values['files'],
                                'lang_files'                                    
=> lang('files'),
                                'lang_filename'                                 
=> lang('Filename'),
-                               'lang_view_file_statustext'             => 
lang('Klick to view file'),
+                               'lang_view_file_statustext'                     
=> lang('Klick to view file'),
 
                                'value_origin'                                  
=> $values['origin'],
                                'value_origin_type'                             
=> $origin,
@@ -1164,14 +1184,14 @@
                                'edit_action'                                   
=> $GLOBALS['phpgw']->link('/index.php',$link_data),
                                'done_action'                                   
=> 
$GLOBALS['phpgw']->link('/index.php','menuaction='.$this->currentapp.'.uientity.index&entity_id='
 . $this->entity_id . '&cat_id='. $this->cat_id),
                                'lang_category'                                 
=> lang('category'),
-                               'lang_edit'                                     
        => lang('Edit'),
-                               'lang_done'                                     
        => lang('done'),
-                               'lang_id'                                       
        => lang('ID'),
-                               'value_id'                      => 
$values['id'],
-                               'value_num'                     => 
$values['num'],
+                               'lang_edit'                                     
=> lang('Edit'),
+                               'lang_done'                                     
=> lang('done'),
+                               'lang_id'                                       
=> lang('ID'),
+                               'value_id'                                      
=> $values['id'],
+                               'value_num'                                     
=> $values['num'],
                                'error_flag'                                    
=> $error_id,
-                               'lang_done_statustext'                  => 
lang('Back to the list'),
-                               'lang_save_statustext'                  => 
lang('Edit the entity'),
+                               'lang_done_statustext'                          
=> lang('Back to the list'),
+                               'lang_save_statustext'                          
=> lang('Edit the entity'),
                                'status_list'                                   
=> $this->bo->select_status_list('select',$values['status'])
                                );
 
@@ -1180,5 +1200,85 @@
                        
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('view' => $data));
                //      $GLOBALS['phpgw']->xslttpl->pp();
                }
+
+               function attrib_history()
+               {
+                       
$GLOBALS['phpgw']->xslttpl->add_file(array('entity','nextmatchs'));
+                       $GLOBALS['phpgw_info']['flags']['noframework'] = True;
+
+                       $data_lookup= array(
+                               'id'            => 
get_var('id',array('POST','GET')),
+                               'entity_id'     => 
get_var('entity_id',array('POST','GET')),
+                               'cat_id'        => 
get_var('cat_id',array('POST','GET')),
+                               'attrib_id'     => 
get_var('attrib_id',array('POST','GET'))
+                               );
+                       
+                       $delete = get_var('delete',array('POST','GET'));
+                       if ($delete)
+                       {
+                               $data_lookup['history_id'] = 
get_var('history_id',array('POST','GET'));
+                               $this->bo->delete_history_item($data_lookup);
+                       }
+                       
+                       $values = $this->bo->read_attrib_history($data_lookup);
+                       $dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
+
+                       while (is_array($values) && list(,$entry) = 
each($values))
+                       {
+
+                               $link_delete_history_data = array
+                                       (
+                                               'menuaction'    => 
$this->currentapp.'.uientity.attrib_history',
+                                               'entity_id'     => 
$data_lookup['entity_id'],
+                                               'cat_id'        => 
$data_lookup['cat_id'],
+                                               'id'            => 
$data_lookup['id'],
+                                               'attrib_id'     => 
$data_lookup['attrib_id'],
+                                               'history_id'    => $entry['id'],
+                                               'delete'        => true
+                                       );
+       
+                               
+                               $content[] = array
+                               (
+                                       'id'                            => 
$entry['id'],
+                                       'value'                         => 
$entry['new_value'],
+                                       'time_created'                  => 
$GLOBALS['phpgw']->common->show_date($tickets[$i]['entry_date'],$dateformat),
+                                       'link_delete'                   => 
$GLOBALS['phpgw']->link('/index.php',$link_delete_history_data),
+                                       'lang_delete_statustext'        => 
lang('delete the item'),
+                                       'text_delete'                   => 
lang('delete'),
+                               );
+                       }
+                       
+                       
+                       $table_header = array
+                       (
+                               'lang_value'            => lang('value'),
+                               'lang_time_created'     => lang('time created'),
+                               'lang_delete'           => lang('delete')
+                       );
+
+                       $data = array
+                       (
+                               'allow_allrows'                 => false,
+                               'start_record'                  => $this->start,
+                               'record_limit'                  => 
$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'],
+                               'num_records'                   => 
count($values),
+                               'all_records'                   => 
$this->bo->total_records,
+                               'link_url'                      => 
$GLOBALS['phpgw']->link('/index.php',$link_data),
+                               'img_path'                      => 
$GLOBALS['phpgw']->common->get_image_path('phpgwapi','default'),
+
+                               'values'                        => $content,
+                               'table_header'                  => 
$table_header,
+                               
+                       );
+
+//_debug_array($data);
+
+                       $appname                                = 
lang('entity');
+                       $function_msg                           = 
lang('attribute history');
+
+                       $GLOBALS['phpgw_info']['flags']['app_header'] = 
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+                       
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('attrib_history' => $data));
+               }
        }
 ?>
Index: property/setup/setup.inc.php
diff -u property/setup/setup.inc.php:1.26 property/setup/setup.inc.php:1.27
--- property/setup/setup.inc.php:1.26   Fri Feb  3 12:05:49 2006
+++ property/setup/setup.inc.php        Sun Feb  5 20:07:35 2006
@@ -8,12 +8,12 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage setup
-       * @version $Id: setup.inc.php,v 1.26 2006/02/03 12:05:49 sigurdne Exp $
+       * @version $Id: setup.inc.php,v 1.27 2006/02/05 20:07:35 sigurdne Exp $
        */
 
        $setup_info['property']['name']      = 'property';
        $setup_info['property']['title']         = 'Property';
-       $setup_info['property']['version']   = '0.9.17.511';
+       $setup_info['property']['version']   = '0.9.17.512';
        $setup_info['property']['app_order'] = 8;
        $setup_info['property']['enable']    = 1;
 
@@ -167,6 +167,7 @@
                'fm_entity_category',
                'fm_entity_choice',
                'fm_entity_lookup',
+               'fm_entity_history',
                'fm_entity_1_1',
                'fm_entity_1_2',
                'fm_entity_1_3',
Index: property/setup/tables_current.inc.php
diff -u property/setup/tables_current.inc.php:1.39 
property/setup/tables_current.inc.php:1.40
--- property/setup/tables_current.inc.php:1.39  Sat Jan 21 15:26:25 2006
+++ property/setup/tables_current.inc.php       Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage setup
-       * @version $Id: tables_current.inc.php,v 1.39 2006/01/21 15:26:25 
sigurdne Exp $
+       * @version $Id: tables_current.inc.php,v 1.40 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        $phpgw_baseline = array(
@@ -1545,6 +1545,7 @@
                                'statustext' => array('type' => 
'varchar','precision' => '150','nullable' => False),
                                'datatype' => array('type' => 
'varchar','precision' => '10','nullable' => False),
                                'search' => array('type' => 'int','precision' 
=> '2','nullable' => True),
+                               'history' => array('type' => 'int','precision' 
=> '2','nullable' => True),
                                'list' => array('type' => 'int','precision' => 
'4','nullable' => True),
                                'attrib_sort' => array('type' => 
'int','precision' => '4','nullable' => True),
                                'size' => array('type' => 'int','precision' => 
'4','nullable' => True),
@@ -1601,6 +1602,22 @@
                        'ix' => array(),
                        'uc' => array()
                ),
+               'fm_entity_history' => array(
+                       'fd' => array(
+                               'history_id' => array('type' => 
'auto','precision' => '4','nullable' => False),
+                               'history_record_id' => array('type' => 
'int','precision' => '4','nullable' => False),
+                               'history_appname' => array('type' => 
'varchar','precision' => '64','nullable' => False),
+                               'history_entity_attrib_id' => array('type' => 
'int','precision' => '4','nullable' => False),
+                               'history_owner' => array('type' => 
'int','precision' => '4','nullable' => False),
+                               'history_status' => array('type' => 
'char','precision' => '2','nullable' => False),
+                               'history_new_value' => array('type' => 
'text','nullable' => False),
+                               'history_timestamp' => array('type' => 
'timestamp','nullable' => False,'default' => 'current_timestamp')
+                       ),
+                       'pk' => array('history_id'),
+                       'fk' => array(),
+                       'ix' => array(),
+                       'uc' => array()
+               ),
                'fm_origin' => array(
                        'fd' => array(
                                'origin' => array('type' => 
'varchar','precision' => '12','nullable' => False),
Index: property/setup/tables_update.inc.php
diff -u property/setup/tables_update.inc.php:1.20 
property/setup/tables_update.inc.php:1.21
--- property/setup/tables_update.inc.php:1.20   Wed Jan 25 18:19:12 2006
+++ property/setup/tables_update.inc.php        Sun Feb  5 20:07:35 2006
@@ -8,7 +8,7 @@
        * @internal Development of this application was funded by 
http://www.bergen.kommune.no/bbb_/ekstern/
        * @package property
        * @subpackage setup
-       * @version $Id: tables_update.inc.php,v 1.20 2006/01/25 18:19:12 
sigurdne Exp $
+       * @version $Id: tables_update.inc.php,v 1.21 2006/02/05 20:07:35 
sigurdne Exp $
        */
 
        /**
@@ -770,4 +770,36 @@
                return $GLOBALS['setup_info']['property']['currentver'];
        }
 
+       /**
+       * Update property version from 0.9.17.511 to 0.9.17.512
+       */
+
+       $test[] = '0.9.17.511';
+       function property_upgrade0_9_17_511()
+       {
+               
$GLOBALS['phpgw_setup']->oProc->AddColumn('fm_entity_attribute','history',array('type'
 => 'int','precision' => 2,'nullable' => True));
+
+               $GLOBALS['phpgw_setup']->oProc->CreateTable(
+                       'fm_entity_history', array(
+                               'fd' => array(
+                                       'history_id' => array('type' => 
'auto','precision' => '4','nullable' => False),
+                                       'history_record_id' => array('type' => 
'int','precision' => '4','nullable' => False),
+                                       'history_appname' => array('type' => 
'varchar','precision' => '64','nullable' => False),
+                                       'history_entity_attrib_id' => 
array('type' => 'int','precision' => '4','nullable' => False),
+                                       'history_owner' => array('type' => 
'int','precision' => '4','nullable' => False),
+                                       'history_status' => array('type' => 
'char','precision' => '2','nullable' => False),
+                                       'history_new_value' => array('type' => 
'text','nullable' => False),
+                                       'history_timestamp' => array('type' => 
'timestamp','nullable' => False,'default' => 'current_timestamp')
+                               ),
+                               'pk' => array('history_id'),
+                               'fk' => array(),
+                               'ix' => array(),
+                               'uc' => array()
+                       )
+               );
+
+               $GLOBALS['setup_info']['property']['currentver'] = '0.9.17.512';
+               return $GLOBALS['setup_info']['property']['currentver'];
+       }
+
 ?>
Index: property/templates/base/admin_entity.xsl
diff -u property/templates/base/admin_entity.xsl:1.4 
property/templates/base/admin_entity.xsl:1.5
--- property/templates/base/admin_entity.xsl:1.4        Fri Feb  3 12:05:49 2006
+++ property/templates/base/admin_entity.xsl    Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: admin_entity.xsl,v 1.4 2006/02/03 12:05:49 sigurdne Exp $ -->
+<!-- $Id: admin_entity.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="app_data">
                <xsl:choose>
@@ -1250,6 +1250,34 @@
                                        </xsl:choose>
                                </td>
                        </tr>
+                       <tr>
+                               <td>
+                                       <xsl:value-of select="lang_history"/>
+                               </td>
+                               <td>
+                                       <xsl:choose>
+                                                       <xsl:when 
test="value_history = 1">
+                                                               <input 
type="checkbox" name="values[history]" value="1" checked="checked" 
onMouseout="window.status='';return true;">
+                                                                       
<xsl:attribute name="onMouseover">
+                                                                               
<xsl:text>window.status='</xsl:text>
+                                                                               
        <xsl:value-of select="lang_history_statustext"/>
+                                                                               
<xsl:text>'; return true;</xsl:text>
+                                                                       
</xsl:attribute>
+                                                               </input>
+                                                       </xsl:when>
+                                                       <xsl:otherwise>
+                                                               <input 
type="checkbox" name="values[history]" value="1" 
onMouseout="window.status='';return true;">
+                                                                       
<xsl:attribute name="onMouseover">
+                                                                               
<xsl:text>window.status='</xsl:text>
+                                                                               
        <xsl:value-of select="lang_history_statustext"/>
+                                                                               
<xsl:text>'; return true;</xsl:text>
+                                                                       
</xsl:attribute>
+                                                               </input>
+                                                       </xsl:otherwise>
+                                       </xsl:choose>
+                               </td>
+                       </tr>
+       
                        <xsl:choose>
                                <xsl:when test="multiple_choice != ''">
                                        <tr>
Index: property/templates/base/attributes_form.xsl
diff -u property/templates/base/attributes_form.xsl:1.1 
property/templates/base/attributes_form.xsl:1.2
--- property/templates/base/attributes_form.xsl:1.1     Mon Jan 17 10:03:18 2005
+++ property/templates/base/attributes_form.xsl Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: attributes_form.xsl,v 1.1 2005/01/17 10:03:18 sigurdne Exp $ -->
+<!-- $Id: attributes_form.xsl,v 1.2 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="attributes_form">
                <xsl:apply-templates select="attributes_values"/>
@@ -34,6 +34,8 @@
                                                <xsl:when test="name!=''">
                                                        <input type="hidden" 
name="values_attribute[{counter}][name]" value="{name}"></input>
                                                        <input type="hidden" 
name="values_attribute[{counter}][datatype]" value="{datatype}"></input>
+                                                       <input type="hidden" 
name="values_attribute[{counter}][history]" value="{history}"></input>
+                                                       <input type="hidden" 
name="values_attribute[{counter}][attrib_id]" value="{attrib_id}"></input>
                                                        <xsl:choose>
                                                                <xsl:when 
test="datatype='R'">
                                                                        
<xsl:call-template name="choice"/>
@@ -124,6 +126,19 @@
                                                                        </input>
                                                                </xsl:otherwise>
                                                        </xsl:choose>
+                                                       <xsl:choose>
+                                                               <xsl:when 
test="history=1">
+                                                                       
<xsl:variable name="link_history"><xsl:value-of 
select="link_history"/></xsl:variable>
+                                                                       
<xsl:variable name="lang_history_help"><xsl:value-of 
select="//lang_history_help"/></xsl:variable>
+                                                                       
<xsl:variable name="lang_history"><xsl:value-of 
select="//lang_history"/></xsl:variable>
+                                                                       <a 
href="javascript:var 
w=window.open('{$link_history}','','width=550,height=400,scrollbars')"
+                                                                       
onMouseOver="overlib('{$lang_history_help}', CAPTION, '{$lang_history}')"
+                                                                       
onMouseOut="nd()">
+                                                                       
<xsl:value-of select="//lang_history"/></a>                                     
+
+                                                                       <!--<a 
href="{link_history}" target = '_blank'><xsl:value-of 
select="//lang_history"/></a>-->
+                                                               </xsl:when>
+                                                       </xsl:choose>
                                                </xsl:when>
                                        </xsl:choose>
                                </td>
Index: property/templates/base/entity.xsl
diff -u property/templates/base/entity.xsl:1.4 
property/templates/base/entity.xsl:1.5
--- property/templates/base/entity.xsl:1.4      Wed Nov  9 13:09:23 2005
+++ property/templates/base/entity.xsl  Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: entity.xsl,v 1.4 2005/11/09 13:09:23 sigurdne Exp $ -->
+<!-- $Id: entity.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="app_data">
                <xsl:choose>
@@ -11,6 +11,9 @@
                        <xsl:when test="empty">
                                <xsl:apply-templates select="empty"/>
                        </xsl:when>
+                       <xsl:when test="attrib_history">
+                               <xsl:apply-templates select="attrib_history"/>
+                       </xsl:when>
                        <xsl:otherwise>
                                <xsl:apply-templates select="list"/>
                        </xsl:otherwise>
@@ -188,6 +191,10 @@
 <!-- add / edit -->
 
        <xsl:template match="edit">
+               <div id="overDiv" style="position:absolute; 
visibility:hide;z-index:1;"></div>
+               <xsl:variable name="overlib_source"><xsl:value-of 
select="overlib_source"/></xsl:variable>
+               <SCRIPT LANGUAGE="JavaScript" SRC="{$overlib_source}"></SCRIPT>
+
                <xsl:variable name="dateformat_source"><xsl:value-of 
select="dateformat_source"/></xsl:variable>
                <SCRIPT LANGUAGE="JavaScript" 
SRC="{$dateformat_source}"></SCRIPT>
 
@@ -667,3 +674,75 @@
                                </td>
                        </tr>
        </xsl:template>
+
+<!-- attrib_history -->
+       <xsl:template match="attrib_history">
+               <table width="100%" cellpadding="2" cellspacing="2" 
align="center">
+                       <xsl:choose>
+                               <xsl:when test="msgbox_data != ''">
+                                       <tr>
+                                               <td align="left" colspan="3">
+                                                       <xsl:call-template 
name="msgbox"/>
+                                               </td>
+                                       </tr>
+                               </xsl:when>
+                       </xsl:choose>
+                       <tr>
+                               <td colspan="3" width="100%">
+                                       <xsl:call-template name="nextmatchs"/>
+                               </td>
+                       </tr>
+               </table>
+               <table width="100%" cellpadding="2" cellspacing="2" 
align="center">
+                               <xsl:apply-templates select="table_header"/>
+                               <xsl:apply-templates select="values"/>
+               </table>
+       </xsl:template>
+
+       <xsl:template match="table_header">
+               <xsl:variable name="sort_time_created" 
select="sort_time_created"/>
+               <xsl:variable name="sort_value" select="sort_value"/>
+       
+                       <tr class="th">
+                               <td width="40%">
+                                       <a href="{$sort_value}" 
class="th_text"><xsl:value-of select="lang_value"/></a>
+                               </td>
+                               <td width="10%" align="center">
+                                       <a href="{$sort_time_created}" 
class="th_text"><xsl:value-of select="lang_time_created"/></a>
+                               </td>
+                               <td width="5%" align="center">
+                                       <xsl:value-of select="lang_delete"/>
+                               </td>
+                       </tr>
+       </xsl:template>
+
+       <xsl:template match="values">
+               <xsl:variable name="lang_delete_statustext"><xsl:value-of 
select="lang_delete_statustext"/></xsl:variable>
+                       <tr>
+                               <xsl:attribute name="class">
+                                       <xsl:choose>
+                                               <xsl:when test="@class">
+                                                       <xsl:value-of 
select="@class"/>
+                                               </xsl:when>
+                                               <xsl:when test="position() mod 
2 = 0">
+                                                       
<xsl:text>row_off</xsl:text>
+                                               </xsl:when>
+                                               <xsl:otherwise>
+                                                       
<xsl:text>row_on</xsl:text>
+                                               </xsl:otherwise>
+                                       </xsl:choose>
+                               </xsl:attribute>
+
+                               <td align="left">
+                                       <xsl:value-of select="value"/>
+                               </td>
+                               <td align="left">
+                                       <xsl:value-of select="time_created"/>
+                               </td>
+                               <td align="center">
+                                       <xsl:variable 
name="link_delete"><xsl:value-of select="link_delete"/></xsl:variable>
+                                       <a href="{$link_delete}" 
onMouseover="window.status='{$lang_delete_statustext}';return true;" 
onMouseout="window.status='';return true;"><xsl:value-of 
select="text_delete"/></a>
+                               </td>
+                       </tr>
+       </xsl:template>
+
Index: property/templates/default/admin_entity.xsl
diff -u property/templates/default/admin_entity.xsl:1.6 
property/templates/default/admin_entity.xsl:1.7
--- property/templates/default/admin_entity.xsl:1.6     Fri Feb  3 12:05:49 2006
+++ property/templates/default/admin_entity.xsl Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: admin_entity.xsl,v 1.6 2006/02/03 12:05:49 sigurdne Exp $ -->
+<!-- $Id: admin_entity.xsl,v 1.7 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="app_data">
                <xsl:choose>
@@ -1250,6 +1250,34 @@
                                        </xsl:choose>
                                </td>
                        </tr>
+                       <tr>
+                               <td>
+                                       <xsl:value-of select="lang_history"/>
+                               </td>
+                               <td>
+                                       <xsl:choose>
+                                                       <xsl:when 
test="value_history = 1">
+                                                               <input 
type="checkbox" name="values[history]" value="1" checked="checked" 
onMouseout="window.status='';return true;">
+                                                                       
<xsl:attribute name="onMouseover">
+                                                                               
<xsl:text>window.status='</xsl:text>
+                                                                               
        <xsl:value-of select="lang_history_statustext"/>
+                                                                               
<xsl:text>'; return true;</xsl:text>
+                                                                       
</xsl:attribute>
+                                                               </input>
+                                                       </xsl:when>
+                                                       <xsl:otherwise>
+                                                               <input 
type="checkbox" name="values[history]" value="1" 
onMouseout="window.status='';return true;">
+                                                                       
<xsl:attribute name="onMouseover">
+                                                                               
<xsl:text>window.status='</xsl:text>
+                                                                               
        <xsl:value-of select="lang_history_statustext"/>
+                                                                               
<xsl:text>'; return true;</xsl:text>
+                                                                       
</xsl:attribute>
+                                                               </input>
+                                                       </xsl:otherwise>
+                                       </xsl:choose>
+                               </td>
+                       </tr>
+       
                        <xsl:choose>
                                <xsl:when test="multiple_choice != ''">
                                        <tr>
Index: property/templates/default/attributes_form.xsl
diff -u property/templates/default/attributes_form.xsl:1.4 
property/templates/default/attributes_form.xsl:1.5
--- property/templates/default/attributes_form.xsl:1.4  Thu Jan 13 16:52:48 2005
+++ property/templates/default/attributes_form.xsl      Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: attributes_form.xsl,v 1.4 2005/01/13 16:52:48 ceb Exp $ -->
+<!-- $Id: attributes_form.xsl,v 1.5 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="attributes_form">
                <xsl:apply-templates select="attributes_values"/>
@@ -34,6 +34,8 @@
                                                <xsl:when test="name!=''">
                                                        <input type="hidden" 
name="values_attribute[{counter}][name]" value="{name}"></input>
                                                        <input type="hidden" 
name="values_attribute[{counter}][datatype]" value="{datatype}"></input>
+                                                       <input type="hidden" 
name="values_attribute[{counter}][history]" value="{history}"></input>
+                                                       <input type="hidden" 
name="values_attribute[{counter}][attrib_id]" value="{attrib_id}"></input>
                                                        <xsl:choose>
                                                                <xsl:when 
test="datatype='R'">
                                                                        
<xsl:call-template name="choice"/>
@@ -124,6 +126,19 @@
                                                                        </input>
                                                                </xsl:otherwise>
                                                        </xsl:choose>
+                                                       <xsl:choose>
+                                                               <xsl:when 
test="history=1">
+                                                                       
<xsl:variable name="link_history"><xsl:value-of 
select="link_history"/></xsl:variable>
+                                                                       
<xsl:variable name="lang_history_help"><xsl:value-of 
select="//lang_history_help"/></xsl:variable>
+                                                                       
<xsl:variable name="lang_history"><xsl:value-of 
select="//lang_history"/></xsl:variable>
+                                                                       <a 
href="javascript:var 
w=window.open('{$link_history}','','width=550,height=400,scrollbars')"
+                                                                       
onMouseOver="overlib('{$lang_history_help}', CAPTION, '{$lang_history}')"
+                                                                       
onMouseOut="nd()">
+                                                                       
<xsl:value-of select="//lang_history"/></a>                                     
+
+                                                                       <!--<a 
href="{link_history}" target = '_blank'><xsl:value-of 
select="//lang_history"/></a>-->
+                                                               </xsl:when>
+                                                       </xsl:choose>
                                                </xsl:when>
                                        </xsl:choose>
                                </td>
Index: property/templates/default/entity.xsl
diff -u property/templates/default/entity.xsl:1.6 
property/templates/default/entity.xsl:1.7
--- property/templates/default/entity.xsl:1.6   Wed Nov  9 13:09:23 2005
+++ property/templates/default/entity.xsl       Sun Feb  5 20:07:35 2006
@@ -1,4 +1,4 @@
-<!-- $Id: entity.xsl,v 1.6 2005/11/09 13:09:23 sigurdne Exp $ -->
+<!-- $Id: entity.xsl,v 1.7 2006/02/05 20:07:35 sigurdne Exp $ -->
 
        <xsl:template name="app_data">
                <xsl:choose>
@@ -11,6 +11,9 @@
                        <xsl:when test="empty">
                                <xsl:apply-templates select="empty"/>
                        </xsl:when>
+                       <xsl:when test="attrib_history">
+                               <xsl:apply-templates select="attrib_history"/>
+                       </xsl:when>
                        <xsl:otherwise>
                                <xsl:apply-templates select="list"/>
                        </xsl:otherwise>
@@ -188,6 +191,10 @@
 <!-- add / edit -->
 
        <xsl:template match="edit">
+               <div id="overDiv" style="position:absolute; 
visibility:hide;z-index:1;"></div>
+               <xsl:variable name="overlib_source"><xsl:value-of 
select="overlib_source"/></xsl:variable>
+               <SCRIPT LANGUAGE="JavaScript" SRC="{$overlib_source}"></SCRIPT>
+
                <xsl:variable name="dateformat_source"><xsl:value-of 
select="dateformat_source"/></xsl:variable>
                <SCRIPT LANGUAGE="JavaScript" 
SRC="{$dateformat_source}"></SCRIPT>
 
@@ -667,3 +674,75 @@
                                </td>
                        </tr>
        </xsl:template>
+
+<!-- attrib_history -->
+       <xsl:template match="attrib_history">
+               <table width="100%" cellpadding="2" cellspacing="2" 
align="center">
+                       <xsl:choose>
+                               <xsl:when test="msgbox_data != ''">
+                                       <tr>
+                                               <td align="left" colspan="3">
+                                                       <xsl:call-template 
name="msgbox"/>
+                                               </td>
+                                       </tr>
+                               </xsl:when>
+                       </xsl:choose>
+                       <tr>
+                               <td colspan="3" width="100%">
+                                       <xsl:call-template name="nextmatchs"/>
+                               </td>
+                       </tr>
+               </table>
+               <table width="100%" cellpadding="2" cellspacing="2" 
align="center">
+                               <xsl:apply-templates select="table_header"/>
+                               <xsl:apply-templates select="values"/>
+               </table>
+       </xsl:template>
+
+       <xsl:template match="table_header">
+               <xsl:variable name="sort_time_created" 
select="sort_time_created"/>
+               <xsl:variable name="sort_value" select="sort_value"/>
+       
+                       <tr class="th">
+                               <td width="40%">
+                                       <a href="{$sort_value}" 
class="th_text"><xsl:value-of select="lang_value"/></a>
+                               </td>
+                               <td width="10%" align="center">
+                                       <a href="{$sort_time_created}" 
class="th_text"><xsl:value-of select="lang_time_created"/></a>
+                               </td>
+                               <td width="5%" align="center">
+                                       <xsl:value-of select="lang_delete"/>
+                               </td>
+                       </tr>
+       </xsl:template>
+
+       <xsl:template match="values">
+               <xsl:variable name="lang_delete_statustext"><xsl:value-of 
select="lang_delete_statustext"/></xsl:variable>
+                       <tr>
+                               <xsl:attribute name="class">
+                                       <xsl:choose>
+                                               <xsl:when test="@class">
+                                                       <xsl:value-of 
select="@class"/>
+                                               </xsl:when>
+                                               <xsl:when test="position() mod 
2 = 0">
+                                                       
<xsl:text>row_off</xsl:text>
+                                               </xsl:when>
+                                               <xsl:otherwise>
+                                                       
<xsl:text>row_on</xsl:text>
+                                               </xsl:otherwise>
+                                       </xsl:choose>
+                               </xsl:attribute>
+
+                               <td align="left">
+                                       <xsl:value-of select="value"/>
+                               </td>
+                               <td align="left">
+                                       <xsl:value-of select="time_created"/>
+                               </td>
+                               <td align="center">
+                                       <xsl:variable 
name="link_delete"><xsl:value-of select="link_delete"/></xsl:variable>
+                                       <a href="{$link_delete}" 
onMouseover="window.status='{$lang_delete_statustext}';return true;" 
onMouseout="window.status='';return true;"><xsl:value-of 
select="text_delete"/></a>
+                               </td>
+                       </tr>
+       </xsl:template>
+




reply via email to

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