fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [7937]


From: Erik Holm-Larsen
Subject: [Fmsystem-commits] [7937]
Date: Wed, 26 Oct 2011 05:12:53 +0000

Revision: 7937
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7937
Author:   erikhl
Date:     2011-10-26 05:12:53 +0000 (Wed, 26 Oct 2011)
Log Message:
-----------


Modified Paths:
--------------
    trunk/controller/inc/class.socontrol.inc.php
    trunk/controller/inc/class.soprocedure.inc.php
    trunk/controller/inc/class.uiprocedure.inc.php
    trunk/controller/inc/model/class.procedure.inc.php
    trunk/controller/setup/phpgw_no.lang
    trunk/controller/templates/base/procedure_item.xsl

Modified: trunk/controller/inc/class.socontrol.inc.php
===================================================================
--- trunk/controller/inc/class.socontrol.inc.php        2011-10-25 09:03:40 UTC 
(rev 7936)
+++ trunk/controller/inc/class.socontrol.inc.php        2011-10-26 05:12:53 UTC 
(rev 7937)
@@ -168,7 +168,7 @@
                }
                else
                {
-                       $cols = 'controller_control.id, 
controller_control.title, controller_control.description, 
controller_control.start_date, controller_control.end_date, procedure_id, 
control_area_id, requirement_id, costresponsibility_id, responsibility_id, 
equipment_type_id, equipment_id, location_code, repeat_type, repeat_interval, 
enabled, controller_control_area.title AS control_area_name, 
controller_procedure.title AS procedure_name ';
+                       $cols = 'controller_control.id, 
controller_control.title, controller_control.description, 
controller_control.start_date, controller_control.end_date, 
controller_control.procedure_id, controller_control.control_area_id, 
controller_control.requirement_id, controller_control.costresponsibility_id, 
controller_control.responsibility_id, controller_control.equipment_type_id, 
controller_control.equipment_id, controller_control.location_code, 
controller_control.repeat_type, controller_control.repeat_interval, 
controller_control.enabled, controller_control_area.title AS control_area_name, 
controller_procedure.title AS procedure_name ';
                }
                
                $dir = $ascending ? 'ASC' : 'DESC';

Modified: trunk/controller/inc/class.soprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.soprocedure.inc.php      2011-10-25 09:03:40 UTC 
(rev 7936)
+++ trunk/controller/inc/class.soprocedure.inc.php      2011-10-26 05:12:53 UTC 
(rev 7937)
@@ -191,6 +191,33 @@
                return $results;
        }
        
+       function get_old_revisions($id)
+       {
+               $results = array();
+               
+               $sql = "SELECT * FROM controller_procedure WHERE procedure_id = 
{$id} ORDER BY end_date DESC";
+               $this->db->limit_query($sql, $start, __LINE__, __FILE__, 
$limit);
+               
+               while ($this->db->next_record()) {
+                       $procedure = new 
controller_procedure($this->unmarshal($this->db->f('id', true), 'int'));
+                       
$procedure->set_title($this->unmarshal($this->db->f('title', true), 'string'));
+                       
$procedure->set_purpose($this->unmarshal($this->db->f('purpose', true), 
'string'));
+                       
$procedure->set_responsibility($this->unmarshal($this->db->f('responsibility', 
true), 'string'));
+                       
$procedure->set_description($this->unmarshal($this->db->f('description', true), 
'string'));
+                       
$procedure->set_reference($this->unmarshal($this->db->f('reference', true), 
'string'));
+                       
$procedure->set_attachment($this->unmarshal($this->db->f('attachment', true), 
'string'));
+                       
$procedure->set_start_date(date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->unmarshal($this->db->f('start_date'), 'int')));
+                       
$procedure->set_end_date(date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->unmarshal($this->db->f('end_date'), 'int')));
+                       
$procedure->set_procedure_id($this->unmarshal($this->db->f('procedure_id'), 
'int'));
+                       
$procedure->set_revision_no($this->unmarshal($this->db->f('revision_no'), 
'int'));
+                       
$procedure->set_revision_date(date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->unmarshal($this->db->f('revision_date'), 'int')));
+                       
+                       $results[] = $procedure->toArray();;
+               }
+               
+               return $results;
+       }
+       
        function get_id_field_name($extended_info = false)
        {
                
@@ -230,97 +257,20 @@
                }
 
                $filter_clauses = array();
-               /*switch($filters['is_active']){
-                       case "active":
-                               $filter_clauses[] = "rental_composite.is_active 
= TRUE";
-                               break;
+               $filter_clauses[] = "controller_procedure.end_date IS NULL";
+               /*
+               switch($filters['is_active']){
                        case "non_active":
-                               $filter_clauses[] = "rental_composite.is_active 
= FALSE";
+                               $filter_clauses[] = "NOT 
controller_procedure.end_date IS NULL";
                                break;
-                       case "both":
+                       default:
+                               $filter_clauses[] = 
"controller_procedure.end_date IS NULL";
                                break;
-               }*/
-               /*
-               $special_query = false; //specify if the query should use 
distinct on rental_composite.id (used for selecting composites that has an 
active or inactive contract)
-               $ts_query = strtotime(date('Y-m-d')); // timestamp for query 
(today)
-               $availability_date_from = $ts_query;
-               $availability_date_to = $ts_query;
-               
-               if(isset($filters['availability_date_from']) && 
$filters['availability_date_from'] != ''){
-                       $availability_date_from = 
strtotime($filters['availability_date_from']); 
                }
-               
-               if(isset($filters['availability_date_to']) && 
$filters['availability_date_to'] != ''){
-                       $availability_date_to = 
strtotime($filters['availability_date_to']); 
-               }
                */
-               /*switch($filters['has_contract']){
-                       case "has_contract":
-                               $filter_clauses[] = "NOT 
rental_contract_composite.contract_id IS NULL"; // Composite must have a 
contract
-                               $filter_clauses[] = "NOT 
rental_contract.date_start IS NULL"; // The contract must have start date
-                       */      
-                               /* The contract's start date not after the end 
of the period if there is no end date */
-/*                             $filter_clauses[] = "
-                                       ((NOT rental_contract.date_start > 
$availability_date_to AND rental_contract.date_end IS NULL)
-                                        OR
-                                       (NOT rental_contract.date_start > 
$availability_date_to AND NOT rental_contract.date_end IS NULL AND NOT 
rental_contract.date_end < $availability_date_from))";
-                               $special_query=true;
-                               break;
-                       case "has_no_contract":
-                               $filter_clauses[] = "
-                               (
-                                       rental_contract_composite.contract_id 
IS NULL OR 
-                                       NOT rental_composite.id IN 
-                                       (
-                                               SELECT rental_composite.id FROM 
rental_composite 
-                                               LEFT JOIN  
rental_contract_composite ON (rental_contract_composite.composite_id = 
rental_composite.id) 
-                                               LEFT JOIN  rental_contract ON 
(rental_contract.id = rental_contract_composite.contract_id) 
-                                               WHERE  
-                                               (
-                                                       NOT 
rental_contract_composite.contract_id IS NULL AND
-                                                       NOT 
rental_contract.date_start IS NULL AND
-                                                       ((NOT 
rental_contract.date_start > $availability_date_to AND rental_contract.date_end 
IS NULL)
-                                                       OR
-                                                       (NOT 
rental_contract.date_start > $availability_date_to AND NOT 
rental_contract.date_end IS NULL AND NOT rental_contract.date_end < 
$availability_date_from))
-                                               )
-                                       )
-                               )
-                               ";
-                               $special_query=true;
-                               break;
-                       case "both":
-                               break;
-               }
                
-               // Furnished, partly furnished, not furnished, not specified
-               if(isset($filters['furnished_status']) & 
$filters['furnished_status'] < 4){
-                       // Not specified
-                       if($filters['furnished_status'] == 0)
-                               $filter_clauses[] = 
"rental_composite.furnish_type_id IS NULL";
-                       else 
-                               $filter_clauses[] = 
"rental_composite.furnish_type_id=".$filters['furnished_status'];
-               }
-
-               if(isset($filters['not_in_contract'])){
-                       $filter_clauses[] = 
"(rental_contract_composite.contract_id != ".$filters['not_in_contract']." OR 
rental_contract_composite.contract_id IS NULL)";
-               }
-               
-               if(isset($filters['location_code'])){
-                       $filter_clauses[] = "rental_unit.location_code = '". 
$filters['location_code'] . "'";
-               }
-               
-               if(isset($filters['contract_id']))
-               {
-                       $filter_clauses[] = "contract_id = 
{$this->marshal($filters['contract_id'],'int')}";
-               }
-               
                if(isset($filters[$this->get_id_field_name()]))
                {
-                       $filter_clauses[] = "rental_composite.id = 
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
-               }*/
-               
-               if(isset($filters[$this->get_id_field_name()]))
-               {
                        $filter_clauses[] = "controller_procedure.id = 
{$this->marshal($filters[$this->get_id_field_name()],'int')}";
                }
 
@@ -332,9 +282,6 @@
                $condition =  join(' AND ', $clauses);
 
                $tables = "controller_procedure";
-               //$joins = "    {$this->left_join} rental_unit ON 
(rental_composite.id = rental_unit.composite_id)";
-               //$joins .= "   {$this->left_join} rental_contract_composite ON 
(rental_contract_composite.composite_id = rental_composite.id)";
-               //$joins .= "   {$this->left_join} rental_contract ON 
(rental_contract.id = rental_contract_composite.contract_id)";
                
                if($return_count) // We should only return a count
                {

Modified: trunk/controller/inc/class.uiprocedure.inc.php
===================================================================
--- trunk/controller/inc/class.uiprocedure.inc.php      2011-10-25 09:03:40 UTC 
(rev 7936)
+++ trunk/controller/inc/class.uiprocedure.inc.php      2011-10-26 05:12:53 UTC 
(rev 7937)
@@ -77,6 +77,11 @@
                                                        'sortable'      => false
                                                ),
                                                array(
+                                                       'key' => 
'revision_date',
+                                                       'label' => 
lang('Procedure revision date'),
+                                                       'sortable'      => true
+                                               ),
+                                               array(
                                                        'key' => 'link',
                                                        'hidden' => true
                                                )
@@ -113,6 +118,7 @@
                                        
$procedure->set_attachment(phpgw::get_var('attachment'));
                                        
$procedure->set_start_date(strtotime(phpgw::get_var('start_date_hidden')));
                                        
$procedure->set_end_date(strtotime(phpgw::get_var('end_date_hidden')));
+                                       
$procedure->set_revision_date(strtotime(phpgw::get_var('revision_date_hidden')));
                                        
                                        if(isset($procedure_id) && 
$procedure_id > 0)
                                        {
@@ -146,13 +152,16 @@
                                $old_procedure = 
$this->so->get_single($procedure_id);
                                if(isset($procedure)) // Edit procedure
                                {
-                                       $revision = 
$procedure->get_revision_no();
+                                       $revision = 
(int)$procedure->get_revision_no();
                                        if($revision && is_numeric($revision))
                                        {
-                                               $revision = (int)$revision;
-                                               $new_revision = $revision++;
-                                               
$procedure->set_revision_no($new_revision);
+                                               $revision++;
+                                               
$procedure->set_revision_no($revision);
                                        }
+                                       else
+                                       {
+                                               $procedure->set_revision_no(1);
+                                       }
                                        
$procedure->set_title(phpgw::get_var('title'));
                                        
$procedure->set_purpose(phpgw::get_var('purpose','html'));
                                        
$procedure->set_responsibility(phpgw::get_var('responsibility'));
@@ -211,6 +220,7 @@
                                        'value_id'                              
=> !empty($procedure) ? $procedure->get_id() : 0,
                                        'start_date'                    => 
$GLOBALS['phpgw']->yuical->add_listener('start_date',date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 ($procedure->get_start_date())?$procedure->get_start_date():time())),
                                        'end_date'                              
=> 
$GLOBALS['phpgw']->yuical->add_listener('end_date',date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 ($procedure->get_end_date())?$procedure->get_end_date():'')),
+                                       'revision_date'                 => 
$GLOBALS['phpgw']->yuical->add_listener('revision_date',date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 ($procedure->get_revision_date())?$procedure->get_revision_date():'')),
                                        'img_go_home'                   => 
'rental/templates/base/images/32x32/actions/go-home.png',
                                        'editable'                              
=> true,
                                        'procedure'                             
=> $procedure_array,
@@ -221,10 +231,11 @@
        
        
                                
$GLOBALS['phpgw']->richtext->replace_element('purpose');
+                               //$this->use_yui_editor();
                                
$GLOBALS['phpgw']->richtext->replace_element('description');
+                               
//$GLOBALS['phpgw']->richtext->generate_script(true);
                                $GLOBALS['phpgw']->richtext->generate_script();
        
-       
        //                      $GLOBALS['phpgw']->js->validate_file( 'yahoo', 
'controller.item', 'controller' );
        
                                self::render_template_xsl('procedure_item', 
$data);
@@ -246,6 +257,7 @@
                public function view()
                {
                        $GLOBALS['phpgw_info']['flags']['app_header'] .= 
'::'.lang('view');
+                       $view_revision = phpgw::get_var('view_revision');
                        //Retrieve the procedure object
                        $procedure_id = (int)phpgw::get_var('id');
                        if(isset($_POST['edit_procedure']))
@@ -275,7 +287,25 @@
                                        $procedure_start_date = 
date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'], 
$procedure->get_start_date());
                                if($procedure->get_end_date() && 
$procedure->get_end_date() != null)
                                        $procedure_end_date     = 
date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'], 
$procedure->get_end_date());
+                               if($procedure->get_revision_date() && 
$procedure->get_revision_date() != null)
+                                       $procedure_revision_date        = 
date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'], 
$procedure->get_revision_date());
                                //_debug_array($procedure_array);
+                               
+                               if(!$view_revision)
+                               {
+                                       $table_header[] = array('header' => 
lang('Procedure revision'));
+                                       $table_header[] = array('header' => 
lang('Procedure title'));
+                                       $table_header[] = array('header' => 
lang('Procedure start date'));
+                                       $table_header[] = array('header' => 
lang('Procedure end date'));
+                                       
+                                       $revised_procedures = 
$this->so->get_old_revisions($procedure->get_id());
+                                       //var_dump($revised_procedures);
+                                       foreach($revised_procedures as $rev)
+                                       {
+                                               $rev['link'] = 
self::link(array('menuaction' => 'controller.uiprocedure.view', 'id' => 
$rev['id'], 'view_revision' => 'yes'));
+                                               $table_values[] = array('row' 
=> $rev);
+                                       }
+                               }
        
                                $data = array
                                (
@@ -283,8 +313,16 @@
                                        'img_go_home'                   => 
'rental/templates/base/images/32x32/actions/go-home.png',
                                        'procedure'                             
=> $procedure_array,
                                        'start_date'                    => 
$procedure_start_date,
-                                       'end_date'                              
=> $procedure_end_date
+                                       'end_date'                              
=> $procedure_end_date,
+                                       'revision_date'                 => 
$procedure_revision_date,
+                                       'values'                                
=> $table_values,
+                                       'table_header'                  => 
$table_header,
                                );
+                               
+                               if($procedure->get_end_date())
+                               {
+                                       $data['inactive'] = true;
+                               }
        
        
                                $GLOBALS['phpgw_info']['flags']['app_header'] = 
lang('controller') . '::' . lang('Procedure');

Modified: trunk/controller/inc/model/class.procedure.inc.php
===================================================================
--- trunk/controller/inc/model/class.procedure.inc.php  2011-10-25 09:03:40 UTC 
(rev 7936)
+++ trunk/controller/inc/model/class.procedure.inc.php  2011-10-26 05:12:53 UTC 
(rev 7937)
@@ -141,7 +141,7 @@
                                        'end_date' => $this->get_end_date(),
                                        'procedure_id' => 
$this->get_procedure_id(),
                                        'revision_no' => 
$this->get_revision_no(),
-                                       'revision_date' => 
$this->get_revision_date()
+                                       'revision_date' => 
($this->get_revision_date())?date($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'],
 $this->get_revision_date()):''
                        );
                }
        }

Modified: trunk/controller/setup/phpgw_no.lang
===================================================================
--- trunk/controller/setup/phpgw_no.lang        2011-10-25 09:03:40 UTC (rev 
7936)
+++ trunk/controller/setup/phpgw_no.lang        2011-10-26 05:12:53 UTC (rev 
7937)
@@ -256,4 +256,6 @@
 Control_locations      controller      no      Lokasjoner
 Control_equipment      controller      no      Utstyr
 New control    controller      no      Ny kontroll
-revisit        controller      no      Revidér
\ No newline at end of file
+revisit        controller      no      Revidér
+Procedure revision     controller      no      Revisjon
+Procedure revision date        controller      no      Revisjonsdato
\ No newline at end of file

Modified: trunk/controller/templates/base/procedure_item.xsl
===================================================================
--- trunk/controller/templates/base/procedure_item.xsl  2011-10-25 09:03:40 UTC 
(rev 7936)
+++ trunk/controller/templates/base/procedure_item.xsl  2011-10-26 05:12:53 UTC 
(rev 7937)
@@ -29,6 +29,12 @@
                                        </xsl:choose>
                                        </dd>
                                        <dt>
+                                               <label 
for="revision_no"><xsl:value-of select="php:function('lang','Procedure 
revision')" /></label>
+                                       </dt>
+                                       <dd>
+                                               <xsl:value-of 
select="procedure/revision_no" />
+                                       </dd>
+                                       <dt>
                                                <label 
for="purpose"><xsl:value-of select="php:function('lang','Procedure purpose')" 
/></label>
                                        </dt>
                                        <dd>
@@ -74,11 +80,19 @@
                                                <xsl:value-of 
disable-output-escaping="yes" select="start_date"/>
                                        </dd>
                                        <dt>
+                                               <label 
for="revision_date"><xsl:value-of select="php:function('lang','Procedure 
revision date')" /></label>
+                                       </dt>
+                                       <dd>
+                                               <xsl:value-of 
disable-output-escaping="yes" select="revision_date"/>
+                                       </dd>
+                                       <xsl:if test="end_date != ''">
+                                       <dt>
                                                <label 
for="end_date"><xsl:value-of select="php:function('lang','Procedure end date')" 
/></label>
                                        </dt>
                                        <dd>
                                                <xsl:value-of 
disable-output-escaping="yes" select="end_date"/>
                                        </dd>
+                                       </xsl:if>
                                        <dt>
                                                <label 
for="reference"><xsl:value-of select="php:function('lang','Procedure 
Reference')" /></label>
                                        </dt>
@@ -117,6 +131,10 @@
                                                        <input type="submit" 
name="revisit_procedure" value="{$lang_revisit}" title = "{$lang_revisit}" />
                                                        <input type="submit" 
name="cancel_procedure" value="{$lang_cancel}" title = "{$lang_cancel}" />
                                                </xsl:when>
+                                               <xsl:when test="inactive">
+                                                       <xsl:variable 
name="lang_back"><xsl:value-of select="php:function('lang', 'back')" 
/></xsl:variable>
+                                                       <input type="button" 
value="{$lang_back}" title="{$lang_back}" onclick="javascript: history.go(-1);" 
style="margin: 0 0 15px 15px; padding: 1px 15px;"/>
+                                               </xsl:when>
                                                <xsl:otherwise>
                                                        <xsl:variable 
name="lang_edit"><xsl:value-of select="php:function('lang', 'edit')" 
/></xsl:variable>
                                                        <input type="submit" 
name="edit_procedure" value="{$lang_edit}" title = "{$lang_edit}" />
@@ -124,7 +142,46 @@
                                        </xsl:choose>
                                </div>
                        </form>
-                                               
+                       <xsl:choose>
+                               <xsl:when test="values != ''">
+                                       <table cellpadding="10" 
cellspacing="10" align="left" style="margin-left: 1em;">
+                                               <xsl:call-template 
name="table_header_history"/>
+                                               <xsl:call-template 
name="values_history"/>
+                                       </table>
+                               </xsl:when>
+                       </xsl:choose>
                </div>
        </div>
-</xsl:template>
\ No newline at end of file
+</xsl:template>
+
+<xsl:template name="table_header_history">
+               <tr class="th">
+                       <xsl:for-each select="table_header" >
+                               <td class="th_text" style="padding-right: 
10px;">
+                                       <xsl:value-of select="header"/>
+                               </td>
+                       </xsl:for-each>
+               </tr>
+       </xsl:template>
+
+       <xsl:template name="values_history">
+               <xsl:for-each select="values" >
+                       <tr>
+                               <xsl:for-each select="row" >
+                                       <xsl:variable 
name="proc_link"><xsl:value-of select='link'/></xsl:variable>
+                                       <td align="right" style="padding-right: 
10px;">
+                                               <a 
href="{$proc_link}"><xsl:value-of select="revision_no"/></a>
+                                       </td>
+                                       <td align="left" style="padding-right: 
10px;">
+                                               <xsl:value-of select="title"/>
+                                       </td>
+                                       <td align="left" style="padding-right: 
10px;">
+                                               <xsl:value-of 
select="start_date"/>
+                                       </td>
+                                       <td align="left" style="padding-right: 
10px;">
+                                               <xsl:value-of 
select="end_date"/>
+                                       </td>
+                               </xsl:for-each>
+                       </tr>
+               </xsl:for-each>
+       </xsl:template>
\ No newline at end of file




reply via email to

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