diff --git a/frontend/npm-shrinkwrap.json b/frontend/npm-shrinkwrap.json
index bfa76f2bb..803768e7d 100644
--- a/frontend/npm-shrinkwrap.json
+++ b/frontend/npm-shrinkwrap.json
@@ -27,7 +27,6 @@
"chart.js": "^3.5.1",
"chartjs-adapter-luxon": "^1.1.0",
"chartjs-plugin-zoom": "^1.1.1",
- "clipboard": "^2.0.8",
"codemirror": "^5.62.3",
"css-loader": "^6.5.0",
"del": "^7",
@@ -66,7 +65,6 @@
"vue-axios": "^3.5",
"vue-loader": "^17",
"vue-style-loader": "^4.1.3",
- "vue3-clipboard": "^1.0.0",
"vue3-daterange-picker": "^1",
"vue3-gettext": "^2.3.4",
"vuedraggable": "^2.24.1",
@@ -3549,16 +3547,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/clipboard": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
- "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
- "dependencies": {
- "good-listener": "^1.2.2",
- "select": "^1.1.2",
- "tiny-emitter": "^2.0.0"
- }
- },
"node_modules/cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -4132,11 +4120,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/delegate": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
- "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
- },
"node_modules/detect-file": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
@@ -5247,14 +5230,6 @@
"node": ">= 0.10"
}
},
- "node_modules/good-listener": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
- "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
- "dependencies": {
- "delegate": "^3.1.2"
- }
- },
"node_modules/graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
@@ -8737,11 +8712,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/select": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
- "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
- },
"node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -9436,11 +9406,6 @@
"next-tick": "1"
}
},
- "node_modules/tiny-emitter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
- "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
- },
"node_modules/to-absolute-glob": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
@@ -10159,17 +10124,6 @@
"node": ">=4.0.0"
}
},
- "node_modules/vue3-clipboard": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/vue3-clipboard/-/vue3-clipboard-1.0.0.tgz",
- "integrity": "sha512-GUqKh1oO79xDpq0z+cCv/NDVTpcJGNDzeNgT3PmTdTp/WJh3gcTrDqIYKycKhzMFOtIFJ7hO/+usgyWtT+fNhA==",
- "dependencies": {
- "clipboard": "^2.0.6"
- },
- "peerDependencies": {
- "vue": "^3.0.0"
- }
- },
"node_modules/vue3-daterange-picker": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vue3-daterange-picker/-/vue3-daterange-picker-1.0.1.tgz",
@@ -13233,16 +13187,6 @@
}
}
},
- "clipboard": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz",
- "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==",
- "requires": {
- "good-listener": "^1.2.2",
- "select": "^1.1.2",
- "tiny-emitter": "^2.0.0"
- }
- },
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -13691,11 +13635,6 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
- "delegate": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
- "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw=="
- },
"detect-file": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
@@ -14557,14 +14496,6 @@
"sparkles": "^1.0.0"
}
},
- "good-listener": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
- "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==",
- "requires": {
- "delegate": "^3.1.2"
- }
- },
"graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
@@ -17158,11 +17089,6 @@
"ajv-keywords": "^3.5.2"
}
},
- "select": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
- "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
- },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -17699,11 +17625,6 @@
"next-tick": "1"
}
},
- "tiny-emitter": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
- "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q=="
- },
"to-absolute-glob": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
@@ -18249,14 +18170,6 @@
}
}
},
- "vue3-clipboard": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/vue3-clipboard/-/vue3-clipboard-1.0.0.tgz",
- "integrity": "sha512-GUqKh1oO79xDpq0z+cCv/NDVTpcJGNDzeNgT3PmTdTp/WJh3gcTrDqIYKycKhzMFOtIFJ7hO/+usgyWtT+fNhA==",
- "requires": {
- "clipboard": "^2.0.6"
- }
- },
"vue3-daterange-picker": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/vue3-daterange-picker/-/vue3-daterange-picker-1.0.1.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index a95fcc819..daf2cbc54 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -28,7 +28,6 @@
"chart.js": "^3.5.1",
"chartjs-adapter-luxon": "^1.1.0",
"chartjs-plugin-zoom": "^1.1.1",
- "clipboard": "^2.0.8",
"codemirror": "^5.62.3",
"css-loader": "^6.5.0",
"del": "^7",
@@ -67,7 +66,6 @@
"vue-axios": "^3.5",
"vue-loader": "^17",
"vue-style-loader": "^4.1.3",
- "vue3-clipboard": "^1.0.0",
"vue3-daterange-picker": "^1",
"vue3-gettext": "^2.3.4",
"vuedraggable": "^2.24.1",
diff --git a/frontend/scss/azuracast/overrides/_buttons.scss b/frontend/scss/azuracast/overrides/_buttons.scss
index e9996012f..1dce2a40b 100644
--- a/frontend/scss/azuracast/overrides/_buttons.scss
+++ b/frontend/scss/azuracast/overrides/_buttons.scss
@@ -10,6 +10,14 @@
margin-right: calc($btn-padding-x-sm / 2);
}
+.btn,
+.btn-lg,
+.btn-sm {
+ .material-icons:only-child {
+ margin-right: 0;
+ }
+}
+
.buttons {
& > * {
margin-right: .5rem;
diff --git a/frontend/vue/base.js b/frontend/vue/base.js
index 45b6574f3..0cb277700 100644
--- a/frontend/vue/base.js
+++ b/frontend/vue/base.js
@@ -5,7 +5,6 @@ import gettext from './vendor/gettext';
import {createApp} from "vue";
import useBootstrapVue from "./vendor/bootstrapVue";
import useSweetAlert from "./vendor/sweetalert";
-import useVueClipboard from "~/vendor/clipboard";
export default function (component, options) {
return function (el, props) {
@@ -81,9 +80,6 @@ export default function (component, options) {
/* SweetAlert */
useSweetAlert(vueApp);
- /* Clipboard */
- useVueClipboard(vueApp);
-
vueApp.mount(el);
};
}
diff --git a/frontend/vue/components/Common/CopyToClipboardButton.vue b/frontend/vue/components/Common/CopyToClipboardButton.vue
index f9a750b6c..3d1ccc435 100644
--- a/frontend/vue/components/Common/CopyToClipboardButton.vue
+++ b/frontend/vue/components/Common/CopyToClipboardButton.vue
@@ -1,13 +1,14 @@
-
diff --git a/frontend/vue/components/Common/StreamingLogModal.vue b/frontend/vue/components/Common/StreamingLogModal.vue
index be2f0f7ed..d506135de 100644
--- a/frontend/vue/components/Common/StreamingLogModal.vue
+++ b/frontend/vue/components/Common/StreamingLogModal.vue
@@ -1,5 +1,6 @@
-
+
@@ -13,39 +14,35 @@
-
diff --git a/frontend/vue/components/Stations/Queue/LogsModal.vue b/frontend/vue/components/Stations/Queue/LogsModal.vue
index f564d4735..7baa6bb9c 100644
--- a/frontend/vue/components/Stations/Queue/LogsModal.vue
+++ b/frontend/vue/components/Stations/Queue/LogsModal.vue
@@ -1,5 +1,5 @@
-
+
@@ -13,38 +13,34 @@
-
diff --git a/frontend/vue/vendor/clipboard.js b/frontend/vue/vendor/clipboard.js
deleted file mode 100644
index 57ae70f55..000000000
--- a/frontend/vue/vendor/clipboard.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import VueClipboard, {copyText} from 'vue3-clipboard';
-
-export function copyToClipboard(text) {
- copyText(
- text,
- undefined,
- (error) => {
- if (error) {
- console.error(error)
- }
- }
- );
-}
-
-export default function useVueClipboard(vueApp) {
- vueApp.use(
- VueClipboard,
- {
- autoSetContainer: true,
- appendToBody: true,
- }
- );
-};