admin.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. /* global $, Vue, alerts, _, usrData, usrDataName */
  2. if ($('#page-type-admin-profile').length) {
  3. let vueProfile = new Vue({
  4. el: '#page-type-admin-profile',
  5. data: {
  6. password: '********',
  7. passwordVerify: '********',
  8. name: ''
  9. },
  10. methods: {
  11. saveUser: (ev) => {
  12. if (vueProfile.password !== vueProfile.passwordVerify) {
  13. alerts.pushError('Error', "Passwords don't match!")
  14. return
  15. }
  16. $.post(window.location.href, {
  17. password: vueProfile.password,
  18. name: vueProfile.name
  19. }).done((resp) => {
  20. alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
  21. }).fail((jqXHR, txtStatus, resp) => {
  22. alerts.pushError('Error', resp)
  23. })
  24. }
  25. },
  26. created: function () {
  27. this.name = usrDataName
  28. }
  29. })
  30. } else if ($('#page-type-admin-users').length) {
  31. /* eslint-disable spaced-comment */
  32. //=include ../modals/admin-users-create.js
  33. /* eslint-enable spaced-comment */
  34. } else if ($('#page-type-admin-users-edit').length) {
  35. let vueEditUser = new Vue({
  36. el: '#page-type-admin-users-edit',
  37. data: {
  38. id: '',
  39. email: '',
  40. password: '********',
  41. name: '',
  42. rights: [],
  43. roleoverride: 'none'
  44. },
  45. methods: {
  46. addRightsRow: (ev) => {
  47. vueEditUser.rights.push({
  48. role: 'write',
  49. path: '/',
  50. exact: false,
  51. deny: false
  52. })
  53. },
  54. removeRightsRow: (idx) => {
  55. _.pullAt(vueEditUser.rights, idx)
  56. vueEditUser.$forceUpdate()
  57. },
  58. saveUser: (ev) => {
  59. let formattedRights = _.cloneDeep(vueEditUser.rights)
  60. switch (vueEditUser.roleoverride) {
  61. case 'admin':
  62. formattedRights.push({
  63. role: 'admin',
  64. path: '/',
  65. exact: false,
  66. deny: false
  67. })
  68. break
  69. }
  70. $.post(window.location.href, {
  71. password: vueEditUser.password,
  72. name: vueEditUser.name,
  73. rights: JSON.stringify(formattedRights)
  74. }).done((resp) => {
  75. alerts.pushSuccess('Saved successfully', 'Changes have been applied.')
  76. }).fail((jqXHR, txtStatus, resp) => {
  77. alerts.pushError('Error', resp)
  78. })
  79. }
  80. },
  81. created: function () {
  82. this.id = usrData._id
  83. this.email = usrData.email
  84. this.name = usrData.name
  85. if (_.find(usrData.rights, { role: 'admin' })) {
  86. this.rights = _.reject(usrData.rights, ['role', 'admin'])
  87. this.roleoverride = 'admin'
  88. } else {
  89. this.rights = usrData.rights
  90. }
  91. }
  92. })
  93. /* eslint-disable spaced-comment */
  94. //=include ../modals/admin-users-delete.js
  95. /* eslint-enable spaced-comment */
  96. } else if ($('#page-type-admin-settings').length) {
  97. let vueSettings = new Vue({ // eslint-disable-line no-unused-vars
  98. el: '#page-type-admin-settings',
  99. data: {
  100. upgradeModal: {
  101. state: false,
  102. step: 'confirm',
  103. mode: 'upgrade',
  104. error: 'Something went wrong.'
  105. }
  106. },
  107. methods: {
  108. upgrade: (ev) => {
  109. vueSettings.upgradeModal.mode = 'upgrade'
  110. vueSettings.upgradeModal.step = 'confirm'
  111. vueSettings.upgradeModal.state = true
  112. },
  113. reinstall: (ev) => {
  114. vueSettings.upgradeModal.mode = 're-install'
  115. vueSettings.upgradeModal.step = 'confirm'
  116. vueSettings.upgradeModal.state = true
  117. },
  118. upgradeCancel: (ev) => {
  119. vueSettings.upgradeModal.state = false
  120. },
  121. upgradeStart: (ev) => {
  122. vueSettings.upgradeModal.step = 'running'
  123. $.post('/admin/settings/install', {
  124. mode: vueSettings.upgradeModal.mode
  125. }).done((resp) => {
  126. // todo
  127. }).fail((jqXHR, txtStatus, resp) => {
  128. vueSettings.upgradeModal.step = 'error'
  129. vueSettings.upgradeModal.error = jqXHR.responseText
  130. })
  131. },
  132. flushcache: (ev) => {
  133. window.alert('Coming soon!')
  134. },
  135. resetaccounts: (ev) => {
  136. window.alert('Coming soon!')
  137. },
  138. flushsessions: (ev) => {
  139. window.alert('Coming soon!')
  140. }
  141. }
  142. })
  143. }