@simitgroup/simpleapp-generator 1.0.64 → 1.1.1

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 (76) hide show
  1. package/dist/buildinschemas/user.d.ts.map +1 -1
  2. package/dist/buildinschemas/user.js +0 -1
  3. package/dist/buildinschemas/user.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/buildinschemas/user.ts +1 -2
  6. package/templates/basic/nuxt/pages.landing.vue.eta +1 -1
  7. package/templates/basic/nuxt/pages.new.vue.eta +52 -68
  8. package/templates/nest/src/simpleapp/generate/processors/simpleapp.processor.ts.eta +0 -1
  9. package/templates/nuxt/assets/css/style.css._eta +29 -1
  10. package/templates/nuxt/assets/primevue/passthrough.ts._eta +8 -2
  11. package/templates/nuxt/components/debug/DebugDocumentData.vue.eta +8 -4
  12. package/templates/nuxt/components/event/EventNotification.vue.eta +13 -9
  13. package/templates/nuxt/components/simpleApp/SimpleAppDocumentNo.vue.eta +31 -44
  14. package/templates/nuxt/components/simpleApp/SimpleAppFieldContainer.vue.eta +12 -11
  15. package/templates/nuxt/components/simpleApp/SimpleAppForm.vue.eta +5 -4
  16. package/templates/nuxt/components/simpleApp/SimpleAppInput.vue.eta +288 -0
  17. package/templates/nuxt/components/simpleApp/SimpleAppInputTable.vue.eta +4 -52
  18. package/templates/nuxt/components/simpleApp/{SimpleAppAutocomplete.vue.eta → pending/SimpleAppAutocomplete.vue} +1 -2
  19. package/templates/nuxt/components/simpleApp/pending/SimpleAppDocumentNo.vue +90 -0
  20. package/templates/nuxt/components/simpleApp/pending/SimpleAppInputTable.vue +83 -0
  21. package/templates/nuxt/components/simpleApp/{SimpleAppText.vue.eta → pending/SimpleAppText.vue} +0 -2
  22. package/templates/nuxt/composables/getOpenApi.generate.ts.eta +32 -1
  23. package/templates/nuxt/layouts/default.vue.eta +1 -1
  24. package/templates/nuxt/layouts/documentlist.vue.eta +4 -4
  25. package/templates/nuxt/layouts/sidelist.vue.eta +1 -1
  26. package/templates/nuxt/layouts/sidelistcrud.vue.eta +1 -1
  27. package/templates/nuxt/nuxt.config.ts.eta +0 -1
  28. package/templates/nuxt/pages/[xorg]/docnoformat/[doctype]/new.vue.eta +96 -90
  29. package/templates/nuxt/pages/[xorg]/organization/[id]/branches/new.vue +3 -3
  30. package/templates/nuxt/pages/[xorg]/organization/new.vue.eta +24 -18
  31. package/templates/nuxt/pages/[xorg]/organization.vue.eta +32 -17
  32. package/templates/nuxt/pages/[xorg]/user/index.vue.eta +40 -35
  33. package/templates/nuxt/pages/[xorg]/user.vue.eta +10 -8
  34. package/templates/nuxt/pages/index.vue._eta +3 -3
  35. package/templates/nuxt/plugins/10.simpleapp-event.ts.eta +4 -0
  36. package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +4 -1
  37. package/templates/nuxt/types/index.ts.eta +2 -1
  38. package/templates/nuxt/types/simpleappinput.ts.eta +39 -0
  39. package/templates/project/jsonschemas/category.json._eta +6 -6
  40. package/templates/project/jsonschemas/customer.json._eta +17 -4
  41. package/templates/project/jsonschemas/invoice.json._eta +5 -4
  42. package/templates/project/jsonschemas/product.json._eta +3 -3
  43. package/tsconfig.tsbuildinfo +1 -1
  44. package/templates/nuxt/composables/getAutocomplete.generate.ts.eta +0 -32
  45. /package/templates/nuxt/components/{ListView.vue.eta → list/ListView.vue.eta} +0 -0
  46. /package/templates/nuxt/components/simpleApp/{SimpleAppAutocompletemulti.vue.eta → pending/SimpleAppAutocompletemulti.vue} +0 -0
  47. /package/templates/nuxt/components/simpleApp/{SimpleAppCalendar.vue.eta → pending/SimpleAppCalendar.vue} +0 -0
  48. /package/templates/nuxt/components/simpleApp/{SimpleAppCheckbox.vue.eta → pending/SimpleAppCheckbox.vue} +0 -0
  49. /package/templates/nuxt/components/simpleApp/{SimpleAppChip.vue.eta → pending/SimpleAppChip.vue} +0 -0
  50. /package/templates/nuxt/components/simpleApp/{SimpleAppColor.vue.eta → pending/SimpleAppColor.vue} +0 -0
  51. /package/templates/nuxt/components/simpleApp/{SimpleAppDynamicInput.vue.eta → pending/SimpleAppDynamicInput.vue} +0 -0
  52. /package/templates/nuxt/components/simpleApp/{SimpleAppEditor.vue.eta → pending/SimpleAppEditor.vue} +0 -0
  53. /package/templates/nuxt/components/simpleApp/{SimpleAppList.vue.eta → pending/SimpleAppList.vue} +0 -0
  54. /package/templates/nuxt/components/simpleApp/{SimpleAppListmulti.vue.eta → pending/SimpleAppListmulti.vue} +0 -0
  55. /package/templates/nuxt/components/simpleApp/{SimpleAppNumber.vue.eta → pending/SimpleAppNumber.vue} +0 -0
  56. /package/templates/nuxt/components/simpleApp/{SimpleAppPassword.vue.eta → pending/SimpleAppPassword.vue} +0 -0
  57. /package/templates/nuxt/components/simpleApp/{SimpleAppRadio.vue.eta → pending/SimpleAppRadio.vue} +0 -0
  58. /package/templates/nuxt/components/simpleApp/{SimpleAppRating.vue.eta → pending/SimpleAppRating.vue} +0 -0
  59. /package/templates/nuxt/components/simpleApp/{SimpleAppSelect.vue.eta → pending/SimpleAppSelect.vue} +0 -0
  60. /package/templates/nuxt/components/simpleApp/{SimpleAppSelectmulti.vue.eta → pending/SimpleAppSelectmulti.vue} +0 -0
  61. /package/templates/nuxt/components/simpleApp/{SimpleAppSlider.vue.eta → pending/SimpleAppSlider.vue} +0 -0
  62. /package/templates/nuxt/components/simpleApp/{SimpleAppSwitch.vue.eta → pending/SimpleAppSwitch.vue} +0 -0
  63. /package/templates/nuxt/components/simpleApp/{SimpleAppTextarea.vue.eta → pending/SimpleAppTextarea.vue} +0 -0
  64. /package/templates/nuxt/components/simpleApp/{SimpleAppValue.vue.eta → pending/SimpleAppValue.vue} +0 -0
  65. /package/templates/nuxt/components/simpleApp/{helper.ts.eta → pending/helper.ts-backup} +0 -0
  66. /package/templates/nuxt/components/simpleApp/{type.ts.eta → pending/type.ts-backup} +0 -0
  67. /package/templates/nuxt/components/{CrudNestedDoc.vue.eta → suspended/CrudNestedDoc.vue.eta} +0 -0
  68. /package/templates/nuxt/components/{CrudSimple.vue.eta → suspended/CrudSimple.vue.eta} +0 -0
  69. /package/templates/nuxt/components/{Menus.vue.eta → suspended/Menus.vue.eta} +0 -0
  70. /package/templates/nuxt/components/{Spinner.vue.eta → suspended/Spinner.vue.eta} +0 -0
  71. /package/templates/nuxt/components/{DocumentDatatable.vue.eta → table/TableDocuments.vue.eta} +0 -0
  72. /package/templates/nuxt/components/{ButtonCreateTenant.vue.eta → user/UserButtonCreateTenant.vue.eta} +0 -0
  73. /package/templates/nuxt/components/{ButtonPermissionInfo.vue.eta → user/UserButtonPermissionInfo.vue.eta} +0 -0
  74. /package/templates/nuxt/components/{Invitation.vue.eta → user/UserInvitation.vue.eta} +0 -0
  75. /package/templates/nuxt/components/{UserProfileListItem.vue.eta → user/UserProfileListItem.vue.eta} +0 -0
  76. /package/templates/nuxt/components/{TenantPicker.vue.eta → user/UserTenantPicker.vue.eta} +0 -0
@@ -48,7 +48,7 @@ refresh()
48
48
  <template>
49
49
  <div>
50
50
  <HeaderBar />
51
- <Invitation/>
51
+ <UserInvitation/>
52
52
  <div class="grid grid-cols-3">
53
53
  <div>
54
54
  <ListView
@@ -26,7 +26,7 @@ const selectItem=(item:any)=>{
26
26
  <div>
27
27
 
28
28
  <HeaderBar />
29
- <Invitation/>
29
+ <UserInvitation/>
30
30
  <div class="grid grid-cols-4">
31
31
  <div class="col col-span-1 ">
32
32
  <ListView :list="primarylist" @clickitem="selectItem"></ListView>
@@ -9,7 +9,6 @@ export default defineNuxtConfig({
9
9
  // colorMode: {} ,
10
10
  runtimeConfig:{
11
11
  public:{
12
- SIMPLEAPP_BACKEND_URL: process.env.SIMPLEAPP_BACKEND_URL,
13
12
  APP_URL: process.env.APP_URL,
14
13
  API_URL: process.env.API_URL,
15
14
  DEBUGDATA: process.env.DEBUGDATA,
@@ -1,30 +1,31 @@
1
1
  <script setup lang="ts">
2
+ import {SimpleAppInputType} from '~/types'
2
3
  import ConfirmPopup from "primevue/confirmpopup";
3
4
  import { useConfirm } from "primevue/useconfirm";
4
5
  import moment from "moment";
5
6
  const confirm = useConfirm();
6
- const isReadOnly = ref(true)
7
- const {$event,$listen, $DocnoformatDoc} = useNuxtApp()
8
- const doc = $DocnoformatDoc()
9
- const data = doc.getReactiveData()
10
- const list = ref([])
11
- const sample = ref("");
12
- const refresh = async ()=>{
13
- $event('RefreshDocumentList',{documentName:doc.getDocName()})
14
- isReadOnly.value=true
15
- }
7
+ const isReadOnly = ref(true);
8
+ const { $event, $listen, $DocnoformatDoc } = useNuxtApp();
9
+ const doc = $DocnoformatDoc();
10
+ const data = doc.getReactiveData();
11
+ const list = ref([]);
12
+ const sample = ref("");
13
+ const refresh = async () => {
14
+ $event("RefreshDocumentList", { documentName: doc.getDocName() });
15
+ isReadOnly.value = true;
16
+ };
16
17
 
17
- const updateSample = () => {
18
- sample.value = "Example: " + previewDocNo();
19
- };
20
- const createData = async () => {
18
+ const updateSample = () => {
19
+ sample.value = "Example: " + previewDocNo();
20
+ };
21
+ const createData = async () => {
21
22
  // disabled.value=true
22
23
 
23
24
  doc
24
25
  .create()
25
26
  .then((res) => {
26
- refresh()
27
- newData()
27
+ refresh();
28
+ newData();
28
29
  })
29
30
  .catch((err) => {
30
31
  console.error(err);
@@ -42,7 +43,6 @@ const updateData = async () => {
42
43
  });
43
44
  };
44
45
  const deleteData = (el: any) => {
45
-
46
46
  confirm.require({
47
47
  target: el.currentTarget as HTMLElement,
48
48
  message: "Delete?",
@@ -50,8 +50,8 @@ const deleteData = (el: any) => {
50
50
  acceptClass: "p-button-danger",
51
51
  accept: () => {
52
52
  // disabled.value=true
53
- doc.delete(data.value._id ?? "").then((res) => {
54
- newData()
53
+ doc.delete(data.value._id ?? "").then((res) => {
54
+ newData();
55
55
  refresh();
56
56
  });
57
57
  },
@@ -61,79 +61,87 @@ const deleteData = (el: any) => {
61
61
  });
62
62
  };
63
63
  const newData = () => {
64
- doc.setNew()
65
- goTo(doc.getDocName(),String(useRoute().params.doctype)+'/new');
64
+ doc.setNew();
65
+ goTo(doc.getDocName(), String(useRoute().params.doctype) + "/new");
66
66
  };
67
67
 
68
- const id=computed(()=>String(useRoute().params.id??''))
68
+ const id = computed(() => String(useRoute().params.id ?? ""));
69
69
 
70
- const fetchRecord =async ()=>{
71
- if(id.value){
72
- isReadOnly.value=true
73
- await doc.getById(id.value)
74
- }else{
75
- isReadOnly.value=false
76
- data.value.docNoType=String(useRoute().params.doctype)
70
+ const fetchRecord = async () => {
71
+ if (id.value) {
72
+ isReadOnly.value = true;
73
+ await doc.getById(id.value);
74
+ } else {
75
+ isReadOnly.value = false;
76
+ data.value.docNoType = String(useRoute().params.doctype);
77
77
  }
78
- }
78
+ };
79
79
 
80
80
  const previewDocNo = (): string => {
81
- const pattern = data.value.docNoPattern;
82
- if (pattern) {
83
- const numberReg: RegExp = /\[(.*?)\]/g;
84
- const dateReg: RegExp = /\{(.*?)\}/g;
85
- let newvalue = pattern;
86
- const numberpattern = pattern.match(numberReg);
87
- const datepattern = pattern.match(dateReg);
81
+ const pattern = data.value.docNoPattern;
82
+ if (pattern) {
83
+ const numberReg: RegExp = /\[(.*?)\]/g;
84
+ const dateReg: RegExp = /\{(.*?)\}/g;
85
+ let newvalue = pattern;
86
+ const numberpattern = pattern.match(numberReg);
87
+ const datepattern = pattern.match(dateReg);
88
88
 
89
- if (numberpattern && numberpattern.length > 0) {
90
- const numberlength = numberpattern[0]
91
- .replace("[", "")
92
- .replace("]", "").length;
89
+ if (numberpattern && numberpattern.length > 0) {
90
+ const numberlength = numberpattern[0]
91
+ .replace("[", "")
92
+ .replace("]", "").length;
93
93
 
94
- let nextnumber = (data.value.nextNumber ?? 0).toString();
94
+ let nextnumber = (data.value.nextNumber ?? 0).toString();
95
95
 
96
- const numberdiff = numberlength - nextnumber.length;
96
+ const numberdiff = numberlength - nextnumber.length;
97
97
 
98
- for (let n = 0; n < numberdiff; n++) {
99
- nextnumber = "0" + nextnumber;
100
- }
101
- newvalue = newvalue.replace(numberpattern[0], nextnumber);
98
+ for (let n = 0; n < numberdiff; n++) {
99
+ nextnumber = "0" + nextnumber;
102
100
  }
101
+ newvalue = newvalue.replace(numberpattern[0], nextnumber);
102
+ }
103
103
 
104
- if (datepattern && datepattern.length > 0) {
105
- for (let d = 0; d < datepattern.length; d++) {
106
- const dpattern = datepattern[d];
107
- const date = new Date();
108
- const formatteddate = moment().format(
109
- dpattern.replace("{", "").replace("}", ""),
110
- );
111
- newvalue = newvalue.replace(dpattern, formatteddate);
112
- }
104
+ if (datepattern && datepattern.length > 0) {
105
+ for (let d = 0; d < datepattern.length; d++) {
106
+ const dpattern = datepattern[d];
107
+ const date = new Date();
108
+ const formatteddate = moment().format(
109
+ dpattern.replace("{", "").replace("}", ""),
110
+ );
111
+ newvalue = newvalue.replace(dpattern, formatteddate);
113
112
  }
114
- return newvalue;
115
- } else {
116
- return "";
117
113
  }
118
- };
114
+ return newvalue;
115
+ } else {
116
+ return "";
117
+ }
118
+ };
119
119
 
120
- fetchRecord()
120
+ fetchRecord();
121
121
  </script>
122
122
  <template>
123
- <DebugDocumentData v-model="data" label="docnoformat"/>
123
+ <DebugDocumentData v-model="data" label="docnoformat" />
124
124
  <div class="p-4">
125
- <div v-if="isReadOnly">
126
- <Button class="bg-primary-600 hover:bg-primary-400 text-white" @click="isReadOnly=false">Edit</Button>
125
+ <div v-if="isReadOnly" class="col-span-4 ">
126
+ <Button
127
+ class="btn-default"
128
+ @click="newData"
129
+ type="button"
130
+ v-if="canPerform(doc.getDocName(), 'create')"
131
+ >New
132
+ </Button>
133
+ <Button class="btn btn-primary" @click="isReadOnly = false">Edit</Button>
127
134
  </div>
128
135
  <div v-else class="simpleapp-tool-bar col-span-4 text-left gap-4">
129
136
  <Button
130
- class="btn-default"
137
+ class="btn-default"
131
138
  @click="newData"
132
139
  type="button"
133
- v-if="canPerform(doc.getDocName(), 'create')">New
140
+ v-if="canPerform(doc.getDocName(), 'create')"
141
+ >New
134
142
  </Button>
135
143
  <Button
136
- class="bg bg-primary-600 hover:bg-primary-400 text-white"
144
+ class="btn btn-primary"
137
145
  @click="createData"
138
146
  type="button"
139
147
  v-if="canPerform(doc.getDocName(), 'create') && doc.isNew()"
@@ -141,72 +149,70 @@ const previewDocNo = (): string => {
141
149
  Create
142
150
  </Button>
143
151
  <Button
144
- class="bg bg-primary-600 hover:bg-primary-400 text-white"
145
-
152
+ class="btn btn-primary"
146
153
  @click="updateData"
147
154
  type="button"
148
- v-if="canPerform(doc.getDocName(), 'update') && !doc.isNew()"
155
+ v-if="canPerform(doc.getDocName(), 'update') && !doc.isNew()"
149
156
  >
150
157
  Update
151
158
  </Button>
152
159
  <Button
153
- class="bg bg-danger-600 hover:bg-danger-400 text-white"
154
-
160
+ class="btn btn-danger"
155
161
  @click="deleteData($el)"
156
162
  type="button"
157
163
  v-if="canPerform(doc.getDocName(), 'delete') && !doc.isNew()"
158
164
  >
159
165
  Delete
160
- </Button>
166
+ </Button>
161
167
  <ConfirmPopup></ConfirmPopup>
162
168
  </div>
163
169
  <SimpleAppForm :document="doc" #default="o" :readonly="isReadOnly">
164
170
  <div class="grid grid-cols-4 gap-4">
165
- <SimpleAppText
171
+ <SimpleAppInput
166
172
  autofocus
173
+ :input-type="SimpleAppInputType.text"
167
174
  :setting="o.getField('#/properties/docNoFormatNo')"
168
175
  v-model="data.docNoFormatNo"
169
176
  />
170
- <SimpleAppText
171
- autofocus
177
+ <SimpleAppInput
178
+ :input-type="SimpleAppInputType.text"
172
179
  :setting="o.getField('#/properties/docNoFormatName')"
173
180
  v-model="data.docNoFormatName"
174
181
  />
175
- <SimpleAppAutocomplete
182
+ <SimpleAppInput
183
+ :input-type="SimpleAppInputType.autocomplete"
176
184
  v-model="data.branch"
177
185
  :setting="o.getField('#/properties/branch')"
178
- :remoteSrc="getAutocomplete('branch')"
179
- optionLabel="label"
180
186
  />
181
- <SimpleAppCheckbox
182
- autofocus
187
+ <SimpleAppInput
188
+ :input-type="SimpleAppInputType.checkbox"
183
189
  :setting="o.getField('#/properties/active')"
184
190
  v-model="data.active"
185
191
  />
186
192
 
187
- <SimpleAppCheckbox
188
- autofocus
193
+ <SimpleAppInput
194
+ :input-type="SimpleAppInputType.checkbox"
189
195
  :setting="o.getField('#/properties/default')"
190
196
  v-model="data.default"
191
197
  />
192
198
 
193
- <SimpleAppText
194
- autofocus
199
+ <SimpleAppInput
200
+ :input-type="SimpleAppInputType.text"
195
201
  :setting="o.getField('#/properties/docNoPattern')"
196
202
  v-model="data.docNoPattern"
197
203
  @change="updateSample"
198
204
  :description="sample"
199
205
  v-tooltip="'Examples: PO-<00000>, SI{YY}/<000>, SI{YYMM}/<000>'"
200
206
  />
201
- <SimpleAppText
207
+ <SimpleAppInput
202
208
  :readonly="true"
209
+ :input-type="SimpleAppInputType.text"
203
210
  :setting="o.getField('#/properties/docNoType')"
204
- v-model="data.docNoType"
211
+ v-model="data.docNoType"
205
212
  description="Document Type"
206
-
207
213
  />
208
- <SimpleAppNumber
209
- autofocus
214
+ <SimpleAppInput
215
+ :input-type="SimpleAppInputType.number"
210
216
  :setting="o.getField('#/properties/nextNumber')"
211
217
  v-model="data.nextNumber"
212
218
  />
@@ -97,7 +97,7 @@ if (bid.value) {
97
97
  >New</Button
98
98
  > -->
99
99
  <Button
100
- class="bg-primary-600 hover:bg-primary-400 text-white"
100
+ class="btn btn-primary"
101
101
  :disabled="disabled"
102
102
  @click="createData"
103
103
  type="button"
@@ -105,7 +105,7 @@ if (bid.value) {
105
105
  >Create</Button
106
106
  >
107
107
  <Button
108
- class="bg-primary-600 hover:bg-primary-400 text-white"
108
+ class="btn btn-primary"
109
109
  :disabled="disabled"
110
110
  @click="updateData"
111
111
  type="button"
@@ -113,7 +113,7 @@ if (bid.value) {
113
113
  >Update</Button
114
114
  >
115
115
  <Button
116
- class="bg-danger-600 hover:bg-danger-400 text-white"
116
+ class="btn btn-danger"
117
117
  :disabled="disabled"
118
118
  @click="deleteData($event)"
119
119
  type="button"
@@ -6,6 +6,7 @@
6
6
  * last change 2023-09-09
7
7
  * author: Ks Tan
8
8
  */
9
+ import { SimpleAppInputType } from "~/types";
9
10
  import ConfirmPopup from "primevue/confirmpopup";
10
11
  import { useConfirm } from "primevue/useconfirm";
11
12
  const confirm = useConfirm();
@@ -15,7 +16,7 @@ const orgdoc = $OrganizationDoc();
15
16
  const doc = $BranchDoc();
16
17
  const data = doc.getReactiveData();
17
18
  const bid = ref(String(useRoute().params.bid ?? ""));
18
- const isReadOnly=ref(true)
19
+ const isReadOnly = ref(true);
19
20
  const fetchRecord = async (id: string) => {
20
21
  await doc.getById(id);
21
22
  };
@@ -56,7 +57,7 @@ const deleteData = (event: Event) => {
56
57
  // disabled.value=true
57
58
  doc.delete(data.value._id ?? "").then((res) => {
58
59
  refresh();
59
-
60
+
60
61
  goTo(doc.getDocName());
61
62
  });
62
63
  },
@@ -68,16 +69,16 @@ const deleteData = (event: Event) => {
68
69
 
69
70
  const refresh = () => {
70
71
  $event("RefreshDocumentList", { documentName: doc.getDocName() });
71
- isReadOnly.value=true
72
+ isReadOnly.value = true;
72
73
  };
73
74
 
74
- if (bid.value) {
75
+ if (bid.value) {
75
76
  fetchRecord(bid.value);
76
77
  } else {
77
78
  // const orgRecordid = ref(String(useRoute().params.id));
78
79
  // const orgdata = (await orgdoc.getById(orgRecordid.value)).data;
79
80
  doc.setNew();
80
- isReadOnly.value=false
81
+ isReadOnly.value = false;
81
82
  data.value.tenantId = getUserProfile().tenantId;
82
83
  data.value.orgId = getUserProfile().orgId;
83
84
  data.value.organization._id = getUserProfile().orgRecordId;
@@ -91,7 +92,7 @@ if (bid.value) {
91
92
  <SimpleAppForm :document="doc" #default="o" :readonly="isReadOnly">
92
93
  <div v-if="!isReadOnly" class="col-span-4 text-left gap-4">
93
94
  <Button
94
- class="bg-primary-600 hover:bg-primary-400 text-white"
95
+ class="btn btn-primary"
95
96
  :isReadOnly="isReadOnly"
96
97
  @click="createData"
97
98
  type="button"
@@ -99,43 +100,48 @@ if (bid.value) {
99
100
  >Create</Button
100
101
  >
101
102
  <Button
102
- class="bg-primary-600 hover:bg-primary-400 text-white"
103
-
103
+ class="btn btn-primary"
104
104
  @click="updateData"
105
105
  type="button"
106
106
  v-if="canPerform(doc.getDocName(), 'update') && !doc.isNew()"
107
107
  >Update</Button
108
108
  >
109
109
  <Button
110
- class="bg-danger-600 hover:bg-danger-400 text-white"
110
+ class="btn btn-danger"
111
111
  @click="deleteData($event)"
112
112
  type="button"
113
113
  v-if="canPerform(doc.getDocName(), 'delete') && !doc.isNew()"
114
114
  >Delete</Button
115
115
  >
116
-
116
+
117
117
  <ConfirmPopup></ConfirmPopup>
118
118
  </div>
119
119
  <div v-else class="col-span-4 text-left gap-4">
120
- <Button
121
- class="bg-primary-600 hover:bg-primary-400 text-white"
122
- @click="isReadOnly=false" type="button" >Edit</Button
123
- >
120
+ <Button
121
+ class="btn btn-primary"
122
+ @click="isReadOnly = false"
123
+ type="button"
124
+ >Edit</Button
125
+ >
124
126
  </div>
125
127
 
126
- <SimpleAppText
128
+ <SimpleAppInput
129
+ :input-type="SimpleAppInputType.text"
127
130
  v-model="data.branchCode"
128
131
  :setting="o.getField('#/properties/branchCode')"
129
132
  />
130
- <SimpleAppText
133
+ <SimpleAppInput
134
+ :input-type="SimpleAppInputType.text"
131
135
  v-model="data.branchName"
132
136
  :setting="o.getField('#/properties/branchName')"
133
137
  />
134
- <SimpleAppCheckbox
138
+ <SimpleAppInput
139
+ :input-type="SimpleAppInputType.checkbox"
135
140
  v-model="data.active"
136
141
  :setting="o.getField('#/properties/active')"
137
142
  />
138
- <SimpleAppTextarea
143
+ <SimpleAppInput
144
+ :input-type="SimpleAppInputType.textarea"
139
145
  v-model="data.description"
140
146
  :setting="o.getField('#/properties/description')"
141
147
  />
@@ -6,6 +6,7 @@
6
6
  * last change 2023-09-09
7
7
  * author: Ks Tan
8
8
  */
9
+ import { SimpleAppInputType } from "~/types";
9
10
  import ConfirmPopup from "primevue/confirmpopup";
10
11
  import { useConfirm } from "primevue/useconfirm";
11
12
  const confirm = useConfirm();
@@ -15,7 +16,7 @@ const doc = $OrganizationDoc();
15
16
  const brancdoc = $BranchDoc();
16
17
  const data = doc.getReactiveData();
17
18
  const branchlist = ref([]);
18
- const isReadOnly=ref(true)
19
+ const isReadOnly = ref(true);
19
20
  const getCurrentOrg = async () => {
20
21
  await doc.getById(getUserProfile().orgRecordId);
21
22
  };
@@ -32,7 +33,7 @@ const updateData = async () => {
32
33
  .update()
33
34
  .then(() => {
34
35
  refresh();
35
- isReadOnly.value=true
36
+ isReadOnly.value = true;
36
37
  })
37
38
  .catch((err) => {
38
39
  console.error(err);
@@ -61,38 +62,52 @@ getCurrentOrg();
61
62
  <div class="grid grid-cols-3">
62
63
  <div class="">
63
64
  <Card>
65
+ <template #header><h1 class="text-2xl">Organization</h1></template>
64
66
  <template #content>
65
- <SimpleAppForm #default="o" :document="doc" :readonly="isReadOnly">
66
- <div class="simpleapp-tool-bar col-span-4 text-left gap-4" v-if="canPerform(doc.getDocName(), 'update')">
67
- <Button v-if="isReadOnly"
68
- class="bg-primary-600 hover:bg-primary-400 text-white"
69
- @click="isReadOnly=false" type="button">Edit</Button>
70
- <Button v-else
71
- class="bg-primary-600 hover:bg-primary-400 text-white"
72
- @click="updateData" type="button" >Update</Button
73
- >
67
+ <SimpleAppForm #default="o" :document="doc" :readonly="isReadOnly">
68
+ <div
69
+ class="simpleapp-tool-bar col-span-4 text-left gap-4"
70
+ v-if="canPerform(doc.getDocName(), 'update')"
71
+ >
72
+ <Button
73
+ v-if="isReadOnly"
74
+ class="btn btn-primary"
75
+ @click="isReadOnly = false"
76
+ type="button"
77
+ >Edit</Button
78
+ >
79
+ <Button
80
+ v-else
81
+ class="btn btn-primary"
82
+ @click="updateData"
83
+ type="button"
84
+ >Update</Button
85
+ >
74
86
  <ConfirmPopup></ConfirmPopup>
75
87
  </div>
76
88
  <div class="flex flex-col">
77
89
  <div class="flex flex-row gap-4">
78
- <SimpleAppText
79
- autofocus
90
+ <SimpleAppInput
91
+ :input-type="SimpleAppInputType.text"
92
+ autofocus
80
93
  v-model="data.orgCode"
81
94
  :setting="o.getField('#/properties/orgCode')"
82
-
83
95
  />
84
- <SimpleAppText
96
+ <SimpleAppInput
97
+ :input-type="SimpleAppInputType.text"
85
98
  v-model="data.orgName"
86
99
  class=""
87
100
  :setting="o.getField('#/properties/orgName')"
88
101
  />
89
- <SimpleAppCheckbox
102
+ <SimpleAppInput
103
+ :input-type="SimpleAppInputType.checkbox"
90
104
  v-model="data.active"
91
105
  :setting="o.getField('#/properties/active')"
92
106
  />
93
107
  </div>
94
108
  <div>
95
- <SimpleAppTextarea
109
+ <SimpleAppInput
110
+ :input-type="SimpleAppInputType.textarea"
96
111
  :setting="o.getField('#/properties/description')"
97
112
  v-model="data.description"
98
113
  />