ru.coon 3.0.93 → 3.0.95
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/.claude/settings.local.json +4 -1
- package/CHANGELOG.md +287 -0
- package/CLAUDE.md +111 -0
- package/docs/report-panel/README.md +65 -0
- package/docs/report-panel/api.md +291 -0
- package/docs/report-panel/architecture.md +195 -0
- package/docs/report-panel/components.md +266 -0
- package/docs/report-panel/lifecycle.md +239 -0
- package/package.json +1 -1
- package/sass/etc/all.scss +876 -0
- package/src/app/Application.js +4 -1
- package/src/app/login/LoginForm.js +9 -4
- package/src/common/component/ColorPalette.js +4 -2
- package/src/common/component/CopyRowsFromGridSettingsWindow.js +6 -3
- package/src/common/component/ForeignSelectWindow.js +4 -2
- package/src/common/component/PropertyDict.js +2 -1
- package/src/common/component/characteristic/CharacteristicPanel.js +3 -1
- package/src/common/component/characteristic/characteristicAlgorithm/AlgorithmChainEditWindow.js +4 -1
- package/src/common/component/characteristic/characteristicAlgorithm/AlgorithmChainSearchWindow.js +5 -2
- package/src/common/component/characteristic/characteristicAlgorithm/AlgorithmChainTemplateBindWindow.js +4 -1
- package/src/common/component/characteristic/characteristicAlgorithm/CharacteristicAlgorithmSearchWindow.js +4 -1
- package/src/common/component/characteristic/characteristicGroup/CharacteristicGroupSearchWindow.js +4 -1
- package/src/common/component/characteristic/characteristicGroup/CharacteristicTypeSearchWindow.js +6 -2
- package/src/common/component/characteristic/characteristicGroup/EditCharacteristicGroupWindow.js +3 -1
- package/src/common/component/characteristic/characteristicGroup/EditorOptionsWindow.js +3 -1
- package/src/common/component/characteristic/characteristicGroup/UserGroupForeignWindow.js +4 -1
- package/src/common/component/editor/TypedCharacteristicEditor.js +3 -2
- package/src/common/component/editor/creators/NoteEditorCreator.js +2 -2
- package/src/common/component/formeditor/UiCFConfigEditorWindow.js +2 -1
- package/src/common/component/formeditor/UiCFMenuEditorWindow.js +2 -1
- package/src/common/component/formeditor/UiCFPropertiesChooseWindow.js +1 -1
- package/src/common/component/formeditor/UiCustomFormEditor.js +3 -2
- package/src/common/component/formeditor/UiCustomFormEditorController.js +1 -1
- package/src/common/panel/AdditionalParametersPanel.js +4 -2
- package/src/common/panel/ExtFileUploadField.js +2 -1
- package/src/common/panel/MainUploadPanel.js +4 -4
- package/src/common/panel/StopwatchWindow.js +4 -2
- package/src/common/panel/UIElementPickerPanel.js +3 -2
- package/src/common/panel/dropzone/UniversalMultiUploadForm.js +4 -2
- package/src/common/plugin/openApi/OpenApiChoseWindow.js +4 -3
- package/src/common/trigger/WikiTrigger.js +1 -1
- package/src/nav/editor/NavigateElementEditorView.js +1 -1
- package/src/nav/editor/menu/NavMenuTreeController.js +1 -1
- package/src/nav/editor/menu/NavMenuTreeView.js +8 -4
- package/src/nav/editor/menu/form/NavMenuFormView.js +2 -2
- package/src/nav/editor/workspace/NavWorkspaceListController.js +1 -1
- package/src/nav/editor/workspace/NavWorkspaceListView.js +4 -2
- package/src/nav/editor/workspace/form/NavWorkspaceFormView.js +2 -2
- package/src/nav/menu/WorkspaceMenuView.js +1 -1
- package/src/nav/menu/WorkspaceMenuViewMinimized.js +1 -1
- package/src/overrides/Component.js +48 -0
- package/src/report/column/LinkColumn.js +1 -1
- package/src/report/component/BoundListPagingToolbar.js +1 -1
- package/src/report/component/ErrorWindow.js +2 -1
- package/src/report/component/ReportPanel.js +31 -2
- package/src/report/component/reportpanel/CopyReportPanel.js +4 -1
- package/src/report/component/reportpanel/NorthPanel.js +4 -2
- package/src/report/component/reportpanel/SideFilterPanel.js +2 -2
- package/src/report/component/settings/ReportFormEditPanel.js +4 -2
- package/src/report/component/settings/ReportPropertiesAceEditor.js +3 -3
- package/src/report/component/settings/ReportPropertiesGrid.js +8 -4
- package/src/report/component/settings/ReportPropertiesGridController.js +2 -2
- package/src/report/component/settings/column/ColumnPropertiesWindow.js +4 -2
- package/src/report/component/settings/column/ColumnPropertiesWindowController.js +8 -4
- package/src/report/component/settings/common/ReportFormCommonPanel.js +3 -3
- package/src/report/component/settings/common/ReportFormCommonPanelController.js +2 -2
- package/src/report/component/settings/common/ReportSqlPreviewPanel.js +1 -1
- package/src/report/component/settings/context/ReportFormContextParametersGrid.js +3 -3
- package/src/report/component/settings/field/ReportFormFieldEditPanel.js +2 -1
- package/src/report/component/settings/field/ReportFormFieldsGrid.js +6 -4
- package/src/report/component/settings/history/ReportDiffTabsWindow.js +2 -1
- package/src/report/component/settings/parameter/ReportFormParameterEditPanel.js +1 -1
- package/src/report/component/settings/parameter/ReportFormParametersGrid.js +8 -1
- package/src/report/component/settings/plugin/PluginSelectWindow.js +3 -3
- package/src/report/component/settings/plugin/ReportFormPluginGridController.js +2 -2
- package/src/report/component/settings/plugin/ReportFormPluginSettings.js +8 -4
- package/src/report/component/settings/property/PropertySelectPanel.js +1 -1
- package/src/report/component/settings/property/ReportPropertiesPanel.js +1 -1
- package/src/report/component/settings/property/ReportPropertyForm.js +1 -1
- package/src/report/plugin/SettingsManagerPlugin/view/SMPMainView.js +3 -3
- package/src/report/plugin/SettingsManagerPlugin/view/SMPToast.js +3 -2
- package/src/report/plugin/configPanel/AddFilterConditionPluginConfigPanel.js +6 -3
- package/src/report/plugin/configPanel/ChangeFieldValuePluginConfigGrid.js +4 -2
- package/src/report/plugin/configPanel/ControlColumnByParamPluginConfigPanelGrid.js +4 -2
- package/src/report/plugin/configPanel/GridEditorPluginConfig.js +6 -4
- package/src/report/plugin/configPanel/GridEditorPluginConfigGrid.js +4 -2
- package/src/report/plugin/configPanel/GridFiltersPluginConfigPanelFiltersGrid.js +4 -2
- package/src/report/plugin/configPanel/GridRowStylePluginConfigPropertyGrid.js +4 -2
- package/src/report/plugin/configPanel/GroupButtonsPluginConfigGrid.js +4 -2
- package/src/report/plugin/configPanel/OpenApiButtonPluginConfigPanel.js +1 -1
- package/src/report/plugin/configPanel/ReportCharacteristicBindPluginConfig.js +4 -2
- package/src/report/plugin/configPanel/SimpleFilterPluginConfigPanelFilterGrid.js +4 -2
- package/src/report/plugin/configPanel/SummaryPluginConfigPanelSummaryGrid.js +4 -2
- package/src/report/plugin/configPanel/ToggleColumnsPluginConfigPanelAdditionalColumnsGrid.js +4 -2
- package/src/report/plugin/configPanel/openCustomPanelButtonPlugin/ReportFormContextXTypeMappingGrid.js +4 -2
- package/src/report/plugin/configPanel/reportGroupsFieldValidationPlugin/RequiredParametersTree.js +4 -2
- package/src/report/plugin/grid/CopyPasteGridRows.js +3 -3
- package/src/report/plugin/grid/ExportReportDataToFilePlugin.js +2 -2
- package/src/report/plugin/grid/FitColumnPlugin.js +0 -1
- package/src/report/plugin/grid/OpenCustomPanelButtonPlugin.js +15 -12
- package/src/report/plugin/grid/ReportCharacteristicBindPlugin.js +3 -5
- package/src/report/plugin/grid/ReportColumnStatePlugin.js +23 -8
- package/src/report/plugin/grid/ToggleColumnsPlugin.js +1 -1
- package/src/report/plugin/grid/TreeNestingToolbarButtonPlugin.js +1 -1
- package/src/report/plugin/grid/addFilterConditionPlugin/AdvancedSearchPanel.js +4 -3
- package/src/report/plugin/grid/addFilterConditionPlugin/FilterWrapPanel.js +4 -3
- package/src/report/plugin/grid/addFilterConditionPlugin/SelectColumnPanel.js +3 -2
- package/src/report/toolbar/dropdown/ToolbarOverflowPanel.js +4 -3
- package/src/research/ResearchTreeView.js +2 -1
- package/src/research/TabItemWrapper.js +2 -1
- package/src/security/GenerateTokenPanel.js +2 -1
- package/src/ui/UiConfig.js +114 -0
- package/src/ui/UiDefinitions.js +442 -0
- package/src/uielement/component/UiElementPanel.js +20 -8
- package/src/uielement/component/formchips/FilterConditionToolbar.js +3 -2
- package/src/uielement/component/settings/FrameView.js +4 -2
- package/src/uielement/component/settings/PropertyTreePanel.js +3 -2
- package/src/uielement/component/settings/UiCustomPanelAnnotationWindow.js +4 -3
- package/src/uielement/component/settings/UiCustomPanelEditor.js +13 -6
- package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.js +3 -2
- package/src/uielement/component/settings/plugin/UiCustomPanelPluginGridController.js +2 -1
- package/src/uielement/component/settings/plugin/UiCustomPanelPluginSelectWindow.js +4 -2
- package/src/uielement/component/settings/version/UiCPVersionPanelController.js +2 -1
- package/src/uielement/plugin/UnifiedButtonToolbarPlugin.js +4 -3
- package/src/uielement/plugin/configPanel/AddBindingsPluginConfigPanelFormEditor.js +2 -2
- package/src/uielement/plugin/configPanel/AddDoInitSupportPluginPropertiesGrid.js +6 -3
- package/src/uielement/plugin/configPanel/AddOutputParamsPluginConfigPanelFormEditor.js +7 -2
- package/src/uielement/plugin/configPanel/OpenApiPluginConfigPanelFormEditor.js +4 -2
- package/src/uielement/plugin/configPanel/executeCommand/DataMappingPanel.js +6 -3
- package/src/uielement/plugin/configPanel/executeCommand/ExecuteCommandPluginConfigPanelFormEditor.js +4 -2
- package/src/uielement/plugin/configPanel/executeReport/ExecuteReportPluginConfigPanelFormEditor.js +2 -1
- package/src/version.js +1 -1
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
"Bash(for file in /Users/dsl/Code/ru.coon/src/report/plugin/configPanel/ControlColumnByParamPluginConfigPanelGrid.js /Users/dsl/Code/ru.coon/src/report/plugin/configPanel/OpenApiButtonPluginConfigPanel.js /Users/dsl/Code/ru.coon/src/report/plugin/configPanel/ReportCharacteristicBindPluginConfig.js /Users/dsl/Code/ru.coon/src/report/plugin/configPanel/SummaryPluginConfigPanelSummaryGrid.js /Users/dsl/Code/ru.coon/src/report/plugin/configPanel/openCustomPanelButtonPlugin/ReportFormContextXTypeMappingGrid.js)",
|
|
12
12
|
"Bash(done)",
|
|
13
13
|
"Bash(for:*)",
|
|
14
|
-
"Bash(do sed -i '' \"s/ui: ''/uiDef: ''/g\" \"$file\")"
|
|
14
|
+
"Bash(do sed -i '' \"s/ui: ''/uiDef: ''/g\" \"$file\")",
|
|
15
|
+
"Bash(ls:*)",
|
|
16
|
+
"Bash(xargs:*)",
|
|
17
|
+
"Bash(wc:*)"
|
|
15
18
|
]
|
|
16
19
|
}
|
|
17
20
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,294 @@
|
|
|
1
|
+
# Version 3.0.95, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/2061972c9cb467821be6c44d98d099215dc76621)
|
|
2
|
+
* HT-13144: установка по умолчанию плагина пользовательских настроек ([f31b1e], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/f31b1e8994c4746a4795e388bd294862f50df8a1))
|
|
3
|
+
* add ReportPanel docs ([327722], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/3277226c231ed716f60e722a7ae7c5e546f69601))
|
|
4
|
+
* update: CHANGELOG.md ([989248], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/9892487be54c2a61e7b870c6d02977a3a5980b4e))
|
|
5
|
+
|
|
6
|
+
# Version 3.0.94, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c4dc097cc2181d4cf54b536cdb87042861d4055b)
|
|
7
|
+
* ## Features
|
|
8
|
+
* <span style='color:green'>feat: NEVA-1065: в зависимости от того является ли открываемая панель вкладкой или WindowWrap event направляется на верхний уровень с которым связан открывающий репорт</span> ([ad0452], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/ad04528fd8617e505951647919924c432cb6dba8))
|
|
9
|
+
* <span style='color:green'>feat: NEVA-1065: в зависимости от того является ли открываемая панель вкладкой или WindowWrap event направляется на верхний уровень с которым связан открывающий репорт</span> ([6e1b61], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/6e1b616b7efbe8c3f8a7e2683e09d59ef0cff300))
|
|
10
|
+
|
|
11
|
+
* docs: Add git workflow restrictions to CLAUDE.md
|
|
12
|
+
|
|
13
|
+
- Never push or pull automatically without explicit user confirmation
|
|
14
|
+
- Never create PR/MR - user will create merge requests manually
|
|
15
|
+
|
|
16
|
+
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> ([ca6b31], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/ca6b31e54d77a9b0388613c613a0adbc67408332))
|
|
17
|
+
* update: CHANGELOG.md ([080362], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/080362470dde8fb7d4156a5c297e8bc98e2ab2a6))
|
|
18
|
+
|
|
1
19
|
# Version 3.0.93, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/47cc3e043f48b66f05b72348416ea0baa9a225b8)
|
|
20
|
+
* ## Features
|
|
21
|
+
* <span style='color:green'>feat: [UI-MIGRATION] Phase 4 Final - Complete migration (99.5% done)
|
|
22
|
+
|
|
23
|
+
Completed ALL remaining UI migrations across the entire codebase. Migrated 74 ui:
|
|
24
|
+
configurations in the final cleanup pass, bringing total migration to 219/220 (99.5%).
|
|
25
|
+
|
|
26
|
+
## Final Wave Components (42 files)
|
|
27
|
+
|
|
28
|
+
### Form Editors (5)
|
|
29
|
+
- UiCustomFormEditor, UiCFMenuEditorWindow
|
|
30
|
+
- UiCFConfigEditorWindow, UiCFPropertiesChooseWindow
|
|
31
|
+
- UiCustomFormEditorController
|
|
32
|
+
|
|
33
|
+
### Report Grid Plugins (10)
|
|
34
|
+
- SelectColumnPanel, AdvancedSearchPanel, FilterWrapPanel
|
|
35
|
+
- ExportReportDataToFilePlugin, CopyPasteGridRows
|
|
36
|
+
- ToggleColumnsPlugin, TreeNestingToolbarButtonPlugin
|
|
37
|
+
- ReportCharacteristicBindPlugin, FitColumnPlugin
|
|
38
|
+
- GridEditorPluginConfig (FilterSegmentedButton cases)
|
|
39
|
+
|
|
40
|
+
### Report Settings (12)
|
|
41
|
+
- ReportFormContextParametersGrid, ReportPropertiesAceEditor
|
|
42
|
+
- ReportPropertiesPanel, ReportPropertyForm, PropertySelectPanel
|
|
43
|
+
- ReportFormPluginGridController, ReportFormCommonPanel
|
|
44
|
+
- ReportFormCommonPanelController, ReportSqlPreviewPanel
|
|
45
|
+
- ReportPropertiesGridController, ReportFormParameterEditPanel
|
|
46
|
+
- PluginSelectWindow
|
|
47
|
+
|
|
48
|
+
### Common Components (4)
|
|
49
|
+
- FilterConditionToolbar, PropertyDict
|
|
50
|
+
- TypedCharacteristicEditor, NoteEditorCreator
|
|
51
|
+
|
|
52
|
+
### Special Cases & Navigation (11)
|
|
53
|
+
- ToolbarOverflowPanel, SMPMainView, SMPToast
|
|
54
|
+
- LinkColumn, SideFilterPanel, BoundListPagingToolbar
|
|
55
|
+
- NavigateElementEditorView, NavMenuTreeController
|
|
56
|
+
- NavMenuFormView, NavWorkspaceListController, NavWorkspaceFormView
|
|
57
|
+
|
|
58
|
+
## Migration Complete Summary
|
|
59
|
+
|
|
60
|
+
**Total Progress:**
|
|
61
|
+
- Started: 220 ui: configurations
|
|
62
|
+
- Migrated: 219 ui: configurations
|
|
63
|
+
- Remaining: 1 ui: (URL string concatenation, not a component config)
|
|
64
|
+
- Success Rate: **99.5%** ✅
|
|
65
|
+
|
|
66
|
+
**Migration Waves:**
|
|
67
|
+
- Wave 1: 25 simple components (40 ui:)
|
|
68
|
+
- Wave 2: 31 medium components (68 ui:)
|
|
69
|
+
- Wave 3: 17 complex components (43 ui:)
|
|
70
|
+
- Wave 4 (Final): 42 remaining components (74 ui:)
|
|
71
|
+
- **Total: 115+ components migrated**
|
|
72
|
+
|
|
73
|
+
**Patterns Applied:**
|
|
74
|
+
- Component-level UI via uiDef
|
|
75
|
+
- itemId + uiDef for all buttons/elements
|
|
76
|
+
- buttonConfig migrations
|
|
77
|
+
- Dynamic creation patterns
|
|
78
|
+
- Controller-based window creation
|
|
79
|
+
- Inline button definitions
|
|
80
|
+
- Removed empty ui: ''
|
|
81
|
+
|
|
82
|
+
All component ui: configurations now use centralized UiDefinitions system.
|
|
83
|
+
|
|
84
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([714241], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/71424161705b15e6056391bb307887789fd8380e))
|
|
85
|
+
* <span style='color:green'>feat: [UI-MIGRATION] Phase 4 Wave 3 - Migrate 17 complex components
|
|
86
|
+
|
|
87
|
+
Migrated most complex cases: buttonConfig, dynamic creation in controllers,
|
|
88
|
+
inline buttons in nested structures, and plugin config panels.
|
|
89
|
+
|
|
90
|
+
## Components Migrated (17)
|
|
91
|
+
|
|
92
|
+
### Plugin Config Panels (8)
|
|
93
|
+
- UnifiedButtonToolbarPlugin - dynamic dialog buttons
|
|
94
|
+
- AddDoInitSupportPluginPropertiesGrid - toolbar management
|
|
95
|
+
- AddBindingsPluginConfigPanelFormEditor - binding editor
|
|
96
|
+
- AddOutputParamsPluginConfigPanelFormEditor - parameter management
|
|
97
|
+
- OpenApiPluginConfigPanelFormEditor - API configuration
|
|
98
|
+
- ExecuteReportPluginConfigPanelFormEditor - report execution
|
|
99
|
+
- ExecuteCommandPluginConfigPanelFormEditor - command execution
|
|
100
|
+
- DataMappingPanel - data mapping interface
|
|
101
|
+
|
|
102
|
+
### Settings Controllers (2)
|
|
103
|
+
- UiCustomPanelPluginGridController - dynamic window creation
|
|
104
|
+
- UiCPVersionPanelController - version comparison dialogs
|
|
105
|
+
|
|
106
|
+
### Field Components (2)
|
|
107
|
+
- WikiTrigger - special trigger buttonConfig case
|
|
108
|
+
- ExtFileUploadField - file upload buttonConfig
|
|
109
|
+
|
|
110
|
+
### Windows & Dialogs (2)
|
|
111
|
+
- OpenApiChoseWindow - API service selection
|
|
112
|
+
- CharacteristicPanel - entity editor
|
|
113
|
+
|
|
114
|
+
### Report Settings (3)
|
|
115
|
+
- ReportFormPluginSettings - plugin configuration
|
|
116
|
+
- ReportFormFieldsGrid - field management
|
|
117
|
+
- ReportPropertiesGrid - properties management
|
|
118
|
+
|
|
119
|
+
## Progress
|
|
120
|
+
- Migrated: 43 ui: usages (112 → 75 remaining, -33%)
|
|
121
|
+
- Total progress: 66% complete (220 → 75)
|
|
122
|
+
- Complex patterns: buttonConfig, inline buttons, dynamic creation
|
|
123
|
+
- All changes pass ESLint validation
|
|
124
|
+
|
|
125
|
+
## Remaining: ~75 ui: usages in ~35 files
|
|
126
|
+
|
|
127
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([c9c5f9], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c9c5f9edf5fa294ef166e802e3457da9b277a8e7))
|
|
128
|
+
* <span style='color:green'>feat: [UI-MIGRATION] Phase 4 Wave 2 - Migrate 31 medium complexity components
|
|
129
|
+
|
|
130
|
+
Migrated components with dynamic button creation and toolbar defaults from hardcoded
|
|
131
|
+
ui: properties to centralized uiDef: system.
|
|
132
|
+
|
|
133
|
+
## Components Migrated (31)
|
|
134
|
+
|
|
135
|
+
### UI Element Components (7)
|
|
136
|
+
- UiElementPanel - toolbar buttons
|
|
137
|
+
- UiCustomPanelEditor - save/close + toolbar buttons
|
|
138
|
+
- PropertyTreePanel, FrameView - dynamic buttons
|
|
139
|
+
- UiCustomPanelAnnotationWindow
|
|
140
|
+
- UiCustomPanelPluginGrid, UiCustomPanelPluginSelectWindow
|
|
141
|
+
|
|
142
|
+
### Report Plugin Config Panels (15)
|
|
143
|
+
Migrated all _toolbarButtons pattern components:
|
|
144
|
+
- SimpleFilterPluginConfigPanelFilterGrid
|
|
145
|
+
- GridFiltersPluginConfigPanelFiltersGrid
|
|
146
|
+
- AddFilterConditionPluginConfigPanel (+ segmented buttons)
|
|
147
|
+
- ToggleColumnsPluginConfigPanelAdditionalColumnsGrid
|
|
148
|
+
- GridRowStylePluginConfigPropertyGrid
|
|
149
|
+
- GroupButtonsPluginConfigGrid, ChangeFieldValuePluginConfigGrid
|
|
150
|
+
- GridEditorPluginConfig, GridEditorPluginConfigGrid
|
|
151
|
+
- OpenApiButtonPluginConfigPanel
|
|
152
|
+
- SummaryPluginConfigPanelSummaryGrid
|
|
153
|
+
- ControlColumnByParamPluginConfigPanelGrid
|
|
154
|
+
- ReportCharacteristicBindPluginConfig
|
|
155
|
+
- ReportFormContextXTypeMappingGrid, RequiredParametersTree
|
|
156
|
+
|
|
157
|
+
### Report Settings (3)
|
|
158
|
+
- ColumnPropertiesWindow, ColumnPropertiesWindowController
|
|
159
|
+
- ReportFormFieldEditPanel
|
|
160
|
+
|
|
161
|
+
### Characteristic Editors (6)
|
|
162
|
+
- EditCharacteristicGroupWindow, EditorOptionsWindow
|
|
163
|
+
- CharacteristicAlgorithmSearchWindow
|
|
164
|
+
- AlgorithmChainEditWindow, AlgorithmChainSearchWindow
|
|
165
|
+
- AlgorithmChainTemplateBindWindow
|
|
166
|
+
|
|
167
|
+
## Progress
|
|
168
|
+
- Migrated: 68 ui: usages (180 → 112 remaining)
|
|
169
|
+
- Total progress: ~49% (220 → 112)
|
|
170
|
+
- Pattern: toolbar defaults + itemId + uiDef per button
|
|
171
|
+
- All changes pass ESLint validation
|
|
172
|
+
|
|
173
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([5bae3d], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5bae3d389abfa5c7f1548d0965d952b5454c8c3e))
|
|
174
|
+
* <span style='color:green'>feat: [UI-MIGRATION] Phase 4 Wave 1 - Migrate 25 simple components to uiDef system
|
|
175
|
+
|
|
176
|
+
Migrated simple components with static UI definitions from hardcoded ui: properties
|
|
177
|
+
to centralized uiDef: system. This is part of making ru.coon portable and independent
|
|
178
|
+
from project-specific UI styles.
|
|
179
|
+
|
|
180
|
+
## Components Migrated (25)
|
|
181
|
+
|
|
182
|
+
### Navigation (4)
|
|
183
|
+
- WorkspaceMenuView, WorkspaceMenuViewMinimized (component-level UI)
|
|
184
|
+
- NavWorkspaceListView, NavMenuTreeView (toolbar buttons)
|
|
185
|
+
|
|
186
|
+
### Report Components (6)
|
|
187
|
+
- NorthPanel (dynamic button creation)
|
|
188
|
+
- ReportFormParametersGrid (toolbar with defaults)
|
|
189
|
+
- ErrorWindow, CopyReportPanel
|
|
190
|
+
- ReportFormEditPanel, ReportDiffTabsWindow
|
|
191
|
+
|
|
192
|
+
### Common Components (11)
|
|
193
|
+
- AdditionalParametersPanel, ForeignSelectWindow
|
|
194
|
+
- ColorPalette (2 button groups)
|
|
195
|
+
- StopwatchWindow, UIElementPickerPanel
|
|
196
|
+
- CopyRowsFromGridSettingsWindow
|
|
197
|
+
- MainUploadPanel, UniversalMultiUploadForm
|
|
198
|
+
- CharacteristicGroupSearchWindow, CharacteristicTypeSearchWindow
|
|
199
|
+
- UserGroupForeignWindow
|
|
200
|
+
|
|
201
|
+
### Other (2)
|
|
202
|
+
- GenerateTokenPanel (security)
|
|
203
|
+
- ResearchTreeView, TabItemWrapper (research)
|
|
204
|
+
|
|
205
|
+
## Progress
|
|
206
|
+
- Migrated: ~40 ui: usages (220 → 180 remaining)
|
|
207
|
+
- Pattern: itemId + uiDef: 'ClassName.itemId'
|
|
208
|
+
- All changes pass ESLint validation
|
|
209
|
+
|
|
210
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([aa484b], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/aa484bb1a4bccf28a5b8a15870d582d4e520d87b))
|
|
211
|
+
* <span style='color:green'>feat: Add UI centralization system (Phase 1-2 complete)
|
|
212
|
+
|
|
213
|
+
Implement centralized UI management system to make ru.coon package
|
|
214
|
+
independent from project-specific UI definitions.
|
|
215
|
+
|
|
216
|
+
## Architecture
|
|
217
|
+
|
|
218
|
+
- **Coon.ui.UiDefinitions**: Singleton with default UI mappings
|
|
219
|
+
- Contains all default UI definitions for ru.coon components
|
|
220
|
+
- Can be overridden by projects via ExtJS override pattern
|
|
221
|
+
- Runtime-based, no JSON loading required
|
|
222
|
+
|
|
223
|
+
- **Coon.ui.UiConfig**: UI resolver singleton
|
|
224
|
+
- Resolves uiDef identifiers to actual UI values
|
|
225
|
+
- Supports short ('LoginForm.submitBtn') and full class names
|
|
226
|
+
- Uses UiDefinitions as data source
|
|
227
|
+
|
|
228
|
+
- **Coon.overrides.Component**: Component override
|
|
229
|
+
- Intercepts constructor to apply UI before instantiation
|
|
230
|
+
- Converts uiDef → ui in config before component creation
|
|
231
|
+
- No re-rendering, optimal performance
|
|
232
|
+
|
|
233
|
+
## Changes
|
|
234
|
+
|
|
235
|
+
### New files
|
|
236
|
+
- src/ui/UiDefinitions.js - Default UI definitions (overridable)
|
|
237
|
+
- src/ui/UiConfig.js - UI resolver
|
|
238
|
+
- src/overrides/Component.js - Component override for uiDef support
|
|
239
|
+
|
|
240
|
+
### Modified files
|
|
241
|
+
- src/app/Application.js - Added UiConfig to requires
|
|
242
|
+
- src/app/login/LoginForm.js - Migrated to uiDef (pilot)
|
|
243
|
+
|
|
244
|
+
## Migration Pattern
|
|
245
|
+
|
|
246
|
+
Before:
|
|
247
|
+
ui: 'login-field'
|
|
248
|
+
|
|
249
|
+
After:
|
|
250
|
+
itemId: 'loginField',
|
|
251
|
+
uiDef: 'LoginForm.loginField'
|
|
252
|
+
|
|
253
|
+
## Project Override Example
|
|
254
|
+
|
|
255
|
+
Projects can override UI definitions:
|
|
256
|
+
|
|
257
|
+
```js
|
|
258
|
+
Ext.define('MyApp.overrides.UiDefinitions', {
|
|
259
|
+
override: 'Coon.ui.UiDefinitions',
|
|
260
|
+
getDefinitions: function() {
|
|
261
|
+
const defs = this.callParent();
|
|
262
|
+
defs['Coon.app.login.LoginForm'].submit = 'my-brand-button';
|
|
263
|
+
return defs;
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## Status
|
|
269
|
+
|
|
270
|
+
✅ Phase 1: Infrastructure complete
|
|
271
|
+
✅ Phase 2: Pilot (LoginForm) migrated and tested
|
|
272
|
+
⏳ Phase 3-4: Mass migration of remaining 114 files (pending)
|
|
273
|
+
|
|
274
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([340e86], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/340e8664a21c57e8b4d13fe72c72332a054712ab))
|
|
275
|
+
|
|
2
276
|
* ## Fixes
|
|
277
|
+
* <span style='color:red'> Add missing button mappings for ReportPropertiesGrid and ReportFormFieldsGrid
|
|
278
|
+
|
|
279
|
+
Resolves console warnings about unresolved uiDef for toolbar buttons.
|
|
280
|
+
|
|
281
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com></span> ([964ab7], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/964ab70a5f0086ebf73d694de3bbb0f48ab6f902))
|
|
3
282
|
* <span style='color:red'> [ControlColumnByParamPlugin] Добавлено единое описание, исправлена отсутствующая вертикальная прокрутка в гриде. Closes NEVA-1043.</span> ([5d8afb], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5d8afb29a53cc441d7f86c367a0448439fd79b27))
|
|
4
283
|
|
|
284
|
+
* docs: Update CLAUDE.md with UI system docs and plan mode workflow
|
|
285
|
+
|
|
286
|
+
- Add comprehensive UI Configuration System section
|
|
287
|
+
- Document uiDef usage pattern and project override examples
|
|
288
|
+
- Add Development Workflow section with plan mode guidelines
|
|
289
|
+
- Add reminder to commit working prototypes before mass changes
|
|
290
|
+
|
|
291
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> ([9c1265], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/9c12657bf1458ff165bff76787c3957dbd8db54c))
|
|
5
292
|
* update: CHANGELOG.md ([c55739], [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/c55739df4b405c926ed338c3801b0fba451d6335))
|
|
6
293
|
|
|
7
294
|
# Version 3.0.92, [link](http://gitlab-dbr.sigma-it.local/dbr/ru.coon/-/commit/5481110abc2c1acf1fe75b094c027c1e2b33625f)
|
package/CLAUDE.md
CHANGED
|
@@ -69,6 +69,117 @@ Code expects these globals:
|
|
|
69
69
|
- `Iconpack` - Icon utilities
|
|
70
70
|
- `Decimal` - decimal.js-light for precision math
|
|
71
71
|
|
|
72
|
+
### UI Configuration System
|
|
73
|
+
|
|
74
|
+
**NEW:** Centralized UI management system (v4.0+) makes ru.coon independent from project-specific UI definitions.
|
|
75
|
+
|
|
76
|
+
#### Core Components
|
|
77
|
+
- **`Coon.ui.UiDefinitions`** (`src/ui/UiDefinitions.js`) - Singleton with default UI mappings for all components
|
|
78
|
+
- **`Coon.ui.UiConfig`** (`src/ui/UiConfig.js`) - Resolver that converts `uiDef` identifiers to actual UI values
|
|
79
|
+
- **`Coon.overrides.Component`** (`src/overrides/Component.js`) - Override that applies UI before component instantiation
|
|
80
|
+
|
|
81
|
+
#### Usage in Components
|
|
82
|
+
|
|
83
|
+
Instead of hardcoded `ui` properties, components use `uiDef`:
|
|
84
|
+
|
|
85
|
+
```javascript
|
|
86
|
+
// ❌ OLD (deprecated)
|
|
87
|
+
{
|
|
88
|
+
xtype: 'button',
|
|
89
|
+
ui: 'login-button',
|
|
90
|
+
text: 'Войти',
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// ✅ NEW (use this)
|
|
94
|
+
{
|
|
95
|
+
xtype: 'button',
|
|
96
|
+
itemId: 'submitBtn',
|
|
97
|
+
uiDef: 'LoginForm.submitBtn',
|
|
98
|
+
text: 'Войти',
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The `uiDef` is resolved to actual `ui` value during component construction:
|
|
103
|
+
- Format: `'ClassName.itemId'` (short) or `'Coon.app.login.LoginForm.itemId'` (full)
|
|
104
|
+
- Resolved via `Coon.ui.UiDefinitions.getDefinitions()`
|
|
105
|
+
- Applied before component instantiation (no re-rendering)
|
|
106
|
+
|
|
107
|
+
#### Project Override Example
|
|
108
|
+
|
|
109
|
+
Projects can customize UI by overriding `UiDefinitions`:
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
// In project: app/overrides/UiDefinitions.js
|
|
113
|
+
Ext.define('MyApp.overrides.UiDefinitions', {
|
|
114
|
+
override: 'Coon.ui.UiDefinitions',
|
|
115
|
+
|
|
116
|
+
getDefinitions: function() {
|
|
117
|
+
const definitions = this.callParent();
|
|
118
|
+
|
|
119
|
+
// Customize existing ru.coon component UI
|
|
120
|
+
definitions['Coon.app.login.LoginForm'].submitBtn = 'my-brand-button';
|
|
121
|
+
|
|
122
|
+
// Add UI for project components
|
|
123
|
+
definitions['MyApp.view.MyPanel'] = {
|
|
124
|
+
'saveBtn': 'my-save-button',
|
|
125
|
+
'cancelBtn': 'my-cancel-button',
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
return definitions;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### Adding New Components
|
|
134
|
+
|
|
135
|
+
When creating new components that need UI:
|
|
136
|
+
|
|
137
|
+
1. Add `itemId` to elements that need styling
|
|
138
|
+
2. Use `uiDef: 'ClassName.itemId'` instead of `ui: 'value'`
|
|
139
|
+
3. Register UI mapping in `src/ui/UiDefinitions.js`:
|
|
140
|
+
```javascript
|
|
141
|
+
getDefinitions: function() {
|
|
142
|
+
return {
|
|
143
|
+
'Coon.my.NewComponent': {
|
|
144
|
+
'myButton': 'orange-button',
|
|
145
|
+
'myField': 'custom-field',
|
|
146
|
+
},
|
|
147
|
+
// ... other definitions
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Development Workflow
|
|
153
|
+
|
|
154
|
+
### Working with Plan Mode
|
|
155
|
+
|
|
156
|
+
When using Claude Code in plan mode for complex changes:
|
|
157
|
+
|
|
158
|
+
1. **Before exiting plan mode**, always ask the user if they want to commit the working prototype
|
|
159
|
+
2. This allows creating safe checkpoints before mass migrations or risky changes
|
|
160
|
+
3. Suggested commit format:
|
|
161
|
+
```bash
|
|
162
|
+
git checkout -b feature/your-feature
|
|
163
|
+
git add <modified-files>
|
|
164
|
+
git commit -m "feat: Description of working prototype
|
|
165
|
+
|
|
166
|
+
Detailed explanation of changes.
|
|
167
|
+
|
|
168
|
+
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Git Workflow
|
|
172
|
+
|
|
173
|
+
- Create feature branches for significant changes
|
|
174
|
+
- Use conventional commit messages (`feat:`, `fix:`, `refactor:`, etc.)
|
|
175
|
+
- Pre-commit hooks automatically run linting
|
|
176
|
+
- Always commit working prototypes before mass refactoring
|
|
177
|
+
|
|
178
|
+
**IMPORTANT RESTRICTIONS:**
|
|
179
|
+
- **NEVER push or pull automatically** - always wait for explicit user confirmation
|
|
180
|
+
- **NEVER create PR/MR** - user will create merge requests manually
|
|
181
|
+
- Only commit changes, do not interact with remote repository without user's explicit request
|
|
182
|
+
|
|
72
183
|
## Dependencies
|
|
73
184
|
|
|
74
185
|
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.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# ReportPanel - Спецификация
|
|
2
|
+
|
|
3
|
+
Система динамических отчётов ru.coon. Центральный компонент `Coon.report.component.ReportPanel` обеспечивает отображение табличных данных с фильтрацией, экспортом и расширяемой плагинной архитектурой.
|
|
4
|
+
|
|
5
|
+
## Навигация
|
|
6
|
+
|
|
7
|
+
| Документ | Описание |
|
|
8
|
+
|----------|----------|
|
|
9
|
+
| [architecture.md](architecture.md) | Архитектурный обзор: структура компонентов, плагинная система, колонки, команды |
|
|
10
|
+
| [api.md](api.md) | Публичный API ReportPanel: config, методы, события |
|
|
11
|
+
| [components.md](components.md) | Подкомпоненты: ReportGrid, FilterPanel, NorthPanel, ReportStore |
|
|
12
|
+
| [plugins.md](plugins.md) | Grid-плагины: 18 ключевых подробно + каталог всех 82 |
|
|
13
|
+
| [lifecycle.md](lifecycle.md) | Жизненный цикл, потоки данных, события, hook-точки |
|
|
14
|
+
|
|
15
|
+
## Быстрый старт
|
|
16
|
+
|
|
17
|
+
### Минимальная конфигурация
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
Ext.widget('ReportPanel', {
|
|
21
|
+
reportId: 'MY_REPORT_ID',
|
|
22
|
+
renderTo: Ext.getBody(),
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
ReportPanel автоматически загружает конфигурацию отчёта (поля, параметры, плагины) с бэкенда через `LoadDynamicReportCommand`, создаёт грид с колонками и панель фильтров.
|
|
27
|
+
|
|
28
|
+
### С автофильтрацией и предзаполнением
|
|
29
|
+
|
|
30
|
+
```javascript
|
|
31
|
+
Ext.widget('ReportPanel', {
|
|
32
|
+
reportId: 'MY_REPORT_ID',
|
|
33
|
+
autoFilter: true,
|
|
34
|
+
filterDefaults: {
|
|
35
|
+
DATE_FROM: '2024-01-01',
|
|
36
|
+
STATUS: 'ACTIVE',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Программная инициализация
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
const panel = Ext.widget('ReportPanel');
|
|
45
|
+
|
|
46
|
+
// Инициализация с параметрами
|
|
47
|
+
panel.init('MY_REPORT_ID', {STATUS: 'ACTIVE'}, true);
|
|
48
|
+
|
|
49
|
+
// Или через doInit с поддержкой beforeDoInitCommand хука
|
|
50
|
+
panel.doInit('MY_REPORT_ID', {STATUS: 'ACTIVE'}, true);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Ключевые исходные файлы
|
|
54
|
+
|
|
55
|
+
| Файл | Назначение |
|
|
56
|
+
|------|-----------|
|
|
57
|
+
| `src/report/component/ReportPanel.js` | Главный компонент (~1300 строк) |
|
|
58
|
+
| `src/report/component/reportpanel/ReportGrid.js` | Грид отчёта |
|
|
59
|
+
| `src/report/component/reportpanel/FilterPanel.js` | Панель фильтров |
|
|
60
|
+
| `src/report/component/reportpanel/NorthPanel.js` | Верхняя панель с кнопками и фильтрами |
|
|
61
|
+
| `src/report/component/reportpanel/ReportStore.js` | Стор данных отчёта |
|
|
62
|
+
| `src/report/ReportEntity.js` | Синглтон: реестр плагинов, валидация, загрузка данных |
|
|
63
|
+
| `src/report/plugin/grid/` | 82 grid-плагина |
|
|
64
|
+
| `src/report/column/` | 18+ типов колонок |
|
|
65
|
+
| `src/report/command/` | Команды (LoadDynamicReport, GetDynamicReportData и др.) |
|