From 8a2685325b41b9e032b9a85f71846acfa0b24b15 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Fri, 3 Jun 2016 12:06:51 +1200 Subject: [PATCH] Make localhost, anonymous, and logged-in rows non-deletable --- domain-server/resources/describe-settings.json | 5 ++++- .../resources/web/settings/js/settings.js | 16 ++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index 6ddc75bcef..7ee45d5ccd 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -148,7 +148,10 @@ "editable": true, "default": false } - ] + ], + + "non-deletable-row-key": "permissions_id", + "non-deletable-row-values": ["localhost", "anonymous", "logged-in"] } ] }, diff --git a/domain-server/resources/web/settings/js/settings.js b/domain-server/resources/web/settings/js/settings.js index 29bb430893..44b2c692d2 100644 --- a/domain-server/resources/web/settings/js/settings.js +++ b/domain-server/resources/web/settings/js/settings.js @@ -919,6 +919,9 @@ function makeTable(setting, keypath, setting_value, isLocked) { html += "" + setting.help + "" } + var nonDeletableRowKey = setting["non-deletable-row-key"]; + var nonDeletableRowValues = setting["non-deletable-row-values"]; + html += ""; @@ -961,6 +964,8 @@ function makeTable(setting, keypath, setting_value, isLocked) { html += "" } + var isNonDeletableRow = false; + _.each(setting.columns, function(col) { if (isArray) { @@ -972,6 +977,9 @@ function makeTable(setting, keypath, setting_value, isLocked) { colName = keypath + "." + rowIndexOrName + "." + col.name; } + isNonDeletableRow = isNonDeletableRow + || (nonDeletableRowKey === col.name && nonDeletableRowValues.indexOf(colValue) !== -1); + if (isArray && col.type === "checkbox" && col.editable) { html += "" } - html += "" + if (isNonDeletableRow) { + html += ""; + } else { + html += ""; + } } html += ""
" + rowIndexOrName + "" + "" + "