phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] ged templates/base/css/default.css inc/class.ge...


From: Pascal Vilarem
Subject: [Phpgroupware-cvs] ged templates/base/css/default.css inc/class.ge...
Date: Mon, 12 Mar 2007 17:54:55 +0000

CVSROOT:        /sources/phpgroupware
Module name:    ged
Changes by:     Pascal Vilarem <maat>   07/03/12 17:54:55

Modified files:
        templates/base/css: default.css 
        inc            : class.ged_ui.inc.php class.ged_dm.inc.php 
        templates/base : browse.tpl 

Log message:
        added deliver/review/reject 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/ged/templates/base/css/default.css?cvsroot=phpgroupware&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/ged/inc/class.ged_ui.inc.php?cvsroot=phpgroupware&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/ged/inc/class.ged_dm.inc.php?cvsroot=phpgroupware&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/ged/templates/base/browse.tpl?cvsroot=phpgroupware&r1=1.3&r2=1.4

Patches:
Index: templates/base/css/default.css
===================================================================
RCS file: /sources/phpgroupware/ged/templates/base/css/default.css,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- templates/base/css/default.css      12 Mar 2007 16:53:32 -0000      1.4
+++ templates/base/css/default.css      12 Mar 2007 17:54:55 -0000      1.5
@@ -152,12 +152,12 @@
 
 .file_version_pending_for_approval_odd
 {
-background: #ffbd83;
+background: #fff9c4;
 }
 
 .file_version_pending_for_approval_even
 {
-background: #ffbd83;
+background: #fff9c4;
 }
 
 .file_version_rejected_odd

Index: inc/class.ged_ui.inc.php
===================================================================
RCS file: /sources/phpgroupware/ged/inc/class.ged_ui.inc.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- inc/class.ged_ui.inc.php    12 Mar 2007 16:53:32 -0000      1.12
+++ inc/class.ged_ui.inc.php    12 Mar 2007 17:54:55 -0000      1.13
@@ -22,7 +22,7 @@
        var $debug=1;
        var $browser;
 
-       var $public_functions=array('browse'=>true, 'add_file'=>true, 
'add_folder'=>true, 'update_file'=>true, 'update_folder'=>true, 
'delete_folder'=>true, 'download'=>true, 'view'=>true, 'update_file'=>true, 
'delete_file'=>true, 'change_acl'=>true, 'approve_file'=>true, 'submit_file'=> 
true );
+       var $public_functions=array('browse'=>true, 'add_file'=>true, 
'add_folder'=>true, 'update_file'=>true, 'update_folder'=>true, 
'delete_folder'=>true, 'download'=>true, 'view'=>true, 'update_file'=>true, 
'delete_file'=>true, 'change_acl'=>true, 'approve_file'=>true, 'submit_file'=> 
true, 'accept_file'=> true, 'deliver_file'=> true, 'reject_file'=> true );
 
        var $icons;
 
@@ -746,6 +746,35 @@
                                        $this->t->set_var('approve_file', "<a 
href=\"".$approve_file_url."\">".lang('Approve file')."</a>");
                                }
 
+                               if ( $this->ged_dm->admin && 
$last_version['status'] == 'pending_for_internal_review' )
+                               {
+                                       $link_data=null;
+                                       
$link_data['menuaction']='ged.ged_ui.accept_file';
+                                       $link_data['element_id']=$focused_id;
+                                       
$accept_file_url=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                                       $this->t->set_var('accept_file', "<a 
href=\"".$accept_file_url."\">".lang('Accept file')."</a>");
+                               }
+
+                               if ( $this->ged_dm->admin && 
$last_version['status'] == 'ready_for_delivery' )
+                               {
+                                       $link_data=null;
+                                       
$link_data['menuaction']='ged.ged_ui.deliver_file';
+                                       $link_data['element_id']=$focused_id;
+                                       
$accept_file_url=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                                       $this->t->set_var('deliver_file', "<a 
href=\"".$accept_file_url."\">".lang('Deliver file')."</a>");
+                               }
+                               
+                               if ( $this->ged_dm->admin && 
$last_version['status'] == 'pending_for_approval' )
+                               {
+                                       $link_data=null;
+                                       
$link_data['menuaction']='ged.ged_ui.reject_file';
+                                       $link_data['element_id']=$focused_id;
+                                       
$accept_file_url=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                                       $this->t->set_var('reject_file', "<a 
href=\"".$accept_file_url."\">".lang('Reject file')."</a>");
+                               }
+                               
+                               
+
                                // TODO : droit specifique de delete ?
                                if ( $this->ged_dm->admin )
                                {
@@ -1652,6 +1681,45 @@
                $GLOBALS['phpgw']->redirect_link('/index.php', $link_data);
        }
        
+       function accept_file()
+       {
+               $element_id=get_var('element_id', array('GET', 'POST'));
+               
+               $this->ged_dm->accept_file ( $element_id );
+
+               $link_data=null;
+               $link_data['menuaction']='ged.ged_ui.browse';
+               $link_data['focused_id']=$element_id;
+       
+               $GLOBALS['phpgw']->redirect_link('/index.php', $link_data);
+       }
+
+       function deliver_file()
+       {
+               $element_id=get_var('element_id', array('GET', 'POST'));
+               
+               $this->ged_dm->deliver_file ( $element_id );
+
+               $link_data=null;
+               $link_data['menuaction']='ged.ged_ui.browse';
+               $link_data['focused_id']=$element_id;
+       
+               $GLOBALS['phpgw']->redirect_link('/index.php', $link_data);
+       }
+
+       function reject_file()
+       {
+               $element_id=get_var('element_id', array('GET', 'POST'));
+               
+               $this->ged_dm->reject_file ( $element_id );
+
+               $link_data=null;
+               $link_data['menuaction']='ged.ged_ui.browse';
+               $link_data['focused_id']=$element_id;
+       
+               $GLOBALS['phpgw']->redirect_link('/index.php', $link_data);
+       }
+
 }
 
 ?>

Index: inc/class.ged_dm.inc.php
===================================================================
RCS file: /sources/phpgroupware/ged/inc/class.ged_dm.inc.php,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- inc/class.ged_dm.inc.php    12 Mar 2007 16:53:32 -0000      1.8
+++ inc/class.ged_dm.inc.php    12 Mar 2007 17:54:55 -0000      1.9
@@ -668,6 +668,152 @@
                return $version;
        }
 
+
+       function get_pending_for_internal_review ($element_id)
+       {
+               if ( $this->debug('get_pending_for_internal_review') )
+                       print ( "get_pending_for_internal_review: entering with 
element_id=".$element_id."<br>\n");
+               
+               $sql="SELECT * FROM ".$this->tables['versions']." ";
+               $sql.="WHERE element_id=".$element_id." ";
+               $sql.="AND ( status='pending_for_internal_review' )";
+               $sql.="ORDER BY version_id DESC LIMIT 1";
+
+               if ( $this->debug('get_pending_for_internal_review') )
+                       print ( "get_pending_for_internal_review: 
".$sql."<br>\n");
+
+               //print ("<pre>");
+               //print_r($this->db->metadata( $this->tables['versions'] ));
+               //print ("</pre>");
+               
+               
+               $this->db->query($sql, __LINE__, __FILE__);
+
+               if ($this->db->next_record());
+               {
+                       
+                       
$version['validation_date']=$this->db->f('validation_date');
+                       $version['url']=$this->db->f('url');
+                       $version['size']=$this->db->f('size');
+                       $version['status']=$this->db->f('status');
+                       $version['creator_id']=$this->db->f('creator_id');
+                       $version['creation_date']=$this->db->f('creation_date');
+                       $version['minor']=$this->db->f('minor');
+                       $version['version_id']=$this->db->f('version_id');
+                       $version['element_id']=$this->db->f('element_id');
+                       $version['description']=$this->db->f('description');
+                       
$version['file_extension']=$this->db->f('file_extension');
+                       $version['file_name']=$this->db->f('file_name');
+                       $version['stored_name']=$this->db->f('stored_name');
+                       $version['major']=$this->db->f('major');
+                       
$version['file_full_path']=$this->datadir.'/'.$version['stored_name'];
+                       
+                       
$version['mime_type']=$this->get_mime_type($version['file_extension']);
+                       
+               }
+
+               $this->db->unlock();
+                               
+               return $version;
+       }
+
+       function get_ready_for_delivery ($element_id)
+       {
+               if ( $this->debug('get_ready_for_delivery') )
+                       print ( "get_ready_for_delivery: entering with 
element_id=".$element_id."<br>\n");
+               
+               $sql="SELECT * FROM ".$this->tables['versions']." ";
+               $sql.="WHERE element_id=".$element_id." ";
+               $sql.="AND ( status='ready_for_delivery' )";
+               $sql.="ORDER BY version_id DESC LIMIT 1";
+
+               if ( $this->debug('get_ready_for_delivery') )
+                       print ( "get_ready_for_delivery: ".$sql."<br>\n");
+
+               //print ("<pre>");
+               //print_r($this->db->metadata( $this->tables['versions'] ));
+               //print ("</pre>");
+               
+               
+               $this->db->query($sql, __LINE__, __FILE__);
+
+               if ($this->db->next_record());
+               {
+                       
+                       
$version['validation_date']=$this->db->f('validation_date');
+                       $version['url']=$this->db->f('url');
+                       $version['size']=$this->db->f('size');
+                       $version['status']=$this->db->f('status');
+                       $version['creator_id']=$this->db->f('creator_id');
+                       $version['creation_date']=$this->db->f('creation_date');
+                       $version['minor']=$this->db->f('minor');
+                       $version['version_id']=$this->db->f('version_id');
+                       $version['element_id']=$this->db->f('element_id');
+                       $version['description']=$this->db->f('description');
+                       
$version['file_extension']=$this->db->f('file_extension');
+                       $version['file_name']=$this->db->f('file_name');
+                       $version['stored_name']=$this->db->f('stored_name');
+                       $version['major']=$this->db->f('major');
+                       
$version['file_full_path']=$this->datadir.'/'.$version['stored_name'];
+                       
+                       
$version['mime_type']=$this->get_mime_type($version['file_extension']);
+                       
+               }
+
+               $this->db->unlock();
+                               
+               return $version;
+       }
+
+
+       function get_pending_for_approval ($element_id)
+       {
+               if ( $this->debug('get_pending_for_approval') )
+                       print ( "get_pending_for_approval: entering with 
element_id=".$element_id."<br>\n");
+               
+               $sql="SELECT * FROM ".$this->tables['versions']." ";
+               $sql.="WHERE element_id=".$element_id." ";
+               $sql.="AND ( status='pending_for_approval' )";
+               $sql.="ORDER BY version_id DESC LIMIT 1";
+
+               if ( $this->debug('get_pending_for_approval') )
+                       print ( "get_pending_for_approval: ".$sql."<br>\n");
+
+               //print ("<pre>");
+               //print_r($this->db->metadata( $this->tables['versions'] ));
+               //print ("</pre>");
+               
+               
+               $this->db->query($sql, __LINE__, __FILE__);
+
+               if ($this->db->next_record());
+               {
+                       
+                       
$version['validation_date']=$this->db->f('validation_date');
+                       $version['url']=$this->db->f('url');
+                       $version['size']=$this->db->f('size');
+                       $version['status']=$this->db->f('status');
+                       $version['creator_id']=$this->db->f('creator_id');
+                       $version['creation_date']=$this->db->f('creation_date');
+                       $version['minor']=$this->db->f('minor');
+                       $version['version_id']=$this->db->f('version_id');
+                       $version['element_id']=$this->db->f('element_id');
+                       $version['description']=$this->db->f('description');
+                       
$version['file_extension']=$this->db->f('file_extension');
+                       $version['file_name']=$this->db->f('file_name');
+                       $version['stored_name']=$this->db->f('stored_name');
+                       $version['major']=$this->db->f('major');
+                       
$version['file_full_path']=$this->datadir.'/'.$version['stored_name'];
+                       
+                       
$version['mime_type']=$this->get_mime_type($version['file_extension']);
+                       
+               }
+
+               $this->db->unlock();
+                               
+               return $version;
+       }
+
        function get_working_or_pending_version($element_id)
        {
                if ( $this->debug('get_working_version') )
@@ -1413,14 +1559,16 @@
        // User must have approval rights on this document
        function reject_file ( $element_id, $reason="Default reason" )
        {
-                       
$working_or_pending_version=$this->get_working_or_pending_version($element_id);
+                       
$pending_version=$this->get_pending_for_approval($element_id);
                        
-                       // Need to check if there is a wrking version
-                       if (is_array($working_or_pending_version) )
+                       // Need to check if there is a working version
+                       if (is_array($pending_version) )
                        {
-                               if ($working_or_pending_version['version_id'] )
+                               if ($pending_version['version_id'] )
                                {
-                                       $sql="UPDATE ged_versions set 
status='rejected', validation_date=".time()." WHERE 
version_id=".$working_or_pending_version['version_id'];                       
+                                       // Set "pending_for_internal_review" 
status
+                                       // TODO : Add submission date
+                                       $sql="UPDATE ged_versions set 
status='rejected' WHERE version_id=".$pending_version['version_id'];            
          
                                        $this->db->query($sql, __LINE__, 
__FILE__);
                                }
                        }
@@ -1429,10 +1577,26 @@
        }
 
        // Submit file to customer for approval
+
        // After a contractual timeout the file is
        // considered approved
-       function deliver_file ( $element_id, $timeout=30 )
+       function deliver_file ( $element_id )
        {
+                       
$pending_version=$this->get_ready_for_delivery($element_id);
+                       
+                       // Need to check if there is a working version
+                       if (is_array($pending_version) )
+                       {
+                               if ($pending_version['version_id'] )
+                               {
+                                       // Set "pending_for_internal_review" 
status
+                                       // TODO : Add submission date
+                                       $sql="UPDATE ged_versions set 
status='pending_for_approval' WHERE 
version_id=".$pending_version['version_id'];                  
+                                       $this->db->query($sql, __LINE__, 
__FILE__);
+                               }
+                       }
+                                               
+                       $this->db->unlock();
        }
 
        // submit file for internal approval then delivery
@@ -1457,6 +1621,25 @@
                        $this->db->unlock();
        }
 
+       function accept_file ( $element_id )
+       {
+                       
$pending_version=$this->get_pending_for_internal_review($element_id);
+                       
+                       // Need to check if there is a working version
+                       if (is_array($pending_version) )
+                       {
+                               if ($pending_version['version_id'] )
+                               {
+                                       // Set "pending_for_internal_review" 
status
+                                       // TODO : Add submission date
+                                       $sql="UPDATE ged_versions set 
status='ready_for_delivery' WHERE version_id=".$pending_version['version_id'];  
                  
+                                       $this->db->query($sql, __LINE__, 
__FILE__);
+                               }
+                       }
+                                               
+                       $this->db->unlock();
+       }
+
        function list_new_documents ()
        {
                // Get previous login time
@@ -1558,7 +1741,7 @@
                $sql.="FROM ( ged_elements ";
                $sql.="INNER JOIN ged_versions as ged_current_version ";
                $sql.="ON 
ged_elements.element_id=ged_current_version.element_id ";
-               $sql.="AND ( 
ged_current_version.status='pending_for_internal_review' or 
ged_current_version.status='pending_for_approval' )) ";
+               $sql.="AND ( 
ged_current_version.status='pending_for_internal_review' or 
ged_current_version.status='pending_for_approval' or 
ged_current_version.status='ready_for_delivery' )) ";
                $sql.="GROUP BY ged_elements.element_id ";
                
                $this->db->query($sql);

Index: templates/base/browse.tpl
===================================================================
RCS file: /sources/phpgroupware/ged/templates/base/browse.tpl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- templates/base/browse.tpl   12 Mar 2007 16:53:32 -0000      1.3
+++ templates/base/browse.tpl   12 Mar 2007 17:54:55 -0000      1.4
@@ -1,4 +1,4 @@
-<div id="ged_top_menu">{top_link} {up_link} {update_folder} {add_folder} 
{delete_folder} {add_file} {edit_file} {update_file} {submit_file} 
{accept_file} {reject_file} {approve_file} {delete_file} {change_acl}</div>
+<div id="ged_top_menu">{top_link} {up_link} {update_folder} {add_folder} 
{delete_folder} {add_file} {edit_file} {update_file} {submit_file} 
{accept_file} {reject_file} {deliver_file} {approve_file} {delete_file} 
{change_acl}</div>
 <br/>
 <div id="ged_info">
 {main_content}




reply via email to

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