ru.coon 2.5.34 → 2.5.35

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 (512) hide show
  1. package/.gitattributes +1 -1
  2. package/.husky/pre-commit +0 -0
  3. package/CHANGELOG.md +3629 -3614
  4. package/Readme.md +24 -24
  5. package/TODO.md +7 -7
  6. package/doc/changelog.md +118 -118
  7. package/doc/shortcuts.md +5 -5
  8. package/index.js +1 -0
  9. package/jsdoc.config.json +29 -29
  10. package/package.json +77 -77
  11. package/sass/src/common/plugin/form/PeriodPicker.scss +8 -8
  12. package/src/CustomXMLReader.js +42 -42
  13. package/src/FieldsHelper.js +141 -141
  14. package/src/MessageResources.js +58 -58
  15. package/src/SystemProperties.js +208 -208
  16. package/src/chart/BaseChart.js +81 -81
  17. package/src/chart/ChartComponent.js +14 -14
  18. package/src/chart/editor/CoonChartEditor.js +189 -189
  19. package/src/chart/editor/CoonChartEditorViewModel.js +28 -28
  20. package/src/chart/editor/DataSourceChartBindForm.js +153 -153
  21. package/src/command/ASyncBaseCommand.js +4 -3
  22. package/src/command/ASyncBaseJSONCommand.js +15 -15
  23. package/src/command/DeletePropertyFromConfigurationCommand.js +18 -18
  24. package/src/command/GetAllPropertiesWithDefaultCommand.js +6 -6
  25. package/src/command/GetPropertyFromConfigurationCommand.js +18 -18
  26. package/src/command/Readme.md +4 -4
  27. package/src/command/SavePropertyFromConfigurationCommand.js +18 -18
  28. package/src/command/characteristic/CharacteristicValuesCommand.js +50 -50
  29. package/src/command/characteristic/SetEntityCharacteristicsCommand.js +49 -49
  30. package/src/common/baseModel.js +39 -39
  31. package/src/common/button/ForeignButton.js +132 -132
  32. package/src/common/command/AddNoteCommand.js +42 -42
  33. package/src/common/command/DeleteNoteCommand.js +40 -40
  34. package/src/common/command/GetNoteCommand.js +40 -40
  35. package/src/common/command/SaveNoteCommand.js +42 -42
  36. package/src/common/component/DFVCharacteristicField.js +24 -24
  37. package/src/common/component/ExternalFrame.scss +8 -8
  38. package/src/common/component/FinanceDocumentDateWindow.js +47 -47
  39. package/src/common/component/ForeignSelectWindow.js +93 -93
  40. package/src/common/component/HotkeyHelpText.js +43 -43
  41. package/src/common/component/HotkeyHelpText.scss +34 -34
  42. package/src/common/component/PropertyDict.js +279 -279
  43. package/src/common/component/TreeComponentStructure.js +155 -155
  44. package/src/common/component/TreeComponentStructure.scss +5 -5
  45. package/src/common/component/YearPanel.js +76 -76
  46. package/src/common/component/characteristic/CharacteristicPanelController.js +90 -90
  47. package/src/common/component/characteristic/characteristicAlgorithm/CharacteristicAlgorithmListController.js +133 -133
  48. package/src/common/component/characteristic/characteristicGroup/CharacteristicGroupPanelController.js +47 -47
  49. package/src/common/component/editor/CharacteristicAddTypeGrid.js +101 -101
  50. package/src/common/component/editor/CharacteristicForeignWindow.js +76 -76
  51. package/src/common/component/editor/CharacteristicHistoryPanel.js +110 -110
  52. package/src/common/component/editor/CharacteristicHistoryPanelAudit.js +73 -73
  53. package/src/common/component/editor/CharacteristicHistoryPanelWithDeletedChars.js +136 -136
  54. package/src/common/component/editor/CharacteristicHistoryUserAudit.js +49 -49
  55. package/src/common/component/editor/CharacteristicLoaderByCharacteristicEntityPlugin.js +41 -41
  56. package/src/common/component/editor/CharacteristicTypeLoaderPlugin.js +38 -38
  57. package/src/common/component/editor/EditorFactory.js +21 -23
  58. package/src/common/component/editor/HistoryListForTypeCharacteristicEditor.js +51 -51
  59. package/src/common/component/editor/HistoryTypedCharacteristicEditor.js +240 -240
  60. package/src/common/component/editor/creators/BaseEditorCreator.js +22 -22
  61. package/src/common/component/editor/creators/ByReportEditorCreator.js +8 -8
  62. package/src/common/component/editor/creators/CustomPanelEditorCreator.js +66 -66
  63. package/src/common/component/editor/creators/NumberEditorCreator.js +44 -44
  64. package/src/common/component/editor/creators/SimpleReportEditorCreator.js +37 -37
  65. package/src/common/component/editor/creators/TriggerFieldEditorCreator.js +127 -127
  66. package/src/common/component/settings/commands/getUserSettingsCommand.js +6 -6
  67. package/src/common/component/settings/commands/setUserPropValueCommand.js +23 -23
  68. package/src/common/component/settings/modules/settingClosePageConfirmation.js +27 -27
  69. package/src/common/component/settings/modules/settingShowNeedReloadMessage.js +75 -75
  70. package/src/common/component/settings/modules/settingwindowHolder.js +21 -21
  71. package/src/common/component/settings/stores/userSettingsStoreService.js +37 -37
  72. package/src/common/field/BankBikField.js +15 -15
  73. package/src/common/field/BankKppField.js +16 -16
  74. package/src/common/field/BankOgrnField.js +71 -71
  75. package/src/common/field/BankOgrnIpField.js +23 -23
  76. package/src/common/field/BankPaymentAccountField.js +48 -48
  77. package/src/common/field/DatePickerPresetsField.js +256 -256
  78. package/src/common/field/FieldsHelper.js +198 -198
  79. package/src/common/field/ForeignField.js +186 -186
  80. package/src/common/field/IDField.js +22 -22
  81. package/src/common/field/InnField.js +86 -86
  82. package/src/common/field/OpenDialogField.js +16 -16
  83. package/src/common/field/PhoneField.js +38 -38
  84. package/src/common/field/PropertyField.js +83 -83
  85. package/src/common/field/ReportValueField.js +128 -128
  86. package/src/common/field/ReportValueField.scss +2 -2
  87. package/src/common/field/SelectIconClassField.js +58 -58
  88. package/src/common/field/SnilsField.js +35 -35
  89. package/src/common/field/checkbox/CustomValueCheckBox.js +113 -113
  90. package/src/common/field/combo/AbstractComponentsComboBox.js +32 -32
  91. package/src/common/field/combo/BillingLookupComboBox.js +21 -21
  92. package/src/common/field/combo/CommandComboBox.js +17 -17
  93. package/src/common/field/combo/CommandComboBox.scss +19 -19
  94. package/src/common/field/combo/ConstantList.js +26 -26
  95. package/src/common/field/combo/IsweDynamicCheckboxGroup.js +17 -17
  96. package/src/common/field/combo/PanelComboBox.js +21 -21
  97. package/src/common/field/combo/TownTypeComboBox.js +21 -21
  98. package/src/common/field/fieldset/DateTimeField.js +143 -143
  99. package/src/common/field/fieldset/SelectAccountsRangeFieldSet.js +65 -65
  100. package/src/common/field/fieldset/TimePicker.js +92 -92
  101. package/src/common/field/numberfield/MoneyNumberField.js +177 -177
  102. package/src/common/field/radio/DynamicRadioGroup.js +87 -87
  103. package/src/common/field/withDefault.js +37 -37
  104. package/src/common/panel/DayPicker.js +63 -63
  105. package/src/common/panel/DayPicker.scss +15 -15
  106. package/src/common/panel/MainUploadPanel.scss +13 -13
  107. package/src/common/panel/SelectIconClassPanel.scss +38 -38
  108. package/src/common/panel/SelectIconClassPanelTemplate.scss +14 -14
  109. package/src/common/panel/StopwatchWindow.js +44 -44
  110. package/src/common/panel/WindowWrap.js +0 -0
  111. package/src/common/panel/WindowWrap.scss +8 -8
  112. package/src/common/panel/dropzone/UniversalMultiUploadForm.scss +29 -29
  113. package/src/common/panel/dropzone/UniversalMultiUploadFormController.js +233 -233
  114. package/src/common/panel/dropzone/UniversalMultiUploadFormViewModel.js +10 -10
  115. package/src/common/panel/dropzone/UploadDropZone.js +56 -56
  116. package/src/common/panel/dropzone/UploadDropZone.scss +36 -36
  117. package/src/common/panel/widget/LinkWindow.js +67 -67
  118. package/src/common/panel/widget/LinkWindowController.js +69 -69
  119. package/src/common/panel/widget/MainSettingsWindow.js +121 -121
  120. package/src/common/panel/widget/MainSettingsWindowController.js +68 -68
  121. package/src/common/panel/widget/PinWindow.js +42 -42
  122. package/src/common/panel/widget/PinWindowController.js +48 -48
  123. package/src/common/panel/widget/SettingsModel.js +15 -15
  124. package/src/common/panel/widget/SettingsWindow.js +154 -154
  125. package/src/common/panel/widget/SettingsWindowController.js +44 -44
  126. package/src/common/panel/widget/WidgetPanel.js +19 -19
  127. package/src/common/panel/widget/WidgetPanel.scss +157 -157
  128. package/src/common/panel/widget/WidgetPanelViewModel.js +13 -13
  129. package/src/common/plugin/form/CopyPastePlugin.js +68 -68
  130. package/src/common/plugin/form/CountRowsToFieldLabel.js +25 -25
  131. package/src/common/plugin/form/FieldDependsPlugin.js +215 -215
  132. package/src/common/plugin/form/PeriodMenu.js +58 -58
  133. package/src/common/plugin/form/PeriodPickerPlugin.js +51 -51
  134. package/src/common/plugin/mixin/defaults.js +17 -17
  135. package/src/common/tree/BaseContextMenu.js +50 -50
  136. package/src/common/tree/ContextMenuItem.js +18 -18
  137. package/src/common/tree/NodeTreeLoader.js +61 -61
  138. package/src/common/trigger/WikiTrigger.js +20 -20
  139. package/src/eventBus.js +73 -73
  140. package/src/info.js +39 -39
  141. package/src/info.scss +12 -12
  142. package/src/logSender.js +63 -63
  143. package/src/model/MoParameterFields.js +7 -7
  144. package/src/model/SimpleEntityCharacteristicBeanFields.js +6 -6
  145. package/src/model/VisualCharacteristicValueFields.js +6 -6
  146. package/src/model/VisualCharacteristicValuesFields.js +17 -17
  147. package/src/nav/AppNavTab.js +106 -106
  148. package/src/nav/AppNavTab.scss +20 -20
  149. package/src/nav/AppNavigationBar.js +88 -88
  150. package/src/nav/AppNavigationBar.scss +9 -9
  151. package/src/nav/AppNavigationBarViewController.js +66 -66
  152. package/src/nav/AppNavigationMenu.scss +64 -64
  153. package/src/nav/WindowBarMixin.js +27 -27
  154. package/src/nav/editor/NavigateElementEditorController.js +34 -34
  155. package/src/nav/editor/NavigateElementEditorView.js +94 -94
  156. package/src/nav/editor/NavigateElementEditorViewModel.js +22 -22
  157. package/src/nav/editor/menu/NavMenuTreeController.js +401 -401
  158. package/src/nav/editor/menu/NavMenuTreeView.js +146 -146
  159. package/src/nav/editor/menu/NavMenuTreeView.scss +104 -104
  160. package/src/nav/editor/menu/command/AddMenuCommand.js +20 -20
  161. package/src/nav/editor/menu/command/DeleteMenuCommand.js +20 -20
  162. package/src/nav/editor/menu/command/GetMenuCommand.js +20 -20
  163. package/src/nav/editor/menu/command/SaveMenuCommand.js +20 -20
  164. package/src/nav/editor/menu/form/NavMenuFormViewController.js +133 -133
  165. package/src/nav/editor/menu/form/NavMenuFormViewModel.js +24 -24
  166. package/src/nav/editor/workspace/NavWorkspaceListController.js +179 -179
  167. package/src/nav/editor/workspace/NavWorkspaceListView.js +59 -59
  168. package/src/nav/editor/workspace/NavWorkspaceListView.scss +35 -35
  169. package/src/nav/editor/workspace/command/AddWorkspaceCommand.js +20 -20
  170. package/src/nav/editor/workspace/command/DeleteWorkspaceCommand.js +20 -20
  171. package/src/nav/editor/workspace/command/GetWorkspaceCommand.js +20 -20
  172. package/src/nav/editor/workspace/command/SaveWorkspaceCommand.js +20 -20
  173. package/src/nav/editor/workspace/form/NavWorkspaceFormController.js +108 -108
  174. package/src/nav/editor/workspace/form/NavWorkspaceFormView.js +79 -79
  175. package/src/nav/editor/workspace/form/NavWorkspaceFormViewModel.js +18 -18
  176. package/src/nav/menu/NavMenuPanel.scss +11 -11
  177. package/src/nav/menu/WorkspaceMenuView.scss +218 -218
  178. package/src/nav/state.js +86 -86
  179. package/src/nav/windowHolder.js +97 -97
  180. package/src/nav/windowHolderTab.js +39 -39
  181. package/src/nav/windowHolderTab.scss +13 -13
  182. package/src/report/column/BigNumColumn.js +43 -43
  183. package/src/report/column/Check.js +49 -49
  184. package/src/report/column/CounterColumn.js +26 -26
  185. package/src/report/column/DynamicActionColumn.js +74 -74
  186. package/src/report/column/HintColumn.js +19 -19
  187. package/src/report/column/HintDateColumn.js +19 -19
  188. package/src/report/column/HintTimeIntervalColumn.js +33 -33
  189. package/src/report/column/IconSvgColumn.js +15 -15
  190. package/src/report/column/MoneyColumn.js +25 -25
  191. package/src/report/column/MultiFilesColumn.scss +8 -8
  192. package/src/report/column/MultiLineColumn.js +17 -17
  193. package/src/report/column/PercentColumn.js +38 -38
  194. package/src/report/column/SoftWrapColumn.js +18 -18
  195. package/src/report/column/TimeIntervalColumn.js +34 -34
  196. package/src/report/command/ConvertReportCommand.js +41 -41
  197. package/src/report/command/ExecuteAllReportsCommand.js +53 -53
  198. package/src/report/command/GetExcelFromRowsOrReportData.js +5 -5
  199. package/src/report/command/GetExcelReportDataCommand.js +5 -5
  200. package/src/report/command/GetPdfReportDataCommand.js +7 -7
  201. package/src/report/command/GetReportCommand.js +39 -39
  202. package/src/report/command/GetReportFieldsCommand.js +42 -42
  203. package/src/report/command/GetReportInfoCommand.js +29 -29
  204. package/src/report/command/GetReportRevisionCommand.js +25 -25
  205. package/src/report/command/GetReportVersionListCommand.js +28 -28
  206. package/src/report/command/PublisherPdfCommand.js +52 -52
  207. package/src/report/command/RestoreReportCommand.js +27 -27
  208. package/src/report/component/BoundListPagingToolbar.scss +7 -7
  209. package/src/report/component/EXTJSReportUploadForm.js +175 -175
  210. package/src/report/component/ErrorWindow.scss +15 -15
  211. package/src/report/component/EventKeyBox.js +20 -20
  212. package/src/report/component/IsweSimplestReportCombo.js +40 -40
  213. package/src/report/component/LookupCombo.js +24 -24
  214. package/src/report/component/ParameterizedReportCombo.scss +85 -85
  215. package/src/report/component/ReportPanel.scss +69 -69
  216. package/src/report/component/SimpleReportTag.scss +18 -18
  217. package/src/report/component/SubentityCombo.js +12 -12
  218. package/src/report/component/reportpanel/FilterPanel.scss +16 -16
  219. package/src/report/component/reportpanel/FilterPanelLegend.js +71 -71
  220. package/src/report/component/reportpanel/FilterPanelLegend.scss +23 -23
  221. package/src/report/component/reportpanel/ReportGrid.scss +19 -19
  222. package/src/report/component/reportpanel/ReportStore.js +55 -55
  223. package/src/report/component/reportpanel/ReportTreeStore.js +38 -38
  224. package/src/report/component/settings/AddVersioningTab.js +19 -19
  225. package/src/report/component/settings/ReportFormEditPanel.scss +87 -87
  226. package/src/report/component/settings/field/ReportFormFieldsGrid.scss +5 -5
  227. package/src/report/component/settings/parameter/ReportFormParameterEditPanel.js +64 -64
  228. package/src/report/component/settings/parameter/ReportFormParameterEditPanelController.js +124 -124
  229. package/src/report/component/settings/parameter/ReportFormParametersGridController.js +91 -91
  230. package/src/report/component/settings/plugin/PluginSelectWindow.js +245 -245
  231. package/src/report/component/settings/plugin/SpecificPluginSelectWindow.js +8 -8
  232. package/src/report/component/settings/property/ReportPropertiesPanel.scss +12 -12
  233. package/src/report/component/tab/ReportTabView.js +59 -59
  234. package/src/report/model/AccountDocumentBean.js +33 -33
  235. package/src/report/model/AccountDocumentBeanFields.js +35 -35
  236. package/src/report/model/ActionCodeBean.js +17 -17
  237. package/src/report/model/ActionCodeBeanFields.js +8 -8
  238. package/src/report/model/ActionCodeGroupBean.js +18 -18
  239. package/src/report/model/ActionCodeGroupBeanFields.js +9 -9
  240. package/src/report/model/BillingDocumentFields.js +29 -29
  241. package/src/report/model/BillingDocumentStateBean.js +20 -20
  242. package/src/report/model/BillingDocumentStateBeanFields.js +11 -11
  243. package/src/report/model/CharacteristicBean.js +37 -37
  244. package/src/report/model/CharacteristicBeanFields.js +30 -30
  245. package/src/report/model/ColorPluginBean.js +16 -16
  246. package/src/report/model/ColorPluginBeanFields.js +16 -16
  247. package/src/report/model/ComboValueWrapper.js +16 -16
  248. package/src/report/model/ComboValueWrapperFields.js +6 -6
  249. package/src/report/model/ConfigReportPropertyBeanFields.js +7 -7
  250. package/src/report/model/ConfigureCharacteristicBean.js +36 -36
  251. package/src/report/model/ConfigureCharacteristicBeanFields.js +27 -27
  252. package/src/report/model/FiltersPluginBean.js +12 -12
  253. package/src/report/model/FiltersPluginBeanFields.js +6 -6
  254. package/src/report/model/GroupButtonsPluginBean.js +16 -16
  255. package/src/report/model/GroupButtonsPluginBeanFields.js +13 -13
  256. package/src/report/model/LimitBean.js +27 -27
  257. package/src/report/model/LimitBeanFields.js +21 -21
  258. package/src/report/model/LimitDetailsBeanFields.js +12 -12
  259. package/src/report/model/LogRequestBean.js +19 -19
  260. package/src/report/model/LogRequestFields.js +11 -11
  261. package/src/report/model/LookupBean.js +16 -16
  262. package/src/report/model/LookupBeanFields.js +7 -7
  263. package/src/report/model/MenuGroupCharacteristicTypeBean.js +17 -17
  264. package/src/report/model/MenuGroupCharacteristicTypeBeanFields.js +8 -8
  265. package/src/report/model/RawCharacteristicValueBean.js +21 -21
  266. package/src/report/model/RawCharacteristicValueBeanFields.js +12 -12
  267. package/src/report/model/ReportAccessGroupBean.js +18 -18
  268. package/src/report/model/ReportAccessGroupBeanFields.js +9 -9
  269. package/src/report/model/ReportBeanFields.js +12 -12
  270. package/src/report/model/ReportFieldBean.js +26 -26
  271. package/src/report/model/ReportFieldBeanFields.js +10 -10
  272. package/src/report/model/ReportFieldPropertyBean.js +20 -20
  273. package/src/report/model/ReportFieldPropertyBeanFields.js +17 -17
  274. package/src/report/model/ReportFormBeanFields.js +20 -20
  275. package/src/report/model/ReportMaintenanceBean.js +26 -26
  276. package/src/report/model/ReportMaintenanceBeanFields.js +23 -23
  277. package/src/report/model/ReportNavigationContextBeanFields.js +16 -16
  278. package/src/report/model/ReportParameterBeanFields.js +14 -14
  279. package/src/report/model/ReportParameterMaintenanceBean.js +33 -33
  280. package/src/report/model/ReportParameterMaintenanceBeanFields.js +29 -29
  281. package/src/report/model/ReportPluginBeanFields.js +10 -10
  282. package/src/report/model/ReportPluginMaintenanceBean.js +22 -22
  283. package/src/report/model/ReportPluginMaintenanceBeanFields.js +17 -17
  284. package/src/report/model/ReportPropertyBean.js +19 -19
  285. package/src/report/model/ReportPropertyBeanFields.js +13 -13
  286. package/src/report/model/SummaryPluginBeanFields.js +7 -7
  287. package/src/report/model/ToggleColumnsPluginBean.js +12 -12
  288. package/src/report/model/ToggleColumnsPluginBeanFields.js +6 -6
  289. package/src/report/model/TownBeanFields.js +7 -7
  290. package/src/report/model/TownTypeBean.js +17 -17
  291. package/src/report/model/TownTypeBeanFields.js +8 -8
  292. package/src/report/model/UsersGroupsValueBean.js +16 -16
  293. package/src/report/model/UsersGroupsValueBeanFields.js +7 -7
  294. package/src/report/model/WizardBean.js +17 -17
  295. package/src/report/model/WizardBeanFields.js +8 -8
  296. package/src/report/plugin/SearchByPropButton.js +15 -15
  297. package/src/report/plugin/SettingsManagerPlugin/SettingsManagerPlugin.js +193 -193
  298. package/src/report/plugin/SettingsManagerPlugin/model/SMPProfileEntry.js +28 -28
  299. package/src/report/plugin/SettingsManagerPlugin/store/SMPAbstractEntryStore.js +89 -89
  300. package/src/report/plugin/SettingsManagerPlugin/store/SMPLocalEntryStore.js +64 -64
  301. package/src/report/plugin/SettingsManagerPlugin/store/SMPRemoteEntryStore.js +6 -6
  302. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainView.js +300 -300
  303. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainView.scss +3 -3
  304. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainViewController.js +183 -183
  305. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainViewModel.js +82 -82
  306. package/src/report/plugin/comboBtnWrapper.js +27 -27
  307. package/src/report/plugin/configPanel/BasePluginConfig.js +256 -256
  308. package/src/report/plugin/configPanel/CalculateCellSumPluginConfigPanel.js +29 -29
  309. package/src/report/plugin/configPanel/ChangeFieldValuePluginConfigGrid.js +110 -110
  310. package/src/report/plugin/configPanel/ExecuteCommandButtonPluginConfigPanel.scss +5 -5
  311. package/src/report/plugin/configPanel/GridEditorPluginConfigGrid.js +145 -145
  312. package/src/report/plugin/configPanel/GridFiltersPluginConfigPanelFiltersGrid.js +107 -107
  313. package/src/report/plugin/configPanel/GridRowAddPluginConfigPanel.js +146 -146
  314. package/src/report/plugin/configPanel/GridRowStylePluginConfigPropertyGrid.js +185 -185
  315. package/src/report/plugin/configPanel/GridToolbarButtonPluginConfigPanel.js +249 -249
  316. package/src/report/plugin/configPanel/GroupButtonsPluginConfigGrid.js +149 -149
  317. package/src/report/plugin/configPanel/GroupRowsPluginConfigPanel.scss +3 -3
  318. package/src/report/plugin/configPanel/SelectRowsPluginConfigPanel.js +35 -35
  319. package/src/report/plugin/configPanel/SetParameterPluginConfigPanel.js +108 -108
  320. package/src/report/plugin/configPanel/SpecificPluginConfig.js +45 -45
  321. package/src/report/plugin/configPanel/TextToTitleConfigPanel.js +74 -74
  322. package/src/report/plugin/configPanel/ToggleColumnsPluginConfigPanelAdditionalColumnsGrid.js +94 -94
  323. package/src/report/plugin/configPanel/ToolbarButtonPluginConfigPanel.js +164 -164
  324. package/src/report/plugin/configPanel/ToolbarItemPluginConfigPanel.js +83 -83
  325. package/src/report/plugin/configPanel/TreeFilterPluginConfigPanel.js +38 -38
  326. package/src/report/plugin/configPanel/common/pluginDescriptionLabel.js +7 -7
  327. package/src/report/plugin/configPanel/common/pluginDescriptionLabel.scss +8 -8
  328. package/src/report/plugin/configPanel/openCustomPanelButtonPlugin/ReportFormContextXTypeMappingGrid.js +71 -71
  329. package/src/report/plugin/configPanel/reportGroupsFieldValidationPlugin/RequiredParametersTree.js +157 -157
  330. package/src/report/plugin/configPanel/reportGroupsFieldValidationPlugin/UnusedParametersTree.js +66 -66
  331. package/src/report/plugin/form/ComboCustomSort.js +39 -39
  332. package/src/report/plugin/form/ComboLoadingProgress.js +78 -78
  333. package/src/report/plugin/form/CopyToClipboardPlugin.js +75 -75
  334. package/src/report/plugin/form/DatePeriodValidatePluginFactory.js +79 -79
  335. package/src/report/plugin/form/EnterConfirmFormPlugin.js +55 -55
  336. package/src/report/plugin/form/FieldOnEnterChangePlugin.js +27 -27
  337. package/src/report/plugin/form/FormFieldHidding.js +32 -32
  338. package/src/report/plugin/form/ReadOnlyFieldPlugin.js +24 -24
  339. package/src/report/plugin/form/ValidateFieldPlugin.js +42 -42
  340. package/src/report/plugin/form/WindowCheckStatePlugin.js +84 -84
  341. package/src/report/plugin/grid/AddRowButtonPlugin.js +33 -33
  342. package/src/report/plugin/grid/BadgeButtonPlugin.js +70 -70
  343. package/src/report/plugin/grid/CalculateCellSumPlugin.js +186 -186
  344. package/src/report/plugin/grid/ChangeFieldValueButtonPlugin.js +79 -79
  345. package/src/report/plugin/grid/CopyCellToSource.js +80 -80
  346. package/src/report/plugin/grid/CustomColumnSortPlugin.js +39 -39
  347. package/src/report/plugin/grid/DataSourceSelectionPlugin.js +164 -164
  348. package/src/report/plugin/grid/DeleteRowButtonPlugin.js +145 -145
  349. package/src/report/plugin/grid/ExecuteApiCommandButtonPlugin.js +23 -23
  350. package/src/report/plugin/grid/ExecuteCommandButtonPlugin.js +136 -136
  351. package/src/report/plugin/grid/ExporterPlugin.js +43 -43
  352. package/src/report/plugin/grid/FilterGridColumnsPlugin.js +79 -79
  353. package/src/report/plugin/grid/FormPanelStatePlugin.js +91 -91
  354. package/src/report/plugin/grid/GetAdditionalContextPlugin.js +73 -73
  355. package/src/report/plugin/grid/GridContextMenu.js +83 -83
  356. package/src/report/plugin/grid/GridContextPlugin.js +248 -248
  357. package/src/report/plugin/grid/GridEditButtonsDeleteBehavior.js +62 -62
  358. package/src/report/plugin/grid/GridFiltersByKeyPressingPlugin.js +99 -99
  359. package/src/report/plugin/grid/GridFiltersInHeadersPlugin.js +69 -69
  360. package/src/report/plugin/grid/GridFiltersPlugin.js +164 -164
  361. package/src/report/plugin/grid/GridFiltersPopupPlugin.js +106 -106
  362. package/src/report/plugin/grid/GridHistoryBehaviorPlugin.js +260 -260
  363. package/src/report/plugin/grid/GridHistoryBehaviorStep.js +45 -45
  364. package/src/report/plugin/grid/GridNoSelectPlugin.js +30 -30
  365. package/src/report/plugin/grid/GridRecordViewerPlugin.js +34 -2
  366. package/src/report/plugin/grid/GridRowAddPlugin.js +40 -40
  367. package/src/report/plugin/grid/GridRowCountPlugin.js +57 -57
  368. package/src/report/plugin/grid/GridRowEditingByEnterPlugin.js +44 -44
  369. package/src/report/plugin/grid/GridRowStylePlugin.scss +56 -56
  370. package/src/report/plugin/grid/GridRowTooltipForCellPlugin.js +118 -118
  371. package/src/report/plugin/grid/GridStoreDependency.js +63 -63
  372. package/src/report/plugin/grid/GridToolbarButtonPlugin.js +1 -1
  373. package/src/report/plugin/grid/GroupButtonsPlugin.js +120 -120
  374. package/src/report/plugin/grid/GroupRowsPlugin.js +133 -133
  375. package/src/report/plugin/grid/HideItemPlugin.js +54 -54
  376. package/src/report/plugin/grid/MultiEditorPlugin.js +119 -119
  377. package/src/report/plugin/grid/OpenURLButtonPlugin.js +48 -48
  378. package/src/report/plugin/grid/PrintPdfButtonPlugin.js +210 -210
  379. package/src/report/plugin/grid/ReportBoxContainerPlugin.js +30 -30
  380. package/src/report/plugin/grid/ReportCharacteristicBindPluginPanel.js +66 -66
  381. package/src/report/plugin/grid/ReportContainerPlugin.js +69 -69
  382. package/src/report/plugin/grid/ReportTabContainerPlugin.js +67 -67
  383. package/src/report/plugin/grid/ReportTabContainerPlugin.scss +3 -3
  384. package/src/report/plugin/grid/RestoreSelectionPlugin.js +93 -93
  385. package/src/report/plugin/grid/SaveTreeViewConfiguration.js +46 -46
  386. package/src/report/plugin/grid/SetCheckboxesPlugin.js +88 -88
  387. package/src/report/plugin/grid/SetParameterPlugin.js +139 -139
  388. package/src/report/plugin/grid/SetReportParameterPlugin.js +108 -108
  389. package/src/report/plugin/grid/SetSingleParameterPlugin.js +68 -68
  390. package/src/report/plugin/grid/SetValuePlugin.js +13 -13
  391. package/src/report/plugin/grid/StoreFiltersByKeyPressingPlugin.js +114 -114
  392. package/src/report/plugin/grid/SummaryPlugin.js +109 -109
  393. package/src/report/plugin/grid/TextToTitlePlugin.js +93 -93
  394. package/src/report/plugin/grid/ToggleColumnsPlugin.js +161 -161
  395. package/src/report/plugin/grid/ToggleColumnsPlugin.scss +7 -7
  396. package/src/report/plugin/grid/ToolbarButtonPlugin.scss +3 -3
  397. package/src/report/plugin/grid/ToolbarSeparatorPlugin.js +16 -16
  398. package/src/report/plugin/grid/UpdateGridPlugin.js +82 -82
  399. package/src/report/plugin/htmlEditor/ToolbarCombo.js +18 -18
  400. package/src/report/plugin/htmlEditor/ToolbarElement.js +34 -34
  401. package/src/report/plugin/report/BindDataViewPanelPlugin.js +65 -65
  402. package/src/report/plugin/report/IsweBindCustomPanelPlugin.js +68 -68
  403. package/src/report/store/AccountDocumentStore.js +49 -49
  404. package/src/report/store/ActionCodeGroupStore.js +19 -19
  405. package/src/report/store/ActionCodeStore.js +20 -20
  406. package/src/report/store/BillingDocumentStateListStore.js +22 -22
  407. package/src/report/store/BillingLookupStore.js +36 -36
  408. package/src/report/store/CharacteristicListStore.js +26 -26
  409. package/src/report/store/ColorPluginStore.js +19 -19
  410. package/src/report/store/ComboValueWrapperStore.js +18 -18
  411. package/src/report/store/FiltersPluginStore.js +19 -19
  412. package/src/report/store/GroupButtonsPluginStore.js +19 -19
  413. package/src/report/store/LimitDetailsStore.js +24 -24
  414. package/src/report/store/LimitStore.js +28 -28
  415. package/src/report/store/LookupStore.js +19 -19
  416. package/src/report/store/MenuGroupCharacteristicTypeListStore.js +18 -18
  417. package/src/report/store/RawCharacteristicValueListStore.js +18 -18
  418. package/src/report/store/RefStore.js +19 -19
  419. package/src/report/store/ReportFieldPropertyStore.js +25 -25
  420. package/src/report/store/ReportFieldStore.js +22 -22
  421. package/src/report/store/ReportNavigationContextStore.js +24 -24
  422. package/src/report/store/ReportParameterStore.js +21 -21
  423. package/src/report/store/ReportPluginStore.js +29 -29
  424. package/src/report/store/ReportPropertyStore.js +23 -23
  425. package/src/report/store/RequestLogStore.js +18 -18
  426. package/src/report/store/SimpleCharacteristicListStore.js +19 -19
  427. package/src/report/store/SimpleFilterPluginStore.js +19 -19
  428. package/src/report/store/SummaryPluginStore.js +19 -19
  429. package/src/report/store/ToggleColumnsPluginStore.js +19 -19
  430. package/src/report/store/TownTypeStore.js +19 -19
  431. package/src/report/store/WizardStore.js +20 -20
  432. package/src/research/ResearchTreeView.scss +19 -19
  433. package/src/research/TabItemWrapper.js +44 -44
  434. package/src/research/TabItemWrapperViewModel.js +19 -19
  435. package/src/research/command/GetCoonChartStructure.js +63 -63
  436. package/src/research/command/GetReportStructure.js +154 -154
  437. package/src/research/command/GetUiStructure.js +124 -124
  438. package/src/research/command/GetWidgetPanelStructure.js +76 -76
  439. package/src/security/Manager.js +30 -30
  440. package/src/security/Map.js +48 -48
  441. package/src/security/PropertyDataParser.js +135 -135
  442. package/src/security/component/role/RoleStore.js +4 -4
  443. package/src/security/component/role/RoleTagField.js +17 -17
  444. package/src/security/component/ui/UiCPRestrictionEditor.scss +4 -4
  445. package/src/security/restriction/Visibility.js +45 -45
  446. package/src/security/type/uiElement.js +54 -54
  447. package/src/stateProvider.js +20 -20
  448. package/src/uielement/command/ExecuteApiCommand.js +15 -15
  449. package/src/uielement/command/GetMenuTreeCommand.js +23 -23
  450. package/src/uielement/command/GetNavigateUIMenuEntryCommand.js +23 -23
  451. package/src/uielement/command/GetNextUIMenuEntryCommand.js +22 -22
  452. package/src/uielement/command/GetUIElementCommand.js +3 -1
  453. package/src/uielement/command/GetUIElementPropertyDocLinkCommand.js +18 -18
  454. package/src/uielement/command/GetUIElementRevisionCommand.js +25 -25
  455. package/src/uielement/command/GetUIElementVersionListCommand.js +27 -27
  456. package/src/uielement/component/CodemirrorEditor.js +68 -68
  457. package/src/uielement/component/MenuItemList.scss +35 -35
  458. package/src/uielement/component/UiCPVisualEditor.scss +108 -108
  459. package/src/uielement/component/UiCustomPanel.js +44 -44
  460. package/src/uielement/component/UiCustomPanelViewModel.js +15 -15
  461. package/src/uielement/component/UiElementLookupCombo.js +190 -190
  462. package/src/uielement/component/UiElementPropertyController.js +111 -111
  463. package/src/uielement/component/UiElementPropertyInfoController.js +23 -23
  464. package/src/uielement/component/UiElementPropertyPanel.js +80 -80
  465. package/src/uielement/component/formchips/Chip.js +87 -87
  466. package/src/uielement/component/formchips/FilterConditionToolbar.js +115 -115
  467. package/src/uielement/component/formchips/FilterConditionToolbar.scss +46 -46
  468. package/src/uielement/component/formchips/FilterConditionToolbarController.js +169 -169
  469. package/src/uielement/component/settings/AddVersioningTab.js +26 -26
  470. package/src/uielement/component/settings/EXTJSUiPanelImportJsonForm.js +42 -42
  471. package/src/uielement/component/settings/FrameView.js +113 -113
  472. package/src/uielement/component/settings/FrameViewController.js +132 -132
  473. package/src/uielement/component/settings/PropertyModel.js +8 -8
  474. package/src/uielement/component/settings/PropertyTreePanel.js +121 -121
  475. package/src/uielement/component/settings/UiCustomPanelAnnotationWindow.js +71 -71
  476. package/src/uielement/component/settings/UiCustomPanelEditor.scss +9 -9
  477. package/src/uielement/component/settings/config/UiCPConfigPanelController.scss +24 -24
  478. package/src/uielement/component/settings/linter/rule/BindRule.js +40 -40
  479. package/src/uielement/component/settings/linter/rule/BracesRule.js +68 -68
  480. package/src/uielement/component/settings/linter/rule/HandlerRule.js +45 -45
  481. package/src/uielement/component/settings/linter/rule/LayoutRule.js +24 -24
  482. package/src/uielement/component/settings/linter/rule/ReferenceRule.js +53 -53
  483. package/src/uielement/component/settings/linter/rule/XtypeRule.js +31 -31
  484. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.js +206 -206
  485. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.scss +11 -11
  486. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGridController.js +205 -205
  487. package/src/uielement/component/settings/plugin/UiCustomPanelPluginPanel.scss +11 -11
  488. package/src/uielement/component/settings/plugin/UiCustomPanelPluginSelectWindow.js +152 -152
  489. package/src/uielement/component/settings/version/UiCPVersionPanel.scss +15 -15
  490. package/src/uielement/model/UIElementBeanFields.js +8 -8
  491. package/src/uielement/model/UiElementPropertyModel.js +31 -31
  492. package/src/uielement/plugin/AddBindingsPlugin.js +18 -18
  493. package/src/uielement/plugin/AddDoInitSupportPlugin.js +66 -66
  494. package/src/uielement/plugin/AddOutputParamsPlugin.js +22 -22
  495. package/src/uielement/plugin/ExecuteApiCommandPlugin.js +52 -52
  496. package/src/uielement/plugin/ExecuteFunctionPlugin.js +26 -26
  497. package/src/uielement/plugin/FireEventPlugin.js +31 -31
  498. package/src/uielement/plugin/MethodChainPlugin.js +24 -24
  499. package/src/uielement/plugin/OpenPanelPlugin.js +90 -90
  500. package/src/uielement/plugin/configPanel/AddBindingsPluginConfigPanelFormEditor.scss +29 -29
  501. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginConfigPanel.js +214 -214
  502. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginPropertiesGrid.js +62 -62
  503. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginPropertiesGridController.js +102 -102
  504. package/src/uielement/plugin/configPanel/AddOutputParamsPluginConfigPanelFormEditor.js +110 -110
  505. package/src/uielement/plugin/configPanel/ExecuteApiCommandPluginConfigPanel.js +850 -850
  506. package/src/uielement/plugin/configPanel/ExecuteFunctionPluginConfigPanelFormEditor.js +86 -86
  507. package/src/uielement/plugin/configPanel/FireEventPluginConfigPanelFormEditor.js +107 -107
  508. package/src/uielement/plugin/configPanel/OpenPanelPluginConfigPanelFormEditor.js +239 -239
  509. package/src/uielement/plugin/configPanel/PrintPdfPluginConfigPanelFormEditor.js +350 -350
  510. package/src/userSettings.js +161 -161
  511. package/src/version.js +1 -1
  512. package/util/update.js +75 -75
@@ -1,401 +1,401 @@
1
- /**
2
- * Контроллер структуры меню
3
- * @class Coon.nav.editor.menu.NavMenuTreeController
4
- */
5
- Ext.define('Coon.nav.editor.menu.NavMenuTreeController', {
6
- extend: 'Ext.app.ViewController',
7
- alias: 'controller.NavMenuTreeController',
8
-
9
- locals: {},
10
-
11
- control: {
12
- '#': {
13
- loadMenuData: 'loadMenuData',
14
- setRootMenu: 'setRootMenu',
15
- itemdblclick: 'openFormEdit',
16
- drop: 'saveMenuOrder',
17
- itemcontextmenu: 'showContextMenu',
18
- },
19
- },
20
-
21
- /**
22
- * Построение дерева меню для выбранного рабочего пространства
23
- * @param {Array} menuEntries массив всех элементов меню
24
- * @returns струкрутру меню рабочего пространства
25
- */
26
-
27
- collectionMenuItems: function(menuEntries) {
28
- /**
29
- * группировка элементов по родительскому меню
30
- */
31
- if (menuEntries) {
32
- const refs = menuEntries.reduce((acc, el) => {
33
- if (el.PARENT_MENU_ENTRY_CD) {
34
- acc[el.PARENT_MENU_ENTRY_CD] = acc[el.PARENT_MENU_ENTRY_CD] || [];
35
- acc[el.PARENT_MENU_ENTRY_CD].push(el);
36
- }
37
- return acc;
38
- }, {});
39
-
40
- /**
41
- * Получение вложенных элементов
42
- * @param {Object} el элемент меню
43
- * @returns элемент меню после проверки есть ли у него вложенные элементы
44
- */
45
-
46
- const getNestedMenuItems = (el) => {
47
- const ref = el.MENU_ENTRY_CD;
48
- if (ref) {
49
- el.children = (refs[ref] || []).map(getNestedMenuItems);
50
- el.leaf = !(el.children.length || el.UI_ELEMENT_CD === '');
51
- } else {
52
- Ext.Msg.alert('Ошибка', `Отредактируйте элемент ${el.DESCR}, добавьте ему MENU_ENTRY_CD`);
53
- }
54
- return el;
55
- };
56
-
57
- /**
58
- * фильтрует элементы первого уровня, и проверяет их на вложенности
59
- */
60
-
61
- return menuEntries.filter((el) => !el.PARENT_MENU_ENTRY_CD).map(getNestedMenuItems);
62
- }
63
- },
64
-
65
- /**
66
- * Группировка данных по рабочим пространствам
67
- * @param {Array} data массив элементов меню
68
- * @returns массив объектов, где ключ рабочее пространство а значениее массив элементов меню
69
- */
70
-
71
- getGroupMenuByWorkspaceCd: function(data) {
72
- return data.reduce((acc, el) => {
73
- el.text = el.DESCR;
74
- el.iconCls = el.ICON;
75
- el.isVisible = el.VISIBLE_SW === 'Y' ? true : false;
76
- el.SORT_SEQ = parseInt(el.SORT_SEQ);
77
- const property = el.WORKSPACE_CD;
78
- acc[property] = acc[property] || [];
79
- acc[property].push(el);
80
- return acc;
81
- }, {});
82
- },
83
-
84
- /**
85
- * Срабатывает при выборе рабочего пространства или обновлении
86
- * Загрузка всех элементов меню
87
- * @param {Object} record данные о рабочем пространстве
88
- */
89
-
90
- loadMenuData: function(record) {
91
- Coon.util.promisifyCmd('Coon.report.command.GetDynamicReportDataCommand', 'MENU_ENTRY_LIST')
92
- .then((data) => {
93
- if (Ext.isArray(data.list)) {
94
- const groupWorkspace = this.getGroupMenuByWorkspaceCd(data.list);
95
- this.getView().getStore().setRoot({
96
- children: this.collectionMenuItems(groupWorkspace[record.get('WORKSPACE_CD')]),
97
- expanded: true,
98
- expandable: false,
99
- WORKSPACE_CD: record.get('WORKSPACE_CD'),
100
- });
101
- this.getView().getStore().sort([
102
- {
103
- property: 'isVisible',
104
- direction: 'DESC',
105
- },
106
- {
107
- property: 'SORT_SEQ',
108
- direction: 'ASC',
109
- }
110
- ]);
111
- }
112
- })
113
- .catch((error) => {
114
- Coon.log.debug(error);
115
- Ext.Msg.alert(error.toString());
116
- });
117
- },
118
-
119
- /**
120
- * Открывает форму на добавлении группы
121
- * @param {Object} record данные об элементе меню
122
- */
123
-
124
- openFormAddFolder: function(record) {
125
- let sortSequence = 1;
126
- if (record.hasOwnProperty('data')) {
127
- record = record;
128
- sortSequence = record.get('index') + record.get('children').length;
129
- } else {
130
- record = this.getView().up().down('NavWorkspaceListView').getSelection()[0];
131
- }
132
- const workspaceId = record.get('WORKSPACE_CD');
133
- const parentMenuId = record.get('MENU_ENTRY_CD') || '';
134
- const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView', {
135
- leafSwitch: false,
136
- workspaceId,
137
- parentMenuId,
138
- sortSequence,
139
- });
140
- const openWindow = Ext.widget('WindowWrap', {
141
- items: form,
142
- width: 600,
143
- height: 650,
144
- });
145
- openWindow.show();
146
- openWindow.on('close', this.reloadMenu, this);
147
- },
148
-
149
- /**
150
- * Открывает форму на добавлении элемента
151
- * @param {Object} record данные об элементе меню
152
- */
153
-
154
- openFormAddElement: function(record) {
155
- let sortSequence = 1;
156
- if (record.hasOwnProperty('data')) {
157
- record = record;
158
- sortSequence = record.get('index') + record.get('children').length;
159
- } else {
160
- record = this.getView().up().down('NavWorkspaceListView').getSelection()[0];
161
- }
162
- const workspaceId = record.get('WORKSPACE_CD');
163
- const parentMenuId = record.get('MENU_ENTRY_CD') || '';
164
- const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView', {
165
- leafSwitch: true,
166
- workspaceId,
167
- parentMenuId,
168
- sortSequence,
169
- });
170
- const openWindow = Ext.widget('WindowWrap', {
171
- items: form,
172
- width: 600,
173
- height: 650,
174
- });
175
- openWindow.show();
176
- openWindow.on('close', this.reloadMenu, this);
177
- },
178
-
179
- /**
180
- * Удаление элемента
181
- * @param {Object} record данные об элементе меню
182
- */
183
-
184
- deleteMenu: function(record) {
185
- Ext.Msg.confirm('Подтверждение', 'Удалить меню', function(btn) {
186
- if (btn === 'yes') {
187
- const menu = record.get('MENU_ENTRY_CD');
188
- Coon.util.promisifyCmd('command.DeleteMenuCommand', menu)
189
- .then(() => {
190
- this.reloadMenu();
191
- Ext.Msg.alert('Сообщение', 'Меню успешно удалено');
192
- })
193
- .catch((error) => {
194
- Coon.log.debug(error);
195
- Ext.Msg.alert(error.toString());
196
- });
197
- }
198
- }, this);
199
- },
200
-
201
- /**
202
- * Открывает форму на редактирования элемента
203
- * @param {Object} record данные об элементе меню
204
- * @param {Object} _ this формы
205
- */
206
-
207
- openFormEdit: function(_, record) {
208
- if (!record.isRoot()) {
209
- const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView');
210
- const openWindow = Ext.widget('WindowWrap', {
211
- items: form,
212
- width: 600,
213
- height: 650,
214
- });
215
- const menuId = record.get('MENU_ENTRY_CD');
216
- openWindow.on('afterrender', function() {
217
- Coon.Function.executeComponentDoInit(form, {menuId});
218
- });
219
- openWindow.show();
220
- openWindow.on('close', this.reloadMenu, this);
221
- }
222
- },
223
-
224
- /**
225
- * Функция получает рекурсивно данные c backend об элементах меню, после перетаскивания элемента меню
226
- * @param {Array} menuEntries массив дочерних элементов
227
- * @param {String} parent название родительского меню
228
- * @returns массив promise
229
- */
230
-
231
- getMenuData: function(menuEntries, parent) {
232
- return menuEntries.reduce((acc, menuEntry) => {
233
- acc.push(Coon.util.promisifyCmd('command.GetMenuCommand', menuEntry.get('MENU_ENTRY_CD'))
234
- .then((response) => {
235
- response.parentMenuId = parent;
236
- return response;
237
- })
238
- );
239
- if (menuEntry.hasChildNodes()) {
240
- acc.push(...this.getMenuData(menuEntry.childNodes, menuEntry.get('MENU_ENTRY_CD')));
241
- }
242
- return acc;
243
- }, []);
244
- },
245
-
246
- /**
247
- * Срабатывает при перетаскивании меню, сохраняет порядок отображения
248
- */
249
-
250
- saveMenuOrder: function() {
251
- const mt = this.getView();
252
- mt.mask();
253
- Promise.all(this.getMenuData(this.getView().getStore().getRoot().childNodes))
254
- .then((data) => {
255
- data.forEach((menu, index) => {
256
- menu.sortSequence = index;
257
- Coon.util.promisifyCmd('command.SaveMenuCommand', menu)
258
- .catch((error) => {
259
- Coon.log.debug(error);
260
- Ext.Msg.alert(error.toString());
261
- });
262
- });
263
- mt.unmask();
264
- })
265
- .catch((error) => {
266
- Coon.log.debug(error);
267
- Ext.Msg.alert(error.toString());
268
- });
269
- },
270
-
271
- /**
272
- * Обновляет отображения структуры меню
273
- */
274
-
275
- reloadMenu: function() {
276
- this.loadMenuData(this.getView().up().down('NavWorkspaceListView').getSelection()[0], true);
277
- this.getView().getStore().reload();
278
- },
279
-
280
- /**
281
- * Срабатывает при клике правой кнопки мыши по элементу, открывает контекстное меню
282
- * @param {Ext.view.View} _ this элемента меню
283
- * @param {Object} record запись элемента меню
284
- * @param {HTMLElement} item HTML элемент элемента меню
285
- * @param {Number} index Индекс элемента
286
- * @param {Ext.event.Event} e Необработанный объект события
287
- */
288
-
289
- showContextMenu: function(_, record, item, index, e) {
290
- Ext.create('Ext.menu.Menu', {
291
- ui: 'NavMenuTreeContextMenu',
292
-
293
- viewModel: {
294
- formulas: {
295
- getTitleSubMenu: function() {
296
- if (record.get('leaf') === true) {
297
- return '';
298
- } else {
299
- return record.get('text');
300
- }
301
- },
302
-
303
- isSelectionFolder: function() {
304
- return record.get('leaf');
305
- },
306
-
307
- isSelectionMenu: function() {
308
- return record.isRoot();
309
- },
310
-
311
- isDeleteItem: function() {
312
- return record.isRoot() || record.get('children').length;
313
- },
314
- },
315
- },
316
-
317
- items: [
318
- {
319
- xtype: 'menuitem',
320
- handler: Ext.bind(this.openFormAddElement, this, [record]),
321
- bind: {
322
- disabled: '{isSelectionFolder}',
323
- text: `Добавить элемент меню в "{getTitleSubMenu}"`,
324
- },
325
- iconCls: 'x-fa fa-file-medical',
326
- },
327
- {
328
- xtype: 'menuitem',
329
- handler: Ext.bind(this.openFormAddFolder, this, [record]),
330
- bind: {
331
- disabled: '{isSelectionFolder}',
332
- text: `Добавить группу в "{getTitleSubMenu}"`,
333
- },
334
- iconCls: 'x-fa fa-folder-plus',
335
- },
336
- {
337
- xtype: 'menuitem',
338
- text: 'Редактировать',
339
- handler: Ext.bind(this.openFormEdit, this, [_, record]),
340
- bind: {
341
- disabled: '{isSelectionMenu}',
342
- },
343
- iconCls: 'x-fa fa-edit',
344
- },
345
- {
346
- xtype: 'menuitem',
347
- text: 'Удалить',
348
- handler: Ext.bind(this.deleteMenu, this, [record]),
349
- bind: {
350
- disabled: '{isDeleteItem}',
351
- },
352
- iconCls: 'x-fa fa-trash',
353
-
354
- }
355
- ],
356
- }).showAt(e.getXY());
357
- e.preventDefault();
358
- },
359
-
360
- /**
361
- * Разворачивает все группы
362
- */
363
-
364
- expandAllTree: function() {
365
- this.getView().expandAll();
366
- },
367
-
368
- /**
369
- * Сворачивания всех групп
370
- */
371
-
372
- collapseAllTree: function() {
373
- this.getView().getStore().getRoot().collapseChildren();
374
- },
375
-
376
- /**
377
- * При обновлении списка рабочих пространтсв, устанаваливает корню дерева текст
378
- */
379
-
380
- setRootMenu: function() {
381
- this.getView().getStore().setRoot({text: 'Рабочее пространство'});
382
- },
383
-
384
- /**
385
- * Информация по использованию редактора меню
386
- */
387
-
388
- showSupportingInformation: function() {
389
- Ext.create('Ext.window.Window', {
390
- title: 'Описание',
391
- height: 150,
392
- width: 500,
393
- padding: 10,
394
- layout: 'fit',
395
- closable: true,
396
- scrollable: true,
397
- modal: true,
398
- html: `Взаимодействие с элементами меню происходит по нажатию на правую кнопку мыши.`,
399
- }).show();
400
- },
401
- });
1
+ /**
2
+ * Контроллер структуры меню
3
+ * @class Coon.nav.editor.menu.NavMenuTreeController
4
+ */
5
+ Ext.define('Coon.nav.editor.menu.NavMenuTreeController', {
6
+ extend: 'Ext.app.ViewController',
7
+ alias: 'controller.NavMenuTreeController',
8
+
9
+ locals: {},
10
+
11
+ control: {
12
+ '#': {
13
+ loadMenuData: 'loadMenuData',
14
+ setRootMenu: 'setRootMenu',
15
+ itemdblclick: 'openFormEdit',
16
+ drop: 'saveMenuOrder',
17
+ itemcontextmenu: 'showContextMenu',
18
+ },
19
+ },
20
+
21
+ /**
22
+ * Построение дерева меню для выбранного рабочего пространства
23
+ * @param {Array} menuEntries массив всех элементов меню
24
+ * @returns струкрутру меню рабочего пространства
25
+ */
26
+
27
+ collectionMenuItems: function(menuEntries) {
28
+ /**
29
+ * группировка элементов по родительскому меню
30
+ */
31
+ if (menuEntries) {
32
+ const refs = menuEntries.reduce((acc, el) => {
33
+ if (el.PARENT_MENU_ENTRY_CD) {
34
+ acc[el.PARENT_MENU_ENTRY_CD] = acc[el.PARENT_MENU_ENTRY_CD] || [];
35
+ acc[el.PARENT_MENU_ENTRY_CD].push(el);
36
+ }
37
+ return acc;
38
+ }, {});
39
+
40
+ /**
41
+ * Получение вложенных элементов
42
+ * @param {Object} el элемент меню
43
+ * @returns элемент меню после проверки есть ли у него вложенные элементы
44
+ */
45
+
46
+ const getNestedMenuItems = (el) => {
47
+ const ref = el.MENU_ENTRY_CD;
48
+ if (ref) {
49
+ el.children = (refs[ref] || []).map(getNestedMenuItems);
50
+ el.leaf = !(el.children.length || el.UI_ELEMENT_CD === '');
51
+ } else {
52
+ Ext.Msg.alert('Ошибка', `Отредактируйте элемент ${el.DESCR}, добавьте ему MENU_ENTRY_CD`);
53
+ }
54
+ return el;
55
+ };
56
+
57
+ /**
58
+ * фильтрует элементы первого уровня, и проверяет их на вложенности
59
+ */
60
+
61
+ return menuEntries.filter((el) => !el.PARENT_MENU_ENTRY_CD).map(getNestedMenuItems);
62
+ }
63
+ },
64
+
65
+ /**
66
+ * Группировка данных по рабочим пространствам
67
+ * @param {Array} data массив элементов меню
68
+ * @returns массив объектов, где ключ рабочее пространство а значениее массив элементов меню
69
+ */
70
+
71
+ getGroupMenuByWorkspaceCd: function(data) {
72
+ return data.reduce((acc, el) => {
73
+ el.text = el.DESCR;
74
+ el.iconCls = el.ICON;
75
+ el.isVisible = el.VISIBLE_SW === 'Y' ? true : false;
76
+ el.SORT_SEQ = parseInt(el.SORT_SEQ);
77
+ const property = el.WORKSPACE_CD;
78
+ acc[property] = acc[property] || [];
79
+ acc[property].push(el);
80
+ return acc;
81
+ }, {});
82
+ },
83
+
84
+ /**
85
+ * Срабатывает при выборе рабочего пространства или обновлении
86
+ * Загрузка всех элементов меню
87
+ * @param {Object} record данные о рабочем пространстве
88
+ */
89
+
90
+ loadMenuData: function(record) {
91
+ Coon.util.promisifyCmd('Coon.report.command.GetDynamicReportDataCommand', 'MENU_ENTRY_LIST')
92
+ .then((data) => {
93
+ if (Ext.isArray(data.list)) {
94
+ const groupWorkspace = this.getGroupMenuByWorkspaceCd(data.list);
95
+ this.getView().getStore().setRoot({
96
+ children: this.collectionMenuItems(groupWorkspace[record.get('WORKSPACE_CD')]),
97
+ expanded: true,
98
+ expandable: false,
99
+ WORKSPACE_CD: record.get('WORKSPACE_CD'),
100
+ });
101
+ this.getView().getStore().sort([
102
+ {
103
+ property: 'isVisible',
104
+ direction: 'DESC',
105
+ },
106
+ {
107
+ property: 'SORT_SEQ',
108
+ direction: 'ASC',
109
+ }
110
+ ]);
111
+ }
112
+ })
113
+ .catch((error) => {
114
+ Coon.log.debug(error);
115
+ Ext.Msg.alert(error.toString());
116
+ });
117
+ },
118
+
119
+ /**
120
+ * Открывает форму на добавлении группы
121
+ * @param {Object} record данные об элементе меню
122
+ */
123
+
124
+ openFormAddFolder: function(record) {
125
+ let sortSequence = 1;
126
+ if (record.hasOwnProperty('data')) {
127
+ record = record;
128
+ sortSequence = record.get('index') + record.get('children').length;
129
+ } else {
130
+ record = this.getView().up().down('NavWorkspaceListView').getSelection()[0];
131
+ }
132
+ const workspaceId = record.get('WORKSPACE_CD');
133
+ const parentMenuId = record.get('MENU_ENTRY_CD') || '';
134
+ const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView', {
135
+ leafSwitch: false,
136
+ workspaceId,
137
+ parentMenuId,
138
+ sortSequence,
139
+ });
140
+ const openWindow = Ext.widget('WindowWrap', {
141
+ items: form,
142
+ width: 600,
143
+ height: 650,
144
+ });
145
+ openWindow.show();
146
+ openWindow.on('close', this.reloadMenu, this);
147
+ },
148
+
149
+ /**
150
+ * Открывает форму на добавлении элемента
151
+ * @param {Object} record данные об элементе меню
152
+ */
153
+
154
+ openFormAddElement: function(record) {
155
+ let sortSequence = 1;
156
+ if (record.hasOwnProperty('data')) {
157
+ record = record;
158
+ sortSequence = record.get('index') + record.get('children').length;
159
+ } else {
160
+ record = this.getView().up().down('NavWorkspaceListView').getSelection()[0];
161
+ }
162
+ const workspaceId = record.get('WORKSPACE_CD');
163
+ const parentMenuId = record.get('MENU_ENTRY_CD') || '';
164
+ const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView', {
165
+ leafSwitch: true,
166
+ workspaceId,
167
+ parentMenuId,
168
+ sortSequence,
169
+ });
170
+ const openWindow = Ext.widget('WindowWrap', {
171
+ items: form,
172
+ width: 600,
173
+ height: 650,
174
+ });
175
+ openWindow.show();
176
+ openWindow.on('close', this.reloadMenu, this);
177
+ },
178
+
179
+ /**
180
+ * Удаление элемента
181
+ * @param {Object} record данные об элементе меню
182
+ */
183
+
184
+ deleteMenu: function(record) {
185
+ Ext.Msg.confirm('Подтверждение', 'Удалить меню', function(btn) {
186
+ if (btn === 'yes') {
187
+ const menu = record.get('MENU_ENTRY_CD');
188
+ Coon.util.promisifyCmd('command.DeleteMenuCommand', menu)
189
+ .then(() => {
190
+ this.reloadMenu();
191
+ Ext.Msg.alert('Сообщение', 'Меню успешно удалено');
192
+ })
193
+ .catch((error) => {
194
+ Coon.log.debug(error);
195
+ Ext.Msg.alert(error.toString());
196
+ });
197
+ }
198
+ }, this);
199
+ },
200
+
201
+ /**
202
+ * Открывает форму на редактирования элемента
203
+ * @param {Object} record данные об элементе меню
204
+ * @param {Object} _ this формы
205
+ */
206
+
207
+ openFormEdit: function(_, record) {
208
+ if (!record.isRoot()) {
209
+ const form = Ext.create('Coon.nav.editor.menu.form.NavMenuFormView');
210
+ const openWindow = Ext.widget('WindowWrap', {
211
+ items: form,
212
+ width: 600,
213
+ height: 650,
214
+ });
215
+ const menuId = record.get('MENU_ENTRY_CD');
216
+ openWindow.on('afterrender', function() {
217
+ Coon.Function.executeComponentDoInit(form, {menuId});
218
+ });
219
+ openWindow.show();
220
+ openWindow.on('close', this.reloadMenu, this);
221
+ }
222
+ },
223
+
224
+ /**
225
+ * Функция получает рекурсивно данные c backend об элементах меню, после перетаскивания элемента меню
226
+ * @param {Array} menuEntries массив дочерних элементов
227
+ * @param {String} parent название родительского меню
228
+ * @returns массив promise
229
+ */
230
+
231
+ getMenuData: function(menuEntries, parent) {
232
+ return menuEntries.reduce((acc, menuEntry) => {
233
+ acc.push(Coon.util.promisifyCmd('command.GetMenuCommand', menuEntry.get('MENU_ENTRY_CD'))
234
+ .then((response) => {
235
+ response.parentMenuId = parent;
236
+ return response;
237
+ })
238
+ );
239
+ if (menuEntry.hasChildNodes()) {
240
+ acc.push(...this.getMenuData(menuEntry.childNodes, menuEntry.get('MENU_ENTRY_CD')));
241
+ }
242
+ return acc;
243
+ }, []);
244
+ },
245
+
246
+ /**
247
+ * Срабатывает при перетаскивании меню, сохраняет порядок отображения
248
+ */
249
+
250
+ saveMenuOrder: function() {
251
+ const mt = this.getView();
252
+ mt.mask();
253
+ Promise.all(this.getMenuData(this.getView().getStore().getRoot().childNodes))
254
+ .then((data) => {
255
+ data.forEach((menu, index) => {
256
+ menu.sortSequence = index;
257
+ Coon.util.promisifyCmd('command.SaveMenuCommand', menu)
258
+ .catch((error) => {
259
+ Coon.log.debug(error);
260
+ Ext.Msg.alert(error.toString());
261
+ });
262
+ });
263
+ mt.unmask();
264
+ })
265
+ .catch((error) => {
266
+ Coon.log.debug(error);
267
+ Ext.Msg.alert(error.toString());
268
+ });
269
+ },
270
+
271
+ /**
272
+ * Обновляет отображения структуры меню
273
+ */
274
+
275
+ reloadMenu: function() {
276
+ this.loadMenuData(this.getView().up().down('NavWorkspaceListView').getSelection()[0], true);
277
+ this.getView().getStore().reload();
278
+ },
279
+
280
+ /**
281
+ * Срабатывает при клике правой кнопки мыши по элементу, открывает контекстное меню
282
+ * @param {Ext.view.View} _ this элемента меню
283
+ * @param {Object} record запись элемента меню
284
+ * @param {HTMLElement} item HTML элемент элемента меню
285
+ * @param {Number} index Индекс элемента
286
+ * @param {Ext.event.Event} e Необработанный объект события
287
+ */
288
+
289
+ showContextMenu: function(_, record, item, index, e) {
290
+ Ext.create('Ext.menu.Menu', {
291
+ ui: 'NavMenuTreeContextMenu',
292
+
293
+ viewModel: {
294
+ formulas: {
295
+ getTitleSubMenu: function() {
296
+ if (record.get('leaf') === true) {
297
+ return '';
298
+ } else {
299
+ return record.get('text');
300
+ }
301
+ },
302
+
303
+ isSelectionFolder: function() {
304
+ return record.get('leaf');
305
+ },
306
+
307
+ isSelectionMenu: function() {
308
+ return record.isRoot();
309
+ },
310
+
311
+ isDeleteItem: function() {
312
+ return record.isRoot() || record.get('children').length;
313
+ },
314
+ },
315
+ },
316
+
317
+ items: [
318
+ {
319
+ xtype: 'menuitem',
320
+ handler: Ext.bind(this.openFormAddElement, this, [record]),
321
+ bind: {
322
+ disabled: '{isSelectionFolder}',
323
+ text: `Добавить элемент меню в "{getTitleSubMenu}"`,
324
+ },
325
+ iconCls: 'x-fa fa-file-medical',
326
+ },
327
+ {
328
+ xtype: 'menuitem',
329
+ handler: Ext.bind(this.openFormAddFolder, this, [record]),
330
+ bind: {
331
+ disabled: '{isSelectionFolder}',
332
+ text: `Добавить группу в "{getTitleSubMenu}"`,
333
+ },
334
+ iconCls: 'x-fa fa-folder-plus',
335
+ },
336
+ {
337
+ xtype: 'menuitem',
338
+ text: 'Редактировать',
339
+ handler: Ext.bind(this.openFormEdit, this, [_, record]),
340
+ bind: {
341
+ disabled: '{isSelectionMenu}',
342
+ },
343
+ iconCls: 'x-fa fa-edit',
344
+ },
345
+ {
346
+ xtype: 'menuitem',
347
+ text: 'Удалить',
348
+ handler: Ext.bind(this.deleteMenu, this, [record]),
349
+ bind: {
350
+ disabled: '{isDeleteItem}',
351
+ },
352
+ iconCls: 'x-fa fa-trash',
353
+
354
+ }
355
+ ],
356
+ }).showAt(e.getXY());
357
+ e.preventDefault();
358
+ },
359
+
360
+ /**
361
+ * Разворачивает все группы
362
+ */
363
+
364
+ expandAllTree: function() {
365
+ this.getView().expandAll();
366
+ },
367
+
368
+ /**
369
+ * Сворачивания всех групп
370
+ */
371
+
372
+ collapseAllTree: function() {
373
+ this.getView().getStore().getRoot().collapseChildren();
374
+ },
375
+
376
+ /**
377
+ * При обновлении списка рабочих пространтсв, устанаваливает корню дерева текст
378
+ */
379
+
380
+ setRootMenu: function() {
381
+ this.getView().getStore().setRoot({text: 'Рабочее пространство'});
382
+ },
383
+
384
+ /**
385
+ * Информация по использованию редактора меню
386
+ */
387
+
388
+ showSupportingInformation: function() {
389
+ Ext.create('Ext.window.Window', {
390
+ title: 'Описание',
391
+ height: 150,
392
+ width: 500,
393
+ padding: 10,
394
+ layout: 'fit',
395
+ closable: true,
396
+ scrollable: true,
397
+ modal: true,
398
+ html: `Взаимодействие с элементами меню происходит по нажатию на правую кнопку мыши.`,
399
+ }).show();
400
+ },
401
+ });