admin-users-create.js 1.32 KB
Newer Older
1
/* global $, Vue, alerts */
2 3 4 5

// Vue Create User instance

let vueCreateUser = new Vue({
6 7 8 9 10
  el: '#modal-admin-users-create',
  data: {
    email: '',
    provider: 'local',
    password: '',
11 12
    name: '',
    loading: false
13 14 15 16 17 18 19 20 21 22 23 24
  },
  methods: {
    open: (ev) => {
      $('#modal-admin-users-create').addClass('is-active')
      $('#modal-admin-users-create input').first().focus()
    },
    cancel: (ev) => {
      $('#modal-admin-users-create').removeClass('is-active')
      vueCreateUser.email = ''
      vueCreateUser.provider = 'local'
    },
    create: (ev) => {
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
      vueCreateUser.loading = true
      $.ajax('/admin/users/create', {
        data: {
          email: vueCreateUser.email,
          provider: vueCreateUser.provider,
          password: vueCreateUser.password,
          name: vueCreateUser.name
        },
        dataType: 'json',
        method: 'POST'
      }).then((rData, rStatus, rXHR) => {
        vueCreateUser.loading = false
        if (rData.ok) {
          vueCreateUser.cancel()
          window.location.reload(true)
        } else {
          alerts.pushError('Something went wrong', rData.msg)
        }
      }, (rXHR, rStatus, err) => {
        vueCreateUser.loading = false
        alerts.pushError('Error', rXHR.responseJSON.msg)
      })
47 48 49
    }
  }
})
50

51
$('.btn-create-prompt').on('click', vueCreateUser.open)