From 8fb5c531428be12adde8ab34d139a69b0a330e61 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 20 May 2015 11:21:19 -0700 Subject: [PATCH] handle initial values for hash tables --- domain-server/resources/web/js/settings.js | 39 +++++++++++++--------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/domain-server/resources/web/js/settings.js b/domain-server/resources/web/js/settings.js index 40c40eb4f7..94c270f520 100644 --- a/domain-server/resources/web/js/settings.js +++ b/domain-server/resources/web/js/settings.js @@ -767,7 +767,8 @@ $('body').on('click', '.save-button', function(e){ }); function makeTable(setting, keypath, setting_value, isLocked) { - var isArray = !_.has(setting, 'key') + var isArray = !_.has(setting, 'key'); + var isHash = !isArray; if (!isArray && setting.can_order) { setting.can_order = false; @@ -780,7 +781,8 @@ function makeTable(setting, keypath, setting_value, isLocked) { } html += ""; + + "' name='" + keypath + "' id='" + (typeof setting.html_id !== 'undefined' ? setting.html_id : keypath) + + "' data-setting-type='" + (isArray ? 'array' : 'hash') + "'>"; // Column names html += "" @@ -809,33 +811,38 @@ function makeTable(setting, keypath, setting_value, isLocked) { var row_num = 1; if (keypath.length > 0 && _.size(setting_value) > 0) { - _.each(setting_value, function(row, indexOrName) { - html += "" + _.each(setting_value, function(row, rowIndexOrName) { + html += "" if (setting.numbered === true) { html += "" } if (setting.key) { - html += "" + html += "" } _.each(setting.columns, function(col) { - html += "" + // setup the td for this column + html += ""; }) if (!isLocked && !setting.read_only) {
" + row_num + "" + indexOrName + "" + rowIndexOrName + "" if (isArray) { - rowIsObject = setting.columns.length > 1 - colValue = rowIsObject ? row[col.name] : row - html += colValue - - // for arrays we add a hidden input to this td so that values can be posted appropriately - html += "" - } else if (row.hasOwnProperty(col.name)) { - html += row[col.name] + rowIsObject = setting.columns.length > 1; + colValue = rowIsObject ? row[col.name] : row; + colName = keypath + "[" + rowIndexOrName + "]" + (rowIsObject ? "." + col.name : ""); + } else { + colValue = row[col.name]; + colName = keypath + "." + rowIndexOrName + "." + col.name; } - html += ""; + + // add the actual value to the td so it is displayed + html += colValue; + + // for values to be posted properly we add a hidden input to this td + html += ""; + + html += "