_form.html.erb 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. <div id="form_wizard_1">
  2. <%= form_for(@user, html: { class: "form-horizontal", id: "submit_form" }) do |f| %>
  3. <div class="portlet-body form">
  4. <% if @user.errors.any? %>
  5. <div class="alert alert-danger">
  6. <strong>Tiene <%= pluralize(@user.errors.count, "error") %> no se puede guardar el usuario</strong><br>
  7. </div>
  8. <% end %>
  9. <div id="error_explanation"></div>
  10. <div class="form-wizard">
  11. <div class="form-body">
  12. <ul class="nav nav-pills nav-justified steps">
  13. <li class="active">
  14. <a href="#tab1" data-toggle="tab" class="step" aria-expanded="true">
  15. <span class="number">1 </span>
  16. <span class="desc">
  17. <i class="fa fa-check"></i> Usuario del sistema </span>
  18. </a>
  19. </li>
  20. <li>
  21. <a href="#tab2" data-toggle="tab" class="step">
  22. <span class="number">2 </span>
  23. <span class="desc">
  24. <i class="fa fa-check"></i> Información del usuario </span>
  25. </a>
  26. </li>
  27. <li>
  28. <a href="#tab3" data-toggle="tab" class="step">
  29. <span class="number">3 </span>
  30. <span class="desc">
  31. <i class="fa fa-check"></i> Confirmar </span>
  32. </a>
  33. </li>
  34. </ul>
  35. <div id="bar" class="progress progress-striped" role="progressbar">
  36. <div class="progress-bar progress-bar-success" style="width: 25%;">
  37. </div>
  38. </div>
  39. <div class="tab-content">
  40. <div class="alert alert-error hide">
  41. <button class="close" data-dismiss="alert"></button>
  42. Tienes algunos errores. Favor de verificar.
  43. </div>
  44. <div class="alert alert-success hide">
  45. <button class="close" data-dismiss="alert"></button>
  46. Información Correcta!
  47. </div>
  48. <div class="tab-pane active" id="tab1">
  49. <h3 class="block">Proporciona la información de la cuenta de usuario</h3>
  50. <div id="error_explanation"></div>
  51. <div class="form-group">
  52. <%= f.label :usertype, "", { class: "col-md-3 control-label" } do %> Tipo de usuario <span class="required">*</span> <% end %>
  53. <div class="col-md-4">
  54. <%= f.select :usertype, (@options_for_select), { prompt: "Seleccione" }, { class: 'form-control select2' } %>
  55. </div>
  56. </div>
  57. <div class="form-group hidden" id="pointsale_div">
  58. <%= f.label :pointsale_id, "", {:class=>"col-md-3 control-label"} do %> Punto de venta <span class="required">*</span> <% end %>
  59. <div class="col-md-4">
  60. <%= f.collection_select :pointsale_id, Pointsale.activos, :id, :name, { prompt: "Seleccione", selected: (current_user.usertype == 'G' ? current_user.pointsale_id : @user.pointsale_id) }, { class: "form-control select2",
  61. disabled: (true if current_user.usertype == 'G') } %>
  62. <%= f.hidden_field :pointsale_id, value: (current_user.usertype == 'G' ? current_user.pointsale_id : @user.pointsale_id), id: 'pointsale_id' %>
  63. </div>
  64. </div>
  65. <div class="form-group hidden" id="warehouse_div">
  66. <%= f.label :warehouse_id, "", { class: "col-md-3 control-label" } do %> Almacén <span class="required">*</span> <% end %>
  67. <div class="col-md-4">
  68. <%= f.collection_select :warehouse_id, Warehouse.activos, :id, :name, { prompt: "Seleccione" }, { class: "form-control select2" } %>
  69. </div>
  70. </div>
  71. <div class="form-group">
  72. <%= f.label :userid, "Nombre de usuario", { class: "col-md-3 control-label" } do %> Usuario <span class="required">*</span> <% end %>
  73. <div class="col-md-4">
  74. <%= f.text_field :userid, { class: "form-control", disabled: @user.persisted? } %>
  75. <span class="help-block"> El usuario no debe de contener espacios. </span>
  76. </div>
  77. </div>
  78. <% unless @user.persisted? %>
  79. <div class="form-group">
  80. <%= f.label :password, "Contraseña", { class: "col-md-3 control-label" } do %> Contraseña <span class="required">*</span> <% end %>
  81. <div class="col-md-4">
  82. <%= f.password_field :password, { class: "form-control"} %>
  83. </div>
  84. </div>
  85. <div class="form-group">
  86. <%= f.label :password_confirmation, "Confirmar contraseña", { class: "col-md-3 control-label" } do %> Confirmar Contraseña <span class="required">*</span> <% end %>
  87. <div class="col-md-4">
  88. <%= f.password_field :password_confirmation, { class: "form-control" } %>
  89. </div>
  90. </div>
  91. <% end %>
  92. </div>
  93. <div class="tab-pane" id="tab2">
  94. <h3 class="block">Proporciona los datos particulares del usuario</h3>
  95. <div class="form-group">
  96. <%= f.label :first_name, "Nombre", { class: "col-md-3 control-label" } do %> Nombre <span class="required">*</span> <% end %>
  97. <div class="col-md-4">
  98. <%= f.text_field :first_name, { class: "form-control" } %>
  99. </div>
  100. </div>
  101. <div class="form-group">
  102. <%= f.label :last_name, "Apellidos", { class: "col-md-3 control-label" } do %> Apellidos <span class="required">*</span> <% end %>
  103. <div class="col-md-4">
  104. <%= f.text_field :last_name, { class: "form-control" } %>
  105. </div>
  106. </div>
  107. <div class="form-group">
  108. <%= f.label :email, "Correo", { class: "col-md-3 control-label" } do %> Correo electrónico <span class="required">*</span> <% end %>
  109. <div class="col-md-4">
  110. <div class="input-icon">
  111. <i class="fa fa-envelope"></i>
  112. <%= f.text_field :email, { class: "form-control", placeholder: "ejemplo@correo.com" } %>
  113. </div>
  114. </div>
  115. </div>
  116. </div>
  117. <div class="tab-pane" id="tab3">
  118. <h3 class="block">Confirma la cuenta</h3>
  119. <h4 class="form-section">Información del usuario</h4>
  120. <div class="form-group">
  121. <label class="control-label col-md-3">Usuario</label>
  122. <div class="col-md-4">
  123. <span class="form-control-static" data-display="user[userid]"></span>
  124. </div>
  125. </div>
  126. <div class="form-group hidden" id="pointsale_info_div">
  127. <label class="control-label col-md-3">Punto de venta</label>
  128. <div class="col-md-4">
  129. <span class="form-control-static" data-display="user[pointsale_id]"></span>
  130. </div>
  131. </div>
  132. <div class="form-group hidden" id="warehouse_info_div">
  133. <label class="control-label col-md-3">Almacén</label>
  134. <div class="col-md-4">
  135. <span class="form-control-static" data-display="user[warehouse_id]"></span>
  136. </div>
  137. </div>
  138. <div class="form-group">
  139. <label class="control-label col-md-3">Tipo de usuario</label>
  140. <div class="col-md-4">
  141. <span class="form-control-static" data-display="user[usertype]"></span>
  142. </div>
  143. </div>
  144. <h4 class="form-section">Datos particulares del usuario</h4>
  145. <div class="form-group">
  146. <label class="control-label col-md-3">Nombre:</label>
  147. <div class="col-md-4">
  148. <span class="form-control-static" data-display="user[first_name]"></span>
  149. </div>
  150. </div>
  151. <div class="form-group">
  152. <label class="control-label col-md-3">Apellidos:</label>
  153. <div class="col-md-4">
  154. <span class="form-control-static" data-display="user[last_name]"></span>
  155. </div>
  156. </div>
  157. <div class="form-group">
  158. <label class="control-label col-md-3">Correo electrónico:</label>
  159. <div class="col-md-4">
  160. <span class="form-control-static" data-display="user[email]"></span>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="form-actions">
  165. <div class="row">
  166. <div class="col-md-offset-3 col-md-9">
  167. <a href="javascript:;" class="btn default button-previous disabled" style="display: none;">
  168. <i class="fa fa-angle-left"></i> Regresar </a>
  169. <a href="javascript:;" class="btn blue button-next">
  170. Siguiente <i class="fa fa-angle-right"></i>
  171. </a>
  172. <a href="javascript:;" class="btn green button-submit" style="display: none;">
  173. Guardar <i class="fa fa-check"></i>
  174. </a>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. <% end %>
  183. </div>
  184. <script type="text/javascript">
  185. $(document).on("page:change", function() {
  186. App.init();
  187. <% if @user.persisted? %>
  188. <% if @user.pointsale.present? && @user.usertype != 'A'%>
  189. $('#pointsale_info_div').removeClass('hidden');
  190. $('#pointsale_div').removeClass('hidden');
  191. $("#user_pointsale_id").select2();
  192. <% elsif @user.warehouse.present? && @user.usertype != 'A'%>
  193. $('#warehouse_info_div').removeClass('hidden');
  194. $('#warehouse_div').removeClass('hidden');
  195. $("#user_warehouse_id").select2();
  196. <% end %>
  197. <% end %>
  198. });
  199. $('#user_pointsale_id').on('change', function() {
  200. $('#pointsale_id').val($(this).val());
  201. });
  202. $('#user_usertype').on('change', function() {
  203. var type = $(this).val();
  204. switch(type) {
  205. case 'A':
  206. $('#pointsale_info_div').addClass('hidden');
  207. $('#warehouse_info_div').addClass('hidden');
  208. $('#warehouse_div').addClass('hidden');
  209. $('#pointsale_div').addClass('hidden');
  210. $('#user_warehouse_id').select2('val', null);
  211. $('#user_pointsale_id').select2('val', null);
  212. break;
  213. case 'G':
  214. $('#pointsale_info_div').removeClass('hidden');
  215. $('#warehouse_info_div').addClass('hidden');
  216. $('#user_warehouse_id').select2('val', null);
  217. $('#pointsale_div').removeClass('hidden');
  218. $("#user_pointsale_id").select2();
  219. $('#warehouse_div').addClass('hidden');
  220. break;
  221. case 'S':
  222. $('#warehouse_info_div').removeClass('hidden');
  223. $('#pointsale_info_div').addClass('hidden');
  224. $('#user_pointsale_id').select2('val', null);
  225. $('#warehouse_div').removeClass('hidden');
  226. $("#user_warehouse_id").select2();
  227. $('#pointsale_div').addClass('hidden');
  228. break;
  229. case 'C':
  230. $('#pointsale_info_div').removeClass('hidden');
  231. $('#warehouse_info_div').addClass('hidden');
  232. $('#user_warehouse_id').select2('val', null);
  233. $('#pointsale_div').removeClass('hidden');
  234. $("#user_pointsale_id").select2();
  235. $('#warehouse_div').addClass('hidden');
  236. break;
  237. }
  238. // if($(this).val() == 'S') {
  239. // $('#warehouse_info_div').removeClass('hidden');
  240. // $('#pointsale_info_div').addClass('hidden');
  241. // $('#user_pointsale_id').select2('val', null);
  242. // $('#warehouse_div').removeClass('hidden');
  243. // $("#user_warehouse_id").select2();
  244. // $('#pointsale_div').addClass('hidden');
  245. // } else {
  246. // $('#pointsale_info_div').removeClass('hidden');
  247. // $('#warehouse_info_div').addClass('hidden');
  248. // $('#user_warehouse_id').select2('val', null);
  249. // $('#pointsale_div').removeClass('hidden');
  250. // $("#user_pointsale_id").select2();
  251. // $('#warehouse_div').addClass('hidden');
  252. // }
  253. });
  254. </script>