Skip to content

Commit

Permalink
feat: new UI for groups administration (#575)
Browse files Browse the repository at this point in the history
* feat: grous table added, with group removal

* feat: group dialog to add and edit groups
  • Loading branch information
ymarcon authored Jan 2, 2025
1 parent d826d58 commit ea31cb4
Show file tree
Hide file tree
Showing 36 changed files with 800 additions and 484 deletions.
6 changes: 1 addition & 5 deletions agate-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,4 @@ npm run build

### Customize the configuration

See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).

### CORS Setting during development

Add `cors.allowed=http://localhost:9000` in `Agate_HOME/config/Agate-config.properties` to make sure REST calls do not fail.
See [Configuring quasar.config.ts](https://quasar.dev/quasar-cli-vite/quasar-config-file).
47 changes: 22 additions & 25 deletions agate-ui/eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import js from '@eslint/js'
import globals from 'globals'
import pluginVue from 'eslint-plugin-vue'
import pluginQuasar from '@quasar/app-vite/eslint'
import vueTsEslintConfig from '@vue/eslint-config-typescript'
import prettierSkipFormatting from '@vue/eslint-config-prettier/skip-formatting'
import js from '@eslint/js';
import globals from 'globals';
import pluginVue from 'eslint-plugin-vue';
import pluginQuasar from '@quasar/app-vite/eslint';
import vueTsEslintConfig from '@vue/eslint-config-typescript';
import prettierSkipFormatting from '@vue/eslint-config-prettier/skip-formatting';

export default [
{
Expand All @@ -23,8 +23,8 @@ export default [
'/node_modules',
'.eslintrc.js',
'/src-ssr',
'/quasar.config.*.temporary.compiled*'
]
'/quasar.config.*.temporary.compiled*',
],
},

...pluginQuasar.configs.recommended(),
Expand All @@ -42,7 +42,7 @@ export default [
* pluginVue.configs["flat/recommended"]
* -> Above, plus rules to enforce subjective community defaults to ensure consistency.
*/
...pluginVue.configs[ 'flat/essential' ],
...pluginVue.configs['flat/essential'],

// https://github.com/vuejs/eslint-config-typescript
...vueTsEslintConfig({
Expand All @@ -51,13 +51,13 @@ export default [
// https://typescript-eslint.io/users/configs#recommended-configurations
extends: [
// By default, only the recommended rules are enabled.
'recommended'
'recommended',
// You can also manually enable the stylistic rules.
// "stylistic",

// Other utility configurations, such as 'eslintRecommended', (note that it's in camelCase)
// are also extendable here. But we don't recommend using them directly.
]
],
}),

{
Expand All @@ -73,31 +73,28 @@ export default [
cordova: 'readonly',
Capacitor: 'readonly',
chrome: 'readonly', // BEX related
browser: 'readonly' // BEX related
}
browser: 'readonly', // BEX related
},
},

// add your custom rules here
rules: {
'prefer-promise-reject-errors': 'off',
'@typescript-eslint/consistent-type-imports': [
'error',
{ prefer: 'type-imports' }
],
'@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports' }],

// allow debugger during development only
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
}
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
},
},

{
files: [ 'src-pwa/custom-service-worker.ts' ],
files: ['src-pwa/custom-service-worker.ts'],
languageOptions: {
globals: {
...globals.serviceworker
}
}
...globals.serviceworker,
},
},
},

prettierSkipFormatting
]
prettierSkipFormatting,
];
2 changes: 1 addition & 1 deletion agate-ui/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<title><%= productName %></title>
Expand Down
10 changes: 5 additions & 5 deletions agate-ui/postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// https://github.com/michael-ciniawsky/postcss-load-config

import autoprefixer from 'autoprefixer'
import autoprefixer from 'autoprefixer';
// import rtlcss from 'postcss-rtlcss'

export default {
Expand All @@ -15,8 +15,8 @@ export default {
'last 4 Android versions',
'last 4 ChromeAndroid versions',
'last 4 FirefoxAndroid versions',
'last 4 iOS versions'
]
'last 4 iOS versions',
],
}),

// https://github.com/elchininet/postcss-rtlcss
Expand All @@ -25,5 +25,5 @@ export default {
// 2. optionally set quasar.config.js > framework > lang to an RTL language
// 3. uncomment the following line (and its import statement above):
// rtlcss()
]
}
],
};
96 changes: 48 additions & 48 deletions agate-ui/quasar.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,10 @@ export default defineConfig((ctx) => {
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli-vite/boot-files
boot: [
'i18n',
'api'
],
boot: ['i18n', 'api'],

// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#css
css: [
'app.scss'
],
css: ['app.scss'],

// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
Expand All @@ -39,13 +34,13 @@ export default defineConfig((ctx) => {
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#build
build: {
target: {
browser: [ 'es2022', 'firefox115', 'chrome115', 'safari14' ],
node: 'node20'
browser: ['es2022', 'firefox115', 'chrome115', 'safari14'],
node: 'node20',
},

typescript: {
strict: true,
vueShim: true
vueShim: true,
// extendTsConfig (tsConfig) {}
},

Expand Down Expand Up @@ -85,35 +80,42 @@ export default defineConfig((ctx) => {
},
},
],

['@intlify/unplugin-vue-i18n/vite', {
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
// compositionOnly: false,

// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
// you need to set `runtimeOnly: false`
runtimeOnly: false,

ssr: ctx.modeName === 'ssr',

// you need to set i18n resource including paths !
include: [ fileURLToPath(new URL('./src/i18n', import.meta.url)) ]
}],

['vite-plugin-checker', {
vueTsc: true,
eslint: {
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
useFlatConfig: true
}
}, { server: false }]
]

[
'@intlify/unplugin-vue-i18n/vite',
{
// if you want to use Vue I18n Legacy API, you need to set `compositionOnly: false`
// compositionOnly: false,

// if you want to use named tokens in your Vue I18n messages, such as 'Hello {name}',
// you need to set `runtimeOnly: false`
runtimeOnly: false,

ssr: ctx.modeName === 'ssr',

// you need to set i18n resource including paths !
include: [fileURLToPath(new URL('./src/i18n', import.meta.url))],
},
],

[
'vite-plugin-checker',
{
vueTsc: true,
eslint: {
lintCommand: 'eslint -c ./eslint.config.js "./src*/**/*.{ts,js,mjs,cjs,vue}"',
useFlatConfig: true,
},
},
{ server: false },
],
],
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#devserver
devServer: {
// https: true,
open: false // opens browser window automatically
open: false, // opens browser window automatically
},

// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file#framework
Expand All @@ -131,7 +133,7 @@ export default defineConfig((ctx) => {
// directives: [],

// Quasar plugins
plugins: ['AppFullscreen', 'Notify', 'LocalStorage', 'LoadingBar']
plugins: ['AppFullscreen', 'Notify', 'LocalStorage', 'LoadingBar'],
},

// animations: 'all', // --- includes all animations
Expand All @@ -154,10 +156,10 @@ export default defineConfig((ctx) => {
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
ssr: {
prodPort: 3000, // The default port that the production server should use
// (gets superseded if process.env.PORT is specified at runtime)
// (gets superseded if process.env.PORT is specified at runtime)

middlewares: [
'render' // keep this as last one
'render', // keep this as last one
],

// extendPackageJson (json) {},
Expand All @@ -168,7 +170,7 @@ export default defineConfig((ctx) => {
// manualStoreHydration: true,
// manualPostHydrationTrigger: true,

pwa: false
pwa: false,
// pwaOfflineHtmlFilename: 'offline.html', // do NOT use index.html as name!

// pwaExtendGenerateSWOptions (cfg) {},
Expand All @@ -177,7 +179,7 @@ export default defineConfig((ctx) => {

// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
pwa: {
workboxMode: 'GenerateSW' // 'GenerateSW' or 'InjectManifest'
workboxMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
// swFilename: 'sw.js',
// manifestFilename: 'manifest.json',
// extendManifestJson (json) {},
Expand All @@ -195,7 +197,7 @@ export default defineConfig((ctx) => {

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
capacitor: {
hideSplashscreen: true
hideSplashscreen: true,
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
Expand All @@ -206,7 +208,7 @@ export default defineConfig((ctx) => {
// extendPackageJson (json) {},

// Electron preload scripts (if any) from /src-electron, WITHOUT file extension
preloadScripts: [ 'electron-preload' ],
preloadScripts: ['electron-preload'],

// specify the debugging port to use for the Electron app when running in development mode
inspectPort: 5858,
Expand All @@ -215,22 +217,20 @@ export default defineConfig((ctx) => {

packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options

// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',

// Windows only
// win32metadata: { ... }
},

builder: {
// https://www.electron.build/configuration/configuration

appId: 'quasar-project'
}
appId: 'quasar-project',
},
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
Expand All @@ -246,7 +246,7 @@ export default defineConfig((ctx) => {
*
* @example [ 'my-script.ts', 'sub-folder/my-other-script.js' ]
*/
extraScripts: []
}
}
extraScripts: [],
},
};
});
Loading

0 comments on commit ea31cb4

Please sign in to comment.