ru.coon 3.0.2 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -2
- package/package.json +1 -1
- package/src/app/viewPort/CenterView.js +0 -6
- package/src/app/viewPort/CenterView.scss +22 -22
- package/src/app/viewPort/Routing.d2 +2 -2
- package/src/report/component/reportpanel/NorthPanel.js +9 -7
- package/src/report/plugin/grid/OpenCustomPanelButtonPlugin.js +10 -17
- package/src/uielement/UiCPEntity.js +0 -0
- package/src/uielement/command/GetUIElementCommand.js +1 -0
- package/src/uielement/component/UiCPWrapper.js +43 -4
- package/src/uielement/component/UiCustomController.js +0 -0
- package/src/uielement/component/UiCustomPanel.js +1 -0
- package/src/uielement/plugin/UnifiedButtonToolbarPlugin.js +9 -5
- package/src/uielement/plugin/configPanel/ExecuteFunctionPluginConfigPanelFormEditor.js +36 -4
- package/src/uielement/plugin/configPanel/FireEventPluginConfigPanelFormEditor.js +36 -5
- package/src/uielement/plugin/configPanel/MethodChainPluginConfigPanelFormEditor.js +36 -4
- package/src/uielement/plugin/configPanel/OpenPanelPluginConfigPanelFormEditor.js +38 -2
- package/src/uielement/plugin/configPanel/PrintPdfPluginConfigPanelFormEditor.js +35 -2
- package/src/uielement/plugin/configPanel/UnifiedButtonToolbarPluginConfigPanelFormEditor.js +17 -3
- package/src/version.js +1 -1
- package/src/app/viewPort/TabHistory.js +0 -81
- package/src/uielement/plugin/configPanel/UiCPPluginFormPanel.js +0 -54
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
# Version 3.0.
|
|
2
|
-
|
|
1
|
+
# Version 3.0.3, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/db7fcf17875ed26df5b2204f1a55ebdc7245f738)
|
|
2
|
+
# Version 3.0.2, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/fd1cfdb7d1b73853fc8a21a5a67435b66402d6cd)
|
|
3
|
+
* ## Features
|
|
4
|
+
* <span style='color:green'>feat: Доработано описание UICPWrapper, исправлена ошибка закрытия окна в UnifiedButtonToolbarPlugin</span> ([c08ceb], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c08cebfa1e2814d2b4d0b6157be773b8dcc7a525))
|
|
5
|
+
|
|
6
|
+
* ## Fixes
|
|
7
|
+
* <span style='color:red'> HT-12066 scroller display only for CenterViewTabBar</span> ([2d8a87], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/2d8a8782c9b28265b3f2c3f455de4a7ea8629ed9))
|
|
8
|
+
* <span style='color:red'> HT-12083 NorthPanel search button handler bind</span> ([292cec], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/292cecb1463110c53151814f0565d56916945d99))
|
|
9
|
+
|
|
10
|
+
* add title method to UiCustomPanel controller ([19a3a7], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/19a3a71ead9faef63e2dde5d4809170c1d1d9c3d))
|
|
3
11
|
* update: CHANGELOG.md ([7f363d], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7f363d646b1974c0ad434318269172a985972f4f))
|
|
4
12
|
|
|
5
13
|
# Version 3.0.1, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/eae268432af51c758229ca68dd19980528a2cc98)
|
package/package.json
CHANGED
|
@@ -122,12 +122,6 @@ Ext.define('Coon.app.viewPort.CenterView', {
|
|
|
122
122
|
}
|
|
123
123
|
this.add(component);
|
|
124
124
|
|
|
125
|
-
component.on('titlechange', function(view, title) {
|
|
126
|
-
if (view.tab) {
|
|
127
|
-
view.tab.setText(title);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
|
|
131
125
|
component.on('destroy', function() {
|
|
132
126
|
const activeTab = this.getActiveTab();
|
|
133
127
|
if (!activeTab || !activeTab.menuItem) {
|
|
@@ -109,6 +109,28 @@
|
|
|
109
109
|
.x-tab-focus {
|
|
110
110
|
background-color: #ECECEC;
|
|
111
111
|
}
|
|
112
|
+
.x-box-scroller {
|
|
113
|
+
display: none !important;
|
|
114
|
+
font: 13px / 26px Material Icons, "Font Awesome 5 Free";
|
|
115
|
+
height: 28px;
|
|
116
|
+
&.x-box-scroller-left {
|
|
117
|
+
border-right: solid 1px #dedede;
|
|
118
|
+
}
|
|
119
|
+
&.x-box-scroller-right {
|
|
120
|
+
border-left: solid 1px #dedede;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
.x-box-scroller-body-horizontal {
|
|
124
|
+
margin: 0;
|
|
125
|
+
}
|
|
126
|
+
&.display-sliders {
|
|
127
|
+
.x-box-scroller {
|
|
128
|
+
display: block !important;
|
|
129
|
+
}
|
|
130
|
+
.x-box-scroller-body-horizontal {
|
|
131
|
+
margin-left: 24px;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
112
134
|
}
|
|
113
135
|
.title-block:hover{
|
|
114
136
|
.add-to-favorite:not(.is-favorite-item):hover{
|
|
@@ -125,27 +147,5 @@
|
|
|
125
147
|
color: #ff9800 !important;
|
|
126
148
|
}
|
|
127
149
|
}
|
|
128
|
-
.x-box-scroller {
|
|
129
|
-
display: none !important;
|
|
130
|
-
font: 13px / 26px Material Icons, "Font Awesome 5 Free";
|
|
131
|
-
height: 28px;
|
|
132
|
-
&.x-box-scroller-left {
|
|
133
|
-
border-right: solid 1px #dedede;
|
|
134
|
-
}
|
|
135
|
-
&.x-box-scroller-right {
|
|
136
|
-
border-left: solid 1px #dedede;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
.x-box-scroller-body-horizontal {
|
|
140
|
-
margin: 0;
|
|
141
|
-
}
|
|
142
|
-
.display-sliders {
|
|
143
|
-
.x-box-scroller {
|
|
144
|
-
display: block !important;
|
|
145
|
-
}
|
|
146
|
-
.x-box-scroller-body-horizontal {
|
|
147
|
-
margin-left: 24px;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
150
|
}
|
|
151
151
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
changeUrl->Router.routes./\#r/ReportId{label: загрузить репорт в dev-режиме}
|
|
2
|
-
changeUrl->Router.routes./\#p/CustomPanelId
|
|
3
|
-
changeUrl->Router.routes./\#UiElementCd
|
|
2
|
+
changeUrl->Router.routes./\#p/CustomPanelId :загрузить кастомную панель в dev-режиме
|
|
3
|
+
changeUrl->Router.routes./\#UiElementCd :начитать uiElementCd для загрузки компонента пункта меню
|
|
4
4
|
|
|
5
5
|
Router: {
|
|
6
6
|
routes: {
|
|
@@ -137,14 +137,16 @@ Ext.define('Coon.report.component.report.NorthPanel', {
|
|
|
137
137
|
}
|
|
138
138
|
];
|
|
139
139
|
|
|
140
|
-
this.reportPanel = this.up('ReportPanel,ReportFilterForm');
|
|
141
|
-
this.searchButton.handler = this.reportPanel ? Ext.bind(this.reportPanel.filterHandler, this.reportPanel) : Ext.emptyFn;
|
|
142
|
-
this.clearButton.handler = Ext.bind(function() {
|
|
143
|
-
this.clearFilter();
|
|
144
|
-
this.clearData();
|
|
145
|
-
}, this.reportPanel);
|
|
146
|
-
|
|
147
140
|
this.callParent();
|
|
141
|
+
|
|
142
|
+
this.on('afterrender', function() {
|
|
143
|
+
this.reportPanel = this.up('ReportPanel,ReportFilterForm');
|
|
144
|
+
this.searchButton.handler = this.reportPanel ? Ext.bind(this.reportPanel.filterHandler, this.reportPanel) : Ext.emptyFn;
|
|
145
|
+
this.clearButton.handler = Ext.bind(function() {
|
|
146
|
+
this.clearFilter();
|
|
147
|
+
this.clearData();
|
|
148
|
+
}, this.reportPanel);
|
|
149
|
+
}, this);
|
|
148
150
|
},
|
|
149
151
|
|
|
150
152
|
getFields() {
|
|
@@ -150,28 +150,20 @@ Ext.define('Coon.report.plugin.grid.OpenCustomPanelButtonPlugin', {
|
|
|
150
150
|
},
|
|
151
151
|
|
|
152
152
|
buildContext(properties, params) {
|
|
153
|
-
const ctx = {
|
|
154
|
-
record: this.getCmp().selection && this.getCmp().selection.getData(),
|
|
155
|
-
records: typeof this.getCmp().getSelection === 'function' && this.getCmp().getSelection().map((el) => el.getData()),
|
|
156
|
-
};
|
|
157
153
|
const parent = this.getCmp().up('[componentContextId]');
|
|
158
154
|
if (parent && parent.componentContextId) {
|
|
159
|
-
const uniqueContext = Object.assign(
|
|
160
|
-
{},
|
|
161
|
-
params,
|
|
162
|
-
{
|
|
163
|
-
uiElementCd: properties.uiElementCd,
|
|
164
|
-
xtype: properties.xtype,
|
|
165
|
-
}
|
|
166
|
-
);
|
|
167
|
-
|
|
168
155
|
properties.ctxMgr = Coon.util.ContextManager;
|
|
169
156
|
properties.componentContextId = properties.ctxMgr.createContext(
|
|
170
157
|
parent.componentContextId,
|
|
171
|
-
Object.assign(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
158
|
+
Object.assign(
|
|
159
|
+
{},
|
|
160
|
+
params,
|
|
161
|
+
{
|
|
162
|
+
uiElementCd: properties.uiElementCd,
|
|
163
|
+
xtype: properties.xtype,
|
|
164
|
+
}
|
|
165
|
+
));
|
|
166
|
+
}
|
|
175
167
|
},
|
|
176
168
|
|
|
177
169
|
configureCustomPanel(params) {
|
|
@@ -248,6 +240,7 @@ Ext.define('Coon.report.plugin.grid.OpenCustomPanelButtonPlugin', {
|
|
|
248
240
|
|
|
249
241
|
this.buildContext(properties, params);
|
|
250
242
|
const panel = Ext.create(properties);
|
|
243
|
+
Coon.log.debug('OCPB.openPanel', xtype, properties.uiElementCd, {properties, params, panel});
|
|
251
244
|
let parentWidget = panel;
|
|
252
245
|
|
|
253
246
|
Coon.eventBus.emit(
|
|
File without changes
|
|
@@ -24,6 +24,7 @@ Ext.define('Coon.uielement.command.GetUIElementCommand', {
|
|
|
24
24
|
}
|
|
25
25
|
props.uiElementCd = this.uiElementCd;
|
|
26
26
|
props.accessDecision = data.accessDecision;
|
|
27
|
+
Coon.log.debug('GetUIElementCommand.props', props);
|
|
27
28
|
data.propertyData = JSON5.stringify(props);
|
|
28
29
|
} catch (ex) {
|
|
29
30
|
Coon.log.error('GetUIElementCommand.UiCustomPanel: invalid propertyData JSON5');
|
|
@@ -18,6 +18,26 @@
|
|
|
18
18
|
* вызов doInit также возможен на компоненте. Обращается к doInit вызываемой кастомной панели:
|
|
19
19
|
* const panel = this.lookup('testPanel);
|
|
20
20
|
* panel.doInit('1123fss');
|
|
21
|
+
*
|
|
22
|
+
* Варианты работы с viewModel:
|
|
23
|
+
* - viewModel в качестве родителя имеет viewModel панели, в которую она встроена, востанавливается иерархия (по умолчанию)
|
|
24
|
+
* - общая viewModel с панелью, в которую она встроена (inheritViewModel = true)
|
|
25
|
+
* - viewModel никак не связана с viewModel панели, в которую она встроена (parentViewModel = null || false)
|
|
26
|
+
* - в parentViewModel может быть указана сторонняя viewModel, которая будет являться родительской для viewModel встраеваемой панели
|
|
27
|
+
* (задать viewModel не родительской панели в качестве parentViewModel)
|
|
28
|
+
*
|
|
29
|
+
* События вызванные в панели могут отслеживаться UiCPWrapper, если задать их в конфигурации в customBubbleEvents:
|
|
30
|
+
* customBubbleEvent: [
|
|
31
|
+
* {
|
|
32
|
+
* sourceEventName - string (событие вызванное в панели)
|
|
33
|
+
* targetEventName - string (событие, которое будет вызвано при срабатывании события sourceEventName)
|
|
34
|
+
* targetComponent // 'reference' || '[itemId=item1]' || view - string || object (компонент куда будет передано событие)
|
|
35
|
+
* targetHandlerName - string (метод, который будет вызван при срабатывании события sourceEventName)
|
|
36
|
+
* }
|
|
37
|
+
* ]
|
|
38
|
+
*
|
|
39
|
+
* Если UiCPWrapper является элементом tabpanel, он будет отслеживать события активации и деактивации табы и передавать их в панель.
|
|
40
|
+
* Также UiCPWrapper отселживает событие dirtychange панели и вызывает его у себя, для отображения статуса несохраненных изменений в tabpanel.
|
|
21
41
|
*/
|
|
22
42
|
|
|
23
43
|
|
|
@@ -36,6 +56,10 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
36
56
|
layout: 'fit',
|
|
37
57
|
},
|
|
38
58
|
|
|
59
|
+
inheritViewModel: false,
|
|
60
|
+
parentViewModel: undefined,
|
|
61
|
+
customBubbleEvents: [],
|
|
62
|
+
|
|
39
63
|
initComponent: function() {
|
|
40
64
|
const parentCustomPanel = this.findParentByType('UiCustomPanel');
|
|
41
65
|
if (parentCustomPanel) {
|
|
@@ -68,13 +92,12 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
68
92
|
renderPanel: function(panelConfig) {
|
|
69
93
|
const config = Object.assign({}, panelConfig, this.initConfig);
|
|
70
94
|
config.inheritViewModel = this.inheritViewModel;
|
|
71
|
-
if (this.inheritViewModel) {
|
|
72
|
-
const parentViewModel = this.findParentByType('UiCustomPanel').getViewModel();
|
|
73
|
-
config.viewModel = parentViewModel;
|
|
74
|
-
}
|
|
75
95
|
config.isChildCP = true;
|
|
96
|
+
this.setViewModelConfig(config);
|
|
97
|
+
|
|
76
98
|
const panel = Ext.create('widget.UiCustomPanel', config);
|
|
77
99
|
this.uiPanel = panel;
|
|
100
|
+
|
|
78
101
|
panel.on('afterrender', function() {
|
|
79
102
|
this.autoLoad && this.panelDoInit(this.doInitParams);
|
|
80
103
|
const doInitPanel = panel.getController() && panel.getController().doInit;
|
|
@@ -83,6 +106,7 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
83
106
|
}
|
|
84
107
|
}, this);
|
|
85
108
|
this.add(panel);
|
|
109
|
+
|
|
86
110
|
if (Array.isArray(this.customBubbleEvents) && this.customBubbleEvents.length) {
|
|
87
111
|
this.setCustomBubbleEvents(panel);
|
|
88
112
|
}
|
|
@@ -97,6 +121,21 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
97
121
|
});
|
|
98
122
|
},
|
|
99
123
|
|
|
124
|
+
setViewModelConfig(config) {
|
|
125
|
+
config.viewModel = {};
|
|
126
|
+
if ([null, false].includes(this.parentViewModel)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const parentViewModel = (this.parentViewModel && this.parentViewModel.isViewModel) ?
|
|
130
|
+
this.parentViewModel :
|
|
131
|
+
this.up('UiCustomPanel').getViewModel();
|
|
132
|
+
if (this.inheritViewModel) {
|
|
133
|
+
config.viewModel = parentViewModel;
|
|
134
|
+
} else {
|
|
135
|
+
config.viewModel.parent = parentViewModel;
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
|
|
100
139
|
setCustomBubbleEvents(srcComponent) {
|
|
101
140
|
const parent = this.up(this.parentComponent || 'UiCustomPanel');
|
|
102
141
|
if (typeof parent.__processCustomBubbleEvents === 'function') {
|
|
File without changes
|
|
@@ -127,17 +127,21 @@ Ext.define('Coon.uielement.plugin.UnifiedButtonToolbarPlugin', {
|
|
|
127
127
|
setBeforeCloseListener(view) {
|
|
128
128
|
this.controller.callDialog = this.callDialog.bind(this);
|
|
129
129
|
view.on('afterrender', () => {
|
|
130
|
-
const
|
|
131
|
-
if (
|
|
130
|
+
const panelOwner = this.getPanelOwner();
|
|
131
|
+
if (panelOwner && this.checkChangesOnSave !== false) {
|
|
132
132
|
if (this.getCmp().isParentCP) {
|
|
133
|
-
|
|
133
|
+
panelOwner.on('beforeclose', this.onBeforeCloseWindowByParent, this);
|
|
134
134
|
} else {
|
|
135
|
-
|
|
135
|
+
panelOwner.on('beforeclose', this.onBeforeCloseWindow, this);
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
}, this);
|
|
139
139
|
},
|
|
140
140
|
|
|
141
|
+
getPanelOwner() {
|
|
142
|
+
return this.getCmp().up('WindowWrap') || this.getCmp();
|
|
143
|
+
},
|
|
144
|
+
|
|
141
145
|
/**
|
|
142
146
|
* Проверка наличия несохраненных изменений в дочерних панелях.
|
|
143
147
|
* Если они есть, выводится диалоговое окно с их перечнем.
|
|
@@ -304,7 +308,7 @@ Ext.define('Coon.uielement.plugin.UnifiedButtonToolbarPlugin', {
|
|
|
304
308
|
},
|
|
305
309
|
|
|
306
310
|
closeWindow() {
|
|
307
|
-
this.
|
|
311
|
+
this.getPanelOwner().close();
|
|
308
312
|
},
|
|
309
313
|
|
|
310
314
|
save(isWindowClose) {
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.ExecuteFunctionPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
3
|
-
|
|
4
|
-
requires: ['Coon.uielement.plugin.configPanel.UiCPPluginFormPanel'],
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
5
3
|
|
|
6
4
|
alias: 'widget.ExecuteFunctionPluginConfigPanelFormEditor',
|
|
7
5
|
description: 'Плагин позволяет выполнить написанную вами функцию (fnBody) после срабатывания определенного события (handler)',
|
|
@@ -11,7 +9,36 @@ Ext.define('Coon.uielement.plugin.configPanel.ExecuteFunctionPluginConfigPanelFo
|
|
|
11
9
|
handlerName: '',
|
|
12
10
|
},
|
|
13
11
|
},
|
|
12
|
+
layout: {
|
|
13
|
+
type: 'vbox',
|
|
14
|
+
align: 'stretch',
|
|
15
|
+
},
|
|
14
16
|
items: [
|
|
17
|
+
{
|
|
18
|
+
xtype: 'pluginDescriptionLabel',
|
|
19
|
+
bind: {
|
|
20
|
+
value: '{description}',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
xtype: 'comboBtnWrapper',
|
|
25
|
+
combobox: {
|
|
26
|
+
reference: 'handlerCombo',
|
|
27
|
+
xtype: 'BaseComboBox',
|
|
28
|
+
fieldLabel: 'handlerName',
|
|
29
|
+
labelWidth: 60,
|
|
30
|
+
flex: 1,
|
|
31
|
+
loadOnRender: false,
|
|
32
|
+
hideMode: 'offsets',
|
|
33
|
+
allowBlank: false,
|
|
34
|
+
store: 'codeHandlers',
|
|
35
|
+
bind: {
|
|
36
|
+
value: '{handlerName}',
|
|
37
|
+
},
|
|
38
|
+
valueField: 'id',
|
|
39
|
+
displayField: 'id',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
15
42
|
{
|
|
16
43
|
xtype: 'textfield',
|
|
17
44
|
fieldLabel: 'Параметры функции',
|
|
@@ -32,7 +59,12 @@ Ext.define('Coon.uielement.plugin.configPanel.ExecuteFunctionPluginConfigPanelFo
|
|
|
32
59
|
},
|
|
33
60
|
}
|
|
34
61
|
],
|
|
35
|
-
|
|
62
|
+
getData: function() {
|
|
63
|
+
return this.getConfiguration();
|
|
64
|
+
},
|
|
65
|
+
setData: function(data) {
|
|
66
|
+
data && this.doInit(data);
|
|
67
|
+
},
|
|
36
68
|
doInit: function(config) {
|
|
37
69
|
this.getViewModel().set('description', this.description);
|
|
38
70
|
for (const parameterName in config) {
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.FireEventPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
3
|
-
|
|
4
|
-
requires: ['Coon.uielement.plugin.configPanel.UiCPPluginFormPanel'],
|
|
5
|
-
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
6
3
|
alias: 'widget.FireEventPluginConfigPanelFormEditor',
|
|
7
4
|
description: 'Вызывает определенное событие панели',
|
|
8
5
|
viewModel: {
|
|
@@ -12,7 +9,36 @@ Ext.define('Coon.uielement.plugin.configPanel.FireEventPluginConfigPanelFormEdit
|
|
|
12
9
|
parameters: '[]',
|
|
13
10
|
},
|
|
14
11
|
},
|
|
12
|
+
layout: {
|
|
13
|
+
type: 'vbox',
|
|
14
|
+
align: 'stretch',
|
|
15
|
+
},
|
|
15
16
|
items: [
|
|
17
|
+
{
|
|
18
|
+
xtype: 'pluginDescriptionLabel',
|
|
19
|
+
bind: {
|
|
20
|
+
value: '{description}',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
xtype: 'comboBtnWrapper',
|
|
25
|
+
combobox: {
|
|
26
|
+
reference: 'handlerCombo',
|
|
27
|
+
xtype: 'BaseComboBox',
|
|
28
|
+
fieldLabel: 'handlerName',
|
|
29
|
+
labelWidth: 60,
|
|
30
|
+
flex: 1,
|
|
31
|
+
loadOnRender: false,
|
|
32
|
+
hideMode: 'offsets',
|
|
33
|
+
allowBlank: false,
|
|
34
|
+
store: 'codeHandlers',
|
|
35
|
+
bind: {
|
|
36
|
+
value: '{handlerName}',
|
|
37
|
+
},
|
|
38
|
+
valueField: 'id',
|
|
39
|
+
displayField: 'id',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
16
42
|
{
|
|
17
43
|
xtype: 'textfield',
|
|
18
44
|
fieldLabel: 'eventName',
|
|
@@ -31,7 +57,12 @@ Ext.define('Coon.uielement.plugin.configPanel.FireEventPluginConfigPanelFormEdit
|
|
|
31
57
|
},
|
|
32
58
|
}
|
|
33
59
|
],
|
|
34
|
-
|
|
60
|
+
getData: function() {
|
|
61
|
+
return this.getConfiguration();
|
|
62
|
+
},
|
|
63
|
+
setData: function(data) {
|
|
64
|
+
data && this.doInit(data);
|
|
65
|
+
},
|
|
35
66
|
doInit: function(config) {
|
|
36
67
|
this.getViewModel().set('description', this.description);
|
|
37
68
|
for (const parameterName in config) {
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.MethodChainPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
3
|
-
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
4
3
|
alias: 'widget.MethodChainPluginConfigPanelFormEditor',
|
|
5
4
|
requires: [
|
|
6
|
-
'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
|
|
7
5
|
'Coon.report.plugin.SearchByPropButton'
|
|
8
6
|
],
|
|
9
7
|
description: 'Запускает последовательно цепочку методов по срабатыванию handler',
|
|
@@ -30,7 +28,36 @@ Ext.define('Coon.uielement.plugin.configPanel.MethodChainPluginConfigPanelFormEd
|
|
|
30
28
|
},
|
|
31
29
|
},
|
|
32
30
|
},
|
|
31
|
+
layout: {
|
|
32
|
+
type: 'vbox',
|
|
33
|
+
align: 'stretch',
|
|
34
|
+
},
|
|
33
35
|
items: [
|
|
36
|
+
{
|
|
37
|
+
xtype: 'pluginDescriptionLabel',
|
|
38
|
+
bind: {
|
|
39
|
+
value: '{description}',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
xtype: 'comboBtnWrapper',
|
|
44
|
+
combobox: {
|
|
45
|
+
reference: 'handlerCombo',
|
|
46
|
+
xtype: 'BaseComboBox',
|
|
47
|
+
fieldLabel: 'handlerName',
|
|
48
|
+
labelWidth: 60,
|
|
49
|
+
flex: 1,
|
|
50
|
+
loadOnRender: false,
|
|
51
|
+
hideMode: 'offsets',
|
|
52
|
+
allowBlank: false,
|
|
53
|
+
store: 'codeHandlers',
|
|
54
|
+
bind: {
|
|
55
|
+
value: '{handlerName}',
|
|
56
|
+
},
|
|
57
|
+
valueField: 'id',
|
|
58
|
+
displayField: 'id',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
34
61
|
{
|
|
35
62
|
xtype: 'checkbox',
|
|
36
63
|
boxLabel: 'Прерывать выполнение последовательности если Обработчик возвращает false',
|
|
@@ -144,7 +171,12 @@ Ext.define('Coon.uielement.plugin.configPanel.MethodChainPluginConfigPanelFormEd
|
|
|
144
171
|
},
|
|
145
172
|
}
|
|
146
173
|
],
|
|
147
|
-
|
|
174
|
+
getData: function() {
|
|
175
|
+
return this.getConfiguration();
|
|
176
|
+
},
|
|
177
|
+
setData: function(data) {
|
|
178
|
+
data && this.doInit(data);
|
|
179
|
+
},
|
|
148
180
|
doInit: function(config) {
|
|
149
181
|
this.getViewModel().set('description', this.description);
|
|
150
182
|
if (config['handlerName']) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.OpenPanelPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
3
3
|
alias: 'widget.OpenPanelPluginConfigPanelFormEditor',
|
|
4
4
|
requires: [
|
|
5
|
-
'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
|
|
6
5
|
'Coon.report.plugin.SearchByPropButton'
|
|
7
6
|
],
|
|
8
7
|
|
|
@@ -19,13 +18,42 @@ Ext.define('Coon.uielement.plugin.configPanel.OpenPanelPluginConfigPanelFormEdit
|
|
|
19
18
|
activeAceTab: 'parameters',
|
|
20
19
|
},
|
|
21
20
|
},
|
|
21
|
+
layout: {
|
|
22
|
+
type: 'vbox',
|
|
23
|
+
align: 'stretch',
|
|
24
|
+
},
|
|
22
25
|
scrollable: 'y',
|
|
23
26
|
items: [
|
|
27
|
+
{
|
|
28
|
+
xtype: 'pluginDescriptionLabel',
|
|
29
|
+
bind: {
|
|
30
|
+
value: '{description}',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
24
33
|
{
|
|
25
34
|
xtype: 'textfield',
|
|
26
35
|
fieldLabel: 'uiElementCd',
|
|
27
36
|
bind: '{uiElementCd}',
|
|
28
37
|
},
|
|
38
|
+
{
|
|
39
|
+
xtype: 'comboBtnWrapper',
|
|
40
|
+
combobox: {
|
|
41
|
+
reference: 'handlerCombo',
|
|
42
|
+
xtype: 'BaseComboBox',
|
|
43
|
+
fieldLabel: 'handlerName',
|
|
44
|
+
labelWidth: 60,
|
|
45
|
+
flex: 1,
|
|
46
|
+
loadOnRender: false,
|
|
47
|
+
hideMode: 'offsets',
|
|
48
|
+
allowBlank: false,
|
|
49
|
+
store: 'codeHandlers',
|
|
50
|
+
bind: {
|
|
51
|
+
value: '{handlerName}',
|
|
52
|
+
},
|
|
53
|
+
valueField: 'id',
|
|
54
|
+
displayField: 'id',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
29
57
|
{
|
|
30
58
|
xtype: 'textfield',
|
|
31
59
|
fieldLabel: 'panelXType',
|
|
@@ -126,6 +154,14 @@ Ext.define('Coon.uielement.plugin.configPanel.OpenPanelPluginConfigPanelFormEdit
|
|
|
126
154
|
aceEditor.setValue(vm.get(curPanel.vmName));
|
|
127
155
|
},
|
|
128
156
|
|
|
157
|
+
getData: function() {
|
|
158
|
+
return this.getConfiguration();
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
setData: function(data) {
|
|
162
|
+
data && this.doInit(data);
|
|
163
|
+
},
|
|
164
|
+
|
|
129
165
|
doInit: function(config) {
|
|
130
166
|
const vm = this.getViewModel();
|
|
131
167
|
vm.set('description', this.description);
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.PrintPdfPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
3
|
-
requires: ['Coon.uielement.plugin.configPanel.UiCPPluginFormPanel'],
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
4
3
|
alias: 'widget.PrintPdfPluginConfigPanelFormEditor',
|
|
5
4
|
description: 'Выполняет команду, позволяет отслеживать её выполнение и менять сообщения об различных событиях в ходе выполнения',
|
|
6
5
|
viewModel: {
|
|
@@ -48,8 +47,42 @@ Ext.define('Coon.uielement.plugin.configPanel.PrintPdfPluginConfigPanelFormEdito
|
|
|
48
47
|
},
|
|
49
48
|
},
|
|
50
49
|
},
|
|
50
|
+
layout: {
|
|
51
|
+
type: 'vbox',
|
|
52
|
+
align: 'stretch',
|
|
53
|
+
},
|
|
51
54
|
scrollable: 'y',
|
|
52
55
|
items: [
|
|
56
|
+
{
|
|
57
|
+
xtype: 'pluginDescriptionLabel',
|
|
58
|
+
bind: {
|
|
59
|
+
value: '{description}',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
/* {
|
|
63
|
+
xtype: 'textfield',
|
|
64
|
+
fieldLabel: 'Имя комманды',
|
|
65
|
+
bind: '{ctype}',
|
|
66
|
+
}, */
|
|
67
|
+
{
|
|
68
|
+
xtype: 'comboBtnWrapper',
|
|
69
|
+
combobox: {
|
|
70
|
+
reference: 'handlerCombo',
|
|
71
|
+
xtype: 'BaseComboBox',
|
|
72
|
+
fieldLabel: 'handlerName',
|
|
73
|
+
labelWidth: 60,
|
|
74
|
+
flex: 1,
|
|
75
|
+
loadOnRender: false,
|
|
76
|
+
hideMode: 'offsets',
|
|
77
|
+
allowBlank: false,
|
|
78
|
+
store: 'codeHandlers',
|
|
79
|
+
bind: {
|
|
80
|
+
value: '{handlerName}',
|
|
81
|
+
},
|
|
82
|
+
valueField: 'id',
|
|
83
|
+
displayField: 'id',
|
|
84
|
+
},
|
|
85
|
+
},
|
|
53
86
|
{
|
|
54
87
|
xtype: 'ConstantList',
|
|
55
88
|
data: [
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
Ext.define('Coon.uielement.plugin.configPanel.UnifiedButtonToolbarPluginConfigPanelFormEditor', {
|
|
2
|
-
extend: '
|
|
3
|
-
requires: ['Coon.uielement.plugin.configPanel.UiCPPluginFormPanel'],
|
|
2
|
+
extend: 'Ext.panel.Panel',
|
|
4
3
|
alias: 'widget.UnifiedButtonToolbarPluginConfigPanelFormEditor',
|
|
5
4
|
description: 'Добавляет стандартный тулбар',
|
|
6
5
|
viewModel: {
|
|
@@ -14,7 +13,17 @@ Ext.define('Coon.uielement.plugin.configPanel.UnifiedButtonToolbarPluginConfigPa
|
|
|
14
13
|
needReloadEventOnSave: false,
|
|
15
14
|
},
|
|
16
15
|
},
|
|
16
|
+
layout: {
|
|
17
|
+
type: 'vbox',
|
|
18
|
+
align: 'stretch',
|
|
19
|
+
},
|
|
17
20
|
items: [
|
|
21
|
+
{
|
|
22
|
+
xtype: 'pluginDescriptionLabel',
|
|
23
|
+
bind: {
|
|
24
|
+
value: '{description}',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
18
27
|
{
|
|
19
28
|
xtype: 'SearchByPropCombo',
|
|
20
29
|
fieldLabel: 'Обработчик подготовки данных для сохранения (необходим синхронный метод)',
|
|
@@ -84,7 +93,12 @@ Ext.define('Coon.uielement.plugin.configPanel.UnifiedButtonToolbarPluginConfigPa
|
|
|
84
93
|
},
|
|
85
94
|
}
|
|
86
95
|
],
|
|
87
|
-
|
|
96
|
+
getData: function() {
|
|
97
|
+
return this.getConfiguration();
|
|
98
|
+
},
|
|
99
|
+
setData: function(data) {
|
|
100
|
+
data && this.doInit(data);
|
|
101
|
+
},
|
|
88
102
|
doInit: function(config) {
|
|
89
103
|
this.getViewModel().set('description', this.description);
|
|
90
104
|
for (const parameterName in config) {
|
package/src/version.js
CHANGED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
Ext.define('Coon.app.viewPort.TabHistory', {
|
|
2
|
-
singleton: true,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
getCenterView() {
|
|
6
|
-
if (!this.centerview) {
|
|
7
|
-
this.centerview = Ext.ComponentQuery.query('centerview')[0];
|
|
8
|
-
}
|
|
9
|
-
return this.centerview;
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
registerTab(component) {
|
|
13
|
-
const routeId = component.menuItem && component.menuItem.MENU_ENTRY_CD ||
|
|
14
|
-
component.reportId || component.uiElementCd;
|
|
15
|
-
const config = {
|
|
16
|
-
ui: component.uiElementCd,
|
|
17
|
-
reportId: component.reportId,
|
|
18
|
-
routeId,
|
|
19
|
-
ctxId: component.componentContextId,
|
|
20
|
-
text: component.getTitle && component.getTitle(),
|
|
21
|
-
ctx: Coon.util.ContextManager.getContext(component.componentContextId),
|
|
22
|
-
};
|
|
23
|
-
if (!this.inited && this.getHeaderCt()) {
|
|
24
|
-
this.inited = true;
|
|
25
|
-
this.ct.add(this.getHistoryComponent());
|
|
26
|
-
const menu = this.ct.down('#TabHistoryMenu');
|
|
27
|
-
menu.on('click', function(_, item) {
|
|
28
|
-
console.log('item.inHistory', item, item.inHistory);
|
|
29
|
-
if (item.inHistory) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
this.getCenterView().setActiveComponent({componentContextId: item.ctxId});
|
|
33
|
-
}, this);
|
|
34
|
-
}
|
|
35
|
-
if (this.inited) {
|
|
36
|
-
const menu = this.ct.down('#TabHistoryMenu');
|
|
37
|
-
console.log('config', config, component);
|
|
38
|
-
component.on('titlechange', function(_, title) {
|
|
39
|
-
menu.down(`[menuItemId=${config.ctxId}]`).setText(title);
|
|
40
|
-
});
|
|
41
|
-
component.on('beforedestroy', function() {
|
|
42
|
-
const menuItem = menu.down(`[menuItemId=${config.ctxId}]`);
|
|
43
|
-
menuItem.inHistory = true;
|
|
44
|
-
menuItem.setIconCls('');
|
|
45
|
-
return true;
|
|
46
|
-
});
|
|
47
|
-
const menuItem = menu.down(`[menuItemId=${config.ctxId}]`);
|
|
48
|
-
if (menuItem) {
|
|
49
|
-
menuItem.inHistory = false;
|
|
50
|
-
menuItem.setIconCls('x-fa fa-home');
|
|
51
|
-
} else {
|
|
52
|
-
menu.add({
|
|
53
|
-
iconCls: 'x-fa fa-home',
|
|
54
|
-
text: config.text || config.routeId,
|
|
55
|
-
menuItemId: config.ctxId,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
|
|
61
|
-
getHistoryComponent() {
|
|
62
|
-
return {
|
|
63
|
-
xtype: 'button',
|
|
64
|
-
text: '...',
|
|
65
|
-
menu: {
|
|
66
|
-
itemId: 'TabHistoryMenu',
|
|
67
|
-
maxWidth: 560,
|
|
68
|
-
margin: 4,
|
|
69
|
-
items: [],
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
getHeaderCt() {
|
|
75
|
-
if (this.ct) {
|
|
76
|
-
return this.ct;
|
|
77
|
-
}
|
|
78
|
-
this.ct = Ext.ComponentQuery.query('#headerFlexCt')[0];
|
|
79
|
-
return this.ct;
|
|
80
|
-
},
|
|
81
|
-
});
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
Ext.define('Coon.uielement.plugin.configPanel.UiCPPluginFormPanel', {
|
|
2
|
-
extend: 'Ext.panel.Panel',
|
|
3
|
-
xtype: 'UiCPPluginFormPanel',
|
|
4
|
-
|
|
5
|
-
layout: {
|
|
6
|
-
type: 'vbox',
|
|
7
|
-
align: 'stretch',
|
|
8
|
-
},
|
|
9
|
-
|
|
10
|
-
commonItems: [
|
|
11
|
-
{
|
|
12
|
-
xtype: 'pluginDescriptionLabel',
|
|
13
|
-
bind: {
|
|
14
|
-
value: '{description}',
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
xtype: 'comboBtnWrapper',
|
|
19
|
-
combobox: {
|
|
20
|
-
reference: 'handlerCombo',
|
|
21
|
-
xtype: 'BaseComboBox',
|
|
22
|
-
fieldLabel: 'handlerName',
|
|
23
|
-
labelWidth: 60,
|
|
24
|
-
flex: 1,
|
|
25
|
-
loadOnRender: false,
|
|
26
|
-
hideMode: 'offsets',
|
|
27
|
-
allowBlank: false,
|
|
28
|
-
store: 'codeHandlers',
|
|
29
|
-
bind: {
|
|
30
|
-
value: '{handlerName}',
|
|
31
|
-
},
|
|
32
|
-
valueField: 'id',
|
|
33
|
-
displayField: 'id',
|
|
34
|
-
},
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
initComponent() {
|
|
40
|
-
this.items = this.items || [];
|
|
41
|
-
this.items = this.commonItems.concat(this.items);
|
|
42
|
-
this.callParent(arguments);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
getData: function() {
|
|
46
|
-
return typeof this.getConfiguration === 'function' && this.getConfiguration();
|
|
47
|
-
},
|
|
48
|
-
setData: function(data) {
|
|
49
|
-
if (data && typeof this.doInit === 'function') {
|
|
50
|
-
this.doInit(data);
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
});
|