[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/workflow/inc/ -> class.ui_monitorinstances.inc.php (source)

   1  <?php
   2  
   3      require_once(dirname(__FILE__) . SEP . 'class.monitor.inc.php');
   4  
   5      class ui_monitorinstances extends monitor
   6      {
   7  
   8          var $public_functions = array(
   9              'form'    => true,
  10          );
  11          
  12          //new filters forthis monitor child
  13          var $filter_status;
  14          var $filter_act_status;
  15          var $filter_user;
  16          
  17          var $extra;
  18          var $extra_params;
  19  
  20  		function ui_monitorinstances()
  21          {
  22              parent::monitor('monitor_instances');
  23          }
  24  
  25  		function form()
  26          {
  27              //override default value from monitor
  28              $this->order            = get_var('order', 'any', 'wf_instance_id');
  29              $this->sort_mode                = $this->order . '__' . $this->sort;
  30              
  31              $this->filter_status        = get_var('filter_status', 'any', '');
  32              $this->filter_act_status    = get_var('filter_act_status', 'any', '');
  33              $this->filter_user        = get_var('filter_user', 'any', '');
  34  
  35              $this->show_monitor_tabs($this->class_name);
  36              //echo "order: <pre>";print_r($this->order);echo "</pre>";
  37  
  38              $this->link_data['search_str'] = $this->search_str;
  39              if ($this->filter_status) 
  40              {
  41                  $this->wheres[] = "gi.`wf_status`='" . $this->filter_status . "'"; 
  42                  $this->link_data['filter_status'] = $this->filter_status;
  43              }
  44              if ($this->filter_process) {
  45                  $this->wheres[] = "gp.wf_p_id='" .$this->filter_process. "'"; 
  46                  $this->link_data['filter_process'] = $this->filter_process;
  47              }        
  48              if ($this->filter_activity) {
  49                  $this->wheres[] = "ga.wf_activity_id='" .$this->filter_activity. "'"; 
  50                  $this->link_data['filter_activity'] = $this->filter_activity;
  51              }
  52              if ($this->filter_act_status)
  53              {
  54                  $this->wheres[] = "gia.`wf_status`='" . $this->filter_act_status . "'"; 
  55                  $this->link_data['filter_act_status'] = $this->filter_act_status;
  56              }
  57  
  58              if( count($this->wheres) > 0 ) 
  59              {
  60                              $this->where = implode(' and ', $this->wheres);
  61              }
  62              else 
  63              {
  64                  $this->where = '';
  65              }
  66  
  67              if( count($this->link_data) == 0 ) 
  68              {
  69                  $this->link_data = '';
  70              }
  71  
  72              //echo "where: <pre>";print_r($this->where);echo "</pre>";
  73              //echo "link_data: <pre>";print_r($this->link_data_params);echo "</pre>";
  74  
  75              $all_statuses    = array('aborted', 'active', 'completed', 'exception');
  76              $users        =& $this->process_monitor->monitor_list_users();
  77              $instances    =& $this->process_monitor->monitor_list_instances($this->start, $this->offset, $this->sort_mode, $this->search_str, $this->where);
  78  
  79              $this->show_filter_process();
  80              if ($this->filter_process) 
  81              {  
  82                  $this->show_filter_unique_activities("ga.wf_p_id=".$this->filter_process);
  83              }
  84              else {
  85                  $this->show_filter_unique_activities();
  86              }
  87              $this->show_filter_status($all_statuses, $this->filter_status);
  88              $this->show_filter_act_status($this->filter_act_status);
  89              $this->show_filter_user($users, $this->filter_user);
  90              $this->show_instances_table($instances['data'], $instances['cant']);
  91  
  92              $this->fill_general_variables();
  93              $this->finish();
  94          }
  95  
  96  		function show_instances_table(&$instances_data, $total_number)
  97          {
  98              //warning header names are header_[name or alias of the column in the query without a dot]
  99              //this is necessary for sorting
 100              $header_array = array(
 101                  'wf_instance_id'    => lang('Id'),
 102                  'wf_instance_name'    => lang('Name'),
 103                  'wf_procname'        => lang('Process'),
 104                  'wf_activity_name'    => lang('Activity'),
 105                  'wf_status'        => lang('Inst. Status'),
 106                  'wf_act_status'        => lang('Act. Status'),
 107                  'wf_owner'        => lang('Owner'),
 108                  'wf_user'        => lang('User'),
 109              );
 110              
 111              $this->fill_nextmatchs($header_array,$total_number);
 112  
 113              $this->t->set_block('monitor_instances', 'block_inst_table', 'inst_table');
 114  
 115              if (!$instances_data) {
 116                  $this->t->set_var('inst_table', '<tr><td colspan="4" align="center">'. lang('There are no instances available') .'</td></tr>');
 117              }
 118              else {
 119                  foreach ($instances_data as $instance)
 120                  {
 121                      $this->t->set_var(array(
 122                          'inst_id_href'        => $GLOBALS['egw']->link('/index.php', 'menuaction=workflow.ui_admininstance.form&iid='. $instance['wf_instance_id']),
 123                          'inst_id'        => $instance['wf_instance_id'],
 124                          'instance_name'        => $instance['wf_instance_name'],
 125                          'activity_name'        => $instance['wf_activity_name'],
 126                          'inst_status'        => $instance['wf_status'],
 127                          'inst_owner'        => $GLOBALS['egw']->common->grab_owner_name($instance['wf_owner']), 
 128                          'inst_user'        => $GLOBALS['egw']->common->grab_owner_name($instance['wf_user']), 
 129                          'inst_procname'        => $instance['wf_procname'],
 130                          'inst_version'        => $instance['wf_version'],
 131                          'class_alternate_row'    => $this->nextmatchs->alternate_row_color($tr_color, true),
 132                          'inst_act_status'    =>$instance['wf_act_status']
 133                      ));
 134                      $this->t->parse('inst_table', 'block_inst_table', true);
 135                  }
 136              }
 137          }
 138  
 139  		function show_filter_status($all_statuses, $filter_status)
 140          {
 141              $this->t->set_var('filter_status_selected_all', (!$filter_status)? 'selected="selected"' : '');
 142              $this->t->set_block('monitor_instances', 'block_filter_status', 'filter_status');
 143              foreach ($all_statuses as $status)
 144              {
 145                  $this->t->set_var(array(
 146                      'filter_status_selected'    => ($status == $filter_status)? 'selected="selected"' : '',
 147                      'filter_status_value'        => $status,
 148                      'filter_status_name'        => lang($status),
 149                  ));
 150                  $this->t->parse('filter_status', 'block_filter_status', true);
 151              }
 152          }
 153  
 154  		function show_filter_act_status($filter_act_status)
 155          {
 156              $this->t->set_var(array(
 157                  'filter_act_status_selected_all'    => (!$filter_act_status)? 'selected="selected"' : '',
 158                  'filter_act_status_running'            => ($filter_act_status == 'running')? 'selected="selected"' : '',
 159                  'filter_act_status_completed'        => ($filter_act_status == 'completed')? 'selected="selected"' : ''
 160              ));
 161          }
 162  
 163  		function show_filter_user($users, $filter_user)
 164          {
 165              $this->t->set_var('filter_user_selected_all', (!$this->filter_user)? 'selected="selected"' : '');
 166              $this->t->set_block('monitor_instances', 'block_filter_user', 'filter_user');
 167              foreach ($users as $user)
 168              {
 169                  $this->t->set_var(array(
 170                      'filter_user_selected'    => ($user == $filter_user)? 'selected="selected"' : '',
 171                      'filter_user_value'        => $user,
 172                      'filter_user_name'        => $GLOBALS['egw']->common->grab_owner_name($user)
 173                  ));
 174                  $this->t->parse('filter_user', 'block_filter_user', true);
 175              }
 176          }
 177      }
 178  ?>


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7