From 9bc103042b4c515ce0b73dfba0f68b70b35c2ae0 Mon Sep 17 00:00:00 2001 From: Angelina Filippova <linakirsanova@gmail.com> Date: Mon, 7 Oct 2019 03:09:53 +0300 Subject: [PATCH] Add form for uploading new emoji --- src/lang/en.js | 11 +- src/views/emojiPacks/components/EmojiPack.vue | 12 +- .../components/NewEmojiUploader.vue | 129 +++++++++--------- src/views/emojiPacks/index.vue | 4 +- 4 files changed, 85 insertions(+), 71 deletions(-) diff --git a/src/lang/en.js b/src/lang/en.js index a84a4ec3..1250f0df 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -330,7 +330,16 @@ export default { license: 'License', fallbackSrc: 'Fallback source', fallbackSrcSha: 'Fallback source SHA', - savePackMetadata: 'Save pack metadata' + savePackMetadata: 'Save pack metadata', + addNewEmoji: 'Add new emoji to the pack', + shortcode: 'Shortcode', + uploadFile: 'Upload a file', + customFilename: 'Custom filename', + optional: 'optional', + customFilenameDesc: 'Custom file name (optional)', + url: 'URL', + required: 'required', + clickToUpload: 'Click to upload' }, invites: { inviteTokens: 'Invite tokens', diff --git a/src/views/emojiPacks/components/EmojiPack.vue b/src/views/emojiPacks/components/EmojiPack.vue index 71708ee3..5003a61c 100644 --- a/src/views/emojiPacks/components/EmojiPack.vue +++ b/src/views/emojiPacks/components/EmojiPack.vue @@ -1,6 +1,6 @@ <template> <el-collapse-item :title="name" :name="name"> - <el-form label-width="120px" size="small"> + <el-form label-width="120px" label-position="left" size="small"> <el-form-item :label="$t('settings.sharePack')"> <el-switch v-model="share" :disabled="!isLocal" /> </el-form-item> @@ -29,6 +29,11 @@ <el-button v-if="isLocal" type="primary" @click="savePackMetadata">{{ $t('settings.savePackMetadata') }}</el-button> </el-form-item> </el-form> + <el-collapse v-model="showPackContent" class="contents-collapse"> + <el-collapse-item :name="name" title="Show pack contents"> + <new-emoji-uploader v-if="isLocal" :pack-name="name"/> + </el-collapse-item> + </el-collapse> </el-collapse-item> </template> @@ -38,6 +43,9 @@ } .el-collapse-item__header { height: 36px; + font-size: 14px; + font-weight: 700; + color: #606266; } .emoji-pack-card { margin-top: 5px; @@ -72,7 +80,7 @@ export default { data() { return { - shownPackEmoji: [], + showPackContent: [], downloadSharedAs: '' } }, diff --git a/src/views/emojiPacks/components/NewEmojiUploader.vue b/src/views/emojiPacks/components/NewEmojiUploader.vue index d62011de..0770e332 100644 --- a/src/views/emojiPacks/components/NewEmojiUploader.vue +++ b/src/views/emojiPacks/components/NewEmojiUploader.vue @@ -1,49 +1,53 @@ <template> - <div> - <h4>Add new emoji to the pack</h4> - - <el-row :gutter="20"> - <el-col :span="4" class="new-emoji-col"> - <el-input v-model="shortcode" placeholder="Shortcode" /> - </el-col> - - <el-col :span="8"> - <div> - <h5>Upload a file</h5> - </div> - File name - <el-input v-model="customFileName" size="mini" placeholder="Custom file name (optional)"/> - <input ref="fileUpload" type="file" accept="image/*" > - - <div class="or"> - or - </div> - - <div> - <h5>Enter a URL</h5> - </div> - <el-input v-model="imageUploadURL" placeholder="Image URL" /> - - <small> - (If both are filled, the file is used) - </small> - </el-col> - - <el-col :span="4" class="new-emoji-col"> - <el-button :disabled="shortcode.trim() == ''" @click="upload">Upload</el-button> - </el-col> - </el-row> - </div> + <el-form label-width="130px" label-position="left" size="small"> + <div class="add-new-emoji">{{ $t('settings.addNewEmoji') }}</div> + <el-form-item :label="$t('settings.shortcode')"> + <el-input v-model="shortcode" :placeholder="$t('settings.required')"/> + </el-form-item> + <el-form-item :label="$t('settings.customFilename')"> + <el-input v-model="customFileName" :placeholder="$t('settings.optional')"/> + </el-form-item> + <el-form-item :label="$t('settings.uploadFile')"> + <!-- <div class="upload-file-url"> + <el-input v-model="imageUploadURL" :placeholder="$t('settings.url')"/> + <el-button :disabled="shortcodePresent" class="upload-button" @click="uploadEmoji">{{ $t('settings.upload') }}</el-button> + </div> + <div class="upload-container"> + <p class="text">or</p>--> + <el-upload + :http-request="uploadEmoji" + :multiple="false" + :show-file-list="false" + action="add"> + <el-button :disabled="shortcodePresent" type="primary">{{ $t('settings.clickToUpload') }}</el-button> + </el-upload> + <!-- </div> --> + </el-form-item> + </el-form> </template> <style> - .new-emoji-col { - margin-top: 8em; - } - - .or { - margin: 1em; - } +.add-new-emoji { + height: 36px; + font-size: 14px; + font-weight: 700; + color: #606266; +} +.text { + line-height: 20px; + margin-right: 15px +} +.upload-container { + display: flex; + align-items: baseline; +} +.upload-button { + margin-left: 10px; +} +.upload-file-url { + display: flex; + justify-content: space-between +} </style> <script> @@ -54,7 +58,6 @@ export default { required: true } }, - data() { return { shortcode: '', @@ -62,31 +65,25 @@ export default { customFileName: '' } }, - + computed: { + shortcodePresent() { + return this.shortcode.trim() === '' + } + }, methods: { - upload() { - let file = null - - if (this.$refs.fileUpload.files.length > 0) { - file = this.$refs.fileUpload.files[0] - } else if (this.imageUploadURL.trim() !== '') { - file = this.imageUploadURL - } - - if (file !== null) { - this.$store.dispatch('UpdateAndSavePackFile', { - action: 'add', - packName: this.packName, - shortcode: this.shortcode, - file: file, - fileName: this.customFileName - }).then(() => { - this.shortcode = '' - this.imageUploadURL = '' + uploadEmoji({ file }) { + this.$store.dispatch('UpdateAndSavePackFile', { + action: 'add', + packName: this.packName, + shortcode: this.shortcode, + file, + fileName: this.customFileName + }).then(() => { + this.shortcode = '' + this.imageUploadURL = '' - this.$store.dispatch('ReloadEmoji') - }) - } + this.$store.dispatch('ReloadEmoji') + }) } } } diff --git a/src/views/emojiPacks/index.vue b/src/views/emojiPacks/index.vue index 41854e70..6a8c7f31 100644 --- a/src/views/emojiPacks/index.vue +++ b/src/views/emojiPacks/index.vue @@ -61,8 +61,8 @@ export default { return { remoteInstanceAddress: '', newPackName: '', - activeLocalPack: '', - activeRemotePack: '' + activeLocalPack: [], + activeRemotePack: [] } }, computed: { -- GitLab