From 4015a54d57e7acd2778b33b961cef7af0406172d Mon Sep 17 00:00:00 2001 From: les Date: Tue, 10 Dec 2019 22:58:10 +0100 Subject: [PATCH] [ui] add admin in mobile / fix #63 --- assets/style.less | 4 ++++ pages/event/_id.vue | 33 +++++++++++++++++++++++++++++++++ server/federation/helpers.js | 15 ++++++++------- server/federation/nodeinfo.js | 2 +- server/federation/users.js | 1 + 5 files changed, 47 insertions(+), 8 deletions(-) diff --git a/assets/style.less b/assets/style.less index 5f4516ba..b579dabf 100644 --- a/assets/style.less +++ b/assets/style.less @@ -62,6 +62,10 @@ pre { font-family: unset; } +.el-message-box { + max-width: 95%; +} + .el-popover { word-break: normal; } diff --git a/pages/event/_id.vue b/pages/event/_id.vue index cdd69c0c..aca13612 100644 --- a/pages/event/_id.vue +++ b/pages/event/_id.vue @@ -53,6 +53,13 @@ hr .d-block.d-lg-none + el-dropdown + el-button.mr-1.mb-1(type='' icon='el-icon-arrow-down' size='mini') {{$t('common.admin')}} + el-dropdown-menu(slot='dropdown') + el-dropdown-item(@click.native='toggle') {{$t(event.is_visible?'common.hide':'common.confirm')}} + el-dropdown-item(@click.native='$router.replace(`/add/${event.id}`)') {{$t('common.edit')}} + el-dropdown-item(@click.native='remove') {{$t('common.remove')}} + el-button(plain size='mini' type='primary' v-clipboard:success='copyLink' v-clipboard:copy='`${settings.baseurl}/event/${event.id}`') {{$t('common.copy_link')}} a.el-button.el-button--success.el-button--mini.is-plain(role='button' plain size='mini' type='success' @@ -258,6 +265,32 @@ export default { } }, methods: { + async remove () { + try { + await MessageBox.confirm(this.$t('event.remove_confirmation'), this.$t('common.confirm'), { + confirmButtonText: this.$t('common.ok'), + cancelButtonText: this.$t('common.cancel'), + type: 'error' }) + await this.$axios.delete(`/user/event/${this.event.id}`) + this.delEvent(Number(this.event.id)) + this.$router.replace('/') + } catch (e) { + console.error(e) + } + }, + async toggle () { + try { + if (this.event.is_visible) { + await this.$axios.$get(`/event/unconfirm/${this.event.id}`) + this.event.is_visible = false + } else { + await this.$axios.$get(`/event/confirm/${this.event.id}`) + this.event.is_visible = true + } + } catch (e) { + console.error(e) + } + }, async hideResource (resource, hidden) { await this.$axios.$put(`/resources/${resource.id}`, { hidden }) resource.hidden = hidden diff --git a/server/federation/helpers.js b/server/federation/helpers.js index 75823e8c..4aa142e3 100644 --- a/server/federation/helpers.js +++ b/server/federation/helpers.js @@ -38,14 +38,15 @@ const Helpers = { const header = `keyId="${config.baseurl}/federation/u/${settingsController.settings.instance_name}",headers="(request-target) host date",signature="${signature_b64}"` const ret = await fetch(inbox, { headers: { - 'Host': inboxUrl.hostname, - 'Date': d.toUTCString(), - 'Signature': header, + Host: inboxUrl.hostname, + Date: d.toUTCString(), + Signature: header, 'Content-Type': 'application/activity+json; charset=utf-8', - 'Accept': 'application/activity+json, application/json; chartset=utf-8' + Accept: 'application/activity+json, application/json; chartset=utf-8' }, method: 'POST', - body: JSON.stringify(message) }) + body: JSON.stringify(message) +}) debug('sign %s => %s', ret.status, await ret.text()) }, @@ -64,7 +65,7 @@ const Helpers = { }) for (const sharedInbox in recipients) { - debug('Notify %s with event %s cc => %d', sharedInbox, event.title , recipients[sharedInbox].length) + debug('Notify %s with event %s cc => %d', sharedInbox, event.title, recipients[sharedInbox].length) const body = { id: `${config.baseurl}/federation/m/${event.id}#create`, type, @@ -78,7 +79,7 @@ const Helpers = { body['@context'] = [ 'https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1', - { Hashtag: 'as:Hashtag' } ] + { Hashtag: 'as:Hashtag' }] Helpers.signAndSend(body, sharedInbox) } }, diff --git a/server/federation/nodeinfo.js b/server/federation/nodeinfo.js index 445eb78c..21363147 100644 --- a/server/federation/nodeinfo.js +++ b/server/federation/nodeinfo.js @@ -7,7 +7,7 @@ const version = require('../../package.json').version router.use(cors()) -router.get('/', async (req, res) => { +router.get('/', (req, res) => { const ret = { version: '1.0', server: { diff --git a/server/federation/users.js b/server/federation/users.js index 8f24b505..b0f2d260 100644 --- a/server/federation/users.js +++ b/server/federation/users.js @@ -84,6 +84,7 @@ module.exports = { }, async outbox (req, res) { + // TODO const name = req.params.name const page = req.query.page