ru.coon 2.8.47 → 2.8.49
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 +24 -0
- package/package.json +1 -1
- package/src/app/Router.js +1 -1
- package/src/app/viewPort/CenterViewController.js +1 -0
- package/src/common/UserPropStorage.js +105 -0
- package/src/common/component/formeditor/UiCFCell.js +18 -0
- package/src/common/component/formeditor/UiCFCellController.js +1 -16
- package/src/report/component/ReportPanel.js +28 -1
- package/src/report/component/reportpanel/NorthPanel.js +1 -1
- package/src/report/component/settings/ReportParametersExtraPropsGrid.js +123 -0
- package/src/report/component/settings/parameter/ReportFormParameterEditPanel.js +33 -8
- package/src/report/component/settings/parameter/ReportFormParametersGrid.js +1 -1
- package/src/uielement/UiCPEntity.js +1 -0
- package/src/version.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
# Version 2.8.49, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/ec11e7b7b820f1b1cb4623353bc6d1b43974f369)
|
|
2
|
+
* ## Features
|
|
3
|
+
* <span style='color:green'>feat: HT-11123: Обработка конфига компоненты вынесена из контроллера для получения конфига вложенного компонента до его инициализации</span> ([4f3f0d], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/4f3f0d7a1fb29b5582c52e75912e5a12631bffde))
|
|
4
|
+
|
|
5
|
+
* ## Fixes
|
|
6
|
+
* <span style='color:red'>fix</span> ([f7ce88], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f7ce88d8859e702af4521253068bda50df90c39b))
|
|
7
|
+
|
|
8
|
+
* remove template 'beforeComplete' ([e746ea], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/e746ea99a3adbb1b0b5e6eadac6068e1250a567a))
|
|
9
|
+
* update: CHANGELOG.md ([58846f], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/58846fbc62873ca4c56f685e85420bad0e56652b))
|
|
10
|
+
|
|
11
|
+
# Version 2.8.48, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/201d12dfc121f4045867a23b2d92f9fe252191cf)
|
|
12
|
+
* ## Fixes
|
|
13
|
+
* <span style='color:red'>fix afterlayout -> afterlayoutanimation</span> ([4c5351], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/4c535139895c0622dbacf836c5fc81b2d0d95727))
|
|
14
|
+
|
|
15
|
+
* update: CHANGELOG.md ([c0d9e3], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c0d9e3e6975abd06fe70dfa62f1b84cb82fb2561))
|
|
16
|
+
|
|
1
17
|
# Version 2.8.47, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5517082c79a0635a115fa036d9b16f6c3d973858)
|
|
2
18
|
* ## Fixes
|
|
3
19
|
* <span style='color:red'>fix ace version</span> ([4053a5], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/4053a550fe3a2f49af198e6f44eff7c0a80d8b15))
|
|
@@ -111,16 +127,24 @@ remove unusual alternateClassName</span> ([7427bf], [link](http://gitlab-dbr.sig
|
|
|
111
127
|
* <span style='color:red'>fix mode in booleaniconcolumn</span> ([5e360d], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5e360d5194ee371e8f98a80e805c6385adefb766))
|
|
112
128
|
* <span style='color:red'>fix xtype booleaniconcolumn</span> ([d02e5f], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d02e5f191336db50627339b44ab5a4c55ea8aaac))
|
|
113
129
|
|
|
130
|
+
* BFL-17254 рефактор типа сохранения userPropStorage ([d1ae82], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d1ae82d2d5d856da5dc04cb9cc64c5fbbd1c84b1))
|
|
131
|
+
* BFL-17254 Улучшение читаемости алгоритма ([11aa89], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/11aa89bb7c27efd2593a6be5444fa45a03522f54))
|
|
132
|
+
* исправление опечатки ([e57a17], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/e57a171eddfc5f3615ce17f9f3f0708764ed7644))
|
|
133
|
+
* исправление замечаний ([0ee5a8], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/0ee5a8addd7a5630f29a706fdc7b7535a06d71c2))
|
|
134
|
+
* upd ([934879], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/93487925e08f8639bb474e19f5a9056a72bf6fad))
|
|
114
135
|
* update: CHANGELOG.md ([f65bf5], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f65bf563dbeb9d18d6330ee6db7bab486ba5ced9))
|
|
115
136
|
|
|
116
137
|
# Version 2.8.32, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/396f1c8296522012f1f98d8dd7a0bb9296b990e0)
|
|
117
138
|
* ## Features
|
|
139
|
+
* <span style='color:green'>feat: запись при поиске параметров репорта, имеющих настройку автоподскановки</span> ([21b6c3], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/21b6c3cd5bafe96663842f117614df370b7fde34))
|
|
140
|
+
* <span style='color:green'>feat: добавлен extraProps в параметры репорта</span> ([f6bfb8], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f6bfb8e3d4bad8f9f1f3683414c7d98a61396c68))
|
|
118
141
|
* <span style='color:green'>feat: [ReportPanel] htmlEncode tooltip. Closes NEVA-665.</span> ([7a95ab], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7a95ab2b56300ee0fcd4e2af1e3a2e491b42df12))
|
|
119
142
|
* <span style='color:green'>feat: [ReportPanel] Добавлены tooltip на группы столбцов таблицы. Closes NEVA-665.</span> ([b19f87], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/b19f87c6fc5f1825da39249a96042bb297493a3b))
|
|
120
143
|
* <span style='color:green'>feat new status icon</span> ([40a654], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/40a6541c23af2f7955b46d5181c4ec1bea7e7fe6))
|
|
121
144
|
|
|
122
145
|
* ## Fixes
|
|
123
146
|
* <span style='color:red'>fix condition</span> ([d16526], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d165266b8c349fbfbd250b12b6b39d5fa237d2f2))
|
|
147
|
+
* <span style='color:red'> редактирование поля параметров репорта по двойному клику</span> ([f28ac1], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f28ac1cbe0a9192838840b0882acb2eb7009d511))
|
|
124
148
|
|
|
125
149
|
* HT-10932 Исправление применения настроек чекбокса в SetSingleParameterPlugin ([a619ec], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/a619eccc567f07cf3c131529dd75de3f0d7e9ed8))
|
|
126
150
|
* HT-10676 Доработка проверки корректности расположения плагина BindCustomPanelPlugin ([c48842], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c48842c7c39c3908f1d98ca4b0b84c7b829470cb))
|
package/package.json
CHANGED
package/src/app/Router.js
CHANGED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Сохранение параметров пользователя по ключу:
|
|
3
|
+
* component:componentId:module:key
|
|
4
|
+
*
|
|
5
|
+
* Сохранение происходит в зависимости от saveType:
|
|
6
|
+
* localStorage (saveType = 'ls')
|
|
7
|
+
* сервер (saveType = 'server')
|
|
8
|
+
**/
|
|
9
|
+
Ext.define('Coon.common.UserPropStorage', {
|
|
10
|
+
component: undefined,
|
|
11
|
+
componentId: undefined,
|
|
12
|
+
module: undefined,
|
|
13
|
+
propList: undefined,
|
|
14
|
+
saveType: undefined,
|
|
15
|
+
|
|
16
|
+
constructor(config) {
|
|
17
|
+
Ext.apply(this, config);
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
saveProps(allProps) {
|
|
21
|
+
const saveProp = {};
|
|
22
|
+
this.propList.forEach((prop) => {
|
|
23
|
+
saveProp[prop] = allProps[prop];
|
|
24
|
+
});
|
|
25
|
+
switch (this.saveType) {
|
|
26
|
+
case 'ls':
|
|
27
|
+
return this.savePropsToLocalStorage(saveProp);
|
|
28
|
+
case 'server':
|
|
29
|
+
return this.savePropsToServer(saveProp);
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
deleteProps(props) {
|
|
34
|
+
switch (this.saveType) {
|
|
35
|
+
case 'ls':
|
|
36
|
+
return this.deletePropsFromLocalStorage(props || this.propList);
|
|
37
|
+
case 'server':
|
|
38
|
+
return this.deletePropsFromServer(props || this.propList);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
getSavedProps() {
|
|
43
|
+
const currentKey = this.getCurrentKey();
|
|
44
|
+
switch (this.saveType) {
|
|
45
|
+
case 'ls':
|
|
46
|
+
const savedProps = Object.entries(localStorage)
|
|
47
|
+
.filter(([key]) => key.includes(currentKey));
|
|
48
|
+
return this.getDecodedValues(savedProps, currentKey);
|
|
49
|
+
case 'server':
|
|
50
|
+
// TODO: replace command
|
|
51
|
+
return Coon.util.promisifyCmd('command.GetDynamicReportDataCommand', {key: currentKey})
|
|
52
|
+
.then((data) => {
|
|
53
|
+
return this.getDecodedValues(data, currentKey);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
getDecodedValues(data, currentKey) {
|
|
59
|
+
return data.reduce((acc, [key, value]) => {
|
|
60
|
+
acc[key.replace(currentKey + ':', '')] = Ext.decode(value);
|
|
61
|
+
return acc;
|
|
62
|
+
}, {});
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
savePropsToLocalStorage(props) {
|
|
66
|
+
for (const [key, value] of Object.entries(props)) {
|
|
67
|
+
const propKey = this.getKey(key);
|
|
68
|
+
this.saveToLocalStorage(propKey, value);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
|
|
72
|
+
savePropsToServer(props) {
|
|
73
|
+
let saveProps;
|
|
74
|
+
for (const [key, value] of Object.entries(props)) {
|
|
75
|
+
const propKey = this.getKey(key);
|
|
76
|
+
saveProps[propKey] = value;
|
|
77
|
+
}
|
|
78
|
+
// TODO: replace command
|
|
79
|
+
return Coon.util.promisifyCmd('command.GetDynamicReportDataCommand', {props: saveProps});
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
deletePropsFromLocalStorage(props) {
|
|
83
|
+
props.forEach((key) => {
|
|
84
|
+
localStorage.removeItem(this.getKey(key));
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
deletePropsFromServer(props) {
|
|
89
|
+
const deleteKeys = props.map((key) => this.getKey(key));
|
|
90
|
+
// TODO: replace command
|
|
91
|
+
return Coon.util.promisifyCmd('command.GetDynamicReportDataCommand', {keys: deleteKeys});
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
getCurrentKey() {
|
|
95
|
+
return `${this.component}:${this.componentId}:${this.module}`;
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
getKey(key) {
|
|
99
|
+
return `${this.getCurrentKey()}:${key}`;
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
saveToLocalStorage(key, value) {
|
|
103
|
+
localStorage.setItem(key, Ext.encode(value));
|
|
104
|
+
},
|
|
105
|
+
});
|
|
@@ -13,4 +13,22 @@ Ext.define('Coon.common.component.formeditor.UiCFCell', {
|
|
|
13
13
|
listeners: {
|
|
14
14
|
beforeadd: 'onBeforeAdd',
|
|
15
15
|
},
|
|
16
|
+
initComponent: function() {
|
|
17
|
+
const component = this.items[0];
|
|
18
|
+
if (component) {
|
|
19
|
+
if (component.rawCfg) {
|
|
20
|
+
Object.keys(component.rawCfg).forEach((key) => {
|
|
21
|
+
const value = component.rawCfg[key]+'';
|
|
22
|
+
if (value && Coon.format.startsWith(value, 'function')) {
|
|
23
|
+
try {
|
|
24
|
+
component[key] = eval('(' + value + ')').call(component);
|
|
25
|
+
} catch (e) {
|
|
26
|
+
Coon.log.error(`[UiCFCell] for property:${key} & value:${value}, error: ${e}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
this.callParent();
|
|
33
|
+
},
|
|
16
34
|
});
|
|
@@ -5,25 +5,10 @@ Ext.define('Coon.common.component.formeditor.UiCFCellController', {
|
|
|
5
5
|
oldWidth: 0,
|
|
6
6
|
minCellWidth: 150,
|
|
7
7
|
readOnly: false,
|
|
8
|
-
init: function() {
|
|
8
|
+
init: function(cfg) {
|
|
9
9
|
this.setDefaultMenuItems();
|
|
10
10
|
this.initMouseEvents();
|
|
11
11
|
},
|
|
12
|
-
onBeforeAdd(cell, component, index, eOpts) {
|
|
13
|
-
// console.log(component);
|
|
14
|
-
if (component.initialConfig.rawCfg) {
|
|
15
|
-
Object.keys(component.initialConfig.rawCfg).forEach((key) => {
|
|
16
|
-
const value = component.initialConfig.rawCfg[key]+'';
|
|
17
|
-
if (value && Coon.format.startsWith(value, 'function')) {
|
|
18
|
-
try {
|
|
19
|
-
component[key] = eval('(' + value + ')').call(component);
|
|
20
|
-
} catch (e) {
|
|
21
|
-
Coon.log.error(`[UiCFCellController] for property:${key} & value:${value}, error: ${e}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
12
|
setDefaultMenuItems() {
|
|
28
13
|
const rowCnt = this.getUiCFRowController();
|
|
29
14
|
this.menuItems = {
|
|
@@ -28,6 +28,7 @@ Ext.define('Coon.report.component.ReportPanel', {
|
|
|
28
28
|
'Coon.report.plugin.grid.GridContextPlugin',
|
|
29
29
|
'Coon.report.command.LoadDynamicReportCommand',
|
|
30
30
|
'Coon.common.plugin.*',
|
|
31
|
+
'Coon.common.UserPropStorage',
|
|
31
32
|
'Ext.button.Button',
|
|
32
33
|
'Ext.container.Container',
|
|
33
34
|
'Ext.grid.feature.Grouping',
|
|
@@ -605,10 +606,36 @@ Ext.define('Coon.report.component.ReportPanel', {
|
|
|
605
606
|
this.isConfigured = true;
|
|
606
607
|
this.fireEvent('configured', response, this);
|
|
607
608
|
this.grid.fireEvent('configured', response, this);
|
|
609
|
+
this.initUserPropStorage(response.parameters);
|
|
608
610
|
}, this);
|
|
609
611
|
command.execute(this.reportId);
|
|
610
612
|
},
|
|
611
613
|
|
|
614
|
+
async initUserPropStorage(parameters) {
|
|
615
|
+
if (!parameters) {
|
|
616
|
+
return;
|
|
617
|
+
}
|
|
618
|
+
const saveParamList = parameters
|
|
619
|
+
.filter((param) => param.properties.saveLastUsedValue)
|
|
620
|
+
.map((param) => param.reportParameterCd);
|
|
621
|
+
|
|
622
|
+
const userParamStorage = Ext.create('Coon.common.UserPropStorage', {
|
|
623
|
+
component: 'report',
|
|
624
|
+
componentId: this.reportId,
|
|
625
|
+
module: 'reportParameter',
|
|
626
|
+
propList: saveParamList,
|
|
627
|
+
saveType: 'ls',
|
|
628
|
+
});
|
|
629
|
+
this.northPanel.on('filterhandlerevent', userParamStorage.saveProps, userParamStorage);
|
|
630
|
+
this.northPanel.clearButton.on('click', function() {
|
|
631
|
+
userParamStorage.deleteProps();
|
|
632
|
+
});
|
|
633
|
+
const savedProps = await userParamStorage.getSavedProps();
|
|
634
|
+
if (savedProps) {
|
|
635
|
+
this.fillFilter(true, savedProps);
|
|
636
|
+
}
|
|
637
|
+
},
|
|
638
|
+
|
|
612
639
|
/* checkPluginsCompatibility: function(plugins) {
|
|
613
640
|
if (this.hideFilterPanel) {
|
|
614
641
|
return plugins.filter((plugin) => plugin.uiElement.xtype !== 'ReportGroupsFieldValidationPlugin');
|
|
@@ -1033,7 +1060,7 @@ Ext.define('Coon.report.component.ReportPanel', {
|
|
|
1033
1060
|
this.grid.clear();
|
|
1034
1061
|
this.currentParamList = this.northPanel.collectParams();
|
|
1035
1062
|
this.filtered = true;
|
|
1036
|
-
this.northPanel.fireEvent('filterhandlerevent');
|
|
1063
|
+
this.northPanel.fireEvent('filterhandlerevent', Object.assign({}, this.currentParamList));
|
|
1037
1064
|
this.beforeCommandExecuter(this.beforeApplyFilterCommand(this), [this.currentParamList], function() {
|
|
1038
1065
|
this.loadData(this.currentParamList, typeof invalidateCache === 'boolean' && invalidateCache);
|
|
1039
1066
|
});
|
|
@@ -191,7 +191,7 @@ Ext.define('Coon.report.component.report.NorthPanel', {
|
|
|
191
191
|
}, this);
|
|
192
192
|
|
|
193
193
|
this.filterContainer.removeAll();
|
|
194
|
-
filterPanel.on('
|
|
194
|
+
filterPanel.on('afterlayoutanimation', function(cmp) {
|
|
195
195
|
this.recalculateHeight(cmp.getHeight());
|
|
196
196
|
}, this, {single: true});
|
|
197
197
|
this.filterContainer.add(filterPanel);
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
Ext.define('Coon.report.component.settings.ReportParametersExtraPropsGrid', {
|
|
2
|
+
extend: 'Ext.grid.Panel',
|
|
3
|
+
alias: 'widget.ReportParametersExtraPropsGrid',
|
|
4
|
+
title: 'Дополнительные свойства',
|
|
5
|
+
|
|
6
|
+
controller: {
|
|
7
|
+
|
|
8
|
+
mainRecord: null,
|
|
9
|
+
|
|
10
|
+
init: function() {
|
|
11
|
+
this.parameterPropertiesGrid = this.getView().parameterPropertiesGrid;
|
|
12
|
+
this.parametersGrid = this.getView().parametersGrid;
|
|
13
|
+
this.parameterPropertiesGrid.getStore().on('datachanged', this.loadData, this);
|
|
14
|
+
this.initLoad();
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
initLoad() {
|
|
18
|
+
this.defaultProps = {
|
|
19
|
+
'общее свойство': [
|
|
20
|
+
{
|
|
21
|
+
name: 'saveLastUsedValue',
|
|
22
|
+
description: 'Сохраняет значение параметра после поиска, и подставляет их при повторном открытии.',
|
|
23
|
+
type: 'boolean',
|
|
24
|
+
fields: 'all',
|
|
25
|
+
value: 'true',
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
};
|
|
29
|
+
this.loadData();
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
loadData: function() {
|
|
33
|
+
this.getView().hide();
|
|
34
|
+
this.getViewModel().getStore('mainStore').removeAll();
|
|
35
|
+
const selection = this.parametersGrid.getSelectionModel().getSelection();
|
|
36
|
+
const mainRecord = selection.length > 0 ? selection[0] : null;
|
|
37
|
+
if (!mainRecord) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const data = [];
|
|
41
|
+
const propertySet = this.parameterPropertiesGrid.getStore().getRange().reduce((acc, item) => {
|
|
42
|
+
if (!item.get('isDeleted')) {
|
|
43
|
+
acc.add(item.get('key'));
|
|
44
|
+
}
|
|
45
|
+
return acc;
|
|
46
|
+
}, new Set());
|
|
47
|
+
Object.keys(this.defaultProps).forEach((key) => {
|
|
48
|
+
this.defaultProps[key].forEach((config) => {
|
|
49
|
+
if (propertySet.has(config.name)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (config.fields === 'all' || !config.fields) {
|
|
53
|
+
config['plugin'] = key;
|
|
54
|
+
data.push(config);
|
|
55
|
+
}
|
|
56
|
+
if (Ext.isArray(config.fields) && config.fields.includes(mainRecord.get('reportFieldCd'))) {
|
|
57
|
+
config['plugin'] = key;
|
|
58
|
+
data.push(config);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
this.getViewModel().getStore('mainStore').loadData(data);
|
|
63
|
+
this.getView().setHidden(!data.length);
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
addHandler: function(grid, rowIndex, colIndex) {
|
|
67
|
+
const rec = grid.getStore().getAt(rowIndex);
|
|
68
|
+
const parameterPropertiesGrid = this.parameterPropertiesGrid;
|
|
69
|
+
const usedProp = parameterPropertiesGrid
|
|
70
|
+
.getStore()
|
|
71
|
+
.getRange()
|
|
72
|
+
.filter((record) => record.get('key') === rec.get('name') && record.get('isDeleted') === true);
|
|
73
|
+
if (usedProp.length) {
|
|
74
|
+
usedProp.forEach((item) => item.set('isDeleted', false));
|
|
75
|
+
} else {
|
|
76
|
+
parameterPropertiesGrid.getStore().add({
|
|
77
|
+
sequenceNumber: parameterPropertiesGrid.getController().generateSequenceNumber(),
|
|
78
|
+
key: rec.get('name'),
|
|
79
|
+
value: rec.get('value') || '',
|
|
80
|
+
isDeleted: false,
|
|
81
|
+
isNew: true,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
parameterPropertiesGrid.getController().updateProperties();
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
viewModel: {
|
|
89
|
+
stores: {
|
|
90
|
+
mainStore: {
|
|
91
|
+
type: 'json',
|
|
92
|
+
data: [],
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
bind: {
|
|
98
|
+
store: '{mainStore}',
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
columns: {
|
|
102
|
+
defaults: {
|
|
103
|
+
xtype: 'hintColumn',
|
|
104
|
+
},
|
|
105
|
+
items: [
|
|
106
|
+
{text: 'Плагин', dataIndex: 'plugin', flex: 1},
|
|
107
|
+
{text: 'Наименование', dataIndex: 'name', flex: 1},
|
|
108
|
+
{text: 'Описание', dataIndex: 'description', flex: 3},
|
|
109
|
+
{text: 'Тип', dataIndex: 'type', flex: 1},
|
|
110
|
+
{
|
|
111
|
+
width: 40,
|
|
112
|
+
xtype: 'actioncolumn',
|
|
113
|
+
items: [
|
|
114
|
+
{
|
|
115
|
+
iconCls: 'x-fa fa-plus',
|
|
116
|
+
tooltip: 'Добавить',
|
|
117
|
+
handler: 'addHandler',
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
});
|
|
@@ -4,7 +4,8 @@ Ext.define('Coon.report.component.settings.parameter.ReportFormParameterEditPane
|
|
|
4
4
|
alternateClassName: 'Sigma.component.report.settings.ReportFormParameterEditPanel',
|
|
5
5
|
requires: [
|
|
6
6
|
'Coon.report.component.settings.ReportFieldPropertiesGrid',
|
|
7
|
-
'Coon.report.component.settings.parameter.ReportFormParametersGrid'
|
|
7
|
+
'Coon.report.component.settings.parameter.ReportFormParametersGrid',
|
|
8
|
+
'Coon.report.component.settings.ReportParametersExtraPropsGrid'
|
|
8
9
|
],
|
|
9
10
|
controller: 'reportformparametereditpanelcontroller',
|
|
10
11
|
frame: true,
|
|
@@ -31,17 +32,29 @@ Ext.define('Coon.report.component.settings.parameter.ReportFormParameterEditPane
|
|
|
31
32
|
},
|
|
32
33
|
},
|
|
33
34
|
{
|
|
34
|
-
xtype: '
|
|
35
|
+
xtype: 'panel',
|
|
36
|
+
reference: 'parametersPropsPanel',
|
|
37
|
+
layout: {
|
|
38
|
+
type: 'vbox',
|
|
39
|
+
align: 'stretch',
|
|
40
|
+
},
|
|
41
|
+
flex: 1,
|
|
42
|
+
region: 'east',
|
|
35
43
|
width: 500,
|
|
36
44
|
scrollable: true,
|
|
37
45
|
split: true,
|
|
38
46
|
frame: false,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
items: [
|
|
48
|
+
{
|
|
49
|
+
xtype: 'ReportPropertiesGrid',
|
|
50
|
+
flex: 2,
|
|
51
|
+
reference: 'parameterProperties',
|
|
52
|
+
bind: {
|
|
53
|
+
enableAddProps: '{enableAddParamProps}',
|
|
54
|
+
data: '{parametersGrid.selection.properties}',
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
],
|
|
45
58
|
}
|
|
46
59
|
],
|
|
47
60
|
},
|
|
@@ -60,5 +73,17 @@ Ext.define('Coon.report.component.settings.parameter.ReportFormParameterEditPane
|
|
|
60
73
|
}],
|
|
61
74
|
}
|
|
62
75
|
],
|
|
76
|
+
|
|
77
|
+
initComponent() {
|
|
78
|
+
this.callParent();
|
|
79
|
+
const parametersPropsPanel = this.lookup('parametersPropsPanel');
|
|
80
|
+
parametersPropsPanel.add({
|
|
81
|
+
xtype: 'ReportParametersExtraPropsGrid',
|
|
82
|
+
flex: 1,
|
|
83
|
+
title: 'extraProps',
|
|
84
|
+
parameterPropertiesGrid: this.lookup('parameterProperties'),
|
|
85
|
+
parametersGrid: this.lookup('parametersGrid'),
|
|
86
|
+
});
|
|
87
|
+
},
|
|
63
88
|
});
|
|
64
89
|
|
package/src/version.js
CHANGED