diff --git a/domain-server/resources/web/css/style.css b/domain-server/resources/web/css/style.css index 0a3dc3dab5..b66b7df258 100644 --- a/domain-server/resources/web/css/style.css +++ b/domain-server/resources/web/css/style.css @@ -37,8 +37,9 @@ body { margin-right: auto; } -.table .value-category { +.value-category:not(.inputs) { font-weight: bold; + background: #f5f5f5; } .table .value-category [message]::after { @@ -47,8 +48,18 @@ body { font-weight: normal; } -.table .value-category.inputs { - font-weight: normal; +.table .value-row.contracted, +.table .inputs.contracted { + display: none; +} + +.toggle-category { + cursor: pointer; +} + +.toggle-category-icon { + padding: 4px; + margin-right: 8px; } .glyphicon-remove { diff --git a/domain-server/resources/web/settings/js/settings.js b/domain-server/resources/web/settings/js/settings.js index e59405981f..06c6520c26 100644 --- a/domain-server/resources/web/settings/js/settings.js +++ b/domain-server/resources/web/settings/js/settings.js @@ -14,6 +14,11 @@ var Settings = { DEL_ROW_SPAN_CLASSES: 'glyphicon glyphicon-remove del-row', ADD_CATEGORY_BUTTON_CLASS: 'add-category', ADD_CATEGORY_SPAN_CLASSES: 'glyphicon glyphicon-plus add-category', + TOGGLE_CATEGORY_COLUMN_CLASS: 'toggle-category', + TOGGLE_CATEGORY_SPAN_CLASS: 'toggle-category-icon', + TOGGLE_CATEGORY_SPAN_CLASSES: 'glyphicon toggle-category-icon', + TOGGLE_CATEGORY_EXPANDED_CLASS: 'glyphicon-triangle-bottom', + TOGGLE_CATEGORY_CONTRACTED_CLASS: 'glyphicon-triangle-right', DEL_CATEGORY_BUTTON_CLASS: 'del-category', DEL_CATEGORY_SPAN_CLASSES: 'glyphicon glyphicon-remove del-category', MOVE_UP_BUTTON_CLASS: 'move-up', @@ -184,6 +189,10 @@ $(document).ready(function(){ deleteTableCategory($(this).closest('tr')); }); + $('#' + Settings.FORM_ID).on('click', '.' + Settings.TOGGLE_CATEGORY_COLUMN_CLASS, function(){ + toggleTableCategory($(this).closest('tr')); + }); + $('#' + Settings.FORM_ID).on('click', '.' + Settings.MOVE_UP_BUTTON_CLASS, function(){ moveTableRow($(this).closest('tr'), true); }); @@ -937,9 +946,10 @@ $('body').on('click', '.save-button', function(e){ }); function makeTable(setting, keypath, setting_value, isLocked) { - // TODO: enforce category sorting var isArray = !_.has(setting, 'key'); - + var categoryKey = setting.categorize_by_key; + var isCategorized = !!categoryKey && isArray; + if (!isArray && setting.can_order) { setting.can_order = false; } @@ -1013,8 +1023,6 @@ function makeTable(setting, keypath, setting_value, isLocked) { var rowIsObject = setting.columns.length > 1; _.each(setting_value, function(row, rowIndexOrName) { - var categoryKey = setting.categorize_by_key; - var isCategorized = !!categoryKey && isArray; var categoryPair = {}; var categoryValue = ""; if (isCategorized) { @@ -1118,7 +1126,8 @@ function makeTable(setting, keypath, setting_value, isLocked) { function makeTableCategoryHeader(categoryKey, categoryValue, numVisibleColumns, canRemove, message) { var html = "