diff --git a/.eslintrc.js b/.eslintrc.js index ff00609..df432eb 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,14 @@ module.exports = { - rules: { - 'no-console': 'off', - }, -}; + env: { + node: true, + }, + extends: [ + "eslint:recommended", + "plugin:vue/vue3-recommended", + "prettier", + ], + rules: { + // override/add rules settings here, such as: + // 'vue/no-unused-vars': 'error' + } +} diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..a2065a9 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "bracketSpacing": true, + "bracketSameLine": false, + "semi": false, + "singleQuote": true, + "singleAttributePerLine": true, + "printWidth": 160 +} diff --git a/package.json b/package.json index f002d50..157d982 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,19 @@ { "license": "agpl", "private": true, + "module": true, "scripts": { - "build": "NODE_ENV=production ./node_modules/.bin/webpack-cli --progress --config webpack.js", - "dev": "NODE_ENV=development ./node_modules/.bin/webpack-cli --progress --config webpack.js", - "watch": "NODE_ENV=development ./node_modules/.bin/webpack-cli --progress --watch --config webpack.js", + "build": "NODE_ENV=production ./node_modules/.bin/webpack-cli --progress --config webpack.config.js", + "dev": "NODE_ENV=development ./node_modules/.bin/webpack-cli --progress --config webpack.config.js", + "watch": "NODE_ENV=development ./node_modules/.bin/webpack-cli --progress --watch --config webpack.config.js", "lint": "./node_modules/.bin/eslint --ext .js,.vue src", "lint:fix": "./node_modules/.bin/eslint --ext .js,.vue src --fix", "stylelint": "./node_modules/.bin/stylelint src", "stylelint:fix": "./node_modules/.bin/stylelint src --fix" }, "dependencies": { - "@nextcloud/axios": "^2.5.1", - "@nextcloud/browserslist-config": "^3.0.1", - "@nextcloud/event-bus": "^3.3.1", - "@nextcloud/initial-state": "^2.2.0", - "@nextcloud/l10n": "^3.1.0", - "@nextcloud/vue": "^8.19.0", - "@vueuse/core": "^11.1.0", - "axios": "^1.6.7", - "trim": "^1.0.1" + "@nextcloud/vue": "^8.23.0", + "vue": "^3.5.13" }, "browserslist": [ "extends @nextcloud/browserslist-config" @@ -28,46 +22,30 @@ "node": ">=16.0.0" }, "devDependencies": { - "@babel/node": "^7.25.7", - "@babel/plugin-transform-private-methods": "^7.25.7", - "@babel/preset-typescript": "^7.24.7", - "@cypress/vue2": "^2.1.1", - "@cypress/webpack-preprocessor": "^6.0.2", - "@nextcloud/babel-config": "^1.2.0", - "@nextcloud/eslint-config": "^8.4.1", - "@nextcloud/stylelint-config": "^3.0.1", - "@nextcloud/typings": "^1.9.1", - "@nextcloud/webpack-vue-config": "^6.0.1", - "@simplewebauthn/types": "^10.0.0", - "@types/dockerode": "^3.3.29", - "@types/wait-on": "^5.3.4", - "@vue/tsconfig": "^0.5.1", - "babel-loader": "^9.2.1", - "babel-loader-exclude-node-modules-except": "^1.2.1", - "babel-plugin-module-resolver": "^5.0.2", - "colord": "^2.9.3", - "eslint-plugin-cypress": "^3.5.0", - "eslint-plugin-es": "^4.1.0", - "exports-loader": "^5.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@nextcloud/axios": "^2.5.1", + "@nextcloud/browserslist-config": "^3.0.1", + "@nextcloud/event-bus": "^3.3.1", + "@nextcloud/initial-state": "^2.2.0", + "@nextcloud/l10n": "^3.1.0", + "@symfony/webpack-encore": "^5.1.0", + "babel-loader": "^9.1.3", + "css-loader": "^7.1.2", + "eslint": "^9.19.0", + "eslint-config-prettier": "^10.0.1", + "eslint-plugin-vue": "^9.32.0", "file-loader": "^6.2.0", - "handlebars-loader": "^1.7.3", - "jasmine-core": "~2.5.2", - "jasmine-sinon": "^0.4.0", - "jsdoc": "^4.0.2", - "raw-loader": "^4.0.2", - "sass": "^1.79.3", - "stylelint": "^16.9.0", - "stylelint-use-logical": "^2.1.2", - "ts-loader": "^9.5.0", - "ts-node": "^10.9.1", - "tslib": "^2.7.0", - "typescript": "^5.6.2", - "vue-loader": "^15.9.8", - "vue-template-compiler": "^2.7.16", - "wait-on": "^8.0.1", + "mini-css-extract-plugin": "^2.9.1", + "postcss-loader": "^8.1.1", + "prettier": "3.4.2", + "sass": "^1.78.0", + "sass-loader": "^16.0.1", + "source-map-loader": "^5.0.0", + "style-loader": "^4.0.0", + "vue-loader": "^17.4.2", + "vue-router": "^4.4.5", "webpack": "^5.94.0", - "webpack-cli": "^5.0.2", - "webpack-merge": "^6.0.1", - "workbox-webpack-plugin": "^7.1.0" + "webpack-cli": "^5.1.4", + "webpack-notifier": "^1.15.0" } } diff --git a/src/AdminCategoriesCustom.vue b/src/components/AdminCategoriesCustom.vue similarity index 100% rename from src/AdminCategoriesCustom.vue rename to src/components/AdminCategoriesCustom.vue diff --git a/src/AppMenu.vue b/src/components/AppMenu.vue similarity index 100% rename from src/AppMenu.vue rename to src/components/AppMenu.vue diff --git a/src/AppSearch.vue b/src/components/AppSearch.vue similarity index 100% rename from src/AppSearch.vue rename to src/components/AppSearch.vue diff --git a/src/CloserButton.vue b/src/components/CloserButton.vue similarity index 100% rename from src/CloserButton.vue rename to src/components/CloserButton.vue diff --git a/src/Loader.vue b/src/components/Loader.vue similarity index 100% rename from src/Loader.vue rename to src/components/Loader.vue diff --git a/src/Logo.vue b/src/components/Logo.vue similarity index 100% rename from src/Logo.vue rename to src/components/Logo.vue diff --git a/src/OpenerButton.vue b/src/components/OpenerButton.vue similarity index 100% rename from src/OpenerButton.vue rename to src/components/OpenerButton.vue diff --git a/src/SettingsButton.vue b/src/components/SettingsButton.vue similarity index 100% rename from src/SettingsButton.vue rename to src/components/SettingsButton.vue diff --git a/src/SideMenuApp.vue b/src/components/SideMenuApp.vue similarity index 100% rename from src/SideMenuApp.vue rename to src/components/SideMenuApp.vue diff --git a/src/SideMenuBigApp.vue b/src/components/SideMenuBigApp.vue similarity index 55% rename from src/SideMenuBigApp.vue rename to src/components/SideMenuBigApp.vue index a0fcdde..2e8adb0 100644 --- a/src/SideMenuBigApp.vue +++ b/src/components/SideMenuBigApp.vue @@ -15,38 +15,35 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see . --> - diff --git a/src/SideMenu.js b/src/menu.js similarity index 98% rename from src/SideMenu.js rename to src/menu.js index 22ac3f5..a220e59 100644 --- a/src/SideMenu.js +++ b/src/menu.js @@ -15,7 +15,6 @@ * along with this program. If not, see . */ -import Vue from 'vue' import AppMenu from './AppMenu.vue' import SideMenu from './SideMenu.vue' import SideMenuBig from './SideMenuBig.vue' diff --git a/src/menus/AppMenu.vue b/src/menus/AppMenu.vue new file mode 100644 index 0000000..9558eb5 --- /dev/null +++ b/src/menus/AppMenu.vue @@ -0,0 +1,393 @@ + + + + + + + + diff --git a/src/SideMenu.vue b/src/menus/SideMenu.vue similarity index 100% rename from src/SideMenu.vue rename to src/menus/SideMenu.vue diff --git a/src/SideMenuBig.vue b/src/menus/SideMenuBig.vue similarity index 100% rename from src/SideMenuBig.vue rename to src/menus/SideMenuBig.vue diff --git a/src/SideMenuWithCategories.vue b/src/menus/SideMenuWithCategories.vue similarity index 98% rename from src/SideMenuWithCategories.vue rename to src/menus/SideMenuWithCategories.vue index 07530a8..6997e1a 100644 --- a/src/SideMenuWithCategories.vue +++ b/src/menus/SideMenuWithCategories.vue @@ -52,7 +52,7 @@ along with this program. If not, see . -