From d74bdecc32d622e45a1436dd0fe019da6d25625f Mon Sep 17 00:00:00 2001
From: Angelina Filippova <linakirsanova@gmail.com>
Date: Wed, 9 Oct 2019 18:24:27 +0300
Subject: [PATCH] Add ability to delete pack, download an archive and download
 a pack

---
 src/lang/en.js                                | 11 ++-
 src/views/emojiPacks/components/EmojiPack.vue | 77 ++++++++++++++-----
 2 files changed, 67 insertions(+), 21 deletions(-)

diff --git a/src/lang/en.js b/src/lang/en.js
index e501cfe3..46b4b641 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -352,7 +352,16 @@ export default {
     leaveEmptyShortcode: 'leave empty to use the same shortcode',
     leaveEmptyFilename: 'leave empty to use the same filename',
     copy: 'Copy',
-    copyToLocalPack: 'Copy to local pack'
+    copyToLocalPack: 'Copy to local pack',
+    thisWillDownload: 'This will download the',
+    downloadToCurrentInstance: 'pack to the current instance under the name',
+    canBeChanged: 'can be changed below',
+    willBeUsable: 'It will then be usable and shareable from the current instance',
+    downloadPack: 'Download pack',
+    deletePack: 'Delete pack',
+    downloadSharedPack: 'Download shared pack to current instance',
+    downloadAsOptional: 'Download as (optional)',
+    downloadPackArchive: 'Download pack archive'
   },
   invites: {
     inviteTokens: 'Invite tokens',
diff --git a/src/views/emojiPacks/components/EmojiPack.vue b/src/views/emojiPacks/components/EmojiPack.vue
index 9094e12f..3f819de8 100644
--- a/src/views/emojiPacks/components/EmojiPack.vue
+++ b/src/views/emojiPacks/components/EmojiPack.vue
@@ -25,15 +25,26 @@
         :label="$t('settings.fallbackSrcSha')">
         {{ pack.pack["fallback-src-sha256"] }}
       </el-form-item>
-      <el-form-item class="save-pack-button">
-        <el-button v-if="isLocal" type="primary" @click="savePackMetadata">{{ $t('settings.savePackMetadata') }}</el-button>
+      <el-form-item v-if="isLocal" class="save-pack-button">
+        <el-button type="primary" @click="savePackMetadata">{{ $t('settings.savePackMetadata') }}</el-button>
+        <el-button @click="deletePack">{{ $t('settings.deletePack') }}</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-link
+          v-if="pack.pack['can-download']"
+          :href="`//${host}/api/pleroma/emoji/packs/${name}/download_shared`"
+          :underline="false"
+          type="primary"
+          target="_blank">
+          <el-button class="download-archive">{{ $t('settings.downloadPackArchive') }}</el-button>
+        </el-link>
       </el-form-item>
     </el-form>
     <el-collapse v-model="showPackContent" class="contents-collapse">
-      <el-collapse-item :title="$t('settings.addNewEmoji')" name="addEmoji">
-        <new-emoji-uploader v-if="isLocal" :pack-name="name"/>
+      <el-collapse-item v-if="isLocal" :title="$t('settings.addNewEmoji')" name="addEmoji">
+        <new-emoji-uploader :pack-name="name"/>
       </el-collapse-item>
-      <el-collapse-item :title="$t('settings.manageEmoji')" name="manageEmoji">
+      <el-collapse-item v-if="Object.keys(pack.files).length > 0" :title="$t('settings.manageEmoji')" name="manageEmoji">
         <single-emoji-editor
           v-for="(file, ename) in pack.files"
           :key="ename"
@@ -43,25 +54,23 @@
           :file="file"
           :is-local="isLocal" />
       </el-collapse-item>
+      <el-collapse-item v-if="!isLocal" :title="$t('settings.downloadPack')" name="downloadPack">
+        <p>
+          {{ $t('settings.thisWillDownload') }} "{{ name }}" {{ $t('settings.downloadToCurrentInstance') }}
+          "{{ downloadSharedAs.trim() === '' ? name : downloadSharedAs }}" ({{ $t('settings.canBeChanged') }}).
+          {{ $t('settings.willBeUsable') }}.
+        </p>
+        <div class="download-shared-pack">
+          <el-input v-model="downloadSharedAs" :placeholder="$t('settings.downloadAsOptional')"/>
+          <el-button type="primary" class="download-shared-pack-button" @click="downloadFromInstance">
+            {{ $t('settings.downloadSharedPack') }}
+          </el-button>
+        </div>
+      </el-collapse-item>
     </el-collapse>
   </el-collapse-item>
 </template>
 
-<style>
-.el-collapse-item__content {
-  padding-bottom: 0;
-}
-.el-collapse-item__header {
-  height: 36px;
-  font-size: 14px;
-  font-weight: 700;
-  color: #606266;
-}
-.emoji-pack-card {
-  margin-top: 5px;
-}
-</style>
-
 <script>
 import SingleEmojiEditor from './SingleEmojiEditor.vue'
 import NewEmojiUploader from './NewEmojiUploader.vue'
@@ -179,3 +188,31 @@ export default {
   }
 }
 </script>
+
+<style>
+.download-archive {
+  width: 250px
+}
+.download-shared-pack {
+  display: flex;
+  margin-bottom: 10px;
+}
+.download-shared-pack-button {
+  margin-left: 10px;
+}
+.el-collapse-item__content {
+  padding-bottom: 0;
+}
+.el-collapse-item__header {
+  height: 36px;
+  font-size: 14px;
+  font-weight: 700;
+  color: #606266;
+}
+.emoji-pack-card {
+  margin-top: 5px;
+}
+.save-pack-button {
+  margin-bottom: 5px
+}
+</style>
-- 
GitLab