admin-users-create.js 1.47 KB
Newer Older
1 2 3 4
'use strict'

import $ from 'jquery'
import Vue from 'vue'
5 6 7

// Vue Create User instance

8 9 10 11 12 13 14 15 16
module.exports = (alerts) => {
  let vueCreateUser = new Vue({
    el: '#modal-admin-users-create',
    data: {
      email: '',
      provider: 'local',
      password: '',
      name: '',
      loading: false
17
    },
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
    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) => {
        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)
        })
      }
52
    }
53
  })
54

55 56
  $('.btn-create-prompt').on('click', vueCreateUser.open)
}