From 05d908db3ad62e46eb22bb73e397ba8bf61cb36c Mon Sep 17 00:00:00 2001 From: whizkidzz Date: Fri, 6 Apr 2012 18:31:41 +0200 Subject: Added "interface_selection" type to enable interface selection in tinydns server This is usefull in multiwan setup and to check if a server behind pfsense is still running. So that tinydns can change the corresponding records --- usr/local/www/javascript/row_helper_dynamic.js | 13 ++++---- usr/local/www/pkg_edit.php | 41 ++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 11 deletions(-) (limited to 'usr/local') diff --git a/usr/local/www/javascript/row_helper_dynamic.js b/usr/local/www/javascript/row_helper_dynamic.js index 30312ba..07df2c1 100755 --- a/usr/local/www/javascript/row_helper_dynamic.js +++ b/usr/local/www/javascript/row_helper_dynamic.js @@ -24,27 +24,30 @@ var temp_streaming_text = ""; var addRowTo = (function() { return (function (tableId, objectSize) { - var d, tbody, tr, td, bgc, i, ii, j; + var d, tbody, tr, td, bgc, i, ii, j, size; d = document; tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0); tr = d.createElement("tr"); totalrows++; - if (!objectSize) - objectSize = rowsize[i]; + size = objectSize; for (i = 0; i < field_counter_js; i++) { + if (!objectSize) + size = rowsize[i]; td = d.createElement("td"); if(typeof(rowtype[i]) == 'function') { - td.innerHTML="" + rowtype[i](rowname[i], objectSize, totalrows) + " "; + td.innerHTML="" + rowtype[i](rowname[i], size, totalrows) + " "; } else if(rowtype[i] == 'textbox') { td.innerHTML=" "; } else if(rowtype[i] == 'select') { td.innerHTML=" "; + } else if(rowtype[i] == 'interfaces_selection') { + td.innerHTML=" "; } else if(rowtype[i] == 'select_source') { td.innerHTML=" "; } else if(rowtype[i] == 'checkbox') { td.innerHTML=" "; } else if(rowtype[i] == 'input') { - td.innerHTML=" "; + td.innerHTML=" "; } else if(rowtype[i] == 'password') { td.innerHTML=" "; } diff --git a/usr/local/www/pkg_edit.php b/usr/local/www/pkg_edit.php index 1fd8b3a..52b1923 100755 --- a/usr/local/www/pkg_edit.php +++ b/usr/local/www/pkg_edit.php @@ -503,7 +503,7 @@ if ($pkg['tabs'] <> "") { } else if($pkga['type'] == "select") { $fieldname = $pkga['fieldname']; if (isset($pkga['multiple'])) { - $multiple = 'multiple="multiple"'; + $multiple = 'multiple="multiple"'; $items = explode(',', $value); $fieldname .= "[]"; } else { @@ -653,6 +653,10 @@ if ($pkg['tabs'] <> "") { else $values = explode(',', $value); $ifaces["lo0"] = "loopback"; + if(isset($pkga['advancedfield']) && $adv_enabled) + $advanced .="/n"; + else + echo "/n"; foreach($ifaces as $ifname => $iface) { $selected = (in_array($ifname, $values) ? 'selected' : ''); if(isset($pkga['advancedfield']) && $adv_enabled) @@ -681,6 +685,7 @@ if ($pkg['tabs'] <> "") { foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { echo "rowname[" . $fieldcounter . "] = \"" . $rowhelper['fieldname'] . "\";\n"; echo "rowtype[" . $fieldcounter . "] = \"" . $rowhelper['type'] . "\";\n"; + echo "rowsize[" . $fieldcounter . "] = \"" . $rowhelper['size'] . "\";\n"; $fieldcounter++; } ?> @@ -747,9 +752,9 @@ if ($pkg['tabs'] <> "") { if($trc == 0) { /* * no records loaded. - * just show a generic line non-populated with saved data - */ - foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { + * just show a generic line non-populated with saved data + */ + foreach($pkga['rowhelper']['rowhelperfield'] as $rowhelper) { if($rowhelper['value'] <> "") $value = $rowhelper['value']; $fieldname = $rowhelper['fieldname']; $options = ""; @@ -892,10 +897,34 @@ function display_row($trc, $value, $fieldname, $type, $rowhelper, $size) { foreach($rowhelper['options']['option'] as $rowopt) { $selected = ""; if($rowopt['value'] == $value) $selected = " SELECTED"; - $text .= ""; + $text .= ""; echo "\n"; } echo "\n"; + } else if($type == "interfaces_selection") { + $size = ($size ? "size=\"{$size}\"" : ''); + $multiple = ''; + if (isset($rowhelper['multiple'])) { + $fieldname .= '[]'; + $multiple = 'multiple'; + } + echo "\n"; } else if($type == "select_source") { echo "\n"; -- cgit v1.1