@gisce/react-ooui 2.0.0-alpha.62 → 2.0.0-alpha.64

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 (245) hide show
  1. package/dist/react-ooui.es.js +1 -1
  2. package/dist/react-ooui.es.js.map +1 -1
  3. package/package.json +7 -9
  4. package/src/ConnectionProvider.ts +0 -16
  5. package/src/__tests__/iconMapper.test.ts +0 -30
  6. package/src/__tests__/searchFilterHelper.spec.ts +0 -386
  7. package/src/actionbar/ActionButton.tsx +0 -40
  8. package/src/actionbar/AttachmentsButton.tsx +0 -132
  9. package/src/actionbar/AttachmentsButtonWrapper.tsx +0 -157
  10. package/src/actionbar/ButtonWithBadge.tsx +0 -44
  11. package/src/actionbar/ChangeViewButton.tsx +0 -137
  12. package/src/actionbar/DashboardActionBar.tsx +0 -63
  13. package/src/actionbar/DropdownButton.tsx +0 -124
  14. package/src/actionbar/FormActionBar.tsx +0 -491
  15. package/src/actionbar/GraphActionBar.tsx +0 -67
  16. package/src/actionbar/NewButton.tsx +0 -46
  17. package/src/actionbar/SearchBar.tsx +0 -73
  18. package/src/actionbar/TreeActionBar.tsx +0 -383
  19. package/src/common/ButtonWithTooltip.tsx +0 -18
  20. package/src/common/DatePicker.tsx +0 -98
  21. package/src/common/Field.tsx +0 -93
  22. package/src/common/SelectAllRecordsRow.tsx +0 -94
  23. package/src/common/TimePicker.tsx +0 -38
  24. package/src/context/ActionViewContext.tsx +0 -213
  25. package/src/context/ConfigContext.tsx +0 -28
  26. package/src/context/ContentRootContext.tsx +0 -461
  27. package/src/context/DashboardActionContext.tsx +0 -44
  28. package/src/context/FormContext.tsx +0 -79
  29. package/src/context/FormModalContext.tsx +0 -28
  30. package/src/context/LocaleContext.tsx +0 -50
  31. package/src/context/One2manyContext.tsx +0 -45
  32. package/src/context/TabManagerContext.tsx +0 -117
  33. package/src/helpers/containerHelper.ts +0 -145
  34. package/src/helpers/dayjs.ts +0 -21
  35. package/src/helpers/dynamicColumnsHelper.ts +0 -73
  36. package/src/helpers/errorHelper.ts +0 -27
  37. package/src/helpers/filesHelper.ts +0 -41
  38. package/src/helpers/formHelper.ts +0 -301
  39. package/src/helpers/iconMapper.ts +0 -164
  40. package/src/helpers/logInfoHelper.tsx +0 -30
  41. package/src/helpers/one2manyHelper.ts +0 -194
  42. package/src/helpers/searchHelper.ts +0 -196
  43. package/src/helpers/timeHelper.ts +0 -58
  44. package/src/helpers/treeHelper.tsx +0 -226
  45. package/src/helpers/viewHelper.ts +0 -23
  46. package/src/hooks/useEffectDebugger.ts +0 -43
  47. package/src/hooks/useExport.ts +0 -439
  48. package/src/hooks/useFetchViews.ts +0 -0
  49. package/src/hooks/useSearch.ts +0 -434
  50. package/src/hooks/useWindowDimensions.ts +0 -33
  51. package/src/index.ts +0 -168
  52. package/src/locales/ca_ES.tsx +0 -99
  53. package/src/locales/en_US.tsx +0 -96
  54. package/src/locales/es_ES.tsx +0 -101
  55. package/src/stories/Binary.stories.tsx +0 -23
  56. package/src/stories/Boolean.stories.tsx +0 -22
  57. package/src/stories/Button.stories.tsx +0 -130
  58. package/src/stories/Char.stories.tsx +0 -76
  59. package/src/stories/FiberGrid.stories.tsx +0 -109
  60. package/src/stories/Float.stories.tsx +0 -22
  61. package/src/stories/FloatTime.stories.tsx +0 -32
  62. package/src/stories/Image.stories.tsx +0 -25
  63. package/src/stories/Integer.stories.tsx +0 -22
  64. package/src/stories/Label.stories.tsx +0 -100
  65. package/src/stories/Many2one.stories.tsx +0 -31
  66. package/src/stories/One2many.stories.tsx +0 -288
  67. package/src/stories/ProgressBar.stories.tsx +0 -22
  68. package/src/stories/Reference.stories.tsx +0 -43
  69. package/src/stories/Selection.stories.tsx +0 -34
  70. package/src/stories/Separator.stories.tsx +0 -53
  71. package/src/stories/Text.stories.tsx +0 -35
  72. package/src/stories/Time.stories.tsx +0 -31
  73. package/src/stories/Utils.stories.tsx +0 -14
  74. package/src/stories/containers/Group.stories.tsx +0 -84
  75. package/src/stories/containers/NewLine.stories.tsx +0 -52
  76. package/src/stories/containers/Notebook.stories.tsx +0 -188
  77. package/src/stories/custom/Avatar.stories.tsx +0 -22
  78. package/src/stories/custom/ButtonGroup.stories.tsx +0 -74
  79. package/src/stories/custom/CodeEditor.stories.tsx +0 -25
  80. package/src/stories/custom/Comments.stories.tsx +0 -197
  81. package/src/stories/custom/Indicator.stories.tsx +0 -36
  82. package/src/stories/custom/Markdown.stories.tsx +0 -38
  83. package/src/stories/custom/MultiCheckbox.stories.tsx +0 -60
  84. package/src/stories/custom/Radio.stories.tsx +0 -68
  85. package/src/stories/custom/Steps.stories.tsx +0 -43
  86. package/src/stories/custom/Switch.stories.tsx +0 -23
  87. package/src/stories/custom/Tag.stories.tsx +0 -66
  88. package/src/stories/custom/Tags.stories.tsx +0 -74
  89. package/src/stories/dashboard/Dashboard.stories.tsx +0 -23
  90. package/src/stories/dashboard/DashboardGrid.stories.tsx +0 -43
  91. package/src/stories/forms/ActivacioContracteForm.stories.tsx +0 -25
  92. package/src/stories/forms/Attachment.stories.tsx +0 -24
  93. package/src/stories/forms/CUPSForm.stories.tsx +0 -25
  94. package/src/stories/forms/Company.stories.tsx +0 -25
  95. package/src/stories/forms/CrmCaseForm.stories.tsx +0 -25
  96. package/src/stories/forms/Documents.stories.tsx +0 -25
  97. package/src/stories/forms/FormWithGridFiber.stories.tsx +0 -25
  98. package/src/stories/forms/FormWithLinks.stories.tsx +0 -30
  99. package/src/stories/forms/Lead.stories.tsx +0 -25
  100. package/src/stories/forms/ModContractForm.stories.tsx +0 -26
  101. package/src/stories/forms/PartnersForm.stories.tsx +0 -25
  102. package/src/stories/forms/PolissaForm.stories.tsx +0 -25
  103. package/src/stories/forms/PreferencesForm.stories.tsx +0 -691
  104. package/src/stories/forms/Signatures.stories.tsx +0 -25
  105. package/src/stories/forms/Switching.stories.tsx +0 -25
  106. package/src/stories/graphs/GraphIndicator.stories.tsx +0 -20
  107. package/src/stories/graphs/PieGraph.stories.tsx +0 -78
  108. package/src/stories/mocks/index.ts +0 -46
  109. package/src/stories/mocks/mockProvider.ts +0 -189
  110. package/src/stories/mocks/models/activacioContracte.ts +0 -112
  111. package/src/stories/mocks/models/attachment.ts +0 -1326
  112. package/src/stories/mocks/models/butlleti.ts +0 -296
  113. package/src/stories/mocks/models/company.ts +0 -135
  114. package/src/stories/mocks/models/crm_case.ts +0 -595
  115. package/src/stories/mocks/models/cups.ts +0 -937
  116. package/src/stories/mocks/models/document.ts +0 -223
  117. package/src/stories/mocks/models/factura.ts +0 -2713
  118. package/src/stories/mocks/models/form_with_gridfiber.ts +0 -141
  119. package/src/stories/mocks/models/hist_autoconsum.ts +0 -146
  120. package/src/stories/mocks/models/lead.ts +0 -2101
  121. package/src/stories/mocks/models/modcontractual.ts +0 -952
  122. package/src/stories/mocks/models/partner.ts +0 -1340
  123. package/src/stories/mocks/models/polissa.ts +0 -3127
  124. package/src/stories/mocks/models/res_partner_category.ts +0 -15
  125. package/src/stories/mocks/models/signatura.ts +0 -558
  126. package/src/stories/mocks/models/switching.ts +0 -767
  127. package/src/stories/modals/FormModal.stories.tsx +0 -36
  128. package/src/stories/modals/SearchModal.stories.tsx +0 -37
  129. package/src/stories/trees/FacturesTree.stories.tsx +0 -16
  130. package/src/stories/ui/ActionBar.stories.tsx +0 -21
  131. package/src/stories/ui/FavouriteButton.stories.tsx +0 -16
  132. package/src/stories/ui/GoToResourceModal.stories.tsx +0 -25
  133. package/src/stories/views/ActionView.stories.tsx +0 -28
  134. package/src/stories/views/SearchTree.stories.tsx +0 -1064
  135. package/src/stories/views/Tab.stories.tsx +0 -93
  136. package/src/stories/views/TabsAndContent.stories.tsx +0 -88
  137. package/src/stories/views/Tree.stories.jsx +0 -178
  138. package/src/stories/views/searchFilter/DateRangePicker.stories.tsx +0 -22
  139. package/src/stories/views/searchFilter/DateTimeRangePicker.stories.tsx +0 -23
  140. package/src/stories/views/searchFilter/PairFields.stories.tsx +0 -23
  141. package/src/stories/views/searchFilter/SearchFilter.stories.tsx +0 -165
  142. package/src/stories/views/searchFilter/examples/PartnersSearchFilter.stories.tsx +0 -409
  143. package/src/types/index.ts +0 -392
  144. package/src/ui/ActionErrorDialog.tsx +0 -24
  145. package/src/ui/ConfirmDialog.tsx +0 -28
  146. package/src/ui/ErrorAlert.tsx +0 -37
  147. package/src/ui/FavouriteButton.tsx +0 -271
  148. package/src/ui/FormErrorsDialog.tsx +0 -17
  149. package/src/ui/GenericErrorDialog.tsx +0 -16
  150. package/src/ui/GoToResourceModal.tsx +0 -76
  151. package/src/ui/InfoDialog.tsx +0 -13
  152. package/src/ui/RefreshItemDialog.tsx +0 -29
  153. package/src/ui/RemoveItemDialog.tsx +0 -20
  154. package/src/ui/TitleHeader.tsx +0 -117
  155. package/src/ui/UnlinkItemDialog.tsx +0 -20
  156. package/src/ui/UnsavedChangesDialog.tsx +0 -29
  157. package/src/ui/WarningDialog.tsx +0 -17
  158. package/src/views/ActionView.tsx +0 -526
  159. package/src/views/CurrentTabContent.tsx +0 -21
  160. package/src/views/RootView.tsx +0 -509
  161. package/src/views/TabContent.tsx +0 -31
  162. package/src/views/TabSelector.tsx +0 -31
  163. package/src/views/Welcome.tsx +0 -18
  164. package/src/views/actionViews/DashboardActionView.tsx +0 -52
  165. package/src/views/actionViews/FormActionView.tsx +0 -70
  166. package/src/views/actionViews/GraphActionView.tsx +0 -152
  167. package/src/views/actionViews/TreeActionView.tsx +0 -87
  168. package/src/views/tabs/Tab.tsx +0 -82
  169. package/src/widgets/WidgetFactory.tsx +0 -142
  170. package/src/widgets/base/Binary.tsx +0 -145
  171. package/src/widgets/base/Boolean.tsx +0 -44
  172. package/src/widgets/base/Button.tsx +0 -77
  173. package/src/widgets/base/Char.tsx +0 -157
  174. package/src/widgets/base/Date.tsx +0 -12
  175. package/src/widgets/base/DateTime.tsx +0 -12
  176. package/src/widgets/base/Email.tsx +0 -27
  177. package/src/widgets/base/Float.tsx +0 -38
  178. package/src/widgets/base/FloatTime.tsx +0 -73
  179. package/src/widgets/base/Image.tsx +0 -120
  180. package/src/widgets/base/Integer.tsx +0 -55
  181. package/src/widgets/base/Label.tsx +0 -56
  182. package/src/widgets/base/LinkInput.tsx +0 -106
  183. package/src/widgets/base/MultiSelection.tsx +0 -90
  184. package/src/widgets/base/ProgressBar.tsx +0 -38
  185. package/src/widgets/base/Reference.tsx +0 -115
  186. package/src/widgets/base/ReferenceTree.tsx +0 -62
  187. package/src/widgets/base/Selection.tsx +0 -71
  188. package/src/widgets/base/Separator.tsx +0 -25
  189. package/src/widgets/base/Text.tsx +0 -162
  190. package/src/widgets/base/Time.tsx +0 -40
  191. package/src/widgets/base/Url.tsx +0 -26
  192. package/src/widgets/base/many2one/Many2one.tsx +0 -322
  193. package/src/widgets/base/many2one/Many2oneSuffix.tsx +0 -232
  194. package/src/widgets/base/many2one/Many2oneSuffixModal.tsx +0 -42
  195. package/src/widgets/base/many2one/Many2oneTree.tsx +0 -18
  196. package/src/widgets/base/one2many/One2many.tsx +0 -100
  197. package/src/widgets/base/one2many/One2manyInput.tsx +0 -724
  198. package/src/widgets/base/one2many/One2manyTopBar.tsx +0 -158
  199. package/src/widgets/containers/Container.tsx +0 -99
  200. package/src/widgets/containers/Group.tsx +0 -37
  201. package/src/widgets/containers/Notebook.tsx +0 -52
  202. package/src/widgets/custom/Avatar.tsx +0 -40
  203. package/src/widgets/custom/ButtonGroup.tsx +0 -169
  204. package/src/widgets/custom/CodeEditor.tsx +0 -32
  205. package/src/widgets/custom/Comments.tsx +0 -147
  206. package/src/widgets/custom/FiberGrid.tsx +0 -48
  207. package/src/widgets/custom/Indicator.tsx +0 -66
  208. package/src/widgets/custom/Markdown.tsx +0 -32
  209. package/src/widgets/custom/MultiCheckbox.tsx +0 -165
  210. package/src/widgets/custom/Radio.tsx +0 -47
  211. package/src/widgets/custom/Steps.tsx +0 -56
  212. package/src/widgets/custom/Switch.tsx +0 -26
  213. package/src/widgets/custom/Tag.tsx +0 -53
  214. package/src/widgets/custom/Tags.tsx +0 -164
  215. package/src/widgets/custom/Timeline.tsx +0 -196
  216. package/src/widgets/modals/ExportModal.tsx +0 -75
  217. package/src/widgets/modals/FormModal.tsx +0 -125
  218. package/src/widgets/modals/SearchModal.tsx +0 -130
  219. package/src/widgets/modals/TranslationModal.tsx +0 -202
  220. package/src/widgets/views/Dashboard/Dashboard.tsx +0 -381
  221. package/src/widgets/views/Dashboard/DashboardForm.tsx +0 -30
  222. package/src/widgets/views/Dashboard/DashboardTree.tsx +0 -238
  223. package/src/widgets/views/Dashboard/dashboardHelper.ts +0 -79
  224. package/src/widgets/views/DashboardGrid/DashboardGrid.tsx +0 -53
  225. package/src/widgets/views/DashboardGrid/DashboardGrid.types.ts +0 -4
  226. package/src/widgets/views/DashboardGrid/DashboardGridItem.tsx +0 -62
  227. package/src/widgets/views/DashboardGrid/DashboardGridItem.types.ts +0 -10
  228. package/src/widgets/views/DashboardGrid/index.ts +0 -4
  229. package/src/widgets/views/Form.tsx +0 -1152
  230. package/src/widgets/views/Graph/Graph.tsx +0 -145
  231. package/src/widgets/views/Graph/GraphChart.tsx +0 -113
  232. package/src/widgets/views/Graph/GraphDefaults.ts +0 -170
  233. package/src/widgets/views/Graph/GraphIndicator.tsx +0 -421
  234. package/src/widgets/views/Graph/useGraphData.tsx +0 -176
  235. package/src/widgets/views/SearchTree.tsx +0 -367
  236. package/src/widgets/views/Tree/Tree.tsx +0 -295
  237. package/src/widgets/views/Tree/index.ts +0 -1
  238. package/src/widgets/views/Tree/treeComponents.tsx +0 -283
  239. package/src/widgets/views/searchFilter/DateRangePicker.tsx +0 -16
  240. package/src/widgets/views/searchFilter/DateTimeRangePicker.tsx +0 -87
  241. package/src/widgets/views/searchFilter/PairFields.tsx +0 -56
  242. package/src/widgets/views/searchFilter/SearchBottomBar.tsx +0 -54
  243. package/src/widgets/views/searchFilter/SearchField.tsx +0 -63
  244. package/src/widgets/views/searchFilter/SearchFilter.tsx +0 -160
  245. package/src/widgets/views/searchFilter/SearchParams.tsx +0 -35
@@ -1,271 +0,0 @@
1
- import React, { useContext, useEffect, useState } from "react";
2
- import {
3
- StarOutlined,
4
- StarFilled,
5
- DownOutlined,
6
- TableOutlined,
7
- FormOutlined,
8
- EditOutlined,
9
- } from "@ant-design/icons";
10
- import { Button, Col, Row, Spin, Tooltip, theme, Menu, Dropdown } from "antd";
11
- import showErrorDialog from "@/ui/ActionErrorDialog";
12
- import {
13
- TabManagerContext,
14
- TabManagerContextType,
15
- } from "@/context/TabManagerContext";
16
- import { LocaleContext, LocaleContextType } from "@/context/LocaleContext";
17
- import { ViewType } from "@/types";
18
- const { useToken } = theme;
19
-
20
- export type ShortcutApi = {
21
- action_id: number;
22
- action_type: string;
23
- id?: number;
24
- name: string;
25
- res_id: number | boolean;
26
- res_model: string;
27
- view_id: number;
28
- view_type: string;
29
- };
30
-
31
- export type FavouriteOptions = {
32
- action_id: number;
33
- action_type: string;
34
- res_id: number | boolean;
35
- view_id: number;
36
- };
37
-
38
- type Props = {
39
- onRetrieveShortcuts: () => Promise<ShortcutApi[]>;
40
- onCheckIsFavourite: (options: FavouriteOptions) => Promise<number | boolean>;
41
- onAddFavourite: (options: FavouriteOptions) => Promise<number>;
42
- onRemoveFavourite: (shortcut_id: number) => Promise<void>;
43
- };
44
-
45
- const FavouriteButton = (props: Props) => {
46
- const {
47
- onRetrieveShortcuts,
48
- onCheckIsFavourite,
49
- onAddFavourite,
50
- onRemoveFavourite,
51
- } = props;
52
-
53
- const [isFavourite, setIsFavourite] = useState(false);
54
- const [dropdownVisible, setDropdownVisible] = useState(false);
55
- const [shortcuts, setShortcuts] = useState<ShortcutApi[]>([]);
56
- const [loading, setLoading] = useState(true);
57
- const [currentShortcutId, setCurrentShortcutId] = useState<number>();
58
- const { t } = (useContext(LocaleContext) as LocaleContextType) || {};
59
-
60
- const { token } = useToken();
61
-
62
- const tabManagerContext = useContext(
63
- TabManagerContext,
64
- ) as TabManagerContextType;
65
- const {
66
- openShortcut,
67
- tabs,
68
- activeKey,
69
- currentView,
70
- currentId,
71
- openDefaultActionForModel,
72
- } = tabManagerContext || {};
73
-
74
- useEffect(() => {
75
- getShortcuts();
76
- }, []);
77
-
78
- useEffect(() => {
79
- checkFavourite();
80
- }, [tabs, activeKey, currentView, currentId]);
81
-
82
- async function getShortcuts() {
83
- try {
84
- setLoading(true);
85
- const shortcuts = await onRetrieveShortcuts();
86
- setShortcuts(shortcuts);
87
- } catch (e) {
88
- showErrorDialog(e);
89
- } finally {
90
- setLoading(false);
91
- }
92
- }
93
-
94
- function handleMenuClick(event: any) {
95
- const { key } = event;
96
- const shortcut = shortcuts.find((s) => s.id === Number(key));
97
- if (shortcut?.action_type === "ir.actions.wizard") {
98
- return;
99
- }
100
- if (shortcut) {
101
- openShortcut(shortcut);
102
- }
103
- setDropdownVisible(false);
104
- }
105
-
106
- function handleVisibleChange(flag: boolean) {
107
- if (flag) {
108
- getShortcuts();
109
- }
110
- setDropdownVisible(flag);
111
- }
112
-
113
- async function checkFavourite() {
114
- if (!currentView) {
115
- return;
116
- }
117
-
118
- const currentTab = tabs.find((t) => t.key === activeKey);
119
- const { id: action_id, type: action_type } = currentTab?.action || {};
120
-
121
- if (!action_id || !action_type) {
122
- setIsFavourite(false);
123
- return;
124
- }
125
-
126
- const view_id = currentView.view_id!;
127
- let res_id: boolean | number = false;
128
-
129
- if (currentView.type === "form") {
130
- res_id = currentId ? (currentId as number) : false;
131
- }
132
- const result = await onCheckIsFavourite({
133
- action_id,
134
- action_type,
135
- view_id,
136
- res_id,
137
- });
138
-
139
- if (result !== false) {
140
- setCurrentShortcutId(result as number);
141
- }
142
-
143
- setIsFavourite(result !== false);
144
- }
145
-
146
- async function editFavourites() {
147
- setDropdownVisible(false);
148
- openDefaultActionForModel?.({ model: "ir.ui.view_sc" });
149
- }
150
-
151
- const menu = (
152
- <Menu onClick={handleMenuClick}>
153
- <div style={{ width: 300, padding: 5, display: "flex" }}>
154
- <div style={{ paddingLeft: 15, color: "#ccc" }}>
155
- {t?.("favorites").toUpperCase()}
156
- </div>
157
- <div style={{ flexGrow: 1, paddingLeft: 10 }}>
158
- <Tooltip title={t?.("edit_favorites")}>
159
- <EditOutlined
160
- style={{ color: token.colorPrimary, cursor: "pointer" }}
161
- onClick={editFavourites}
162
- />
163
- </Tooltip>
164
- </div>
165
- </div>
166
- <Menu.Divider />
167
- {loading ? (
168
- <Spin style={{ padding: "1rem" }} />
169
- ) : shortcuts.length > 0 ? (
170
- <>
171
- {shortcuts.map((shortcut) => (
172
- <Menu.Item key={shortcut.id}>
173
- <FavouriteItem
174
- title={shortcut.name}
175
- type={shortcut.view_type as ViewType}
176
- />
177
- </Menu.Item>
178
- ))}
179
- </>
180
- ) : (
181
- <div style={{ width: 300, padding: 5, paddingLeft: 15 }}>
182
- {t?.("no_favorites")}
183
- </div>
184
- )}
185
- </Menu>
186
- );
187
-
188
- function FavouriteItem({ title, type }: { title: string; type: ViewType }) {
189
- const icon = type === "tree" ? <TableOutlined /> : <FormOutlined />;
190
- return (
191
- <Row wrap={false}>
192
- <Col flex="none" style={{ paddingRight: 20 }}>
193
- {icon}
194
- </Col>
195
- <Col flex="auto">{title}</Col>
196
- </Row>
197
- );
198
- }
199
-
200
- async function toggleFavourite() {
201
- if (isFavourite && currentShortcutId) {
202
- await onRemoveFavourite(currentShortcutId);
203
- } else {
204
- if (!currentView) {
205
- return;
206
- }
207
-
208
- const currentTab = tabs.find((t) => t.key === activeKey);
209
- const { id: action_id, type: action_type } = currentTab?.action || {};
210
- const view_id = currentView.view_id!;
211
- let res_id: boolean | number = false;
212
-
213
- if (!action_id || !action_type) {
214
- setIsFavourite(false);
215
- return;
216
- }
217
-
218
- if (currentView.type === "form") {
219
- res_id = currentId ? (currentId as number) : false;
220
- }
221
-
222
- await onAddFavourite({
223
- action_id,
224
- action_type,
225
- view_id,
226
- res_id,
227
- });
228
- }
229
-
230
- await getShortcuts();
231
- setIsFavourite(!isFavourite);
232
- }
233
-
234
- return (
235
- <>
236
- <Button
237
- type={isFavourite ? "primary" : "default"}
238
- icon={
239
- isFavourite ? (
240
- <StarFilled style={{ color: "white" }} />
241
- ) : (
242
- <StarOutlined />
243
- )
244
- }
245
- style={{
246
- width: 50,
247
- borderTopRightRadius: 0,
248
- borderBottomRightRadius: 0,
249
- }}
250
- onClick={toggleFavourite}
251
- ></Button>
252
- <Dropdown
253
- overlay={menu}
254
- onVisibleChange={handleVisibleChange}
255
- open={dropdownVisible}
256
- >
257
- <Button
258
- style={{
259
- width: 25,
260
- borderTopLeftRadius: 0,
261
- borderBottomLeftRadius: 0,
262
- }}
263
- icon={<DownOutlined style={{ fontSize: "0.5em" }} />}
264
- onClick={(e) => e.preventDefault()}
265
- ></Button>
266
- </Dropdown>
267
- </>
268
- );
269
- };
270
-
271
- export default FavouriteButton;
@@ -1,17 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
- import { tForLang } from "@/context/LocaleContext";
5
-
6
- const { error } = Modal;
7
-
8
- const showDialog = (lang: string) => {
9
- error({
10
- title: tForLang("formHasErrors", lang),
11
- icon: <ExclamationCircleOutlined />,
12
- centered: true,
13
- content: tForLang("fillRequiredFields", lang),
14
- });
15
- };
16
-
17
- export default showDialog;
@@ -1,16 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
-
5
- const { error } = Modal;
6
-
7
- const showDialog = (message: string) => {
8
- error({
9
- title: "Error",
10
- icon: <ExclamationCircleOutlined />,
11
- centered: true,
12
- content: message,
13
- });
14
- };
15
-
16
- export default showDialog;
@@ -1,76 +0,0 @@
1
- import React, { useContext, useRef } from "react";
2
- import { Button, Col, Form, Input, Modal, Row, Space } from "antd";
3
- import { CheckOutlined, CloseOutlined } from "@ant-design/icons";
4
- import { LocaleContext, LocaleContextType } from "@/context/LocaleContext";
5
-
6
- type Props = {
7
- visible: boolean;
8
- onIdSubmitted: (ids: number[]) => void;
9
- onCancel: () => void;
10
- isSearching: boolean;
11
- };
12
-
13
- export const GoToResourceModal = (props: Props) => {
14
- const { visible, onIdSubmitted, onCancel, isSearching } = props;
15
-
16
- const { t } = useContext(LocaleContext) as LocaleContextType;
17
-
18
- const inputRef = useRef<null | HTMLElement>();
19
-
20
- function handleSubmit(values: any) {
21
- const ids = values.id.split(",").map((id: string) => parseInt(id.trim()));
22
- onIdSubmitted(ids);
23
- }
24
-
25
- return (
26
- <Modal
27
- title={t("goToResourceId")}
28
- centered
29
- open={visible}
30
- footer={null}
31
- destroyOnClose
32
- onCancel={onCancel}
33
- maskClosable={false}
34
- afterOpenChange={(open) => open && inputRef.current?.focus()}
35
- >
36
- <Form layout="vertical" onFinish={handleSubmit} autoComplete="off">
37
- <Form.Item
38
- name={"id"}
39
- label={t("searchId")}
40
- rules={[
41
- {
42
- required: true,
43
- },
44
- ]}
45
- help={t("searchIdHelp")}
46
- >
47
- <Input style={{ width: "100%" }} autoFocus ref={inputRef as any} />
48
- </Form.Item>
49
- <Row align="middle" justify="end">
50
- <Col>
51
- <Space>
52
- <Button
53
- icon={<CloseOutlined />}
54
- htmlType="button"
55
- onClick={onCancel}
56
- disabled={isSearching}
57
- >
58
- {t("cancel")}
59
- </Button>
60
- <Button
61
- loading={isSearching}
62
- style={{ marginLeft: 15 }}
63
- icon={<CheckOutlined />}
64
- htmlType="submit"
65
- type="primary"
66
- disabled={isSearching}
67
- >
68
- {t("ok")}
69
- </Button>
70
- </Space>
71
- </Col>
72
- </Row>
73
- </Form>
74
- </Modal>
75
- );
76
- };
@@ -1,13 +0,0 @@
1
- import { Modal } from "antd";
2
-
3
- const { info } = Modal;
4
-
5
- const showDialog = (content: any) => {
6
- info({
7
- title: "",
8
- centered: true,
9
- content,
10
- });
11
- };
12
-
13
- export default showDialog;
@@ -1,29 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
- import { tForLang } from "@/context/LocaleContext";
5
-
6
- const { confirm } = Modal;
7
-
8
- const showDialog = ({
9
- onOk,
10
- onCancel,
11
- lang,
12
- }: {
13
- onOk: () => void;
14
- onCancel?: () => void;
15
- lang: string;
16
- }) => {
17
- confirm({
18
- title: tForLang("unsavedChanges", lang),
19
- icon: <ExclamationCircleOutlined />,
20
- centered: true,
21
- content: tForLang("confirmRefreshWithoutSave", lang),
22
- okText: tForLang("discardAndRefresh", lang),
23
- cancelText: tForLang("cancel", lang),
24
- onOk,
25
- onCancel,
26
- });
27
- };
28
-
29
- export default showDialog;
@@ -1,20 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
- import { tForLang } from "@/context/LocaleContext";
5
-
6
- const { confirm } = Modal;
7
-
8
- const showDialog = ({ onOk, lang }: { onOk: () => void; lang: string }) => {
9
- confirm({
10
- title: tForLang("removeItems", lang),
11
- icon: <ExclamationCircleOutlined />,
12
- centered: true,
13
- content: tForLang("confirmRemove", lang),
14
- okText: tForLang("yesConfirmRemove", lang),
15
- onOk,
16
- cancelText: tForLang("cancel", lang),
17
- });
18
- };
19
-
20
- export default showDialog;
@@ -1,117 +0,0 @@
1
- import React, { useContext } from "react";
2
- import { Row, Col, Typography, theme } from "antd";
3
- import {
4
- ActionViewContext,
5
- ActionViewContextType,
6
- } from "@/context/ActionViewContext";
7
- import { LocaleContext, LocaleContextType } from "@/context/LocaleContext";
8
- import { CopyOutlined } from "@ant-design/icons";
9
-
10
- const { useToken } = theme;
11
-
12
- const { Title, Text } = Typography;
13
-
14
- type Props = {
15
- title?: string;
16
- children?: any;
17
- };
18
-
19
- function TitleHeader(props: Props) {
20
- const { title: titleProps, children } = props;
21
- const {
22
- title,
23
- currentView,
24
- currentId,
25
- currentItemIndex,
26
- results,
27
- totalItems,
28
- selectedRowItems,
29
- } = useContext(ActionViewContext) as ActionViewContextType;
30
- const { t } = useContext(LocaleContext) as LocaleContextType;
31
- const { token } = useToken();
32
-
33
- function getSummary() {
34
- if (currentView?.type === "form") {
35
- if (!currentId) {
36
- return "";
37
- }
38
-
39
- if (totalItems === 0) {
40
- return (
41
- <>
42
- {t("editingDocument")} (id:{" "}
43
- <Text
44
- copyable={{ icon: <CopyOutlined style={{ color: "red" }} /> }}
45
- >
46
- {currentId}
47
- </Text>
48
- )
49
- </>
50
- );
51
- }
52
-
53
- return (
54
- <>
55
- {t("register")}{" "}
56
- {currentItemIndex === undefined ? 1 : currentItemIndex + 1} /{" "}
57
- {results!.length} {t("of")} {totalItems} - {t("editingDocument")} (id:{" "}
58
- <Text copyable>{currentId}</Text>)
59
- </>
60
- );
61
- } else if (currentView?.type === "tree" && selectedRowItems) {
62
- if (selectedRowItems.length === 1) {
63
- return (
64
- <>
65
- 1 {t("selectedRegisters")} - (id:{" "}
66
- <Text copyable>{selectedRowItems[0].id}</Text>)
67
- </>
68
- );
69
- } else if (selectedRowItems.length > 1) {
70
- return (
71
- <>
72
- {selectedRowItems.length} {t("selectedRegisters")}
73
- <Text
74
- copyable={{
75
- text: selectedRowItems.map((reg) => reg.id).join(", "),
76
- }}
77
- ></Text>
78
- </>
79
- );
80
- }
81
- }
82
- return null;
83
- }
84
- return (
85
- <div
86
- style={{
87
- position: "sticky",
88
- top: 80,
89
- zIndex: 3,
90
- }}
91
- >
92
- <Row
93
- className="shadow-md"
94
- style={{
95
- padding: "1em",
96
- borderRadius: token.borderRadius,
97
- backgroundColor: token.colorPrimaryBg,
98
- minHeight: "82px",
99
- }}
100
- align="middle"
101
- >
102
- <Col flex={2}>
103
- <Title level={3} style={{ marginBottom: 0 }}>
104
- {titleProps || title}
105
- </Title>
106
- {getSummary()}
107
- </Col>
108
- <Col flex={3}>
109
- <Row justify="end">{children}</Row>
110
- </Col>
111
- </Row>
112
- <div className="pb-5" />
113
- </div>
114
- );
115
- }
116
-
117
- export default TitleHeader;
@@ -1,20 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
- import { tForLang } from "@/context/LocaleContext";
5
-
6
- const { confirm } = Modal;
7
-
8
- const showDialog = ({ onOk, lang }: { onOk: () => void; lang: string }) => {
9
- confirm({
10
- title: tForLang("unlinkItems", lang),
11
- icon: <ExclamationCircleOutlined />,
12
- centered: true,
13
- content: tForLang("confirmUnlink", lang),
14
- okText: tForLang("yesConfirmUnlink", lang),
15
- onOk,
16
- cancelText: tForLang("cancel", lang),
17
- });
18
- };
19
-
20
- export default showDialog;
@@ -1,29 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { ExclamationCircleOutlined } from "@ant-design/icons";
4
- import { tForLang } from "@/context/LocaleContext";
5
-
6
- const { confirm } = Modal;
7
-
8
- const showDialog = ({
9
- onOk,
10
- onCancel,
11
- lang,
12
- }: {
13
- onOk: () => void;
14
- onCancel?: () => void;
15
- lang: string;
16
- }) => {
17
- confirm({
18
- title: tForLang("unsavedChanges", lang),
19
- icon: <ExclamationCircleOutlined />,
20
- centered: true,
21
- content: tForLang("confirmCloseWithoutSave", lang),
22
- okText: tForLang("closeWithoutSaving", lang),
23
- onOk,
24
- onCancel,
25
- cancelText: tForLang("cancel", lang),
26
- });
27
- };
28
-
29
- export default showDialog;
@@ -1,17 +0,0 @@
1
- import React from "react";
2
- import { Modal } from "antd";
3
- import { WarningOutlined } from "@ant-design/icons";
4
-
5
- const { warning } = Modal;
6
-
7
- const showDialog = (title: string, message: string, onOk?: () => void) => {
8
- warning({
9
- title,
10
- icon: <WarningOutlined />,
11
- centered: true,
12
- content: message,
13
- onOk,
14
- });
15
- };
16
-
17
- export default showDialog;