function select_input($attrs, $options, $value = "", $placeholder = "") {
return ($options
? "<select$attrs><option value=''>$placeholder" . optionlist($options, $value, true) . "</select>"
- : "<input$attrs value='" . h($value) . "' placeholder='$placeholder'>"
+ : "<input$attrs size='10' value='" . h($value) . "' placeholder='$placeholder'>"
);
}
if ($primary) {
echo "<tr><td>PRIMARY<td>";
foreach ($primary["columns"] as $key => $column) {
- echo "<select disabled>" . optionlist($fields, $column) . "</select>";
+ echo select_input(" disabled", $fields, $column);
echo "<label><input disabled type='checkbox'>" . lang('descending') . "</label> ";
}
echo "<td><td>\n";
ksort($index["columns"]);
$i = 1;
foreach ($index["columns"] as $key => $column) {
- echo "<span>" . html_select("indexes[$j][columns][$i]", array(-1 => "") + $fields, $column, ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . "(this, '" . js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_") . "');");
+ echo "<span>" . select_input(
+ " name='indexes[$j][columns][$i]' onchange=\"" . ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . "(this, '" . js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_") . "');\"",
+ ($fields ? array_combine($fields, $fields) : $fields),
+ $column
+ );
echo ($jush == "sql" || $jush == "mssql" ? "<input type='number' name='indexes[$j][lengths][$i]' class='size' value='" . h($index["lengths"][$key]) . "'>" : "");
echo ($jush != "sql" ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : "");
echo " </span>";
* @param string name prefix
*/
function indexesChangeColumn(field, prefix) {
- var columns = parentTag(field, 'td').getElementsByTagName('select');
var names = [];
- for (var i=0; i < columns.length; i++) {
- var value = selectValue(columns[i]);
- if (value) {
- names.push(value);
+ for (var tag in { 'select': 1, 'input': 1 }) {
+ var columns = parentTag(field, 'td').getElementsByTagName(tag);
+ for (var i=0; i < columns.length; i++) {
+ if (/\[columns\]/.test(columns[i].name)) {
+ var value = selectValue(columns[i]);
+ if (value) {
+ names.push(value);
+ }
+ }
}
}
field.form[field.name.replace(/\].*/, '][name]')].value = prefix + names.join('_');
select.onchange();
}
var column = cloneNode(field.parentNode);
- select = column.getElementsByTagName('select')[0];
- select.name = select.name.replace(/\]\[\d+/, '$&1');
- select.selectedIndex = 0;
- var input = column.getElementsByTagName('input')[0];
- input.name = input.name.replace(/\]\[\d+/, '$&1');
- input.value = '';
+ var selects = column.getElementsByTagName('select');
+ for (var i = 0; i < selects.length; i++) {
+ select = selects[i];
+ select.name = select.name.replace(/\]\[\d+/, '$&1');
+ select.selectedIndex = 0;
+ }
+ var inputs = column.getElementsByTagName('input');
+ for (var i = 0; i < inputs.length; i++) {
+ var input = inputs[i];
+ input.name = input.name.replace(/\]\[\d+/, '$&1');
+ if (input.type != 'checkbox') {
+ input.value = '';
+ }
+ }
parentTag(field, 'td').appendChild(column);
field.onchange();
}