diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2007-07-06 18:46:44 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2007-07-06 18:46:44 +0000 |
commit | 8a58063d2829acd0186798fe2345b6fb647f3338 (patch) | |
tree | f77ac7d7cc4a111d381813048de408b1ce3f97d6 /usr/local/www/pool.js | |
parent | aa1ab1da895f3ad49163e6a6d2dcf3f399d6cefb (diff) | |
download | pfsense-8a58063d2829acd0186798fe2345b6fb647f3338.zip pfsense-8a58063d2829acd0186798fe2345b6fb647f3338.tar.gz |
Improve the load balancing pool edit screen.
Submitted-by: Chris Daniel
Diffstat (limited to 'usr/local/www/pool.js')
-rwxr-xr-x | usr/local/www/pool.js | 112 |
1 files changed, 106 insertions, 6 deletions
diff --git a/usr/local/www/pool.js b/usr/local/www/pool.js index 07cb2aa..b6f260e 100755 --- a/usr/local/www/pool.js +++ b/usr/local/www/pool.js @@ -33,16 +33,27 @@ function AddServerToPool(form) { var IntOrIp - var theSel = form['servers[]']; + var enabledSel = form['servers[]']; + var disabledSel = form['serversdisabled[]']; if (form.type.selectedIndex == 0) IntOrIp = form.ipaddr; else IntOrIp = form.interface; - for(i = theSel.length - 1; i >= 0; i--) + // Check items in "enabled" list + for(i = enabledSel.length - 1; i >= 0; i--) { - if(theSel.options[i].value == IntOrIp.value) { - alert("IP Address Already In List"); + if(enabledSel.options[i].value == IntOrIp.value) { + alert("IP Address Already In 'Enabled' List"); + return true; + } + } + + // Check items in "disabled" list + for(i = disabledSel.length - 1; i >= 0; i--) + { + if(disabledSel.options[i].value == IntOrIp.value) { + alert("IP Address Already In 'Disabled' List"); return true; } } @@ -72,9 +83,9 @@ function AllServers(id, selectAll) { } -function RemoveServerFromPool(form) +function RemoveServerFromPool(form, field) { - var theSel = form['servers[]']; + var theSel = form[field]; var selIndex = theSel.selectedIndex; if (selIndex != -1) { for(i=theSel.length-1; i>=0; i--) @@ -89,3 +100,92 @@ function RemoveServerFromPool(form) } } } + +function addOption(theSel, theText, theValue) +{ + var newOpt = new Option(theText, theValue); + var selLength = theSel.length; + theSel.options[selLength] = newOpt; +} + +function deleteOption(theSel, theIndex) +{ + var selLength = theSel.length; + if(selLength>0) + { + theSel.options[theIndex] = null; + } +} + +function moveOptions(theSelFrom, theSelTo) +{ + var selLength = theSelFrom.length; + var selectedText = new Array(); + var selectedValues = new Array(); + var selectedCount = 0; + + var i; + + // Find the selected Options in reverse order + // and delete them from the 'from' Select. + for(i=selLength-1; i>=0; i--) + { + if(theSelFrom.options[i].selected) + { + selectedText[selectedCount] = theSelFrom.options[i].text; + selectedValues[selectedCount] = theSelFrom.options[i].value; + deleteOption(theSelFrom, i); + selectedCount++; + } + } + + // Add the selected text/values in reverse order. + // This will add the Options to the 'to' Select + // in the same order as they were in the 'from' Select. + for(i=selectedCount-1; i>=0; i--) + { + addOption(theSelTo, selectedText[i], selectedValues[i]); + } +} + +// functions up() and down() modified from http://www.babailiica.com/js/sorter/ + +function up(obj) { + var sel = new Array(); + for (var i=0; i<obj.length; i++) { + if (obj[i].selected == true) { + sel[sel.length] = i; + } + } + for (i in sel) { + if (sel[i] != 0 && !obj[sel[i]-1].selected) { + var tmp = new Array(obj[sel[i]-1].text, obj[sel[i]-1].value); + obj[sel[i]-1].text = obj[sel[i]].text; + obj[sel[i]-1].value = obj[sel[i]].value; + obj[sel[i]].text = tmp[0]; + obj[sel[i]].value = tmp[1]; + obj[sel[i]-1].selected = true; + obj[sel[i]].selected = false; + } + } +} + +function down(obj) { + var sel = new Array(); + for (var i=obj.length-1; i>-1; i--) { + if (obj[i].selected == true) { + sel[sel.length] = i; + } + } + for (i in sel) { + if (sel[i] != obj.length-1 && !obj[sel[i]+1].selected) { + var tmp = new Array(obj[sel[i]+1].text, obj[sel[i]+1].value); + obj[sel[i]+1].text = obj[sel[i]].text; + obj[sel[i]+1].value = obj[sel[i]].value; + obj[sel[i]].text = tmp[0]; + obj[sel[i]].value = tmp[1]; + obj[sel[i]+1].selected = true; + obj[sel[i]].selected = false; + } + } +} |