Skip to content

Commit 5c019a1

Browse files
Merge branch 'v8/contrib' into v8/dev
2 parents 8c822c5 + 472cc71 commit 5c019a1

File tree

9 files changed

+103
-54
lines changed

9 files changed

+103
-54
lines changed

src/Umbraco.Web.UI.Client/src/common/directives/components/property/umbproperty.directive.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,21 @@
7575
// inheritance is (i.e.infinite editing)
7676
var found = angularHelper.traverseScopeChain($scope, s => s && s.vm && s.vm.constructor.name === "UmbPropertyController");
7777
vm.parentUmbProperty = found ? found.vm : null;
78+
}
79+
80+
if (vm.property.description) {
81+
// split by lines containing only '--'
82+
var descriptionParts = vm.property.description.split(/^--$/gim);
83+
if (descriptionParts.length > 1) {
84+
// if more than one part, we have an extended description,
85+
// combine to one extended description, and remove leading linebreak
86+
vm.property.extendedDescription = descriptionParts.splice(1).join("--").substring(1);
87+
vm.property.extendedDescriptionVisible = false;
88+
89+
// set propertydescription to first part, and remove trailing linebreak
90+
vm.property.description = descriptionParts[0].slice(0, -1);
7891
}
92+
}
7993
}
8094

8195
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @ngdoc filter
3+
* @name umbraco.filters.simpleMarkdown
4+
* @description
5+
* Used when rendering a string as Markdown as HTML (i.e. with ng-bind-html). Allows use of **bold**, *italics*, ![images](url) and [links](url)
6+
**/
7+
angular.module("umbraco.filters").filter('simpleMarkdown', function () {
8+
return function (text) {
9+
if (!text) {
10+
return '';
11+
}
12+
13+
return text
14+
.replace(/\*\*(.*)\*\*/gim, '<b>$1</b>')
15+
.replace(/\*(.*)\*/gim, '<i>$1</i>')
16+
.replace(/!\[(.*?)\]\((.*?)\)/gim, "<img alt='$1' src='$2' />")
17+
.replace(/\[(.*?)\]\((.*?)\)/gim, "<a href='$2' target='_blank' rel='noopener' class='underline'>$1</a>")
18+
.replace(/\n/g, '<br />').trim();
19+
};
20+
});

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

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,8 @@
3030

3131
for (var p = 0; p < tab.properties.length; p++) {
3232
var prop = tab.properties[p];
33-
if (dataModel[prop.alias]) {
34-
prop.value = dataModel[prop.alias];
35-
}
33+
34+
prop.value = dataModel[prop.alias];
3635
}
3736
}
3837

@@ -53,9 +52,8 @@
5352

5453
for (var p = 0; p < tab.properties.length; p++) {
5554
var prop = tab.properties[p];
56-
if (prop.value) {
57-
dataModel[prop.alias] = prop.value;
58-
}
55+
56+
dataModel[prop.alias] = prop.value;
5957
}
6058
}
6159

src/Umbraco.Web.UI.Client/src/less/components/umb-package-local-install.less

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,51 @@
99
color: @gray-5;
1010
}
1111

12-
.umb-upload-local__dropzone {
13-
position: relative;
14-
width: 500px;
15-
height: 300px;
16-
border: 2px dashed @ui-action-border;
17-
border-radius: 3px;
18-
background: @white;
19-
display: flex;
20-
flex-direction: column;
21-
justify-content: center;
22-
align-items: center;
23-
margin-bottom: 30px;
24-
transition: 100ms box-shadow ease, 100ms border ease;
25-
26-
&.drag-over {
27-
border-color: @ui-action-border-hover;
28-
border-style: solid;
29-
box-shadow: 0 3px 8px rgba(0,0,0, .1);
12+
.umb-upload-local {
13+
14+
&__dropzone {
15+
position: relative;
16+
width: 500px;
17+
height: 300px;
18+
border: 2px dashed @ui-action-border;
19+
border-radius: 3px;
20+
background: @white;
21+
display: flex;
22+
flex-direction: column;
23+
justify-content: center;
24+
align-items: center;
25+
margin-bottom: 30px;
3026
transition: 100ms box-shadow ease, 100ms border ease;
31-
}
3227

33-
.umb-icon {
34-
display: block;
35-
color: @ui-action-type;
36-
font-size: 6.75rem;
37-
line-height: 1;
38-
margin: 0 auto;
28+
&.drag-over {
29+
border-color: @ui-action-border-hover;
30+
border-style: solid;
31+
box-shadow: 0 3px 8px rgba(0,0,0, .1);
32+
transition: 100ms box-shadow ease, 100ms border ease;
33+
}
34+
35+
.umb-icon {
36+
display: block;
37+
color: @ui-action-type;
38+
font-size: 6.75rem;
39+
line-height: 1;
40+
margin: 0 auto;
41+
}
42+
43+
.umb-info-local-item {
44+
margin: 20px;
45+
}
3946
}
40-
}
4147

42-
.umb-upload-local__select-file {
43-
font-weight: bold;
44-
color: @ui-action-type;
45-
cursor: pointer;
48+
&__select-file {
49+
font-weight: bold;
50+
color: @ui-action-type;
51+
cursor: pointer;
4652

47-
&:hover {
48-
text-decoration: underline;
49-
color: @ui-action-type-hover;
53+
&:hover {
54+
text-decoration: underline;
55+
color: @ui-action-type-hover;
56+
}
5057
}
5158
}
5259

@@ -117,7 +124,3 @@
117124
.umb-info-local-item {
118125
margin-bottom: 20px;
119126
}
120-
121-
.umb-upload-local__dropzone .umb-info-local-item {
122-
margin:20px;
123-
}

src/Umbraco.Web.UI.Client/src/less/main.less

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,6 @@ umb-property:last-of-type .umb-control-group {
237237
}
238238

239239
.control-description {
240-
max-width:480px;// avoiding description becoming too wide when its placed on top of property.
241240
margin-bottom: 5px;
242241
}
243242
}

src/Umbraco.Web.UI.Client/src/views/components/property/umb-property.html

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,20 @@
2424

2525
<umb-property-actions ng-if="!vm.showInherit" actions="vm.propertyActions"></umb-property-actions>
2626

27-
<small class="control-description" ng-if="vm.property.description" ng-bind-html="vm.property.description | preserveNewLineInHtml"></small>
27+
<small class="control-description" ng-if="vm.property.description" ng-bind-html="vm.property.description | simpleMarkdown"></small>
28+
29+
<div ng-if="vm.property.extendedDescription">
30+
31+
<div ng-if="vm.property.extendedDescriptionVisible">
32+
<small class="control-description" ng-bind-html="vm.property.extendedDescription | simpleMarkdown"></small>
33+
</div>
34+
35+
<button type="button" class="btn btn-mini btn-link btn-link-reverse p0" ng-click="vm.property.extendedDescriptionVisible = !vm.property.extendedDescriptionVisible">
36+
<localize ng-if="!vm.property.extendedDescriptionVisible" key="general_readMore"></localize>
37+
<localize ng-if="vm.property.extendedDescriptionVisible" key="general_close"></localize>
38+
</button>
39+
40+
</div>
2841
</div>
2942

3043
<div class="controls" ng-transclude>

src/Umbraco.Web.UI.Client/src/views/content/content.protect.controller.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292

9393
function save() {
9494
vm.buttonState = "busy";
95-
var groups = _.map(vm.groups, function (group) { return group.name; });
95+
var groups = _.map(vm.groups, function (group) { return encodeURIComponent(group.name); });
9696
var usernames = _.map(vm.members, function (member) { return member.username; });
9797
contentResource.updatePublicAccess(id, groups, usernames, vm.loginPage.id, vm.errorPage.id).then(
9898
function () {

src/Umbraco.Web.UI.Client/src/views/packages/views/install-local.controller.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
serverErrorMessage: null
2020
};
2121

22-
$scope.handleFiles = function (files, event) {
22+
$scope.handleFiles = function (files, event, invalidFiles) {
2323
if (files) {
2424
for (var i = 0; i < files.length; i++) {
2525
upload(files[i]);

src/Umbraco.Web.UI.Client/src/views/packages/views/install-local.html

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
<div ngf-drop
1111
ng-hide="hideDropzone"
1212
ng-model="filesHolder"
13-
ngf-change="handleFiles($files, $event)"
13+
ngf-change="handleFiles($files, $event, $invalidFiles)"
1414
class="umb-upload-local__dropzone"
1515
ngf-drag-over-class="'drag-over'"
1616
ngf-multiple="false"
1717
ngf-allow-dir="false"
18-
ngf-pattern="*.zip"
19-
ngf-max-size="{{ maxFileSize }}"
20-
ng-class="{'is-small': compact!=='false' || (done.length+queue.length) > 0 }">
18+
ngf-max-size="{{maxFileSize}}"
19+
ngf-pattern="'.zip'"
20+
accept=".zip"
21+
ng-class="{ 'is-small': compact !== 'false' || (done.length + queue.length) > 0 }">
2122

2223
<div class="content" draggable="false">
2324

@@ -31,10 +32,11 @@
3132
<div class="umb-upload-local__select-file"
3233
ngf-select
3334
ng-model="filesHolder"
34-
ngf-change="handleFiles($files, $event)"
35+
ngf-change="handleFiles($files, $event, $invalidFiles)"
3536
ngf-multiple="true"
36-
ngf-pattern="*.zip"
37-
ngf-max-size="{{ maxFileSize }}">
37+
ngf-max-size="{{maxFileSize}}"
38+
ngf-pattern="'.zip'"
39+
accept=".zip">
3840
- <localize key="packager_orClickHereToUpload">or click here to choose files</localize>
3941
</div>
4042

0 commit comments

Comments
 (0)