Advertisement
dahohawley

Untitled

Sep 22nd, 2019
375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.64 KB | None | 0 0
  1. <!--
  2. - Sebelum di submit, lakukan validasi terlebih dahulu dengan cara : validateUser();
  3. - Setelah selesai di validasi, lakukan penyimpanan user dengan cara : saveUser();
  4. -->
  5.  
  6. <style type="text/css">
  7. .error{
  8. color : red;
  9. }
  10. </style>
  11. <form class="form-horizontal" id="form-user" name="form-user">
  12. <div class="modal-body">
  13. <div id="alert-form"></div>
  14. <input type="hidden" name="token" value="<?php echo isset($this->token) ? $this->token : ''; ?>">
  15. <div class="form-group row">
  16. <label for="code" class="col-sm-3 col-form-label float-right">Kode</label>
  17. <div class="col-sm-9">
  18. <input type="hidden" id="user_id" name="user_id">
  19. <input type="text" class="form-control" id="code" name="code" placeholder="Kode user">
  20. </div>
  21. </div>
  22. <div class="form-group row">
  23. <label for="name" class="col-sm-3 col-form-label">Nama</label>
  24. <div class="col-sm-9">
  25. <input type="text" class="form-control" id="name" name="name" placeholder="Nama user">
  26. </div>
  27. </div>
  28. <div class="form-group row">
  29. <label for="email" class="col-sm-3 col-form-label">Email</label>
  30. <div class="col-sm-9">
  31. <input type="text" class="form-control" id="email" name="email" placeholder="Email user">
  32. </div>
  33. </div>
  34. <div class="form-group row">
  35. <label for="language" class="col-sm-3 col-form-label">Bahasa</label>
  36. <div class="col-sm-9">
  37. <select class="form-control" id="language" name="language">
  38. <?php echo($this->languages->toOptions()); ?>
  39. </select>
  40. </div>
  41. </div>
  42. <div class="form-group row">
  43. <label for="user_status_id" class="col-sm-3 col-form-label">Status</label>
  44. <div class="col-sm-9">
  45. <select class="form-control" id="user_status_id" name="user_status_id">
  46. <?php echo($this->statuses->toOptions()); ?>
  47. </select>
  48. </div>
  49. </div>
  50. <div class="form-group row">
  51. <label for="auth_type_id" class="col-sm-3 col-form-label">Jenis Login</label>
  52. <div class="col-sm-9">
  53. <select class="form-control" id="auth_type_id" name="auth_type_id">
  54. <?php echo($this->authentications->toOptions()); ?>
  55. </select>
  56. </div>
  57. </div>
  58. <div class="form-group row">
  59. <label for="password" class="col-sm-3 col-form-label">Password</label>
  60. <div class="col-sm-9">
  61. <div class="input-group">
  62. <input type="password" class="form-control" id="password" name="password" placeholder="Password">
  63. <div class="input-group-append">
  64. <span class="input-group-text">
  65. <span class="fa fa-eye-slash" data-input="password"></span>
  66. </span>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="form-group row">
  72. <label for="retype_password" class="col-sm-3 col-form-label">Retype Password</label>
  73. <div class="col-sm-9">
  74. <div class="input-group">
  75. <input type="password" class="form-control" id="retype_password" name="retype_password" placeholder="Retype Password">
  76. <div class="input-group-append">
  77. <span class="input-group-text">
  78. <span class="fa fa-eye-slash" data-input="retype_password"></span>
  79. </span>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="modal-footer">
  86.  
  87. </div>
  88. </form>
  89.  
  90. <script type="text/javascript">
  91. $("#form-user").submit(function (e) {
  92. e.preventDefault(); // avoid to execute the actual submit of the form.
  93. $("#btn-save").html('<i class="fa fa-spinner fa-spin fa-1x fa-fw"></i> <?php echo $this->translate('Saving') ?>');
  94. $("#btn-save").attr('disabled','true');
  95.  
  96. var data = {
  97. "code": jQuery("#code").val(),
  98. "name": jQuery("#name").val(),
  99. "email": jQuery("#email").val(),
  100. "language": jQuery("#language").val(),
  101. "user_status_id": jQuery("#user_status_id").val(),
  102. "auth_type_id": jQuery("#auth_type_id").val(),
  103. "token": $("[name=\"token\"]").val()
  104. };
  105.  
  106. data.password = jQuery("#password").val();
  107. data.retype_password = jQuery("#retype_password").val();
  108.  
  109. var form = new FormData();
  110.  
  111. form.append("data", JSON.stringify(data));
  112.  
  113. jQuery.ajax({
  114. "async": true,
  115. "crossDomain": true,
  116. "url": "<?php echo $this->basePath(); ?>/actor/user/register",
  117. "method": "POST",
  118. "headers": {
  119. "cache-control": "no-cache",
  120. "postman-token": "99b51967-aa46-d338-5884-66cd3d077b0f"
  121. },
  122. "processData": false,
  123. "contentType": false,
  124. "mimeType": "multipart/form-data",
  125. "dataType": "json",
  126. "data": form
  127. }).done(function (response) {
  128. $("#btn-save").text('<?php echo $this->translate('Save') ?>');
  129. $("#btn-save").removeAttr('disabled');
  130.  
  131. if (response.code != 0) {
  132. jQuery('#alert-form').neuronAlert(response.info, 'danger');
  133. } else {
  134. resetFormUser();
  135. jQuery('#alert-grid').neuronAlert(response.info, 'success');
  136. $('#grid-user').DataTable().ajax.reload();
  137. }
  138. });
  139. });
  140.  
  141. jQuery.validator.addMethod("alphanumeric", function(value, element) {
  142. return this.optional(element) || /^[a-z 0-9]+$/i.test(value);
  143. }, "Please insert letters and numbers only");
  144.  
  145. var formUserValidator = $("#form-user").validate({
  146. rules : {
  147. code : {
  148. required : true,
  149. alphanumeric : true,
  150. },
  151. name : "required",
  152. email : "required",
  153. password : "required",
  154. retype_password : {
  155. required : true,
  156. equalTo : "#password"
  157. },
  158. },
  159. messages : {
  160. code : {
  161. required : "<?php echo $this->translate('Code is required!') ?>",
  162. alphanumeric: "<?php echo $this->translate('Please insert alphanumeric only') ?>"
  163. },
  164. name : "<?php echo $this->translate('Name is required!') ?>",
  165. email : "<?php echo $this->translate('E-Mail is required!') ?>",
  166. password : "<?php echo $this->translate('Password is required!') ?>",
  167. retype_password : {
  168. required : "Retype Password is requried!",
  169. equalTo : "Retype Password didnt match!"
  170. }
  171. },
  172. errorPlacement : (error,element) => {
  173. elementName = element.attr('name');
  174. if(elementName == 'password' || elementName == 'retype_password'){
  175. appendEl = element.parent();
  176. error.insertAfter(appendEl);
  177. }else{
  178. error.insertAfter(element);
  179. }
  180. }
  181. });
  182.  
  183. let validateUser = () => {
  184. validate = formUserValidator.form();
  185. return valdate;
  186. }
  187.  
  188. let saveUser = () => {
  189. validate = formUserValidator.form();
  190. if(!validate){
  191. return false;
  192. }
  193.  
  194. var data = {
  195. "code": jQuery("#code").val(),
  196. "name": jQuery("#name").val(),
  197. "email": jQuery("#email").val(),
  198. "language": jQuery("#language").val(),
  199. "user_status_id": jQuery("#user_status_id").val(),
  200. "auth_type_id": jQuery("#auth_type_id").val(),
  201. "token": $("[name=\"token\"]").val()
  202. };
  203.  
  204. data.password = jQuery("#password").val();
  205. data.retype_password = jQuery("#retype_password").val();
  206.  
  207. var form = new FormData();
  208.  
  209. form.append("data", JSON.stringify(data));
  210.  
  211. jQuery.ajax({
  212. "async": true,
  213. "crossDomain": true,
  214. "url": "<?php echo $this->basePath(); ?>/actor/user/register",
  215. "method": "POST",
  216. "headers": {
  217. "cache-control": "no-cache",
  218. "postman-token": "99b51967-aa46-d338-5884-66cd3d077b0f"
  219. },
  220. "processData": false,
  221. "contentType": false,
  222. "mimeType": "multipart/form-data",
  223. "dataType": "json",
  224. "data": form
  225. }).done(function (response) {
  226. console.log(response);
  227. return response;
  228. });
  229. }
  230.  
  231.  
  232. /*Show password*/
  233. $(".fa-eye-slash").click(function (e) {
  234. var l = $(this);
  235. if(l.hasClass('peeked')){
  236. l.addClass('fa-eye-slash').removeClass('fa-eye peeked');
  237. l.closest('input').attr('type', 'password');
  238. $('#' +l.attr('data-input')).attr('type', 'password');
  239. } else {
  240. l.addClass('fa-eye peeked').removeClass('fa-eye-slash');
  241. l.closest('input').attr('type', 'text');
  242. $('#' +l.attr('data-input')).attr('type', 'text');
  243. }
  244. });
  245. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement