diff --git a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod index fe089ed55075ea4743a46e0a380b07203b6efec0..22665a76510afe814f6249d87ccd55d4129fb05b 100644 --- a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod +++ b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod @@ -92,6 +92,7 @@ <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias> <isPageable v="false" /> <isFilterable v="true" /> + <isSortable v="true" /> <contentProcess>%aditoprj%/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <recordFieldMappings> <jDitoRecordFieldMapping> diff --git a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js index 88ebe7191307eca9c722e78e99c00a77bf3e52aa..0b415b767e292de18d6e094b9d6073adf8010107 100644 --- a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("system.vars"); import("system.result"); import("system.project"); @@ -17,4 +18,23 @@ if (selectedEntity == null) { res.push([entity[0], entity[1], entity[2], entity[6]]); } -result.object(res.sort()); \ No newline at end of file +var order = vars.get("$local.order"); +var columnOrder = { + "UID.value" : 1, + "TITLE.value" : 2 +}; +var sortOrder = []; +for (let field in order) +{ + if (field in columnOrder) + { + sortOrder.push(columnOrder[field]); + sortOrder.push(order[field] == "DOWN"); + } +} +if (!sortOrder.length) //sort by entity name by default + sortOrder = [1, false]; + +ArrayUtils.sortMulti(res, sortOrder); + +result.object(res); \ No newline at end of file diff --git a/entity/PermissionOverview_entity/PermissionOverview_entity.aod b/entity/PermissionOverview_entity/PermissionOverview_entity.aod index 58ab47b9975b00c4b67b44922f5ac2bf9c144104..fd6fc59650653ac2300ce7605660c6b70397d4a0 100644 --- a/entity/PermissionOverview_entity/PermissionOverview_entity.aod +++ b/entity/PermissionOverview_entity/PermissionOverview_entity.aod @@ -86,6 +86,7 @@ <name>jDito</name> <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias> <isFilterable v="false" /> + <isSortable v="true" /> <contentProcess>%aditoprj%/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <recordFieldMappings> <jDitoRecordFieldMapping> diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js index c99614f12f2d1f5c9ab7a3323041a6fa425d209d..91b35720856e710bc0391020dc68b607c6328c00 100644 --- a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("Sql_lib"); import("system.project"); import("system.vars"); @@ -80,6 +81,30 @@ for each (var entry in rolesOrEntities) { // entry contains either a role or an res.push(currOverview); } + +var order = vars.get("$local.order"); +var columnOrder = { + "ENTITY.value" : 1, + "ACTION_VIEW.value" : 2, + "ACTION_CREATE.value" : 3, + "ACTION_READ.value" : 4, + "ACTION_UPDATE.value" : 5, + "ACTION_DELETE.value" : 6 +}; +var sortOrder = []; +for (let field in order) +{ + if (field in columnOrder) + { + sortOrder.push(columnOrder[field]); + sortOrder.push(order[field] == "DOWN"); + } +} +if (!sortOrder.length) //sort by entity or role by default + sortOrder = [1, false]; + +ArrayUtils.sortMulti(res, sortOrder); + result.object(res); function prepareOverview(pPermSetId, pCurrOverview, pMode) { diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod index ee8b103c8d209a2f32bd8aa8060a155335a5112f..6e7e70808590a0c64e4b8f4654d3ee8033c40bd0 100644 --- a/entity/Role_entity/Role_entity.aod +++ b/entity/Role_entity/Role_entity.aod @@ -142,6 +142,7 @@ <name>jDito</name> <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias> <isFilterable v="true" /> + <isSortable v="true" /> <contentProcess>%aditoprj%/entity/Role_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <onInsert>%aditoprj%/entity/Role_entity/recordcontainers/jdito/onInsert.js</onInsert> <onUpdate>%aditoprj%/entity/Role_entity/recordcontainers/jdito/onUpdate.js</onUpdate> diff --git a/entity/Role_entity/recordcontainers/jdito/contentProcess.js b/entity/Role_entity/recordcontainers/jdito/contentProcess.js index 0c6c46b70b1a95980ae3ddfc8a13498eb96d91ea..58a9778135dfb21e9a90f9afa8106c6eb5df1ade 100644 --- a/entity/Role_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Role_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("system.translate"); import("system.vars"); import("system.result"); @@ -41,4 +42,25 @@ if (ids != null) }); } -result.object(res.sort()); \ No newline at end of file +var order = vars.get("$local.order"); +var columnOrder = { + "ROLENAME.value" : 1, + "ROLETITLE.value" : 2, + "ROLETYPE.value" : 3, + "USERCOUNT.value" : 5 +}; +var sortOrder = []; +for (let field in order) +{ + if (field in columnOrder) + { + sortOrder.push(columnOrder[field]); + sortOrder.push(order[field] == "DOWN"); + } +} +if (!sortOrder.length) //sort by role name by default + sortOrder = [1, false]; + +ArrayUtils.sortMulti(res, sortOrder); + +result.object(res); \ No newline at end of file