@simitgroup/simpleapp-generator 1.2.7 → 1.2.8
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.
- package/dist/framework.js +3 -3
- package/dist/framework.js.map +1 -1
- package/package.json +1 -1
- package/src/framework.ts +3 -3
- package/templates/nuxt/app.vue.eta +7 -3
- package/templates/nuxt/assets/css/calendar.css._eta +21 -8
- package/templates/nuxt/assets/css/style.css._eta +0 -5
- package/templates/nuxt/assets/primevue/passthrough.ts._eta +26 -15
- package/templates/nuxt/components/calendar/CalendarByResource.vue.eta +29 -8
- package/templates/nuxt/components/event/EventDocumentViewer.vue._eta +2 -2
- package/templates/nuxt/components/event/EventNotification.vue._eta +23 -2
- package/templates/nuxt/components/header/HeaderBar.vue._eta +9 -9
- package/templates/nuxt/components/header/HeaderBreadcrumb.vue.eta +2 -2
- package/templates/nuxt/components/header/button/HeaderButtonMenuPicker.vue._eta +7 -15
- package/templates/nuxt/components/header/button/HeaderButtonProfile.vue.eta +23 -34
- package/templates/nuxt/components/list/ListView.vue.eta +10 -8
- package/templates/nuxt/components/renderer/RendererMoney.vue.eta +10 -2
- package/templates/nuxt/components/renderer/RendererViewer.vue.eta +5 -5
- package/templates/nuxt/components/simpleApp/SimpleAppAutocomplete.vue.eta +34 -9
- package/templates/nuxt/components/simpleApp/SimpleAppDocumentNo.vue.eta +7 -1
- package/templates/nuxt/components/simpleApp/SimpleAppFieldContainer.vue.eta +23 -16
- package/templates/nuxt/components/simpleApp/SimpleAppInput.vue.eta +24 -7
- package/templates/nuxt/components/simpleApp/SimpleAppInputTable.vue.eta +4 -3
- package/templates/nuxt/components/user/UserProfileListItem.vue.eta +2 -2
- package/templates/nuxt/composables/date.generate.ts.eta +16 -0
- package/templates/nuxt/composables/goTo.generate.ts.eta +1 -0
- package/templates/nuxt/composables/stringHelper.generate.ts.eta +0 -5
- package/templates/nuxt/error.vue._eta +3 -3
- package/templates/nuxt/layouts/default.vue._eta +19 -34
- package/templates/nuxt/layouts/loginlayout.vue._eta +3 -0
- package/templates/nuxt/layouts/mobile.vue._eta +29 -0
- package/templates/nuxt/nuxt.config.ts._eta +25 -15
- package/templates/nuxt/pages/[xorg]/user/{index.vue._eta → index.vue.eta} +10 -12
- package/templates/nuxt/pages/login.vue._eta +34 -0
- package/templates/nuxt/plugins/10.simpleapp-event.ts.eta +35 -33
- package/templates/nuxt/server/api/[xorg]/[...].ts.eta +7 -40
- package/templates/nuxt/server/api/profile/[...].ts.eta +3 -32
- package/templates/nuxt/simpleapp/generate/clients/SimpleAppClient.ts.eta +1 -1
- package/templates/nuxt/types/calendar.ts.eta +8 -1
- package/templates/nuxt/types/others.ts.eta +4 -1
- package/templates/project/lang/default._json +4 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/templates/nuxt/pages/login.vue.eta +0 -30
- /package/templates/nuxt/pages/[xorg]/user/{[id].vue._eta → [id].vue.eta} +0 -0
- /package/templates/nuxt/pages/[xorg]/{user.vue._eta → user.vue.eta} +0 -0
package/dist/framework.js
CHANGED
|
@@ -175,7 +175,7 @@ const prepareProject = async (callback) => {
|
|
|
175
175
|
});
|
|
176
176
|
// fs.mkdirSync(`${dir}/groups`,{recursive:true})
|
|
177
177
|
// fs.mkdirSync(`${dir}/schemas`,{recursive:true})
|
|
178
|
-
// fs.mkdirSync(`${dir}/shares`,{recursive:true})
|
|
178
|
+
// fs.mkdirSync(`${dir}/shares`,{recursive:true})
|
|
179
179
|
};
|
|
180
180
|
exports.prepareProject = prepareProject;
|
|
181
181
|
//prepare nuxt project for simpleapp generator
|
|
@@ -183,10 +183,10 @@ const prepareNuxt = (callback) => {
|
|
|
183
183
|
const targetfolder = config.frontendFolder;
|
|
184
184
|
if (!fs_1.default.existsSync(`${targetfolder}/.env`)) {
|
|
185
185
|
//asume no environment. prepare now
|
|
186
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install;pnpm install -D @nuxtjs/color-mode @types/json-schema @nuxtjs/i18n@next nuxt-primevue @nuxtjs/tailwindcss @types/jsonpath @sidebase/nuxt-auth @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core prettier `, (error, stdout, stderr) => {
|
|
186
|
+
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install;pnpm install -D @nuxtjs/device @nuxtjs/color-mode @types/json-schema @nuxtjs/i18n@next nuxt-primevue @nuxtjs/tailwindcss @types/jsonpath @sidebase/nuxt-auth @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core prettier `, (error, stdout, stderr) => {
|
|
187
187
|
//;pnpm install
|
|
188
188
|
console.log(error, stdout, stderr);
|
|
189
|
-
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save tailwind-merge @iconify-json/heroicons json-schema @vueuse/core ts-md5 primeicons moment memory-cache jsonpath pinia @pinia/nuxt @nuxt/kit lodash @types/lodash @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill prettier axios json-schema mitt `, (error, stdout, stderr) => {
|
|
189
|
+
(0, child_process_1.exec)(`cd ${targetfolder};pnpm install --save chart.js tailwind-merge @iconify-json/heroicons json-schema @vueuse/core ts-md5 primeicons moment memory-cache jsonpath pinia @pinia/nuxt @nuxt/kit lodash @types/lodash @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill prettier axios json-schema mitt `, (error, stdout, stderr) => {
|
|
190
190
|
console.log(error, stdout, stderr);
|
|
191
191
|
// fs.mkdirSync(`${targetfolder}/assets/css/`,{recursive:true})
|
|
192
192
|
// fs.mkdirSync(`${targetfolder}/layouts`,{recursive:true})
|
package/dist/framework.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../src/framework.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/framework.ts
CHANGED
|
@@ -152,7 +152,7 @@ export const prepareProject = async (callback)=>{
|
|
|
152
152
|
|
|
153
153
|
// fs.mkdirSync(`${dir}/groups`,{recursive:true})
|
|
154
154
|
// fs.mkdirSync(`${dir}/schemas`,{recursive:true})
|
|
155
|
-
// fs.mkdirSync(`${dir}/shares`,{recursive:true})
|
|
155
|
+
// fs.mkdirSync(`${dir}/shares`,{recursive:true})
|
|
156
156
|
|
|
157
157
|
}
|
|
158
158
|
//prepare nuxt project for simpleapp generator
|
|
@@ -160,10 +160,10 @@ export const prepareNuxt = (callback:Function)=>{
|
|
|
160
160
|
const targetfolder = config.frontendFolder
|
|
161
161
|
if(!fs.existsSync(`${targetfolder}/.env`)){
|
|
162
162
|
//asume no environment. prepare now
|
|
163
|
-
exec(`cd ${targetfolder};pnpm install;pnpm install -D @nuxtjs/color-mode @types/json-schema @nuxtjs/i18n@next nuxt-primevue @nuxtjs/tailwindcss @types/jsonpath @sidebase/nuxt-auth @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core prettier `, (error, stdout, stderr)=>{
|
|
163
|
+
exec(`cd ${targetfolder};pnpm install;pnpm install -D @nuxtjs/device @nuxtjs/color-mode @types/json-schema @nuxtjs/i18n@next nuxt-primevue @nuxtjs/tailwindcss @types/jsonpath @sidebase/nuxt-auth @types/node @vueuse/nuxt @sidebase/nuxt-auth @vueuse/core prettier `, (error, stdout, stderr)=>{
|
|
164
164
|
//;pnpm install
|
|
165
165
|
console.log(error, stdout, stderr)
|
|
166
|
-
exec(`cd ${targetfolder};pnpm install --save tailwind-merge @iconify-json/heroicons json-schema @vueuse/core ts-md5 primeicons moment memory-cache jsonpath pinia @pinia/nuxt @nuxt/kit lodash @types/lodash @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill prettier axios json-schema mitt `, (error, stdout, stderr)=>{
|
|
166
|
+
exec(`cd ${targetfolder};pnpm install --save chart.js tailwind-merge @iconify-json/heroicons json-schema @vueuse/core ts-md5 primeicons moment memory-cache jsonpath pinia @pinia/nuxt @nuxt/kit lodash @types/lodash @darkwolf/base64url next-auth@4.21.1 @darkwolf/base64url @nuxt/ui ajv ajv-formats ajv-errors dotenv @fullcalendar/core @fullcalendar/vue3 quill prettier axios json-schema mitt `, (error, stdout, stderr)=>{
|
|
167
167
|
console.log(error, stdout, stderr)
|
|
168
168
|
|
|
169
169
|
// fs.mkdirSync(`${targetfolder}/assets/css/`,{recursive:true})
|
|
@@ -8,15 +8,19 @@
|
|
|
8
8
|
watch(()=>useRoute().params['xorg'],(newval,oldvalue)=>{
|
|
9
9
|
reloadUserStore()
|
|
10
10
|
})
|
|
11
|
+
|
|
12
|
+
const getLayout = ()=>{
|
|
13
|
+
const { status } = useAuth();
|
|
14
|
+
if(status.value=='unauthenticated') return 'loginlayout'
|
|
15
|
+
else return useDevice().isMobile ? 'mobile' : 'default'
|
|
16
|
+
}
|
|
11
17
|
</script>
|
|
12
18
|
<template>
|
|
13
|
-
|
|
14
|
-
<NuxtLayout>
|
|
19
|
+
<NuxtLayout :name="getLayout()">
|
|
15
20
|
<SessionBlock/>
|
|
16
21
|
<EventDocumentViewer></EventDocumentViewer>
|
|
17
22
|
<EventDecision/>
|
|
18
23
|
<EventNotification/>
|
|
19
24
|
<NuxtPage />
|
|
20
25
|
</NuxtLayout>
|
|
21
|
-
</div>
|
|
22
26
|
</template>
|
|
@@ -16,22 +16,35 @@
|
|
|
16
16
|
#resourceviewcal .vuecal__event {
|
|
17
17
|
border-radius: 0.5rem;
|
|
18
18
|
}
|
|
19
|
-
#resourceviewcal .
|
|
20
|
-
|
|
19
|
+
#resourceviewcal .vuecal__time-column {
|
|
20
|
+
margin-top: 3rem;
|
|
21
|
+
/* background-color: red; */
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
#resourceviewcal .vuecal__split-days-headers{
|
|
25
|
+
min-height: 3rem;
|
|
26
|
+
/* background-color: blue; */
|
|
27
|
+
/* margin-left:-4rem; */
|
|
28
|
+
}
|
|
23
29
|
#resourceviewcal .vuecal__event {
|
|
24
30
|
border: solid 1px #ccc !important;
|
|
25
31
|
}
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
#resourceviewcal .nostudent{
|
|
28
37
|
background-color: aqua;
|
|
29
38
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
background-color:
|
|
39
|
+
#resourceviewcal .full{
|
|
40
|
+
@apply bg-orange-700 text-white
|
|
41
|
+
/* background-color: darkorange; */
|
|
42
|
+
/* color:white; */
|
|
33
43
|
}
|
|
34
|
-
|
|
35
|
-
|
|
44
|
+
#resourceviewcal .overlimit{
|
|
45
|
+
background-color: darkred;
|
|
46
|
+
color:white;
|
|
47
|
+
}
|
|
48
|
+
#resourceviewcal .default{
|
|
36
49
|
background-color: lightblue;
|
|
37
50
|
}
|
|
@@ -4,17 +4,19 @@ import Tailwind from "primevue/passthrough/tailwind";
|
|
|
4
4
|
|
|
5
5
|
const CustomTailwind = usePassThrough(
|
|
6
6
|
Tailwind,
|
|
7
|
-
{
|
|
8
|
-
|
|
7
|
+
{
|
|
8
|
+
avatar:{
|
|
9
|
+
root:{ class:'h-full w-full'},
|
|
10
|
+
},
|
|
9
11
|
toast:{
|
|
10
|
-
root:{ class:'w-1/3 '},
|
|
11
|
-
message:{},
|
|
12
|
-
container:{class:'w-full ' },
|
|
13
|
-
content:{class:'flex flex-row-reverse w-full'},
|
|
14
|
-
buttonContainer:{class:'hidden'},
|
|
12
|
+
root:{ class:'w-full md:w-1/2 lg:w-1/3 ml-4' , style:'position: fixed; top: 0px; right: 0px; z-index: 1102;'},
|
|
13
|
+
// message:{},
|
|
14
|
+
// container:{class:'w-full ' },
|
|
15
|
+
// content:{class:'flex flex-row-reverse w-full'},
|
|
16
|
+
// buttonContainer:{class:'hidden'},
|
|
15
17
|
},
|
|
16
18
|
card:{
|
|
17
|
-
root:{class:'shadow p-4 rounded-2xl m-2'},
|
|
19
|
+
root:{class:'bg-white dark:bg-gray-600 shadow p-4 rounded-2xl m-2'},
|
|
18
20
|
// title:{class:''},
|
|
19
21
|
// header:{class:''}
|
|
20
22
|
},
|
|
@@ -22,25 +24,33 @@ const CustomTailwind = usePassThrough(
|
|
|
22
24
|
headerTitle:{class:'m-0 p-0'},
|
|
23
25
|
},
|
|
24
26
|
selectbutton:{
|
|
25
|
-
root:{class:'flex flex-row gap-1'},
|
|
27
|
+
root:{class:'flex flex-row gap-1 '},
|
|
26
28
|
button: ({ context }) => ({
|
|
27
|
-
class: ` focus:outline-none transition duration-150 ease-in-out rounded p-2 m-1 border dark:border-gray-600 ${context.active ? 'bg-primary-600 border-primary-400 text-white' :
|
|
29
|
+
class: ` focus:outline-none transition duration-150 ease-in-out rounded p-2 m-1 border dark:border-gray-600 ${context.active ? 'bg-primary-600 border-primary-400 text-white' : ''}`
|
|
28
30
|
}),
|
|
29
31
|
// button: ( context) => ({
|
|
30
32
|
|
|
31
33
|
// class: ['text-center border text-gray-400 dark:border-gray-700 dark:text-gray-300 rounded-lg p-2 cursor-pointer hover:bg-primary-400 dark:hover:bg-primary-800 hover:text-white', context.active ? 'bg-primary-600 dark:bg-primary-700 text-white' : '']
|
|
32
34
|
// }),
|
|
33
|
-
label:{class: 'text-sm'},
|
|
35
|
+
label:{class: 'text-sm dark:text-white'},
|
|
36
|
+
},
|
|
37
|
+
checkbox:{
|
|
38
|
+
input:{ class:' flex items-center justify-center border-2 w-6 h-6 text-gray-600 rounded-lg transition-colors duration-200 border-gray-300 bg-white dark:border-blue-900/40 dark:bg-gray-500 hover:border-blue-500 dark:hover:border-blue-400 focus:outline-none focus:outline-offset-0 focus:shadow-[0_0_0_0.2rem_rgba(191,219,254,1)] dark:focus:shadow-[inset_0_0_0_0.2rem_rgba(147,197,253,0.5)]'}
|
|
39
|
+
// p-checkbox p-component cursor-pointer inline-flex relative select-none align-bottom w-6 h-6
|
|
40
|
+
|
|
34
41
|
},
|
|
35
42
|
button:{root:{class: 'focus:outline-none transition duration-150 ease-in-out rounded p-2 m-1 border dark:border-gray-600'}},
|
|
36
|
-
dialog:{
|
|
43
|
+
dialog:{
|
|
44
|
+
root:{class:['border w-full max-h-full max-w-full md:h-3/4 lg:h-1/2']},
|
|
45
|
+
header:{class: 'p-dialog-header flex items-center text-2xl justify-between shrink-0 bg-white text-gray-800 border-t-0 rounded-tl-lg rounded-tr-lg p-6 dark:bg-gray-900 dark:text-white/80'},
|
|
46
|
+
content:{class:'p-dialog-content overflow-y-auto bg-white text-gray-700 px-6 pb-8 pt-0 dark:bg-gray-900 dark:text-white/80 rounded-bl-lg rounded-br-lg h-full'}
|
|
47
|
+
},
|
|
37
48
|
calendar:{
|
|
38
|
-
root:{class:'border border-
|
|
39
|
-
input:{class:'w-full p-
|
|
49
|
+
root:{class:'border border-grey-900 dark:!border-blue-900/40 rounded-lg flex flex-row p-0'},
|
|
50
|
+
input:{class:'w-full p-inputtext p-component font-sans text-base text-gray-600 dark:text-white/80 bg-white dark:bg-gray-900 p-3 border border-gray-300 dark:border-blue-900/40 transition-colors duration-200 appearance-none hover:border-blue-500 rounded-lg'},
|
|
40
51
|
},
|
|
41
52
|
autocomplete:{
|
|
42
53
|
root:{class:'border border-gray-400 dark:!border-blue-900/40 rounded-lg flex flex-row'},
|
|
43
|
-
input:{class:'w-full p-2 font-sans rounded-lg rounded-tr-none rounded-br-none transition-colors duration-200 appearance-none hover:border-blue-500 focus:outline-none focus:outline-offset-0 focus:shadow-[0_0_0_0.2rem_rgba(191,219,254,1)] dark:focus:shadow-[0_0_0_0.2rem_rgba(147,197,253,0.5)] text-base'},
|
|
44
54
|
loadingIcon:{class:'hidden'},
|
|
45
55
|
dropdownbutton: {
|
|
46
56
|
root:' btn-primary dark:shadow-primary-800 dark:border-primary-900 text-white rounded-lg flex flex-row p-3 rounded-tl-none rounded-bl-none '
|
|
@@ -48,6 +58,7 @@ const CustomTailwind = usePassThrough(
|
|
|
48
58
|
},
|
|
49
59
|
sidebar:{
|
|
50
60
|
root:{class:'w-full md:w-1/2 xl:w-1/4 bg-white dark:bg-gray-800 border p-0 h-full'},
|
|
61
|
+
header:{class:'dark:text-white text-2xl p-2'},
|
|
51
62
|
content:{class:'p-0 pt-0 h-full w-full grow overflow-y-auto'}
|
|
52
63
|
},
|
|
53
64
|
panel: {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
{{ calendarMode }}
|
|
3
2
|
<VueCal
|
|
3
|
+
|
|
4
4
|
:id="id"
|
|
5
|
+
ref="vueresourcecal"
|
|
5
6
|
:disable-views="['years', 'year', 'month', 'week']"
|
|
6
7
|
:time-from="8 * 60"
|
|
7
|
-
:time-to="
|
|
8
|
-
:time-step="
|
|
8
|
+
:time-to="22 * 60"
|
|
9
|
+
:time-step="60"
|
|
9
10
|
active-view="day"
|
|
10
11
|
:snap-to-time="15"
|
|
11
12
|
hide-view-selector
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
@event-drag-create="onDragNew"
|
|
23
24
|
@event-drop="onEventDrop"
|
|
24
25
|
@view-change="viewChange"
|
|
25
|
-
|
|
26
|
+
@cell-click="onCellClick"
|
|
26
27
|
@cell-contextmenu="eventHappend"
|
|
27
28
|
|
|
28
29
|
>
|
|
@@ -68,12 +69,13 @@
|
|
|
68
69
|
|
|
69
70
|
import "vue-cal/dist/vuecal.css";
|
|
70
71
|
import VueCal, { Event, SplitDaysAttributes } from "vue-cal";
|
|
71
|
-
import { CalEventType,
|
|
72
|
+
import { CalEventType,CalViewClickSlotEvent,CalResource,CalResourceType,RelocateEvent } from '~/types'
|
|
72
73
|
import { emit } from "process";
|
|
73
|
-
|
|
74
|
+
import moment from 'moment'
|
|
74
75
|
const timezoneoffset = new Date().getTimezoneOffset()
|
|
75
76
|
const eventsdata = ref<CalEventType<T>[]>()
|
|
76
|
-
const
|
|
77
|
+
const vueresourcecal = ref()
|
|
78
|
+
const emits = defineEmits(['eventRghtClick','eventClick','eventDrop','eventDragNew','viewChange','resourceClick','slotClick'])
|
|
77
79
|
const props = defineProps<{
|
|
78
80
|
id:string
|
|
79
81
|
items:CalEventType<T>[]
|
|
@@ -126,6 +128,25 @@ const allresources = computed(()=>{
|
|
|
126
128
|
})
|
|
127
129
|
return tmplist
|
|
128
130
|
})
|
|
131
|
+
const onCellClick = async(e:CalViewClickSlotEvent)=>{
|
|
132
|
+
const date =e.date
|
|
133
|
+
date.setHours(date.getHours() + Math.floor(date.getMinutes()/60));
|
|
134
|
+
date.setMinutes(0, 0, 0); // Resets also seconds and milliseconds
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
const newevent:CalEventType<T> = {
|
|
138
|
+
id: 'new',
|
|
139
|
+
start: date,
|
|
140
|
+
end: date.addHours(1),
|
|
141
|
+
class: 'nostudent',
|
|
142
|
+
title: t('new'),
|
|
143
|
+
// content?: string | undefined;
|
|
144
|
+
split: e.split,
|
|
145
|
+
data: {} as T
|
|
146
|
+
}
|
|
147
|
+
// emits('slotClick',e)
|
|
148
|
+
emits('eventDragNew',newevent)
|
|
149
|
+
}
|
|
129
150
|
const onEventDrop = async (relocateData: RelocateEvent<T>)=>{
|
|
130
151
|
emits('eventDrop', relocateData)
|
|
131
152
|
}
|
|
@@ -143,7 +164,7 @@ const onEventClick = (eventdata: CalResource) => {
|
|
|
143
164
|
|
|
144
165
|
const calendarMode = computed(()=>{
|
|
145
166
|
|
|
146
|
-
if(
|
|
167
|
+
if(useDevice().isMobile){
|
|
147
168
|
return {
|
|
148
169
|
title: false,
|
|
149
170
|
drag: true,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<Dialog v-model:visible="visible"
|
|
3
|
-
:pt="{root:{class:'w-5/6 h-5/6'}}"
|
|
2
|
+
<Dialog v-model:visible="visible"
|
|
4
3
|
:modal="true"
|
|
5
4
|
:close-on-escape="false" >
|
|
6
5
|
<template #header>
|
|
@@ -66,6 +65,7 @@ const deleteTab=()=>{
|
|
|
66
65
|
}
|
|
67
66
|
|
|
68
67
|
$listen('ViewRecord',(setting)=>{
|
|
68
|
+
console.log("ViewRecord event received by listener")
|
|
69
69
|
visible.value=true
|
|
70
70
|
allview.value[setting.eventId]=setting
|
|
71
71
|
|
|
@@ -93,8 +93,29 @@ const getFieldName = (path:string)=>{
|
|
|
93
93
|
}
|
|
94
94
|
</script>
|
|
95
95
|
<template>
|
|
96
|
-
<Toast group="default"
|
|
96
|
+
<Toast group="default">
|
|
97
97
|
<template #message="p">
|
|
98
|
+
<div class="h-full w-full border">
|
|
99
|
+
<p class="text-lg text-red-800 font-semibold pb-1">{{ p.message.summary }}</p>
|
|
100
|
+
<div v-if="p.message.detail" class="flex flex-col gap-2 ">
|
|
101
|
+
<p v-if="Array.isArray(p.message.detail)" v-for="item in p.message.detail"
|
|
102
|
+
class="text-sm text-red-600 font-normal">
|
|
103
|
+
<span v-if="item.instancePath">{{ item.instancePath }} </span>
|
|
104
|
+
<span v-if="item.message"> {{ item.message }} </span>
|
|
105
|
+
|
|
106
|
+
</p>
|
|
107
|
+
<p v-else-if="typeof p.message.detail == 'string'" class="text-sm text-gray-600 dark:text-gray-400 font-normal">
|
|
108
|
+
{{ p.message.detail }}
|
|
109
|
+
</p>
|
|
110
|
+
<p v-else-if="typeof p.message.detail == 'object'" class="text-sm text-gray-600 dark:text-gray-400 font-normal">
|
|
111
|
+
{{ p.message.detail.message }}
|
|
112
|
+
</p>
|
|
113
|
+
<p v-else></p>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
</template>
|
|
118
|
+
<!-- <template #message="p">
|
|
98
119
|
|
|
99
120
|
<div class="bg-gray-200 dark:bg-gray-900 h-full w-full border">
|
|
100
121
|
<div class=" flex content content-end w-full">
|
|
@@ -126,7 +147,7 @@ const getFieldName = (path:string)=>{
|
|
|
126
147
|
</div>
|
|
127
148
|
</div>
|
|
128
149
|
</div>
|
|
129
|
-
</template>
|
|
150
|
+
</template> -->
|
|
130
151
|
</Toast>
|
|
131
152
|
<!-- <Toast group="list">
|
|
132
153
|
<template #message="p">
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<!-- <header> -->
|
|
3
3
|
<!-- <MegaMenu :model="getMenus()" orientation="horizontal" /> -->
|
|
4
|
-
|
|
5
|
-
<div
|
|
6
|
-
|
|
4
|
+
|
|
5
|
+
<div >
|
|
6
|
+
<client-only>
|
|
7
7
|
|
|
8
8
|
<div class="flex-1 flex flex-row gap-2 p-2">
|
|
9
9
|
<!-- <div class="">
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<!-- <div class="">
|
|
14
14
|
<HeaderButtonHome/>
|
|
15
15
|
</div> -->
|
|
16
|
-
<div v-if="isMobile()">
|
|
16
|
+
<div v-if="isMobile()" class="dark:text-white max-w-[15rem] truncate ...">
|
|
17
17
|
<div v-if="useRoute().fullPath.split('/').length<=3">{{ t('home') }}</div>
|
|
18
18
|
<div v-else>{{ _.last(useRoute().fullPath.split('/')) }}</div>
|
|
19
19
|
</div>
|
|
@@ -23,11 +23,11 @@
|
|
|
23
23
|
|
|
24
24
|
</div>
|
|
25
25
|
<div class="flex-1 flex flex-row-reverse gap-2 p-2">
|
|
26
|
-
|
|
27
|
-
<div class=" text-right">
|
|
26
|
+
<!--
|
|
27
|
+
<div class=" text-right" v-if="!isMobile()">
|
|
28
28
|
<HeaderButtonProfile/>
|
|
29
29
|
</div>
|
|
30
|
-
|
|
30
|
+
<div class=" text-right">
|
|
31
31
|
<HeaderButtonTaskList/>
|
|
32
32
|
</div> -->
|
|
33
33
|
<!-- <div class="">
|
|
@@ -36,9 +36,9 @@
|
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
</client-only>
|
|
40
40
|
</div>
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
<!-- </header> -->
|
|
43
43
|
</template>
|
|
44
44
|
|
|
@@ -52,11 +52,11 @@ const getBranches = ()=>{
|
|
|
52
52
|
<template>
|
|
53
53
|
<Breadcrumb :home="home" :model="items" class="!p-0 border-none ">
|
|
54
54
|
<template #item="{ item }">
|
|
55
|
-
<NuxtLink :to="item.url" v-if="item.url" :active-class="'-'" :exact-active-class="'-'">
|
|
55
|
+
<NuxtLink :to="item.url" v-if="item.url" class="dark:text-white" :active-class="'-'" :exact-active-class="'-'">
|
|
56
56
|
<span :class="item.icon"></span>{{ item.label }}
|
|
57
57
|
</NuxtLink>
|
|
58
58
|
<div v-else>
|
|
59
|
-
<span class="cursor-pointer" @click="showSwitcher">{{ item.label }}</span>
|
|
59
|
+
<span class="cursor-pointer dark:text-white" @click="showSwitcher">{{ item.label }}</span>
|
|
60
60
|
<OverlayPanel ref="op">
|
|
61
61
|
<div>
|
|
62
62
|
<ul class="flex flex-col">
|
|
@@ -27,29 +27,21 @@ getMenustFromPageMeta().reduce((r, item) => {
|
|
|
27
27
|
|
|
28
28
|
</script>
|
|
29
29
|
<template>
|
|
30
|
-
|
|
31
|
-
<button class="text-center border-none cursor-pointer" v-if="getCurrentXorg()" @click="visible=true">
|
|
32
|
-
<
|
|
33
|
-
<path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
|
|
34
|
-
</svg>
|
|
35
|
-
</button>
|
|
36
|
-
|
|
37
|
-
<Dialog v-model:visible="visible" modal :header="t('pickDocument')" :pt="{dialog:{ class:' bg-primary-800 ' }}">
|
|
30
|
+
|
|
31
|
+
<button class="text-center border-none cursor-pointer pi pi-bars dark:text-white" v-if="getCurrentXorg()" @click="visible=true">
|
|
32
|
+
<Dialog v-model:visible="visible" modal :header="t('pickDocument')" :pt="{dialog:{ class:' bg-primary-800 ' }}">
|
|
38
33
|
<div class="">
|
|
39
34
|
<div v-for="m in treemenu" class="m-4">
|
|
40
35
|
<h3>{{ t(m.name) }}</h3>
|
|
41
|
-
<div class="grid grid-cols-6 gap-4">
|
|
42
|
-
<
|
|
36
|
+
<div class="grid md:grid-cols-2 lg:grid-cols-6 gap-4">
|
|
37
|
+
<ButtonPrimary v-for="submenu in m.children" class="border rounded-lg p-2" @click="selectMenu(submenu)">
|
|
43
38
|
{{ t(submenu.name) }}
|
|
44
|
-
</
|
|
39
|
+
</ButtonPrimary>
|
|
45
40
|
</div>
|
|
46
41
|
|
|
47
42
|
</div>
|
|
48
43
|
|
|
49
44
|
</div>
|
|
50
45
|
</Dialog>
|
|
51
|
-
|
|
46
|
+
</button>
|
|
52
47
|
</template>
|
|
53
|
-
<style scoped>
|
|
54
|
-
|
|
55
|
-
</style>
|
|
@@ -6,9 +6,11 @@ import {ref} from 'vue'
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
const { locale,setLocale,locales } = useI18n()
|
|
9
|
+
const colorMode = useColorMode()
|
|
10
|
+
|
|
9
11
|
const mylocale = ref(locale)
|
|
10
12
|
const userprofileoverlay = ref();
|
|
11
|
-
const colors = [{value:'light', name:'
|
|
13
|
+
const colors = [{value:'light', name:t('light')},{value:'dark', name:t('dark')}]
|
|
12
14
|
const toggle = (event:any) => {
|
|
13
15
|
userprofileoverlay.value.toggle(event);
|
|
14
16
|
}
|
|
@@ -34,50 +36,39 @@ const saveLocale=async (v:string)=>{
|
|
|
34
36
|
|
|
35
37
|
</script>
|
|
36
38
|
|
|
37
|
-
<template>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<div class="flex flex-row-reverse cursor-pointer border-none w-full" @click="toggle">
|
|
42
|
-
<p>{{ getProfileFullName() }}</p>
|
|
43
|
-
<!-- <Avatar :image="getUserStore().getAvatarLink(32)" class="" size="normal" shape="circle" /> -->
|
|
44
|
-
<div class="w-8 h-8 bg-cover bg-center rounded-md">
|
|
45
|
-
<img :src="getAvatarLink(getProfileEmail(),32)" alt="" class="h-full w-full overflow-hidden object-cover rounded-full border-2 border-white dark:border-gray-700 shadow" />
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
|
|
39
|
+
<template>
|
|
40
|
+
<div class="bg-cover bg-center rounded-md p-3 cursor-pointer profile-button" @click="toggle">
|
|
41
|
+
<img :src="getAvatarLink(<string>getProfileEmail(),32)" alt="" class="h-full w-full overflow-hidden object-cover rounded-full border-2 border-white dark:border-gray-700 shadow" />
|
|
49
42
|
</div>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
|
|
44
|
+
<OverlayPanel appendTo="body" ref="userprofileoverlay" >
|
|
45
|
+
<!-- <div> -->
|
|
46
|
+
<!-- <div class="py-2 transition duration-150 ease-in-out z-10 absolute top-0 right-0 bottom-0 left-0" id="modal"> -->
|
|
47
|
+
<div class="">
|
|
48
|
+
<!-- <div class="relative p-4 md:p-8 bg-white dark:bg-gray-800 shadow-md rounded border border-gray-400"> -->
|
|
55
49
|
<div class="w-full flex items-center justify-start text-gray-600 dark:text-gray-400 mb-5" >
|
|
56
50
|
<div class="w-12 h-12 bg-cover bg-center rounded-md">
|
|
57
|
-
<img :src="getAvatarLink(getProfileEmail(),32)" alt="" class="h-full w-full overflow-hidden object-cover rounded-full border-2 border-white dark:border-gray-700 shadow" />
|
|
51
|
+
<img :src="getAvatarLink(<string>getProfileEmail(),32)" alt="" class="h-full w-full overflow-hidden object-cover rounded-full border-2 border-white dark:border-gray-700 shadow" />
|
|
58
52
|
</div>
|
|
59
53
|
<div class="flex flex-col" >
|
|
60
|
-
<h1 class="text-left text-gray-800 dark:text-gray-100 font-lg font-bold tracking-normal leading-tight ml-2">{{ getUserProfile()
|
|
61
|
-
<p class="text-gray-400 dark:text-gray-100 font-normal text-base tracking-normal ml-2 mr-4">{{getUserProfile()
|
|
54
|
+
<h1 class="text-left text-gray-800 dark:text-gray-100 font-lg font-bold tracking-normal leading-tight ml-2">{{ getUserProfile()?.fullName }}</h1>
|
|
55
|
+
<p class="text-gray-400 dark:text-gray-100 font-normal text-base tracking-normal ml-2 mr-4">{{getUserProfile()?.group }}</p>
|
|
62
56
|
</div>
|
|
63
57
|
|
|
64
58
|
</div>
|
|
65
|
-
<!-- language -->
|
|
66
59
|
<div class="col-span-full">
|
|
67
60
|
<label for="pick-lang" class="block text-sm font-medium leading-6 text-gray-900 dark:text-gray-300">{{ t('language') }}</label>
|
|
68
61
|
<div class="mt-2">
|
|
69
62
|
<Dropdown inputId="pick-lang" @update:model-value="saveLocale" v-model="mylocale" option-value="code" option-label="name" :options="locales" >
|
|
70
|
-
</Dropdown>
|
|
71
|
-
<!-- <select v-model="$colorMode.preference" id="picklang">
|
|
72
|
-
<option value="light">Light</option>
|
|
73
|
-
<option value="dark">Dark</option>
|
|
74
|
-
</select> -->
|
|
63
|
+
</Dropdown>
|
|
75
64
|
</div>
|
|
76
65
|
</div>
|
|
77
66
|
<div class="mt-3 col-span-full">
|
|
78
67
|
<label for="pick-theme" class="block text-sm font-medium leading-6 text-gray-900 dark:text-gray-300">{{ t('theme') }}</label>
|
|
79
68
|
<div class="mt-2">
|
|
80
|
-
<
|
|
69
|
+
<h1>Color mode: {{ $colorMode.value }}</h1>
|
|
70
|
+
|
|
71
|
+
<Dropdown inputId="pick-theme" v-model="colorMode.preference" option-value="value" option-label="name" :options="colors" >
|
|
81
72
|
</Dropdown>
|
|
82
73
|
|
|
83
74
|
</div>
|
|
@@ -86,15 +77,13 @@ const saveLocale=async (v:string)=>{
|
|
|
86
77
|
|
|
87
78
|
<div class="mt-3 flex items-center justify-start w-full">
|
|
88
79
|
<button class="focus:outline-none transition duration-150 ease-in-out hover:bg-gray-600 bg-gray-700 rounded text-white px-8 py-2 text-sm" @click="toProfile">{{ t('profile') }}</button>
|
|
89
|
-
<!-- <button class="focus:outline-none transition duration-150 ease-in-out bg-gray-600 rounded text-white px-8 py-2 text-sm" @click="toFrontpage">Pick Tenant</button> -->
|
|
90
80
|
<button class="focus:outline-none ml-3 bg-warning-100 dark:bg-warning-700 dark:border-warning-700 dark:hover:bg-warning-600 transition duration-150 text-gray-600 dark:text-gray-400 ease-in-out hover:border-gray-400 hover:bg-gray-300 border rounded px-8 py-2 text-sm" @click="logout()">{{ t('logout') }}</button>
|
|
91
81
|
</div>
|
|
92
|
-
</div>
|
|
82
|
+
<!-- </div> -->
|
|
93
83
|
</div>
|
|
94
|
-
</div>
|
|
84
|
+
<!-- </div> -->
|
|
95
85
|
|
|
96
|
-
</div>
|
|
97
|
-
|
|
86
|
+
<!-- </div> -->
|
|
98
87
|
</OverlayPanel>
|
|
99
|
-
|
|
88
|
+
|
|
100
89
|
</template>
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div>
|
|
3
|
-
<div v-if="withFilter">
|
|
4
|
-
<
|
|
5
|
-
autofocus
|
|
3
|
+
<div v-if="withFilter" class="">
|
|
4
|
+
<InputText
|
|
6
5
|
placeholder="search"
|
|
7
6
|
v-model="searchvalue"
|
|
8
|
-
class="w-full
|
|
9
|
-
type="search" />
|
|
7
|
+
class="w-full dark:text-white"
|
|
8
|
+
type="search" />
|
|
10
9
|
</div>
|
|
11
|
-
<div class="
|
|
10
|
+
<div class=" overflow-auto" v-if="filterlist.length>0">
|
|
12
11
|
<ul >
|
|
13
12
|
<li v-for="(item,index) in filterlist">
|
|
14
13
|
<div :class="getSelectedCSS(item)">
|
|
@@ -23,6 +22,9 @@
|
|
|
23
22
|
</li>
|
|
24
23
|
</ul>
|
|
25
24
|
</div>
|
|
25
|
+
<div v-else class="p-10">
|
|
26
|
+
<div class="text-xl text-center dark:text-gray-400 border p-10" >{{ t('noDataFound') }}</div>
|
|
27
|
+
</div>
|
|
26
28
|
</div>
|
|
27
29
|
</template>
|
|
28
30
|
<script setup lang="ts" generic="T extends {[key:string]:any}">
|
|
@@ -56,9 +58,9 @@ const filterlist = computed(()=>{
|
|
|
56
58
|
})
|
|
57
59
|
const getSelectedCSS= (item:T)=>{
|
|
58
60
|
if(selecteditem.value == item.code){
|
|
59
|
-
return "p-2 border bg-sky-200"
|
|
61
|
+
return "p-2 border-l-none border-r-none bg-sky-200 border-t-2"
|
|
60
62
|
}else{
|
|
61
|
-
return "p-2 border hover-list-primary"
|
|
63
|
+
return "p-2 border-l-none border-r-none hover-list-primary border-t-2 dark:border-t-gray-700"
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
}
|