diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bbcaf76 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright 2021 Tim Gröger | Flaschengeist Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index e747fa0..3fc156b 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,62 @@ -# Flaschengeist (flaschengeist-frontend) +# Flaschengeist (frontend) -Dynamischen Managementsystem für Studentenclubs +Modular student club administration system, licensed under the MIT license. + +## Installation + +### Install the dependencies -## Install the dependencies ```bash yarn install ``` -## Plugins -### Build a Plugin +### Configure Plugins + +You can activate and deactive Plugins in `src/boot/plugins.ts`. +You have to set the name of the Plugin into `config.loadModules`. + +### Build the application + +```bash +yarn quasar build +``` + +## Development + +### Icons used + +We are using the `mdi-v5` icon set, so feel free to use any icon from it. +A list can be found [here](https://materialdesignicons.com/) + +### Commands useful for development + +#### Start the app in development mode + +Provides hot-code reloading, error reporting, etc. + +```bash +yarn quasar dev +``` + +#### File linting + +```bash +yarn run lint +``` + +### Plugins + +#### Build a Plugin + A Flaschengeist-Frontend-Plugin should be placed in `src/plugins`. It needs a `plugin.ts` File which exports a plugin with the following interface: + ``` name: string; mainRoutes?: PluginRouteConfig[]; outRoutes?: PluginRouteConfig[]; -store?: Map>; requiredModules: string[]; version: string; ``` You have to import `FG_Plugin` from `plugins.d.ts`. - -### Configure Plugin - -You can activate and deactive Plugins in `src/boot/plugins.ts`. You have to set the name of the Plugin into `config.loadModules`. -The order of the plugins is importend! - -### Start the app in development mode (hot-code reloading, error reporting, etc.) -```bash -yarn quasar dev -``` - -### Lint the files -```bash -yarn run lint -``` - -### Build the app for production -```bash -yarn quasar build -``` - diff --git a/package.json b/package.json index d581d06..90ab217 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,15 @@ { - "name": "flaschengeist-frontend", - "version": "0.1.0-alpha.1", - "description": "Dynamischen Managementsystem für Studentenclubs", - "productName": "Flaschengeist", - "author": "Tim Gröger ", "private": true, + "license": "MIT", + "version": "2.0.0-alpha.1", + "productName": "Flaschengeist", + "name": "flaschengeist-frontend", + "author": "Tim Gröger ", + "homepage": "https://flaschengeist.dev/Flaschengeist", + "description": "Modular student club administration system", + "bugs": { + "url" : "https://flaschengeist.dev/Flaschengeist/flaschengeist-frontend/issues" + }, "scripts": { "format": "prettier --config ./package.json --write '{,!(node_modules)/**/}*.ts'", "lint": "eslint --ext .js,.ts,.vue ./src" @@ -12,32 +17,31 @@ "dependencies": { "axios": "^0.21.1", "cordova": "^10.0.0", - "core-js": "^3.9.1", - "pinia": "^2.0.0-alpha.7", + "pinia": "^2.0.0-alpha.10", "quasar": "^2.0.0-beta.11" }, + "devDependencies": { + "@quasar/app": "^3.0.0-beta.10", + "@quasar/extras": "^1.10.2", + "@quasar/quasar-app-extension-qcalendar": "file:deps/quasar-ui-qcalendar/app-extension", + "@types/node": "^12.20.7", + "@types/webpack": "^4.41.27", + "@types/webpack-env": "^1.16.0", + "@typescript-eslint/eslint-plugin": "^4.20.0", + "@typescript-eslint/parser": "^4.20.0", + "eslint": "^7.23.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-vue": "^7.8.0", + "eslint-webpack-plugin": "^2.5.3", + "prettier": "^2.2.1", + "typescript": "^4.2.3" + }, "prettier": { "singleQuote": true, "semi": true, "printWidth": 100, "arrowParens": "always" }, - "devDependencies": { - "@quasar/app": "^3.0.0-beta.10", - "@quasar/extras": "^1.10.0", - "@quasar/quasar-app-extension-qcalendar": "file:deps/quasar-ui-qcalendar/app-extension", - "@types/node": "^12.20.6", - "@types/webpack": "^4.41.26", - "@types/webpack-env": "^1.16.0", - "@typescript-eslint/eslint-plugin": "^4.18.0", - "@typescript-eslint/parser": "^4.18.0", - "eslint": "^7.22.0", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-vue": "^7.7.0", - "eslint-webpack-plugin": "^2.5.2", - "prettier": "^2.2.1", - "typescript": "^4.2.3" - }, "browserslist": [ "last 10 Chrome versions", "last 10 Firefox versions", diff --git a/quasar.conf.js b/quasar.conf.js index 4fe8d42..7acb450 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -37,16 +37,16 @@ module.exports = configure(function (/* ctx */) { // https://github.com/quasarframework/quasar/tree/dev/extras extras: [ - // 'ionicons-v4', - 'mdi-v5', - // 'fontawesome-v5', // 'eva-icons', - // 'themify', + // 'fontawesome-v5', + // 'ionicons-v4', // 'line-awesome', + // 'material-icons', + 'mdi-v5', + // 'themify', + // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! - 'roboto-font', // optional, you are not bound to it - 'material-icons', // optional, you are not bound to it ], // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build @@ -74,7 +74,7 @@ module.exports = configure(function (/* ctx */) { chainWebpack (chain) { chain.plugin('eslint-webpack-plugin') .use(ESLintPlugin, [{ - extensions: [ 'js', 'vue' ], + extensions: [ 'ts', 'js', 'vue' ], exclude: 'node_modules' }]) }, @@ -90,7 +90,7 @@ module.exports = configure(function (/* ctx */) { // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework framework: { - iconSet: 'material-icons', // Quasar icon set + iconSet: 'mdi-v5', // Quasar icon set lang: 'de', // Quasar language pack config: { dark: 'auto', @@ -134,7 +134,7 @@ module.exports = configure(function (/* ctx */) { manifest: { name: 'Flaschengeist', short_name: 'Flaschengeist', - description: 'Dynamischen Managementsystem für Studentenclubs', + description: 'Modular student club administration system', display: 'standalone', orientation: 'portrait', background_color: '#ffffff', diff --git a/src/components/utils/IsoDateInput.vue b/src/components/utils/IsoDateInput.vue index 2fff921..2e83d55 100644 --- a/src/components/utils/IsoDateInput.vue +++ b/src/components/utils/IsoDateInput.vue @@ -7,10 +7,11 @@ :placeholder="placeholder" :rules="customRules" :clearable="clearable" + v-bind="attrs" @clear="dateTime = ''" >