ru.coon 3.0.2 → 3.0.4
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 +16 -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/nav/AppNavigationPanelController.js +3 -1
- 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 +59 -4
- package/src/uielement/component/UiCustomController.js +3 -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,19 @@
|
|
|
1
|
-
# Version 3.0.
|
|
2
|
-
* add
|
|
1
|
+
# Version 3.0.4, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/2e89a5f1e7ef7e24ea4984b55dd164b542f7c8c1)
|
|
2
|
+
* add tooltips for CenterView tabs
|
|
3
|
+
remove first menuItem autoload for Menu ([29ead4], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/29ead462b5631357f3662ff3aeb2ca4449f2aa97))
|
|
4
|
+
* refactor: change jsdoc on UiCPWrapper ([be109a], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/be109a9cc9bb97543f9a864d7b719396a93e9f81))
|
|
5
|
+
* update: CHANGELOG.md ([2e3043], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/2e3043674a608c6216eb6ff492a17c0f90aa53b9))
|
|
6
|
+
|
|
7
|
+
# Version 3.0.3, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/db7fcf17875ed26df5b2204f1a55ebdc7245f738)
|
|
8
|
+
# Version 3.0.2, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/fd1cfdb7d1b73853fc8a21a5a67435b66402d6cd)
|
|
9
|
+
* ## Features
|
|
10
|
+
* <span style='color:green'>feat: Доработано описание UICPWrapper, исправлена ошибка закрытия окна в UnifiedButtonToolbarPlugin</span> ([c08ceb], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c08cebfa1e2814d2b4d0b6157be773b8dcc7a525))
|
|
11
|
+
|
|
12
|
+
* ## Fixes
|
|
13
|
+
* <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))
|
|
14
|
+
* <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))
|
|
15
|
+
|
|
16
|
+
* add title method to UiCustomPanel controller ([19a3a7], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/19a3a71ead9faef63e2dde5d4809170c1d1d9c3d))
|
|
3
17
|
* update: CHANGELOG.md ([7f363d], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7f363d646b1974c0ad434318269172a985972f4f))
|
|
4
18
|
|
|
5
19
|
# 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: {
|
|
@@ -56,6 +56,7 @@ Ext.define('Coon.nav.AppNavigationPanelController', {
|
|
|
56
56
|
beforeitemmouseleave: {fn: this.mouseOut, scope: this},
|
|
57
57
|
});
|
|
58
58
|
},
|
|
59
|
+
|
|
59
60
|
onMenuItemToFavoriteClick(menuEntryCd, cmp) {
|
|
60
61
|
const props = Coon.nav.menu.FavoriteCfg.get().favorite || [];
|
|
61
62
|
const index = props.indexOf(menuEntryCd);
|
|
@@ -110,6 +111,7 @@ Ext.define('Coon.nav.AppNavigationPanelController', {
|
|
|
110
111
|
this.goTo(this.getFirstAvailable());
|
|
111
112
|
}
|
|
112
113
|
},
|
|
114
|
+
|
|
113
115
|
goTo(menuEntryCd, force = false) {
|
|
114
116
|
if (menuEntryCd) {
|
|
115
117
|
let prefix = '';
|
|
@@ -289,7 +291,7 @@ Ext.define('Coon.nav.AppNavigationPanelController', {
|
|
|
289
291
|
this.getViewModel().set('map', map);
|
|
290
292
|
this.menuReady = true;
|
|
291
293
|
Ext.fireEvent('nav:ready');
|
|
292
|
-
this.onMenuReady();
|
|
294
|
+
// this.onMenuReady();
|
|
293
295
|
}
|
|
294
296
|
// view.unmask();
|
|
295
297
|
});
|
|
@@ -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,42 @@
|
|
|
18
18
|
* вызов doInit также возможен на компоненте. Обращается к doInit вызываемой кастомной панели:
|
|
19
19
|
* const panel = this.lookup('testPanel);
|
|
20
20
|
* panel.doInit('1123fss');
|
|
21
|
+
*
|
|
22
|
+
* Режимы работы с viewModel.
|
|
23
|
+
* Кастомная панель может иметь разные настройки viewModel в зависимости от конфигурации. Ее работа зависит от двух параметров:
|
|
24
|
+
*
|
|
25
|
+
* parentViewModel: boolean / null / Ext.app.ViewModel
|
|
26
|
+
* Родительская viewModel. Отвечает за наличие/определение родительской viewModel.
|
|
27
|
+
* - false / null: Родительская viewModel отсутствует, viewModel панели не связанная с панелью, в которую встроена.
|
|
28
|
+
* - Ext.app.ViewModel: Указанная viewModel будет использована в качестве родительской viewModel.
|
|
29
|
+
* - отсутствие значения: В качестве родительской viewModel будет использована viewModel панели, в которую она встроена.
|
|
30
|
+
*
|
|
31
|
+
* inheritViewModel: boolean
|
|
32
|
+
* Наследование viewModel. Решает в качестве чего будет установлена parentViewModel: родительской или текущей viewModel.
|
|
33
|
+
* - false: parentViewModel будет установлена в качестве родительской viewModel.
|
|
34
|
+
* - true: parentViewModel будет установлена в качестве данной viewModel.
|
|
35
|
+
*
|
|
36
|
+
* Сценарии работы с viewModel:
|
|
37
|
+
* - по умолчанию (viewModel в качестве родителя имеет viewModel панели, в которую она встроена, востанавливается иерархия)
|
|
38
|
+
* - parentViewModel = null || false (viewModel никак не связанна с родительской viewModel, в которую она встроена)
|
|
39
|
+
* - parentViewModel = Ext.app.ViewModel (в качестве родительской viewModel будет указана заданная viewModel)
|
|
40
|
+
* - inheritViewModel = true, parentViewModel = не указана (общая viewModel с панелью, в которую она встроена)
|
|
41
|
+
* - inheritViewModel = true, parentViewModel = Ext.app.ViewModel (в качестве viewModel панели будет установлена
|
|
42
|
+
* указанная parentViewModel)
|
|
43
|
+
*
|
|
44
|
+
*
|
|
45
|
+
* События вызванные в панели могут отслеживаться UiCPWrapper, если задать их в конфигурации в customBubbleEvents:
|
|
46
|
+
* customBubbleEvent: [
|
|
47
|
+
* {
|
|
48
|
+
* sourceEventName - string (событие вызванное в панели)
|
|
49
|
+
* targetEventName - string (событие, которое будет вызвано при срабатывании события sourceEventName)
|
|
50
|
+
* targetComponent // 'reference' || '[itemId=item1]' || view - string || object (компонент куда будет передано событие)
|
|
51
|
+
* targetHandlerName - string (метод, который будет вызван при срабатывании события sourceEventName)
|
|
52
|
+
* }
|
|
53
|
+
* ]
|
|
54
|
+
*
|
|
55
|
+
* Если UiCPWrapper является элементом tabpanel, он будет отслеживать события активации и деактивации табы и передавать их в панель.
|
|
56
|
+
* Также UiCPWrapper отселживает событие dirtychange панели и вызывает его у себя, для отображения статуса несохраненных изменений в tabpanel.
|
|
21
57
|
*/
|
|
22
58
|
|
|
23
59
|
|
|
@@ -36,6 +72,10 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
36
72
|
layout: 'fit',
|
|
37
73
|
},
|
|
38
74
|
|
|
75
|
+
inheritViewModel: false,
|
|
76
|
+
parentViewModel: undefined,
|
|
77
|
+
customBubbleEvents: [],
|
|
78
|
+
|
|
39
79
|
initComponent: function() {
|
|
40
80
|
const parentCustomPanel = this.findParentByType('UiCustomPanel');
|
|
41
81
|
if (parentCustomPanel) {
|
|
@@ -68,13 +108,12 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
68
108
|
renderPanel: function(panelConfig) {
|
|
69
109
|
const config = Object.assign({}, panelConfig, this.initConfig);
|
|
70
110
|
config.inheritViewModel = this.inheritViewModel;
|
|
71
|
-
if (this.inheritViewModel) {
|
|
72
|
-
const parentViewModel = this.findParentByType('UiCustomPanel').getViewModel();
|
|
73
|
-
config.viewModel = parentViewModel;
|
|
74
|
-
}
|
|
75
111
|
config.isChildCP = true;
|
|
112
|
+
this.setViewModelConfig(config);
|
|
113
|
+
|
|
76
114
|
const panel = Ext.create('widget.UiCustomPanel', config);
|
|
77
115
|
this.uiPanel = panel;
|
|
116
|
+
|
|
78
117
|
panel.on('afterrender', function() {
|
|
79
118
|
this.autoLoad && this.panelDoInit(this.doInitParams);
|
|
80
119
|
const doInitPanel = panel.getController() && panel.getController().doInit;
|
|
@@ -83,6 +122,7 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
83
122
|
}
|
|
84
123
|
}, this);
|
|
85
124
|
this.add(panel);
|
|
125
|
+
|
|
86
126
|
if (Array.isArray(this.customBubbleEvents) && this.customBubbleEvents.length) {
|
|
87
127
|
this.setCustomBubbleEvents(panel);
|
|
88
128
|
}
|
|
@@ -97,6 +137,21 @@ Ext.define('Coon.uielement.component.UiCPWrapper', {
|
|
|
97
137
|
});
|
|
98
138
|
},
|
|
99
139
|
|
|
140
|
+
setViewModelConfig(config) {
|
|
141
|
+
config.viewModel = {};
|
|
142
|
+
if ([null, false].includes(this.parentViewModel)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const parentViewModel = (this.parentViewModel && this.parentViewModel.isViewModel) ?
|
|
146
|
+
this.parentViewModel :
|
|
147
|
+
this.up('UiCustomPanel').getViewModel();
|
|
148
|
+
if (this.inheritViewModel) {
|
|
149
|
+
config.viewModel = parentViewModel;
|
|
150
|
+
} else {
|
|
151
|
+
config.viewModel.parent = parentViewModel;
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
|
|
100
155
|
setCustomBubbleEvents(srcComponent) {
|
|
101
156
|
const parent = this.up(this.parentComponent || 'UiCustomPanel');
|
|
102
157
|
if (typeof parent.__processCustomBubbleEvents === 'function') {
|
|
@@ -130,6 +130,9 @@ Ext.define('Coon.uielement.component.UiCustomController', {
|
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
132
|
this.getView().fireEvent('titlechange', this.getView(), title);
|
|
133
|
+
if (this.getView().tab && typeof this.getView().tab.setTooltip === 'function') {
|
|
134
|
+
this.getView().tab.setTooltip(title);
|
|
135
|
+
}
|
|
133
136
|
},
|
|
134
137
|
|
|
135
138
|
});
|
|
@@ -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
|
-
});
|