Skip to content

Commit d0c6c4a

Browse files
author
perploug
committed
Fixes: U4-4332 MediaPicker - Typealias is hardcode several places
1 parent 3ea7e6f commit d0c6c4a

File tree

5 files changed

+60
-51
lines changed

5 files changed

+60
-51
lines changed

src/Umbraco.Web.UI.Client/src/common/services/mediahelper.service.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,36 @@ function mediaHelper(umbRequestHelper) {
162162
return result;
163163
},
164164

165+
/*jshint loopfunc: true */
166+
hasFilePropertyType : function(mediaItem){
167+
function _iterateProps(props){
168+
var result = false;
169+
for(var resolver in _mediaFileResolvers) {
170+
var property = _.find(props, function(property){ return property.editor === resolver; });
171+
if(property){
172+
result = true;
173+
break;
174+
}
175+
}
176+
return result;
177+
}
178+
179+
//we either have properties raw on the object, or spread out on tabs
180+
var result = false;
181+
if(mediaItem.properties){
182+
result = _iterateProps(mediaItem.properties);
183+
}else if(mediaItem.tabs){
184+
for(var tab in mediaItem.tabs) {
185+
if(mediaItem.tabs[tab].properties){
186+
result = _iterateProps(mediaItem.tabs[tab].properties);
187+
if(result){
188+
break;
189+
}
190+
}
191+
}
192+
}
193+
return result;
194+
},
165195

166196
/**
167197
* @ngdoc function

src/Umbraco.Web.UI.Client/src/common/services/util.service.js

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ angular.module('umbraco.services').factory('packageHelper', packageHelper);
2323

2424
function umbPhotoFolderHelper($compile, $log, $timeout, $filter, imageHelper, mediaHelper, umbRequestHelper) {
2525
return {
26-
/** sets the image's url - will check if it is a folder or a real image */
27-
setImageUrl: function(img) {
28-
//get the image property (if one exists)
29-
img.thumbnail = mediaHelper.resolveFile(img, true);
30-
img.image = mediaHelper.resolveFile(img, false);
31-
32-
// if (!img.thumbnail){
33-
// img.thumbnail = "none";
34-
// }
26+
/** sets the image's url, thumbnail and if its a folder */
27+
setImageData: function(img) {
28+
29+
img.isFolder = !mediaHelper.hasFilePropertyType(img);
30+
31+
if(!img.isFolder){
32+
img.thumbnail = mediaHelper.resolveFile(img, true);
33+
img.image = mediaHelper.resolveFile(img, false);
34+
}
3535
},
3636

3737
/** sets the images original size properties - will check if it is a folder and if so will just make it square */
@@ -252,15 +252,22 @@ function umbPhotoFolderHelper($compile, $log, $timeout, $filter, imageHelper, me
252252
},
253253

254254
/** Creates the image grid with calculated widths/heights for images to fill the grid nicely */
255-
buildGrid: function(images, maxRowWidth, maxRowHeight, startingIndex, minDisplayHeight, idealImgPerRow, margin) {
255+
buildGrid: function(images, maxRowWidth, maxRowHeight, startingIndex, minDisplayHeight, idealImgPerRow, margin,imagesOnly) {
256256

257257
var rows = [];
258258
var imagesProcessed = 0;
259259

260260
//first fill in all of the original image sizes and URLs
261261
for (var i = startingIndex; i < images.length; i++) {
262-
this.setImageUrl(images[i]);
262+
var item = images[0];
263+
264+
this.setImageData(images[i]);
263265
this.setOriginalSize(images[i], maxRowHeight);
266+
267+
if(imagesOnly && !item.isFolder && !item.thumbnail){
268+
images.splice(i, 1);
269+
i--;
270+
}
264271
}
265272

266273
while ((imagesProcessed + startingIndex) < images.length) {

src/Umbraco.Web.UI.Client/src/less/property-editors.less

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ ul.color-picker li a {
304304
line-height: 120px
305305
}
306306

307+
.umb-folderbrowser .selector-overlay{
308+
display: none !important;
309+
}
310+
307311
.umb-upload-drop-zone .info, .umb-upload-button-big{
308312
display: block;
309313
padding: 20px;
@@ -343,6 +347,8 @@ ul.color-picker li a {
343347
position: relative;
344348
}
345349

350+
351+
346352
.umb-photo-folder .picrow div, .umb-photo-preview{
347353
margin: 0px;
348354
padding: 0px;
@@ -396,7 +402,7 @@ ul.color-picker li a {
396402
line-height: 80px;
397403
display: block;
398404
margin: auto;
399-
padding-top: 25%;
405+
padding-top: 20px;
400406
}
401407

402408
.umb-photo-folder .selected{

src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.controller.js

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,8 @@ angular.module("umbraco")
6767
//mediaResource.rootMedia()
6868
mediaResource.getChildren(folder.id)
6969
.then(function(data) {
70-
71-
$scope.images = [];
72-
7370
$scope.searchTerm = "";
74-
if(data.items){
75-
$scope.images = data.items;
76-
}
77-
78-
if($scope.onlyImages){
79-
$scope.images = _.reject($scope.images, function(item) {
80-
return item.contentTypeAlias.toLowerCase() !== "folder" && item.thumbnail === "";
81-
});
82-
}
71+
$scope.images = data.items ? data.items : [];
8372
});
8473

8574
$scope.options.formData.currentFolder = folder.id;
@@ -93,7 +82,7 @@ angular.module("umbraco")
9382
$scope.clickHandler = function(image, ev, select) {
9483
ev.preventDefault();
9584

96-
if (image.contentTypeAlias.toLowerCase() == 'folder' && !select) {
85+
if (image.isFolder && !select) {
9786
$scope.gotoFolder(image);
9887
}else{
9988
eventsService.emit("dialogs.mediaPicker.select", image);
@@ -119,30 +108,7 @@ angular.module("umbraco")
119108
$scope.target = undefined;
120109
};
121110

122-
/*
123-
$scope.selectFolder= function(folder) {
124-
if ($scope.multiPicker) {
125-
$scope.select(folder);
126-
}
127-
else {
128-
$scope.submit(folder);
129-
}
130-
};
131-
132-
$scope.selectMediaItem = function(image) {
133-
if (image.contentTypeAlias.toLowerCase() == 'folder') {
134-
$scope.gotoFolder(image);
135-
}else{
136-
eventsService.emit("dialogs.mediaPicker.select", image);
137-
138-
if ($scope.multiPicker) {
139-
$scope.select(image);
140-
}
141-
else {
142-
$scope.submit(image);
143-
}
144-
}
145-
};*/
111+
146112

147113
//default root item
148114
if(!$scope.target){

src/Umbraco.Web.UI.Client/src/views/directives/html/umb-photo-folder.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
<div ng-if="img.thumbnail" class="umb-photo" ng-style="img.thumbStyle" alt="{{img.name}}"></div>
1818
</a>
1919

20-
<a href ng-click="clickHandler(img, $event, true)" ng-show="img.contentTypeAlias === 'Folder'" class="selector-overlay">
20+
<a href ng-click="clickHandler(img, $event, true)"
21+
ng-if="img.isFolder" class="selector-overlay">
2122
<localize key="buttons_select">Select</localize>
2223
</a>
23-
2424
</div>
2525
</div>
2626
</div>

0 commit comments

Comments
 (0)