@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.
Files changed (45) hide show
  1. package/dist/framework.js +3 -3
  2. package/dist/framework.js.map +1 -1
  3. package/package.json +1 -1
  4. package/src/framework.ts +3 -3
  5. package/templates/nuxt/app.vue.eta +7 -3
  6. package/templates/nuxt/assets/css/calendar.css._eta +21 -8
  7. package/templates/nuxt/assets/css/style.css._eta +0 -5
  8. package/templates/nuxt/assets/primevue/passthrough.ts._eta +26 -15
  9. package/templates/nuxt/components/calendar/CalendarByResource.vue.eta +29 -8
  10. package/templates/nuxt/components/event/EventDocumentViewer.vue._eta +2 -2
  11. package/templates/nuxt/components/event/EventNotification.vue._eta +23 -2
  12. package/templates/nuxt/components/header/HeaderBar.vue._eta +9 -9
  13. package/templates/nuxt/components/header/HeaderBreadcrumb.vue.eta +2 -2
  14. package/templates/nuxt/components/header/button/HeaderButtonMenuPicker.vue._eta +7 -15
  15. package/templates/nuxt/components/header/button/HeaderButtonProfile.vue.eta +23 -34
  16. package/templates/nuxt/components/list/ListView.vue.eta +10 -8
  17. package/templates/nuxt/components/renderer/RendererMoney.vue.eta +10 -2
  18. package/templates/nuxt/components/renderer/RendererViewer.vue.eta +5 -5
  19. package/templates/nuxt/components/simpleApp/SimpleAppAutocomplete.vue.eta +34 -9
  20. package/templates/nuxt/components/simpleApp/SimpleAppDocumentNo.vue.eta +7 -1
  21. package/templates/nuxt/components/simpleApp/SimpleAppFieldContainer.vue.eta +23 -16
  22. package/templates/nuxt/components/simpleApp/SimpleAppInput.vue.eta +24 -7
  23. package/templates/nuxt/components/simpleApp/SimpleAppInputTable.vue.eta +4 -3
  24. package/templates/nuxt/components/user/UserProfileListItem.vue.eta +2 -2
  25. package/templates/nuxt/composables/date.generate.ts.eta +16 -0
  26. package/templates/nuxt/composables/goTo.generate.ts.eta +1 -0
  27. package/templates/nuxt/composables/stringHelper.generate.ts.eta +0 -5
  28. package/templates/nuxt/error.vue._eta +3 -3
  29. package/templates/nuxt/layouts/default.vue._eta +19 -34
  30. package/templates/nuxt/layouts/loginlayout.vue._eta +3 -0
  31. package/templates/nuxt/layouts/mobile.vue._eta +29 -0
  32. package/templates/nuxt/nuxt.config.ts._eta +25 -15
  33. package/templates/nuxt/pages/[xorg]/user/{index.vue._eta → index.vue.eta} +10 -12
  34. package/templates/nuxt/pages/login.vue._eta +34 -0
  35. package/templates/nuxt/plugins/10.simpleapp-event.ts.eta +35 -33
  36. package/templates/nuxt/server/api/[xorg]/[...].ts.eta +7 -40
  37. package/templates/nuxt/server/api/profile/[...].ts.eta +3 -32
  38. package/templates/nuxt/simpleapp/generate/clients/SimpleAppClient.ts.eta +1 -1
  39. package/templates/nuxt/types/calendar.ts.eta +8 -1
  40. package/templates/nuxt/types/others.ts.eta +4 -1
  41. package/templates/project/lang/default._json +4 -1
  42. package/tsconfig.tsbuildinfo +1 -1
  43. package/templates/nuxt/pages/login.vue.eta +0 -30
  44. /package/templates/nuxt/pages/[xorg]/user/{[id].vue._eta → [id].vue.eta} +0 -0
  45. /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})
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA0E;AAC1E,iDAAwC;AACxC,oDAAsB;AACtB,iCAAwC;AACxC,sDAAuC;AACvC,6BAA0B;AAC1B,MAAM,GAAG,GAAoB,IAAI,cAAM,EAAE,CAAC;AAE1C,IAAI,MAAM,GAAG;IACT,kBAAkB,EAAC,eAAe;IAClC,YAAY,EAAC,EAAE;IACf,eAAe,EAAC,WAAW;IAC3B,aAAa,EAAC,UAAU;IACxB,YAAY,EAAC,QAAQ;IACrB,aAAa,EAAC,MAAM;IACpB,iBAAiB,EAAC,qCAAqC;IACvD,aAAa,EAAC,WAAW;IACzB,gBAAgB,EAAC,YAAY;IAC7B,cAAc,EAAC,MAAM;IACrB,cAAc,EAAC;QACX,cAAc,EAAC,8BAA8B;QAC7C,YAAY,EAAC,YAAY;QACzB,eAAe,EAAC,+CAA+C;QAC/D,aAAa,EAAC,WAAW;QACzB,mBAAmB,EAAC,qBAAqB;QACzC,oBAAoB,EAAC,WAAW;QAChC,WAAW,EAAC,YAAY;KAC3B;IACD,aAAa,EAAC;QACV,UAAU,EAAC,WAAW;QACtB,UAAU,EAAC,MAAM;QACjB,YAAY,EAAC,OAAO;KACvB;CACJ,CAAA;AAEM,MAAM,gBAAgB,GAAC,CAAC,UAAU,EAAC,EAAE;IACxC,MAAM,GAAC,UAAU,CAAA;AACrB,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B;AACD,2BAA2B;AACpB,MAAM,aAAa,GAAE,CAAC,QAAiB,EAAE,EAAE;IAC9C,MAAM,aAAa,GAAC,MAAM,CAAC,aAAa,CAAA;IACxC,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC;QAC7B,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAC,CAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAE,aAAa,EAAE,qCAAqC,EAAE,MAAM,CAAC,EAC/F,EAAG,KAAK,EAAE,SAAS,GAAE,CAAC,CAAA;QACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAC,CAAC,QAAQ,EAAC,EAAE;YACzB,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAC,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAC,EAAG,KAAK,EAAE,SAAS,EAAC,CAAC,CAAA;YACtF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAC,CAAC,QAAQ,EAAC,EAAE;gBAC1B,QAAQ,EAAE,CAAA;YACd,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;KACL;SAAI;QACD,QAAQ,EAAE,CAAA;KACb;AACL,CAAC,CAAA;AAdY,QAAA,aAAa,iBAczB;AACD,2BAA2B;AACpB,MAAM,aAAa,GAAG,CAAC,QAAiB,EAAE,EAAE;IAC/C,MAAM,cAAc,GAAC,MAAM,CAAC,cAAc,CAAA;IAC1C,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAC;QAC9B,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAC,CAAC,aAAa,EAAC,MAAM,EAAC,cAAc,CAAC,EAAC,EAAG,KAAK,EAAE,SAAS,GAAE,CAAC,CAAA;QACvF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAC,CAAC,QAAQ,EAAC,EAAE;YAC1B,QAAQ,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;KACL;SAAI;QACD,QAAQ,EAAE,CAAA;KACb;AACL,CAAC,CAAA;AAVY,QAAA,aAAa,iBAUzB;AAEM,MAAM,WAAW,GAAG,CAAC,QAAiB,EAAC,EAAE;IAC5C,MAAM,YAAY,GAAE,MAAM,CAAC,aAAa,CAAA;IACxC,GAAG,CAAC,IAAI,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAA;IACpD,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,YAAY,OAAO,CAAC,EAAC;QAItC,IAAA,oBAAI,EAAC,MAAM,YAAY,8WAA8W,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;YACja,mCAAmC;YACnC,IAAG,CAAC,KAAK,EAAC;gBACN,+DAA+D;gBAC/D,qEAAqE;gBACrE,6BAA6B;gBAC7B,+EAA+E;gBAC/E,oEAAoE;gBACpE,kFAAkF;gBAElF,oDAAoD;gBACpD,wEAAwE;gBACxE,qGAAqG;gBACrG,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,GAAC,GAAG,GAAC,GAAG,YAAY,gBAAgB,CAAA;gBACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;gBACtC,QAAQ,CAAC,eAAe,CAAC,eAAe,GAAC,IAAI,CAAA;gBAC7C,QAAQ,CAAC,eAAe,CAAC,iBAAiB,GAAC,IAAI,CAAA;gBAC/C,YAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAEzD,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;gBAClC,QAAQ,EAAE,CAAA;aAEb;iBAAK;gBACN,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACjB,MAAM,KAAK,CAAA;aACV;QACL,CAAC,CAAC,CAAA;KACL;SAAI;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,2CAA2C,CAAC,CAAA;QACpE,QAAQ,EAAE,CAAA;KACb;AACL,CAAC,CAAA;AAtCY,QAAA,WAAW,eAsCvB;AAEM,MAAM,cAAc,GAAI,KAAK,EAAE,QAAQ,EAAC,EAAE;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAE,GAAG,CAAA;IAC9B,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC1B,MAAM,sBAAsB,GAAG,GAAG,SAAS,CAAC,WAAW,WAAW,CAAA;IAClE,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,EAAC,KAAK,EAAC,sBAAsB,EAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG;QACT,MAAM,EAAC,MAAM;KAChB,CAAA;IACD,YAAE,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,UAAU,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAC,OAAO,CAAE,CAAC,YAAY,EAAC,EAAE;QACzF,MAAM,YAAY,GAAG,GAAG,sBAAsB,IAAI,YAAY,EAAE,CAAA;QAChE,MAAM,QAAQ,GAAU,gBAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,MAAM,YAAY,GAAG,GAAG,GAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAC,EAAE,CAAC,CAAA;QAClE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;QAC9C,IAAG,YAAY,IAAI,CAAC,IAAA,eAAU,EAAC,YAAY,CAAC,EAAC;YACzC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAC,YAAY,CAAC,CAAA;YAC3C,IAAA,cAAS,EAAC,YAAY,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,CAAC,CAAA;SAC3C;QACD,IAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAC;YACzB,MAAM,UAAU,GAAE,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,CAAA;YAC5D,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC,aAAa,CAAC,CAAA;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAC,IAAI,CAAC,CAAA;YACzC,6CAA6C;YAC7C,mBAAmB;YACnB,IAAA,kBAAa,EAAC,UAAU,EAAC,GAAG,CAAC,CAAA;SAChC;aAAK,IAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC;YAChC,MAAM,UAAU,GAAE,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAC,EAAE,CAAC,CAAA;YAC7D,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC,aAAa,CAAC,CAAA;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,EAAC,IAAI,CAAC,CAAA;YACzC,IAAG,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAC;gBACvB,IAAA,kBAAa,EAAC,UAAU,EAAC,GAAG,CAAC,CAAA;aAChC;SAEJ;aAAK,IAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC;YAC9B,MAAM,UAAU,GAAE,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAC,EAAE,CAAC,CAAA;YACnD,GAAG,CAAC,IAAI,CAAC,UAAU,EAAC,MAAM,CAAC,CAAA;YAC3B,IAAA,iBAAY,EAAC,YAAY,EAAE,UAAU,CAAC,CAAA;SACzC;IACL,CAAC,CAAC,CAAA;IAEF,MAAM,IAAA,oBAAI,EAAC,yBAAyB,EAAC,GAAE,EAAE;QACrC,QAAQ,EAAE,CAAA;IACd,CAAC,CAAC,CAAA;IAIF,iDAAiD;IACjD,kDAAkD;IAClD,qDAAqD;AAEzD,CAAC,CAAA;AAjDY,QAAA,cAAc,kBAiD1B;AACD,8CAA8C;AACvC,MAAM,WAAW,GAAG,CAAC,QAAiB,EAAC,EAAE;IAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAA;IAC1C,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,YAAY,OAAO,CAAC,EAAC;QACtC,mCAAmC;QACnC,IAAA,oBAAI,EAAC,MAAM,YAAY,kPAAkP,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;YAChS,mBAAmB;YACnB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;YAC9B,IAAA,oBAAI,EAAC,MAAM,YAAY,iXAAiX,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,EAAE;gBACna,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAElC,+DAA+D;gBAC/D,2DAA2D;gBAC3D,8DAA8D;gBAC9D,qEAAqE;gBACrE,mEAAmE;gBACnE,gEAAgE;gBAChE,2DAA2D;gBAC3D,+EAA+E;gBAC/E,yBAAyB;gBACzB,mBAAmB;gBACnB,iEAAiE;gBACjE,yDAAyD;gBACzD,0DAA0D;gBAC1D,qEAAqE;gBACrE,kEAAkE;gBAClE,+CAA+C;gBAC/C,iDAAiD;gBACjD,+DAA+D;gBAC/D,iDAAiD;gBACjD,iEAAiE;gBACjE,uDAAuD;gBACvD,0EAA0E;gBAC1E,0BAA0B;gBAC1B,IAAI;gBAEJ,uDAAuD;gBACvD,wCAAwC;gBACxC,oCAAoC;gBACpC,wCAAwC;gBACxC,mEAAmE;gBACnE,gDAAgD;gBAChD,gCAAgC;gBAChC,uCAAuC;gBACvC,IAAI;gBAGJ,iFAAiF;gBACjF,8BAA8B;gBAC9B,0CAA0C;gBAC1C,2BAA2B;gBAC3B,+BAA+B;gBAC/B,QAAQ;gBACR,0CAA0C;gBAC1C,4EAA4E;gBAC5E,wKAAwK;gBACxK,qDAAqD;gBACrD,QAAQ,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;QAEN,CAAC,CAAC,CAAA;KACT;SAAI;QACD,0BAA0B;QAC1B,QAAQ,EAAE,CAAA;KACb;AACL,CAAC,CAAA;AAhEY,QAAA,WAAW,eAgEvB;AAEM,MAAM,UAAU,GAAG,GAAE,EAAE;IAE1B,IAAA,4BAAoB,GAAE,CAAA;IACtB,IAAA,oBAAI,EAAC,MAAM,MAAM,CAAC,cAAc,kEAAkE,CAAC,CAAA;AAEvG,CAAC,CAAA;AALY,QAAA,UAAU,cAKtB;AACM,MAAM,UAAU,GAAG,GAAE,EAAE;IAC1B,IAAA,oBAAI,EAAC,MAAM,MAAM,CAAC,aAAa,iEAAiE,CAAC,CAAA;AACrG,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACrC,MAAM,UAAU,GAAG,sCAAsC,MAAM,CAAC,aAAa,oBAAoB,MAAM,CAAC,cAAc,4DAA4D,CAAA;IAClL,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACrC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAEpB,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,uBAAuB,EAAC,CAAC,UAAU,EAAC,IAAI,EAAC,GAAG,MAAM,CAAC,aAAa,eAAe,EAAC,IAAI,EAAC,GAAG,MAAM,CAAC,cAAc,6BAA6B,EAAC,IAAI,EAAC,kBAAkB,EAAC,sBAAsB,CAAC,EAAC,EAAG,KAAK,EAAE,SAAS,GAAE,CAAC,CAAA;IACtO,mBAAmB;AACvB,CAAC,CAAA;AAPY,QAAA,oBAAoB,wBAOhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simitgroup/simpleapp-generator",
3
- "version": "1.2.7",
3
+ "version": "1.2.8",
4
4
  "description": "frontend nuxtjs and backend nests code generator using jsonschema",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
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
- <div>
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 .vuecal__split-days-headers {
20
- min-height: 6rem;
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
- #resourceviewcal .normalevent{
33
+
34
+
35
+
36
+ #resourceviewcal .nostudent{
28
37
  background-color: aqua;
29
38
  }
30
-
31
- #resourceviewcal .urgentevent{
32
- background-color: lightcoral;
39
+ #resourceviewcal .full{
40
+ @apply bg-orange-700 text-white
41
+ /* background-color: darkorange; */
42
+ /* color:white; */
33
43
  }
34
-
35
- #resourceviewcal .seminal{
44
+ #resourceviewcal .overlimit{
45
+ background-color: darkred;
46
+ color:white;
47
+ }
48
+ #resourceviewcal .default{
36
49
  background-color: lightblue;
37
50
  }
@@ -56,8 +56,3 @@ input {
56
56
  .btn-warn {
57
57
  @apply btn bg-warning-600 hover:bg-warning-400
58
58
  }
59
-
60
- .simpleapp-input-label{
61
- @apply text-left
62
- }
63
-
@@ -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' : undefined}`
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:{root:{class:['border p-2 w-full max-h-full max-w-full md:h-3/4 lg:h-1/2']},},
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-gray-400 dark:!border-blue-900/40 rounded-lg flex flex-row p-1'},
39
- input:{class:'w-full p-2 font-sans rounded-lg 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'},
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="20 * 60"
8
- :time-step="30"
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,CalRightClickEvent,OffDay,CalResource,CalResourceType,RelocateEvent } from '~/types'
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 emits = defineEmits(['eventRghtClick','eventClick','eventDrop','eventDragNew','viewChange','resourceClick'])
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(isMobile()){
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" :pt="{}">
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 }}&nbsp;</span>
104
+ <span v-if="item.message"> {{ item.message }}&nbsp;</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
- <client-only>
5
- <div class="flex flex-row">
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
- <!-- <div class=" text-right">
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
- </client-only>
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
- <div>
31
- <button class="text-center border-none cursor-pointer" v-if="getCurrentXorg()" @click="visible=true">
32
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
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
- <button v-for="submenu in m.children" class="border rounded-lg p-2" @click="selectMenu(submenu)">
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
- </button>
39
+ </ButtonPrimary>
45
40
  </div>
46
41
 
47
42
  </div>
48
43
 
49
44
  </div>
50
45
  </Dialog>
51
- </div>
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:'Light'},{value:'dark', name:'Dark'}]
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
- <div>
39
- <div class=" w-[120px] truncate ...">
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
- <OverlayPanel :pt="{root:{class:'w w-80'}}" ref="userprofileoverlay">
51
- <div>
52
- <div class="py-2 transition duration-150 ease-in-out z-10 absolute top-0 right-0 bottom-0 left-0" id="modal">
53
- <div role="alert" class="container mx-auto w-full md:w-full max-w-lg">
54
- <div class="relative p-4 md:p-8 bg-white dark:bg-gray-800 shadow-md rounded border border-gray-400">
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().fullName }}</h1>
61
- <p class="text-gray-400 dark:text-gray-100 font-normal text-base tracking-normal ml-2 mr-4">{{getUserProfile().group }}</p>
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
- <Dropdown inputId="pick-theme" v-model="$colorMode.preference" option-value="value" option-label="name" :options="colors" >
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
- </div>
88
+
100
89
  </template>
@@ -1,14 +1,13 @@
1
1
  <template>
2
2
  <div>
3
- <div v-if="withFilter">
4
- <input
5
- autofocus
3
+ <div v-if="withFilter" class="">
4
+ <InputText
6
5
  placeholder="search"
7
6
  v-model="searchvalue"
8
- class="w-full border p-2"
9
- type="search" />
7
+ class="w-full dark:text-white"
8
+ type="search" />
10
9
  </div>
11
- <div class="max-h-screen overflow-auto">
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
  }