1 | <?php |
---|
2 | require_once(MOD_PATH.'ADocuments/plugins/buttons/AbstractCustomStateButton.inc'); |
---|
3 | require_once(LIB_PATH.'widgets/DialogForm.inc'); |
---|
4 | |
---|
5 | /** |
---|
6 | * SageStateButton |
---|
7 | * |
---|
8 | * @author Tomasz Świenty |
---|
9 | * @version 0.1 |
---|
10 | * @copyright Copyright (c) eDokumenty |
---|
11 | */ |
---|
12 | final class SageStateButton extends AbstractCustomStateButton { |
---|
13 | |
---|
14 | |
---|
15 | |
---|
16 | protected static $cMethods = [ |
---|
17 | 'saveAndSend' |
---|
18 | ]; |
---|
19 | |
---|
20 | |
---|
21 | |
---|
22 | public function getCallableMethods() { |
---|
23 | |
---|
24 | return self::$cMethods; |
---|
25 | |
---|
26 | } |
---|
27 | |
---|
28 | |
---|
29 | |
---|
30 | public static function saveAndSend($params = []) { |
---|
31 | |
---|
32 | $pData = JSON::toArray($params); |
---|
33 | $state = isset($pData['state']) ? $pData['state'] : FALSE; |
---|
34 | $parent = isset($pData['parent']) ? $pData['parent'] : FALSE; |
---|
35 | $dialog = isset($pData['dialog']) ? $pData['dialog'] : FALSE; |
---|
36 | $afterSubmit = isset($pData['afterSubmit']) ? $pData['afterSubmit'] : FALSE; |
---|
37 | |
---|
38 | $pData['state'] = 'fireStage'; |
---|
39 | |
---|
40 | DialogForm::ssetSData($dialog, [__CLASS__ => $pData]); |
---|
41 | |
---|
42 | JScript::add('(function() {'.$afterSubmit.'})()'); |
---|
43 | |
---|
44 | } |
---|
45 | |
---|
46 | |
---|
47 | |
---|
48 | public static function getSaveAndSendButton($data = [], $toHtml = TRUE) { |
---|
49 | |
---|
50 | $HWND = Application::registerClass(Application::makeRelativePath(__FILE__), __CLASS__); |
---|
51 | |
---|
52 | $pData = JSON::toArray($data); |
---|
53 | $state = isset($pData['state']) ? $pData['state'] : FALSE; |
---|
54 | $parent = isset($pData['parent']) ? $pData['parent'] : FALSE; |
---|
55 | $dialog = isset($pData['dialog']) ? $pData['dialog'] : FALSE; |
---|
56 | $afterSubmit = isset($pData['afterSubmit']) ? $pData['afterSubmit'] : FALSE; |
---|
57 | |
---|
58 | $saveAndSendButton = new StateButton($parent.'saveAndSendButton'); |
---|
59 | $saveAndSendButton->mainCaption = Translator::translate('Zapisz i wyślij'); |
---|
60 | $saveAndSendButton->width = '180px'; |
---|
61 | $saveAndSendButton->height = '100px'; |
---|
62 | $saveAndSendButton->clearMoreMenu(); |
---|
63 | |
---|
64 | if ($state == 'fireStage') { |
---|
65 | $state = 'saveAndSend'; |
---|
66 | DialogForm::ssetSData($dialog, [__CLASS__ => NULL]); |
---|
67 | } |
---|
68 | |
---|
69 | if ($state == 'saveAndSend') { |
---|
70 | $saveAndSendStates = [ |
---|
71 | 'sendFile' => [ |
---|
72 | 'icon' => 'save-as', |
---|
73 | 'caption' => Translator::translate('Zapisz i wyślij'), |
---|
74 | 'title' => Translator::translate('Kliknij aby zapisać dokument i wysłać'), |
---|
75 | 'onClick' => '$A1(\''.$HWND.'\', \'\', '.(int)array_search('saveAndSend', self::$cMethods).', ({state:\'saveAndSend\', parent:\''.$parent.'\', dialog:\''.$dialog.'\', afterSubmit:\''.addslashes($afterSubmit).'\'}).toJSONString(), \'\')' |
---|
76 | ] |
---|
77 | ]; |
---|
78 | |
---|
79 | $saveAndSendButton->setStates($saveAndSendStates); |
---|
80 | $saveAndSendButton->selectState('sendFile'); |
---|
81 | } |
---|
82 | |
---|
83 | return $saveAndSendButton; |
---|
84 | |
---|
85 | } |
---|
86 | |
---|
87 | |
---|
88 | |
---|
89 | public static function plug($parent, $data) { |
---|
90 | |
---|
91 | $dialog = $parent->getDialog(); |
---|
92 | |
---|
93 | $sData = DialogForm::sgetSData($dialog->name); |
---|
94 | |
---|
95 | $state = 'saveAndSend'; |
---|
96 | if (isset($sData[__CLASS__]['state'])) { |
---|
97 | $state = $sData[__CLASS__]['state']; |
---|
98 | } |
---|
99 | |
---|
100 | if ($state == 'fireStage') { |
---|
101 | $ptstid = 30; // OKREŚŁ ID ETAPU DO WYKONANIA |
---|
102 | $dialog->on('save', |
---|
103 | function($dialogObject, $documentBean) use ($ptstid) { |
---|
104 | JScript::addAfter('App.openDialogByCls(\'P_WORKFLOW\', null, ({clsnam:\'DOCUMENT\', keyval:\''.$documentBean->get('doc_id').'\', ptstid:\''.$ptstid.'\'}).toJSONString())'); |
---|
105 | } |
---|
106 | ); |
---|
107 | } |
---|
108 | |
---|
109 | $params = ['state' => $state, 'parent' => $parent->name, 'dialog' => $dialog->name, 'afterSubmit' => $dialog->onbSaveClick]; |
---|
110 | |
---|
111 | $saveAndSendButton = self::getSaveAndSendButton($params, FALSE); |
---|
112 | |
---|
113 | return $saveAndSendButton; |
---|
114 | |
---|
115 | } |
---|
116 | |
---|
117 | } |
---|
118 | |
---|
119 | ?> |
---|