[Top][All Lists]
[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}