Merge branch '7.4.0' of https://github.com/umbraco/Umbraco-CMS into 7.4.0

This commit is contained in:
Sebastiaan Janssen
2016-01-12 14:27:33 +01:00
14 changed files with 116 additions and 63 deletions

View File

@@ -1,7 +1,7 @@
(function() {
'use strict';
function GroupsBuilderDirective(contentTypeHelper, contentTypeResource, mediaTypeResource, dataTypeHelper, dataTypeResource, $filter) {
function GroupsBuilderDirective(contentTypeHelper, contentTypeResource, mediaTypeResource, dataTypeHelper, dataTypeResource, $filter, iconHelper, $q) {
function link(scope, el, attr, ctrl) {
@@ -155,7 +155,6 @@
scope.compositionsDialogModel = {
title: "Compositions",
contentType: scope.model,
availableCompositeContentTypes: scope.model.availableCompositeContentTypes,
compositeContentTypes: scope.model.compositeContentTypes,
view: "views/common/overlays/contenttypeeditor/compositions/compositions.html",
confirmSubmit: {
@@ -164,7 +163,6 @@
checkboxLabel: "I know what I'm doing",
enable: true
},
show: true,
submit: function(model, oldModel, confirmed) {
var compositionRemoved = false;
@@ -242,6 +240,24 @@
}
};
var availableContentTypeResource = scope.contentType === "documentType" ? contentTypeResource.getAvailableCompositeContentTypes : mediaTypeResource.getAvailableCompositeContentTypes;
var countContentTypeResource = scope.contentType === "documentType" ? contentTypeResource.getCount : mediaTypeResource.getCount;
$q.all([
//get available composite types
availableContentTypeResource(scope.model.id).then(function (result) {
scope.compositionsDialogModel.availableCompositeContentTypes = result;
// convert icons for composite content types
iconHelper.formatContentTypeIcons(scope.compositionsDialogModel.availableCompositeContentTypes);
}),
//get content type count
countContentTypeResource().then(function (result) {
scope.compositionsDialogModel.totalContentTypes = parseInt(result, 10);
})
]).then(function () {
//resolves when both other promises are done, now show it
scope.compositionsDialogModel.show = true;
});
};

View File

@@ -7,6 +7,15 @@ function contentTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
return {
getCount: function () {
return umbRequestHelper.resourcePromise(
$http.get(
umbRequestHelper.getApiUrl(
"contentTypeApiBaseUrl",
"GetCount")),
'Failed to retrieve count');
},
getAvailableCompositeContentTypes: function (contentTypeId) {
return umbRequestHelper.resourcePromise(
$http.get(

View File

@@ -7,6 +7,15 @@ function mediaTypeResource($q, $http, umbRequestHelper, umbDataFormatter) {
return {
getCount: function () {
return umbRequestHelper.resourcePromise(
$http.get(
umbRequestHelper.getApiUrl(
"mediaTypeApiBaseUrl",
"GetCount")),
'Failed to retrieve count');
},
getAvailableCompositeContentTypes: function (contentTypeId) {
return umbRequestHelper.resourcePromise(
$http.get(

View File

@@ -15,15 +15,20 @@
</div>
<umb-empty-state
ng-if="model.availableCompositeContentTypes.length === 0"
ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes <= 1"
position="center">
There are no content types available to use as a composition.
</umb-empty-state>
<umb-empty-state
ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes > 1"
position="center">
This content type is used in a composition, and therefore cannot be composed itself.
</umb-empty-state>
<ul class="umb-checkbox-list">
<li class="umb-checkbox-list__item" ng-repeat="compositeContentType in model.availableCompositeContentTypes | filter:searchTerm" ng-class="{ '-selected': model.compositeContentTypes.indexOf(compositeContentType.alias)+1 }">
<li class="umb-checkbox-list__item" ng-repeat="compositeContentType in model.availableCompositeContentTypes | filter:searchTerm" ng-class="{ '-selected': model.contentType.compositeContentTypes.indexOf(compositeContentType.alias)+1 }">
<div class="umb-checkbox-list__item-checkbox" ng-class="{ '-selected': model.compositeContentTypes.indexOf(compositeContentType.alias)+1 }">
<div class="umb-checkbox-list__item-checkbox" ng-class="{ '-selected': model.contentType.compositeContentTypes.indexOf(compositeContentType.alias)+1 }">
<input type="checkbox"
checklist-model="model.compositeContentTypes"
checklist-value="compositeContentType.alias"
@@ -36,4 +41,4 @@
</div>
</li>
</ul>
</ul>

View File

@@ -218,13 +218,7 @@
}
function init(contentType) {
//get available composite types
contentTypeResource.getAvailableCompositeContentTypes(contentType.id).then(function (result) {
contentType.availableCompositeContentTypes = result;
// convert icons for composite content types
iconHelper.formatContentTypeIcons(contentType.availableCompositeContentTypes);
});
// set all tab to inactive
if (contentType.groups.length !== 0) {
angular.forEach(contentType.groups, function (group) {

View File

@@ -168,13 +168,7 @@
}
function init(contentType) {
//get available composite types
mediaTypeResource.getAvailableCompositeContentTypes(contentType.id).then(function (result) {
contentType.availableCompositeContentTypes = result;
// convert legacy icons
iconHelper.formatContentTypeIcons(contentType.availableCompositeContentTypes);
});
// set all tab to inactive
if (contentType.groups.length !== 0) {
angular.forEach(contentType.groups, function (group) {