Guest User

Untitled

a guest
May 25th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.01 KB | None | 0 0
  1. <template>
  2. <b-row>
  3. <b-col sm="12">
  4. <b-card>
  5. <div slot="header">
  6. Create User
  7. </div>
  8.  
  9. <div class="form-group">
  10. <label class="row">
  11. <picture-input
  12. ref="pictureInput"
  13. @change="pictureChange"
  14. width="200"
  15. height="150"
  16. margin="10"
  17. size="10"
  18. :removable="true"
  19. buttonClass="btn"
  20. :customStrings="{
  21. upload: '<h1>Bummer!</h1>',
  22. drag: 'Drag an image or click here'
  23. }">
  24. ></picture-input>
  25. </label>
  26. </div>
  27.  
  28.  
  29. <div class="form-group">
  30. <label class="row">
  31. <span class="col-sm-3">
  32. First Name
  33. </span>
  34. <span class="col-sm-9">
  35. <input v-model="user.first_name" type="text" class="form-control" placeholder="First Name">
  36. </span>
  37. </label>
  38. </div>
  39.  
  40. <div class="form-group">
  41. <label class="row">
  42. <span class="col-sm-3">
  43. Last Name
  44. </span>
  45. <span class="col-sm-9">
  46. <input v-model="user.last_name" type="text" class="form-control" placeholder="Last Name">
  47. </span>
  48. </label>
  49. </div>
  50.  
  51. <div class="form-group">
  52. <label class="row">
  53. <span class="col-sm-3">
  54. Email
  55. </span>
  56. <span class="col-sm-9">
  57. <input v-model="user.email" type="email" class="form-control" placeholder="Email">
  58. </span>
  59. </label>
  60. </div>
  61.  
  62. <div class="form-group">
  63. <label class="row">
  64. <span class="col-sm-3">
  65. Password
  66. </span>
  67. <span class="col-sm-9">
  68. <input v-model="user.password" type="text" class="form-control" placeholder="Password">
  69. </span>
  70. </label>
  71. </div>
  72.  
  73. <div class="form-group">
  74. <label class="row">
  75. <span class="col-sm-3">
  76. Role
  77. </span>
  78. <span class="col-sm-9">
  79. <select v-model="user.role" class="form-control">
  80. <option value="administrator">Administrator</option>
  81. <option value="user">User</option>
  82. </select>
  83. </span>
  84. </label>
  85. </div>
  86.  
  87. <div class="form-group">
  88. <label class="row">
  89. <span class="col-sm-3">
  90. Status
  91. </span>
  92. <span class="col-sm-9">
  93. <select v-model="user.status" class="form-control">
  94. <option value="active">Active</option>
  95. <option value="disabled">Disabled</option>
  96. </select>
  97. </span>
  98. </label>
  99. </div>
  100.  
  101. <div class="form-group">
  102. <label class="row">
  103. <span class="col-sm-3">
  104. Website
  105. </span>
  106. <span class="col-sm-9">
  107. <input v-model="user.website" type="text" class="form-control" placeholder="Website">
  108. </span>
  109. </label>
  110. </div>
  111.  
  112. <div class="form-group">
  113. <label class="row">
  114. <span class="col-sm-3">
  115. Facebook URL
  116. </span>
  117. <span class="col-sm-9">
  118. <input v-model="user.fb_url" type="text" class="form-control" placeholder="Facebook Url">
  119. </span>
  120. </label>
  121. </div>
  122.  
  123. <div class="form-group">
  124. <label class="row">
  125. <span class="col-sm-3">
  126. Twitter URL
  127. </span>
  128. <span class="col-sm-9">
  129. <input v-model="user.tw_url" type="text" class="form-control" placeholder="Twitter Url">
  130. </span>
  131. </label>
  132. </div>
  133.  
  134. <div class="form-group">
  135. <label class="row">
  136. <span class="col-sm-3">
  137. LinkedIn URL
  138. </span>
  139. <span class="col-sm-9">
  140. <input v-model="user.ln_url" type="text" class="form-control" placeholder="LinkedIn Url">
  141. </span>
  142. </label>
  143. </div>
  144.  
  145. <div class="form-group">
  146. <label class="row">
  147. <span class="col-sm-3">
  148. Biography
  149. </span>
  150. <span class="col-sm-9">
  151. <textarea v-model="user.bio" class="form-control" cols="30" rows="6" placeholder="Biography"></textarea>
  152. </span>
  153. </label>
  154. </div>
  155.  
  156. <div slot="footer">
  157. <b-button type="submit" size="md" variant="primary" @click.prevent="save">
  158. <i class="fa fa-dot-circle-o"></i> Create
  159. </b-button>
  160. <router-link :to="{name: 'users'}" class="btn btn-info">
  161. <i class="fa fa-ban" aria-hidden="true"></i> Cancel
  162. </router-link>
  163. </div>
  164.  
  165. </b-card>
  166. </b-col>
  167. </b-row>
  168. </template>
  169.  
  170. <script>
  171. import PictureInput from 'vue-picture-input';
  172. import { mapActions } from 'vuex';
  173.  
  174. export default {
  175. name: 'UsersEdit',
  176. components: {
  177. PictureInput,
  178. },
  179. data() {
  180. return {
  181. user: {
  182. first_name: '',
  183. last_name: '',
  184. email: '',
  185. password: 'secret',
  186. role: 'user',
  187. status: 'active',
  188. website: '',
  189. fb_url: '',
  190. tw_url: '',
  191. ln_url: '',
  192. image: null,
  193. bio: '',
  194. },
  195. };
  196. },
  197. mounted() {
  198. // Code to solve PictureInput issue
  199. setTimeout(() => {
  200. const evt = new UIEvent('resize');
  201. window.dispatchEvent(evt);
  202. }, 700);
  203. },
  204. methods: {
  205. ...mapActions('users', [
  206. 'saveUser',
  207. ]),
  208. pictureChange() {
  209. this.user.image = this.$refs.pictureInput.file;
  210. },
  211. save() {
  212. this.saveUser(this.user)
  213. .then(() => {
  214. this.success('The user was created')
  215. .then(() => {
  216. this.redirectTo('/admin/users');
  217. });
  218. })
  219. .catch((response) => {
  220. this.failWithErrors('The user was not created', response);
  221. });
  222. },
  223. },
  224. };
  225. </script>
Add Comment
Please, Sign In to add comment