Merge branch 'dev' of framagit.org:/les/gancio into feat/add_user_theme_view_controls
This commit is contained in:
@@ -22,6 +22,7 @@ v-container
|
||||
v-data-table(
|
||||
v-if='announcements.length'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:headers='headers'
|
||||
:items='announcements')
|
||||
template(v-slot:item.actions='{ item }')
|
||||
@@ -35,21 +36,21 @@ import { mapActions } from 'vuex'
|
||||
import cloneDeep from 'lodash/cloneDeep'
|
||||
import Editor from '../Editor'
|
||||
import Announcement from '../Announcement'
|
||||
import { mdiPlus, mdiChevronRight, mdiChevronLeft } from '@mdi/js'
|
||||
import { mdiPlus, mdiChevronRight, mdiChevronLeft, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
components: { Editor, Announcement },
|
||||
data() {
|
||||
return {
|
||||
mdiPlus, mdiChevronRight, mdiChevronLeft,
|
||||
mdiPlus, mdiChevronRight, mdiChevronLeft, mdiChevronDown,
|
||||
valid: false,
|
||||
dialog: false,
|
||||
editing: false,
|
||||
announcements: [],
|
||||
loading: false,
|
||||
headers: [
|
||||
{ value: 'title', text: 'Title' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'title', text: this.$t('common.title') },
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
],
|
||||
announcement: { title: '', announcement: '' }
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ v-container
|
||||
v-spacer
|
||||
v-text-field(v-model='search'
|
||||
:append-icon='mdiMagnify' outlined rounded
|
||||
label='Search'
|
||||
:label="$t('common.search')"
|
||||
single-line hide-details)
|
||||
v-card-subtitle(v-html="$t('admin.collections_description')")
|
||||
|
||||
@@ -75,6 +75,7 @@ v-container
|
||||
:headers='filterHeaders'
|
||||
:items='filters'
|
||||
:hide-default-footer='filters.length < 5'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }')
|
||||
template(v-slot:item.actions='{ item }')
|
||||
v-btn(@click='removeFilter(item)' color='error' icon)
|
||||
@@ -94,6 +95,7 @@ v-container
|
||||
:headers='collectionHeaders'
|
||||
:items='collections'
|
||||
:hide-default-footer='collections.length < 5'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:search='search')
|
||||
template(v-slot:item.filters='{ item }')
|
||||
@@ -108,12 +110,12 @@ v-container
|
||||
<script>
|
||||
import get from 'lodash/get'
|
||||
import debounce from 'lodash/debounce'
|
||||
import { mdiPencil, mdiChevronLeft, mdiChevronRight, mdiMagnify, mdiPlus, mdiTagMultiple, mdiMapMarker, mdiDeleteForever, mdiCloseCircle } from '@mdi/js'
|
||||
import { mdiPencil, mdiChevronLeft, mdiChevronRight, mdiMagnify, mdiPlus, mdiTagMultiple, mdiMapMarker, mdiDeleteForever, mdiCloseCircle, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
mdiPencil, mdiChevronRight, mdiChevronLeft, mdiMagnify, mdiPlus, mdiTagMultiple, mdiMapMarker, mdiDeleteForever, mdiCloseCircle,
|
||||
mdiPencil, mdiChevronRight, mdiChevronLeft, mdiMagnify, mdiPlus, mdiTagMultiple, mdiMapMarker, mdiDeleteForever, mdiCloseCircle, mdiChevronDown,
|
||||
loading: false,
|
||||
dialog: false,
|
||||
valid: false,
|
||||
@@ -128,14 +130,14 @@ export default {
|
||||
tagName: '',
|
||||
placeName: '',
|
||||
collectionHeaders: [
|
||||
{ value: 'name', text: 'Name' },
|
||||
{ value: 'filters', text: 'Filters' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'name', text: this.$t('common.name') },
|
||||
{ value: 'filters', text: this.$t('common.filter') },
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
],
|
||||
filterHeaders: [
|
||||
{ value: 'tags', text: 'Tags' },
|
||||
{ value: 'places', text: 'Places' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'tags', text: this.$t('common.tags') },
|
||||
{ value: 'places', text: this.$t('common.places') },
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -5,6 +5,7 @@ v-container
|
||||
v-card-text
|
||||
v-data-table(
|
||||
:hide-default-footer='unconfirmedEvents.length<10'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:items='unconfirmedEvents'
|
||||
:headers='headers')
|
||||
@@ -17,7 +18,7 @@ v-container
|
||||
color='error') {{$t('common.delete')}}
|
||||
</template>
|
||||
<script>
|
||||
import { mdiChevronLeft, mdiChevronRight } from '@mdi/js'
|
||||
import { mdiChevronLeft, mdiChevronRight, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
@@ -25,15 +26,15 @@ export default {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
mdiChevronLeft, mdiChevronRight,
|
||||
mdiChevronLeft, mdiChevronRight, mdiChevronDown,
|
||||
valid: false,
|
||||
dialog: false,
|
||||
editing: false,
|
||||
headers: [
|
||||
{ value: 'title', text: 'Title' },
|
||||
{ value: 'place.name', text: 'Place' },
|
||||
{ value: 'when', text: 'When' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'title', text: this.$t('common.title') },
|
||||
{ value: 'place.name', text: this.$t('common.place') },
|
||||
{ value: 'when', text: this.$t('common.when') },
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -68,6 +68,7 @@ v-container
|
||||
v-if='settings.trusted_instances.length'
|
||||
:hide-default-footer='settings.trusted_instances.length<10'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:headers='headers'
|
||||
:items='settings.trusted_instances')
|
||||
template(v-slot:item.actions="{item}")
|
||||
@@ -79,13 +80,13 @@ v-container
|
||||
import { mapActions, mapState } from 'vuex'
|
||||
import get from 'lodash/get'
|
||||
import axios from 'axios'
|
||||
import { mdiDeleteForever, mdiPlus, mdiChevronLeft, mdiChevronRight } from '@mdi/js'
|
||||
import { mdiDeleteForever, mdiPlus, mdiChevronLeft, mdiChevronRight, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
name: 'Federation',
|
||||
data ({ $store, $options }) {
|
||||
return {
|
||||
mdiDeleteForever, mdiPlus, mdiChevronLeft, mdiChevronRight,
|
||||
mdiDeleteForever, mdiPlus, mdiChevronLeft, mdiChevronRight, mdiChevronDown,
|
||||
instance_url: '',
|
||||
instance_name: $store.state.settings.instance_name,
|
||||
instance_place: $store.state.settings.instance_place,
|
||||
|
||||
@@ -10,6 +10,7 @@ v-container
|
||||
:items-per-page='5'
|
||||
:search='instancesFilter'
|
||||
:hide-default-footer='instances.length<5'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
dense :headers='instancesHeader'
|
||||
@click:row='instanceSelected')
|
||||
@@ -24,6 +25,7 @@ v-container
|
||||
:search='usersFilter'
|
||||
:hide-default-footer='users.length<5'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
dense :headers='usersHeader')
|
||||
template(v-slot:item.blocked="{ item }")
|
||||
v-icon(@click='toggleUserBlock(item)' v-text='item.blocked ? mdiCheckboxIntermediate : mdiCheckboxBlankOutline')
|
||||
@@ -34,6 +36,7 @@ v-container
|
||||
:headers='resourcesHeader'
|
||||
:hide-default-footer='resources.length<10'
|
||||
:items-per-page='10'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }')
|
||||
template(v-slot:item.content='{ item }')
|
||||
span(v-html='item.data.content')
|
||||
@@ -62,33 +65,33 @@ v-container
|
||||
import { mapState, mapActions } from 'vuex'
|
||||
import get from 'lodash/get'
|
||||
import { mdiDelete, mdiEye, mdiEyeOff, mdiDotsVertical, mdiCheckboxIntermediate,
|
||||
mdiCheckboxBlankOutline, mdiChevronLeft, mdiChevronRight } from '@mdi/js'
|
||||
mdiCheckboxBlankOutline, mdiChevronLeft, mdiChevronRight, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
name: 'Moderation',
|
||||
data () {
|
||||
return {
|
||||
mdiDelete, mdiEye, mdiEyeOff, mdiDotsVertical, mdiCheckboxIntermediate,
|
||||
mdiCheckboxBlankOutline, mdiChevronLeft, mdiChevronRight,
|
||||
mdiCheckboxBlankOutline, mdiChevronLeft, mdiChevronRight, mdiChevronDown,
|
||||
instances: [],
|
||||
resources: [],
|
||||
users: [],
|
||||
usersHeader: [
|
||||
{ value: 'object.preferredUsername', text: 'Name' },
|
||||
{ value: 'blocked', text: 'Blocked' }
|
||||
{ value: 'object.preferredUsername', text: this.$t('common.name') },
|
||||
{ value: 'blocked', text: this.$t('admin.blocked') }
|
||||
],
|
||||
instancesHeader: [
|
||||
{ value: 'domain', text: 'Domain' },
|
||||
{ value: 'name', text: 'Name' },
|
||||
{ value: 'blocked', text: 'Blocked' },
|
||||
{ value: 'users', text: 'known users' }
|
||||
{ value: 'domain', text: this.$t('admin.domain') },
|
||||
{ value: 'name', text: this.$t('common.name') },
|
||||
{ value: 'blocked', text: this.$t('admin.blocked') },
|
||||
{ value: 'users', text: this.$t('admin.known_users') }
|
||||
],
|
||||
resourcesHeader: [
|
||||
{ value: 'created', text: 'Created' },
|
||||
{ value: 'event', text: 'Event' },
|
||||
{ value: 'user', text: 'user' },
|
||||
{ value: 'content', text: 'Content' },
|
||||
{ value: 'actions', text: 'Actions' }
|
||||
{ value: 'created', text: this.$t('admin.created_at') },
|
||||
{ value: 'event', text: this.$t('common.event') },
|
||||
{ value: 'user', text: this.$t('common.user') },
|
||||
{ value: 'content', text: this.$t('common.content') },
|
||||
{ value: 'actions', text: this.$t('common.actions') }
|
||||
],
|
||||
usersFilter: '',
|
||||
instancesFilter: ''
|
||||
|
||||
@@ -4,7 +4,7 @@ v-container
|
||||
v-spacer
|
||||
v-text-field(v-model='search'
|
||||
:append-icon='mdiMagnify' outlined rounded
|
||||
label='Search'
|
||||
:label="$t('common.search')"
|
||||
single-line hide-details)
|
||||
v-card-subtitle(v-html="$t('admin.place_description')")
|
||||
|
||||
@@ -49,6 +49,7 @@ v-container
|
||||
:headers='headers'
|
||||
:items='places'
|
||||
:hide-default-footer='places.length < 5'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:search='search')
|
||||
template(v-slot:item.map='{ item }')
|
||||
@@ -61,7 +62,7 @@ v-container
|
||||
|
||||
</template>
|
||||
<script>
|
||||
import { mdiPencil, mdiChevronLeft, mdiChevronRight, mdiMagnify, mdiEye, mdiMapSearch } from '@mdi/js'
|
||||
import { mdiPencil, mdiChevronLeft, mdiChevronRight, mdiMagnify, mdiEye, mdiMapSearch, mdiChevronDown } from '@mdi/js'
|
||||
import { mapState } from 'vuex'
|
||||
import debounce from 'lodash/debounce'
|
||||
import get from 'lodash/get'
|
||||
@@ -69,7 +70,7 @@ import get from 'lodash/get'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
mdiPencil, mdiChevronRight, mdiChevronLeft, mdiMagnify, mdiEye, mdiMapSearch,
|
||||
mdiPencil, mdiChevronRight, mdiChevronLeft, mdiMagnify, mdiEye, mdiMapSearch, mdiChevronDown,
|
||||
loading: false,
|
||||
dialog: false,
|
||||
valid: false,
|
||||
@@ -79,10 +80,10 @@ export default {
|
||||
search: '',
|
||||
place: { name: '', address: '', id: null },
|
||||
headers: [
|
||||
{ value: 'name', text: 'Name' },
|
||||
{ value: 'address', text: 'Address' },
|
||||
{ value: 'name', text: this.$t('common.name') },
|
||||
{ value: 'address', text: this.$t('common.address') },
|
||||
{ value: 'map', text: 'Map' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -4,7 +4,7 @@ v-container
|
||||
v-spacer
|
||||
v-text-field(v-model='search'
|
||||
:append-icon='mdiMagnify' outlined rounded
|
||||
label='Search'
|
||||
:label="$t('common.search')"
|
||||
single-line hide-details)
|
||||
|
||||
v-btn(color='primary' text @click='newUserDialog = true') <v-icon v-text='mdiPlus'></v-icon> {{$t('common.new_user')}}
|
||||
@@ -32,6 +32,7 @@ v-container
|
||||
:headers='headers'
|
||||
:items='users'
|
||||
:hide-default-footer='users.length<5'
|
||||
:header-props='{ sortIcon: mdiChevronDown }'
|
||||
:footer-props='{ prevIcon: mdiChevronLeft, nextIcon: mdiChevronRight }'
|
||||
:search='search')
|
||||
template(v-slot:item.is_active='{item}')
|
||||
@@ -49,7 +50,7 @@ v-container
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import get from 'lodash/get'
|
||||
import { mdiClose, mdiMagnify, mdiCheck, mdiPlus, mdiInformation, mdiChevronLeft, mdiChevronRight } from '@mdi/js'
|
||||
import { mdiClose, mdiMagnify, mdiCheck, mdiPlus, mdiInformation, mdiChevronLeft, mdiChevronRight, mdiChevronDown } from '@mdi/js'
|
||||
|
||||
export default {
|
||||
name: 'Users',
|
||||
@@ -58,7 +59,7 @@ export default {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
mdiClose, mdiMagnify, mdiCheck, mdiPlus, mdiInformation, mdiChevronLeft, mdiChevronRight,
|
||||
mdiClose, mdiMagnify, mdiCheck, mdiPlus, mdiInformation, mdiChevronLeft, mdiChevronRight, mdiChevronDown,
|
||||
newUserDialog: false,
|
||||
valid: false,
|
||||
new_user: {
|
||||
@@ -67,10 +68,10 @@ export default {
|
||||
},
|
||||
search: '',
|
||||
headers: [
|
||||
{ value: 'email', text: 'Email' },
|
||||
{ value: 'description', text: 'Description' },
|
||||
{ value: 'email', text: this.$t('common.email') },
|
||||
{ value: 'description', text: this.$t('common.description') },
|
||||
{ value: 'is_active', text: 'Active' },
|
||||
{ value: 'actions', text: 'Actions', align: 'right' }
|
||||
{ value: 'actions', text: this.$t('common.actions'), align: 'right' }
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3,7 +3,7 @@ span
|
||||
v-list(dense nav)
|
||||
v-list-group(:append-icon='mdiChevronUp' :value='true')
|
||||
template(v-slot:activator)
|
||||
v-list-item.text-overline Admin actions
|
||||
v-list-item.text-overline {{$t('common.admin_actions')}}
|
||||
|
||||
//- Hide / confirm event
|
||||
v-list-item(@click='toggle(false)')
|
||||
@@ -29,7 +29,7 @@ span
|
||||
|
||||
|
||||
template(v-if='event.parentId')
|
||||
v-list-item.text-overline Recurring event actions <a href="https://gancio.org/">?</a>
|
||||
v-list-item.text-overline(v-html="$t('common.recurring_event_actions')")
|
||||
|
||||
//- Pause / Start to generate recurring event
|
||||
v-list-item(@click='toggle(true)')
|
||||
|
||||
Reference in New Issue
Block a user