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 CHANGED
@@ -1,5 +1,13 @@
1
- # Version 3.0.2, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c32c302a68ca27da589552539e7e0695810e7e45)
2
- * add setCustomPanelTitle method to UiCustomController ([40a7bd], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/40a7bd4c83a29dac561c9cd18e528ff1da5d6005))
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
@@ -4,7 +4,7 @@
4
4
  "name": "ru.coon"
5
5
  },
6
6
  "description": "",
7
- "version": "3.0.2",
7
+ "version": "3.0.3",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+http://gitlab-dbr.sigma-it.local/dbr/ru.coon"
@@ -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{label: загрузить кастомную панель в dev-режиме}
3
- changeUrl->Router.routes./\#UiElementCd{label: начитать 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(ctx, uniqueContext),
172
- uniqueContext
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
@@ -9,6 +9,7 @@ Ext.define('Coon.uielement.component.UiCustomPanel', {
9
9
  'Coon.uielement.component.UiCustomPanelTraceWindow'
10
10
  ],
11
11
  controller: 'UiCustomController',
12
+ // viewModel: {type: 'UiCustomPanelViewModel'},
12
13
 
13
14
  keyMap: {
14
15
  'Ctrl+Shift+Alt+F8': {
@@ -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 window = view.up('WindowWrap');
131
- if (window && this.checkChangesOnSave !== false) {
130
+ const panelOwner = this.getPanelOwner();
131
+ if (panelOwner && this.checkChangesOnSave !== false) {
132
132
  if (this.getCmp().isParentCP) {
133
- window.on('beforeclose', this.onBeforeCloseWindowByParent, this);
133
+ panelOwner.on('beforeclose', this.onBeforeCloseWindowByParent, this);
134
134
  } else {
135
- window.on('beforeclose', this.onBeforeCloseWindow, this);
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.controller.getView().up('WindowWrap').close();
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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: 'Coon.uielement.plugin.configPanel.UiCPPluginFormPanel',
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,4 +1,4 @@
1
1
  Ext.define('Coon.version', {
2
2
  singleton: true,
3
- number: '3.0.2',
3
+ number: '3.0.3',
4
4
  });
@@ -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
- });