%PDF- %PDF-
Direktori : /backups/router/usr/local/opnsense/mvc/app/views/OPNsense/Interface/ |
Current File : //backups/router/usr/local/opnsense/mvc/app/views/OPNsense/Interface/vip.volt |
<script> $( document ).ready(function() { $("#grid-vips").UIBootgrid( { search:'/api/interfaces/vip_settings/searchItem/', get:'/api/interfaces/vip_settings/getItem/', set:'/api/interfaces/vip_settings/setItem/', add:'/api/interfaces/vip_settings/addItem/', del:'/api/interfaces/vip_settings/delItem/', options:{ initialSearchPhrase: getUrlHash('search'), requestHandler: function(request){ if ( $('#mode_filter').val().length > 0) { request['mode'] = $('#mode_filter').val(); } return request; }, formatters: { vhid: function (column, row) { return row.vhid_txt; } } } } ); $("#mode_filter").change(function(){ $('#grid-vips').bootgrid('reload'); }); $("#vip\\.mode").change(function(){ $(".mode").closest("tr").hide(); let show_advanced = $("#show_advanced_formDialogDialogVip").hasClass("fa-toggle-on"); $(".mode_"+$(this).val()).each(function(){ if (($(this).hasClass("advanced") && show_advanced) || !$(this).hasClass("advanced")) { $(this).closest("tr").show(); } }); // carp button if ($(this).val() == 'carp') { $("#vip\\.vhid").css('width', '100px').addClass('btn-group'); $(".carp_btn").show(); } else { $("#vip\\.vhid").css('width', ''); $(".carp_btn").hide(); } }); // hook mode change to "show advanced" toggle to show dependant advanced fields $("#show_advanced_formDialogDialogVip").click(function(e){ $("#vip\\.mode").change(); }); let vhid_btn = $("<button type='button' class='btn carp_btn btn-default btn-group'>").html("{{ lang._('Select an unassigned VHID')}}"); $("#vip\\.vhid").closest("td").prepend( $("<div class='btn-group'>").append( $("#vip\\.vhid").detach(), vhid_btn ) ); $("#mode_filter_container").detach().prependTo('#grid-vips-header > .row > .actionBar > .actions'); /** * select an unassigned carp vhid */ vhid_btn.click(function(){ ajaxGet("/api/interfaces/vip_settings/get_unused_vhid", {}, function(data){ if (data.vhid !== undefined) { $("#vip\\.vhid").val(data.vhid); } }); }); $("#reconfigureAct").SimpleActionButton(); }); </script> <div class="tab-content content-box"> <div class="hidden"> <!-- filter per type container --> <div id="mode_filter_container" class="btn-group"> <select id="mode_filter" data-title="{{ lang._('Filter type') }}" class="selectpicker" multiple="multiple" data-width="200px"> <option value="ipalias">{{ lang._('IP Alias') }}</option> <option value="carp">{{ lang._('CARP') }}</option> <option value="proxyarp">{{ lang._('Proxy ARP') }}</option> <option value="other">{{ lang._('Other') }}</option> </select> </div> </div> <table id="grid-vips" class="table table-condensed table-hover table-striped" data-editDialog="DialogVip" data-editAlert="VipChangeMessage"> <thead> <tr> <th data-column-id="uuid" data-type="string" data-identifier="true" data-visible="false">{{ lang._('ID') }}</th> <th data-column-id="address" data-type="string">{{ lang._('Address') }}</th> <th data-column-id="vhid" data-type="string" data-formatter="vhid" >{{ lang._('VHID') }}</th> <th data-column-id="interface" data-type="string">{{ lang._('Interface') }}</th> <th data-column-id="mode" data-type="string">{{ lang._('Type') }}</th> <th data-column-id="descr" data-type="string">{{ lang._('Description') }}</th> <th data-column-id="commands" data-width="7em" data-formatter="commands" data-sortable="false">{{ lang._('Commands') }}</th> </tr> </thead> <tbody> </tbody> <tfoot> <tr> <td></td> <td> <button data-action="add" type="button" class="btn btn-xs btn-primary"><span class="fa fa-fw fa-plus"></span></button> <button data-action="deleteSelected" type="button" class="btn btn-xs btn-default"><span class="fa fa-fw fa-trash-o"></span></button> </td> </tr> </tfoot> </table> <div class="col-md-12"> <div id="VipChangeMessage" class="alert alert-info" style="display: none" role="alert"> {{ lang._('After changing settings, please remember to apply them with the button below') }} </div> <hr/> <button class="btn btn-primary" id="reconfigureAct" data-endpoint='/api/interfaces/vip_settings/reconfigure' data-label="{{ lang._('Apply') }}" data-error-title="{{ lang._('Error reconfiguring virtual IPs') }}" type="button" ></button> <br/><br/> </div> </div> {{ partial("layout_partials/base_dialog",['fields':formDialogVip,'id':'DialogVip','label':lang._('Edit Virtual IP')])}}