ru.coon 2.5.25 → 2.5.26

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 (526) hide show
  1. package/.gitattributes +1 -1
  2. package/.husky/pre-commit +0 -0
  3. package/CHANGELOG.md +17 -0
  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/jsdoc.config.json +29 -29
  9. package/package.json +82 -82
  10. package/sass/src/common/plugin/form/PeriodPicker.scss +8 -8
  11. package/src/CustomXMLReader.js +42 -42
  12. package/src/FieldsHelper.js +141 -141
  13. package/src/MessageResources.js +58 -58
  14. package/src/SystemProperties.js +208 -208
  15. package/src/chart/BaseChart.js +81 -81
  16. package/src/chart/ChartComponent.js +14 -14
  17. package/src/chart/editor/CoonChartEditor.js +189 -189
  18. package/src/chart/editor/CoonChartEditorViewModel.js +28 -28
  19. package/src/chart/editor/DataSourceChartBindForm.js +153 -153
  20. package/src/command/ASyncBaseJSONCommand.js +15 -15
  21. package/src/command/DeletePropertyFromConfigurationCommand.js +18 -18
  22. package/src/command/GetAllPropertiesWithDefaultCommand.js +6 -6
  23. package/src/command/GetPropertyFromConfigurationCommand.js +18 -18
  24. package/src/command/Readme.md +4 -4
  25. package/src/command/SavePropertyFromConfigurationCommand.js +18 -18
  26. package/src/command/characteristic/CharacteristicValuesCommand.js +50 -50
  27. package/src/command/characteristic/SetEntityCharacteristicsCommand.js +49 -49
  28. package/src/common/baseModel.js +39 -39
  29. package/src/common/button/ForeignButton.js +132 -132
  30. package/src/common/command/AddNoteCommand.js +42 -42
  31. package/src/common/command/DeleteNoteCommand.js +40 -40
  32. package/src/common/command/GetNoteCommand.js +40 -40
  33. package/src/common/command/SaveNoteCommand.js +42 -42
  34. package/src/common/component/DFVCharacteristicField.js +24 -24
  35. package/src/common/component/ExternalFrame.scss +8 -8
  36. package/src/common/component/FinanceDocumentDateWindow.js +47 -47
  37. package/src/common/component/ForeignSelectWindow.js +93 -93
  38. package/src/common/component/HotkeyHelpText.js +43 -43
  39. package/src/common/component/HotkeyHelpText.scss +34 -34
  40. package/src/common/component/PropertyDict.js +279 -279
  41. package/src/common/component/TreeComponentStructure.js +155 -155
  42. package/src/common/component/TreeComponentStructure.scss +5 -5
  43. package/src/common/component/YearPanel.js +76 -76
  44. package/src/common/component/characteristic/CharacteristicPanelController.js +90 -90
  45. package/src/common/component/characteristic/characteristicAlgorithm/CharacteristicAlgorithmListController.js +133 -133
  46. package/src/common/component/characteristic/characteristicGroup/CharacteristicGroupPanelController.js +47 -47
  47. package/src/common/component/editor/CharacteristicAddTypeGrid.js +101 -101
  48. package/src/common/component/editor/CharacteristicColumnModel.js +35 -35
  49. package/src/common/component/editor/CharacteristicForeignWindow.js +76 -76
  50. package/src/common/component/editor/CharacteristicHistoryPanel.js +110 -110
  51. package/src/common/component/editor/CharacteristicHistoryPanelAudit.js +73 -73
  52. package/src/common/component/editor/CharacteristicHistoryPanelWithDeletedChars.js +136 -136
  53. package/src/common/component/editor/CharacteristicHistoryUserAudit.js +49 -49
  54. package/src/common/component/editor/CharacteristicLoaderByCharacteristicEntityPlugin.js +41 -41
  55. package/src/common/component/editor/CharacteristicTypeLoaderPlugin.js +38 -38
  56. package/src/common/component/editor/EditorFactory.js +515 -515
  57. package/src/common/component/editor/HistoryListForTypeCharacteristicEditor.js +51 -51
  58. package/src/common/component/editor/HistoryTypedCharacteristicEditor.js +240 -240
  59. package/src/common/component/editor/creators/BaseEditorCreator.js +22 -22
  60. package/src/common/component/editor/creators/ByReportEditorCreator.js +8 -8
  61. package/src/common/component/editor/creators/CustomPanelEditorCreator.js +66 -66
  62. package/src/common/component/editor/creators/NumberEditorCreator.js +44 -44
  63. package/src/common/component/editor/creators/SimpleReportEditorCreator.js +37 -37
  64. package/src/common/component/editor/creators/TriggerFieldEditorCreator.js +127 -127
  65. package/src/common/component/settings/commands/getUserSettingsCommand.js +6 -6
  66. package/src/common/component/settings/commands/setUserPropValueCommand.js +23 -23
  67. package/src/common/component/settings/modules/settingClosePageConfirmation.js +27 -27
  68. package/src/common/component/settings/modules/settingShowNeedReloadMessage.js +75 -75
  69. package/src/common/component/settings/modules/settingwindowHolder.js +21 -21
  70. package/src/common/component/settings/stores/userSettingsStoreService.js +37 -37
  71. package/src/common/field/BankBikField.js +15 -15
  72. package/src/common/field/BankKppField.js +16 -16
  73. package/src/common/field/BankOgrnField.js +71 -71
  74. package/src/common/field/BankOgrnIpField.js +23 -23
  75. package/src/common/field/BankPaymentAccountField.js +48 -48
  76. package/src/common/field/DatePickerPresetsField.js +256 -256
  77. package/src/common/field/FieldsHelper.js +198 -198
  78. package/src/common/field/ForeignField.js +186 -186
  79. package/src/common/field/IDField.js +22 -22
  80. package/src/common/field/InnField.js +86 -86
  81. package/src/common/field/OpenDialogField.js +16 -16
  82. package/src/common/field/PhoneField.js +38 -38
  83. package/src/common/field/PropertyField.js +83 -83
  84. package/src/common/field/ReportValueField.js +128 -128
  85. package/src/common/field/ReportValueField.scss +2 -2
  86. package/src/common/field/SelectIconClassField.js +58 -58
  87. package/src/common/field/SnilsField.js +35 -35
  88. package/src/common/field/checkbox/CustomValueCheckBox.js +113 -113
  89. package/src/common/field/combo/AbstractComponentsComboBox.js +32 -32
  90. package/src/common/field/combo/BillingLookupComboBox.js +21 -21
  91. package/src/common/field/combo/CommandComboBox.js +17 -17
  92. package/src/common/field/combo/CommandComboBox.scss +19 -19
  93. package/src/common/field/combo/ConstantList.js +26 -26
  94. package/src/common/field/combo/GridComboBox.js +148 -148
  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/UIElementPickerPanel.js +176 -0
  111. package/src/common/panel/WindowWrap.js +0 -0
  112. package/src/common/panel/WindowWrap.scss +8 -8
  113. package/src/common/panel/dropzone/UniversalMultiUploadForm.scss +29 -29
  114. package/src/common/panel/dropzone/UniversalMultiUploadFormController.js +233 -233
  115. package/src/common/panel/dropzone/UniversalMultiUploadFormViewModel.js +10 -10
  116. package/src/common/panel/dropzone/UploadDropZone.js +56 -56
  117. package/src/common/panel/dropzone/UploadDropZone.scss +36 -36
  118. package/src/common/panel/widget/LinkWindow.js +67 -67
  119. package/src/common/panel/widget/LinkWindowController.js +69 -69
  120. package/src/common/panel/widget/MainSettingsWindow.js +121 -121
  121. package/src/common/panel/widget/MainSettingsWindowController.js +68 -68
  122. package/src/common/panel/widget/PinWindow.js +42 -42
  123. package/src/common/panel/widget/PinWindowController.js +48 -48
  124. package/src/common/panel/widget/SettingsModel.js +15 -15
  125. package/src/common/panel/widget/SettingsWindow.js +154 -154
  126. package/src/common/panel/widget/SettingsWindowController.js +44 -44
  127. package/src/common/panel/widget/WidgetPanel.js +19 -19
  128. package/src/common/panel/widget/WidgetPanel.scss +157 -157
  129. package/src/common/panel/widget/WidgetPanelViewModel.js +13 -13
  130. package/src/common/plugin/form/CopyPastePlugin.js +68 -68
  131. package/src/common/plugin/form/CountRowsToFieldLabel.js +25 -25
  132. package/src/common/plugin/form/DragDropFilePlugin.js +2 -2
  133. package/src/common/plugin/form/FieldDependsPlugin.js +215 -215
  134. package/src/common/plugin/form/PeriodMenu.js +58 -58
  135. package/src/common/plugin/form/PeriodPickerPlugin.js +51 -51
  136. package/src/common/plugin/form/RequiredFlagPlugin.js +79 -79
  137. package/src/common/plugin/mixin/defaults.js +17 -17
  138. package/src/common/tree/BaseContextMenu.js +50 -50
  139. package/src/common/tree/ContextMenuItem.js +18 -18
  140. package/src/common/tree/NodeTreeLoader.js +61 -61
  141. package/src/common/trigger/WikiTrigger.js +20 -20
  142. package/src/eventBus.js +73 -73
  143. package/src/info.js +39 -39
  144. package/src/info.scss +12 -12
  145. package/src/log.js +219 -219
  146. package/src/logSender.js +63 -63
  147. package/src/model/MoParameterFields.js +7 -7
  148. package/src/model/SimpleEntityCharacteristicBeanFields.js +6 -6
  149. package/src/model/VisualCharacteristicValueFields.js +6 -6
  150. package/src/model/VisualCharacteristicValuesFields.js +17 -17
  151. package/src/nav/AppNavTab.js +106 -106
  152. package/src/nav/AppNavTab.scss +20 -20
  153. package/src/nav/AppNavigationBar.js +88 -88
  154. package/src/nav/AppNavigationBar.scss +9 -9
  155. package/src/nav/AppNavigationBarViewController.js +66 -66
  156. package/src/nav/AppNavigationMenu.scss +64 -64
  157. package/src/nav/WindowBarMixin.js +27 -27
  158. package/src/nav/editor/NavigateElementEditorController.js +34 -34
  159. package/src/nav/editor/NavigateElementEditorView.js +94 -94
  160. package/src/nav/editor/NavigateElementEditorViewModel.js +22 -22
  161. package/src/nav/editor/menu/NavMenuTreeController.js +401 -401
  162. package/src/nav/editor/menu/NavMenuTreeView.js +146 -146
  163. package/src/nav/editor/menu/NavMenuTreeView.scss +104 -104
  164. package/src/nav/editor/menu/command/AddMenuCommand.js +20 -20
  165. package/src/nav/editor/menu/command/DeleteMenuCommand.js +20 -20
  166. package/src/nav/editor/menu/command/GetMenuCommand.js +20 -20
  167. package/src/nav/editor/menu/command/SaveMenuCommand.js +20 -20
  168. package/src/nav/editor/menu/form/NavMenuFormViewController.js +133 -133
  169. package/src/nav/editor/menu/form/NavMenuFormViewModel.js +24 -24
  170. package/src/nav/editor/workspace/NavWorkspaceListController.js +179 -179
  171. package/src/nav/editor/workspace/NavWorkspaceListView.js +59 -59
  172. package/src/nav/editor/workspace/NavWorkspaceListView.scss +35 -35
  173. package/src/nav/editor/workspace/command/AddWorkspaceCommand.js +20 -20
  174. package/src/nav/editor/workspace/command/DeleteWorkspaceCommand.js +20 -20
  175. package/src/nav/editor/workspace/command/GetWorkspaceCommand.js +20 -20
  176. package/src/nav/editor/workspace/command/SaveWorkspaceCommand.js +20 -20
  177. package/src/nav/editor/workspace/form/NavWorkspaceFormController.js +108 -108
  178. package/src/nav/editor/workspace/form/NavWorkspaceFormView.js +79 -79
  179. package/src/nav/editor/workspace/form/NavWorkspaceFormViewModel.js +18 -18
  180. package/src/nav/menu/NavMenuPanel.scss +11 -11
  181. package/src/nav/menu/WorkspaceMenuView.scss +218 -218
  182. package/src/nav/state.js +86 -86
  183. package/src/nav/windowHolder.js +97 -97
  184. package/src/nav/windowHolderTab.js +39 -39
  185. package/src/nav/windowHolderTab.scss +13 -13
  186. package/src/report/column/BigNumColumn.js +43 -43
  187. package/src/report/column/Check.js +49 -49
  188. package/src/report/column/CounterColumn.js +26 -26
  189. package/src/report/column/DynamicActionColumn.js +74 -74
  190. package/src/report/column/HintColumn.js +19 -19
  191. package/src/report/column/HintDateColumn.js +19 -19
  192. package/src/report/column/HintTimeIntervalColumn.js +33 -33
  193. package/src/report/column/IconSvgColumn.js +15 -15
  194. package/src/report/column/MoneyColumn.js +25 -25
  195. package/src/report/column/MultiFilesColumn.scss +8 -8
  196. package/src/report/column/MultiLineColumn.js +17 -17
  197. package/src/report/column/PercentColumn.js +38 -38
  198. package/src/report/column/SoftWrapColumn.js +18 -18
  199. package/src/report/column/TimeIntervalColumn.js +34 -34
  200. package/src/report/command/ConvertReportCommand.js +41 -41
  201. package/src/report/command/ExecuteAllReportsCommand.js +53 -53
  202. package/src/report/command/GetExcelFromRowsOrReportData.js +5 -5
  203. package/src/report/command/GetExcelReportDataCommand.js +5 -5
  204. package/src/report/command/GetPdfReportDataCommand.js +7 -7
  205. package/src/report/command/GetReportCommand.js +39 -39
  206. package/src/report/command/GetReportFieldsCommand.js +42 -42
  207. package/src/report/command/GetReportInfoCommand.js +29 -29
  208. package/src/report/command/GetReportRevisionCommand.js +25 -25
  209. package/src/report/command/GetReportVersionListCommand.js +28 -28
  210. package/src/report/command/PublisherPdfCommand.js +52 -52
  211. package/src/report/command/RestoreReportCommand.js +27 -27
  212. package/src/report/component/BoundListPagingToolbar.scss +7 -7
  213. package/src/report/component/EXTJSReportUploadForm.js +175 -175
  214. package/src/report/component/ErrorWindow.scss +15 -15
  215. package/src/report/component/EventKeyBox.js +20 -20
  216. package/src/report/component/IsweSimplestReportCombo.js +40 -40
  217. package/src/report/component/LookupCombo.js +24 -24
  218. package/src/report/component/ParameterizedReportCombo.scss +85 -85
  219. package/src/report/component/ReportPanel.scss +69 -69
  220. package/src/report/component/SimpleReportTag.scss +18 -18
  221. package/src/report/component/SubentityCombo.js +12 -12
  222. package/src/report/component/reportpanel/FilterPanel.scss +16 -16
  223. package/src/report/component/reportpanel/FilterPanelLegend.js +71 -71
  224. package/src/report/component/reportpanel/FilterPanelLegend.scss +23 -23
  225. package/src/report/component/reportpanel/ReportGrid.scss +19 -19
  226. package/src/report/component/reportpanel/ReportStore.js +55 -55
  227. package/src/report/component/reportpanel/ReportTreeStore.js +38 -38
  228. package/src/report/component/settings/AddVersioningTab.js +19 -19
  229. package/src/report/component/settings/ReportFieldPropertiesGrid.js +80 -80
  230. package/src/report/component/settings/ReportFormEditPanel.scss +87 -87
  231. package/src/report/component/settings/field/ReportFormFieldsGrid.scss +5 -5
  232. package/src/report/component/settings/parameter/ReportFormParameterEditPanel.js +64 -64
  233. package/src/report/component/settings/parameter/ReportFormParameterEditPanelController.js +124 -124
  234. package/src/report/component/settings/parameter/ReportFormParametersGridController.js +91 -91
  235. package/src/report/component/settings/plugin/PluginSelectWindow.js +245 -245
  236. package/src/report/component/settings/plugin/ReportFormPluginGrid.js +24 -16
  237. package/src/report/component/settings/plugin/ReportFormPluginGridController.js +25 -8
  238. package/src/report/component/settings/plugin/ReportFormPluginPanel.js +3 -1
  239. package/src/report/component/settings/plugin/ReportFormPluginSettings.js +208 -0
  240. package/src/report/component/settings/plugin/SpecificPluginSelectWindow.js +8 -8
  241. package/src/report/component/settings/property/ReportPropertiesPanel.scss +12 -12
  242. package/src/report/component/tab/ReportTabView.js +59 -59
  243. package/src/report/model/AccountDocumentBean.js +33 -33
  244. package/src/report/model/AccountDocumentBeanFields.js +35 -35
  245. package/src/report/model/ActionCodeBean.js +17 -17
  246. package/src/report/model/ActionCodeBeanFields.js +8 -8
  247. package/src/report/model/ActionCodeGroupBean.js +18 -18
  248. package/src/report/model/ActionCodeGroupBeanFields.js +9 -9
  249. package/src/report/model/BillingDocumentFields.js +29 -29
  250. package/src/report/model/BillingDocumentStateBean.js +20 -20
  251. package/src/report/model/BillingDocumentStateBeanFields.js +11 -11
  252. package/src/report/model/CharacteristicBean.js +37 -37
  253. package/src/report/model/CharacteristicBeanFields.js +30 -30
  254. package/src/report/model/ColorPluginBean.js +16 -16
  255. package/src/report/model/ColorPluginBeanFields.js +16 -16
  256. package/src/report/model/ComboValueWrapper.js +16 -16
  257. package/src/report/model/ComboValueWrapperFields.js +6 -6
  258. package/src/report/model/ConfigReportPropertyBeanFields.js +7 -7
  259. package/src/report/model/ConfigureCharacteristicBean.js +36 -36
  260. package/src/report/model/ConfigureCharacteristicBeanFields.js +27 -27
  261. package/src/report/model/FiltersPluginBean.js +12 -12
  262. package/src/report/model/FiltersPluginBeanFields.js +6 -6
  263. package/src/report/model/GroupButtonsPluginBean.js +16 -16
  264. package/src/report/model/GroupButtonsPluginBeanFields.js +13 -13
  265. package/src/report/model/LimitBean.js +27 -27
  266. package/src/report/model/LimitBeanFields.js +21 -21
  267. package/src/report/model/LimitDetailsBeanFields.js +12 -12
  268. package/src/report/model/LogRequestBean.js +19 -19
  269. package/src/report/model/LogRequestFields.js +11 -11
  270. package/src/report/model/LookupBean.js +16 -16
  271. package/src/report/model/LookupBeanFields.js +7 -7
  272. package/src/report/model/MenuGroupCharacteristicTypeBean.js +17 -17
  273. package/src/report/model/MenuGroupCharacteristicTypeBeanFields.js +8 -8
  274. package/src/report/model/RawCharacteristicValueBean.js +21 -21
  275. package/src/report/model/RawCharacteristicValueBeanFields.js +12 -12
  276. package/src/report/model/ReportAccessGroupBean.js +18 -18
  277. package/src/report/model/ReportAccessGroupBeanFields.js +9 -9
  278. package/src/report/model/ReportBeanFields.js +12 -12
  279. package/src/report/model/ReportFieldBean.js +26 -26
  280. package/src/report/model/ReportFieldBeanFields.js +10 -10
  281. package/src/report/model/ReportFieldPropertyBean.js +20 -20
  282. package/src/report/model/ReportFieldPropertyBeanFields.js +17 -17
  283. package/src/report/model/ReportFormBeanFields.js +20 -20
  284. package/src/report/model/ReportMaintenanceBean.js +26 -26
  285. package/src/report/model/ReportMaintenanceBeanFields.js +23 -23
  286. package/src/report/model/ReportNavigationContextBeanFields.js +16 -16
  287. package/src/report/model/ReportParameterBeanFields.js +14 -14
  288. package/src/report/model/ReportParameterMaintenanceBean.js +33 -33
  289. package/src/report/model/ReportParameterMaintenanceBeanFields.js +29 -29
  290. package/src/report/model/ReportPluginBeanFields.js +10 -10
  291. package/src/report/model/ReportPluginMaintenanceBean.js +22 -22
  292. package/src/report/model/ReportPluginMaintenanceBeanFields.js +17 -17
  293. package/src/report/model/ReportPropertyBean.js +19 -19
  294. package/src/report/model/ReportPropertyBeanFields.js +13 -13
  295. package/src/report/model/SummaryPluginBeanFields.js +7 -7
  296. package/src/report/model/ToggleColumnsPluginBean.js +12 -12
  297. package/src/report/model/ToggleColumnsPluginBeanFields.js +6 -6
  298. package/src/report/model/TownBeanFields.js +7 -7
  299. package/src/report/model/TownTypeBean.js +17 -17
  300. package/src/report/model/TownTypeBeanFields.js +8 -8
  301. package/src/report/model/UsersGroupsValueBean.js +16 -16
  302. package/src/report/model/UsersGroupsValueBeanFields.js +7 -7
  303. package/src/report/model/WizardBean.js +17 -17
  304. package/src/report/model/WizardBeanFields.js +8 -8
  305. package/src/report/plugin/SearchByPropButton.js +15 -15
  306. package/src/report/plugin/SettingsManagerPlugin/SettingsManagerPlugin.js +193 -193
  307. package/src/report/plugin/SettingsManagerPlugin/model/SMPProfileEntry.js +28 -28
  308. package/src/report/plugin/SettingsManagerPlugin/store/SMPAbstractEntryStore.js +89 -89
  309. package/src/report/plugin/SettingsManagerPlugin/store/SMPLocalEntryStore.js +64 -64
  310. package/src/report/plugin/SettingsManagerPlugin/store/SMPRemoteEntryStore.js +6 -6
  311. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainView.js +300 -300
  312. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainView.scss +3 -3
  313. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainViewController.js +183 -183
  314. package/src/report/plugin/SettingsManagerPlugin/view/SMPMainViewModel.js +82 -82
  315. package/src/report/plugin/comboBtnWrapper.js +27 -27
  316. package/src/report/plugin/configPanel/BasePluginConfig.js +256 -256
  317. package/src/report/plugin/configPanel/CalculateCellSumPluginConfigPanel.js +29 -29
  318. package/src/report/plugin/configPanel/ChangeFieldValuePluginConfigGrid.js +110 -110
  319. package/src/report/plugin/configPanel/ExecuteCommandButtonPluginConfigPanel.scss +5 -5
  320. package/src/report/plugin/configPanel/GridEditorPluginConfigGrid.js +145 -145
  321. package/src/report/plugin/configPanel/GridFiltersPluginConfigPanelFiltersGrid.js +107 -107
  322. package/src/report/plugin/configPanel/GridRowAddPluginConfigPanel.js +146 -146
  323. package/src/report/plugin/configPanel/GridRowStylePluginConfigPropertyGrid.js +185 -185
  324. package/src/report/plugin/configPanel/GridToolbarButtonPluginConfigPanel.js +249 -249
  325. package/src/report/plugin/configPanel/GroupButtonsPluginConfigGrid.js +149 -149
  326. package/src/report/plugin/configPanel/GroupRowsPluginConfigPanel.scss +3 -3
  327. package/src/report/plugin/configPanel/SelectRowsPluginConfigPanel.js +35 -35
  328. package/src/report/plugin/configPanel/SetParameterPluginConfigPanel.js +108 -108
  329. package/src/report/plugin/configPanel/SpecificPluginConfig.js +45 -45
  330. package/src/report/plugin/configPanel/TextToTitleConfigPanel.js +74 -74
  331. package/src/report/plugin/configPanel/ToggleColumnsPluginConfigPanelAdditionalColumnsGrid.js +94 -94
  332. package/src/report/plugin/configPanel/ToolbarButtonPluginConfigPanel.js +164 -164
  333. package/src/report/plugin/configPanel/ToolbarItemPluginConfigPanel.js +83 -83
  334. package/src/report/plugin/configPanel/TreeFilterPluginConfigPanel.js +38 -38
  335. package/src/report/plugin/configPanel/common/pluginDescriptionLabel.js +7 -7
  336. package/src/report/plugin/configPanel/common/pluginDescriptionLabel.scss +8 -8
  337. package/src/report/plugin/configPanel/openCustomPanelButtonPlugin/ReportFormContextXTypeMappingGrid.js +71 -71
  338. package/src/report/plugin/configPanel/reportGroupsFieldValidationPlugin/RequiredParametersTree.js +157 -157
  339. package/src/report/plugin/configPanel/reportGroupsFieldValidationPlugin/UnusedParametersTree.js +66 -66
  340. package/src/report/plugin/form/ComboCustomSort.js +39 -39
  341. package/src/report/plugin/form/ComboLoadingProgress.js +78 -78
  342. package/src/report/plugin/form/CopyToClipboardPlugin.js +75 -75
  343. package/src/report/plugin/form/DatePeriodValidatePluginFactory.js +79 -79
  344. package/src/report/plugin/form/EnterConfirmFormPlugin.js +55 -55
  345. package/src/report/plugin/form/FieldOnEnterChangePlugin.js +27 -27
  346. package/src/report/plugin/form/FormFieldHidding.js +32 -32
  347. package/src/report/plugin/form/ReadOnlyFieldPlugin.js +24 -24
  348. package/src/report/plugin/form/ReportGroupsFieldValidationPlugin.js +222 -222
  349. package/src/report/plugin/form/ValidateFieldPlugin.js +42 -42
  350. package/src/report/plugin/form/WindowCheckStatePlugin.js +84 -84
  351. package/src/report/plugin/grid/AddRowButtonPlugin.js +33 -33
  352. package/src/report/plugin/grid/BadgeButtonPlugin.js +70 -70
  353. package/src/report/plugin/grid/CalculateCellSumPlugin.js +186 -186
  354. package/src/report/plugin/grid/ChangeFieldValueButtonPlugin.js +79 -79
  355. package/src/report/plugin/grid/CopyCellToSource.js +80 -80
  356. package/src/report/plugin/grid/CustomColumnSortPlugin.js +39 -39
  357. package/src/report/plugin/grid/DataSourceSelectionPlugin.js +164 -164
  358. package/src/report/plugin/grid/DeleteRowButtonPlugin.js +145 -145
  359. package/src/report/plugin/grid/ExecuteApiCommandButtonPlugin.js +23 -23
  360. package/src/report/plugin/grid/ExecuteCommandAndSaveNotePlugin.js +49 -49
  361. package/src/report/plugin/grid/ExecuteCommandButtonPlugin.js +136 -136
  362. package/src/report/plugin/grid/ExporterPlugin.js +43 -43
  363. package/src/report/plugin/grid/FilterGridColumnsPlugin.js +79 -79
  364. package/src/report/plugin/grid/FormPanelStatePlugin.js +91 -91
  365. package/src/report/plugin/grid/GetAdditionalContextPlugin.js +73 -73
  366. package/src/report/plugin/grid/GridContextMenu.js +83 -83
  367. package/src/report/plugin/grid/GridContextPlugin.js +248 -248
  368. package/src/report/plugin/grid/GridEditButtonsDeleteBehavior.js +62 -62
  369. package/src/report/plugin/grid/GridFiltersByKeyPressingPlugin.js +99 -99
  370. package/src/report/plugin/grid/GridFiltersInHeadersPlugin.js +69 -69
  371. package/src/report/plugin/grid/GridFiltersPlugin.js +164 -164
  372. package/src/report/plugin/grid/GridFiltersPopupPlugin.js +106 -106
  373. package/src/report/plugin/grid/GridHistoryBehaviorPlugin.js +260 -260
  374. package/src/report/plugin/grid/GridHistoryBehaviorStep.js +45 -45
  375. package/src/report/plugin/grid/GridNoSelectPlugin.js +30 -30
  376. package/src/report/plugin/grid/GridRecordViewerPlugin.js +97 -97
  377. package/src/report/plugin/grid/GridRowAddPlugin.js +40 -40
  378. package/src/report/plugin/grid/GridRowCountPlugin.js +57 -57
  379. package/src/report/plugin/grid/GridRowEditingByEnterPlugin.js +44 -44
  380. package/src/report/plugin/grid/GridRowStylePlugin.scss +56 -56
  381. package/src/report/plugin/grid/GridRowTooltipForCellPlugin.js +118 -118
  382. package/src/report/plugin/grid/GridStoreDependency.js +63 -63
  383. package/src/report/plugin/grid/GridToolbarButtonPlugin.js +205 -205
  384. package/src/report/plugin/grid/GroupButtonsPlugin.js +120 -120
  385. package/src/report/plugin/grid/GroupRowsPlugin.js +133 -133
  386. package/src/report/plugin/grid/HideItemPlugin.js +54 -54
  387. package/src/report/plugin/grid/MenuPanel.js +44 -44
  388. package/src/report/plugin/grid/MultiEditorPlugin.js +119 -119
  389. package/src/report/plugin/grid/OpenURLButtonPlugin.js +48 -48
  390. package/src/report/plugin/grid/PrintPdfButtonPlugin.js +210 -210
  391. package/src/report/plugin/grid/ReportBoxContainerPlugin.js +30 -30
  392. package/src/report/plugin/grid/ReportCharacteristicBindPluginPanel.js +66 -66
  393. package/src/report/plugin/grid/ReportContainerPlugin.js +69 -69
  394. package/src/report/plugin/grid/ReportTabContainerPlugin.js +67 -67
  395. package/src/report/plugin/grid/ReportTabContainerPlugin.scss +3 -3
  396. package/src/report/plugin/grid/RestoreSelectionPlugin.js +93 -93
  397. package/src/report/plugin/grid/SaveTreeViewConfiguration.js +46 -46
  398. package/src/report/plugin/grid/SetCheckboxesPlugin.js +88 -88
  399. package/src/report/plugin/grid/SetParameterPlugin.js +139 -139
  400. package/src/report/plugin/grid/SetReportParameterPlugin.js +108 -108
  401. package/src/report/plugin/grid/SetSingleParameterPlugin.js +68 -68
  402. package/src/report/plugin/grid/SetValuePlugin.js +13 -13
  403. package/src/report/plugin/grid/StoreFiltersByKeyPressingPlugin.js +114 -114
  404. package/src/report/plugin/grid/SummaryPlugin.js +109 -109
  405. package/src/report/plugin/grid/TextToTitlePlugin.js +93 -93
  406. package/src/report/plugin/grid/ToggleColumnsPlugin.js +161 -161
  407. package/src/report/plugin/grid/ToggleColumnsPlugin.scss +7 -7
  408. package/src/report/plugin/grid/ToolbarButtonPlugin.scss +3 -3
  409. package/src/report/plugin/grid/ToolbarItemPlugin.js +142 -142
  410. package/src/report/plugin/grid/ToolbarSeparatorPlugin.js +16 -16
  411. package/src/report/plugin/grid/UpdateGridPlugin.js +82 -82
  412. package/src/report/plugin/htmlEditor/ToolbarCombo.js +18 -18
  413. package/src/report/plugin/htmlEditor/ToolbarElement.js +34 -34
  414. package/src/report/plugin/report/BindDataViewPanelPlugin.js +65 -65
  415. package/src/report/plugin/report/IsweBindCustomPanelPlugin.js +68 -68
  416. package/src/report/store/AccountDocumentStore.js +49 -49
  417. package/src/report/store/ActionCodeGroupStore.js +19 -19
  418. package/src/report/store/ActionCodeStore.js +20 -20
  419. package/src/report/store/BillingDocumentStateListStore.js +22 -22
  420. package/src/report/store/BillingLookupStore.js +36 -36
  421. package/src/report/store/CharacteristicListStore.js +26 -26
  422. package/src/report/store/ColorPluginStore.js +19 -19
  423. package/src/report/store/ComboValueWrapperStore.js +18 -18
  424. package/src/report/store/FiltersPluginStore.js +19 -19
  425. package/src/report/store/GroupButtonsPluginStore.js +19 -19
  426. package/src/report/store/LimitDetailsStore.js +24 -24
  427. package/src/report/store/LimitStore.js +28 -28
  428. package/src/report/store/LookupStore.js +19 -19
  429. package/src/report/store/MenuGroupCharacteristicTypeListStore.js +18 -18
  430. package/src/report/store/RawCharacteristicValueListStore.js +18 -18
  431. package/src/report/store/RefStore.js +19 -19
  432. package/src/report/store/ReportFieldPropertyStore.js +25 -25
  433. package/src/report/store/ReportFieldStore.js +22 -22
  434. package/src/report/store/ReportNavigationContextStore.js +24 -24
  435. package/src/report/store/ReportParameterStore.js +21 -21
  436. package/src/report/store/ReportPluginStore.js +29 -29
  437. package/src/report/store/ReportPropertyStore.js +23 -23
  438. package/src/report/store/RequestLogStore.js +18 -18
  439. package/src/report/store/SimpleCharacteristicListStore.js +19 -19
  440. package/src/report/store/SimpleFilterPluginStore.js +19 -19
  441. package/src/report/store/SummaryPluginStore.js +19 -19
  442. package/src/report/store/ToggleColumnsPluginStore.js +19 -19
  443. package/src/report/store/TownTypeStore.js +19 -19
  444. package/src/report/store/WizardStore.js +20 -20
  445. package/src/research/ResearchTreeView.scss +19 -19
  446. package/src/research/TabItemWrapper.js +44 -44
  447. package/src/research/TabItemWrapperViewModel.js +19 -19
  448. package/src/research/command/GetCoonChartStructure.js +63 -63
  449. package/src/research/command/GetReportStructure.js +154 -154
  450. package/src/research/command/GetUiStructure.js +124 -124
  451. package/src/research/command/GetWidgetPanelStructure.js +76 -76
  452. package/src/security/Manager.js +30 -30
  453. package/src/security/Map.js +48 -48
  454. package/src/security/PropertyDataParser.js +135 -135
  455. package/src/security/component/role/RoleStore.js +4 -4
  456. package/src/security/component/role/RoleTagField.js +17 -17
  457. package/src/security/component/ui/UiCPRestrictionEditor.scss +4 -4
  458. package/src/security/component/ui/UiCPRestrictionEditorController.js +166 -166
  459. package/src/security/restriction/Visibility.js +45 -45
  460. package/src/security/type/uiElement.js +54 -54
  461. package/src/stateProvider.js +20 -20
  462. package/src/uielement/command/ExecuteApiCommand.js +15 -15
  463. package/src/uielement/command/GetMenuTreeCommand.js +23 -23
  464. package/src/uielement/command/GetNavigateUIMenuEntryCommand.js +23 -23
  465. package/src/uielement/command/GetNextUIMenuEntryCommand.js +22 -22
  466. package/src/uielement/command/GetUIElementPropertyDocLinkCommand.js +18 -18
  467. package/src/uielement/command/GetUIElementRevisionCommand.js +25 -25
  468. package/src/uielement/command/GetUIElementVersionListCommand.js +27 -27
  469. package/src/uielement/component/CodemirrorEditor.js +68 -68
  470. package/src/uielement/component/MenuItemList.scss +35 -35
  471. package/src/uielement/component/UiCPVisualEditor.scss +108 -108
  472. package/src/uielement/component/UiCustomPanel.js +44 -44
  473. package/src/uielement/component/UiCustomPanelViewModel.js +15 -15
  474. package/src/uielement/component/UiElementController.js +205 -205
  475. package/src/uielement/component/UiElementLookupCombo.js +190 -190
  476. package/src/uielement/component/UiElementPropertyController.js +111 -111
  477. package/src/uielement/component/UiElementPropertyInfoController.js +23 -23
  478. package/src/uielement/component/UiElementPropertyPanel.js +80 -80
  479. package/src/uielement/component/formchips/Chip.js +87 -87
  480. package/src/uielement/component/formchips/FilterConditionToolbar.js +115 -115
  481. package/src/uielement/component/formchips/FilterConditionToolbar.scss +46 -46
  482. package/src/uielement/component/formchips/FilterConditionToolbarController.js +169 -169
  483. package/src/uielement/component/settings/AddVersioningTab.js +26 -26
  484. package/src/uielement/component/settings/EXTJSUiPanelImportJsonForm.js +42 -42
  485. package/src/uielement/component/settings/FrameView.js +113 -113
  486. package/src/uielement/component/settings/FrameViewController.js +132 -132
  487. package/src/uielement/component/settings/PropertyModel.js +8 -8
  488. package/src/uielement/component/settings/PropertyTreePanel.js +121 -121
  489. package/src/uielement/component/settings/UiCustomPanelAnnotationWindow.js +71 -71
  490. package/src/uielement/component/settings/config/UiCPConfigPanelController.scss +24 -24
  491. package/src/uielement/component/settings/linter/rule/BindRule.js +40 -40
  492. package/src/uielement/component/settings/linter/rule/BracesRule.js +68 -68
  493. package/src/uielement/component/settings/linter/rule/HandlerRule.js +45 -45
  494. package/src/uielement/component/settings/linter/rule/LayoutRule.js +24 -24
  495. package/src/uielement/component/settings/linter/rule/ReferenceRule.js +53 -53
  496. package/src/uielement/component/settings/linter/rule/XtypeRule.js +31 -31
  497. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.js +206 -206
  498. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGrid.scss +11 -11
  499. package/src/uielement/component/settings/plugin/UiCustomPanelPluginGridController.js +205 -205
  500. package/src/uielement/component/settings/plugin/UiCustomPanelPluginPanel.scss +11 -11
  501. package/src/uielement/component/settings/plugin/UiCustomPanelPluginSelectWindow.js +152 -152
  502. package/src/uielement/component/settings/version/UiCPVersionPanel.scss +15 -15
  503. package/src/uielement/model/UIElementBeanFields.js +8 -8
  504. package/src/uielement/model/UiElementPropertyModel.js +31 -31
  505. package/src/uielement/plugin/AddBindingsPlugin.js +18 -18
  506. package/src/uielement/plugin/AddDoInitSupportPlugin.js +66 -66
  507. package/src/uielement/plugin/AddOutputParamsPlugin.js +22 -22
  508. package/src/uielement/plugin/ExecuteApiCommandPlugin.js +52 -52
  509. package/src/uielement/plugin/ExecuteCommandPlugin.js +8 -3
  510. package/src/uielement/plugin/ExecuteFunctionPlugin.js +26 -26
  511. package/src/uielement/plugin/FireEventPlugin.js +31 -31
  512. package/src/uielement/plugin/MethodChainPlugin.js +24 -24
  513. package/src/uielement/plugin/OpenPanelPlugin.js +90 -90
  514. package/src/uielement/plugin/configPanel/AddBindingsPluginConfigPanelFormEditor.scss +29 -29
  515. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginConfigPanel.js +214 -214
  516. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginPropertiesGrid.js +62 -62
  517. package/src/uielement/plugin/configPanel/AddDoInitSupportPluginPropertiesGridController.js +102 -102
  518. package/src/uielement/plugin/configPanel/AddOutputParamsPluginConfigPanelFormEditor.js +110 -110
  519. package/src/uielement/plugin/configPanel/ExecuteApiCommandPluginConfigPanel.js +850 -850
  520. package/src/uielement/plugin/configPanel/ExecuteFunctionPluginConfigPanelFormEditor.js +86 -86
  521. package/src/uielement/plugin/configPanel/FireEventPluginConfigPanelFormEditor.js +107 -107
  522. package/src/uielement/plugin/configPanel/OpenPanelPluginConfigPanelFormEditor.js +239 -239
  523. package/src/uielement/plugin/configPanel/PrintPdfPluginConfigPanelFormEditor.js +350 -350
  524. package/src/userSettings.js +161 -161
  525. package/src/version.js +1 -1
  526. 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
+ });