ru.coon 3.0.90 → 3.0.91

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.
Files changed (31) hide show
  1. package/.claude/settings.local.json +2 -1
  2. package/AGENTS.md +26 -0
  3. package/CHANGELOG.md +46 -0
  4. package/CLAUDE.md +74 -0
  5. package/package.json +1 -1
  6. package/src/report/column/BigNumColumn.js +9 -0
  7. package/src/report/column/BigNumIndicationColumn.js +8 -0
  8. package/src/report/column/BooleanIconColumn.js +7 -0
  9. package/src/report/column/Check.js +9 -0
  10. package/src/report/column/CounterColumn.js +7 -0
  11. package/src/report/column/DynamicActionColumn.js +7 -0
  12. package/src/report/column/HintColumn.js +6 -0
  13. package/src/report/column/HintDateColumn.js +7 -0
  14. package/src/report/column/HintTimeIntervalColumn.js +9 -0
  15. package/src/report/column/IconSvgColumn.js +9 -0
  16. package/src/report/column/LinkColumn.js +11 -0
  17. package/src/report/column/MoneyColumn.js +8 -0
  18. package/src/report/column/MultiColumn.js +48 -0
  19. package/src/report/column/PercentColumn.js +8 -0
  20. package/src/report/column/ThreeStateCheckColumn.js +9 -0
  21. package/src/report/column/TimeIntervalColumn.js +8 -0
  22. package/src/report/component/reportpanel/ReportGrid.js +5 -1
  23. package/src/report/component/settings/ReportFormEditPanel.js +13 -3
  24. package/src/report/component/settings/column/ColumnPropertiesGrid.js +287 -0
  25. package/src/report/component/settings/column/ColumnPropertiesWindow.js +108 -0
  26. package/src/report/component/settings/column/ColumnPropertiesWindowController.js +264 -0
  27. package/src/report/component/settings/column/ColumnXTypeTreeCombo.js +64 -0
  28. package/src/report/component/settings/field/ReportFormFieldEditPanel.js +24 -7
  29. package/src/report/component/settings/field/ReportFormFieldEditPanelController.js +74 -0
  30. package/src/report/utils/ColumnUtils.js +550 -0
  31. package/src/version.js +1 -1
@@ -3,7 +3,8 @@
3
3
  "allow": [
4
4
  "Bash(for dir in /Users/dsl/Code/ru.coon/src/*/)",
5
5
  "Bash(grep:*)",
6
- "Bash(npx eslint:*)"
6
+ "Bash(npx eslint:*)",
7
+ "WebFetch(domain:docs.sencha.com)"
7
8
  ]
8
9
  }
9
10
  }
package/AGENTS.md ADDED
@@ -0,0 +1,26 @@
1
+ # Project Name
2
+
3
+ core of ExtJS 7 extensive expandable components
4
+
5
+ ## Code Style
6
+
7
+ - Follow ESLint configuration
8
+ - Use 2 spaces for indentation
9
+ - one file for one class
10
+
11
+ ## Architecture
12
+
13
+ - Follow DRY pattern
14
+ - Keep components under 200 lines
15
+ - Use dependency injection
16
+
17
+ ## Testing
18
+
19
+ - Write unit tests for all business logic
20
+ - Maintain >80% code coverage
21
+ - Use Jest for testing
22
+
23
+ ## Security
24
+
25
+ - Never commit API keys or secrets
26
+ - Validate all user inputs
package/CHANGELOG.md CHANGED
@@ -1,4 +1,47 @@
1
+ # Version 3.0.91, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5f39a79a9aef0657afb88db535f0232e36860beb)
2
+ * ## Features
3
+ * <span style='color:green'>feat: add hardcoded column properties dictionary with ExtJS 7 descriptions
4
+
5
+ - Add centralized basePropertyDescriptions object in ColumnUtils.js with descriptions for all basic ExtJS column properties (dataIndex, text, width, align, etc.) translated to Russian
6
+ - Modify getColumnConfigKeysWithMeta() to use basePropertyDescriptions as fallback when property has no meta.config description
7
+ - Add meta.config with descriptions to 14 custom Coon columns:
8
+ - BigNumColumn: precision, decSeparator, groupSeparator
9
+ - MoneyColumn: negativeCls, markNegative
10
+ - HintColumn: hintProperty
11
+ - HintDateColumn: format
12
+ - LinkColumn: linkType, context, extSystemObjectId, extSystemObjectTypeId, extSystemTypeId
13
+ - PercentColumn: negativeCls, markNegative
14
+ - TimeIntervalColumn, HintTimeIntervalColumn: startTimeDataIndex, stopTimeDataIndex, currentTimeDataIndex
15
+ - IconSvgColumn: trueIcon, falseIcon, iconPrefix
16
+ - BooleanIconColumn: falsyMode, iconPrefix
17
+ - ThreeStateCheckColumn: countOnCheck, maskDisplayThreshold, groupingCheckboxWidth, checkboxWidth
18
+ - DynamicActionColumn: altText
19
+ - CounterColumn: pagging
20
+ - BigNumIndicationColumn: rgtField, lftField
21
+ - Check: editable, checkedValue, uncheckedValue
22
+
23
+ This enables the column properties selection UI window to display meaningful Russian descriptions for both basic ExtJS properties and custom Coon column properties, significantly improving user experience when configuring report fields.
24
+
25
+ Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com></span> ([fea343], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/fea3435c52c0372a89083c73045cd766471f341f))
26
+ * <span style='color:green'>feat: add Column configuration editor</span> ([a4bb32], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/a4bb32928be7fa1149edebbad80f18aa0fd11aa9))
27
+
28
+ * ## Fixes
29
+ * <span style='color:red'> save basePropertyDescriptions reference to avoid 'this' context issue
30
+
31
+ In getColumnConfigKeysWithMeta(), save basePropertyDescriptions to a variable
32
+ before the forEach loop to avoid 'this' context being undefined in the callback.
33
+
34
+ This fixes the 'Cannot read properties of undefined' error when trying to access
35
+ this.basePropertyDescriptions inside the forEach callback.
36
+
37
+ Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com></span> ([f4ba33], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f4ba3304f48affe2ccbc19172667ad80eab291d4))
38
+
39
+ * up ([d3fd93], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d3fd93d49a1208058525d53cf3313c998d97baaa))
40
+ * upd ([55b6dc], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/55b6dc31158e59bff6d693f4f4b4884b122fdf7b))
41
+ * update: CHANGELOG.md ([7dc9fb], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7dc9fbdc0a0fd995deff0c07498eaefd8313374c))
42
+
1
43
  # Version 3.0.90, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/1936c3aef38324ad97d978bb306d1c142d94fe10)
44
+ * upd ([59687c], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/59687c5aadf1f207f0d04e9a747d251937da1397))
2
45
  * bugfix: [ControlColumnByParamPlugin] Исправлена логика функции matchFilterValue. Closes NEVA-1043. ([344f24], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/344f248767c26edd67e952fb3bba6c28d0908e9b))
3
46
  * update: CHANGELOG.md ([6b6d14], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/6b6d149e88431a3c2fb144be1a676d76cd1b5175))
4
47
 
@@ -13,7 +56,10 @@
13
56
  * <span style='color:green'>feat: Поддержка множественных текстовых значений фильтра, разделитель - запятая. Related to NEVA-1043.</span> ([20008a], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/20008a908515f953ca299764958dc24062ec9206))
14
57
 
15
58
  * Функция stringToArray перенесена в плагин ControlColumnByParamPlugin. Related to NEVA-1043. ([118215], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/1182151d5dbd5c2100ebf11c987e13047eeec7ab))
59
+ * upd ([d43e10], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d43e109c6aef87755414c02495602f7f20dba9c6))
16
60
  * Используется Coon.format.stringToArray. Related to NEVA-1043. ([d2d101], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/d2d101adc766c1c9168ee2f6e542e1c61c5d1f3e))
61
+ * upd ([7423e3], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/7423e399f1a13a581e4eceb2f8d45407d214b95e))
62
+ * upd ([60c12b], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/60c12bf9791554b288799f72022f3c8e81f09cf4))
17
63
  * update: CHANGELOG.md ([e84cf5], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/e84cf50be8f49f9f04e0f6455823a5d4a5cbfacb))
18
64
 
19
65
  # Version 3.0.88, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/a72099d6e504067f855a039fa59064412650d2ed)
package/CLAUDE.md ADDED
@@ -0,0 +1,74 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Project Overview
6
+
7
+ ru.coon is a library of ExtJS 7 extensive expandable components used as a Sencha package. The namespace is `Coon` (with alternate class names `Sigma.common.*` and `Leaves.common.*` for backwards compatibility).
8
+
9
+ ## Build & Development Commands
10
+
11
+ ```bash
12
+ # Install dependencies
13
+ pnpm install
14
+
15
+ # Generate documentation
16
+ npm run doc
17
+
18
+ # Lint all JS files
19
+ npx eslint src/
20
+
21
+ # Lint specific file
22
+ npx eslint src/path/to/file.js
23
+ ```
24
+
25
+ Pre-commit hooks run lint-staged automatically on `.js` files.
26
+
27
+ ## Code Style
28
+
29
+ - **Indentation**: 4 spaces (not 2)
30
+ - **Max line length**: 150 characters
31
+ - **Semicolons**: Required
32
+ - **Trailing commas**: Required in multiline objects, not in arrays/functions
33
+ - **camelCase**: Disabled (allow snake_case)
34
+ - **Google ESLint config** is the base
35
+
36
+ ## Architecture
37
+
38
+ ### Main Entry Point
39
+ `index.js` - Imports external dependencies (echarts, ace-builds, sql-formatter, etc.) and exposes them to `window` and `Ext` globals.
40
+
41
+ ### Core Singletons
42
+
43
+ - **`Coon.Function`** (`src/Function.js`) - Request handling, component utilities, grid/form operations
44
+ - **`Coon.util`** (`src/util.js`) - Hash generation, command utilities, promisified commands
45
+ - **`Coon.format`** (`src/format.js`) - Date/time formatting, number formatting, intervals
46
+ - **`Coon.log`** (`src/log.js`) - Logging utilities
47
+
48
+ ### Command Pattern
49
+ Commands in `src/command/` extend `Coon.command.BaseCommand`. Commands emit `complete` and `failure` events and can be promisified via `Coon.util.promisifyCmd()`. Aliases follow the pattern `command.CommandName`.
50
+
51
+ ### Component Factory
52
+ `Coon.common.ComponentFactory` creates and caches UI components from menu/route configurations. Handles ReportPanel filter initialization.
53
+
54
+ ### Key Directories
55
+
56
+ - **`src/app/`** - Application class, router, viewport, login
57
+ - **`src/nav/`** - Navigation panels, menus, favorites bar
58
+ - **`src/common/`** - Reusable components, fields, buttons, panels
59
+ - **`src/report/`** - Report components, models, stores, columns, plugins
60
+ - **`src/command/`** - Command classes for async operations
61
+ - **`sass/`** - SCSS files following Sencha structure (etc/var/src)
62
+
63
+ ### Global Objects
64
+
65
+ Code expects these globals:
66
+ - `Ext` - ExtJS framework
67
+ - `JSON5` - JSON5 parser (set from index.js)
68
+ - `Coon` - Main namespace
69
+ - `Iconpack` - Icon utilities
70
+ - `Decimal` - decimal.js-light for precision math
71
+
72
+ ## Dependencies
73
+
74
+ This is a Sencha package (`sencha.type: "code"`) meant to be included in ExtJS applications. External dependencies (ace-builds, echarts, etc.) are re-exported through `index.js` onto the `Ext` global.
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "ru.coon"
5
5
  },
6
6
  "description": "",
7
- "version": "3.0.90",
7
+ "version": "3.0.91",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+http://gitlab-dbr.sigma-it.local/dbr/ru.coon"
@@ -5,6 +5,15 @@ Ext.define('Coon.report.column.BigNumColumn', {
5
5
  'Sigma.common.column.BigNumColumn',
6
6
  'Sigma.grid.column.BigNumColumn'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ precision: 'Количество знаков после запятой для отображения числа',
12
+ decSeparator: 'Разделитель дробной части числа. По умолчанию точка (".")',
13
+ groupSeparator: 'Разделитель групп разрядов (тысяч, миллионов). По умолчанию пробел (" ")',
14
+ },
15
+ },
16
+
8
17
  align: 'right',
9
18
  cellSumPluginConfig: {
10
19
  valueType: 'float',
@@ -5,6 +5,14 @@ Ext.define('Coon.report.column.BigNumIndicationColumn', {
5
5
  'Sigma.common.column.BigNumIndicationColumn',
6
6
  'Sigma.grid.column.BigNumIndicationColumn'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ rgtField: 'Имя поля в модели данных с правой границей для индикации значения',
12
+ lftField: 'Имя поля в модели данных с левой границей для индикации значения',
13
+ },
14
+ },
15
+
8
16
  uses: [],
9
17
  requires: [],
10
18
  align: 'right',
@@ -4,6 +4,13 @@ Ext.define('Coon.report.column.BooleanIconColumn', {
4
4
  'BooleanIconColumn'
5
5
  ],
6
6
 
7
+ meta: {
8
+ config: {
9
+ falsyMode: 'Показывать иконку "cancel-small" для пустых/null значений. По умолчанию false',
10
+ iconPrefix: 'Префикс CSS класса для иконки. По умолчанию "svg-icon"',
11
+ },
12
+ },
13
+
7
14
  getStatusIcon(value) {
8
15
  if (Ext.isEmpty(value)) {
9
16
  return this.falsyMode ? 'cancel-small' : '';
@@ -5,6 +5,15 @@ Ext.define('Coon.report.column.Check', {
5
5
  'Sigma.common.column.Check',
6
6
  'Sigma.grid.column.Check'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ editable: 'Разрешить изменение состояния чекбокса пользователем. По умолчанию false',
12
+ checkedValue: 'Значение, записываемое в модель при отмеченном чекбоксе. По умолчанию true',
13
+ uncheckedValue: 'Значение, записываемое в модель при снятом чекбоксе. По умолчанию false',
14
+ },
15
+ },
16
+
8
17
  uses: [],
9
18
  requires: [],
10
19
  editable: false,
@@ -5,6 +5,13 @@ Ext.define('Coon.report.column.CounterColumn', {
5
5
  'Sigma.common.column.CounterColumn',
6
6
  'Sigma.grid.column.CounterColumn'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ pagging: 'Объект пагинации с cursor для корректного отображения номера строки',
12
+ },
13
+ },
14
+
8
15
  uses: [],
9
16
  requires: [
10
17
  'Coon.format'
@@ -5,6 +5,13 @@ Ext.define('Coon.report.column.DynamicActionColumn', {
5
5
  'Sigma.common.column.DynamicActionColumn',
6
6
  'Sigma.grid.column.DynamicActionColumn'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ altText: 'Альтернативный текст для элементов img в колонке действий',
12
+ },
13
+ },
14
+
8
15
  uses: [],
9
16
  requires: [],
10
17
 
@@ -6,6 +6,12 @@ Ext.define('Coon.report.column.HintColumn', {
6
6
  'Sigma.grid.column.HintColumn'
7
7
  ],
8
8
 
9
+ meta: {
10
+ config: {
11
+ hintProperty: 'Имя поля в модели данных, значение которого будет использовано как подсказка (tooltip)',
12
+ },
13
+ },
14
+
9
15
  $metaConfig: {
10
16
  type: 'column',
11
17
  description: 'компонент выпадающего списка',
@@ -5,6 +5,13 @@ Ext.define('Coon.report.column.HintDateColumn', {
5
5
  'Sigma.common.column.HintDateColumn',
6
6
  'Sigma.grid.column.HintDateColumn'
7
7
  ],
8
+
9
+ meta: {
10
+ config: {
11
+ format: 'Формат отображения даты. По умолчанию "d.m.Y". Синтаксис PHP date()',
12
+ },
13
+ },
14
+
8
15
  uses: [],
9
16
  requires: [],
10
17
  constructor: function(cfg) {
@@ -7,6 +7,15 @@ Ext.define('Coon.report.column.HintTimeIntervalColumn', {
7
7
  ],
8
8
  uses: [],
9
9
  requires: [],
10
+
11
+ meta: {
12
+ config: {
13
+ startTimeDataIndex: 'Имя поля в модели данных с датой/временем начала интервала',
14
+ stopTimeDataIndex: 'Имя поля в модели данных с датой/временем окончания интервала',
15
+ currentTimeDataIndex: 'Имя поля в модели данных с текущим временем (опционально)',
16
+ },
17
+ },
18
+
10
19
  align: 'right',
11
20
  startTimeDataIndex: undefined,
12
21
  stopTimeDataIndex: undefined,
@@ -9,6 +9,15 @@ Ext.define('Coon.report.column.IconSvgColumn', {
9
9
  'Sigma.common.column.IconSvgColumn',
10
10
  'Sigma.grid.column.IconSvgColumn'
11
11
  ],
12
+
13
+ meta: {
14
+ config: {
15
+ trueIcon: 'Имя SVG иконки для отображения при значении true',
16
+ falseIcon: 'Имя SVG иконки для отображения при значении false',
17
+ iconPrefix: 'Префикс CSS класса для иконки. По умолчанию "svg-icon"',
18
+ },
19
+ },
20
+
12
21
  uses: [],
13
22
  requires: [],
14
23
  getStatusIcon(value) {
@@ -2,6 +2,17 @@ Ext.define('Coon.report.column.LinkColumn', {
2
2
  extend: 'Ext.grid.column.Widget',
3
3
  alias: 'widget.LinkColumn',
4
4
  alternateClassName: 'Sigma.grid.column.LinkColumn',
5
+
6
+ meta: {
7
+ config: {
8
+ linkType: 'Тип обработчика ссылки. По умолчанию "openLink"',
9
+ context: 'Объект контекста с параметрами для открытия ссылки',
10
+ extSystemObjectId: 'ID объекта внешней системы для навигации',
11
+ extSystemObjectTypeId: 'ID типа объекта внешней системы',
12
+ extSystemTypeId: 'ID типа внешней системы',
13
+ },
14
+ },
15
+
5
16
  uses: [],
6
17
  requires: [],
7
18
  groupRenderer: Coon.format.withHint,
@@ -4,6 +4,14 @@ Ext.define('Coon.report.column.MoneyColumn', {
4
4
  alternateClassName: [
5
5
  'Sigma.grid.column.MoneyColumn'
6
6
  ],
7
+
8
+ meta: {
9
+ config: {
10
+ negativeCls: 'CSS класс, применяемый к ячейкам с отрицательными суммами',
11
+ markNegative: 'Выделять отрицательные суммы специальным CSS классом',
12
+ },
13
+ },
14
+
7
15
  uses: [],
8
16
  requires: [],
9
17
  align: 'right',
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Мультиколонка для динамического создания колонок в отчетах
3
+ *
4
+ * Пример конфигурации в свойствах поля отчета:
5
+ * {
6
+ * fieldPrefix: 'employee',
7
+ * columnXType: 'hintColumn',
8
+ * columnConfig: {
9
+ * align: 'right',
10
+ * width: 120
11
+ * }
12
+ * }
13
+ *
14
+ * При получении данных с бэкенда вида:
15
+ * {
16
+ * employee_name_1: 'Иванов',
17
+ * employee_value_1: 'Разработчик',
18
+ * employee_name_2: 'Петров',
19
+ * employee_value_2: 'Тестировщик'
20
+ * }
21
+ *
22
+ * Будут созданы динамические колонки с заголовками из *_name_* и данными из *_value_*
23
+ **/
24
+ Ext.define('Coon.report.column.MultiColumn', {
25
+ extend: 'Ext.grid.column.Column',
26
+ xtype: 'MultiColumn',
27
+
28
+
29
+ meta: {
30
+ config: {
31
+ fieldPrefix: `
32
+ префикс имени поля в БД,
33
+ по нему отбираются данные для отображения в MultiColumn,
34
+ например: employee_name_1 / employee__1,
35
+ в результате будут созданы динамические колонки
36
+ с заголовками из *_name_* и данными из *_value_*
37
+ `,
38
+ columnXType: 'xtype динамической колонки',
39
+ columnConfig: 'конфигурация xtype динамической колонки',
40
+ },
41
+ },
42
+
43
+ config: {
44
+ fieldPrefix: undefined,
45
+ columnXType: 'hintColumn',
46
+ columnConfig: {},
47
+ },
48
+ });
@@ -4,6 +4,14 @@ Ext.define('Coon.report.column.PercentColumn', {
4
4
  alternateClassName: [
5
5
  'Sigma.grid.column.PercentColumn'
6
6
  ],
7
+
8
+ meta: {
9
+ config: {
10
+ negativeCls: 'CSS класс, применяемый к ячейкам с отрицательными процентами',
11
+ markNegative: 'Выделять отрицательные проценты специальным CSS классом',
12
+ },
13
+ },
14
+
7
15
  uses: [],
8
16
  requires: [],
9
17
  align: 'right',
@@ -36,6 +36,15 @@ Ext.define('Coon.report.column.ThreeStateCheckColumn', {
36
36
  groupingCheckboxWidth: 50,
37
37
  checkboxWidth: 40,
38
38
 
39
+ meta: {
40
+ config: {
41
+ countOnCheck: 'Отслеживать количество отмеченных строк через события checkchange',
42
+ maskDisplayThreshold: 'Количество записей для показа маски при массовом выборе. По умолчанию 1000',
43
+ groupingCheckboxWidth: 'Ширина колонки чекбокса при включенной группировке. По умолчанию 50',
44
+ checkboxWidth: 'Ширина колонки чекбокса без группировки. По умолчанию 40',
45
+ },
46
+ },
47
+
39
48
  constructor: function(cfg) {
40
49
  this.wrapOriginalToggleAll();
41
50
  this.callParent([cfg]);
@@ -6,6 +6,14 @@ Ext.define('Coon.report.column.TimeIntervalColumn', {
6
6
  ],
7
7
  requires: ['Coon.format'],
8
8
 
9
+ meta: {
10
+ config: {
11
+ startTimeDataIndex: 'Имя поля в модели данных с датой/временем начала интервала',
12
+ stopTimeDataIndex: 'Имя поля в модели данных с датой/временем окончания интервала',
13
+ currentTimeDataIndex: 'Имя поля в модели данных с текущим временем (опционально)',
14
+ },
15
+ },
16
+
9
17
  align: 'right',
10
18
  startTimeDataIndex: undefined,
11
19
  stopTimeDataIndex: undefined,
@@ -11,7 +11,10 @@ Ext.define('Coon.report.component.reportpanel.ReportGrid', {
11
11
  'Ext.grid.column.*',
12
12
  'Sigma.common.column.*'
13
13
  ],
14
- requires: ['Ext.data.Store'],
14
+ requires: [
15
+ 'Ext.data.Store',
16
+ 'Coon.report.utils.ColumnUtils'
17
+ ],
15
18
  cls: 'ReportGrid',
16
19
  allowDeselect: false,
17
20
  frame: false,
@@ -166,4 +169,5 @@ Ext.define('Coon.report.component.reportpanel.ReportGrid', {
166
169
  }
167
170
  return this.features.find((feature) => feature.ftype === ftype);
168
171
  },
172
+
169
173
  });
@@ -50,13 +50,22 @@ Ext.define('Coon.report.component.settings.ReportFormEditPanel', {
50
50
  ],
51
51
  }],
52
52
  items: [
53
- {xtype: 'ReportFormCommonPanel'},
54
- {xtype: 'ReportFormParameterEditPanel'},
53
+ {
54
+ xtype: 'ReportFormCommonPanel',
55
+ title: 'Общие параметры',
56
+ },
57
+ {
58
+ xtype: 'ReportFormParameterEditPanel',
59
+ title: 'Параметры',
60
+ },
55
61
  {
56
62
  xtype: 'ReportFormFieldEditPanel',
63
+ title: 'Поля',
57
64
  reference: 'fieldsPanel',
58
65
  },
59
- {xtype: 'ReportPropertiesPanel',
66
+ {
67
+ xtype: 'ReportPropertiesPanel',
68
+ title: 'Свойства',
60
69
  reference: 'properties',
61
70
  bind: {
62
71
  data: '{report.properties}',
@@ -64,6 +73,7 @@ Ext.define('Coon.report.component.settings.ReportFormEditPanel', {
64
73
  },
65
74
  {
66
75
  xtype: 'ReportFormPluginPanel',
76
+ title: 'Плагины',
67
77
  reference: 'plugins',
68
78
  }
69
79
  ],