<%= form_for @v_lan , as: :v_lan, method: (@v_lan.id.blank? ? "post" : "put"), html: { class: "form-horizontal vlan-form" , role: "form"} do |v| %>

<%= (@v_lan.id.blank? ? "Create VLAN" : "Edit VLAN") %>

<% if v.object.v_lan_id != '1' %>
<%= v.label :v_lan_id, "VLAN ID*".html_safe, :class=>"col-sm-4 control-label" %>
<%existing_vlan_ids = @current_network.v_lans.where("v_lan_id != ?", v.object.v_lan_id || "").pluck(:v_lan_id).map(&:to_i) %> <%#existing_vlan_ids - [v.object.v_lan_id.to_i] if @v_lan.id.present? %> <%vlan_id = (3..4096).to_a - existing_vlan_ids %> <%= v.select :v_lan_id, v.object.v_lan_id != '1' && !@existing_vlan_ids.include?(1) ? vlan_id.unshift(['Default',1]) : vlan_id, {}, :class => 'form-control', :data => { validation: 'required' } %> <%= hidden_field_tag :selected_vlan,v.object.v_lan_id%>
<% else %> <%= v.hidden_field :v_lan_id,:value => v.object.v_lan_id %> <% end %>
<%=v.label :ip_address, "IP Address ".html_safe, :class=>"col-sm-4 control-label"%>
<%= v.text_field :ip_address,:class=>"form-control devices ip-mask ip", :placeholder=>"IP Address", :data => { :validation => "required ip verify_ip dhcp_range_check", 'validation-url' => verify_ip_home_configuration_index_path(:wired_config => v.object.id, :verify_for => "wired_config",:home_id => @current_network.id) } %>
<%=v.label :net_mask, "Netmask ".html_safe, :class=>"col-sm-4 control-label"%>
<%= v.text_field :net_mask,:class=>"form-control devices ip-mask subnet_mask ", :placeholder=>"Netmask",'data-validation' => "required ip subnet-mask " %>
<%= v.select :uplink_priority,[['Primary','2'],['Secondary','3']],{},:class => 'col-sm-6 form-control'%>
<%=v.label :dns_mode, "DNS Mode".html_safe, :class=>"col-sm-4 control-label"%>
<%=v.select(:dns_mode, NetworkSsid::DNS_MODE, {}, :class=>"form-control", :data => { validation: 'required'}) %>
<%=v.label :dns1, "Primary DNS".html_safe, :class=>"col-sm-4 control-label"%>
<%= v.text_field :dns1,:class => "form-control ip-mask p_dns", :placeholder => "Primary DNS",:data => { validation: 'required ip ip-netmask-gateway'} %>
<%=v.label :dns2, "Secondary DNS".html_safe, :class=>"col-sm-4 control-label"%>
<%= v.text_field :dns2,:class=>"form-control ip-mask s_dns", :placeholder=>"Secondary DNS", 'data-validation' => 'required ip ip-netmask-gateway'%>
<%= v.text_field :vlan_qos, :class=>"form-control slider", :placeholder=>"Vlan QoS", "data-slider-value" => v.object.vlan_qos || '0', "data-slider-min"=>"0", "data-slider-max"=>"1048576" %>
<%= text_field_tag "slider_output", v.object.vlan_qos, :class => "form-control input-sm slider-output col-md-8", :disabled => true, :size => 5, :style => "font-size: 14px;" %>
Kbps
<%=v.select(:dhcp_relay_server, [["Disable","1"],["Enable","2"],['Relay','3']],{},:class=>"form-control dhcp_server",'data-validation'=> "required" )%>
<%= v.text_field :dhcp_lease_time, :class=>"form-control devices", :placeholder=>"DHCP Lease Time",'data-validation'=> "required phone-only-integer leasetime-check" %>
<% (@v_lan.dhcp_ranges || []).each_with_index do |dhcp,index|%>
>
<%= text_field_tag 'v_lan[dhcp_ranges][][START]',dhcp['START'],:class=>"form-control dhcp_start",:style=>"width:140px",:placeholder=>"DHCP Start",:data => { validation: 'required ip ip-range-check ip-conflict-dhcp_start dhcp_range_check'}%>
<%= text_field_tag 'v_lan[dhcp_ranges][][END]',dhcp['END'],:class=>"form-control dhcp_end",:style=>"width:140px", :placeholder=>"DHCP End",:data => { validation: 'required ip dhcp_check ip-range-check ip-conflict-dhcp_end dhcp_range_check'}%>
<%=link_to " X ","javascript:void(0);", {:class => "remove_range icon-delete btn btn-sm btn-danger"} %>
<% end %>
<% (@v_lan.dhcp_mappings || []).each_with_index do |dhcp,index|%>
>
<%= text_field_tag 'v_lan[dhcp_mappings][][IPADDR]',dhcp['IPADDR'],:class=>"form-control dhcp_ip",:style=>"width:140px",:placeholder=>"IPAddress",:data => { validation: 'required-check dhcp_ip-range-check ip-conflict-dhcp_ip dhcp_range_check','dependent-field' => '.dhcp_mac '}%>
<%= text_field_tag 'v_lan[dhcp_mappings][][MAC]',dhcp['MAC'],:class=>"form-control dhcp_mac",:style=>"width:140px", :placeholder=>"MAC",:data => { validation: ' required-check dhcp-mac_id','dependent-field' => '.dhcp_ip '}%>
<%=link_to " X ","javascript:void(0);", {:class => "remove_mapping icon-delete btn btn-sm btn-danger"} %>
<% end %>
<% (@v_lan.dhcp_options || []).each_with_index do |dhcp,index|%>
>
<%= select_tag 'v_lan[dhcp_options][][CODE]', options_for_select([[15 ,15], [42,42], [43,43], [66,66], [67,67],[138,138],[150,150]],dhcp['CODE']),:style=>"width:180px",:class=>"form-control dhcp_code", :data => { validation: 'required dhcp_code'} %>
<% if ['66','67','138','150'].include?(dhcp['TYPE'])%> <%= select_tag 'v_lan[dhcp_options][][TYPE]', options_for_select([['Text' ,'Text'], ['IP', 'IP'], ['Hex', 'Hex']],dhcp['TYPE']),:style=>"width:180px",:class=>"form-control dhcp_type", :disabled=>true %> <% else %> <%= select_tag 'v_lan[dhcp_options][][TYPE]', options_for_select([['Text' ,'Text'], ['IP', 'IP'], ['Hex', 'Hex']],dhcp['TYPE']),:style=>"width:180px",:class=>"form-control dhcp_type" %> <% end %>
<%= text_field_tag 'v_lan[dhcp_options][][VALUE]',dhcp['VALUE'],:class=>"form-control dhcp_value",:style=>"width:250px", :placeholder=>"VALUE",:data => { validation: 'required'}%>
<%=link_to " X ","javascript:void(0);", {:class => "remove_option icon-delete btn btn-sm btn-danger"} %>
<% end %>

<%=v.select(:captive_portal, [["Disable","0"],["External (Radius)","1"],["External (Local Auth)","3"],["Internal (Wavespot)","2"]],{},:class=>"form-control captive_portal", :data => { validation: 'required'}) %>
<%=v.select(:auth_radius_id,options_from_collection_for_select(@r_config, 'id', 'radius_name',v.object.auth_radius_id),{:include_blank=>true},:class=>"form-control", :data => { validation: 'required'}) %>
<%=v.select(:acc_radius_enabled, [["Disable","0"],["Enable","1"]],{},:class=>"form-control acc_radius_enabled", :data => { validation: 'required'}) %>
<%=v.select(:mac_auth, [["Disable","0"],["Enable","1"]],{},:class=>"form-control acc_radius_enabled", :data => { validation: 'required'}) %>
<%=v.select(:acc_radius_id, options_from_collection_for_select(@r_acc, 'id', 'radius_name',v.object.acc_radius_id),{:include_blank=>true},:class=>"form-control", :data => { validation: 'required'}) %>
<%= v.number_field :default_interim_time, min: 61,max: 86400 ,:class => 'form-control' %>(Seconds)
<%= v.number_field :default_idle_timeout, min: 61,max: 86400 ,:class => 'form-control' %>(Seconds)
<%= v.text_field :splash_url,:class=>"form-control devices", :placeholder=>"Splash URL", 'data-validation-help' =>"eg..http://www.example.com",:data => {:validation => "url_ip" , 'validation-error-msg' => "Please Specify a valid URL"}%>
<%=v.radio_button(:overwrite_success_url, "false") %> The URL they were trying to fetch
<%=v.radio_button(:overwrite_success_url, "true") %> A different URL: <%= v.text_field :success_url,:class=>"form-control", :placeholder=>"URL" ,'data-validation-help' =>"eg..http://www.example.com",:data => {:validation => "url_ip" , 'validation-error-msg' => "Please Specify a valid URL" }%>
<%if @current_network.vendor_type == "4"%>
<%=v.radio_button(:uam_secret,"true", :class => "uam-scrt") %> Enable
<%=v.radio_button(:uam_secret,"false", :class => "uam-scrt") %> Disable
<%= v.password_field :uam_secret_key, :value => v.object.uam_secret_key, :class => "form-control", :placeholder => "UAM Secret Key", :data => { validation: 'required length'}, 'data-validation-length'=> "8-63", autocomplete: "new-password" %>
<%end%>
<%=v.select(:wallgarden, [["Disable","0"],["Enable","1"]],{},:class=>"form-control wallgarden") %>
<%= v.text_field :walled_garden_range,:class=>"form-control devices walled_garden_range", :placeholder=>" Domains" ,'data-validation-help' =>"eg..example.com",:data => {:validation => "ip_domain" , 'validation-error-msg' => "Please Specify a valid Domain or IP"}%>
<%= v.text_field :per_user_qos, :class=>"form-control slider col-sm-6", :placeholder=>"Per User QoS", "data-slider-value" => v.object.per_user_qos || '0', "data-slider-min"=>"0", "data-slider-max"=>"20480" %>
<%= text_field_tag "slider_output", v.object.per_user_qos, :class => "form-control input-sm slider-output col-md-8", :disabled => true, :size => 5, :style => "font-size: 14px;" %>
 Kbps
<%if @v_lan.id.blank? @name = 'Create' @url = '/v_lans' @method = 'POST' else @name = 'Update' @url = "/v_lans/#{@v_lan.id}" @method = "PATCH" end %>
<%= v.button @name,:class=>"btn btn-success vlan_submit",'data-url' => @url,'data-method' => @method %> <%= link_to "Cancel", home_index_path, :class => "btn btn-primary" ,:onclick => '$("#myModal").modal("hide")' %>
<% end %>