From 288a20756dbdad6a418e2a45b71ecfab9d2b4940 Mon Sep 17 00:00:00 2001 From: Buster Neece Date: Fri, 9 Dec 2022 20:53:10 -0600 Subject: [PATCH] Update to Vuelidate 2.x. --- frontend/jsconfig.json | 5 + frontend/npm-shrinkwrap.json | 140 +++++++++------- frontend/package.json | 4 +- .../vue/components/Account/ApiKeyModal.vue | 40 +++-- .../vue/components/Account/ApiKeyNewKey.vue | 12 +- .../Account/ChangePasswordModal.vue | 55 ++++--- frontend/vue/components/Account/EditModal.vue | 44 +++-- .../vue/components/Account/TwoFactorModal.vue | 41 ++--- .../Admin/Backups/ConfigureModal.vue | 30 ++-- .../Admin/Backups/RunBackupModal.vue | 20 +-- .../Admin/Branding/BrandingForm.vue | 30 ++-- .../Admin/CustomFields/EditModal.vue | 13 +- frontend/vue/components/Admin/GeoLite.vue | 10 +- .../Admin/Permissions/EditModal.vue | 22 ++- .../Admin/Permissions/Form/StationForm.vue | 58 ++----- .../Admin/Permissions/Form/StationRow.vue | 82 ++++++++++ frontend/vue/components/Admin/Settings.vue | 64 ++++---- .../Admin/Settings/TestMessageModal.vue | 20 +-- .../components/Admin/Stations/CloneModal.vue | 18 +-- .../components/Admin/Stations/StationForm.vue | 140 +++++++++------- .../Admin/StorageLocations/EditModal.vue | 13 +- .../vue/components/Admin/Users/EditModal.vue | 13 +- .../vue/components/Common/BaseEditModal.vue | 20 +-- .../vue/components/Form/VuelidateError.vue | 15 +- frontend/vue/components/Recover.vue | 14 +- frontend/vue/components/Setup/Register.vue | 16 +- .../Stations/HlsStreams/EditModal.vue | 6 +- .../components/Stations/LiquidsoapConfig.vue | 18 ++- .../components/Stations/Media/EditModal.vue | 28 ++-- .../Stations/Media/NewDirectoryModal.vue | 22 +-- .../components/Stations/Media/RenameModal.vue | 24 +-- .../components/Stations/Mounts/EditModal.vue | 12 +- .../Stations/Playlists/CloneModal.vue | 30 ++-- .../Stations/Playlists/EditModal.vue | 23 +-- .../Stations/Playlists/Form/Schedule.vue | 127 +-------------- .../Stations/Playlists/Form/ScheduleRow.vue | 153 ++++++++++++++++++ .../Stations/Podcasts/EpisodeEditModal.vue | 10 +- .../Stations/Podcasts/PodcastEditModal.vue | 8 +- .../components/Stations/Remotes/EditModal.vue | 8 +- .../Stations/Reports/SoundExchange.vue | 18 +-- .../Stations/SftpUsers/EditModal.vue | 6 +- .../Stations/Streamers/EditModal.vue | 20 +-- .../Stations/Streamers/Form/Schedule.vue | 94 +---------- .../Stations/Streamers/Form/ScheduleRow.vue | 131 +++++++++++++++ .../Stations/Webhooks/EditModal.vue | 8 +- frontend/vue/functions/validatePassword.js | 2 +- 46 files changed, 951 insertions(+), 736 deletions(-) create mode 100644 frontend/jsconfig.json create mode 100644 frontend/vue/components/Admin/Permissions/Form/StationRow.vue create mode 100644 frontend/vue/components/Stations/Playlists/Form/ScheduleRow.vue create mode 100644 frontend/vue/components/Stations/Streamers/Form/ScheduleRow.vue diff --git a/frontend/jsconfig.json b/frontend/jsconfig.json new file mode 100644 index 000000000..8f5ea8a22 --- /dev/null +++ b/frontend/jsconfig.json @@ -0,0 +1,5 @@ +{ + "vueCompilerOptions": { + "target": 2.7 + } +} diff --git a/frontend/npm-shrinkwrap.json b/frontend/npm-shrinkwrap.json index 3fdb73888..fdc970643 100644 --- a/frontend/npm-shrinkwrap.json +++ b/frontend/npm-shrinkwrap.json @@ -16,6 +16,8 @@ "@fullcalendar/luxon2": "^5.10.2", "@fullcalendar/timegrid": "^5.9.0", "@fullcalendar/vue": "^5.9.0", + "@vuelidate/core": "^2.0.0", + "@vuelidate/validators": "^2.0.0", "axios": "^1", "bootstrap": "^4.6.0 <5", "bootstrap-notify": "^3.1.3", @@ -62,12 +64,10 @@ "vue-clipboard2": "^0.3.3", "vue-gettext": "^2.1.12", "vue-loader": "^15 <16", - "vue-template-compiler": "^2.6.14", "vue2-daterange-picker": "^0.6.6", "vue2-leaflet": "^2.7.1", "vue2-leaflet-fullscreen": "^1.0.1", "vuedraggable": "^2.24.1", - "vuelidate": "^0.7.6", "vuex": "^3 <4", "wavesurfer.js": "^6", "webpack": "^5.52.1", @@ -2068,6 +2068,40 @@ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", "optional": true }, + "node_modules/@vuelidate/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.0.tgz", + "integrity": "sha512-xIFgdQlScO0aaSZ0wTGPJh8YcTMNAj5veI8yPgiAyxOT+GV7vNQFiU1vpYWCL4cklkkhYvRRSC2OEX7YOZNmPQ==", + "dependencies": { + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^2.0.0 || >=3.0.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/@vuelidate/validators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.0.tgz", + "integrity": "sha512-fQQcmDWfz7pyH5/JPi0Ng2GEgNK1pUHn/Z/j5rG/Q+HwhgIXvJblTPcZwKOj1ABL7V4UVuGKECvZCDHNGOwdrg==", + "dependencies": { + "vue-demi": "^0.13.11" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^2.0.0 || >=3.0.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3720,11 +3754,6 @@ "type": "^1.0.1" } }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5380,14 +5409,6 @@ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, "node_modules/hls.js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.7.tgz", @@ -9649,6 +9670,31 @@ "clipboard": "^2.0.0" } }, + "node_modules/vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/vue-functional-data-merge": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", @@ -9700,15 +9746,6 @@ "loader-utils": "^1.0.2" } }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "node_modules/vue-template-es2015-compiler": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", @@ -9759,15 +9796,6 @@ "sortablejs": "1.10.2" } }, - "node_modules/vuelidate": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==", - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/vuex": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", @@ -11627,6 +11655,22 @@ "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==", "optional": true }, + "@vuelidate/core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/core/-/core-2.0.0.tgz", + "integrity": "sha512-xIFgdQlScO0aaSZ0wTGPJh8YcTMNAj5veI8yPgiAyxOT+GV7vNQFiU1vpYWCL4cklkkhYvRRSC2OEX7YOZNmPQ==", + "requires": { + "vue-demi": "^0.13.11" + } + }, + "@vuelidate/validators": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@vuelidate/validators/-/validators-2.0.0.tgz", + "integrity": "sha512-fQQcmDWfz7pyH5/JPi0Ng2GEgNK1pUHn/Z/j5rG/Q+HwhgIXvJblTPcZwKOj1ABL7V4UVuGKECvZCDHNGOwdrg==", + "requires": { + "vue-demi": "^0.13.11" + } + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -12907,11 +12951,6 @@ "type": "^1.0.1" } }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==" - }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -14202,11 +14241,6 @@ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==" }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, "hls.js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.2.7.tgz", @@ -17427,6 +17461,12 @@ "clipboard": "^2.0.0" } }, + "vue-demi": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz", + "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==", + "requires": {} + }, "vue-functional-data-merge": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz", @@ -17463,15 +17503,6 @@ "loader-utils": "^1.0.2" } }, - "vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, "vue-template-es2015-compiler": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", @@ -17508,11 +17539,6 @@ "sortablejs": "1.10.2" } }, - "vuelidate": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==" - }, "vuex": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 11e2dd3e7..75701b2dc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,6 +17,8 @@ "@fullcalendar/luxon2": "^5.10.2", "@fullcalendar/timegrid": "^5.9.0", "@fullcalendar/vue": "^5.9.0", + "@vuelidate/core": "^2.0.0", + "@vuelidate/validators": "^2.0.0", "axios": "^1", "bootstrap": "^4.6.0 <5", "bootstrap-notify": "^3.1.3", @@ -63,12 +65,10 @@ "vue-clipboard2": "^0.3.3", "vue-gettext": "^2.1.12", "vue-loader": "^15 <16", - "vue-template-compiler": "^2.6.14", "vue2-daterange-picker": "^0.6.6", "vue2-leaflet": "^2.7.1", "vue2-leaflet-fullscreen": "^1.0.1", "vuedraggable": "^2.24.1", - "vuelidate": "^0.7.6", "vuex": "^3 <4", "wavesurfer.js": "^6", "webpack": "^5.52.1", diff --git a/frontend/vue/components/Account/ApiKeyModal.vue b/frontend/vue/components/Account/ApiKeyModal.vue index fff20fbad..368bf0723 100644 --- a/frontend/vue/components/Account/ApiKeyModal.vue +++ b/frontend/vue/components/Account/ApiKeyModal.vue @@ -6,7 +6,7 @@ - + @@ -26,7 +26,7 @@ Close - Create New Key @@ -36,32 +36,34 @@ diff --git a/frontend/vue/components/Account/ChangePasswordModal.vue b/frontend/vue/components/Account/ChangePasswordModal.vue index a49a92980..785c09f6c 100644 --- a/frontend/vue/components/Account/ChangePasswordModal.vue +++ b/frontend/vue/components/Account/ChangePasswordModal.vue @@ -1,21 +1,21 @@ + diff --git a/frontend/vue/components/Account/EditModal.vue b/frontend/vue/components/Account/EditModal.vue index 813f92340..28c320124 100644 --- a/frontend/vue/components/Account/EditModal.vue +++ b/frontend/vue/components/Account/EditModal.vue @@ -1,34 +1,39 @@ diff --git a/frontend/vue/components/Admin/Settings.vue b/frontend/vue/components/Admin/Settings.vue index 23684d1ee..906f10129 100644 --- a/frontend/vue/components/Admin/Settings.vue +++ b/frontend/vue/components/Admin/Settings.vue @@ -17,28 +17,28 @@ - + - + - + - + - + - @@ -47,7 +47,7 @@ - + Save Changes @@ -58,15 +58,18 @@ diff --git a/frontend/vue/components/Stations/Podcasts/EpisodeEditModal.vue b/frontend/vue/components/Stations/Podcasts/EpisodeEditModal.vue index 8276608d1..da287706e 100644 --- a/frontend/vue/components/Stations/Podcasts/EpisodeEditModal.vue +++ b/frontend/vue/components/Stations/Podcasts/EpisodeEditModal.vue @@ -1,15 +1,15 @@ diff --git a/frontend/vue/components/Stations/Webhooks/EditModal.vue b/frontend/vue/components/Stations/Webhooks/EditModal.vue index 3bff54f0f..1de5a4c6a 100644 --- a/frontend/vue/components/Stations/Webhooks/EditModal.vue +++ b/frontend/vue/components/Stations/Webhooks/EditModal.vue @@ -1,5 +1,5 @@ - + - +