@gisce/react-ooui 1.2.0-rc.1 → 1.2.0-rc.11

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 (173) hide show
  1. package/dist/actionbar/ActionButton.d.ts +1 -0
  2. package/dist/actionbar/ActionButton.d.ts.map +1 -1
  3. package/dist/actionbar/AttachmentsButton.d.ts +1 -0
  4. package/dist/actionbar/AttachmentsButton.d.ts.map +1 -1
  5. package/dist/actionbar/AttachmentsButtonWrapper.d.ts +1 -0
  6. package/dist/actionbar/AttachmentsButtonWrapper.d.ts.map +1 -1
  7. package/dist/actionbar/ButtonWithBadge.d.ts +1 -0
  8. package/dist/actionbar/ButtonWithBadge.d.ts.map +1 -1
  9. package/dist/actionbar/ChangeViewButton.d.ts +1 -0
  10. package/dist/actionbar/ChangeViewButton.d.ts.map +1 -1
  11. package/dist/actionbar/DashboardActionBar.d.ts +1 -0
  12. package/dist/actionbar/DashboardActionBar.d.ts.map +1 -1
  13. package/dist/actionbar/DropdownButton.d.ts +1 -0
  14. package/dist/actionbar/DropdownButton.d.ts.map +1 -1
  15. package/dist/actionbar/FormActionBar.d.ts +1 -0
  16. package/dist/actionbar/FormActionBar.d.ts.map +1 -1
  17. package/dist/actionbar/GraphActionBar.d.ts +1 -0
  18. package/dist/actionbar/GraphActionBar.d.ts.map +1 -1
  19. package/dist/actionbar/NewButton.d.ts +1 -0
  20. package/dist/actionbar/NewButton.d.ts.map +1 -1
  21. package/dist/actionbar/SearchBar.d.ts +1 -0
  22. package/dist/actionbar/SearchBar.d.ts.map +1 -1
  23. package/dist/actionbar/TreeActionBar.d.ts +1 -0
  24. package/dist/actionbar/TreeActionBar.d.ts.map +1 -1
  25. package/dist/common/ButtonWithTooltip.d.ts +1 -0
  26. package/dist/common/ButtonWithTooltip.d.ts.map +1 -1
  27. package/dist/common/DatePicker.d.ts +1 -0
  28. package/dist/common/DatePicker.d.ts.map +1 -1
  29. package/dist/context/ContentRootContext.d.ts.map +1 -1
  30. package/dist/hooks/useSearch.d.ts +1 -1
  31. package/dist/hooks/useSearch.d.ts.map +1 -1
  32. package/dist/locales/ca_ES.d.ts +2 -0
  33. package/dist/locales/ca_ES.d.ts.map +1 -1
  34. package/dist/locales/en_US.d.ts +2 -0
  35. package/dist/locales/en_US.d.ts.map +1 -1
  36. package/dist/locales/es_ES.d.ts +2 -0
  37. package/dist/locales/es_ES.d.ts.map +1 -1
  38. package/dist/react-ooui.es.js +14402 -18530
  39. package/dist/react-ooui.es.js.map +1 -1
  40. package/dist/react-ooui.umd.js +51 -76
  41. package/dist/react-ooui.umd.js.map +1 -1
  42. package/dist/types/index.d.ts +10 -0
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/ui/FavouriteButton.d.ts +1 -0
  45. package/dist/ui/FavouriteButton.d.ts.map +1 -1
  46. package/dist/ui/GoToResourceModal.d.ts +1 -0
  47. package/dist/ui/GoToResourceModal.d.ts.map +1 -1
  48. package/dist/ui/TitleHeader.d.ts +1 -0
  49. package/dist/ui/TitleHeader.d.ts.map +1 -1
  50. package/dist/views/ActionView.d.ts.map +1 -1
  51. package/dist/views/CurrentTabContent.d.ts +1 -0
  52. package/dist/views/CurrentTabContent.d.ts.map +1 -1
  53. package/dist/views/RootView.d.ts.map +1 -1
  54. package/dist/views/TabSelector.d.ts +1 -0
  55. package/dist/views/TabSelector.d.ts.map +1 -1
  56. package/dist/views/actionViews/DashboardActionView.d.ts +1 -0
  57. package/dist/views/actionViews/DashboardActionView.d.ts.map +1 -1
  58. package/dist/views/actionViews/FormActionView.d.ts +1 -0
  59. package/dist/views/actionViews/FormActionView.d.ts.map +1 -1
  60. package/dist/views/actionViews/GraphActionView.d.ts +1 -0
  61. package/dist/views/actionViews/GraphActionView.d.ts.map +1 -1
  62. package/dist/views/actionViews/TreeActionView.d.ts +1 -0
  63. package/dist/views/actionViews/TreeActionView.d.ts.map +1 -1
  64. package/dist/views/tabs/Tab.d.ts +1 -0
  65. package/dist/views/tabs/Tab.d.ts.map +1 -1
  66. package/dist/widgets/base/Binary.d.ts +1 -0
  67. package/dist/widgets/base/Binary.d.ts.map +1 -1
  68. package/dist/widgets/base/Boolean.d.ts +1 -0
  69. package/dist/widgets/base/Boolean.d.ts.map +1 -1
  70. package/dist/widgets/base/Button.d.ts +1 -0
  71. package/dist/widgets/base/Button.d.ts.map +1 -1
  72. package/dist/widgets/base/Char.d.ts +1 -0
  73. package/dist/widgets/base/Char.d.ts.map +1 -1
  74. package/dist/widgets/base/Date.d.ts +1 -0
  75. package/dist/widgets/base/Date.d.ts.map +1 -1
  76. package/dist/widgets/base/DateTime.d.ts +1 -0
  77. package/dist/widgets/base/DateTime.d.ts.map +1 -1
  78. package/dist/widgets/base/Email.d.ts +1 -0
  79. package/dist/widgets/base/Email.d.ts.map +1 -1
  80. package/dist/widgets/base/Float.d.ts +1 -0
  81. package/dist/widgets/base/Float.d.ts.map +1 -1
  82. package/dist/widgets/base/Image.d.ts +1 -0
  83. package/dist/widgets/base/Image.d.ts.map +1 -1
  84. package/dist/widgets/base/Integer.d.ts +1 -0
  85. package/dist/widgets/base/Integer.d.ts.map +1 -1
  86. package/dist/widgets/base/Label.d.ts +1 -0
  87. package/dist/widgets/base/Label.d.ts.map +1 -1
  88. package/dist/widgets/base/LinkInput.d.ts +1 -0
  89. package/dist/widgets/base/LinkInput.d.ts.map +1 -1
  90. package/dist/widgets/base/MultiSelection.d.ts +1 -0
  91. package/dist/widgets/base/MultiSelection.d.ts.map +1 -1
  92. package/dist/widgets/base/ProgressBar.d.ts +1 -0
  93. package/dist/widgets/base/ProgressBar.d.ts.map +1 -1
  94. package/dist/widgets/base/Selection.d.ts +1 -0
  95. package/dist/widgets/base/Selection.d.ts.map +1 -1
  96. package/dist/widgets/base/Separator.d.ts +1 -0
  97. package/dist/widgets/base/Separator.d.ts.map +1 -1
  98. package/dist/widgets/base/Text.d.ts +1 -0
  99. package/dist/widgets/base/Text.d.ts.map +1 -1
  100. package/dist/widgets/base/Url.d.ts +1 -0
  101. package/dist/widgets/base/Url.d.ts.map +1 -1
  102. package/dist/widgets/base/many2one/Many2oneSuffix.d.ts +1 -0
  103. package/dist/widgets/base/many2one/Many2oneSuffix.d.ts.map +1 -1
  104. package/dist/widgets/base/many2one/Many2oneSuffixModal.d.ts +1 -0
  105. package/dist/widgets/base/many2one/Many2oneSuffixModal.d.ts.map +1 -1
  106. package/dist/widgets/base/one2many/One2many.d.ts +1 -0
  107. package/dist/widgets/base/one2many/One2many.d.ts.map +1 -1
  108. package/dist/widgets/base/one2many/One2manyTopBar.d.ts +1 -0
  109. package/dist/widgets/base/one2many/One2manyTopBar.d.ts.map +1 -1
  110. package/dist/widgets/custom/ButtonGroup.d.ts +1 -0
  111. package/dist/widgets/custom/ButtonGroup.d.ts.map +1 -1
  112. package/dist/widgets/custom/CodeEditor.d.ts +1 -0
  113. package/dist/widgets/custom/CodeEditor.d.ts.map +1 -1
  114. package/dist/widgets/custom/FiberGrid.d.ts +1 -0
  115. package/dist/widgets/custom/FiberGrid.d.ts.map +1 -1
  116. package/dist/widgets/custom/Indicator.d.ts +1 -0
  117. package/dist/widgets/custom/Indicator.d.ts.map +1 -1
  118. package/dist/widgets/custom/MultiCheckbox.d.ts +1 -0
  119. package/dist/widgets/custom/MultiCheckbox.d.ts.map +1 -1
  120. package/dist/widgets/custom/Radio.d.ts +1 -0
  121. package/dist/widgets/custom/Radio.d.ts.map +1 -1
  122. package/dist/widgets/custom/Steps.d.ts +1 -0
  123. package/dist/widgets/custom/Steps.d.ts.map +1 -1
  124. package/dist/widgets/custom/Switch.d.ts +1 -0
  125. package/dist/widgets/custom/Switch.d.ts.map +1 -1
  126. package/dist/widgets/custom/Tags.d.ts +1 -0
  127. package/dist/widgets/custom/Tags.d.ts.map +1 -1
  128. package/dist/widgets/custom/Timeline.d.ts +1 -0
  129. package/dist/widgets/custom/Timeline.d.ts.map +1 -1
  130. package/dist/widgets/modals/ExportModal.d.ts +1 -1
  131. package/dist/widgets/modals/ExportModal.d.ts.map +1 -1
  132. package/dist/widgets/modals/FormModal.d.ts +1 -0
  133. package/dist/widgets/modals/FormModal.d.ts.map +1 -1
  134. package/dist/widgets/modals/SearchModal.d.ts +1 -0
  135. package/dist/widgets/modals/SearchModal.d.ts.map +1 -1
  136. package/dist/widgets/modals/TranslationModal.d.ts +1 -0
  137. package/dist/widgets/modals/TranslationModal.d.ts.map +1 -1
  138. package/dist/widgets/views/Dashboard/Dashboard.d.ts.map +1 -1
  139. package/dist/widgets/views/Dashboard/DashboardForm.d.ts +1 -0
  140. package/dist/widgets/views/Dashboard/DashboardForm.d.ts.map +1 -1
  141. package/dist/widgets/views/Dashboard/DashboardTree.d.ts +1 -0
  142. package/dist/widgets/views/Dashboard/DashboardTree.d.ts.map +1 -1
  143. package/dist/widgets/views/DashboardGrid/DashboardGrid.d.ts +1 -0
  144. package/dist/widgets/views/DashboardGrid/DashboardGrid.d.ts.map +1 -1
  145. package/dist/widgets/views/DashboardGrid/DashboardGridItem.d.ts +1 -0
  146. package/dist/widgets/views/DashboardGrid/DashboardGridItem.d.ts.map +1 -1
  147. package/dist/widgets/views/Graph/GraphChart.d.ts +1 -0
  148. package/dist/widgets/views/Graph/GraphChart.d.ts.map +1 -1
  149. package/dist/widgets/views/Graph/GraphIndicator.d.ts +1 -0
  150. package/dist/widgets/views/Graph/GraphIndicator.d.ts.map +1 -1
  151. package/dist/widgets/views/searchFilter/DateRangePicker.d.ts +1 -0
  152. package/dist/widgets/views/searchFilter/DateRangePicker.d.ts.map +1 -1
  153. package/dist/widgets/views/searchFilter/DateTimeRangePicker.d.ts +1 -0
  154. package/dist/widgets/views/searchFilter/DateTimeRangePicker.d.ts.map +1 -1
  155. package/dist/widgets/views/searchFilter/SearchField.d.ts +1 -0
  156. package/dist/widgets/views/searchFilter/SearchField.d.ts.map +1 -1
  157. package/dist/widgets/views/searchFilter/SearchFilter.d.ts +1 -0
  158. package/dist/widgets/views/searchFilter/SearchFilter.d.ts.map +1 -1
  159. package/package.json +3 -3
  160. package/src/actionbar/TreeActionBar.tsx +73 -17
  161. package/src/context/ContentRootContext.tsx +14 -7
  162. package/src/hooks/useSearch.ts +7 -4
  163. package/src/locales/ca_ES.tsx +2 -0
  164. package/src/locales/en_US.tsx +2 -0
  165. package/src/locales/es_ES.tsx +2 -0
  166. package/src/stories/mocks/models/crm_case.ts +7 -10
  167. package/src/types/index.ts +11 -0
  168. package/src/views/ActionView.tsx +15 -4
  169. package/src/views/RootView.tsx +5 -1
  170. package/src/views/actionViews/TreeActionView.tsx +1 -1
  171. package/src/widgets/base/Integer.tsx +1 -0
  172. package/src/widgets/modals/ExportModal.tsx +88 -46
  173. package/src/widgets/views/Dashboard/Dashboard.tsx +5 -1
@@ -437,6 +437,10 @@ function RootView(props: RootViewProps, ref: any) {
437
437
  },
438
438
  });
439
439
  } else {
440
+ const formattedInitialView = initialView && Array.isArray(initialView.id)
441
+ ? { ...initialView, id: initialView.id[0] }
442
+ : initialView;
443
+
440
444
  addNewTab({
441
445
  title,
442
446
  action: {
@@ -454,7 +458,7 @@ function RootView(props: RootViewProps, ref: any) {
454
458
  context={{ ...rootContext, ...context }}
455
459
  domain={domain}
456
460
  setCanWeClose={registerViewCloseFn}
457
- initialView={initialView}
461
+ initialView={formattedInitialView}
458
462
  res_id={res_id}
459
463
  formDefaultValues={values}
460
464
  formForcedValues={forced_values}
@@ -46,7 +46,7 @@ export const TreeActionView = (props: TreeActionViewProps) => {
46
46
  <>
47
47
  <TitleHeader>
48
48
  <TreeActionBar
49
- toolbar={formView?.toolbar}
49
+ toolbar={treeView?.toolbar}
50
50
  parentContext={context}
51
51
  treeExpandable={treeView?.isExpandable || false}
52
52
  />
@@ -32,6 +32,7 @@ export const Integer = (props: IntegerProps) => {
32
32
  }}
33
33
  defaultValue={0}
34
34
  onBlur={elementHasLostFocus}
35
+ precision={0}
35
36
  />
36
37
  </Field>
37
38
  );
@@ -4,9 +4,10 @@ import {
4
4
  Locale,
5
5
  } from "@gisce/react-formiga-components";
6
6
  import { ExportOptions } from "@gisce/react-formiga-components/dist/components/other/ExportModal/ExportModal.types";
7
- import React, { useRef } from "react";
7
+ import React, { useCallback, useRef } from "react";
8
8
  import showInfo from "@/ui/InfoDialog";
9
9
  import { tForLang } from "@/context/LocaleContext";
10
+ import { getMimeType, openBase64InNewTab } from "@/helpers/filesHelper";
10
11
 
11
12
  export type ExportModalProps = {
12
13
  visible: boolean;
@@ -17,7 +18,6 @@ export type ExportModalProps = {
17
18
  model: string;
18
19
  domain: any[];
19
20
  limit?: number;
20
- treeFields?: any;
21
21
  context?: any;
22
22
  };
23
23
 
@@ -28,7 +28,6 @@ export const ExportModal = (props: ExportModalProps) => {
28
28
  onClose,
29
29
  model,
30
30
  context,
31
- treeFields,
32
31
  selectedRegistersToExport,
33
32
  totalRegisters,
34
33
  domain,
@@ -36,55 +35,86 @@ export const ExportModal = (props: ExportModalProps) => {
36
35
  } = props;
37
36
  const fields = useRef<any>({});
38
37
 
38
+ const onSucceed = useCallback(
39
+ async (options: ExportOptions) => {
40
+ if (options.selectedKeys.length === 0) {
41
+ showInfo(tForLang("selectAtLeastOneField", locale));
42
+ return;
43
+ }
44
+
45
+ const { datas } = await ConnectionProvider.getHandler().exportData({
46
+ model,
47
+ fields: options.selectedKeys,
48
+ domain: options.registersAmount === "all" ? [] : domain,
49
+ limit: options.registersAmount === "all" ? undefined : limit,
50
+ context,
51
+ format: options.exportType,
52
+ });
53
+
54
+ onClose();
55
+
56
+ await new Promise((resolve) => setTimeout(resolve, 200));
57
+
58
+ const fileType: any = await getMimeType(datas);
59
+ openBase64InNewTab(datas, fileType.mime);
60
+ },
61
+ [locale, model, domain, limit, context, onClose]
62
+ );
63
+
64
+ const onGetFields = useCallback(async () => {
65
+ const viewData = await ConnectionProvider.getHandler().getFields({
66
+ model,
67
+ context,
68
+ fields: [],
69
+ });
70
+ fields.current["/"] = viewData;
71
+ return convertToExportField({ fields: viewData });
72
+ }, [model, context, fields]);
73
+
74
+ const onGetFieldChilds = useCallback(
75
+ async ({ key, title }: any) => {
76
+ let fieldDefinition;
77
+
78
+ const sanitizedKey =
79
+ key.split("/")[key.split("/").length - 1] === "id"
80
+ ? key.split("/").slice(0, -1).join("/")
81
+ : key;
82
+
83
+ if (sanitizedKey.indexOf("/") === -1) {
84
+ fieldDefinition = fields.current["/"];
85
+ } else {
86
+ fieldDefinition = fields.current[getParentKey(sanitizedKey)];
87
+ }
88
+
89
+ const optsForField = fieldDefinition[getChildKey(sanitizedKey)];
90
+ const relation = optsForField.relation;
91
+ const viewData = await ConnectionProvider.getHandler().getFields({
92
+ model: relation,
93
+ context,
94
+ fields: [],
95
+ });
96
+
97
+ fields.current[sanitizedKey] = viewData;
98
+
99
+ return convertToExportField({
100
+ fields: viewData,
101
+ parentTitle: title,
102
+ parentKey: sanitizedKey,
103
+ });
104
+ },
105
+ [fields, model, context]
106
+ );
107
+
39
108
  return (
40
109
  <ExportModalFmg
41
110
  visible={visible}
42
111
  locale={locale as Locale}
43
- onSucceed={async (options: ExportOptions) => {
44
- if (options.selectedKeys.length === 0) {
45
- showInfo(tForLang("selectAtLeastOneField", locale));
46
- return;
47
- }
48
- onClose();
49
- }}
112
+ onSucceed={onSucceed}
50
113
  onCancel={onClose}
51
114
  selectedRegistersToExport={selectedRegistersToExport}
52
115
  totalRegisters={totalRegisters}
53
- onGetFieldChilds={async ({ key, title }: any) => {
54
- let fieldDefinition;
55
-
56
- if (key.indexOf("/") === -1) {
57
- fieldDefinition = fields.current["/"];
58
- } else {
59
- fieldDefinition = fields.current[getParentKey(key)];
60
- }
61
-
62
- const optsForField = fieldDefinition[getChildKey(key)];
63
- const relation = optsForField.relation;
64
- const viewData = await ConnectionProvider.getHandler().getFields({
65
- model: relation,
66
- context,
67
- fields: [],
68
- });
69
-
70
- fields.current[key] = viewData;
71
-
72
- return convertToExportField({
73
- fields: viewData,
74
- parentTitle: title,
75
- parentKey: key,
76
- });
77
- }}
78
- onGetFields={async () => {
79
- const viewData = await ConnectionProvider.getHandler().getFields({
80
- model,
81
- context,
82
- fields: [],
83
- });
84
- fields.current["/"] = viewData;
85
- return convertToExportField({ fields: viewData });
86
- }}
87
- selectedKeys={treeFields ? Object.keys(treeFields) : undefined}
116
+ onGetFieldChilds={onGetFieldChilds}
117
+ onGetFields={onGetFields}
88
118
  />
89
119
  );
90
120
  };
@@ -102,15 +132,27 @@ const convertToExportField = ({
102
132
 
103
133
  for (const key of Object.keys(fields)) {
104
134
  const valuesForField = fields[key];
135
+
136
+ if (valuesForField.relation && valuesForField.is_function === true) {
137
+ continue;
138
+ }
139
+
105
140
  const relationField =
106
141
  valuesForField.type === "many2one" ||
107
142
  valuesForField.type === "one2many" ||
108
143
  valuesForField.type === "many2many";
109
144
 
145
+ let newKey = `${parentKey ? parentKey + "/" : ""}${key}`;
146
+
147
+ if (relationField) {
148
+ newKey += "/id";
149
+ }
150
+
110
151
  exportFields.push({
111
- key: `${parentKey ? parentKey + "/" : ""}${key}`,
152
+ key: newKey,
112
153
  title: `${parentTitle ? parentTitle + "/" : ""}${valuesForField.string}`,
113
154
  tooltip: valuesForField.help,
155
+ required: valuesForField.required,
114
156
  isLeaf: !relationField,
115
157
  });
116
158
  }
@@ -308,6 +308,10 @@ function Dashboard(props: DashboardProps, ref: any) {
308
308
  />
309
309
  );
310
310
  } else if (initialView !== undefined) {
311
+ const formattedInitialView =
312
+ initialView && Array.isArray(initialView.id)
313
+ ? { ...initialView, id: initialView.id[0] }
314
+ : initialView;
311
315
  childContent = (
312
316
  <ActionView
313
317
  action_id={actionId}
@@ -319,7 +323,7 @@ function Dashboard(props: DashboardProps, ref: any) {
319
323
  context={context}
320
324
  domain={domain}
321
325
  setCanWeClose={() => {}}
322
- initialView={initialView}
326
+ initialView={formattedInitialView}
323
327
  limit={limit}
324
328
  />
325
329
  );