diff --git a/changelog.d/emoji-upload.-zip.add b/changelog.d/emoji-upload.-zip.add new file mode 100644 index 000000000..798720eef --- /dev/null +++ b/changelog.d/emoji-upload.-zip.add @@ -0,0 +1 @@ +Added a way to upload new packs from a URL or ZIP file via the admin-fe diff --git a/package.json b/package.json index eea94a10e..62164fe61 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "lint-fix": "eslint --fix src test/unit/specs test/e2e/specs" }, "dependencies": { - "@babel/runtime": "7.27.1", + "@babel/runtime": "7.28.2", "@chenfengyuan/vue-qrcode": "2.0.0", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", @@ -54,10 +54,10 @@ "vuex": "4.1.0" }, "devDependencies": { - "@babel/core": "7.27.1", - "@babel/eslint-parser": "7.27.1", - "@babel/plugin-transform-runtime": "7.27.1", - "@babel/preset-env": "7.27.2", + "@babel/core": "7.28.0", + "@babel/eslint-parser": "7.28.0", + "@babel/plugin-transform-runtime": "7.28.0", + "@babel/preset-env": "7.28.0", "@babel/register": "7.27.1", "@ungap/event-target": "0.2.4", "@vitejs/plugin-vue": "^5.2.1", @@ -70,13 +70,13 @@ "@vue/test-utils": "2.4.6", "autoprefixer": "10.4.21", "babel-plugin-lodash": "3.3.4", - "chai": "5.2.0", + "chai": "5.2.1", "chalk": "5.4.1", "chromedriver": "135.0.4", "connect-history-api-fallback": "2.0.0", "cross-spawn": "7.0.6", "custom-event-polyfill": "1.0.7", - "eslint": "9.26.0", + "eslint": "9.33.0", "vue-eslint-parser": "10.1.3", "eslint-config-standard": "17.1.0", "eslint-formatter-friendly": "7.0.0", @@ -91,9 +91,9 @@ "iso-639-1": "3.1.5", "lodash": "4.17.21", "msw": "2.10.2", - "nightwatch": "3.12.1", + "nightwatch": "3.12.2", "playwright": "1.52.0", - "postcss": "8.5.3", + "postcss": "8.5.6", "postcss-html": "^1.5.0", "postcss-scss": "^4.0.6", "sass": "1.89.2", diff --git a/src/components/settings_modal/admin_tabs/emoji_tab.js b/src/components/settings_modal/admin_tabs/emoji_tab.js index 7f575bcb4..a315756e8 100644 --- a/src/components/settings_modal/admin_tabs/emoji_tab.js +++ b/src/components/settings_modal/admin_tabs/emoji_tab.js @@ -32,7 +32,10 @@ const EmojiTab = { newPackName: '', deleteModalVisible: false, remotePackInstance: '', - remotePackDownloadAs: '' + remotePackDownloadAs: '', + + remotePackURL: '', + remotePackFile: null } }, @@ -220,7 +223,7 @@ const EmojiTab = { .then(data => data.json()) .then(resp => { if (resp === 'ok') { - this.$refs.dlPackPopover.hidePopover() + this.$refs.downloadPackPopover.hidePopover() return this.refreshPackList() } else { @@ -232,6 +235,47 @@ const EmojiTab = { this.remotePackDownloadAs = '' }) }, + downloadRemoteURLPack () { + this.$store.state.api.backendInteractor.downloadRemoteEmojiPackZIP({ + url: this.remotePackURL, packName: this.newPackName + }) + .then(data => data.json()) + .then(resp => { + if (resp === 'ok') { + this.$refs.additionalRemotePopover.hidePopover() + + return this.refreshPackList() + } else { + this.displayError(resp.error) + return Promise.reject(resp) + } + }).then(() => { + this.packName = this.newPackName + this.newPackName = '' + this.remotePackURL = '' + }) + }, + downloadRemoteFilePack () { + this.$store.state.api.backendInteractor.downloadRemoteEmojiPackZIP({ + file: this.remotePackFile[0], packName: this.newPackName + }) + .then(data => data.json()) + .then(resp => { + if (resp === 'ok') { + this.$refs.additionalRemotePopover.hidePopover() + + return this.refreshPackList() + } else { + this.displayError(resp.error) + return Promise.reject(resp) + } + }).then(() => { + this.packName = this.newPackName + this.newPackName = '' + this.remotePackURL = '' + }) + }, + displayError (msg) { useInterfaceStore().pushGlobalNotice({ messageKey: 'admin_dash.emoji.error', diff --git a/src/components/settings_modal/admin_tabs/emoji_tab.vue b/src/components/settings_modal/admin_tabs/emoji_tab.vue index 4bf64c921..333ff8b0e 100644 --- a/src/components/settings_modal/admin_tabs/emoji_tab.vue +++ b/src/components/settings_modal/admin_tabs/emoji_tab.vue @@ -62,6 +62,64 @@ +

{{ $t('admin_dash.emoji.emoji_packs') }}

@@ -240,12 +298,12 @@ v-if="pack.remote !== undefined" class="button button-default btn" type="button" - @click="$refs.dlPackPopover.showPopover" + @click="$refs.downloadPackPopover.showPopover" > {{ $t('admin_dash.emoji.download_pack') }}