├── icon.png
├── docs
├── extending.md
├── images
│ ├── content-app.png
│ ├── dashboard.png
│ ├── delete_dialog.png
│ └── unpublish_dialog.png
├── index.md
├── installation.md
├── configuration.md
└── introduction.md
├── Packaging
├── Tools
│ ├── NuGet.exe
│ ├── MSBuildNugetTasks
│ │ ├── MSBuild.NuGet.Tasks.dll
│ │ └── MSBuild.NuGet.Tasks.Targets
│ ├── MSBuildUmbracoTasks
│ │ ├── MSBuild.Umbraco.Tasks.dll
│ │ ├── ICSharpCode.SharpZipLib.dll
│ │ └── MSBuild.Umbraco.Tasks.Targets
│ ├── MSBuildCommunityTasks
│ │ ├── ICSharpCode.SharpZipLib.dll
│ │ ├── MSBuild.Community.Tasks.chm
│ │ ├── MSBuild.Community.Tasks.dll
│ │ └── Sample.proj
│ └── AppVeyorUmbraco
│ │ └── AppVeyorUmbraco.targets
├── transforms
│ ├── Dashboard.config.uninstall.xdt
│ └── Dashboard.config.install.xdt
├── build-appveyor.bat
├── build.bat
├── package.core.nuspec
├── Package.xml
├── package.parsers.nuspec
├── package.nuspec
└── github-package.xml
├── src
├── Our.Umbraco.Nexu.Web
│ ├── App_Plugins
│ │ └── Nexu
│ │ │ ├── styles
│ │ │ └── nexu.css
│ │ │ ├── controllers
│ │ │ ├── content-delete-controller.js
│ │ │ ├── media-delete-controller.js
│ │ │ ├── related-links-app-controller.js
│ │ │ ├── unpublish-controller.js
│ │ │ ├── base-delete-controller.js
│ │ │ ├── dashboard-controller.js
│ │ │ ├── listview-controller.js
│ │ │ └── listview-dialog-controller.js
│ │ │ ├── views
│ │ │ ├── related-links-app.html
│ │ │ ├── dashboard.html
│ │ │ ├── media-delete.html
│ │ │ ├── content-delete.html
│ │ │ ├── listview-dialog.html
│ │ │ ├── relation-list-component.html
│ │ │ └── unpublish.html
│ │ │ ├── resources
│ │ │ ├── rebuild-resource.js
│ │ │ └── relation-check-resource.js
│ │ │ ├── package.manifest
│ │ │ ├── lang
│ │ │ ├── sv-SE.xml
│ │ │ └── en-us.xml
│ │ │ ├── services
│ │ │ └── relation-check-service.js
│ │ │ ├── decorators
│ │ │ └── controller-decorator.js
│ │ │ ├── interceptors
│ │ │ └── interceptors.js
│ │ │ └── components
│ │ │ └── relation-list-component.js
│ ├── Models
│ │ └── RebuildStatus.cs
│ ├── Composing
│ │ ├── Components
│ │ │ ├── RebuildDashboard.cs
│ │ │ ├── RelatedLinksContentAppFactory.cs
│ │ │ └── ServerVariablesComponent.cs
│ │ └── Composers
│ │ │ └── NexuWebComposer.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── app.config
│ ├── Api
│ │ └── RelationCheckApiController.cs
│ └── packages.config
├── Our.Umbraco.Nexu.Parsers
│ ├── Core
│ │ ├── BlockListEditorParser.cs
│ │ ├── GridParser.cs
│ │ ├── MultiUrlPickerParser.cs
│ │ ├── MediaPickerParser.cs
│ │ ├── NestedContentParser.cs
│ │ ├── RichTextEditorParser.cs
│ │ ├── MultiNodeTreePickerParser.cs
│ │ ├── ContentPickerParser.cs
│ │ └── MediaPicker3.cs
│ ├── app.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── BaseTextParser.cs
│ ├── Helpers
│ │ └── ParserUtilities.cs
│ ├── Community
│ │ └── SEOCheckerParser.cs
│ └── packages.config
├── Our.Umbraco.Nexu.Core.Tests
│ ├── Models
│ │ ├── NexuRelationTests.Nexu_Relation_Udi_Should_Match_Id.approved.json
│ │ └── NexuRelationTests.cs
│ ├── app.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Services
│ │ └── NexuEntityParsingService
│ │ │ ├── SaveRelationsForContentItem_Tests.cs
│ │ │ ├── NexuEntityParsingServiceBaseTest.cs
│ │ │ ├── GetParserForPropertyEditor_Tests.cs
│ │ │ ├── GetRelatedEntitiesFromContent_Tests.cs
│ │ │ ├── GetRelatedEntitiesFromProperty_Tests.cs
│ │ │ └── GetRelatedEntitiesFromPropertyEditorValue_Tests.cs
│ ├── NexuRelationRepository
│ │ ├── GetIncomingRelationsForItem_Tests.cs
│ │ ├── GetUsedItemsFromList_Tests.cs
│ │ └── RepositoryBaseTest.cs
│ └── packages.config
├── Our.Umbraco.Nexu.Common
│ ├── app.config
│ ├── Constants
│ │ ├── AppSettings.cs
│ │ ├── RelationTypes.cs
│ │ └── DatabaseConstants.cs
│ ├── Models
│ │ ├── NexuRelationPropertyDisplay.cs
│ │ ├── RelatedMediaEntity.cs
│ │ ├── RelatedDocumentEntity.cs
│ │ ├── NexuRelationDisplayModel.cs
│ │ └── NexuRelation.cs
│ ├── Interfaces
│ │ ├── Services
│ │ │ ├── IEntityParsingService.cs
│ │ │ └── IEntityRelationService.cs
│ │ ├── Models
│ │ │ ├── IRelatedEntity.cs
│ │ │ └── IPropertyValueParser.cs
│ │ └── Repositories
│ │ │ └── IRelationRepository.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── packages.config
│ └── NexuContext.cs
├── Our.Umbraco.Nexu.Core
│ ├── app.config
│ ├── Composing
│ │ ├── Collections
│ │ │ ├── PropertyValueParserCollectionBuilder.cs
│ │ │ └── PropertyValueParserCollection.cs
│ │ ├── Extensions.cs
│ │ ├── Composers
│ │ │ ├── CollectionsComposer.cs
│ │ │ └── NexuComposer.cs
│ │ └── Components
│ │ │ ├── ContentServiceEventsComponent.cs
│ │ │ └── MigrationComponent.cs
│ ├── Migrations
│ │ ├── NexuMigrationPlan.cs
│ │ └── Version_2_0_0
│ │ │ └── CreateRelationTableMigration.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── packages.config
│ └── Repositories
│ │ └── NexuRelationRepository.cs
├── Our.Umbraco.Nexu.Parsers.Tests
│ ├── app.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Core
│ │ ├── ContentPickerParserTests.cs
│ │ ├── MediaPickerParserTests.cs
│ │ ├── MultiNodeTreePickerParserTests.cs
│ │ ├── MultiUrlPickerParserTests.cs
│ │ ├── NestedContentParserTests.cs
│ │ └── RichTextEditorParserTests.cs
│ ├── Community
│ │ └── SEOCheckerParserTests.cs
│ └── packages.config
├── Our.Umbraco.Nexu.Web.Tests
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── app.config
└── Our.Umbraco.Nexu.sln
├── .github
└── FUNDING.yml
├── .gitignore
├── README.md
├── LICENSE
└── appveyor.yml
/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/icon.png
--------------------------------------------------------------------------------
/docs/extending.md:
--------------------------------------------------------------------------------
1 | # Extending #
2 |
3 | ### Coming soon ###
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Packaging/Tools/NuGet.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/NuGet.exe
--------------------------------------------------------------------------------
/docs/images/content-app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/docs/images/content-app.png
--------------------------------------------------------------------------------
/docs/images/dashboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/docs/images/dashboard.png
--------------------------------------------------------------------------------
/docs/images/delete_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/docs/images/delete_dialog.png
--------------------------------------------------------------------------------
/docs/images/unpublish_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/docs/images/unpublish_dialog.png
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildNugetTasks/MSBuild.NuGet.Tasks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildNugetTasks/MSBuild.NuGet.Tasks.dll
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildUmbracoTasks/MSBuild.Umbraco.Tasks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildUmbracoTasks/MSBuild.Umbraco.Tasks.dll
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildUmbracoTasks/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildUmbracoTasks/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildCommunityTasks/ICSharpCode.SharpZipLib.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildCommunityTasks/ICSharpCode.SharpZipLib.dll
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildCommunityTasks/MSBuild.Community.Tasks.chm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildCommunityTasks/MSBuild.Community.Tasks.chm
--------------------------------------------------------------------------------
/Packaging/Tools/MSBuildCommunityTasks/MSBuild.Community.Tasks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dawoe/umbraco-nexu/HEAD/Packaging/Tools/MSBuildCommunityTasks/MSBuild.Community.Tasks.dll
--------------------------------------------------------------------------------
/src/Our.Umbraco.Nexu.Web/App_Plugins/Nexu/styles/nexu.css:
--------------------------------------------------------------------------------
1 | .nexu-table {
2 | box-shadow: none !important;
3 | }
4 |
5 | .nexu-table .umb-table-row {
6 | cursor: pointer;
7 | }
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # Nexu documentation #
2 |
3 | 1. [Introduction](introduction.md "Introduction")
4 | 2. [Installation](installation.md)
5 | 3. [Configuration](configuration.md)
6 | 4. [Extending](extending.md "Extending")
7 |
--------------------------------------------------------------------------------
/Packaging/transforms/Dashboard.config.uninstall.xdt:
--------------------------------------------------------------------------------
1 |
{{vm.status.Status}}
20 |
11 |
12 |
3 | {{vm.intro}} 4 |
5 |
16 |
46 |
47 |
3 |
asdfasfa as asd asd as
"", 65 | ""callToAction"":""[{\""name\"":\""Products\"",\""udi\"":\""umb://document/ec4aafcc0c254f25a8fe705bfae1d324\""}]"" 66 | }, 67 | { 68 | ""key"":""ac61e2d2-d8e4-418d-aa91-99ead3df3f8d"", 69 | ""name"":""Item 2"", 70 | ""ncContentTypeAlias"":""nestedItem"", 71 | ""text"":""asdfasdf a as
"", 72 | ""callToAction"":""[{\""name\"":\""Umbraco Campari Meeting Room\"",\""udi\"":\""umb://media/662af6ca411a4c93a6c722c4845698e7\""}]"" 73 | } 74 | ]]"; 75 | 76 | var parser = new NestedContentParser(); 77 | 78 | // act 79 | var result = parser.GetRelatedEntities(contentUdi).ToList(); 80 | 81 | // assert 82 | Assert.IsNotNull(result); 83 | Assert.That(result.Count == 3); 84 | Assert.That(result.Count(x => x.RelationType == RelationTypes.DocumentToDocument) == 2); 85 | Assert.That(result.Count(x => x.RelationType == RelationTypes.DocumentToMedia) == 1); 86 | 87 | Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://document/3cce2545e3ac44ecbf55a52cc5965db3" && x.RelationType == RelationTypes.DocumentToDocument)); 88 | Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://document/ec4aafcc0c254f25a8fe705bfae1d324" && x.RelationType == RelationTypes.DocumentToDocument)); 89 | Assert.That(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://media/662af6ca411a4c93a6c722c4845698e7" && x.RelationType == RelationTypes.DocumentToMedia)); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/Our.Umbraco.Nexu.Core.Tests/NexuRelationRepository/RepositoryBaseTest.cs: -------------------------------------------------------------------------------- 1 | namespace Our.Umbraco.Nexu.Core.Tests.Repositories 2 | { 3 | using System; 4 | using System.Data; 5 | 6 | using global::Umbraco.Core.Persistence; 7 | using global::Umbraco.Core.Persistence.Mappers; 8 | using global::Umbraco.Core.Persistence.SqlSyntax; 9 | using global::Umbraco.Core.Scoping; 10 | 11 | using Moq; 12 | 13 | using NPoco; 14 | 15 | using NUnit.Framework; 16 | 17 | using Our.Umbraco.Nexu.Common.Models; 18 | using Our.Umbraco.Nexu.Core.Repositories; 19 | 20 | ///Hier komt de tekst voor de contact pagina
63 |Hier kunnen links in gezet worden
64 |En afbeeldingen geplaats
65 |67 |
Maar we kunnen ook bestanden opladen
"; 68 | 69 | var parser = new RichTextEditorParser(); 70 | 71 | // act 72 | var result = parser.GetRelatedEntities(rteValue).ToList(); 73 | 74 | // assert 75 | Assert.IsNotNull(result); 76 | Assert.AreEqual(3, result.Count); 77 | 78 | Assert.AreEqual(1, result.Count(x => x.RelationType == RelationTypes.DocumentToDocument)); 79 | Assert.AreEqual(2, result.Count(x => x.RelationType == RelationTypes.DocumentToMedia)); 80 | 81 | Assert.IsTrue(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://document/ca4249ed2b234337b52263cabe5587d1" && x.RelationType == RelationTypes.DocumentToDocument)); 82 | Assert.IsTrue(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://media/a7e62beab9834049aaf765f5f95f2263" && x.RelationType == RelationTypes.DocumentToMedia)); 83 | Assert.IsTrue(result.Exists(x => x.RelatedEntityUdi.ToString() == "umb://media/34371d0892c84015912ebaacd002c5d0" && x.RelationType == RelationTypes.DocumentToMedia)); 84 | } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/Our.Umbraco.Nexu.Common/NexuContext.cs: -------------------------------------------------------------------------------- 1 | using System.Configuration; 2 | using Umbraco.Core; 3 | 4 | namespace Our.Umbraco.Nexu.Common 5 | { 6 | ///
107 | list = new List();
110 | list.Add("Happy");
111 | list.Add("New");
112 | list.Add("Year");
113 | Console.WriteLine("Hello MSBuild Community Scripting World.");
114 | foreach(string s in list)
115 | {
116 | Console.WriteLine(s);
117 | }
118 | }
119 | ]]>
120 |
121 |