X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.ria%2Fsrc%2Fargeo-ria-lib%2Fsecurity%2Fclass%2Forg%2Fargeo%2Fsecurity%2Fria%2Fcomponents%2FNaturesManager.js;h=8e21466fd30d24eedb491610ed91aad0caf65d57;hb=9b6a0645e8e964fd7bb04a63ddebbf2f14bd7779;hp=f15bb336b323ca3ff5247c7333b37cd33e59c1b7;hpb=98c2719d08b7d1791eb2080b4488bba810044608;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/components/NaturesManager.js b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/components/NaturesManager.js index f15bb336b..8e21466fd 100644 --- a/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/components/NaturesManager.js +++ b/security/runtime/org.argeo.security.ria/src/argeo-ria-lib/security/class/org/argeo/security/ria/components/NaturesManager.js @@ -2,7 +2,11 @@ qx.Class.define("org.argeo.security.ria.components.NaturesManager",{ extend : qx.core.Object, properties : { detectedNatures : { - check : "Map" + check : "Map" + }, + nonAssignedNatures : { + check : "Map", + event : "changeNonAssignedNatures" } }, construct : function(){ @@ -12,18 +16,27 @@ qx.Class.define("org.argeo.security.ria.components.NaturesManager",{ members : { detectNatures : function(){ var natures = {}; + var sortedNatures = {}; + var ranks = {}; for (var key in qx.Bootstrap.$$registry) { if (qx.Class.hasInterface(qx.Bootstrap.$$registry[key], org.argeo.security.ria.components.INaturePane)) { // FILTER BY ROLE HERE! var klass = qx.Bootstrap.$$registry[key]; natures[klass.NATURE_TYPE] = klass; + ranks[klass.NATURE_TYPE] = klass.NATURE_RANK; } } - this.setDetectedNatures(natures); + org.argeo.ria.util.Utils.asort(ranks); + for(var key in ranks){ + sortedNatures[key] = natures[key]; + } + this.setDetectedNatures(sortedNatures); + this.setNonAssignedNatures(sortedNatures); }, detectNaturesInData : function(userNaturesList){ var detected = this.getDetectedNatures(); var userDetected = []; + var nonAssigned = qx.lang.Object.clone(detected); for(var i = 0;i