source: sandbox/workflow/branches/609/inc/smarty/wf_plugins/function.wf_redir_menu.php @ 2233

Revision 2233, 4.0 KB checked in by pedroerp, 14 years ago (diff)

Ticket #609 - Migração das classes do módulo workflow para a nova factory.

  • Property svn:executable set to *
Line 
1<?php
2/**
3 * Este plugin Smarty irá gerar uma lista com as atividades start e standalone,
4 * do processo em execução, em formato de caixa de seleção. Útil para colocar no
5 * formulário de uma atividade interativa, para que os usuários tenham opção de
6 * mover para outras atividades, sem ter que retornar para a interface de usuário, aba "processos".
7 * @package Smarty
8 * @subpackage wf_plugins
9 * @author Mauricio Luiz Viani
10 * @param array $params Array de parametros
11 * - label : (opcional) uma string que será usada como cabeçalho de campo.
12 * @param object &$smarty Instância do objeto smarty em uso
13 * @return string codigo que insere o selectbox
14 * @access public
15 */
16function smarty_function_wf_redir_menu($params, &$smarty)
17{
18        $defaultValues = array(
19                'label' => '');
20        $extractParams = array(
21                'label');
22
23        /* verifica se todos os parâmetros obrigatórios foram passados */
24        foreach ($defaultValues as $key => $value)
25                if (!isset($params[$key]))
26                        $params[$key] = $value;
27
28        /* atribui valores default para os parâmetros não passados */
29        foreach ($extractParams as $extract)
30                $$extract = $params[$extract];
31
32    $base_url = $GLOBALS['phpgw_info']['server']['webserver_url'];
33        $user_activities = $GLOBALS['workflow']['wf_user_activities']['data'];
34        $pid = $GLOBALS['workflow']['wf_process_id'];
35
36        $select_tag = "<select name=\"redir_menu\" id=\"redir_menu\" onchange=\"redir_link();\" \"print_result=false;\">";
37        $select_tag .= "<option value=\"0\">------- Atividades -------</option>";
38        $user_activities = $GLOBALS['workflow']['wf_user_activities']['data'];
39        $pid = $GLOBALS['workflow']['wf_process_id'];
40
41        foreach($user_activities as $key => $line) {
42                if ($line['wf_p_id'] === $pid) {
43                        if ($line['wf_menu_path'] != '!')
44                                $select_tag .= "<option value=\"" . $line['wf_activity_id'] . "\">". $line['wf_name'] . "</option>";
45                }
46        }
47
48        $select_tag .= "<option value=\"0\">------- Interfaces -------</option>";
49        $select_tag .= "<option value=\"ce\">Tarefas Pendentes</option>";
50        $select_tag .= "<option value=\"pr\">Processos</option>";
51        $select_tag .= "<option value=\"ac\">Acompanhamento</option>";
52        $select_tag .= "<option value=\"ap\">Aplicações Externas</option>";
53        $select_tag .= "<option value=\"og\">Organograma</option>";
54
55        $user_is_admin = Factory::getInstance('workflow_acl')->checkWorkflowAdmin($GLOBALS['phpgw_info']['user']['account_id']);
56        $phpgw =& Factory::getForeignInstance('phpgwapi','phpgw');
57        if ($user_is_admin || ($phpgw->acl->check('admin_workflow',1,'workflow'))) {
58                $select_tag .= "<option value=\"ad\">Administração</option>";
59        }
60        if ($user_is_admin ||  ($phpgw->acl->check('monitor_workflow',1,'workflow'))) {
61                $select_tag .= "<option value=\"mo\">Monitoramento</option>";
62        }
63
64        $select_tag .= "</select>";
65
66        $output = '<table border="0" align="right"><tr><td>' . $label . '</td><td>';
67        $output .= $select_tag . "</td></tr></table>";
68        $output .= <<<EOF
69        <script language="javascript1.2">
70                function redir_link() {
71                        elem = document.getElementById("redir_menu");
72                        activity = elem.options[elem.options.selectedIndex].value;
73                        switch (activity){
74                                case '0' :
75                                break;
76                                case 'ce' :
77                                        location.href = "$base_url/workflow/index.php?start_tab=0";
78                                break;
79                                case 'pr' :
80                                location.href = "$base_url/workflow/index.php?start_tab=1";
81                                break;
82                                case 'ac' :
83                                location.href = "$base_url/workflow/index.php?start_tab=2";
84                                break;
85                                case 'ap' :
86                                location.href = "$base_url/workflow/index.php?start_tab=3";
87                                break;
88                                case 'og' :
89                                location.href = "$base_url/workflow/index.php?start_tab=4";
90                                break;
91                        case 'ad' :
92                                location.href = "$base_url/index.php?menuaction=workflow.ui_adminprocesses.form";
93                                break;
94                                case 'mo' :
95                                location.href = "$base_url/index.php?menuaction=workflow.ui_monitors.form";
96                                break;
97                            default :
98                                        location.href = "$base_url/index.php?menuaction=workflow.run_activity.go&activity_id=" + activity;
99                        }
100                }
101        </script>
102EOF;
103        return $output;
104}
105?>
Note: See TracBrowser for help on using the repository browser.