phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] ged inc/class.ged_dm.inc.php inc/hook_home.inc....


From: Pascal Vilarem
Subject: [Phpgroupware-cvs] ged inc/class.ged_dm.inc.php inc/hook_home.inc....
Date: Tue, 27 Mar 2007 18:03:59 +0000

CVSROOT:        /sources/phpgroupware
Module name:    ged
Changes by:     Pascal Vilarem <maat>   07/03/27 18:03:59

Modified files:
        inc            : class.ged_dm.inc.php hook_home.inc.php 
Added files:
        templates/base : home.tpl 

Log message:
        New home board using template systems and showing status informations.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/ged/templates/base/home.tpl?cvsroot=phpgroupware&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/ged/inc/class.ged_dm.inc.php?cvsroot=phpgroupware&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/ged/inc/hook_home.inc.php?cvsroot=phpgroupware&r1=1.6&r2=1.7

Patches:
Index: inc/class.ged_dm.inc.php
===================================================================
RCS file: /sources/phpgroupware/ged/inc/class.ged_dm.inc.php,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- inc/class.ged_dm.inc.php    26 Mar 2007 14:04:33 -0000      1.12
+++ inc/class.ged_dm.inc.php    27 Mar 2007 18:03:59 -0000      1.13
@@ -1899,6 +1899,8 @@
                                $docs[$i]['name']=$this->db->f('name');
                                $docs[$i]['status']=$this->db->f('status');
                                
$docs[$i]['reference']=$this->db->f('reference');
+                               $docs[$i]['minor']=$this->db->f('minor');
+                               $docs[$i]['major']=$this->db->f('major');
                                
$docs[$i]['description']=$this->db->f('description');
                                $i ++;
                        }
@@ -1986,6 +1988,131 @@
                                $docs[$i]['name']=$this->db->f('name');
                                $docs[$i]['status']=$this->db->f('status');
                                
$docs[$i]['reference']=$this->db->f('reference');
+                               $docs[$i]['minor']=$this->db->f('minor');
+                               $docs[$i]['major']=$this->db->f('major');
+                               
$docs[$i]['description']=$this->db->f('description');
+                               $i ++;
+                       }
+               }
+                       
+               $this->db->unlock();
+               
+               if ( isset($docs))
+                       return ($docs);
+               else
+                       return null;
+       
+       }
+
+       function list_working_documents ()
+       {
+                                       
+               $sql="SELECT ged_elements.*, ged_current_version.* ";
+               $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='working' )) ";
+               $sql.="GROUP BY ged_elements.element_id ";
+               
+               $this->db->query($sql);
+
+               $i=0;
+               while ($this->db->next_record())
+               {
+                       $element_id=$this->db->f('element_id');
+                       $version_id=$this->db->f('version_id');
+                       
+                       if ( $this->can_write($element_id) )
+                       {
+                               $docs[$i]['element_id']=$element_id;
+                               $docs[$i]['name']=$this->db->f('name');
+                               $docs[$i]['status']=$this->db->f('status');
+                               
$docs[$i]['reference']=$this->db->f('reference');
+                               $docs[$i]['minor']=$this->db->f('minor');
+                               $docs[$i]['major']=$this->db->f('major');
+                               
$docs[$i]['description']=$this->db->f('description');
+                               $i ++;
+                       }
+               }
+                       
+               $this->db->unlock();
+               
+               if ( isset($docs))
+                       return ($docs);
+               else
+                       return null;
+       
+       }
+
+       function list_alert_documents ()
+       {
+                                       
+               $sql="SELECT ged_elements.*, ged_current_version.* ";
+               $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='alert' )) ";
+               $sql.="GROUP BY ged_elements.element_id ";
+               
+               $this->db->query($sql);
+
+               $i=0;
+               while ($this->db->next_record())
+               {
+                       $element_id=$this->db->f('element_id');
+                       $version_id=$this->db->f('version_id');
+                       
+                       if ( $this->can_write($element_id) )
+                       {
+                               $docs[$i]['element_id']=$element_id;
+                               $docs[$i]['name']=$this->db->f('name');
+                               $docs[$i]['status']=$this->db->f('status');
+                               
$docs[$i]['reference']=$this->db->f('reference');
+                               $docs[$i]['minor']=$this->db->f('minor');
+                               $docs[$i]['major']=$this->db->f('major');
+                               
$docs[$i]['description']=$this->db->f('description');
+                               $i ++;
+                       }
+               }
+                       
+               $this->db->unlock();
+               
+               if ( isset($docs))
+                       return ($docs);
+               else
+                       return null;
+       
+       }
+
+       function list_rejected_documents ()
+       {
+                                       
+               $sql="SELECT ged_elements.*, ged_current_version.*, 
max(ged_last_version.version_id) as last_version_id ";
+               $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='rejected' )) ";
+               $sql.="INNER JOIN ged_versions as ged_last_version ";
+               $sql.="ON ged_elements.element_id=ged_last_version.element_id ";
+               $sql.="GROUP BY ged_elements.element_id ";
+               $sql.="HAVING last_version_id=ged_current_version.version_id ";
+               
+               $this->db->query($sql);
+
+               $i=0;
+               while ($this->db->next_record())
+               {
+                       $element_id=$this->db->f('element_id');
+                       $version_id=$this->db->f('version_id');
+                       
+                       if ( $this->can_write($element_id) )
+                       {
+                               $docs[$i]['element_id']=$element_id;
+                               $docs[$i]['name']=$this->db->f('name');
+                               $docs[$i]['status']=$this->db->f('status');
+                               
$docs[$i]['reference']=$this->db->f('reference');
+                               $docs[$i]['minor']=$this->db->f('minor');
+                               $docs[$i]['major']=$this->db->f('major');
                                
$docs[$i]['description']=$this->db->f('description');
                                $i ++;
                        }
@@ -2042,8 +2169,6 @@
                        return ($docs);
                else
                        return null;
-
-       
   }
 }
 ?>

Index: inc/hook_home.inc.php
===================================================================
RCS file: /sources/phpgroupware/ged/inc/hook_home.inc.php,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- inc/hook_home.inc.php       22 Mar 2007 09:19:28 -0000      1.6
+++ inc/hook_home.inc.php       27 Mar 2007 18:03:59 -0000      1.7
@@ -16,7 +16,21 @@
        if ( 
isset($GLOBALS['phpgw_info']['user']['preferences']['ged']['mainscreen_show_ged_news'])
                && 
$GLOBALS['phpgw_info']['user']['preferences']['ged']['mainscreen_show_ged_news']
 == 'True' )
        {
-                       $title='<font color="#FFFFFF">'.lang('ged').'</font>';
+               // Template
+               $template = $GLOBALS['phpgw']->template;
+               define ( 'GED_TPL_DIR', 
$GLOBALS['phpgw']->common->get_tpl_dir('ged'));
+               $template->set_root(GED_TPL_DIR);
+               $template->set_file(array('home_tpl'=>'home.tpl'));
+               
+               // Styles
+               if(address@hidden($GLOBALS['phpgw']->css))
+               {
+                       $GLOBALS['phpgw']->css = createObject('phpgwapi.css');
+               }
+               $GLOBALS['phpgw']->css->validate_file('home','ged');
+               
+               // Portalbox data
+               $title=lang('ged');
                
                $portalbox=CreateObject('phpgwapi.listbox',
                        @Array(
@@ -32,6 +46,8 @@
                        
                $app_id=$GLOBALS['phpgw']->applications->name2id('ged');
                $GLOBALS['portal_order'][]=$app_id;
+                
+               
                $var=Array(
                //      'up'=>Array('url'=>'/set_box.php', 'app'=>$app_id),
                //      'down'=>Array('url'=>'/set_box.php', 'app'=>$app_id),
@@ -48,137 +64,158 @@
                        $portalbox->data=Array();
                        
                        if ( isset($data))
+               {
                                if(is_array($data))
                                {
                                        $portalbox->data=$data;
                                }
-                       
-                       $GLOBALS['extra_data']='<td><div style="margin-left: 
1em;">'."\n";
+               }
                        
                        /* partie interessante */
                        
+               // Call ged data manager
                        $ged_dm=CreateObject('ged.ged_dm', True);
                        
-                       $docs1=$ged_dm->list_new_documents();
-                       
-                       if ( is_array($docs1) )
+               // Get info
+               $new_docs=$ged_dm->list_new_documents();                
+               $template->set_block('home_tpl', 'new_docs_list', 
'new_docs_list_handle');
+               $file_odd_even='odd';           
+               if ( is_array($new_docs))
                        {
-                               $GLOBALS['extra_data'] .="<table>\n";
-                               $GLOBALS['extra_data'] .="<tr>\n";
-                               $GLOBALS['extra_data'] .="<td colspan=\"2\">\n";
-                               $GLOBALS['extra_data'] .="<h2>".lang ('New 
documents')."</h2>"."\n";
-                               $GLOBALS['extra_data'] .="</td>\n";
-                               $GLOBALS['extra_data'] .="</tr>\n";
-                               
-                               foreach ( $docs1 as $doc )
+                       foreach ($new_docs as $new_doc )
                                {
+                               if ( $file_odd_even=='odd' )
+                                       $file_odd_even='even';
+                               else
+                                       $file_odd_even='odd';
                                        
-                                       
$link_data['menuaction']='ged.ged_ui.browse';
-                                       
$link_data['focused_id']=$doc['element_id'];
-                                       
$link=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                               $template->set_var('status_image', 
$GLOBALS['phpgw']->common->image('ged', $new_doc['status']."-16"));
+                               $template->set_var('version', 
$new_doc['major'].".".$new_doc['minor']);
+                               $template->set_var('doc_name', 
$new_doc['name']);
+                               $template->set_var('doc_reference', 
$new_doc['reference']);
                                        
-                                       $GLOBALS['extra_data'] .="<tr>\n";
-                                       $GLOBALS['extra_data'] .="<td>\n";
-                                       $GLOBALS['extra_data'] .= "<img 
src=\"".$GLOBALS['phpgw']->common->image('ged', $doc['status']."-16")."\">\n";
-                                       $GLOBALS['extra_data'] .="</td>\n";
-
-                                       $GLOBALS['extra_data'] .="<td>\n";
-                                       if ( $doc['reference'] !="" )
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']." [".$doc['reference']."]</a>\n";
-                                       else
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']."</a>\n";
+                               $link_data=null;
+                               $link_data['menuaction']='ged.ged_ui.browse';
+                               
$link_data['focused_id']=$new_doc['element_id'];                        
+                               $template->set_var('doc_link', 
$GLOBALS['phpgw']->link('/index.php', $link_data));
                                        
-                                       $GLOBALS['extra_data'] .="</td>\n";
-                                       $GLOBALS['extra_data'] .="</tr>\n";
+                               $template->fp('new_docs_list_handle', 
'new_docs_list', True);
                                }
-                               $GLOBALS['extra_data'] .="</table>\n";
                        }
 
-                       $docs2=$ged_dm->list_documents_to_expire();
-                       
-                       if ( is_array($docs2) )
+               $working_docs=$ged_dm->list_working_documents();
+               $template->set_block('home_tpl', 'working_docs_list', 
'working_docs_list_handle');
+               $file_odd_even='odd';           
+               if ( is_array($working_docs))
                        {
-                               $GLOBALS['extra_data'] .="<table>\n";
-                               $GLOBALS['extra_data'] .="<tr>\n";
-                               $GLOBALS['extra_data'] .="<td colspan=\"2\">\n";
-                               $GLOBALS['extra_data'] .="<h2>".lang 
('Documents to check soon')."</h2>"."\n";
-                               $GLOBALS['extra_data'] .="</td>\n";
-                               $GLOBALS['extra_data'] .="</tr>\n";
-
-                               foreach ( $docs2 as $doc )
+                       foreach ($working_docs as $working_doc )
                                {
+                               if ( $file_odd_even=='odd' )
+                                       $file_odd_even='even';
+                               else
+                                       $file_odd_even='odd';
+                               
+                               $template->set_var('status_image', 
$GLOBALS['phpgw']->common->image('ged', $working_doc['status']."-16"));
+                               $template->set_var('version', 
$working_doc['major'].".".$working_doc['minor']);
+                               $template->set_var('doc_name', 
$working_doc['name']);
+                               $template->set_var('doc_reference', 
$working_doc['reference']);
                                        
+                               $link_data=null;
                                        
$link_data['menuaction']='ged.ged_ui.browse';
-                                       
$link_data['focused_id']=$doc['element_id'];
-                                       
$link=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                               
$link_data['focused_id']=$working_doc['element_id'];                    
+                               $template->set_var('doc_link', 
$GLOBALS['phpgw']->link('/index.php', $link_data));
                                        
-                                       if ( $doc['expiration_date'] > time() )
-                                               
$expiration=date("d/m/y",$doc['expiration_date']);
-                                       else
-                                               $expiration=lang("Too late!");
+                               $template->fp('working_docs_list_handle', 
'working_docs_list', True);
+                       }
+               }
                        
-                                       $GLOBALS['extra_data'] .="<tr>\n";
-                                       $GLOBALS['extra_data'] .="<td>\n";
-                                       $GLOBALS['extra_data'] .= "<img 
src=\"".$GLOBALS['phpgw']->common->image('ged', $doc['status']."-16")."\">\n";
-                                       $GLOBALS['extra_data'] .="</td>\n";
+               $pending_docs=$ged_dm->list_pending_documents();
+               $template->set_block('home_tpl', 'pending_docs_list', 
'pending_docs_list_handle');
+               $file_odd_even='odd';           
+               if ( is_array($pending_docs))
+               {
+                       foreach ($pending_docs as $pending_doc )
+                       {
+                               if ( $file_odd_even=='odd' )
+                                       $file_odd_even='even';
+                               else
+                                       $file_odd_even='odd';
 
-                                       $GLOBALS['extra_data'] .="<td>\n";
+                               $template->set_var('status_image', 
$GLOBALS['phpgw']->common->image('ged', $pending_doc['status']."-16"));
+                               $template->set_var('version', 
$pending_doc['major'].".".$pending_doc['minor']);
+                               $template->set_var('doc_name', 
$pending_doc['name']);
+                               $template->set_var('doc_reference', 
$pending_doc['reference']);
 
-                                       if ( $doc['reference'] !="" )
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']." [".$doc['reference']."]</a> 
(".lang("Deadline")." : ".$expiration.")"."\n";
-                                       else
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']."</a> (".lang("Deadline")." : 
".$expiration.")"."\n";
+                               $link_data=null;
+                               $link_data['menuaction']='ged.ged_ui.browse';
+                               
$link_data['focused_id']=$pending_doc['element_id'];                    
+                               $template->set_var('doc_link', 
$GLOBALS['phpgw']->link('/index.php', $link_data));
 
-                                       $GLOBALS['extra_data'] .="</td>\n";
-                                       $GLOBALS['extra_data'] .="</tr>\n";
+                               $template->fp('pending_docs_list_handle', 
'pending_docs_list', True);
                                }
-                               $GLOBALS['extra_data'] .="</table>\n";
                        }
 
-                       $docs3=$ged_dm->list_pending_documents();
-                       
-                       if ( is_array($docs3) )
+               $alert_docs=$ged_dm->list_alert_documents();
+               $template->set_block('home_tpl', 'alert_docs_list', 
'alert_docs_list_handle');
+               $file_odd_even='odd';           
+               if ( is_array($alert_docs))
                        {
-                               $GLOBALS['extra_data'] .="<table>\n";
-                               $GLOBALS['extra_data'] .="<tr>\n";
-                               $GLOBALS['extra_data'] .="<td colspan=\"2\">\n";
-                               $GLOBALS['extra_data'] .="<h2>".lang ('Pending 
documents')."</h2>"."\n";
-                               $GLOBALS['extra_data'] .="</td>\n";
-                               $GLOBALS['extra_data'] .="</tr>\n";
-
-                               foreach ( $docs3 as $doc )
+                       foreach ($alert_docs as $alert_doc )
                                {
+                               if ( $file_odd_even=='odd' )
+                                       $file_odd_even='even';
+                               else
+                                       $file_odd_even='odd';
                                        
+                               $template->set_var('status_image', 
$GLOBALS['phpgw']->common->image('ged', $alert_doc['status']."-16"));
+                               $template->set_var('version', 
$alert_doc['major'].".".$alert_doc['minor']);
+                               $template->set_var('doc_name', 
$alert_doc['name']);
+                               $template->set_var('doc_reference', 
$alert_doc['reference']);
+                               
+                               $link_data=null;
                                        
$link_data['menuaction']='ged.ged_ui.browse';
-                                       
$link_data['focused_id']=$doc['element_id'];
-                                       
$link=$GLOBALS['phpgw']->link('/index.php', $link_data);
+                               
$link_data['focused_id']=$alert_doc['element_id'];                      
+                               $template->set_var('doc_link', 
$GLOBALS['phpgw']->link('/index.php', $link_data));
                                                                
-                                       $GLOBALS['extra_data'] .="<tr>\n";
-                                       $GLOBALS['extra_data'] .="<td>\n";
-                                       $GLOBALS['extra_data'] .= "<img 
src=\"".$GLOBALS['phpgw']->common->image('ged', $doc['status']."-16")."\">\n";
-                                       $GLOBALS['extra_data'] .="</td>\n";
-
-                                       $GLOBALS['extra_data'] .="<td>\n";
-                                       if ( $doc['reference'] !="" )
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']." [".$doc['reference']."]</a>"."\n";
+                               $template->fp('alert_docs_list_handle', 
'alert_docs_list', True);
+                       }
+               }
+
+               $rejected_docs=$ged_dm->list_rejected_documents();
+               $template->set_block('home_tpl', 'rejected_docs_list', 
'rejected_docs_list_handle');
+               $file_odd_even='odd';           
+               if ( is_array($rejected_docs))
+               {
+                       foreach ($rejected_docs as $rejected_doc )
+                       {
+                               if ( $file_odd_even=='odd' )
+                                       $file_odd_even='even';
                                        else
-                                               $GLOBALS['extra_data'] .="<a 
href=\"".$link."\" >".$doc['name']."</a>"."\n";
+                                       $file_odd_even='odd';
+                               
+                               $template->set_var('status_image', 
$GLOBALS['phpgw']->common->image('ged', $rejected_doc['status']."-16"));
+                               $template->set_var('version', 
$rejected_doc['major'].".".$rejected_doc['minor']);
+                               $template->set_var('doc_name', 
$rejected_doc['name']);
+                               $template->set_var('doc_reference', 
$rejected_doc['reference']);
 
-                                       $GLOBALS['extra_data'] .="</td>\n";
-                                       $GLOBALS['extra_data'] .="</tr>\n";
+                               $link_data=null;
+                               $link_data['menuaction']='ged.ged_ui.browse';
+                               
$link_data['focused_id']=$rejected_doc['element_id'];                   
+                               $template->set_var('doc_link', 
$GLOBALS['phpgw']->link('/index.php', $link_data));
+                       
+                               $template->fp('rejected_docs_list_handle', 
'rejected_docs_list', True);
                                }
-                               $GLOBALS['extra_data'] .="</table>\n";
                        }
                        
+               //$to_expire_docs=$ged_dm->list_documents_to_expire();
+               
+                       
                        /* fin partie interessante */
                        
-                       $GLOBALS['extra_data'] .='</div></td>';
+               $GLOBALS['extra_data']=$template->fp('out', 'home_tpl');
                
                        // output the portalbox
-                       if ( is_array($docs1) || is_array($docs2) || 
is_array($docs3) )
-                               echo "\n".'<!-- BEGIN ged info 
-->'."\n".$portalbox->draw($GLOBALS['extra_data'])."\n".'<!-- END ged info 
-->'."\n";
-                       else
-                               echo "\n".'<!-- BEGIN ged info 
-->'."\n".$portalbox->draw('<td style="background: white;"><div 
style="margin-left: 1em;">'.lang("Nothing to 
notice...")).'</div></td>'."\n".'<!-- END ged info -->'."\n";
+               echo $portalbox->draw($GLOBALS['extra_data']);
                                
                flush();
        }

Index: templates/base/home.tpl
===================================================================
RCS file: templates/base/home.tpl
diff -N templates/base/home.tpl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ templates/base/home.tpl     27 Mar 2007 18:03:59 -0000      1.1
@@ -0,0 +1,67 @@
+<td><div style="margin-left: 1em;">
+<!-- BEGIN ged info -->
+<table width="100%">
+<tr>
+<td valign="top" width="50%">
+<!-- New documents Table -->
+<table>
+<tr><td colspan="2">New</td></tr>
+<!-- BEGIN new_docs_list -->
+<tr>
+<td width="16"><img src="{status_image}"/></td>
+<td ><a href="{doc_link}">{doc_name} [{doc_reference}] v{version}</a></td>
+</tr>
+<!-- END new_docs_list -->
+</table>
+<!-- End New documents Table -->
+<!-- Working documents Table -->
+<table>
+<tr><td colspan="2">Working</td></tr>
+<!-- BEGIN working_docs_list -->
+<tr>
+<td width="16"><img src="{status_image}"/></td>
+<td ><a href="{doc_link}">{doc_name} [{doc_reference}] v{version}</a></td>
+</tr>
+<!-- END working_docs_list -->
+</table>
+<!-- End Working documents Table -->
+</td>
+<td valign="top" width="50%">
+<!-- Pending documents Table -->
+<table>
+<tr><td colspan="2">Pending</td></tr>
+<!-- BEGIN pending_docs_list -->
+<tr>
+<td width="16"><img src="{status_image}"/></td>
+<td ><a href="{doc_link}">{doc_name} [{doc_reference}] v{version}</a></td>
+</tr>
+<!-- END pending_docs_list -->
+</table>
+<!-- End Pending documents Table -->
+<!-- Alert documents Table -->
+<table>
+<tr><td colspan="2">Alerts</td></tr>
+<!-- BEGIN alert_docs_list -->
+<tr>
+<td width="16"><img src="{status_image}"/></td>
+<td ><a href="{doc_link}">{doc_name} [{doc_reference}] v{version}</a></td>
+</tr>
+<!-- END alert_docs_list -->
+</table>
+<!-- End Alert documents Table -->
+<!-- Rejected documents table -->
+<table>
+<tr><td colspan="2">Rejected</td></tr>
+<!-- BEGIN rejected_docs_list -->
+<tr>
+<td width="16"><img src="{status_image}"/></td>
+<td ><a href="{doc_link}">{doc_name} [{doc_reference}] v{version}</a></td>
+</tr>
+<!-- END rejected_docs_list -->
+</table>
+<!-- End Rejected documents table -->
+</td>
+</tr>
+</table>
+<!-- END ged info -->
+</div></td>
\ No newline at end of file




reply via email to

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