mirror of https://github.com/requarks/wiki
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
4.3 KiB
150 lines
4.3 KiB
'use strict'
|
|
|
|
/* global usrData, usrDataName */
|
|
|
|
import $ from 'jquery'
|
|
import _ from 'lodash'
|
|
import Vue from 'vue'
|
|
|
|
module.exports = (alerts) => {
|
|
if ($('#page-type-admin-profile').length) {
|
|
let vueProfile = new Vue({
|
|
el: '#page-type-admin-profile',
|
|
data: {
|
|
password: '********',
|
|
passwordVerify: '********',
|
|
name: ''
|
|
},
|
|
methods: {
|
|
saveUser: (ev) => {
|
|
if (vueProfile.password !== vueProfile.passwordVerify) {
|
|
alerts.pushError('Error', "Passwords don't match!")
|
|
return
|
|
}
|
|
$.post(window.location.href, {
|
|
password: vueProfile.password,
|
|
name: vueProfile.name
|
|
}).done((resp) => {
|
|
alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
|
|
}).fail((jqXHR, txtStatus, resp) => {
|
|
alerts.pushError('Error', resp)
|
|
})
|
|
}
|
|
},
|
|
created: function () {
|
|
this.name = usrDataName
|
|
}
|
|
})
|
|
} else if ($('#page-type-admin-users').length) {
|
|
require('../modals/admin-users-create.js')(alerts)
|
|
} else if ($('#page-type-admin-users-edit').length) {
|
|
let vueEditUser = new Vue({
|
|
el: '#page-type-admin-users-edit',
|
|
data: {
|
|
id: '',
|
|
email: '',
|
|
password: '********',
|
|
name: '',
|
|
rights: [],
|
|
roleoverride: 'none'
|
|
},
|
|
methods: {
|
|
addRightsRow: (ev) => {
|
|
vueEditUser.rights.push({
|
|
role: 'write',
|
|
path: '/',
|
|
exact: false,
|
|
deny: false
|
|
})
|
|
},
|
|
removeRightsRow: (idx) => {
|
|
_.pullAt(vueEditUser.rights, idx)
|
|
vueEditUser.$forceUpdate()
|
|
},
|
|
saveUser: (ev) => {
|
|
let formattedRights = _.cloneDeep(vueEditUser.rights)
|
|
switch (vueEditUser.roleoverride) {
|
|
case 'admin':
|
|
formattedRights.push({
|
|
role: 'admin',
|
|
path: '/',
|
|
exact: false,
|
|
deny: false
|
|
})
|
|
break
|
|
}
|
|
$.post(window.location.href, {
|
|
password: vueEditUser.password,
|
|
name: vueEditUser.name,
|
|
rights: JSON.stringify(formattedRights)
|
|
}).done((resp) => {
|
|
alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
|
|
}).fail((jqXHR, txtStatus, resp) => {
|
|
alerts.pushError('Error', resp)
|
|
})
|
|
}
|
|
},
|
|
created: function () {
|
|
this.id = usrData._id
|
|
this.email = usrData.email
|
|
this.name = usrData.name
|
|
|
|
if (_.find(usrData.rights, { role: 'admin' })) {
|
|
this.rights = _.reject(usrData.rights, ['role', 'admin'])
|
|
this.roleoverride = 'admin'
|
|
} else {
|
|
this.rights = usrData.rights
|
|
}
|
|
}
|
|
})
|
|
require('../modals/admin-users-delete.js')(alerts)
|
|
} else if ($('#page-type-admin-settings').length) {
|
|
let vueSettings = new Vue({ // eslint-disable-line no-unused-vars
|
|
el: '#page-type-admin-settings',
|
|
data: {
|
|
upgradeModal: {
|
|
state: false,
|
|
step: 'confirm',
|
|
mode: 'upgrade',
|
|
error: 'Something went wrong.'
|
|
}
|
|
},
|
|
methods: {
|
|
upgrade: (ev) => {
|
|
vueSettings.upgradeModal.mode = 'upgrade'
|
|
vueSettings.upgradeModal.step = 'confirm'
|
|
vueSettings.upgradeModal.state = true
|
|
},
|
|
reinstall: (ev) => {
|
|
vueSettings.upgradeModal.mode = 're-install'
|
|
vueSettings.upgradeModal.step = 'confirm'
|
|
vueSettings.upgradeModal.state = true
|
|
},
|
|
upgradeCancel: (ev) => {
|
|
vueSettings.upgradeModal.state = false
|
|
},
|
|
upgradeStart: (ev) => {
|
|
vueSettings.upgradeModal.step = 'running'
|
|
$.post('/admin/settings/install', {
|
|
mode: vueSettings.upgradeModal.mode
|
|
}).done((resp) => {
|
|
// todo
|
|
}).fail((jqXHR, txtStatus, resp) => {
|
|
vueSettings.upgradeModal.step = 'error'
|
|
vueSettings.upgradeModal.error = jqXHR.responseText
|
|
})
|
|
},
|
|
flushcache: (ev) => {
|
|
window.alert('Coming soon!')
|
|
},
|
|
resetaccounts: (ev) => {
|
|
window.alert('Coming soon!')
|
|
},
|
|
flushsessions: (ev) => {
|
|
window.alert('Coming soon!')
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|