From f8030aef14d021d0bad6fa531cd9a85ac185f683 Mon Sep 17 00:00:00 2001
From: Angelina Filippova <linakirsanova@gmail.com>
Date: Thu, 21 Nov 2019 23:07:13 +0900
Subject: [PATCH] Add ability to configure http signatures and activity
 expiration settings

---
 src/views/settings/components/Http.vue     | 10 ++++++++++
 src/views/settings/components/Inputs.vue   |  4 ++--
 src/views/settings/components/JobQueue.vue |  9 +++++++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/src/views/settings/components/Http.vue b/src/views/settings/components/Http.vue
index 0e129f00..ec33f695 100644
--- a/src/views/settings/components/Http.vue
+++ b/src/views/settings/components/Http.vue
@@ -8,6 +8,10 @@
       <setting :setting-group="corsPlug" :data="corsPlugData"/>
     </el-form>
     <div class="line"/>
+    <el-form ref="httpSignatures" :model="httpSignaturesData" :label-width="labelWidth">
+      <setting :setting-group="httpSignatures" :data="httpSignaturesData"/>
+    </el-form>
+    <div class="line"/>
     <el-form ref="httpSecurityData" :model="httpSecurityData" :label-width="labelWidth">
       <setting :setting-group="httpSecurity" :data="httpSecurityData"/>
       <el-form-item>
@@ -47,6 +51,12 @@ export default {
     httpSecurityData() {
       return this.settings.settings.pleroma[':http_security']
     },
+    httpSignatures() {
+      return this.settings.description.find(setting => setting.group === ':http_signatures')
+    },
+    httpSignaturesData() {
+      return this.settings.settings.http_signatures
+    },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
     },
diff --git a/src/views/settings/components/Inputs.vue b/src/views/settings/components/Inputs.vue
index 58ca5a5f..95a3e555 100644
--- a/src/views/settings/components/Inputs.vue
+++ b/src/views/settings/components/Inputs.vue
@@ -19,7 +19,7 @@
       @change="updateSetting($event, settingGroup.key, setting.key)"/>
     <el-select
       v-if="setting.type === 'module' || (setting.type.includes('atom') && setting.type.includes(false))"
-      :value="data[setting.key]"
+      :value="inputValue"
       clearable
       @change="updateSetting($event, settingGroup.key, setting.key)">
       <el-option
@@ -225,7 +225,7 @@ export default {
       }
     },
     inputValue() {
-      if ([':esshd', ':cors_plug', ':quack'].includes(this.settingGroup.group) && this.data[this.setting.key]) {
+      if ([':esshd', ':cors_plug', ':quack', ':http_signatures'].includes(this.settingGroup.group) && this.data[this.setting.key]) {
         return this.data[this.setting.key].value
       } else if (this.settingGroup.group === ':logger' && this.setting.key === ':backends') {
         return this.data.value
diff --git a/src/views/settings/components/JobQueue.vue b/src/views/settings/components/JobQueue.vue
index 19a2a756..c6b4e81a 100644
--- a/src/views/settings/components/JobQueue.vue
+++ b/src/views/settings/components/JobQueue.vue
@@ -5,6 +5,9 @@
     </el-form>
     <el-form ref="workersData" :model="workersData" :label-width="labelWidth">
       <setting :setting-group="workers" :data="workersData"/>
+    </el-form>
+    <el-form ref="activityExpiration" :model="activityExpirationData" :label-width="labelWidth">
+      <setting :setting-group="activityExpiration" :data="activityExpirationData"/>
       <el-form-item>
         <el-button type="primary" @click="onSubmit">Submit</el-button>
       </el-form-item>
@@ -24,6 +27,12 @@ export default {
     ...mapGetters([
       'settings'
     ]),
+    activityExpiration() {
+      return this.settings.description.find(setting => setting.key === 'Pleroma.ActivityExpiration')
+    },
+    activityExpirationData() {
+      return this.settings.settings.pleroma['Pleroma.ActivityExpiration']
+    },
     isMobile() {
       return this.$store.state.app.device === 'mobile'
     },
-- 
GitLab