source: sandbox/workflow/branches/993/inc/smarty/wf_plugins/function.wf_redir_menu.php @ 3172

Revision 3172, 3.9 KB checked in by asaikawa, 14 years ago (diff)

Ticket #993 - Corrigida a utilizacao de algumas constantes e substituidas outras pela settings

  • 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 = EGW_BASE_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(Settings::get('expresso', 'user', 'account_id'));
56        if ($user_is_admin || ($GLOBALS['phpgw']->acl->check('admin_workflow',1,'workflow'))) {
57                $select_tag .= "<option value=\"ad\">Administração</option>";
58        }
59        if ($user_is_admin ||  ($GLOBALS['phpgw']->acl->check('monitor_workflow',1,'workflow'))) {
60                $select_tag .= "<option value=\"mo\">Monitoramento</option>";
61        }
62
63        $select_tag .= "</select>";
64
65        $output = '<table border="0" align="right"><tr><td>' . $label . '</td><td>';
66        $output .= $select_tag . "</td></tr></table>";
67        $output .= <<<EOF
68        <script language="javascript1.2">
69                function redir_link() {
70                        elem = document.getElementById("redir_menu");
71                        activity = elem.options[elem.options.selectedIndex].value;
72                        switch (activity){
73                                case '0' :
74                                break;
75                                case 'ce' :
76                                        location.href = "$base_url/workflow/index.php?start_tab=0";
77                                break;
78                                case 'pr' :
79                                location.href = "$base_url/workflow/index.php?start_tab=1";
80                                break;
81                                case 'ac' :
82                                location.href = "$base_url/workflow/index.php?start_tab=2";
83                                break;
84                                case 'ap' :
85                                location.href = "$base_url/workflow/index.php?start_tab=3";
86                                break;
87                                case 'og' :
88                                location.href = "$base_url/workflow/index.php?start_tab=4";
89                                break;
90                        case 'ad' :
91                                location.href = "$base_url/index.php?menuaction=workflow.ui_adminprocesses.form";
92                                break;
93                                case 'mo' :
94                                location.href = "$base_url/index.php?menuaction=workflow.ui_monitors.form";
95                                break;
96                            default :
97                                        location.href = "$base_url/index.php?menuaction=workflow.run_activity.go&activity_id=" + activity;
98                        }
99                }
100        </script>
101EOF;
102        return $output;
103}
104?>
Note: See TracBrowser for help on using the repository browser.