diff --git a/src/www/interfaces.php b/src/www/interfaces.php
index e49bcbdfe..b69ffaa5f 100644
--- a/src/www/interfaces.php
+++ b/src/www/interfaces.php
@@ -1543,6 +1543,94 @@ include("head.inc");
$("#addgatewayv6").toggleClass("hidden visible");
});
+ //
+ // new gateway action
+ //
+ $('#gwsave').click(function () {
+ event.preventDefault();
+ $('#gwsave').prop('disabled', true);
+ var iface = $('#if').val();
+ var name = $('#name').val();
+ var descr = $('#gatewaydescr').val();
+ var gatewayip = $('#gatewayip').val();
+ var ajaxhelper = "&ajaxip=" + escape($('#ipaddr').val()) + "&ajaxnet=" + escape($('#subnet').val());
+ var defaultgw = "";
+ if ($("#defaultgw").prop('checked')) {
+ defaultgw = "&defaultgw=on";
+ }
+ var fargw = "";
+ if ($("#fargw").prop('checked')) {
+ fargw = "&fargw=on";
+ }
+ jQuery.ajax( "system_gateways_edit.php", {
+ type: 'post',
+ data: 'isAjax=true&ipprotocol=inet' + defaultgw + fargw + ajaxhelper + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip),
+ error: function(request, textStatus, errorThrown){
+ if (textStatus === "error" && request.getResponseHeader("Content-Type").indexOf("text/plain") === 0) {
+ alert(request.responseText);
+ } else {
+ alert("Sorry, we could not create your IPv4 gateway at this time.");
+ }
+ $('#gwsave').prop('disabled', false);
+ },
+ success: function(response) {
+ $("#addgateway").toggleClass("hidden visible");
+ var selected = "selected=selected";
+ if (!$("#multiwangw").prop('checked')) {
+ selected = "";
+ }
+ $('#gateway').append($(" ").attr("value",name).text(escape(name) + " - " + gatewayip));
+ $('#gateway').selectpicker('refresh');
+ $('#gwsave').prop('disabled', false);
+ }
+ });
+ });
+ $("#gwcancel").click(function(){
+ $("#addgateway").toggleClass("hidden visible");
+ });
+
+ //
+ // new gateway v6 action
+ //
+ $('#gwsavev6').click(function () {
+ event.preventDefault();
+ $('#gwsavev6').prop('disabled', true);
+ var iface = $('#if').val();
+ var name = $('#namev6').val();
+ var descr = $('#gatewaydescrv6').val();
+ var gatewayip = $('#gatewayipv6').val();
+ var ajaxhelper = "&ajaxip=" + escape($('#ipaddrv6').val()) + "&ajaxnet=" + escape($('#subnetv6').val());
+ var defaultgw = "";
+ if ($("#defaultgwv6").prop('checked')) {
+ defaultgw = "&defaultgw=on";
+ }
+ jQuery.ajax( "system_gateways_edit.php", {
+ type: 'post',
+ data: 'isAjax=true&ipprotocol=inet6' + defaultgw + ajaxhelper + '&interface=' + escape(iface) + '&name=' + escape(name) + '&descr=' + escape(descr) + '&gateway=' + escape(gatewayip),
+ error: function(request, textStatus, errorThrown){
+ if (textStatus === "error" && request.getResponseHeader("Content-Type").indexOf("text/plain") === 0) {
+ alert(request.responseText);
+ } else {
+ alert("Sorry, we could not create your IPv6 gateway at this time.");
+ }
+ $('#gwsavev6').prop('disabled', false);
+ },
+ success: function(response) {
+ $("#addgatewayv6").toggleClass("hidden visible");
+ var selected = "selected=selected";
+ if (!$("#multiwangwv6").prop('checked')) {
+ selected = "";
+ }
+ $('#gatewayv6').append($(" ").attr("value",name).text(escape(name) + " - " + gatewayip));
+ $('#gatewayv6').selectpicker('refresh');
+ $('#gwsavev6').prop('disabled', false);
+ }
+ });
+ });
+ $("#gwcancelv6").click(function(){
+ $("#addgatewayv6").toggleClass("hidden visible");
+ });
+
// handle dhcp advanced/basic or custom file select
$("#dhcp_mode :input").change(function(){
$(".dhcp_basic").addClass("hidden");
@@ -2078,8 +2166,53 @@ include("head.inc");
endforeach;
?>
+
+
- = gettext('If this interface is a multi-WAN interface, select an existing gateway from the list. For single WAN interfaces a gateway must be ' .
+ = gettext('If this interface is a multi-WAN interface, select an existing gateway from the list ' .
+ 'or add a new one using the button above. For single WAN interfaces a gateway must be ' .
'created but set to auto-detect. For a LAN a gateway is not necessary to be set up.') ?>
@@ -2593,8 +2726,47 @@ include("head.inc");
endforeach;
?>
+
+
- = gettext('If this interface is a multi-WAN interface, select an existing gateway from the list. For single WAN interfaces a gateway must be ' .
+ = gettext('If this interface is a multi-WAN interface, select an existing gateway from the list ' .
+ 'or add a new one using the button above. For single WAN interfaces a gateway must be ' .
'created but set to auto-detect. For a LAN a gateway is not necessary to be set up.') ?>