ASR_BASE
Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/marvell/webui/www/js/panel/wifi/wifiPortTrigger.js b/marvell/webui/www/js/panel/wifi/wifiPortTrigger.js
new file mode 100644
index 0000000..6610c68
--- /dev/null
+++ b/marvell/webui/www/js/panel/wifi/wifiPortTrigger.js
@@ -0,0 +1,216 @@
+
+(function($) {
+
+ $.fn.objWifiPortTrigger = function() {
+
+ this.onLoad = function(flag) {
+ if(flag) {
+ LoadWebPage("//192.168.1.1/html/wifi/wifiPortTrigger.html");
+
+ $("#lt_portTrigger_btnAdd").click(function() {
+ AddPortTriggerEntry();
+ });
+
+ $("#lt_portTrigger_btnDelete").click(function() {
+ DelPortTriggerEntry();
+ });
+
+ } //end flag
+
+ GetFWPortTriggerInfo();
+ }
+
+ function DelPortTriggerEntry() {
+ var entryIdxList = "";
+ $("tbody tr td :checked").each(function() {
+ var entryIdx = $(this).parents("tr").prevAll("tr").length + 1;
+ entryIdxList = entryIdxList + entryIdx + ",";
+ });
+
+ if(""==entryIdxList) {
+ return;
+ }
+
+ var entryMap = new Map();
+ entryMap.put("RGW/firewall/del_port_trigger_index",entryIdxList);
+ var retXml = PostXml("firewall","delete_port_trigger_entry",entryMap);
+ if("OK" == $(retXml).find("setting_response").text()) {
+ GetFWPortTriggerInfo();
+ } else {
+ alert("delete port map entry failed.");
+ }
+ }
+
+
+ function AddPortTriggerEntry() {
+ ShowDlg("divPortTriggerSetDlg",300,100);
+
+ $("#lt_btnSave").click(function() {
+
+ if(!IsPort(GetPortFromElement("txtOutPort")) || !IsPort(GetPortFromElement("txtInPort"))) {
+ $("#lPortTriggerSetError").show();
+ $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_PortFormatError"));
+ return;
+ }
+
+ if(!IsRuleName( $("#txtPortTriggerRule").val())) {
+ $("#lPortTriggerSetError").show();
+ $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_RuleNameError"));
+ return;
+ }
+
+
+ var entryId = $("tbody tr").size() + 1;
+ var preTag = "RGW/firewall/port_trigger/entry_list/entry_" + entryId;
+ var entryMap = new Map();
+ entryMap.put(preTag+"/rule_name", $("#txtPortTriggerRule").val());
+ entryMap.put(preTag+"/out_port",GetPortFromElement("txtOutPort"));
+ entryMap.put(preTag+"/in_port",GetPortFromElement("txtInPort"));
+ entryMap.put(preTag+"/out_proto", $("#selPortTriggerOutProtocol").val());
+ entryMap.put(preTag+"/in_proto", $("#selPortTriggerInProtocol").val());
+ entryMap.put(preTag+"/enabled", $("#selPortTriggerStatus").val());
+
+ CloseDlg();
+ var retXml = PostXml("firewall","add_port_trigger_entry",entryMap);
+ if("OK" == $(retXml).find("setting_response").text()) {
+ GetFWPortTriggerInfo();
+ } else {
+ alert("edit port mapping entry failed.");
+ }
+
+ });
+ }
+
+
+ function GetFWPortTriggerInfo() {
+ $("#tbodyPortTrigger").empty();
+ $("#DeleteAllIpEntry").attr("checked",false);
+ $("#lt_portTrigger_btnDelete").hide();
+
+ var retXml = PostXml("firewall","fw_get_port_trigger_info");
+
+ var bFoundEntry = true;
+ var idx = 1;
+ while(bFoundEntry) {
+ var entryIdx = "entry_" + idx;
+ bFoundEntry = false;
+ $(retXml).find(entryIdx).each(function() {
+ bFoundEntry = true;
+ var rule = $(this).find("rule_name").text();
+ var outPort = $(this).find("out_port").text();
+ var inPort = $(this).find("in_port").text();
+ var outProto = $(this).find("out_proto").text();
+ var inProto = $(this).find("in_proto").text();
+ var enabled = $(this).find("enabled").text();
+ var portEntryInfo = rule + ";" + outPort + ";" + inPort + ";" + outProto + ";"
+ + inProto + ";" + enabled;
+
+ var strStatus="";
+ if(1 == enabled) {
+ strStatus = jQuery.i18n.prop("lt_optEnableSwitch");
+ } else {
+ strStatus = jQuery.i18n.prop("lt_optDisabledSwitch");
+ }
+
+ var htmlTxt = "<tr style='cursor: pointer;'name='" + portEntryInfo + "'><td>" + rule + "</td><td>"
+ + outPort + "</td><td>" + inPort + "</td><td>" + outProto + "</td><td>" + inProto + "</td><td>"
+ + strStatus + "</td> <td><input type='checkbox'></td></tr>";
+ $("#tbodyPortTrigger").append(htmlTxt);
+ });
+ ++idx;
+ $("tbody tr:last td:lt(6)").click(function() {
+ var entryIdx = $(this).parents("tr").prevAll("tr").length;
+ ModifyPortTriggerEntry(entryIdx);
+ });
+ }
+
+ $("#DeleteAllIpEntry").click(function() {
+ if($(this).attr("checked")) {
+ $("tbody :checkbox").attr("checked",true);
+ } else {
+ $("tbody :checkbox").attr("checked",false);
+ }
+ if($("tbody :checked").length>0) {
+ $("#lt_portTrigger_btnDelete").show();
+ } else {
+ $("#lt_portTrigger_btnDelete").hide();
+ }
+ });
+
+ $("tbody :checkbox").click(function() {
+ if($("tbody :checked").length == $("tbody tr").length) {
+ $("#DeleteAllIpEntry").attr("checked",true);
+ } else {
+ $("#DeleteAllIpEntry").attr("checked",false);
+ }
+ if($("tbody :checked").length>0) {
+ $("#lt_portTrigger_btnDelete").show();
+ } else {
+ $("#lt_portTrigger_btnDelete").hide();
+ }
+ });
+ }
+
+ function ModifyPortTriggerEntry(entryIdx) {
+ ShowDlg("divPortTriggerSetDlg",300,100);
+ var entryId = entryIdx + 1;
+ var selector = "tbody tr:eq(" + entryIdx+ ")";
+ var portTriggerEntryInfo = $(selector).attr("name").split(";");
+
+ $("#txtPortTriggerRule").val(portTriggerEntryInfo[0]);
+ SetPortToElement("txtOutPort",portTriggerEntryInfo[1]);
+ SetPortToElement("txtInPort",portTriggerEntryInfo[2]);
+ $("#selPortTriggerOutProtocol").val(portTriggerEntryInfo[3]);
+ $("#selPortTriggerInProtocol").val(portTriggerEntryInfo[4]);
+ $("#selPortTriggerStatus").val(portTriggerEntryInfo[5]);
+
+
+ $("#lt_btnSave").click(function() {
+
+ if(!IsPort(GetPortFromElement("txtOutPort")) || !IsPort(GetPortFromElement("txtInPort"))) {
+ $("#lPortTriggerSetError").show();
+ $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_PortFormatError"));
+ return;
+ }
+
+ if(!IsRuleName( $("#txtPortTriggerRule").val())) {
+ $("#lPortTriggerSetError").show();
+ $("#lPortTriggerSetError").text(jQuery.i18n.prop("lt_RuleNameError"));
+ return;
+ }
+
+
+ if(portTriggerEntryInfo[0] == $("#txtPortTriggerRule").val() && portTriggerEntryInfo[1] == GetPortFromElement("txtOutPort")
+ && portTriggerEntryInfo[2] == GetPortFromElement("txtInPort")&& portTriggerEntryInfo[3] == $("#selPortTriggerOutProtocol").val()
+ && portTriggerEntryInfo[4] == $("#selPortTriggerInProtocol").val() && portTriggerEntryInfo[5] == $("#selPortTriggerStatus").val()) {
+ CloseDlg();
+ return;
+ }
+
+ var preTag = "RGW/firewall/port_trigger/entry_list/entry_" + entryId;
+ var entryMap = new Map();
+ entryMap.put(preTag+"/rule_name", $("#txtPortTriggerRule").val());
+ entryMap.put(preTag+"/out_port",GetPortFromElement("txtOutPort"));
+ entryMap.put(preTag+"/in_port",GetPortFromElement("txtInPort"));
+ entryMap.put(preTag+"/out_proto", $("#selPortTriggerOutProtocol").val());
+ entryMap.put(preTag+"/in_proto", $("#selPortTriggerInProtocol").val());
+ entryMap.put(preTag+"/enabled", $("#selPortTriggerStatus").val());
+
+ CloseDlg();
+ var retXml = PostXml("firewall","edit_port_trigger_entry",entryMap);
+ if("OK" == $(retXml).find("setting_response").text()) {
+ GetFWPortTriggerInfo();
+ } else {
+ alert("edit port mapping entry failed.");
+ }
+ });//$("#lt_btnSave").click(function(){
+ }
+
+ return this;
+ }
+})(jQuery);
+
+
+
+
+