mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-04 02:53:10 +02:00
fix for array additions in DS settings
This commit is contained in:
parent
ea6a38148c
commit
0565cfa2b7
1 changed files with 28 additions and 21 deletions
|
@ -39,7 +39,8 @@ var Settings = {
|
||||||
ACCESS_TOKEN_SELECTOR: '[name="metaverse.access_token"]',
|
ACCESS_TOKEN_SELECTOR: '[name="metaverse.access_token"]',
|
||||||
PLACES_TABLE_ID: 'places-table',
|
PLACES_TABLE_ID: 'places-table',
|
||||||
FORM_ID: 'settings-form',
|
FORM_ID: 'settings-form',
|
||||||
INVALID_ROW_CLASS: 'invalid-input'
|
INVALID_ROW_CLASS: 'invalid-input',
|
||||||
|
DATA_ROW_INDEX: 'data-row-index'
|
||||||
};
|
};
|
||||||
|
|
||||||
var viewHelpers = {
|
var viewHelpers = {
|
||||||
|
@ -223,10 +224,10 @@ $(document).ready(function(){
|
||||||
// set focus to the first input in the new row
|
// set focus to the first input in the new row
|
||||||
$target.closest('table').find('tr.inputs input:first').focus();
|
$target.closest('table').find('tr.inputs input:first').focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
var tableRows = sibling.parent();
|
var tableRows = sibling.parent();
|
||||||
var tableBody = tableRows.parent();
|
var tableBody = tableRows.parent();
|
||||||
|
|
||||||
// if theres no more siblings, we should jump to a new row
|
// if theres no more siblings, we should jump to a new row
|
||||||
if (sibling.next().length == 0 && tableRows.nextAll().length == 1) {
|
if (sibling.next().length == 0 && tableRows.nextAll().length == 1) {
|
||||||
tableBody.find("." + Settings.ADD_ROW_BUTTON_CLASS).click();
|
tableBody.find("." + Settings.ADD_ROW_BUTTON_CLASS).click();
|
||||||
|
@ -1005,7 +1006,7 @@ function saveSettings() {
|
||||||
var password = formJSON["security"]["http_password"];
|
var password = formJSON["security"]["http_password"];
|
||||||
var verify_password = formJSON["security"]["verify_http_password"];
|
var verify_password = formJSON["security"]["verify_http_password"];
|
||||||
|
|
||||||
// if they've only emptied out the default password field, we should go ahead and acknowledge
|
// if they've only emptied out the default password field, we should go ahead and acknowledge
|
||||||
// the verify password field
|
// the verify password field
|
||||||
if (password != undefined && verify_password == undefined) {
|
if (password != undefined && verify_password == undefined) {
|
||||||
verify_password = "";
|
verify_password = "";
|
||||||
|
@ -1158,8 +1159,9 @@ function makeTable(setting, keypath, setting_value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
html += "<tr class='" + Settings.DATA_ROW_CLASS + "' " +
|
html += "<tr class='" + Settings.DATA_ROW_CLASS + "' " +
|
||||||
(isCategorized ? ("data-category='" + categoryValue + "'") : "") + " " +
|
(isCategorized ? ("data-category='" + categoryValue + "'") : "") + " " +
|
||||||
(isArray ? "" : "name='" + keypath + "." + rowIndexOrName + "'") + ">";
|
(isArray ? "" : "name='" + keypath + "." + rowIndexOrName + "'") +
|
||||||
|
(isArray ? Settings.DATA_ROW_INDEX + "='" + (row_num - 1) + "'" : "" ) + ">";
|
||||||
|
|
||||||
if (setting.numbered === true) {
|
if (setting.numbered === true) {
|
||||||
html += "<td class='numbered'>" + row_num + "</td>"
|
html += "<td class='numbered'>" + row_num + "</td>"
|
||||||
|
@ -1292,12 +1294,12 @@ function makeTableHiddenInputs(setting, initialValues, categoryValue) {
|
||||||
} else if (col.type === "select") {
|
} else if (col.type === "select") {
|
||||||
html += "<td class='" + Settings.DATA_COL_CLASS + "'name='" + col.name + "'>"
|
html += "<td class='" + Settings.DATA_COL_CLASS + "'name='" + col.name + "'>"
|
||||||
html += "<select style='display: none;' class='form-control' data-hidden-input='" + col.name + "'>'"
|
html += "<select style='display: none;' class='form-control' data-hidden-input='" + col.name + "'>'"
|
||||||
|
|
||||||
for (var i in col.options) {
|
for (var i in col.options) {
|
||||||
var option = col.options[i];
|
var option = col.options[i];
|
||||||
html += "<option value='" + option.value + "' " + (option.value == defaultValue ? 'selected' : '') + ">" + option.label + "</option>";
|
html += "<option value='" + option.value + "' " + (option.value == defaultValue ? 'selected' : '') + ">" + option.label + "</option>";
|
||||||
}
|
}
|
||||||
|
|
||||||
html += "</select>";
|
html += "</select>";
|
||||||
html += "<input type='hidden' class='table-dropdown form-control trigger-change' name='" + col.name + "' value='" + defaultValue + "'></td>";
|
html += "<input type='hidden' class='table-dropdown form-control trigger-change' name='" + col.name + "' value='" + defaultValue + "'></td>";
|
||||||
} else {
|
} else {
|
||||||
|
@ -1398,6 +1400,15 @@ function addTableRow(row) {
|
||||||
var setting_name = table.attr("name");
|
var setting_name = table.attr("name");
|
||||||
row.addClass(Settings.DATA_ROW_CLASS + " " + Settings.NEW_ROW_CLASS);
|
row.addClass(Settings.DATA_ROW_CLASS + " " + Settings.NEW_ROW_CLASS);
|
||||||
|
|
||||||
|
// if this is an array, add the row index (which is the index of the last row + 1)
|
||||||
|
// as a data attribute to the row
|
||||||
|
var row_index = 0;
|
||||||
|
if (isArray) {
|
||||||
|
var previous_row_index = parseInt(row.siblings('.' + Settings.DATA_ROW_CLASS + ':last').attr(Settings.DATA_ROW_INDEX), 10);
|
||||||
|
row_index = previous_row_index + 1;
|
||||||
|
row.attr(Settings.DATA_ROW_INDEX, row_index);
|
||||||
|
}
|
||||||
|
|
||||||
var focusChanged = false;
|
var focusChanged = false;
|
||||||
|
|
||||||
_.each(row.children(), function(element) {
|
_.each(row.children(), function(element) {
|
||||||
|
@ -1430,7 +1441,6 @@ function addTableRow(row) {
|
||||||
var isDropdown = input.hasClass("table-dropdown");
|
var isDropdown = input.hasClass("table-dropdown");
|
||||||
|
|
||||||
if (isArray) {
|
if (isArray) {
|
||||||
var row_index = row.siblings('.' + Settings.DATA_ROW_CLASS).length
|
|
||||||
var key = $(element).attr('name');
|
var key = $(element).attr('name');
|
||||||
|
|
||||||
// are there multiple columns or just one?
|
// are there multiple columns or just one?
|
||||||
|
@ -1438,16 +1448,13 @@ function addTableRow(row) {
|
||||||
var num_columns = row.children('.' + Settings.DATA_COL_CLASS).length
|
var num_columns = row.children('.' + Settings.DATA_COL_CLASS).length
|
||||||
var newName = setting_name + "[" + row_index + "]" + (num_columns > 1 ? "." + key : "");
|
var newName = setting_name + "[" + row_index + "]" + (num_columns > 1 ? "." + key : "");
|
||||||
|
|
||||||
if (isCheckbox) {
|
input.attr("name", newName);
|
||||||
input.attr("name", newName)
|
|
||||||
} else {
|
if (isDropdown) {
|
||||||
if (isDropdown) {
|
// default values for hidden inputs inside child selects gets cleared so we need to remind it
|
||||||
// default values for hidden inputs inside child selects gets cleared so we need to remind it
|
var selectElement = $(element).children("select");
|
||||||
var selectElement = $(element).children("select");
|
selectElement.attr("data-hidden-input", newName);
|
||||||
selectElement.attr("data-hidden-input", newName);
|
$(element).children("input").val(selectElement.val());
|
||||||
$(element).children("input").val(selectElement.val());
|
|
||||||
}
|
|
||||||
input.attr("name", newName);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// because the name of the setting in question requires the key
|
// because the name of the setting in question requires the key
|
||||||
|
@ -1462,10 +1469,10 @@ function addTableRow(row) {
|
||||||
input.focus();
|
input.focus();
|
||||||
focusChanged = true;
|
focusChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we are adding a dropdown, we should go ahead and make its select
|
// if we are adding a dropdown, we should go ahead and make its select
|
||||||
// element is visible
|
// element is visible
|
||||||
if (isDropdown) {
|
if (isDropdown) {
|
||||||
$(element).children("select").attr("style", "");
|
$(element).children("select").attr("style", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue