use compareArray filter to compare selected nodes with available nodes. Clean up controller
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<div class="dialog-grid">
|
||||
<a href="" class="dialog-grid-element" ng-repeat="contentType in model.contentTypes | filter:{show:true}" ng-click="model.chooseContentType(contentType)">
|
||||
<a href="" class="dialog-grid-element" ng-repeat="contentType in model.contentTypes | compareArrays:model.allowedContentTypes:'alias'" ng-click="model.chooseContentType(contentType)">
|
||||
<i class="icon {{contentType.icon}}"></i>
|
||||
{{ contentType.name }}
|
||||
</a>
|
||||
|
||||
@@ -19,32 +19,7 @@ function PermissionsController($scope, contentTypeResource, $log, iconHelper) {
|
||||
function init() {
|
||||
|
||||
contentTypeResource.getAll().then(function(contentTypes){
|
||||
|
||||
$scope.contentTypes = contentTypes;
|
||||
|
||||
angular.forEach($scope.contentTypes, function(contentType){
|
||||
|
||||
// convert legacy icons
|
||||
iconHelper.formatContentTypeIcons($scope.contentTypes);
|
||||
|
||||
var exists = false;
|
||||
|
||||
angular.forEach($scope.contentType.allowedContentTypes, function(allowedContentType){
|
||||
|
||||
if( contentType.alias === allowedContentType.alias ) {
|
||||
exists = true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
if(exists) {
|
||||
contentType.show = false;
|
||||
} else {
|
||||
contentType.show = true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
@@ -55,16 +30,6 @@ function PermissionsController($scope, contentTypeResource, $log, iconHelper) {
|
||||
var selectedContentTypeIndex = $scope.contentType.allowedContentTypes.indexOf(selectedContentType);
|
||||
$scope.contentType.allowedContentTypes.splice(selectedContentTypeIndex, 1);
|
||||
|
||||
// show content type in content types array
|
||||
for (var contentTypeIndex = 0; contentTypeIndex < $scope.contentTypes.length; contentTypeIndex++) {
|
||||
|
||||
var contentType = $scope.contentTypes[contentTypeIndex];
|
||||
|
||||
if( selectedContentType.alias === contentType.alias ) {
|
||||
contentType.show = true;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$scope.addItemOverlay = function ($event) {
|
||||
@@ -73,6 +38,7 @@ function PermissionsController($scope, contentTypeResource, $log, iconHelper) {
|
||||
$scope.dialogModel = {};
|
||||
$scope.dialogModel.title = "Choose content type";
|
||||
$scope.dialogModel.contentTypes = $scope.contentTypes;
|
||||
$scope.dialogModel.allowedContentTypes = $scope.contentType.allowedContentTypes;
|
||||
$scope.dialogModel.event = $event;
|
||||
$scope.dialogModel.view = "views/documentType/dialogs/contenttypes/contenttypes.html";
|
||||
$scope.showDialog = true;
|
||||
@@ -95,16 +61,6 @@ function PermissionsController($scope, contentTypeResource, $log, iconHelper) {
|
||||
// push to content type model
|
||||
$scope.contentType.allowedContentTypes.push(reformatedContentType);
|
||||
|
||||
// hide selected content type from content types array
|
||||
for (var contentTypeIndex = 0; contentTypeIndex < $scope.contentTypes.length; contentTypeIndex++) {
|
||||
|
||||
var contentType = $scope.contentTypes[contentTypeIndex];
|
||||
|
||||
if( selectedContentType.alias === contentType.alias ) {
|
||||
contentType.show = false;
|
||||
}
|
||||
}
|
||||
|
||||
$scope.showDialog = false;
|
||||
$scope.dialogModel = null;
|
||||
};
|
||||
|
||||
@@ -51,12 +51,12 @@
|
||||
</div>
|
||||
|
||||
<!-- NODE PLACEHOLDER -->
|
||||
<div class="node node-placeholder" ng-if="(contentTypes | filter:{show:true}).length > 0" ng-click="addItemOverlay($event)">
|
||||
<div class="node node-placeholder" ng-if="(contentTypes | compareArrays:contentType.allowedContentTypes:'alias').length > 0" ng-click="addItemOverlay($event)">
|
||||
<div class="node-placeholder-text">Allow child node</div>
|
||||
</div>
|
||||
|
||||
<!-- ALL NODES ADDED -->
|
||||
<div class="text-center" ng-if="(contentTypes | filter:{show:true}).length === 0">
|
||||
<div class="text-center" ng-if="(contentTypes | compareArrays:contentType.allowedContentTypes:'alias').length === 0">
|
||||
<small>All content types are added as child nodes</small>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user