Documentation/Index/ProcessEditDialogBeforeOpen: ProcessEditDialogBeforeOpen.inc

Plik ProcessEditDialogBeforeOpen.inc, 1.7 KB (dodany przez TS, 6 years temu)
xx
Line 
1<?php
2
3/**
4 * ProcessEditDialogBeforeOpen
5 *
6 * @author Tomasz Świenty
7 * @version 0.1
8 * @copyright Copyright (c) BetaSoft
9 */
10final class ProcessEditDialogBeforeOpen {
11
12
13    /**
14     * @param $args
15     * @return bool
16     * @throws RequestAbortException
17     */
18    public static function init($args) {
19
20        $action = NULL;
21        if (!isset($args['action'])) {
22            return FALSE;
23        }
24
25        $action = $args['action'];
26        if ($action !== 'beforeOpen') {
27            return TRUE;
28        }
29
30        if (!is_object($args['container']) OR !is_a($args['container'], 'ProcessEditDialog')) {
31            return TRUE;
32        }
33
34        // jeśli nowa sprawa wtedy mamy clsnam i keyval
35        // jeśli edycja wtedy mamy prc_id i cały zestaw danych sprawy w tym dos_id
36        // proszę sprawdzić debugiem
37        $params = JSON::toArray(isset($args['params']) ? $args['params'] : []);
38        if (!$params) {
39            return TRUE;
40        }
41
42        // EDYCJA
43        if (isset($params['prc_id']) AND filter_var($params['prc_id'], FILTER_VALIDATE_INT) AND isset($params['dos_id']) AND ($params['dos_id'] == 20)) {
44            // własny kod js dla przykładu
45            // JScript::add('App.openDialogByCls(\'CONTACT\', 10)');
46            throw new RequestAbortException();
47        }
48
49        // dla nowej sprawy clsnam = DOSS a keyval to dsexid
50        if (!isset($params['prc_id']) AND isset($params['clsnam']) AND isset($params['keyval'])) {
51            // jeśli spełnione warunku otwarcia własnej kartoteki to kod js plus throw new RequestAbortException();
52        }
53
54    }
55
56}
57
58if (isset($args)) {
59    ProcessEditDialogBeforeOpen::init($args);
60}