From 9508c2c1145ee75d6807b800f4758901b48d9ecb Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Sun, 23 Feb 2020 01:25:28 +0300
Subject: [PATCH 01/30] Add new groups of settings: mrfObjectAge, modules,
swoosh, uriSchemes, feed, staticFe
---
src/views/settings/components/Frontend.vue | 22 ++++++++++++++++------
src/views/settings/components/Inputs.vue | 2 +-
src/views/settings/components/Instance.vue | 20 ++++++++++++++++++++
src/views/settings/components/MRF.vue | 20 ++++++++++++++++++++
src/views/settings/components/Mailer.vue | 10 ++++++++++
5 files changed, 67 insertions(+), 7 deletions(-)
diff --git a/src/views/settings/components/Frontend.vue b/src/views/settings/components/Frontend.vue
index 48493e01..188a74ca 100644
--- a/src/views/settings/components/Frontend.vue
+++ b/src/views/settings/components/Frontend.vue
@@ -3,6 +3,10 @@
+
+
+
+
+
+
+
+
@@ -61,6 +65,12 @@ export default {
mailerData() {
return _.get(this.settings.settings, [':pleroma', 'Pleroma.Emails.Mailer']) || {}
},
+ swoosh() {
+ return this.settings.description.find(setting => setting.group === ':swoosh')
+ },
+ swooshData() {
+ return _.get(this.settings.settings, [':swoosh']) || {}
+ },
userEmail() {
return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.UserEmail')
},
From a1aeb9da2c149451efd661aa3d4ee81b3da1d65a Mon Sep 17 00:00:00 2001
From: Mark Felder
Date: Tue, 25 Feb 2020 16:50:15 -0600
Subject: [PATCH 02/30] Fix spelling/grammar
---
src/lang/en.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lang/en.js b/src/lang/en.js
index d0728e07..5130a100 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -193,7 +193,7 @@ export default {
deleteAccount: 'Delete Account',
deleteAccounts: 'Delete Accounts',
forceNsfw: 'Force posts to be NSFW',
- stripMedia: 'Force posts not to have media',
+ stripMedia: 'Force posts to not have media',
forceUnlisted: 'Force posts to be unlisted',
sandbox: 'Force posts to be followers-only',
disableRemoteSubscription: 'Disallow following user from remote instances',
@@ -254,7 +254,7 @@ export default {
external: 'external',
localUppercase: 'Local',
nickname: 'Nickname',
- recentStatuses: 'Recent Statues',
+ recentStatuses: 'Recent Statuses',
showPrivateStatuses: 'Show private statuses',
roles: 'Roles',
activeUppercase: 'Active',
From d0d421ca5f0359b84011ea41ef34b0a9fdae46f3 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Wed, 26 Feb 2020 17:28:38 +0300
Subject: [PATCH 03/30] Add missing computed properties in emoji section
---
src/views/emojiPacks/components/NewEmojiUploader.vue | 3 +++
src/views/emojiPacks/components/SingleEmojiEditor.vue | 3 +++
2 files changed, 6 insertions(+)
diff --git a/src/views/emojiPacks/components/NewEmojiUploader.vue b/src/views/emojiPacks/components/NewEmojiUploader.vue
index 8bb431a2..f364b49e 100644
--- a/src/views/emojiPacks/components/NewEmojiUploader.vue
+++ b/src/views/emojiPacks/components/NewEmojiUploader.vue
@@ -44,6 +44,9 @@ export default {
isDesktop() {
return this.$store.state.app.device === 'desktop'
},
+ isMobile() {
+ return this.$store.state.app.device === 'mobile'
+ },
shortcodePresent() {
return this.shortcode.trim() === ''
}
diff --git a/src/views/emojiPacks/components/SingleEmojiEditor.vue b/src/views/emojiPacks/components/SingleEmojiEditor.vue
index d66bd48d..cd0eeb7f 100644
--- a/src/views/emojiPacks/components/SingleEmojiEditor.vue
+++ b/src/views/emojiPacks/components/SingleEmojiEditor.vue
@@ -95,6 +95,9 @@ export default {
isDesktop() {
return this.$store.state.app.device === 'desktop'
},
+ isMobile() {
+ return this.$store.state.app.device === 'mobile'
+ },
localPacks() {
return this.$store.state.emojiPacks.localPacks
},
From 99bcf4cbf5c95a8c60b2172629c19243c9103769 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Wed, 26 Feb 2020 17:32:14 +0300
Subject: [PATCH 04/30] Remove Tesla Adapter from settings
---
src/views/settings/components/Http.vue | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/src/views/settings/components/Http.vue b/src/views/settings/components/Http.vue
index a12a1efa..a94000b2 100644
--- a/src/views/settings/components/Http.vue
+++ b/src/views/settings/components/Http.vue
@@ -3,10 +3,6 @@
-
-
-
-
-
-
-
-
-
-
-
- {{ $t('userProfile.nickname') }} |
-
- {{ user.nickname }}
- |
-
-
- ID |
-
- {{ user.id }}
- |
-
-
- {{ $t('userProfile.tags') }} |
-
- {{ tag }}
- —
- |
-
-
- {{ $t('userProfile.roles') }} |
-
-
- {{ $t('users.admin') }}
-
-
- {{ $t('users.moderator') }}
-
- —
- |
-
-
- {{ $t('userProfile.localUppercase') }} |
-
- {{ $t('userProfile.local') }}
- {{ $t('userProfile.external') }}
- |
-
-
- {{ $t('userProfile.activeUppercase') }} |
-
- {{ $t('userProfile.active') }}
- {{ $t('userProfile.deactivated') }}
- |
-
-
-
-
-
-
-
-
- {{ $t('userProfile.recentStatuses') }}
-
-
-
- {{ $t('userProfile.showPrivateStatuses') }}
-
-
-
-
+
+
+
+
+
+
+ {{ $t('userProfile.nickname') }} |
+
+ {{ user.nickname }}
+ |
+
+
+ ID |
+
+ {{ user.id }}
+ |
+
+
+ {{ $t('userProfile.tags') }} |
+
+ {{ tag }}
+ —
+ |
+
+
+ {{ $t('userProfile.roles') }} |
+
+
+ {{ $t('users.admin') }}
+
+
+ {{ $t('users.moderator') }}
+
+ —
+ |
+
+
+ {{ $t('userProfile.localUppercase') }} |
+
+ {{ $t('userProfile.local') }}
+ {{ $t('userProfile.external') }}
+ |
+
+
+ {{ $t('userProfile.activeUppercase') }} |
+
+ {{ $t('userProfile.active') }}
+ {{ $t('userProfile.deactivated') }}
+ |
+
+
+
+
+
+
+
{{ $t('userProfile.recentStatuses') }}
+
+ {{ $t('userProfile.showPrivateStatuses') }}
+
{{ $t('userProfile.noStatuses') }}
-
-
+
+
@@ -193,6 +185,11 @@ table {
margin-left: 28px;
color: #606266;
}
+.recent-statuses-container {
+ display: flex;
+ flex-direction: column;
+ width: 67%;
+}
.recent-statuses-header {
margin-top: 10px;
}
@@ -205,6 +202,9 @@ table {
line-height: 67px;
margin-right: 20px;
}
+.show-private-statuses {
+ margin-left: 28px;
+}
.recent-statuses {
margin-left: 28px;
}
@@ -218,6 +218,11 @@ table {
}
.user-profile-card {
margin: 0 20px;
+ width: 30%;
+ height: fit-content;
+}
+.user-profile-container {
+ display: flex;
}
.user-profile-table {
margin: 0;
@@ -225,4 +230,16 @@ table {
.user-profile-tag {
margin: 0 4px 4px 0;
}
+
+@media only screen and (max-width:480px) {
+ .avatar-name-container {
+ margin-bottom: 10px;
+ }
+ .user-page-header {
+ flex-direction: column;
+ align-items: flex-start;
+ padding: 0;
+ margin: 7px 0 15px 10px;
+ }
+}
From a982fcbcb9331806cfa88507bf0018c35c168d0a Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Thu, 27 Feb 2020 02:58:03 +0300
Subject: [PATCH 11/30] Add mobile and tablet UI for user profile
---
src/views/users/show.vue | 50 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/src/views/users/show.vue b/src/views/users/show.vue
index cdc08767..ca0ed538 100644
--- a/src/views/users/show.vue
+++ b/src/views/users/show.vue
@@ -204,6 +204,7 @@ table {
}
.show-private-statuses {
margin-left: 28px;
+ margin-bottom: 20px;
}
.recent-statuses {
margin-left: 28px;
@@ -235,11 +236,60 @@ table {
.avatar-name-container {
margin-bottom: 10px;
}
+ .recent-statuses {
+ margin: 20px 10px 15px 10px;
+ }
+ .recent-statuses-container {
+ width: 100%;
+ margin: 0 10px;
+ }
+ .show-private-statuses {
+ margin: 0 10px 20px 10px;
+ }
.user-page-header {
flex-direction: column;
align-items: flex-start;
padding: 0;
margin: 7px 0 15px 10px;
}
+ .user-profile-card {
+ margin: 0 10px;
+ width: 95%;
+ td {
+ width: 80px;
+ }
+ }
+ .user-profile-container {
+ flex-direction: column;
+ }
+}
+
+@media only screen and (max-width:801px) and (min-width: 481px) {
+ .avatar-name-container {
+ margin-bottom: 20px;
+ }
+ .recent-statuses {
+ margin: 20px 10px 15px 0;
+ }
+ .recent-statuses-container {
+ width: 97%;
+ margin: 0 20px;
+ }
+ .show-private-statuses {
+ margin: 0 10px 20px 0;
+ }
+ .user-page-header {
+ flex-direction: column;
+ align-items: flex-start;
+ padding: 0;
+ margin: 7px 0 20px 20px;
+ }
+ .user-profile-card {
+ margin: 0 20px;
+ width: fit-content;
+ }
+ .user-profile-container {
+ flex-direction: column;
+ }
}
From 868eb9dc7159d8efdadf72c4b73ba3c8eaa86fa9 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Thu, 27 Feb 2020 19:29:05 +0300
Subject: [PATCH 12/30] Remove grouped reports from admin-fe
---
CHANGELOG.md | 1 -
src/api/__mocks__/reports.js | 28 ---
src/api/reports.js | 9 -
src/lang/en.js | 1 -
src/store/modules/reports.js | 27 +--
src/store/modules/status.js | 4 -
.../reports/components/GroupedReport.vue | 169 ------------------
src/views/reports/index.vue | 41 +----
test/views/reports/groupedReport.test.js | 47 -----
9 files changed, 6 insertions(+), 321 deletions(-)
delete mode 100644 src/views/reports/components/GroupedReport.vue
delete mode 100644 test/views/reports/groupedReport.test.js
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 24db7aec..085e4981 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,7 +24,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Optimistic update for actions in users module and fetching users after api function finished its execution
- Relay management
- Ability to fetch all statuses from a given instance
-- Grouped reports: now you can view reports, which are grouped by status (pagination is not implemented yet, though)
- Ability to confirm users' emails and resend confirmation emails
- Report notes
- Ability to moderate users on the statuses page
diff --git a/src/api/__mocks__/reports.js b/src/api/__mocks__/reports.js
index ba4e412e..36fc2008 100644
--- a/src/api/__mocks__/reports.js
+++ b/src/api/__mocks__/reports.js
@@ -11,40 +11,12 @@ const reports = [
{ created_at: '2019-05-18T13:01:33.000Z', account: { acct: 'nick', display_name: 'Nick Keys', tags: [] }, actor: { acct: 'admin' }, state: 'closed', id: '4', content: '', statuses: [] }
]
-const groupedReports = [
- { account: { avatar: 'http://localhost:4000/images/avi.png', confirmation_pending: false, deactivated: false, display_name: 'leo', id: '9oG0YghgBi94EATI9I', local: true, nickname: 'leo', roles: { admin: false, moderator: false }, tags: [] },
- actors: [{ acct: 'admin', avatar: 'http://localhost:4000/images/avi.png', deactivated: false, display_name: 'admin', id: '9oFz4pTauG0cnJ581w', local: true, nickname: 'admin', roles: { admin: false, moderator: false }, tags: [], url: 'http://localhost:4000/users/admin', username: 'admin' }],
- date: '2019-11-23T12:56:11.969772Z',
- reports: [
- { created_at: '2019-05-21T21:35:33.000Z', account: { acct: 'benj', display_name: 'Benjamin Fame', tags: [] }, actor: { acct: 'admin' }, state: 'open', id: '2', content: 'This is a report', statuses: [] },
- { created_at: '2019-05-20T22:45:33.000Z', account: { acct: 'alice', display_name: 'Alice Pool', tags: [] }, actor: { acct: 'admin2' }, state: 'resolved', id: '7', content: 'Please block this user', statuses: [
- { account: { display_name: 'Alice Pool', avatar: '' }, visibility: 'public', sensitive: false, id: '11', content: 'Hey!', url: '', created_at: '2019-05-10T21:35:33.000Z' },
- { account: { display_name: 'Alice Pool', avatar: '' }, visibility: 'unlisted', sensitive: true, id: '10', content: 'Bye!', url: '', created_at: '2019-05-10T21:00:33.000Z' }
- ] }
- ],
- status: {
- account: { acct: 'leo' },
- content: 'At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis',
- created_at: '2019-11-23T12:55:20.000Z',
- id: '9pFoQO69piu7cUDnJg',
- url: 'http://localhost:4000/notice/9pFoQO69piu7cUDnJg',
- visibility: 'unlisted',
- sensitive: true
- },
- status_deleted: false
- }
-]
-
export async function fetchReports(filter, page, pageSize, authHost, token) {
return filter.length > 0
? Promise.resolve({ data: { reports: reports.filter(report => report.state === filter) }})
: Promise.resolve({ data: { reports }})
}
-export async function fetchGroupedReports(authHost, token) {
- return Promise.resolve({ data: { reports: groupedReports }})
-}
-
export async function changeState(reportsData, authHost, token) {
return Promise.resolve({ data: '' })
}
diff --git a/src/api/reports.js b/src/api/reports.js
index 3454da2f..abd371c1 100644
--- a/src/api/reports.js
+++ b/src/api/reports.js
@@ -24,15 +24,6 @@ export async function fetchReports(filter, page, pageSize, authHost, token) {
})
}
-export async function fetchGroupedReports(authHost, token) {
- return await request({
- baseURL: baseName(authHost),
- url: `/api/pleroma/admin/grouped_reports`,
- method: 'get',
- headers: authHeaders(token)
- })
-}
-
export async function createNote(content, reportID, authHost, token) {
return await request({
baseURL: baseName(authHost),
diff --git a/src/lang/en.js b/src/lang/en.js
index 5130a100..7512ecbf 100644
--- a/src/lang/en.js
+++ b/src/lang/en.js
@@ -273,7 +273,6 @@ export default {
},
reports: {
reports: 'Reports',
- groupedReports: 'Grouped reports',
reply: 'Reply',
from: 'From',
showNotes: 'Show notes',
diff --git a/src/store/modules/reports.js b/src/store/modules/reports.js
index c1b07b51..3a836a2f 100644
--- a/src/store/modules/reports.js
+++ b/src/store/modules/reports.js
@@ -1,13 +1,11 @@
-import { changeState, fetchReports, fetchGroupedReports, createNote, deleteNote } from '@/api/reports'
+import { changeState, fetchReports, createNote, deleteNote } from '@/api/reports'
const reports = {
state: {
fetchedReports: [],
- fetchedGroupedReports: [],
totalReportsCount: 0,
currentPage: 1,
pageSize: 50,
- groupReports: false,
stateFilter: '',
loading: true
},
@@ -24,17 +22,11 @@ const reports = {
SET_REPORTS: (state, reports) => {
state.fetchedReports = reports
},
- SET_GROUPED_REPORTS: (state, reports) => {
- state.fetchedGroupedReports = reports
- },
SET_REPORTS_COUNT: (state, total) => {
state.totalReportsCount = total
},
SET_REPORTS_FILTER: (state, filter) => {
state.stateFilter = filter
- },
- SET_REPORTS_GROUPING: (state) => {
- state.groupReports = !state.groupReports
}
},
actions: {
@@ -46,14 +38,7 @@ const reports = {
return updatedReportsIds.includes(report.id) ? { ...report, state: reportsData[0].state } : report
})
- const updatedGroupedReports = state.fetchedGroupedReports.map(group => {
- const updatedReportsIds = reportsData.map(({ id }) => id)
- const updatedReports = group.reports.map(report => updatedReportsIds.includes(report.id) ? { ...report, state: reportsData[0].state } : report)
- return { ...group, reports: updatedReports }
- })
-
commit('SET_REPORTS', updatedReports)
- commit('SET_GROUPED_REPORTS', updatedGroupedReports)
},
ClearFetchedReports({ commit }) {
commit('SET_REPORTS', [])
@@ -67,19 +52,9 @@ const reports = {
commit('SET_PAGE', page)
commit('SET_LOADING', false)
},
- async FetchGroupedReports({ commit, getters }) {
- commit('SET_LOADING', true)
- const { data } = await fetchGroupedReports(getters.authHost, getters.token)
-
- commit('SET_GROUPED_REPORTS', data.reports)
- commit('SET_LOADING', false)
- },
SetFilter({ commit }, filter) {
commit('SET_REPORTS_FILTER', filter)
},
- ToggleReportsGrouping({ commit }) {
- commit('SET_REPORTS_GROUPING')
- },
CreateReportNote({ commit, getters, state, rootState }, { content, reportID }) {
createNote(content, reportID, getters.authHost, getters.token)
diff --git a/src/store/modules/status.js b/src/store/modules/status.js
index 228e03f1..81e86dba 100644
--- a/src/store/modules/status.js
+++ b/src/store/modules/status.js
@@ -36,8 +36,6 @@ const status = {
dispatch('FetchUserStatuses', { userId, godmode })
} else if (fetchStatusesByInstance) { // called from Statuses by Instance
dispatch('FetchStatusesByInstance')
- } else { // called from GroupedReports
- dispatch('FetchGroupedReports')
}
},
async DeleteStatus({ dispatch, getters }, { statusId, reportCurrentPage, userId, godmode, fetchStatusesByInstance }) {
@@ -48,8 +46,6 @@ const status = {
dispatch('FetchUserStatuses', { userId, godmode })
} else if (fetchStatusesByInstance) { // called from Statuses by Instance
dispatch('FetchStatusesByInstance')
- } else { // called from GroupedReports
- dispatch('FetchGroupedReports')
}
},
async FetchStatusesByInstance({ commit, getters, state }) {
diff --git a/src/views/reports/components/GroupedReport.vue b/src/views/reports/components/GroupedReport.vue
deleted file mode 100644
index 54ee5b1a..00000000
--- a/src/views/reports/components/GroupedReport.vue
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
-
-
-
-
-
-
-
- {{ $t('reports.reportedStatus') }}:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/reports/index.vue b/src/views/reports/index.vue
index 8c37e6a1..64993da3 100644
--- a/src/views/reports/index.vue
+++ b/src/views/reports/index.vue
@@ -1,22 +1,14 @@
-
- {{ $t('reports.groupedReports') }}
- ({{ normalizedReportsCount }})
-
-
+
{{ $t('reports.reports') }}
({{ normalizedReportsCount }})
-
-
- Group reports by statuses
-
+
-
-
+
There are no reports to display
@@ -25,32 +17,18 @@
@@ -77,9 +49,6 @@ export default {
margin: 22px 15px 22px 15px;
padding-bottom: 0
}
- .group-reports-checkbox {
- margin-top: 10px;
- }
h1 {
margin: 22px 0 0 15px;
}
diff --git a/test/views/reports/groupedReport.test.js b/test/views/reports/groupedReport.test.js
deleted file mode 100644
index b24d05e4..00000000
--- a/test/views/reports/groupedReport.test.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import Vuex from 'vuex'
-import { mount, createLocalVue, config } from '@vue/test-utils'
-import Element from 'element-ui'
-import GroupedReport from '@/views/reports/components/GroupedReport'
-import storeConfig from './store.conf'
-import { cloneDeep } from 'lodash'
-import flushPromises from 'flush-promises'
-
-config.mocks["$t"] = () => {}
-
-const localVue = createLocalVue()
-localVue.use(Vuex)
-localVue.use(Element)
-
-jest.mock('@/api/reports')
-
-describe('Grouped report', () => {
- let store
-
- beforeEach(async() => {
- store = new Vuex.Store(cloneDeep(storeConfig))
- store.dispatch('FetchGroupedReports')
- await flushPromises()
- })
-
- it('changes state of all reports in a group', async (done) => {
- const groupedReports = store.state.reports.fetchedGroupedReports
- const wrapper = mount(GroupedReport, {
- store,
- localVue,
- propsData: {
- groupedReports
- }
- })
-
- expect(groupedReports[0].reports[0].state).toBe('open')
- expect(groupedReports[0].reports[1].state).toBe('resolved')
-
- const button = wrapper.find(`.grouped-report .el-dropdown-menu__item:nth-child(3)`)
- button.trigger('click')
- await flushPromises()
-
- expect(store.state.reports.fetchedGroupedReports[0].reports[0].state).toBe('closed')
- expect(store.state.reports.fetchedGroupedReports[0].reports[1].state).toBe('closed')
- done()
- })
-})
From f4d40cb157ababaaed5d8e5ce68bb415146940c9 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Thu, 27 Feb 2020 19:40:24 +0300
Subject: [PATCH 13/30] Add styles for divider on report tab
---
src/views/reports/components/Report.vue | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/views/reports/components/Report.vue b/src/views/reports/components/Report.vue
index 5911ad7d..4df72383 100644
--- a/src/views/reports/components/Report.vue
+++ b/src/views/reports/components/Report.vue
@@ -180,6 +180,9 @@ export default {
height: 15px;
margin-left: 5px;
}
+ .divider {
+ margin: 15px 0;
+ }
.el-card__body {
padding: 17px;
}
From a1a90d948efa33e57f47b62bbb978f451aa54493 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Thu, 27 Feb 2020 20:11:09 +0300
Subject: [PATCH 14/30] Update Changelog
---
CHANGELOG.md | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 085e4981..bfd8927e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,20 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
-## Unreleased
-
-### Changed
-
-- **breaking** PleromaFE login feature relies on `admin` scope presence in PleromaFE token (older versions of PleromaFE don't support it)
-- Moves emoji pack configuration from the main menu to settings tab, redesigns it and fixes bugs
-- `mailerEnabled` must be set to `true` in order to require password reset (password reset currently only works via email)
-- Remove fetching initial data for configuring server settings
-- Actions in users module (ActivateUsers, AddRight, DeactivateUsers, DeleteRight, DeleteUsers) now accept an array of users instead of one user
-- Leave dropdown menu open after clicking an action
-- Move current try/catch error handling from view files to module, add it where necessary
-- Display checkboxes in status card and fetch statuses only when status card was rendered from Statuses by instance page
-- Move statuses by instance state from local state to store state
-- Pass user's ID to actions that moderate users when action is called from user's profile page
+## [2.0] - 2020-02-27
### Added
@@ -28,8 +15,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Report notes
- Ability to moderate users on the statuses page
- Ability to moderate user on the user's page
+- Ability to remove setting's updated value and set it back to initial value
- Ability to restart an application when settings that require instance reboot were changed
-- Mobile UI for Settings tab
+- Mobile and Tablet UI for all sections
+
+### Changed
+
+- **breaking** PleromaFE login feature relies on `admin` scope presence in PleromaFE token (older versions of PleromaFE don't support it)
+- `mailerEnabled` must be set to `true` in order to require password reset (password reset currently only works via email)
+- Render inputs for configuring settings based on description that comes from the BE
+- Remove fetching initial data for configuring server settings
+- Actions in users module (ActivateUsers, AddRight, DeactivateUsers, DeleteRight, DeleteUsers) now accept an array of users instead of one user
+- Leave dropdown menu open after clicking an action
+- Display checkboxes in status card and fetch statuses only when status card was rendered from Statuses by instance page
+- Move statuses by instance state from local state to store state
### Fixed
@@ -38,6 +37,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Remove duplicated success message
- Fix styles for Statuses by instance page
- Fix styles for Reports section
+- Fix listing remote emoji
## [1.2.0] - 2019-09-27
From d611c7d0e54e653e8b4249b789724a4f88ab1602 Mon Sep 17 00:00:00 2001
From: Angelina Filippova
Date: Thu, 27 Feb 2020 22:25:50 +0300
Subject: [PATCH 15/30] Add api function and action to fetch statuses
---
CHANGELOG.md | 6 ++++++
src/api/status.js | 9 +++++++++
src/store/getters.js | 4 +---
src/store/modules/status.js | 7 ++++++-
src/views/statuses/index.vue | 11 ++++++-----
5 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bfd8927e..bdefcea9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+## Unreleased
+
+### Added
+
+- Ability to see local statuses in Statuses by instance section
+
## [2.0] - 2020-02-27
### Added
diff --git a/src/api/status.js b/src/api/status.js
index 676cd9dc..9feb8754 100644
--- a/src/api/status.js
+++ b/src/api/status.js
@@ -21,6 +21,15 @@ export async function deleteStatus(id, authHost, token) {
})
}
+export async function fetchStatuses({ godmode, localOnly, authHost, token }) {
+ return await request({
+ baseURL: baseName(authHost),
+ url: `/api/pleroma/admin/statuses?godmode=${godmode}&local_only=${localOnly}`,
+ method: 'get',
+ headers: authHeaders(token)
+ })
+}
+
export async function fetchStatusesByInstance({ instance, authHost, token, pageSize, page }) {
return await request({
baseURL: baseName(authHost),
diff --git a/src/store/getters.js b/src/store/getters.js
index d51dbd28..f58f0c6b 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -17,8 +17,6 @@ const getters = {
errorLogs: state => state.errorLog.logs,
users: state => state.users.fetchedUsers,
authHost: state => state.user.authHost,
- settings: state => state.settings,
- instances: state => state.peers.fetchedPeers,
- statuses: state => state.status.fetchedStatuses
+ settings: state => state.settings
}
export default getters
diff --git a/src/store/modules/status.js b/src/store/modules/status.js
index 81e86dba..7f547d34 100644
--- a/src/store/modules/status.js
+++ b/src/store/modules/status.js
@@ -1,4 +1,4 @@
-import { changeStatusScope, deleteStatus, fetchStatusesByInstance } from '@/api/status'
+import { changeStatusScope, deleteStatus, fetchStatuses, fetchStatusesByInstance } from '@/api/status'
const status = {
state: {
@@ -48,6 +48,11 @@ const status = {
dispatch('FetchStatusesByInstance')
}
},
+ async FetchStatuses({ commit, getters }, { godmode, localOnly }) {
+ commit('SET_LOADING', true)
+ await fetchStatuses({ godmode, localOnly, authHost: getters.authHost, token: getters.token })
+ commit('SET_LOADING', false)
+ },
async FetchStatusesByInstance({ commit, getters, state }) {
commit('SET_LOADING', true)
const statuses = state.statusesByInstance.selectedInstance === ''
diff --git a/src/views/statuses/index.vue b/src/views/statuses/index.vue
index b6fd2019..7ecd649f 100644
--- a/src/views/statuses/index.vue
+++ b/src/views/statuses/index.vue
@@ -36,7 +36,6 @@
+
+
diff --git a/src/views/settings/components/inputComponents/EditableKeywordInput.vue b/src/views/settings/components/inputComponents/EditableKeywordInput.vue
index a6ecde4d..fe5b9c7b 100644
--- a/src/views/settings/components/inputComponents/EditableKeywordInput.vue
+++ b/src/views/settings/components/inputComponents/EditableKeywordInput.vue
@@ -8,14 +8,6 @@
-