Skip to content

Commit 9c40909

Browse files
committed
Initial commit
0 parents  commit 9c40909

24 files changed

+795
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
src/.vs/
2+
src/Skybrud.Umbraco.MultiNodeTreePicker/bin/
3+
src/Skybrud.Umbraco.MultiNodeTreePicker/obj/

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2020 [Anders Bjerner](https://twitter.com/abjerner)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

release.bat

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@echo off
2+
cd src/Skybrud.Umbraco.MultiNodeTreePicker
3+
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild.exe" /t:rebuild /t:pack /p:Configuration=Release /p:BuildTools=1 /p:PackageOutputPath=../../releases/nuget
4+
cd ../../

skybrud.build.json

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
{
2+
"tasks": {
3+
"postBuild": [
4+
{
5+
"alias": "zip",
6+
"destination": "releases/github/{packageName}.v{version}.zip",
7+
"files": [
8+
{
9+
"source": "src/{packageName}/bin/Release/net472/",
10+
"destination": "bin/",
11+
"patterns": [
12+
"Skybrud.Essentials.dll",
13+
"Skybrud.Essentials.xml",
14+
"Skybrud.WebApi.Json.dll",
15+
"Skybrud.WebApi.Json.xml",
16+
"{packageName}.dll",
17+
"{packageName}.xml"
18+
]
19+
},
20+
{
21+
"source": "src/{packageName}/App_Plugins/Skybrud.MultiNodeTreePicker",
22+
"destination": "App_Plugins/Skybrud.Time/",
23+
"patterns": [
24+
"**/*.js",
25+
"**/*.css",
26+
"**/*.html",
27+
"**/*.xml",
28+
"package.manifest"
29+
]
30+
},
31+
{
32+
"source": "src",
33+
"patterns": [
34+
"LICENSE.html"
35+
]
36+
}
37+
]
38+
},
39+
{
40+
"alias": "umbraco",
41+
"destination": "releases/umbraco/{packageName}.v{version}.zip",
42+
"info": {
43+
"name": "{packageName}",
44+
"version": "{version}",
45+
"url": "{projectUrl}",
46+
"license": "{license}",
47+
"licenseUrl": "{licenseUrl}",
48+
"readme": "{description}",
49+
"requirements": "8.6.0",
50+
"author": {
51+
"name": "{company}",
52+
"url": "https://www.skybrud.dk/"
53+
},
54+
"contributors": [
55+
"Anders Bjerner"
56+
]
57+
},
58+
"files": [
59+
{
60+
"source": "src/{packageName}/bin/Release/net472",
61+
"destination": "bin/",
62+
"patterns": [
63+
"Skybrud.Essentials.dll",
64+
"Skybrud.Essentials.xml",
65+
"Skybrud.WebApi.Json.dll",
66+
"Skybrud.WebApi.Json.xml",
67+
"{packageName}.dll",
68+
"{packageName}.xml"
69+
]
70+
},
71+
{
72+
"source": "src/{packageName}/App_Plugins/Skybrud.MultiNodeTreePicker",
73+
"destination": "App_Plugins/Skybrud.MultiNodeTreePicker/",
74+
"patterns": [
75+
"**/*.js",
76+
"**/*.css",
77+
"**/*.html",
78+
"**/*.xml",
79+
"package.manifest"
80+
]
81+
}
82+
]
83+
}
84+
]
85+
}
86+
}

src/LICENSE.html

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<!DOCTYPE html>
2+
3+
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
4+
<head>
5+
<meta charset="utf-8" />
6+
<title>Skybrud.Umbraco.MultiNodeTreePicker</title>
7+
<style>
8+
body {
9+
font: 16px/1.4em Arial, sans-serif;
10+
background: #f1f1f1;
11+
color: #333;
12+
margin: 0;
13+
}
14+
h1 {
15+
font-size: 30px;
16+
line-height: 1.1em;
17+
font-weight: normal;
18+
}
19+
h2 {
20+
font-size: 24px;
21+
line-height: 1.1em;
22+
font-weight: normal;
23+
}
24+
.wrapper {
25+
width: 650px;
26+
margin: 0 auto;
27+
padding: 40px 0;
28+
position: relative;
29+
}
30+
.skybrudLogo a {
31+
background: black url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAzCAYAAAD/06q7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMkNFRkFFOTYyMjQxMUUyOEFENDlGQTc2OTAzMzdCOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMkNFRkFFQTYyMjQxMUUyOEFENDlGQTc2OTAzMzdCOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyQ0VGQUU3NjIyNDExRTI4QUQ0OUZBNzY5MDMzN0I4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAyQ0VGQUU4NjIyNDExRTI4QUQ0OUZBNzY5MDMzN0I4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qgQCpAAABFpJREFUeNrsl1lsDWEUx+eOVmi01BKCilhapYKIEomlkorgoRL77qWJWMOD8CAE9WKLIJaQ1vIgkdiXkFgSJFqkoaFo+lB70Fav1NJS/zP5DyfXnbmj916uxEl+ud8338x/znzf+b5zri/z/AsjwBLAeJAFMkEPXi8DheAKOANqDXdrlI4vwKFskAsmhnjZMbAXXHIYb7ROk04zl9vtaSAPjDBCW28wEFSBkoCxsHRsh7Ip0tvwbu1AOngCytXMhKVjcq1zf1NEf2EuNSKiIzE0GY2jTncmxpvGhJQEq338aa3hr/sW7LYp/D3ayOd/6JjcBY7O7BjU2liQmmj1XcSynHTkmcQ4n6UhWqLpYlkmt6SjM72S4o3SmjrjYPkHN6FMJx2xnY/9loZohXAq01TnQ1Bn5AtXFVeFioEewXS0bSx5b2mJZl7/Vo46ptM016jlSYwzjXDNX/9TLwkf7DRLJk/OX2xVcbU1zfLgyoyWod5X5qRjW17/ZEtLNBcWVTrFY5nJYzzoLMmD9trbge1ghU46YrO7tfgRiy7OWDomc4rh5pQEpb++wS0Yrzjp2M+IRghnLB05h+SQKPCQd9zy0Ry2w9YxmW0lwT1ohMgDPlsbKR07l5UzwaUzt3gVWQ9Oqmth6+hsX8IE19xDPpLp3RDgTER0fDFXoDU0NBixZBLUW+h1MbmmxneBcfYOBhfASvYPg2Xq3hWshcIzzNAb0FZmKgj5IAe0A4VguRpLAa9Ad5AGHoEWDjqekRnyg8ncGUlBfO4CroP9YLO6/hSs5XbdAxaBD5FYsllgOMjn7pBdkqLuWcOXDwjy/G7QjOMXIxVDN8BUMBi0B6VgpLpnCcjhtRmBKw6KwJ1IBXUckFTuYz8etAqYej/7k8Blvrw0WrssjnGhi6vH4CzbEjsVbN8HC7nrSgMy/dtIORST51BMmSzZUtWvBzfBXfZHq3z0lct2VY09U9k9iaXHASZWewNIAfQcnPeQbqwZktO1mnxm/HTm+HTQjWPi7D4wVo3pfxqtwWq2O/EUl+dquEtPeZ2hLzyDbJNzqS2/3uDOOsF2GkgF5zxoVyrdI9ytnhySMmEb+01BHXio7sngl8q9w9xKXhcTzU9eHapTMyD97ZyJe7w2mEszFCx2qIE87WivDtWrQLXrlS7KIclhp7l0OtdJbCSrfrJLLpOxJl4dSlBrLUvWh+lA21cG8S2VKmSmDoGe/KhRdF4n5Xy+YyBn3tPB2DXg2gsGusHgrlXbtQ1/3/G3A4PcZD1doT6so9K0d/H/kzoiDlUrKpks01UJW82KQKqA2yxxm0fTIXnZIzAXrAODwDz1z6ElHTjFlCDB/THaS/aSZ9FxFZTa5C/yEDCGeemvx9BIFm/9YiWos1i4beUSRt2hvsxnm9h/HeT/93yeOxujXQ8VsG3X0uu5u+wS1uBBeZl/ElOZCqqi4dD/g/GfrKlz/uD7TniJoT8ZRL5/bsm+CzAA4ePgKOYIZ8oAAAAASUVORK5CYII=)
32+
0 -18px no-repeat;
33+
position: absolute;
34+
top: 0;
35+
right: 0;
36+
width: 27px;
37+
height: 32px;
38+
border: 20px solid #000;
39+
}
40+
ul {
41+
margin: 0;
42+
padding: 0;
43+
list-style: none;
44+
}
45+
ul li {
46+
margin-bottom: 8px;
47+
}
48+
ul a {
49+
margin-left: 25px;
50+
position: relative;
51+
}
52+
ul a:before {
53+
content: "";
54+
position: absolute;
55+
top: 0;
56+
left: -25px;
57+
width: 18px;
58+
height: 18px;
59+
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAzCAYAAAD/06q7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMkNFRkFFOTYyMjQxMUUyOEFENDlGQTc2OTAzMzdCOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMkNFRkFFQTYyMjQxMUUyOEFENDlGQTc2OTAzMzdCOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAyQ0VGQUU3NjIyNDExRTI4QUQ0OUZBNzY5MDMzN0I4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAyQ0VGQUU4NjIyNDExRTI4QUQ0OUZBNzY5MDMzN0I4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+qgQCpAAABFpJREFUeNrsl1lsDWEUx+eOVmi01BKCilhapYKIEomlkorgoRL77qWJWMOD8CAE9WKLIJaQ1vIgkdiXkFgSJFqkoaFo+lB70Fav1NJS/zP5DyfXnbmj916uxEl+ud8338x/znzf+b5zri/z/AsjwBLAeJAFMkEPXi8DheAKOANqDXdrlI4vwKFskAsmhnjZMbAXXHIYb7ROk04zl9vtaSAPjDBCW28wEFSBkoCxsHRsh7Ip0tvwbu1AOngCytXMhKVjcq1zf1NEf2EuNSKiIzE0GY2jTncmxpvGhJQEq338aa3hr/sW7LYp/D3ayOd/6JjcBY7O7BjU2liQmmj1XcSynHTkmcQ4n6UhWqLpYlkmt6SjM72S4o3SmjrjYPkHN6FMJx2xnY/9loZohXAq01TnQ1Bn5AtXFVeFioEewXS0bSx5b2mJZl7/Vo46ptM016jlSYwzjXDNX/9TLwkf7DRLJk/OX2xVcbU1zfLgyoyWod5X5qRjW17/ZEtLNBcWVTrFY5nJYzzoLMmD9trbge1ghU46YrO7tfgRiy7OWDomc4rh5pQEpb++wS0Yrzjp2M+IRghnLB05h+SQKPCQd9zy0Ry2w9YxmW0lwT1ohMgDPlsbKR07l5UzwaUzt3gVWQ9Oqmth6+hsX8IE19xDPpLp3RDgTER0fDFXoDU0NBixZBLUW+h1MbmmxneBcfYOBhfASvYPg2Xq3hWshcIzzNAb0FZmKgj5IAe0A4VguRpLAa9Ad5AGHoEWDjqekRnyg8ncGUlBfO4CroP9YLO6/hSs5XbdAxaBD5FYsllgOMjn7pBdkqLuWcOXDwjy/G7QjOMXIxVDN8BUMBi0B6VgpLpnCcjhtRmBKw6KwJ1IBXUckFTuYz8etAqYej/7k8Blvrw0WrssjnGhi6vH4CzbEjsVbN8HC7nrSgMy/dtIORST51BMmSzZUtWvBzfBXfZHq3z0lct2VY09U9k9iaXHASZWewNIAfQcnPeQbqwZktO1mnxm/HTm+HTQjWPi7D4wVo3pfxqtwWq2O/EUl+dquEtPeZ2hLzyDbJNzqS2/3uDOOsF2GkgF5zxoVyrdI9ytnhySMmEb+01BHXio7sngl8q9w9xKXhcTzU9eHapTMyD97ZyJe7w2mEszFCx2qIE87WivDtWrQLXrlS7KIclhp7l0OtdJbCSrfrJLLpOxJl4dSlBrLUvWh+lA21cG8S2VKmSmDoGe/KhRdF4n5Xy+YyBn3tPB2DXg2gsGusHgrlXbtQ1/3/G3A4PcZD1doT6so9K0d/H/kzoiDlUrKpks01UJW82KQKqA2yxxm0fTIXnZIzAXrAODwDz1z6ElHTjFlCDB/THaS/aSZ9FxFZTa5C/yEDCGeemvx9BIFm/9YiWos1i4beUSRt2hvsxnm9h/HeT/93yeOxujXQ8VsG3X0uu5u+wS1uBBeZl/ElOZCqqi4dD/g/GfrKlz/uD7TniJoT8ZRL5/bsm+CzAA4ePgKOYIZ8oAAAAASUVORK5CYII=);
60+
background-position: -18px 0;
61+
}
62+
a {
63+
color: #333;
64+
text-decoration: none;
65+
border-bottom: 1px solid #000000;
66+
border-bottom: 1px solid rgba(0,0,0,0.3);
67+
-webkit-transition: all 300ms ease;
68+
-moz-transition: all 300ms ease;
69+
-o-transition: all 300ms ease;
70+
-ms-transition: all 300ms ease;
71+
transition: all 300ms ease;
72+
}
73+
74+
a:hover {
75+
color: #36b7e6;
76+
}
77+
</style>
78+
</head>
79+
<body>
80+
<div class="wrapper">
81+
<h1>Skybrud.Umbraco.MultiNodeTreePicker</h1>
82+
<h2>The MIT License (MIT)</h2>
83+
<div class="skybrudLogo"><a href="http://www.skybrud.dk/" target="_blank"></a></div>
84+
<p>
85+
Copyright &copy; 2020 <a href="https://twitter.com/abjerner" target="_blank">Anders Bjerner</a>
86+
</p>
87+
<p>
88+
Permission is hereby granted, free of charge, to any person obtaining a copy of
89+
this software and associated documentation files (the "Software"), to deal in
90+
the Software without restriction, including without limitation the rights to
91+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
92+
of the Software, and to permit persons to whom the Software is furnished to do
93+
so, subject to the following conditions:
94+
</p>
95+
<p>
96+
The above copyright notice and this permission notice shall be included in all
97+
copies or substantial portions of the Software.
98+
</p>
99+
<p>
100+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
101+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
102+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
103+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
104+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
105+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
106+
IN THE SOFTWARE.
107+
</p>
108+
<ul>
109+
<li>
110+
<a href="https://github.com/abjerner/Skybrud.Umbraco.MultiNodeTreePicker" target="_blank">See project on <strong>GitHub</strong></a>
111+
</li>
112+
<li>
113+
<a href="https://www.nuget.org/packages/Skybrud.Umbraco.MultiNodeTreePicker/" target="_blank">Download from <strong>NuGet</strong></a>
114+
</li>
115+
</ul>
116+
</div>
117+
</body>
118+
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29806.167
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Skybrud.Umbraco.MultiNodeTreePicker", "Skybrud.Umbraco.MultiNodeTreePicker\Skybrud.Umbraco.MultiNodeTreePicker.csproj", "{35392264-E5DC-4E81-A1D0-7CA69FEADB9B}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{35392264-E5DC-4E81-A1D0-7CA69FEADB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{35392264-E5DC-4E81-A1D0-7CA69FEADB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{35392264-E5DC-4E81-A1D0-7CA69FEADB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{35392264-E5DC-4E81-A1D0-7CA69FEADB9B}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
GlobalSection(ExtensibilityGlobals) = postSolution
23+
SolutionGuid = {00000000-0000-0000-0000-000000000000}
24+
EndGlobalSection
25+
EndGlobal
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<div ng-controller="Skybrud.MntpConverter.Controller" class="umb-contentpicker">
2+
3+
<div ng-if="error" ng-bind-html="error" class="alert alert-danger">{{error}}</div>
4+
5+
<select ng-options="type as type.name for type in types track by type.key" ng-model="selected" ng-change="updated()" class="umb-property-editor"></select>
6+
</div>
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
angular.module("umbraco").controller("Skybrud.MntpConverter.Controller", function ($scope, $http) {
2+
3+
$scope.types = [
4+
{
5+
key: "",
6+
name: "No converter"
7+
}
8+
];
9+
10+
$scope.selected = $scope.types[0];
11+
12+
$scope.error = null;
13+
14+
$http.get("/umbraco/backoffice/Skybrud/Mntp/GetTypes").then(function(r) {
15+
16+
$scope.types = $scope.types.concat(r.data);
17+
18+
var found = false;
19+
20+
r.data.forEach(function(t) {
21+
22+
if ($scope.model.value && t.key === $scope.model.value.key) {
23+
$scope.selected = t;
24+
found = true;
25+
}
26+
27+
});
28+
29+
if (!found && $scope.model.value && $scope.model.value.key) {
30+
$scope.error = `An item converter with the key <strong>${$scope.model.value.key}</strong> could not be found.`;
31+
}
32+
33+
});
34+
35+
$scope.updated = function () {
36+
37+
$scope.error = null;
38+
39+
if (!$scope.selected.key) {
40+
$scope.model.value = null;
41+
return;
42+
}
43+
44+
$scope.model.value = {
45+
key: $scope.selected.key
46+
};
47+
48+
};
49+
50+
});
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
using Skybrud.Umbraco.MultiNodeTreePicker.Converters;
2+
using Umbraco.Core;
3+
using Umbraco.Core.Composing;
4+
5+
namespace Skybrud.Umbraco.MultiNodeTreePicker.Composers {
6+
7+
internal sealed class MntpComposer : IUserComposer {
8+
9+
public void Compose(Composition composition) {
10+
11+
composition.RegisterUnique<MntpConverterCollection>();
12+
13+
composition
14+
.MntpConverters()
15+
.Add(() => composition.TypeLoader.GetTypes<IMntpItemConverter>())
16+
;
17+
18+
}
19+
20+
}
21+
22+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Umbraco.Core.Composing;
2+
3+
namespace Skybrud.Umbraco.MultiNodeTreePicker.Composers {
4+
5+
internal static class MntpCompositionExtensions {
6+
7+
public static MntpConverterCollectionBuilder MntpConverters(this Composition composition) {
8+
return composition.WithCollectionBuilder<MntpConverterCollectionBuilder>();
9+
}
10+
11+
}
12+
13+
}

0 commit comments

Comments
 (0)