diff --git a/pkg/build.ps1 b/pkg/build.ps1 deleted file mode 100644 index feeb6f1..0000000 --- a/pkg/build.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -Push-Location $PSScriptRoot - -$projectFile = "..\src\Perplex.ContentBlocks.Core\Perplex.ContentBlocks.Core.csproj" - -Write-Host "Cleaning project ..." -dotnet clean $projectFile -c Release -v q --nologo - -Write-Host "Building project ..." -dotnet build $projectFile -c Release -v q --nologo - -Pop-Location diff --git a/pkg/nuget/pack.ps1 b/pkg/nuget/pack.ps1 deleted file mode 100644 index 7738db0..0000000 --- a/pkg/nuget/pack.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -Push-Location $PSScriptRoot - -Write-Host "Packing for NuGet ..." - -# Perplex.ContentBlocks -dotnet pack ..\..\src\Perplex.ContentBlocks --no-build -o . -v q --nologo - -# Perplex.ContentBlocks.Core -dotnet pack ..\..\src\Perplex.ContentBlocks.Core -c Release -o . -v q --nologo - -Write-Host "Done!" - -# Write resulting .nupkgs file to pipeline -$version = ..\version.ps1 -$nugetFiles = Get-ChildItem -Filter "*$version.nupkg" -Write-Output $nugetFiles - -Pop-Location diff --git a/pkg/pack.ps1 b/pkg/pack.ps1 deleted file mode 100644 index a8333a2..0000000 --- a/pkg/pack.ps1 +++ /dev/null @@ -1,9 +0,0 @@ -Push-Location $PSScriptRoot - -$nuget = .\nuget\pack.ps1 -Write-Host "NuGet -> $(Resolve-Path $nuget.FullName -Relative)" - -$umbraco = .\umbraco\pack.ps1 -Write-Host "Umbraco -> $(Resolve-Path $umbraco.FullName -Relative)" - -Pop-Location diff --git a/pkg/umbraco/pack.ps1 b/pkg/umbraco/pack.ps1 deleted file mode 100644 index 1bc54e9..0000000 --- a/pkg/umbraco/pack.ps1 +++ /dev/null @@ -1,101 +0,0 @@ -# Parse version string to version info object -Function Get-SemVer() { - [CmdLetBinding()] - Param( - [Parameter(Mandatory = $true, ValueFromPipeline = $true)] - [string]$Version - ) - $Version -match "^(\d+)\.(\d+)\.(\d+)(?:-(.*?))?$" | Out-Null - - [PSCustomObject] @{ - Major = [int]$matches[1] - Minor = [int]$matches[2] - Patch = [int]$matches[3] - Suffix = $matches[4] - Version = $Version - } -} - -Push-Location $PSScriptRoot - -Write-Host "Packing for Umbraco ..." - -..\build.ps1 - -$projectDir = Get-Item ..\..\src\Perplex.ContentBlocks - -$projectDirCore = Get-Item ..\..\src\Perplex.ContentBlocks.Core -$csprojFileCore = "$projectDirCore\Perplex.ContentBlocks.Core.csproj" - -$version = ..\version.ps1 - -# Create temp dir -$tmpDir = "_tmp" -If(Test-Path $tmpDir) { Remove-Item $tmpDir -Recurse } -New-Item -Path . -Name $tmpDir -ItemType "directory" | Out-Null - -# Get Umbraco version from UmbracoCms.Web NuGet dependency -[xml]$csprojCore = Get-Content $csprojFileCore -$umbVersion = $csprojCore.Project.ItemGroup.PackageReference | ? { - $_.Include -eq "UmbracoCms.Web" -} | %{ $_.Version } | Get-SemVer - -$packageXmlIn = "package.xml" -$packageXmlOut = "$tmpDir\package.xml" - -[xml]$packageXml = Get-Content $packageXmlIn -$packageXml.umbPackage.info.package.version = $version -$requirements = $packageXml.umbPackage.info.package.requirements -$requirements.major = "$($umbVersion.Major)" -$requirements.minor = "$($umbVersion.Minor)" -$requirements.patch = "$($umbVersion.Patch)" - -$files = $packageXml.umbPackage.SelectSingleNode("files") -$xmlns = $packageXml.umbPackage.NamespaceURI - -$dll = Get-Item "$projectDirCore\bin\Release\net472\Perplex.ContentBlocks.dll" -$appPluginRoot = "$projectDir\App_Plugins\Perplex.ContentBlocks" -$appPluginFiles = Get-ChildItem $appPluginRoot\* -File -Exclude @("*.less") -Recurse - -# Copy DLL + App_Plugins files to package.xml + output dir -@($dll; $appPluginFiles) | % { - $file = $packageXml.CreateElement("file", $xmlns) - $guidElement = $packageXml.CreateElement("guid", $xmlns) - $guid = "$([System.Guid]::NewGuid())$($_.Extension)" - $guidElement.InnerText = $guid - - $orgName = $packageXml.CreateElement("orgName", $xmlns) - $orgName.InnerText = $_.Name - $orgPath = $packageXml.CreateElement("orgPath", $xmlns) - - if($_.Extension -eq ".dll") { - $orgPath.InnerText = "~/bin" - } else { - $relativePath = $_.Directory.ToString(). ` - Replace($projectDir.FullName, "~"). ` - Replace("\", "/") - - $orgPath.InnerText = $relativePath - } - - $file.AppendChild($guidElement) | Out-Null - $file.AppendChild($orgName) | Out-Null - $file.AppendChild($orgPath) | Out-Null - - $files.AppendChild($file) | Out-Null - - Copy-Item $_.FullName $tmpDir\$guid -} - -$packageXml.Save("$pwd\$packageXmlOut") - -# Zip -$packageOut = "Perplex.ContentBlocks_$version.zip" -Compress-Archive $tmpDir\* $packageOut -Force - -Remove-Item $tmpDir -Recurse - -Write-Host "Done!" -Write-Output (Get-Item $packageOut) - -Pop-Location diff --git a/pkg/umbraco/package.xml b/pkg/umbraco/package.xml deleted file mode 100644 index 51f04dd..0000000 --- a/pkg/umbraco/package.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - Perplex.ContentBlocks - - https://raw.githubusercontent.com/PerplexDigital/Perplex.ContentBlocks/master/pkg/nuget/icon.png - MIT License - https://github.com/PerplexDigital/Perplex.ContentBlocks - - - - - - - - Perplex Digital - https://www.perplex.nl - - - - - - - - - - - - - diff --git a/pkg/version.ps1 b/pkg/version.ps1 deleted file mode 100644 index 121d8ef..0000000 --- a/pkg/version.ps1 +++ /dev/null @@ -1,4 +0,0 @@ -# Emits Perplex.ContentBlocks version obtained from the DLL -$projectDir = "$PSScriptRoot\..\src\Perplex.ContentBlocks.Core" -$dll = Get-Item "$projectDir\bin\Release\*\Perplex.ContentBlocks.dll" | Select-Object -First 1 -Write-Output $dll | % { $_.VersionInfo.ProductVersion } diff --git a/src/DemoWebsite.v8.Legacy/App_Data/packages/installedPackages.config b/src/DemoWebsite.v8.Legacy/App_Data/packages/installedPackages.config deleted file mode 100644 index 3299dfc..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Data/packages/installedPackages.config +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.html b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.html deleted file mode 100644 index f2dbca5..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.html +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.js b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.js deleted file mode 100644 index e1238db..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-button.js +++ /dev/null @@ -1,12 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaButton", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-button.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, -}); diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-init.js b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-init.js deleted file mode 100644 index 450c4dc..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-init.js +++ /dev/null @@ -1,9 +0,0 @@ -angular.module("MyContentBlocksAddon", ["perplexContentBlocks"]) -angular.module("umbraco").requires.push("MyContentBlocksAddon"); - -angular.module("MyContentBlocksAddon").run([ - "perplexContentBlocksCustomComponents", - function (customComponents) { - customComponents.block.main = "mcba-main"; - customComponents.block.buttons.push("mcba-button"); - }]); diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.html b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.html deleted file mode 100644 index d144566..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.html +++ /dev/null @@ -1,33 +0,0 @@ - - - -

-
-
-
- -
-
-

-
-        
-        
-
-        
-    
-
- -
- - -
diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.js b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.js deleted file mode 100644 index d083074..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/mcba-main.js +++ /dev/null @@ -1,20 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaMain", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-main.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, - - controller: [ - function mcbaMain() { - this.$onInit = function () { - // TODO - } - } - ], -}); diff --git a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/package.manifest b/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/package.manifest deleted file mode 100644 index ce30d1d..0000000 --- a/src/DemoWebsite.v8.Legacy/App_Plugins/MyContentBlocksAddon/package.manifest +++ /dev/null @@ -1,7 +0,0 @@ -{ - "javascript": [ - "~/App_Plugins/MyContentBlocksAddon/mcba-init.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-main.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-button.js" - ] -} diff --git a/src/DemoWebsite.v8.Legacy/DemoWebsite.v8.Legacy.csproj b/src/DemoWebsite.v8.Legacy/DemoWebsite.v8.Legacy.csproj deleted file mode 100644 index 392c3fb..0000000 --- a/src/DemoWebsite.v8.Legacy/DemoWebsite.v8.Legacy.csproj +++ /dev/null @@ -1,402 +0,0 @@ - - - - - - Debug - AnyCPU - - - 2.0 - {F316A8CA-EBCD-42CF-B37A-F44694E79505} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - DemoWebsite.Legacy - DemoWebsite.Legacy.v8 - v4.7.2 - true - - 44314 - - - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - true - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - ..\..\packages\ClientDependency.1.9.9\lib\net45\ClientDependency.Core.dll - - - ..\..\packages\ClientDependency-Mvc5.1.9.3\lib\net45\ClientDependency.Core.Mvc.dll - - - ..\..\packages\CSharpTest.Net.Collections.14.906.1403.1082\lib\net40\CSharpTest.Net.Collections.dll - - - ..\..\packages\Examine.1.0.2\lib\net452\Examine.dll - - - ..\..\packages\HtmlAgilityPack.1.8.14\lib\Net45\HtmlAgilityPack.dll - - - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll - - - ..\..\packages\ImageProcessor.2.7.0.100\lib\net452\ImageProcessor.dll - - - ..\..\packages\ImageProcessor.Web.4.10.0.100\lib\net452\ImageProcessor.Web.dll - - - ..\..\packages\LightInject.5.4.0\lib\net46\LightInject.dll - - - ..\..\packages\LightInject.Annotation.1.1.0\lib\net46\LightInject.Annotation.dll - - - ..\..\packages\LightInject.Mvc.2.0.0\lib\net46\LightInject.Mvc.dll - - - ..\..\packages\LightInject.Web.2.0.0\lib\net46\LightInject.Web.dll - - - ..\..\packages\LightInject.WebApi.2.0.0\lib\net46\LightInject.WebApi.dll - - - ..\..\packages\Lucene.Net.3.0.3\lib\NET40\Lucene.Net.dll - - - ..\..\packages\Markdown.2.2.1\lib\net451\Markdown.dll - - - ..\..\packages\Microsoft.AspNet.Identity.Core.2.2.2\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - ..\..\packages\Microsoft.AspNet.Identity.Owin.2.2.2\lib\net45\Microsoft.AspNet.Identity.Owin.dll - - - ..\..\packages\Microsoft.AspNet.SignalR.Core.2.4.0\lib\net45\Microsoft.AspNet.SignalR.Core.dll - - - - ..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - ..\..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.2\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll - - - ..\..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll - - - ..\..\packages\Microsoft.Owin.Host.SystemWeb.4.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - - - ..\..\packages\Microsoft.Owin.Security.4.0.1\lib\net45\Microsoft.Owin.Security.dll - - - ..\..\packages\Microsoft.Owin.Security.Cookies.4.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll - - - ..\..\packages\Microsoft.Owin.Security.OAuth.4.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\MiniProfiler.4.0.138\lib\net461\MiniProfiler.dll - - - ..\..\packages\MiniProfiler.Shared.4.0.138\lib\net461\MiniProfiler.Shared.dll - - - ..\..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\NPoco.3.9.4\lib\net45\NPoco.dll - - - ..\..\packages\Owin.1.0\lib\net40\Owin.dll - - - ..\..\packages\Semver.2.0.4\lib\net452\Semver.dll - - - ..\..\packages\Serilog.2.8.0\lib\net46\Serilog.dll - - - ..\..\packages\Serilog.Enrichers.Process.2.0.1\lib\net45\Serilog.Enrichers.Process.dll - - - ..\..\packages\Serilog.Enrichers.Thread.3.0.0\lib\net45\Serilog.Enrichers.Thread.dll - - - ..\..\packages\Serilog.Filters.Expressions.2.0.0\lib\net45\Serilog.Filters.Expressions.dll - - - ..\..\packages\Serilog.Formatting.Compact.1.0.0\lib\net45\Serilog.Formatting.Compact.dll - - - ..\..\packages\Serilog.Formatting.Compact.Reader.1.0.3\lib\net45\Serilog.Formatting.Compact.Reader.dll - - - ..\..\packages\Serilog.Settings.AppSettings.2.2.2\lib\net45\Serilog.Settings.AppSettings.dll - - - ..\..\packages\Serilog.Sinks.Async.1.3.0\lib\net45\Serilog.Sinks.Async.dll - - - ..\..\packages\Serilog.Sinks.File.4.0.0\lib\net45\Serilog.Sinks.File.dll - - - ..\..\packages\Serilog.Sinks.Map.1.0.0\lib\netstandard2.0\Serilog.Sinks.Map.dll - - - ..\..\packages\Superpower.2.0.0\lib\net45\Superpower.dll - - - - ..\..\packages\Umbraco.SqlServerCE.4.0.0.1\lib\net472\System.Data.SqlServerCe.dll - - - ..\..\packages\Umbraco.SqlServerCE.4.0.0.1\lib\net472\System.Data.SqlServerCe.Entity.dll - - - ..\..\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - - - - - - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - - - - - - - ..\..\packages\System.Threading.Tasks.Dataflow.4.9.0\lib\netstandard2.0\System.Threading.Tasks.Dataflow.dll - - - - ..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - - - - ..\..\packages\UmbracoCms.Core.8.7.0\lib\net472\Umbraco.Core.dll - - - ..\..\packages\UmbracoCms.Web.8.7.0\lib\net472\Umbraco.Examine.dll - - - ..\..\packages\UmbracoCms.Web.8.7.0\lib\net472\Umbraco.ModelsBuilder.Embedded.dll - - - ..\..\packages\UmbracoCms.Web.8.7.0\lib\net472\Umbraco.Web.dll - - - ..\..\packages\UmbracoCms.Web.8.7.0\lib\net472\Umbraco.Web.UI.dll - - - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Example.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Web.config - - - Web.config - - - - - {1282fad9-5b28-4dba-bf0e-0f8982085f59} - Perplex.ContentBlocks.Core - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - True - True - 34733 - / - https://localhost:44314/ - False - False - - - False - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - :: Create link to App_Plugins\Perplex.ContentBlocks of Perplex.ContentBlocks project -if not exist $(ProjectDir)App_Plugins ( - mkdir $(ProjectDir)App_Plugins -) - -if not exist $(ProjectDir)App_Plugins\Perplex.ContentBlocks ( - mklink /J $(ProjectDir)App_Plugins\Perplex.ContentBlocks $(SolutionDir)Perplex.ContentBlocks\App_Plugins\Perplex.ContentBlocks -) - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/Global.asax b/src/DemoWebsite.v8.Legacy/Global.asax deleted file mode 100644 index 0831274..0000000 --- a/src/DemoWebsite.v8.Legacy/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %> diff --git a/src/DemoWebsite.v8.Legacy/Properties/AssemblyInfo.cs b/src/DemoWebsite.v8.Legacy/Properties/AssemblyInfo.cs deleted file mode 100644 index 176438f..0000000 --- a/src/DemoWebsite.v8.Legacy/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DemoWebsite.Legacy")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DemoWebsite.Legacy")] -[assembly: AssemblyCopyright("Copyright © 2021")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f316a8ca-ebcd-42cf-b37a-f44694e79505")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/DemoWebsite.v8.Legacy/Views/Page.cshtml b/src/DemoWebsite.v8.Legacy/Views/Page.cshtml deleted file mode 100644 index fccc167..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Page.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; - -@Html.RenderContentBlocks(Model.ContentBlocks) diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/BlockList/Default.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/BlockList/Default.cshtml deleted file mode 100644 index 05851df..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/BlockList/Default.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Core.Models.Blocks -@{ - if (!Model.Any()) { return; } -} -
- @foreach (var block in Model) - { - if (block?.ContentUdi == null) { continue; } - var data = block.Content; - @Html.Partial("BlockList/Components/" + data.ContentType.Alias, block) - } -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Blue.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Blue.cshtml deleted file mode 100644 index f5e1d03..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Blue.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Green.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Green.cshtml deleted file mode 100644 index bf0d977..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Green.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Red.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Red.cshtml deleted file mode 100644 index 4d32cf9..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/Red.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/_ExampleBlock.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/_ExampleBlock.cshtml deleted file mode 100644 index be38de6..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleBlock/_ExampleBlock.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
-

@Model.Content.Title

- @Model.Content.Text -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Magenta.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Magenta.cshtml deleted file mode 100644 index c4507d6..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Magenta.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleHeader/_ExampleHeader") -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Yellow.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Yellow.cshtml deleted file mode 100644 index a00c028..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/Yellow.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleHeader/_ExampleHeader") -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/_ExampleHeader.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/_ExampleHeader.cshtml deleted file mode 100644 index 14e552c..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/ExampleHeader/_ExampleHeader.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
-

@Model.Content.Title

- @Model.Content.Text -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3-Fluid.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3-Fluid.cshtml deleted file mode 100644 index 131b051..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3-Fluid.cshtml +++ /dev/null @@ -1,88 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates -@using Newtonsoft.Json.Linq - -@* - Razor helpers located at the bottom of this file -*@ - -@if (Model != null && Model.sections != null) -{ - var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; - -
- @if (oneColumn) - { - foreach (var section in Model.sections) { -
- @foreach (var row in section.rows) { - @renderRow(row) - } -
- } - }else { -
- @foreach (var s in Model.sections) { -
-
- @foreach (var row in s.rows) { - @renderRow(row) - } -
-
- } -
- } -
-} - -@helper renderRow(dynamic row){ -
-
- @foreach ( var area in row.areas ) { -
-
- @foreach (var control in area.controls) { - if (control !=null && control.editor != null && control.editor.view != null ) { - @Html.Partial("grid/editors/base", (object)control) - } - } -
-
} -
-
-} - -@functions { - public static MvcHtmlString RenderElementAttributes(dynamic contentItem) - { - var attrs = new List(); - JObject cfg = contentItem.config; - - if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); - } - - JObject style = contentItem.styles; - - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } - - if (cssVals.Any()) - attrs.Add("style='" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "'"); - } - - return new MvcHtmlString(string.Join(" ", attrs)); - } -} diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3.cshtml deleted file mode 100644 index c30feb2..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Bootstrap3.cshtml +++ /dev/null @@ -1,92 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates -@using Newtonsoft.Json.Linq - -@if (Model != null && Model.sections != null) -{ - var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; - -
- @if (oneColumn) - { - foreach (var section in Model.sections) { -
- @foreach (var row in section.rows) { - @renderRow(row, true) - } -
- } - }else { -
-
- @foreach (var s in Model.sections) { -
-
- @foreach (var row in s.rows) { - @renderRow(row, false) - } -
-
- } -
-
- } -
-} - -@helper renderRow(dynamic row, bool singleColumn){ -
- @if (singleColumn) { - @:
- } -
- @foreach ( var area in row.areas ) { -
-
- @foreach (var control in area.controls) { - if (control !=null && control.editor != null && control.editor.view != null ) { - @Html.Partial("grid/editors/base", (object)control) - } - } -
-
} -
- @if (singleColumn) { - @:
- } -
-} - -@functions { - public static MvcHtmlString RenderElementAttributes(dynamic contentItem) - { - var attrs = new List(); - JObject cfg = contentItem.config; - - if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); - } - - JObject style = contentItem.styles; - - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } - - if (cssVals.Any()) - attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\""); - } - - return new MvcHtmlString(string.Join(" ", attrs)); - } -} diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Base.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Base.cshtml deleted file mode 100644 index a86c048..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Base.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model dynamic -@using Umbraco.Web.Templates - -@functions { - public static string EditorView(dynamic contentItem) - { - string view = contentItem.editor.render != null ? contentItem.editor.render.ToString() : contentItem.editor.view.ToString(); - view = view.ToLower().Replace(".html", ".cshtml"); - - if (!view.Contains("/")) { - view = "grid/editors/" + view; - } - - return view; - } -} -@try -{ - string editor = EditorView(Model); - @Html.Partial(editor, (object)Model) -} -catch (Exception ex) { -
@ex.ToString()
-} \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Embed.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Embed.cshtml deleted file mode 100644 index 4a915a4..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Embed.cshtml +++ /dev/null @@ -1,10 +0,0 @@ -@model dynamic -@using Umbraco.Web.Templates -@{ - string embedValue = Convert.ToString(Model.value); - embedValue = embedValue.DetectIsJson() ? Model.value.preview : Model.value; -} - -
- @Html.Raw(embedValue) -
diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Macro.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Macro.cshtml deleted file mode 100644 index e082280..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Macro.cshtml +++ /dev/null @@ -1,17 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates - - -@if (Model.value != null) -{ - string macroAlias = Model.value.macroAlias.ToString(); - ViewDataDictionary parameters = new ViewDataDictionary(); - foreach (dynamic mpd in Model.value.macroParamsDictionary) - { - parameters.Add(mpd.Name, mpd.Value); - } - - - @Umbraco.RenderMacro(macroAlias, parameters) - -} diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Media.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Media.cshtml deleted file mode 100644 index e20b717..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Media.cshtml +++ /dev/null @@ -1,29 +0,0 @@ -@model dynamic -@using Umbraco.Web.Templates - -@if (Model.value != null) -{ - var url = Model.value.image; - if(Model.editor.config != null && Model.editor.config.size != null){ - url = ImageCropperTemplateExtensions.GetCropUrl(url, - width: Model.editor.config.size.width, - height: Model.editor.config.size.height, - cropDataSet: Model.value.focalPoint == null ? null : new Umbraco.Core.PropertyEditors.ValueConverters.ImageCropperValue - { - FocalPoint = new Umbraco.Core.PropertyEditors.ValueConverters.ImageCropperValue.ImageCropperFocalPoint - { - Top = Model.value.focalPoint.top, - Left = Model.value.focalPoint.left - } - }); - } - - var altText = Model.value.altText ?? Model.value.caption ?? string.Empty; - - @altText - - if (Model.value.caption != null) - { -

@Model.value.caption

- } -} diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Rte.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Rte.cshtml deleted file mode 100644 index 34bb744..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Rte.cshtml +++ /dev/null @@ -1,9 +0,0 @@ -@model dynamic -@using Umbraco.Web.Composing -@using Umbraco.Web.Templates -@{ - var value = TemplateUtilities.ParseInternalLinks(Model.value.ToString(), Current.UmbracoContext.UrlProvider); - value = TemplateUtilities.ResolveUrlsFromTextString(value); - value = TemplateUtilities.ResolveMediaFromTextString(value); -} -@Html.Raw(value) diff --git a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Textstring.cshtml b/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Textstring.cshtml deleted file mode 100644 index 1001d10..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Partials/Grid/Editors/Textstring.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model dynamic -@using Umbraco.Web.Composing -@using Umbraco.Web.Templates - -@if (Model.editor.config.markup != null) -{ - string markup = Model.editor.config.markup.ToString(); - markup = markup.Replace("#value#", Html.ReplaceLineBreaksForHtml(HttpUtility.HtmlEncode((string)Model.value.ToString())).ToString()); - - if (Model.editor.config.style != null) - { - markup = markup.Replace("#style#", Model.editor.config.style.ToString()); - } - - - @Html.Raw(markup) - -} -else -{ - -
@Model.value
-
-} diff --git a/src/DemoWebsite.v8.Legacy/Views/Shared/_Layout.cshtml b/src/DemoWebsite.v8.Legacy/Views/Shared/_Layout.cshtml deleted file mode 100644 index 73c9540..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@inherits UmbracoViewPage - - - - - - - @Model.Name - - - - @RenderBody() - - diff --git a/src/DemoWebsite.v8.Legacy/Views/Web.config b/src/DemoWebsite.v8.Legacy/Views/Web.config deleted file mode 100644 index 1b33af6..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/Web.config +++ /dev/null @@ -1,69 +0,0 @@ - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/Views/_ViewStart.cshtml b/src/DemoWebsite.v8.Legacy/Views/_ViewStart.cshtml deleted file mode 100644 index cdbe864..0000000 --- a/src/DemoWebsite.v8.Legacy/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} diff --git a/src/DemoWebsite.v8.Legacy/Web.Debug.config b/src/DemoWebsite.v8.Legacy/Web.Debug.config deleted file mode 100644 index fae9cfe..0000000 --- a/src/DemoWebsite.v8.Legacy/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/Web.Release.config b/src/DemoWebsite.v8.Legacy/Web.Release.config deleted file mode 100644 index da6e960..0000000 --- a/src/DemoWebsite.v8.Legacy/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/Web.config b/src/DemoWebsite.v8.Legacy/Web.config deleted file mode 100644 index cd0c3c9..0000000 --- a/src/DemoWebsite.v8.Legacy/Web.config +++ /dev/null @@ -1,246 +0,0 @@ - - - - -
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/BackOfficeTours/getting-started.json b/src/DemoWebsite.v8.Legacy/config/BackOfficeTours/getting-started.json deleted file mode 100644 index 1e3c606..0000000 --- a/src/DemoWebsite.v8.Legacy/config/BackOfficeTours/getting-started.json +++ /dev/null @@ -1,474 +0,0 @@ -[ - { - "name": "Email Marketing", - "alias": "umbEmailMarketing", - "group": "Email Marketing", - "groupOrder": 10, - "hidden": true, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Do you want to stay updated on everything Umbraco?", - "content": "

Thank you for using Umbraco! Would you like to stay up-to-date with Umbraco product updates, security advisories, community news and special offers? Sign up for our newsletter and never miss out on the latest Umbraco news.

By signing up, you agree that we can use your info according to our privacy policy.

", - "view": "emails", - "type": "promotion" - }, - { - "title": "Thank you for subscribing to our mailing list", - "view": "confirm" - } - ] - }, - { - "name": "Introduction", - "alias": "umbIntroIntroduction", - "group": "Getting Started", - "groupOrder": 100, - "allowDisable": true, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Welcome to Umbraco - The Friendly CMS", - "content": "

Thank you for choosing Umbraco - we think this could be the beginning of something beautiful. While it may feel overwhelming at first, we've done a lot to make the learning curve as smooth and fast as possible.

In this quick tour we will introduce you to the main areas of Umbraco and show you how to best get started.

If you don't want to take the tour now you can always start it by opening the Help drawer in the top right corner.

", - "type": "intro" - }, - { - "element": "[data-element='sections']", - "elementPreventClick": true, - "title": "Main Menu", - "content": "This is the main menu in Umbraco backoffice. Here you can navigate between the different sections, search for items, see your user profile and open the help drawer.", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='section-content']", - "elementPreventClick": true, - "title": "Sections", - "content": "Each area in Umbraco is called a Section. Right now you are in the Content section, when you want to go to another section simply click on the appropriate name in the main menu and you'll be there in no time.", - "backdropOpacity": 0.6 - }, - { - "element": "#tree", - "elementPreventClick": true, - "title": "The Tree", - "content": "

This is the Tree and it is the main navigation inside a section.

In the Content section the tree is called the Content tree and here you can navigate the content of your website.

" - }, - { - "element": "[data-element='dashboard']", - "elementPreventClick": true, - "title": "Dashboards", - "content": "

A dashboard is the main view you are presented with when entering a section within the backoffice, and can be used to show valuable information to the users of the system.

Notice that some sections have multiple dashboards.

" - }, - { - "element": "[data-element='global-search']", - "title": "Search", - "content": "The search allows you to quickly find whatever you're looking for across sections within Umbraco." - }, - { - "element": "[data-element='global-user']", - "title": "User profile", - "content": "Now click on your user avatar to open the user profile dialog.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element~='overlay-user']", - "elementPreventClick": true, - "title": "User profile", - "content": "

Here you can see details about your user, change your password and log out of Umbraco.

In the User section you will be able to do more advanced user management.

" - }, - { - "element": "[data-element~='overlay-user'] [data-element='button-overlayClose']", - "title": "User profile", - "content": "Let's close the user profile again.", - "event": "click" - }, - { - "element": "[data-element='global-help']", - "title": "Help", - "content": "If you ever find yourself in trouble click here to open the Help drawer.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='drawer']", - "elementPreventClick": true, - "title": "Help", - "content": "

In the help drawer you will find articles and videos related to the section you are using.

This is also where you will find the next tour on how to get started with Umbraco.

", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='drawer'] [data-element='help-tours']", - "title": "Tours", - "content": "To continue your journey on getting started with Umbraco, you can find more tours right here." - } - ] - }, - { - "name": "Create document type", - "alias": "umbIntroCreateDocType", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "settings" - ], - "steps": [ - { - "title": "Create your first Document Type", - "content": "

Step 1 of any site is to create a Document Type.
A Document Type is a template for content. For each type of content you want to create you'll create a Document Type. This will define where content based on this Document Type can be created, how many properties it holds and what the input method should be for these properties.

When you have at least one Document Type in place you can start creating content and this content can then be used in a template.

In this tour you will learn how to set up a basic Document Type with a property to enter a short text.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-settings']", - "title": "Navigate to the Settings sections", - "content": "In the Settings section you can create and manage Document types.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-documentTypes']", - "title": "Create Document Type", - "content": "

Hover over the Document Type tree and click the three small dots to open the context menu.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-documentTypes'] [data-element='tree-item-options']" - }, - { - "element": "#dialog [data-element='action-documentType']", - "title": "Create Document Type", - "content": "

Click Document Type to create a new document type with a template. The template will be automatically created and set as the default template for this Document Type.

You will use the template in a later tour to render content.

", - "event": "click" - }, - { - "element": "[data-element='editor-name-field']", - "title": "Enter a name", - "content": "

Your Document Type needs a name. Enter Home Page in the field and click Next.", - "view": "doctypename" - }, - { - "element": "[data-element='editor-description']", - "title": "Enter a description", - "content": "

A description helps to pick the right document type when creating content.

Write a description for our Home page. It could be:

The home page of the website

" - }, - { - "element": "[data-element='group-add']", - "title": "Add group", - "content": "Group are used to organize properties on content in the Content section. Click Add Group to add a group.", - "event": "click" - }, - { - "element": "[data-element='group-name-field']", - "title": "Name the group", - "content": "

Enter Home in the group name.

You can name a group anything you want and if you have a lot of properties it can be useful to add multiple groups.

", - "view": "tabName" - }, - { - "element": "[data-element='property-add']", - "title": "Add a property", - "content": "

Properties are the different input fields on a content page.

On our Home Page we want to add a welcome text.

Click Add property to open the property dialog.

", - "event": "click" - }, - { - "element": "[data-element='editor-property-settings'] [data-element='property-name']", - "title": "Name the property", - "content": "Enter Welcome Text as the name for the property.", - "view": "propertyname" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='property-description']", - "title": "Enter a description", - "content": "

A description will help your editor fill in the right content.

Enter a description for the property editor. It could be:

Write a nice introduction text so the visitors feel welcome

" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='editor-add']", - "title": "Add editor", - "content": "When you add an editor you choose what the input method for this property will be. Click Add editor to open the editor picker dialog.", - "event": "click" - }, - { - "element": "[ng-controller*='Umbraco.Editors.DataTypePickerController'] [data-element='editor-data-type-picker']", - "elementPreventClick": true, - "title": "Editor picker", - "content": "

In the editor picker dialog we can pick one of the many built-in editors.

" - }, - { - "element": "[data-element~='editor-data-type-picker'] [data-element='datatype-Textarea']", - "title": "Select editor", - "content": "Select the Textarea editor. This will add a textarea to the Welcome Text property.", - "event": "click" - }, - { - "element": "[data-element='editor-data-type-picker'] [data-element='datatypeconfig-Textarea']", - "title": "Editor settings", - "content": "Each property editor can have individual settings. For the textarea editor you can set a character limit but in this case it is not needed.", - "event": "click" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='button-submit']", - "title": "Add property to document type", - "content": "Click Submit to add the property to the document type.", - "event": "click" - }, - { - "element": "[data-element~='sub-view-permissions']", - "title": "Check the document type permissions", - "content": "Click Permissions to view the permissions page.", - "event": "click" - }, - { - "element": "[data-element~='permissions-allow-as-root']", - "title": "Allow this document type to work at the root of your site", - "content": "Toggle the switch Allow as root to allow new content pages based on this document type to be created at the root of your site", - "event": "click" - }, - { - "element": "[data-element='button-save']", - "title": "Save the document type", - "content": "All we need now is to save the document type. Click Save to create and save your new document type.", - "event": "click" - } - ] - }, - { - "name": "Create Content", - "alias": "umbIntroCreateContent", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Creating your first content node", - "content": "

In this tour you will learn how to create the home page for your website. It will use the Home Page Document type you created in the previous tour.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-content']", - "title": "Navigate to the Content section", - "content": "

In the Content section you can create and manage the content of the website.

The Content section contains the content of your website. Content is displayed as nodes in the content tree.

", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='tree-root']", - "title": "Open context menu", - "content": "

Open the context menu by hovering over the root of the content section.

Now click the three small dots to the right.

", - "event": "click", - "eventElement": "#tree [data-element='tree-root'] [data-element='tree-item-options']" - }, - { - "element": "[data-element='action-create-homePage']", - "title": "Create Home page", - "content": "

The context menu shows you all the actions that are available on a node

Click on Home Page to create a new page of type Home Page.

", - "event": "click" - }, - { - "element": "[data-element='editor-content'] [data-element='editor-name-field']", - "title": "Give your new page a name", - "content": "

Our new page needs a name. Enter Home in the field and click Next.

", - "view": "nodename" - }, - { - "element": "[data-element='editor-content'] [data-element='property-welcomeText']", - "title": "Add a welcome text", - "content": "

Add content to the Welcome Text field.

If you don't have any ideas here is a start:

I am learning Umbraco. High Five I Rock #H5IR
.

" - }, - { - "element": "[data-element='editor-content'] [data-element='button-saveAndPublish']", - "title": "Publish", - "content": "

Now click the Publish button to publish your changes.

", - "event": "click" - } - ] - }, - { - "name": "Render in template", - "alias": "umbIntroRenderInTemplate", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "settings" - ], - "steps": [ - { - "title": "Render your content in a template", - "content": "

Templating in Umbraco builds on the concept of Razor Views from ASP.NET MVC. This tour is a sneak peak on how to write templates in Umbraco.

In this tour you will learn how to render content from the Home Page document type so you can see the content added to our Home content page.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-settings']", - "title": "Navigate to the Settings section", - "content": "

In the Settings section you will find all the templates.

It is of course also possible to edit all your code files in your favorite code editor.

", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-templates']", - "title": "Expand the Templates node", - "content": "

To see all our templates click the small triangle to the left of the templates node.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-templates'] [data-element='tree-item-expand']", - "view": "templatetree", - "skipStepIfVisible": "#tree [data-element='tree-item-templates'] > div > button[data-element=tree-item-expand].icon-navigation-down" - }, - { - "element": "#tree [data-element='tree-item-templates'] [data-element='tree-item-Home Page']", - "title": "Open Home template", - "content": "

Click the Home Page template to open and edit it.

", - "eventElement": "#tree [data-element='tree-item-templates'] [data-element='tree-item-Home Page'] a.umb-tree-item__label", - "event": "click" - }, - { - "element": "[data-element='editor-templates'] [data-element='code-editor']", - "title": "Edit template", - "content": "

The template can be edited here or in your favorite code editor.

To render the field from the document type add the following to the template:

<h1>@Model.Name</h1>
<p>@Model.WelcomeText</p>

" - }, - { - "element": "[data-element='editor-templates'] [data-element='button-save']", - "title": "Save the template", - "content": "Click the Save button and your template will be saved.", - "event": "click" - } - ] - }, - { - "name": "View Home page", - "alias": "umbIntroViewHomePage", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "View your Umbraco site", - "content": "

Our three main components for a page are done: Document type, Template, and Content. It is now time to see the result.

In this tour you will learn how to see your published website.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-content']", - "title": "Navigate to the content sections", - "content": "In the Content section you will find the content of our website.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-Home']", - "title": "Open the Home page", - "content": "

Click the Home page to open it.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-Home'] a.umb-tree-item__label" - }, - { - "element": "[data-element='editor-content'] [data-element='sub-view-umbInfo']", - "title": "Info", - "content": "

Under the Info-app you will find the default information about a content item.

", - "event": "click" - }, - { - "element": "[data-element='editor-content'] [data-element='node-info-urls']", - "title": "Open page", - "content": "

Click the Link to document to view your page.

Tip: Click the preview button in the bottom right corner to preview changes without publishing them.

", - "event": "click", - "eventElement": "[data-element='editor-content'] [data-element='node-info-urls'] a[target='_blank']" - } - ] - }, - { - "name": "The Media library", - "alias": "umbIntroMediaSection", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "media" - ], - "steps": [ - { - "title": "How to use the media library", - "content": "

A website would be boring without media content. In Umbraco you can manage all your images, documents, videos etc. in the Media section. Here you can upload and organise your media items and see details about each item.

In this tour you will learn how to upload and organise your Media library in Umbraco. It will also show you how to view details about a specific media item.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-media']", - "title": "Navigate to the Media section", - "content": "The media section is where you manage all your media items.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-root']", - "title": "Create a new folder", - "content": "

First create a folder for your images. Hover over the media root node and click the three small dots on the right side of the item.

", - "event": "click", - "eventElement": "#tree [data-element='tree-root'] [data-element='tree-item-options']" - }, - { - "element": "#dialog [data-element='action-Folder']", - "title": "Create a new folder", - "content": "

Select the Folder option to select the type folder.

", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='editor-name-field']", - "title": "Enter a name", - "content": "

Enter My Images in the field.

", - "view": "foldername" - }, - { - "element": "[data-element='editor-media'] [data-element='button-save']", - "title": "Save the folder", - "content": "

Click the Save button to create the new folder.

", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='dropzone']", - "title": "Upload images", - "content": "

In the upload area you can upload your media items.

Click the Click here to choose files button and select a couple of images on your computer and upload them.

", - "view": "uploadimages" - }, - { - "element": "[data-element='editor-media'] [data-element='media-grid-item-0']", - "title": "View media item details", - "content": "Hover over the media item and Click the white bar to view details about the media item.", - "event": "click", - "eventElement": "[data-element='editor-media'] [data-element='media-grid-item-0'] [data-element='media-grid-item-edit']" - }, - { - "element": "[data-element='editor-media'] [data-element='property-umbracoFile']", - "elementPreventClick": true, - "title": "The uploaded image", - "content": "

Here you can see the image you have uploaded.

" - }, - { - "element": "[data-element='editor-media'] [data-element='property-umbracoBytes']", - "title": "Image size", - "content": "

You will also find other details about the image, like the size.

Media items work in much the same way as content. So you can add extra properties to an image by creating or editing the Media types in the Settings section.

" - }, - { - "element": "[data-element='editor-media'] [data-element='sub-view-umbInfo']", - "title": "Info", - "content": "Like the content section you can also find default information about the media item. You will find these under the info app.", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='node-info-urls']", - "title": "Link to media", - "content": "The path to the media item..." - }, - { - "element": "[data-element='editor-media'] [data-element='node-info-update-date']", - "title": "Last edited", - "content": "...and information about when the media item has been created and edited." - }, - { - "element": "[data-element='editor-container']", - "elementPreventClick": true, - "title": "Using media items", - "content": "You can reference a media item directly in a template by using the path or try adding a Media Picker to a document type property so you can select media items from the content section." - } - ] - } -] diff --git a/src/DemoWebsite.v8.Legacy/config/ClientDependency.config b/src/DemoWebsite.v8.Legacy/config/ClientDependency.config deleted file mode 100644 index bb98d57..0000000 --- a/src/DemoWebsite.v8.Legacy/config/ClientDependency.config +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8.Legacy/config/HealthChecks.config b/src/DemoWebsite.v8.Legacy/config/HealthChecks.config deleted file mode 100644 index 4e927e8..0000000 --- a/src/DemoWebsite.v8.Legacy/config/HealthChecks.config +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/cs-CZ.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/cs-CZ.user.xml deleted file mode 100644 index d4902d5..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/cs-CZ.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/da-DK.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/da-DK.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/da-DK.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/de-DE.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/de-DE.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/de-DE.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/en-GB.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/en-GB.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/en-GB.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/en-US.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/en-US.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/en-US.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/es-ES.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/es-ES.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/es-ES.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/fr-FR.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/fr-FR.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/fr-FR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/he-IL.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/he-IL.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/he-IL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/it-IT.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/it-IT.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/it-IT.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/ja-JP.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/ja-JP.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/ja-JP.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/ko-KR.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/ko-KR.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/ko-KR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/nb-NO.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/nb-NO.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/nb-NO.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/nl-NL.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/nl-NL.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/nl-NL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/pl-PL.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/pl-PL.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/pl-PL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/pt-BR.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/pt-BR.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/pt-BR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/ru-RU.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/ru-RU.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/ru-RU.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/sv-SE.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/sv-SE.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/sv-SE.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8.Legacy/config/Lang/zh-CN.user.xml b/src/DemoWebsite.v8.Legacy/config/Lang/zh-CN.user.xml deleted file mode 100644 index 8d2add9..0000000 --- a/src/DemoWebsite.v8.Legacy/config/Lang/zh-CN.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/grid.editors.config.js b/src/DemoWebsite.v8.Legacy/config/grid.editors.config.js deleted file mode 100644 index 210d167..0000000 --- a/src/DemoWebsite.v8.Legacy/config/grid.editors.config.js +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "Rich text editor", - "alias": "rte", - "view": "rte", - "icon": "icon-article" - }, - { - "name": "Image", - "nameTemplate": "{{ value && value.udi ? (value.udi | ncNodeName) : '' }}", - "alias": "media", - "view": "media", - "icon": "icon-picture" - }, - { - "name": "Macro", - "nameTemplate": "{{ value && value.macroAlias ? value.macroAlias : '' }}", - "alias": "macro", - "view": "macro", - "icon": "icon-settings-alt" - }, - { - "name": "Embed", - "alias": "embed", - "view": "embed", - "icon": "icon-movie-alt" - }, - { - "name": "Headline", - "nameTemplate": "{{ value }}", - "alias": "headline", - "view": "textstring", - "icon": "icon-coin", - "config": { - "style": "font-size: 36px; line-height: 45px; font-weight: bold", - "markup": "

#value#

" - } - }, - { - "name": "Quote", - "nameTemplate": "{{ value ? value.substring(0,32) + (value.length > 32 ? '...' : '') : '' }}", - "alias": "quote", - "view": "textstring", - "icon": "icon-quote", - "config": { - "style": "border-left: 3px solid #ccc; padding: 10px; color: #ccc; font-family: serif; font-style: italic; font-size: 18px", - "markup": "
#value#
" - } - } -] diff --git a/src/DemoWebsite.v8.Legacy/config/imageprocessor/cache.config b/src/DemoWebsite.v8.Legacy/config/imageprocessor/cache.config deleted file mode 100644 index 920bcd5..0000000 --- a/src/DemoWebsite.v8.Legacy/config/imageprocessor/cache.config +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/imageprocessor/processing.config b/src/DemoWebsite.v8.Legacy/config/imageprocessor/processing.config deleted file mode 100644 index 5737cde..0000000 --- a/src/DemoWebsite.v8.Legacy/config/imageprocessor/processing.config +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/imageprocessor/security.config b/src/DemoWebsite.v8.Legacy/config/imageprocessor/security.config deleted file mode 100644 index 7bce8ee..0000000 --- a/src/DemoWebsite.v8.Legacy/config/imageprocessor/security.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8.Legacy/config/logviewer.searches.config.js b/src/DemoWebsite.v8.Legacy/config/logviewer.searches.config.js deleted file mode 100644 index 345fe23..0000000 --- a/src/DemoWebsite.v8.Legacy/config/logviewer.searches.config.js +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "name": "Find all logs where the Level is NOT Verbose and NOT Debug", - "query": "Not(@Level='Verbose') and Not(@Level='Debug')" - }, - { - "name": "Find all logs that has an exception property (Warning, Error & Fatal with Exceptions)", - "query": "Has(@Exception)" - }, - { - "name": "Find all logs that have the property 'Duration'", - "query": "Has(Duration)" - }, - { - "name": "Find all logs that have the property 'Duration' and the duration is greater than 1000ms", - "query": "Has(Duration) and Duration > 1000" - }, - { - "name": "Find all logs that are from the namespace 'Umbraco.Core'", - "query": "StartsWith(SourceContext, 'Umbraco.Core')" - }, - { - "name": "Find all logs that use a specific log message template", - "query": "@MessageTemplate = '[Timing {TimingId}] {EndMessage} ({TimingDuration}ms)'" - }, - { - "name": "Find logs where one of the items in the SortedComponentTypes property array is equal to", - "query": "SortedComponentTypes[?] = 'Umbraco.Web.Search.ExamineComponent'" - }, - { - "name": "Find logs where one of the items in the SortedComponentTypes property array contains", - "query": "Contains(SortedComponentTypes[?], 'DatabaseServer')" - }, - { - "name": "Find all logs that the message has localhost in it with SQL like", - "query": "@Message like '%localhost%'" - }, - { - "name": "Find all logs that the message that starts with 'end' in it with SQL like", - "query": "@Message like 'end%'" - } -] diff --git a/src/DemoWebsite.v8.Legacy/config/serilog.config b/src/DemoWebsite.v8.Legacy/config/serilog.config deleted file mode 100644 index 4d9151b..0000000 --- a/src/DemoWebsite.v8.Legacy/config/serilog.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8.Legacy/config/serilog.user.config b/src/DemoWebsite.v8.Legacy/config/serilog.user.config deleted file mode 100644 index 8f20740..0000000 --- a/src/DemoWebsite.v8.Legacy/config/serilog.user.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8.Legacy/config/splashes/noNodes.aspx b/src/DemoWebsite.v8.Legacy/config/splashes/noNodes.aspx deleted file mode 100644 index 46a27a4..0000000 --- a/src/DemoWebsite.v8.Legacy/config/splashes/noNodes.aspx +++ /dev/null @@ -1,61 +0,0 @@ -<%@ Page Language="C#" AutoEventWireup="True" Inherits="Umbraco.Web.UI.Config.Splashes.NoNodes" CodeBehind="NoNodes.aspx.cs" %> -<%@ Import Namespace="Umbraco.Core.Configuration" %> -<%@ Import Namespace="Umbraco.Core.IO" %> - - - - - - - - - - - - - - - - - - - - -
-
-
- - -

Welcome to your Umbraco installation

-

You're seeing this wonderful page because your website doesn't contain any published content yet.

- - - - -
-
-

Easy start with Umbraco.tv

-

We have created a bunch of 'how-to' videos, to get you easily started with Umbraco. Learn how to build projects in just a couple of minutes. Easiest CMS in the world.

- - Umbraco.tv → -
- -
-

Be a part of the community

-

The Umbraco community is the best of its kind, be sure to visit, and if you have any questions, we're sure that you can get your answers from the community.

- - our.Umbraco → -
-
- -
-
- -
- - - - - diff --git a/src/DemoWebsite.v8.Legacy/config/tinyMceConfig.config b/src/DemoWebsite.v8.Legacy/config/tinyMceConfig.config deleted file mode 100644 index 7f7cb65..0000000 --- a/src/DemoWebsite.v8.Legacy/config/tinyMceConfig.config +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - paste - anchor - charmap - table - lists - advlist - hr - autolink - directionality - tabfocus - searchreplace - fullscreen - - - - - font - - - - - raw - - diff --git a/src/DemoWebsite.v8.Legacy/config/umbracoSettings.config b/src/DemoWebsite.v8.Legacy/config/umbracoSettings.config deleted file mode 100644 index 8619b49..0000000 --- a/src/DemoWebsite.v8.Legacy/config/umbracoSettings.config +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - - - - - - - 1 - - - - - - - - your@email.here - - - - - - Preview mode - - … - - - Click to end - - - - ]]> - - - - throw - - - ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,xhtml,html,htm,php,htaccess - - - assets/img/login.jpg - - - - - - false - - true - - false - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8.Legacy/packages.config b/src/DemoWebsite.v8.Legacy/packages.config deleted file mode 100644 index fa93b37..0000000 --- a/src/DemoWebsite.v8.Legacy/packages.config +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/App_Data/packages/createdPackages.config b/src/DemoWebsite.v8/App_Data/packages/createdPackages.config deleted file mode 100644 index 3299dfc..0000000 --- a/src/DemoWebsite.v8/App_Data/packages/createdPackages.config +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/App_Data/packages/installedPackages.config b/src/DemoWebsite.v8/App_Data/packages/installedPackages.config deleted file mode 100644 index 3299dfc..0000000 --- a/src/DemoWebsite.v8/App_Data/packages/installedPackages.config +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.html b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.html deleted file mode 100644 index f2dbca5..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.html +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.js b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.js deleted file mode 100644 index e1238db..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-button.js +++ /dev/null @@ -1,12 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaButton", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-button.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, -}); diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-init.js b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-init.js deleted file mode 100644 index 450c4dc..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-init.js +++ /dev/null @@ -1,9 +0,0 @@ -angular.module("MyContentBlocksAddon", ["perplexContentBlocks"]) -angular.module("umbraco").requires.push("MyContentBlocksAddon"); - -angular.module("MyContentBlocksAddon").run([ - "perplexContentBlocksCustomComponents", - function (customComponents) { - customComponents.block.main = "mcba-main"; - customComponents.block.buttons.push("mcba-button"); - }]); diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.html b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.html deleted file mode 100644 index a999567..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.html +++ /dev/null @@ -1,39 +0,0 @@ - - - -

-
-
-
-
-
- -
-
-

-
-        
-        
-
-        
-        
-
-        
-    
-
- -
- - -
diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.js b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.js deleted file mode 100644 index d083074..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/mcba-main.js +++ /dev/null @@ -1,20 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaMain", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-main.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, - - controller: [ - function mcbaMain() { - this.$onInit = function () { - // TODO - } - } - ], -}); diff --git a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/package.manifest b/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/package.manifest deleted file mode 100644 index ce30d1d..0000000 --- a/src/DemoWebsite.v8/App_Plugins/MyContentBlocksAddon/package.manifest +++ /dev/null @@ -1,7 +0,0 @@ -{ - "javascript": [ - "~/App_Plugins/MyContentBlocksAddon/mcba-init.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-main.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-button.js" - ] -} diff --git a/src/DemoWebsite.v8/DemoWebsite.v8.csproj b/src/DemoWebsite.v8/DemoWebsite.v8.csproj deleted file mode 100644 index 73a498c..0000000 --- a/src/DemoWebsite.v8/DemoWebsite.v8.csproj +++ /dev/null @@ -1,449 +0,0 @@ - - - - - - Debug - AnyCPU - - - 2.0 - {138B10FE-3907-4D28-A1A9-02FB6C630580} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - DemoWebsite - DemoWebsite.v8 - v4.7.2 - true - - 44309 - - - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - true - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - ..\..\packages\AngleSharp.0.9.11\lib\net45\AngleSharp.dll - - - ..\..\packages\ClientDependency.1.9.9\lib\net45\ClientDependency.Core.dll - - - ..\..\packages\ClientDependency-Mvc5.1.9.3\lib\net45\ClientDependency.Core.Mvc.dll - - - ..\..\packages\CSharpTest.Net.Collections.14.906.1403.1082\lib\net40\CSharpTest.Net.Collections.dll - - - ..\..\packages\Examine.1.2.0\lib\net452\Examine.dll - - - ..\..\packages\HtmlAgilityPack.1.8.14\lib\Net45\HtmlAgilityPack.dll - - - ..\..\packages\HtmlSanitizer.4.0.217\lib\net45\HtmlSanitizer.dll - - - ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll - - - ..\..\packages\ImageProcessor.2.7.0.100\lib\net452\ImageProcessor.dll - - - ..\..\packages\ImageProcessor.Web.4.10.0.100\lib\net452\ImageProcessor.Web.dll - - - ..\..\packages\K4os.Compression.LZ4.1.1.11\lib\net46\K4os.Compression.LZ4.dll - - - ..\..\packages\LightInject.5.4.0\lib\net46\LightInject.dll - - - ..\..\packages\LightInject.Annotation.1.1.0\lib\net46\LightInject.Annotation.dll - - - ..\..\packages\LightInject.Mvc.2.0.0\lib\net46\LightInject.Mvc.dll - - - ..\..\packages\LightInject.Web.2.0.0\lib\net46\LightInject.Web.dll - - - ..\..\packages\LightInject.WebApi.2.0.0\lib\net46\LightInject.WebApi.dll - - - ..\..\packages\Lucene.Net.3.0.3\lib\NET40\Lucene.Net.dll - - - ..\..\packages\Markdown.2.2.1\lib\net451\Markdown.dll - - - ..\..\packages\MessagePack.2.2.85\lib\netstandard2.0\MessagePack.dll - - - ..\..\packages\MessagePack.Annotations.2.2.85\lib\netstandard2.0\MessagePack.Annotations.dll - - - ..\..\packages\Microsoft.AspNet.Identity.Core.2.2.2\lib\net45\Microsoft.AspNet.Identity.Core.dll - - - ..\..\packages\Microsoft.AspNet.Identity.Owin.2.2.2\lib\net45\Microsoft.AspNet.Identity.Owin.dll - - - ..\..\packages\Microsoft.AspNet.SignalR.Core.2.4.0\lib\net45\Microsoft.AspNet.SignalR.Core.dll - - - ..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - - ..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll - - - - ..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - - ..\..\packages\Microsoft.IO.RecyclableMemoryStream.1.2.2\lib\net45\Microsoft.IO.RecyclableMemoryStream.dll - - - ..\..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll - - - ..\..\packages\Microsoft.Owin.Host.SystemWeb.4.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - - - ..\..\packages\Microsoft.Owin.Security.4.0.1\lib\net45\Microsoft.Owin.Security.dll - - - ..\..\packages\Microsoft.Owin.Security.Cookies.4.0.1\lib\net45\Microsoft.Owin.Security.Cookies.dll - - - ..\..\packages\Microsoft.Owin.Security.OAuth.4.0.1\lib\net45\Microsoft.Owin.Security.OAuth.dll - - - ..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll - - - ..\..\packages\MiniProfiler.4.0.138\lib\net461\MiniProfiler.dll - - - ..\..\packages\MiniProfiler.Shared.4.0.138\lib\net461\MiniProfiler.Shared.dll - - - ..\..\packages\Newtonsoft.Json.12.0.1\lib\net45\Newtonsoft.Json.dll - - - ..\..\packages\NPoco.3.9.4\lib\net45\NPoco.dll - - - ..\..\packages\Owin.1.0\lib\net40\Owin.dll - - - ..\..\packages\Semver.2.0.4\lib\net452\Semver.dll - - - ..\..\packages\Serilog.2.8.0\lib\net46\Serilog.dll - - - ..\..\packages\Serilog.Enrichers.Process.2.0.1\lib\net45\Serilog.Enrichers.Process.dll - - - ..\..\packages\Serilog.Enrichers.Thread.3.0.0\lib\net45\Serilog.Enrichers.Thread.dll - - - ..\..\packages\Serilog.Filters.Expressions.2.0.0\lib\net45\Serilog.Filters.Expressions.dll - - - ..\..\packages\Serilog.Formatting.Compact.1.0.0\lib\net45\Serilog.Formatting.Compact.dll - - - ..\..\packages\Serilog.Formatting.Compact.Reader.1.0.3\lib\net45\Serilog.Formatting.Compact.Reader.dll - - - ..\..\packages\Serilog.Settings.AppSettings.2.2.2\lib\net45\Serilog.Settings.AppSettings.dll - - - ..\..\packages\Serilog.Sinks.Async.1.3.0\lib\net45\Serilog.Sinks.Async.dll - - - ..\..\packages\Serilog.Sinks.File.4.0.0\lib\net45\Serilog.Sinks.File.dll - - - ..\..\packages\Serilog.Sinks.Map.1.0.0\lib\netstandard2.0\Serilog.Sinks.Map.dll - - - ..\..\packages\Superpower.2.0.0\lib\net45\Superpower.dll - - - ..\..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll - - - ..\..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll - - - - ..\..\packages\Umbraco.SqlServerCE.4.0.0.1\lib\net472\System.Data.SqlServerCe.dll - - - ..\..\packages\Umbraco.SqlServerCE.4.0.0.1\lib\net472\System.Data.SqlServerCe.Entity.dll - - - ..\..\packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll - - - - - ..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - - - ..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll - - - - ..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll - - - - - ..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - - - ..\..\packages\System.Text.Encoding.CodePages.4.7.1\lib\net461\System.Text.Encoding.CodePages.dll - - - - ..\..\packages\System.Threading.Tasks.Dataflow.4.9.0\lib\netstandard2.0\System.Threading.Tasks.Dataflow.dll - - - ..\..\packages\System.Threading.Tasks.Extensions.4.5.3\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - - ..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll - - - - - - - - - - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.Helpers.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll - - - ..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll - - - ..\..\packages\Microsoft.AspNet.Mvc.5.2.7\lib\net45\System.Web.Mvc.dll - - - ..\..\packages\Microsoft.AspNet.Razor.3.2.7\lib\net45\System.Web.Razor.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Deployment.dll - - - ..\..\packages\Microsoft.AspNet.WebPages.3.2.7\lib\net45\System.Web.WebPages.Razor.dll - - - - - - - - - - ..\..\packages\UmbracoCms.Core.8.15.1\lib\net472\Umbraco.Core.dll - - - ..\..\packages\UmbracoCms.Web.8.15.1\lib\net472\Umbraco.Examine.dll - - - ..\..\packages\UmbracoCms.Web.8.15.1\lib\net472\Umbraco.ModelsBuilder.Embedded.dll - - - ..\..\packages\UmbracoCms.Web.8.15.1\lib\net472\Umbraco.Web.dll - - - ..\..\packages\UmbracoCms.Web.8.15.1\lib\net472\Umbraco.Web.UI.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Web.config - - - Web.config - - - - - - - - - - - - {1282fad9-5b28-4dba-bf0e-0f8982085f59} - Perplex.ContentBlocks.Core - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - True - True - 52174 - / - https://localhost:44309/ - False - False - - - False - - - - - - :: Create link to App_Plugins\Perplex.ContentBlocks of Perplex.ContentBlocks project -if not exist $(ProjectDir)App_Plugins ( - mkdir $(ProjectDir)App_Plugins -) - -if not exist $(ProjectDir)App_Plugins\Perplex.ContentBlocks ( - mklink /J $(ProjectDir)App_Plugins\Perplex.ContentBlocks $(SolutionDir)Perplex.ContentBlocks\App_Plugins\Perplex.ContentBlocks -) - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/Example.cs b/src/DemoWebsite.v8/Example.cs deleted file mode 100644 index c01658a..0000000 --- a/src/DemoWebsite.v8/Example.cs +++ /dev/null @@ -1,303 +0,0 @@ -using Perplex.ContentBlocks.Categories; -using Perplex.ContentBlocks.Definitions; -using Perplex.ContentBlocks.Presets; -using System; -using System.Linq; -using Umbraco.Core.Composing; -using Umbraco.Core.Models; -using Umbraco.Core.PropertyEditors; -using Umbraco.Core.Services; -using Umbraco.Web.PropertyEditors; -using static Umbraco.Core.Constants; - -namespace DemoWebsite -{ - [RuntimeLevel(MinLevel = Umbraco.Core.RuntimeLevel.Run)] - public class ExampleComposer : ComponentComposer { } - - public class ExampleComponent : IComponent - { - private readonly IContentBlockDefinitionRepository _definitions; - private readonly PropertyEditorCollection _propertyEditors; - private readonly IDataTypeService _dataTypeService; - private readonly IContentTypeService _contentTypeService; - private readonly IContentBlockCategoryRepository _categoryRepository; - private readonly IContentBlocksPresetRepository _presetRepository; - - public ExampleComponent( - IContentBlockDefinitionRepository definitions, - PropertyEditorCollection propertyEditors, - IDataTypeService dataTypeService, - IContentTypeService contentTypeService, - IContentBlockCategoryRepository categoryRepository, - IContentBlocksPresetRepository presetRepository) - { - _definitions = definitions; - _propertyEditors = propertyEditors; - _dataTypeService = dataTypeService; - _contentTypeService = contentTypeService; - _categoryRepository = categoryRepository; - _presetRepository = presetRepository; - } - - public void Initialize() - { - Guid dataTypeKey = new Guid("ec17fffe-3a33-4a08-a61a-3a6b7008e20f"); - CreateExampleBlock("exampleBlock", dataTypeKey); - - var specialCategoryId = new Guid("AAC6EE6A-EA54-4E90-A33B-049E39786BF5"); - _categoryRepository.Add(new ContentBlockCategory - { - Id = specialCategoryId, - Name = "Specials", - Icon = "/Media/icons.svg#icon-cat-special" - }); - - // Block - var block = new ContentBlockDefinition - { - Name = "Example Block", - Id = new Guid("11111111-1111-1111-1111-111111111111"), - DataTypeKey = dataTypeKey, - // PreviewImage will usually be a path to some image, - // for this demo we use a base64-encoded PNG of 3x2 pixels - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZYzzDwPCfAQqYGJAAACokAc/b6i7NAAAAAElFTkSuQmCC", - Description = "Example Block", - - Layouts = new IContentBlockLayout[] - { - new ContentBlockLayout - { - Id = new Guid("22222222-2222-2222-2222-222222222222"), - Name = "Red", - Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae interdum dolor, sit amet luctus odio.", - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZYzzDwPCfAQqYGJAAACokAc/b6i7NAAAAAElFTkSuQmCC", - ViewPath = "~/Views/Partials/ExampleBlock/Red.cshtml" - }, - new ContentBlockLayout - { - Id = new Guid("33333333-3333-3333-3333-333333333333"), - Name = "Green", - Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae interdum dolor, sit amet luctus odio. Nam laoreet at odio eu faucibus. Vivamus non rhoncus erat, sit amet efficitur ipsum.", - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZYyy+JPafAQqYGJAAADcdAl5UlCmyAAAAAElFTkSuQmCC", - ViewPath = "~/Views/Partials/ExampleBlock/Green.cshtml" - }, - new ContentBlockLayout - { - Id = new Guid("44444444-4444-4444-4444-444444444444"), - Name = "Blue", - Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae interdum dolor, sit amet luctus odio. Nam laoreet at odio eu faucibus. Vivamus non rhoncus erat, sit amet efficitur ipsum. Pellentesque tempus tellus eu posuere varius. Nulla elementum lacus lacus. Curabitur elementum faucibus velit sed mollis.", - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZYzRJXfKfAQqYGJAAADOAAkAWXApqAAAAAElFTkSuQmCC", - ViewPath = "~/Views/Partials/ExampleBlock/Blue.cshtml", - }, - }, - - CategoryIds = new[] - { - Perplex.ContentBlocks.Constants.Categories.Content, - specialCategoryId, - } - }; - - // Header - var header = new ContentBlockDefinition - { - Name = "Example Header", - Id = new Guid("55555555-5555-5555-5555-555555555555"), - DataTypeKey = dataTypeKey, - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZY/zz0v8/AxQwMSABAEvFAzckGfK1AAAAAElFTkSuQmCC", - Description = "Example Block", - - Layouts = new IContentBlockLayout[] - { - new ContentBlockLayout - { - Id = new Guid("66666666-6666-6666-6666-666666666666"), - Name = "Yellow", - Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae interdum dolor, sit amet luctus odio.", - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZY/zz0v8/AxQwMSABAEvFAzckGfK1AAAAAElFTkSuQmCC", - ViewPath = "~/Views/Partials/ExampleHeader/Yellow.cshtml" - }, - new ContentBlockLayout - { - Id = new Guid("77777777-7777-7777-7777-777777777777"), - Name = "Magenta", - Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae interdum dolor, sit amet luctus odio. Nam laoreet at odio eu faucibus. Vivamus non rhoncus erat, sit amet efficitur ipsum.", - PreviewImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATSURBVAiZY/zP8P8/AxQwMSABAEYIAwEl5g6iAAAAAElFTkSuQmCC", - ViewPath = "~/Views/Partials/ExampleHeader/Magenta.cshtml" - }, - }, - - CategoryIds = new[] - { - Perplex.ContentBlocks.Constants.Categories.Headers, - } - }; - - _definitions.Add(block); - _definitions.Add(header); - - var all = _definitions.GetAll().ToList(); - - for (int i = 0; i < all.Count; i++) - { - var def = all[i]; - - for (int j = 0; j < 8; j++) - { - var newDef = new ContentBlockDefinition - { - CategoryIds = def.CategoryIds.ToList(), - DataTypeId = def.DataTypeId, - DataTypeKey = def.DataTypeKey, - Description = def.Description, - Id = new Guid($"{i}{j}{def.Id.ToString().Substring(2)}"), - Layouts = def.Layouts.Select(l => new ContentBlockLayout - { - Description = l.Description, - Id = new Guid($"{i}{j}{l.Id.ToString().Substring(2)}"), - Name = l.Name, - PreviewImage = l.PreviewImage, - ViewPath = l.ViewPath, - }).ToList(), - Name = def.Name + $" - copy #{j + 1}", - PreviewImage = def.PreviewImage, - }; - - _definitions.Add(newDef); - } - } - - _presetRepository.Add(new ContentBlocksPreset - { - Id = new Guid("72d1b24f-ed6d-4c27-ad21-8fec48b6060c"), - Name = "Test", - ApplyToDocumentTypes = new[] { "contentPage" }, - Blocks = new[] - { - new ContentBlockPreset - { - Id = new Guid("198bec2a-3404-409a-80e5-cb002aa5858e"), - DefinitionId = new Guid("11111111-1111-1111-1111-111111111111"), - LayoutId = new Guid("33333333-3333-3333-3333-333333333333"), - Values = - { - ["title"] = "Preset Title value", - }, - - Variants = new[] - { - new ContentBlockVariantPreset - { - Id = new Guid("b08be547-4cd5-4a57-b4e7-97c15c3f3d6c"), - Alias = "ums-segment-456", - Values = - { - ["title"] = "UMS SEGMENT TEST", - } - }, - - new ContentBlockVariantPreset - { - Id = new Guid("c08be547-4cd5-4a57-b4e7-97c15c3f3d6c"), - Alias = "ums-segment-xyz", - Values = - { - ["text"] = "TEXT", - } - } - } - }, - } - }); - } - - private void CreateExampleBlock(string contentTypeAlias, Guid dataTypeKey) - { - CreateExampleBlockElementType(contentTypeAlias); - CreateExampleBlockDataType(contentTypeAlias, dataTypeKey); - } - - private void CreateExampleBlockElementType(string contentTypeAlias) - { - if (_contentTypeService.Get(contentTypeAlias) != null) - { - // Already created - return; - } - - IContentType contentType = new ContentType(-1) - { - Alias = contentTypeAlias, - IsElement = true, - Name = "Example Block", - PropertyGroups = new PropertyGroupCollection(new[] - { - new PropertyGroup(new PropertyTypeCollection(true, new[] - { - new PropertyType(PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext) - { - PropertyEditorAlias = PropertyEditors.Aliases.TextBox, - Name = "Title", - Alias = "title", - }, - new PropertyType(PropertyEditors.Aliases.TextBox, ValueStorageType.Ntext) - { - PropertyEditorAlias = PropertyEditors.Aliases.TinyMce, - Name = "Text", - Alias = "text", - }, - })) - { - Name = "Content", - } - }) - }; - - _contentTypeService.Save(contentType); - } - - private void CreateExampleBlockDataType(string contentTypeAlias, Guid dataTypeKey) - { - if (_dataTypeService.GetDataType(dataTypeKey) != null) - { - // Already there - return; - } - - if (!(_propertyEditors.TryGet("Umbraco.NestedContent", out var editor) && editor is NestedContentPropertyEditor nestedContentEditor)) - { - throw new InvalidOperationException("Nested Content property editor not found!"); - } - - var dataType = new DataType(nestedContentEditor, -1) - { - Name = "Perplex.ContentBlocks - ExampleBlock", - Key = dataTypeKey, - Configuration = new NestedContentConfiguration - { - ConfirmDeletes = false, - HideLabel = true, - MinItems = 1, - MaxItems = 1, - ShowIcons = false, - ContentTypes = new[] - { - new NestedContentConfiguration.ContentType - { - Alias = contentTypeAlias, - TabAlias = "Content", - Template = "{{title}}" - } - } - } - }; - - _dataTypeService.Save(dataType); - } - - public void Terminate() - { - } - } -} diff --git a/src/DemoWebsite.v8/Global.asax b/src/DemoWebsite.v8/Global.asax deleted file mode 100644 index 0831274..0000000 --- a/src/DemoWebsite.v8/Global.asax +++ /dev/null @@ -1 +0,0 @@ -<%@ Application Inherits="Umbraco.Web.UmbracoApplication" Language="C#" %> diff --git a/src/DemoWebsite.v8/Properties/AssemblyInfo.cs b/src/DemoWebsite.v8/Properties/AssemblyInfo.cs deleted file mode 100644 index 23e9e2e..0000000 --- a/src/DemoWebsite.v8/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DemoWebsite")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DemoWebsite")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("138b10fe-3907-4d28-a1a9-02fb6c630580")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/DemoWebsite.v8/Views/Contentpage.cshtml b/src/DemoWebsite.v8/Views/Contentpage.cshtml deleted file mode 100644 index 3c679de..0000000 --- a/src/DemoWebsite.v8/Views/Contentpage.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; - -@Html.RenderContentBlocks(Model.ContentBlocks) diff --git a/src/DemoWebsite.v8/Views/Contentpage2.cshtml b/src/DemoWebsite.v8/Views/Contentpage2.cshtml deleted file mode 100644 index 10752d8..0000000 --- a/src/DemoWebsite.v8/Views/Contentpage2.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; - -@Html.RenderContentBlocks(Model.ContentBlocks) diff --git a/src/DemoWebsite.v8/Views/Home.cshtml b/src/DemoWebsite.v8/Views/Home.cshtml deleted file mode 100644 index 1d5fd1f..0000000 --- a/src/DemoWebsite.v8/Views/Home.cshtml +++ /dev/null @@ -1,5 +0,0 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; - -@Html.RenderContentBlocks(Model.ContentBlocks) diff --git a/src/DemoWebsite.v8/Views/Partials/BlockList/Default.cshtml b/src/DemoWebsite.v8/Views/Partials/BlockList/Default.cshtml deleted file mode 100644 index 05851df..0000000 --- a/src/DemoWebsite.v8/Views/Partials/BlockList/Default.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Core.Models.Blocks -@{ - if (!Model.Any()) { return; } -} -
- @foreach (var block in Model) - { - if (block?.ContentUdi == null) { continue; } - var data = block.Content; - @Html.Partial("BlockList/Components/" + data.ContentType.Alias, block) - } -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Blue.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Blue.cshtml deleted file mode 100644 index f5e1d03..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Blue.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Green.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Green.cshtml deleted file mode 100644 index bf0d977..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Green.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Red.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Red.cshtml deleted file mode 100644 index 4d32cf9..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/Red.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleBlock/_ExampleBlock") -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/_ExampleBlock.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleBlock/_ExampleBlock.cshtml deleted file mode 100644 index be38de6..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleBlock/_ExampleBlock.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
-

@Model.Content.Title

- @Model.Content.Text -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Magenta.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Magenta.cshtml deleted file mode 100644 index c4507d6..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Magenta.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleHeader/_ExampleHeader") -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Yellow.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Yellow.cshtml deleted file mode 100644 index a00c028..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/Yellow.cshtml +++ /dev/null @@ -1,7 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
- @Html.Partial("ExampleHeader/_ExampleHeader") -
diff --git a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/_ExampleHeader.cshtml b/src/DemoWebsite.v8/Views/Partials/ExampleHeader/_ExampleHeader.cshtml deleted file mode 100644 index 14e552c..0000000 --- a/src/DemoWebsite.v8/Views/Partials/ExampleHeader/_ExampleHeader.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@using ContentModels = Umbraco.Web.PublishedModels; -@using Perplex.ContentBlocks.Rendering; -@model IContentBlockViewModel - -
-

@Model.Content.Title

- @Model.Content.Text -
diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3-Fluid.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3-Fluid.cshtml deleted file mode 100644 index bef1b88..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3-Fluid.cshtml +++ /dev/null @@ -1,88 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates -@using Newtonsoft.Json.Linq - -@* - Razor helpers located at the bottom of this file -*@ - -@if (Model != null && Model.GetType() == typeof(JObject) && Model.sections != null) -{ - var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; - -
- @if (oneColumn) - { - foreach (var section in Model.sections) { -
- @foreach (var row in section.rows) { - @renderRow(row) - } -
- } - }else { -
- @foreach (var s in Model.sections) { -
-
- @foreach (var row in s.rows) { - @renderRow(row) - } -
-
- } -
- } -
-} - -@helper renderRow(dynamic row){ -
-
- @foreach ( var area in row.areas ) { -
-
- @foreach (var control in area.controls) { - if (control !=null && control.editor != null && control.editor.view != null ) { - @Html.Partial("grid/editors/base", (object)control) - } - } -
-
} -
-
-} - -@functions { - public static MvcHtmlString RenderElementAttributes(dynamic contentItem) - { - var attrs = new List(); - JObject cfg = contentItem.config; - - if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); - } - - JObject style = contentItem.styles; - - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } - - if (cssVals.Any()) - attrs.Add("style='" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "'"); - } - - return new MvcHtmlString(string.Join(" ", attrs)); - } -} diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3.cshtml deleted file mode 100644 index 801526a..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Bootstrap3.cshtml +++ /dev/null @@ -1,92 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates -@using Newtonsoft.Json.Linq - -@if (Model != null && Model.GetType() == typeof(JObject) && Model.sections != null) -{ - var oneColumn = ((System.Collections.ICollection)Model.sections).Count == 1; - -
- @if (oneColumn) - { - foreach (var section in Model.sections) { -
- @foreach (var row in section.rows) { - @renderRow(row, true) - } -
- } - }else { -
-
- @foreach (var s in Model.sections) { -
-
- @foreach (var row in s.rows) { - @renderRow(row, false) - } -
-
- } -
-
- } -
-} - -@helper renderRow(dynamic row, bool singleColumn){ -
- @if (singleColumn) { - @:
- } -
- @foreach ( var area in row.areas ) { -
-
- @foreach (var control in area.controls) { - if (control !=null && control.editor != null && control.editor.view != null ) { - @Html.Partial("grid/editors/base", (object)control) - } - } -
-
} -
- @if (singleColumn) { - @:
- } -
-} - -@functions { - public static MvcHtmlString RenderElementAttributes(dynamic contentItem) - { - var attrs = new List(); - JObject cfg = contentItem.config; - - if(cfg != null) - foreach (JProperty property in cfg.Properties()) - { - var propertyValue = HttpUtility.HtmlAttributeEncode(property.Value.ToString()); - attrs.Add(property.Name + "=\"" + propertyValue + "\""); - } - - JObject style = contentItem.styles; - - if (style != null) { - var cssVals = new List(); - foreach (JProperty property in style.Properties()) - { - var propertyValue = property.Value.ToString(); - if (string.IsNullOrWhiteSpace(propertyValue) == false) - { - cssVals.Add(property.Name + ":" + propertyValue + ";"); - } - } - - if (cssVals.Any()) - attrs.Add("style=\"" + HttpUtility.HtmlAttributeEncode(string.Join(" ", cssVals)) + "\""); - } - - return new MvcHtmlString(string.Join(" ", attrs)); - } -} diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Base.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Base.cshtml deleted file mode 100644 index a86c048..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Base.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model dynamic -@using Umbraco.Web.Templates - -@functions { - public static string EditorView(dynamic contentItem) - { - string view = contentItem.editor.render != null ? contentItem.editor.render.ToString() : contentItem.editor.view.ToString(); - view = view.ToLower().Replace(".html", ".cshtml"); - - if (!view.Contains("/")) { - view = "grid/editors/" + view; - } - - return view; - } -} -@try -{ - string editor = EditorView(Model); - @Html.Partial(editor, (object)Model) -} -catch (Exception ex) { -
@ex.ToString()
-} \ No newline at end of file diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Embed.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Embed.cshtml deleted file mode 100644 index 4a915a4..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Embed.cshtml +++ /dev/null @@ -1,10 +0,0 @@ -@model dynamic -@using Umbraco.Web.Templates -@{ - string embedValue = Convert.ToString(Model.value); - embedValue = embedValue.DetectIsJson() ? Model.value.preview : Model.value; -} - -
- @Html.Raw(embedValue) -
diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Macro.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Macro.cshtml deleted file mode 100644 index e082280..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Macro.cshtml +++ /dev/null @@ -1,17 +0,0 @@ -@inherits UmbracoViewPage -@using Umbraco.Web.Templates - - -@if (Model.value != null) -{ - string macroAlias = Model.value.macroAlias.ToString(); - ViewDataDictionary parameters = new ViewDataDictionary(); - foreach (dynamic mpd in Model.value.macroParamsDictionary) - { - parameters.Add(mpd.Name, mpd.Value); - } - - - @Umbraco.RenderMacro(macroAlias, parameters) - -} diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Media.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Media.cshtml deleted file mode 100644 index dc879fb..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Media.cshtml +++ /dev/null @@ -1,58 +0,0 @@ -@model dynamic -@using Umbraco.Core.PropertyEditors.ValueConverters - -@if (Model.value != null) -{ - var url = Model.value.image; - if(Model.editor.config != null && Model.editor.config.size != null){ - if (Model.value.coordinates != null) - { - url = ImageCropperTemplateExtensions.GetCropUrl( - (string)url, - width: (int)Model.editor.config.size.width, - height: (int)Model.editor.config.size.height, - cropAlias: "default", - cropDataSet: new ImageCropperValue - { - Crops = new[] - { - new ImageCropperValue.ImageCropperCrop - { - Alias = "default", - Coordinates = new ImageCropperValue.ImageCropperCropCoordinates - { - X1 = (decimal)Model.value.coordinates.x1, - Y1 = (decimal)Model.value.coordinates.y1, - X2 = (decimal)Model.value.coordinates.x2, - Y2 = (decimal)Model.value.coordinates.y2 - } - } - } - }); - } - else - { - url = ImageCropperTemplateExtensions.GetCropUrl( - (string)url, - width: (int)Model.editor.config.size.width, - height: (int)Model.editor.config.size.height, - cropDataSet: new ImageCropperValue - { - FocalPoint = new ImageCropperValue.ImageCropperFocalPoint - { - Top = Model.value.focalPoint == null ? 0.5m : Model.value.focalPoint.top, - Left = Model.value.focalPoint == null ? 0.5m : Model.value.focalPoint.left - } - }); - } - } - - var altText = Model.value.altText ?? Model.value.caption ?? string.Empty; - - @altText - - if (Model.value.caption != null) - { -

@Model.value.caption

- } -} diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Rte.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Rte.cshtml deleted file mode 100644 index 8364958..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Rte.cshtml +++ /dev/null @@ -1,13 +0,0 @@ -@model dynamic -@using Umbraco.Web.Composing -@using Umbraco.Web.Templates -@{ - var htmlLocalLinkParser = Current.Factory.GetInstance(); - var htmlUrlParser = Current.Factory.GetInstance(); - var htmlImageSourceParser = Current.Factory.GetInstance(); - - var value = htmlLocalLinkParser.EnsureInternalLinks(Model.value.ToString()); - value = htmlUrlParser.EnsureUrls(value); - value = htmlImageSourceParser.EnsureImageSources(value); -} -@Html.Raw(value) diff --git a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Textstring.cshtml b/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Textstring.cshtml deleted file mode 100644 index 0f40a1e..0000000 --- a/src/DemoWebsite.v8/Views/Partials/Grid/Editors/Textstring.cshtml +++ /dev/null @@ -1,24 +0,0 @@ -@model dynamic -@using Umbraco.Web.Composing -@using Umbraco.Web.Templates - -@if (Model.editor.config.markup != null) -{ - string markup = Model.editor.config.markup.ToString(); - markup = markup.Replace("#value#", Html.ReplaceLineBreaks((string)Model.value.ToString()).ToString()); - - if (Model.editor.config.style != null) - { - markup = markup.Replace("#style#", Model.editor.config.style.ToString()); - } - - - @Html.Raw(markup) - -} -else -{ - -
@Model.value
-
-} diff --git a/src/DemoWebsite.v8/Views/Shared/_Layout.cshtml b/src/DemoWebsite.v8/Views/Shared/_Layout.cshtml deleted file mode 100644 index 73c9540..0000000 --- a/src/DemoWebsite.v8/Views/Shared/_Layout.cshtml +++ /dev/null @@ -1,14 +0,0 @@ -@inherits UmbracoViewPage - - - - - - - @Model.Name - - - - @RenderBody() - - diff --git a/src/DemoWebsite.v8/Views/Web.config b/src/DemoWebsite.v8/Views/Web.config deleted file mode 100644 index 0390401..0000000 --- a/src/DemoWebsite.v8/Views/Web.config +++ /dev/null @@ -1,76 +0,0 @@ - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/Views/_ViewStart.cshtml b/src/DemoWebsite.v8/Views/_ViewStart.cshtml deleted file mode 100644 index cdbe864..0000000 --- a/src/DemoWebsite.v8/Views/_ViewStart.cshtml +++ /dev/null @@ -1,3 +0,0 @@ -@{ - Layout = "~/Views/Shared/_Layout.cshtml"; -} diff --git a/src/DemoWebsite.v8/Web.Debug.config b/src/DemoWebsite.v8/Web.Debug.config deleted file mode 100644 index fae9cfe..0000000 --- a/src/DemoWebsite.v8/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/Web.Release.config b/src/DemoWebsite.v8/Web.Release.config deleted file mode 100644 index da6e960..0000000 --- a/src/DemoWebsite.v8/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/Web.config b/src/DemoWebsite.v8/Web.config deleted file mode 100644 index 497ca36..0000000 --- a/src/DemoWebsite.v8/Web.config +++ /dev/null @@ -1,274 +0,0 @@ - - - - -
- -
-
- - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/BackOfficeTours/getting-started.json b/src/DemoWebsite.v8/config/BackOfficeTours/getting-started.json deleted file mode 100644 index 75797f7..0000000 --- a/src/DemoWebsite.v8/config/BackOfficeTours/getting-started.json +++ /dev/null @@ -1,474 +0,0 @@ -[ - { - "name": "Email Marketing", - "alias": "umbEmailMarketing", - "group": "Email Marketing", - "groupOrder": 10, - "hidden": true, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Do you want to stay updated on everything Umbraco?", - "content": "

Thank you for using Umbraco! Would you like to stay up-to-date with Umbraco product updates, security advisories, community news and special offers? Sign up for our newsletter and never miss out on the latest Umbraco news.

By signing up, you agree that we can use your info according to our privacy policy.

", - "view": "emails", - "type": "promotion" - }, - { - "title": "Thank you for subscribing to our mailing list", - "view": "confirm" - } - ] - }, - { - "name": "Introduction", - "alias": "umbIntroIntroduction", - "group": "Getting Started", - "groupOrder": 100, - "allowDisable": true, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Welcome to Umbraco - The Friendly CMS", - "content": "

Thank you for choosing Umbraco - we think this could be the beginning of something beautiful. While it may feel overwhelming at first, we've done a lot to make the learning curve as smooth and fast as possible.

In this quick tour we will introduce you to the main areas of Umbraco and show you how to best get started.

If you don't want to take the tour now you can always start it by opening the Help drawer in the top right corner.

", - "type": "intro" - }, - { - "element": "[data-element='sections']", - "elementPreventClick": true, - "title": "Main Menu", - "content": "This is the main menu in Umbraco backoffice. Here you can navigate between the different sections, search for items, see your user profile and open the help drawer.", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='section-content']", - "elementPreventClick": true, - "title": "Sections", - "content": "Each area in Umbraco is called a Section. Right now you are in the Content section, when you want to go to another section simply click on the appropriate name in the main menu and you'll be there in no time.", - "backdropOpacity": 0.6 - }, - { - "element": "#tree", - "elementPreventClick": true, - "title": "The Tree", - "content": "

This is the Tree and it is the main navigation inside a section.

In the Content section the tree is called the Content tree and here you can navigate the content of your website.

" - }, - { - "element": "[data-element='dashboard']", - "elementPreventClick": true, - "title": "Dashboards", - "content": "

A dashboard is the main view you are presented with when entering a section within the backoffice, and can be used to show valuable information to the users of the system.

Notice that some sections have multiple dashboards.

" - }, - { - "element": "[data-element='global-search']", - "title": "Search", - "content": "The search allows you to quickly find whatever you're looking for across sections within Umbraco." - }, - { - "element": "[data-element='global-user']", - "title": "User profile", - "content": "Now click on your user avatar to open the user profile dialog.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element~='overlay-user']", - "elementPreventClick": true, - "title": "User profile", - "content": "

Here you can see details about your user, change your password and log out of Umbraco.

In the User section you will be able to do more advanced user management.

" - }, - { - "element": "[data-element~='overlay-user'] [data-element='button-overlayClose']", - "title": "User profile", - "content": "Let's close the user profile again.", - "event": "click" - }, - { - "element": "[data-element='global-help']", - "title": "Help", - "content": "If you ever find yourself in trouble click here to open the Help drawer.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='drawer']", - "elementPreventClick": true, - "title": "Help", - "content": "

In the help drawer you will find articles and videos related to the section you are using.

This is also where you will find the next tour on how to get started with Umbraco.

", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='drawer'] [data-element='help-tours']", - "title": "Tours", - "content": "To continue your journey on getting started with Umbraco, you can find more tours right here." - } - ] - }, - { - "name": "Create document type", - "alias": "umbIntroCreateDocType", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "settings" - ], - "steps": [ - { - "title": "Create your first Document Type", - "content": "

Step 1 of any site is to create a Document Type.
A Document Type is a template for content. For each type of content you want to create you'll create a Document Type. This will define where content based on this Document Type can be created, how many properties it holds and what the input method should be for these properties.

When you have at least one Document Type in place you can start creating content and this content can then be used in a template.

In this tour you will learn how to set up a basic Document Type with a property to enter a short text.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-settings']", - "title": "Navigate to the Settings sections", - "content": "In the Settings section you can create and manage Document types.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-documentTypes']", - "title": "Create Document Type", - "content": "

Hover over the Document Type tree and click the three small dots to open the context menu.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-documentTypes'] [data-element='tree-item-options']" - }, - { - "element": "#dialog [data-element='action-documentType']", - "title": "Create Document Type", - "content": "

Click Document Type to create a new document type with a template. The template will be automatically created and set as the default template for this Document Type.

You will use the template in a later tour to render content.

", - "event": "click" - }, - { - "element": "[data-element='editor-name-field']", - "title": "Enter a name", - "content": "

Your Document Type needs a name. Enter Home Page in the field and click Next.", - "view": "doctypename" - }, - { - "element": "[data-element='editor-description']", - "title": "Enter a description", - "content": "

A description helps to pick the right document type when creating content.

Write a description for our Home page. It could be:

The home page of the website

" - }, - { - "element": "[data-element='group-add']", - "title": "Add group", - "content": "Group are used to organize properties on content in the Content section. Click Add Group to add a group.", - "event": "click" - }, - { - "element": "[data-element='group-name-field']", - "title": "Name the group", - "content": "

Enter Home in the group name.

You can name a group anything you want and if you have a lot of properties it can be useful to add multiple groups.

", - "view": "tabName" - }, - { - "element": "[data-element='property-add']", - "title": "Add a property", - "content": "

Properties are the different input fields on a content page.

On our Home Page we want to add a welcome text.

Click Add property to open the property dialog.

", - "event": "click" - }, - { - "element": "[data-element='editor-property-settings'] [data-element='property-name']", - "title": "Name the property", - "content": "Enter Welcome Text as the name for the property.", - "view": "propertyname" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='property-description']", - "title": "Enter a description", - "content": "

A description will help your editor fill in the right content.

Enter a description for the property editor. It could be:

Write a nice introduction text so the visitors feel welcome

" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='editor-add']", - "title": "Add editor", - "content": "When you add an editor you choose what the input method for this property will be. Click Add editor to open the editor picker dialog.", - "event": "click" - }, - { - "element": "[ng-controller*='Umbraco.Editors.DataTypePickerController'] [data-element='editor-data-type-picker']", - "elementPreventClick": true, - "title": "Editor picker", - "content": "

In the editor picker dialog we can pick one of the many built-in editors.

" - }, - { - "element": "[data-element~='editor-data-type-picker'] [data-element='datatype-Textarea']", - "title": "Select editor", - "content": "Select the Textarea editor. This will add a textarea to the Welcome Text property.", - "event": "click" - }, - { - "element": "[data-element='editor-data-type-picker'] [data-element='datatypeconfig-Textarea']", - "title": "Editor settings", - "content": "Each property editor can have individual settings. For the textarea editor you can set a character limit but in this case it is not needed.", - "event": "click" - }, - { - "element": "[data-element~='editor-property-settings'] [data-element='button-submit']", - "title": "Add property to document type", - "content": "Click Submit to add the property to the document type.", - "event": "click" - }, - { - "element": "[data-element~='sub-view-permissions']", - "title": "Check the document type permissions", - "content": "Click Permissions to view the permissions page.", - "event": "click" - }, - { - "element": "[data-element~='permissions-allow-as-root']", - "title": "Allow this document type to work at the root of your site", - "content": "Toggle the switch Allow as root to allow new content pages based on this document type to be created at the root of your site", - "event": "click" - }, - { - "element": "[data-element='button-save']", - "title": "Save the document type", - "content": "All we need now is to save the document type. Click Save to create and save your new document type.", - "event": "click" - } - ] - }, - { - "name": "Create Content", - "alias": "umbIntroCreateContent", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "Creating your first content node", - "content": "

In this tour you will learn how to create the home page for your website. It will use the Home Page Document type you created in the previous tour.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-content']", - "title": "Navigate to the Content section", - "content": "

In the Content section you can create and manage the content of the website.

The Content section contains the content of your website. Content is displayed as nodes in the content tree.

", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "[data-element='tree-root']", - "title": "Open context menu", - "content": "

Open the context menu by hovering over the root of the content section.

Now click the three small dots to the right.

", - "event": "click", - "eventElement": "#tree [data-element='tree-root'] [data-element='tree-item-options']" - }, - { - "element": "[data-element='action-create-homePage']", - "title": "Create Home page", - "content": "

The context menu shows you all the actions that are available on a node

Click on Home Page to create a new page of type Home Page.

", - "event": "click" - }, - { - "element": "[data-element='editor-content'] [data-element='editor-name-field']", - "title": "Give your new page a name", - "content": "

Our new page needs a name. Enter Home in the field and click Next.

", - "view": "nodename" - }, - { - "element": "[data-element='editor-content'] [data-element='property-welcomeText']", - "title": "Add a welcome text", - "content": "

Add content to the Welcome Text field.

If you don't have any ideas here is a start:

I am learning Umbraco. High Five I Rock #H5IR
.

" - }, - { - "element": "[data-element='editor-content'] [data-element='button-saveAndPublish']", - "title": "Publish", - "content": "

Now click the Publish button to publish your changes.

", - "event": "click" - } - ] - }, - { - "name": "Render in template", - "alias": "umbIntroRenderInTemplate", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "settings" - ], - "steps": [ - { - "title": "Render your content in a template", - "content": "

Templating in Umbraco builds on the concept of Razor Views from ASP.NET MVC. This tour is a sneak peak on how to write templates in Umbraco.

In this tour you will learn how to render content from the Home Page document type so you can see the content added to our Home content page.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-settings']", - "title": "Navigate to the Settings section", - "content": "

In the Settings section you will find all the templates.

It is of course also possible to edit all your code files in your favorite code editor.

", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-templates']", - "title": "Expand the Templates node", - "content": "

To see all our templates click the small triangle to the left of the templates node.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-templates'] [data-element='tree-item-expand']", - "view": "templatetree", - "skipStepIfVisible": "#tree [data-element='tree-item-templates'] > div > button[data-element=tree-item-expand] span.icon-navigation-down" - }, - { - "element": "#tree [data-element='tree-item-templates'] [data-element='tree-item-Home Page']", - "title": "Open Home template", - "content": "

Click the Home Page template to open and edit it.

", - "eventElement": "#tree [data-element='tree-item-templates'] [data-element='tree-item-Home Page'] a.umb-tree-item__label", - "event": "click" - }, - { - "element": "[data-element='editor-templates'] [data-element='code-editor']", - "title": "Edit template", - "content": "

The template can be edited here or in your favorite code editor.

To render the field from the document type add the following to the template:

<h1>@Model.Name</h1>
<p>@Model.WelcomeText</p>

" - }, - { - "element": "[data-element='editor-templates'] [data-element='button-save']", - "title": "Save the template", - "content": "Click the Save button and your template will be saved.", - "event": "click" - } - ] - }, - { - "name": "View Home page", - "alias": "umbIntroViewHomePage", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "content" - ], - "steps": [ - { - "title": "View your Umbraco site", - "content": "

Our three main components for a page are done: Document type, Template, and Content. It is now time to see the result.

In this tour you will learn how to see your published website.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-content']", - "title": "Navigate to the content sections", - "content": "In the Content section you will find the content of our website.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-item-Home']", - "title": "Open the Home page", - "content": "

Click the Home page to open it.

", - "event": "click", - "eventElement": "#tree [data-element='tree-item-Home'] a.umb-tree-item__label" - }, - { - "element": "[data-element='editor-content'] [data-element='sub-view-umbInfo']", - "title": "Info", - "content": "

Under the Info-app you will find the default information about a content item.

", - "event": "click" - }, - { - "element": "[data-element='editor-content'] [data-element='node-info-urls']", - "title": "Open page", - "content": "

Click the Link to document to view your page.

Tip: Click the preview button in the bottom right corner to preview changes without publishing them.

", - "event": "click", - "eventElement": "[data-element='editor-content'] [data-element='node-info-urls'] a[target='_blank']" - } - ] - }, - { - "name": "The Media library", - "alias": "umbIntroMediaSection", - "group": "Getting Started", - "groupOrder": 100, - "requiredSections": [ - "media" - ], - "steps": [ - { - "title": "How to use the media library", - "content": "

A website would be boring without media content. In Umbraco you can manage all your images, documents, videos etc. in the Media section. Here you can upload and organise your media items and see details about each item.

In this tour you will learn how to upload and organise your Media library in Umbraco. It will also show you how to view details about a specific media item.

", - "type": "intro" - }, - { - "element": "#applications [data-element='section-media']", - "title": "Navigate to the Media section", - "content": "The media section is where you manage all your media items.", - "event": "click", - "backdropOpacity": 0.6 - }, - { - "element": "#tree [data-element='tree-root']", - "title": "Create a new folder", - "content": "

First create a folder for your images. Hover over the media root node and click the three small dots on the right side of the item.

", - "event": "click", - "eventElement": "#tree [data-element='tree-root'] [data-element='tree-item-options']" - }, - { - "element": "#dialog [data-element='action-Folder']", - "title": "Create a new folder", - "content": "

Select the Folder option to select the type folder.

", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='editor-name-field']", - "title": "Enter a name", - "content": "

Enter My Images in the field.

", - "view": "foldername" - }, - { - "element": "[data-element='editor-media'] [data-element='button-save']", - "title": "Save the folder", - "content": "

Click the Save button to create the new folder.

", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='dropzone']", - "title": "Upload images", - "content": "

In the upload area you can upload your media items.

Click the Click here to choose files button and select a couple of images on your computer and upload them.

", - "view": "uploadimages" - }, - { - "element": "[data-element='editor-media'] [data-element='media-grid-item-0']", - "title": "View media item details", - "content": "Hover over the media item and Click the white bar to view details about the media item.", - "event": "click", - "eventElement": "[data-element='editor-media'] [data-element='media-grid-item-0'] [data-element='media-grid-item-edit']" - }, - { - "element": "[data-element='editor-media'] [data-element='property-umbracoFile']", - "elementPreventClick": true, - "title": "The uploaded image", - "content": "

Here you can see the image you have uploaded.

" - }, - { - "element": "[data-element='editor-media'] [data-element='property-umbracoBytes']", - "title": "Image size", - "content": "

You will also find other details about the image, like the size.

Media items work in much the same way as content. So you can add extra properties to an image by creating or editing the Media types in the Settings section.

" - }, - { - "element": "[data-element='editor-media'] [data-element='sub-view-umbInfo']", - "title": "Info", - "content": "Like the content section you can also find default information about the media item. You will find these under the info app.", - "event": "click" - }, - { - "element": "[data-element='editor-media'] [data-element='node-info-urls']", - "title": "Link to media", - "content": "The path to the media item..." - }, - { - "element": "[data-element='editor-media'] [data-element='node-info-update-date']", - "title": "Last edited", - "content": "...and information about when the media item has been created and edited." - }, - { - "element": "[data-element='editor-container']", - "elementPreventClick": true, - "title": "Using media items", - "content": "You can reference a media item directly in a template by using the path or try adding a Media Picker to a document type property so you can select media items from the content section." - } - ] - } -] diff --git a/src/DemoWebsite.v8/config/ClientDependency.config b/src/DemoWebsite.v8/config/ClientDependency.config deleted file mode 100644 index 91be07e..0000000 --- a/src/DemoWebsite.v8/config/ClientDependency.config +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8/config/HealthChecks.config b/src/DemoWebsite.v8/config/HealthChecks.config deleted file mode 100644 index 4e927e8..0000000 --- a/src/DemoWebsite.v8/config/HealthChecks.config +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/Lang/cs-CZ.user.xml b/src/DemoWebsite.v8/config/Lang/cs-CZ.user.xml deleted file mode 100644 index d4902d5..0000000 --- a/src/DemoWebsite.v8/config/Lang/cs-CZ.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/Lang/da-DK.user.xml b/src/DemoWebsite.v8/config/Lang/da-DK.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/da-DK.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/de-DE.user.xml b/src/DemoWebsite.v8/config/Lang/de-DE.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/de-DE.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/en-GB.user.xml b/src/DemoWebsite.v8/config/Lang/en-GB.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/en-GB.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/en-US.user.xml b/src/DemoWebsite.v8/config/Lang/en-US.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/en-US.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/es-ES.user.xml b/src/DemoWebsite.v8/config/Lang/es-ES.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/es-ES.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/fr-FR.user.xml b/src/DemoWebsite.v8/config/Lang/fr-FR.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/fr-FR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/he-IL.user.xml b/src/DemoWebsite.v8/config/Lang/he-IL.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/he-IL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/it-IT.user.xml b/src/DemoWebsite.v8/config/Lang/it-IT.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/it-IT.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/ja-JP.user.xml b/src/DemoWebsite.v8/config/Lang/ja-JP.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/ja-JP.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/ko-KR.user.xml b/src/DemoWebsite.v8/config/Lang/ko-KR.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/ko-KR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/nb-NO.user.xml b/src/DemoWebsite.v8/config/Lang/nb-NO.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/nb-NO.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/nl-NL.user.xml b/src/DemoWebsite.v8/config/Lang/nl-NL.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/nl-NL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/pl-PL.user.xml b/src/DemoWebsite.v8/config/Lang/pl-PL.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/pl-PL.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/pt-BR.user.xml b/src/DemoWebsite.v8/config/Lang/pt-BR.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/pt-BR.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/ru-RU.user.xml b/src/DemoWebsite.v8/config/Lang/ru-RU.user.xml deleted file mode 100644 index 7a8ce2c..0000000 --- a/src/DemoWebsite.v8/config/Lang/ru-RU.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/sv-SE.user.xml b/src/DemoWebsite.v8/config/Lang/sv-SE.user.xml deleted file mode 100644 index 3a0ad35..0000000 --- a/src/DemoWebsite.v8/config/Lang/sv-SE.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/DemoWebsite.v8/config/Lang/zh-CN.user.xml b/src/DemoWebsite.v8/config/Lang/zh-CN.user.xml deleted file mode 100644 index 8d2add9..0000000 --- a/src/DemoWebsite.v8/config/Lang/zh-CN.user.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/grid.editors.config.js b/src/DemoWebsite.v8/config/grid.editors.config.js deleted file mode 100644 index 210d167..0000000 --- a/src/DemoWebsite.v8/config/grid.editors.config.js +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "Rich text editor", - "alias": "rte", - "view": "rte", - "icon": "icon-article" - }, - { - "name": "Image", - "nameTemplate": "{{ value && value.udi ? (value.udi | ncNodeName) : '' }}", - "alias": "media", - "view": "media", - "icon": "icon-picture" - }, - { - "name": "Macro", - "nameTemplate": "{{ value && value.macroAlias ? value.macroAlias : '' }}", - "alias": "macro", - "view": "macro", - "icon": "icon-settings-alt" - }, - { - "name": "Embed", - "alias": "embed", - "view": "embed", - "icon": "icon-movie-alt" - }, - { - "name": "Headline", - "nameTemplate": "{{ value }}", - "alias": "headline", - "view": "textstring", - "icon": "icon-coin", - "config": { - "style": "font-size: 36px; line-height: 45px; font-weight: bold", - "markup": "

#value#

" - } - }, - { - "name": "Quote", - "nameTemplate": "{{ value ? value.substring(0,32) + (value.length > 32 ? '...' : '') : '' }}", - "alias": "quote", - "view": "textstring", - "icon": "icon-quote", - "config": { - "style": "border-left: 3px solid #ccc; padding: 10px; color: #ccc; font-family: serif; font-style: italic; font-size: 18px", - "markup": "
#value#
" - } - } -] diff --git a/src/DemoWebsite.v8/config/imageprocessor/cache.config b/src/DemoWebsite.v8/config/imageprocessor/cache.config deleted file mode 100644 index 920bcd5..0000000 --- a/src/DemoWebsite.v8/config/imageprocessor/cache.config +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/imageprocessor/processing.config b/src/DemoWebsite.v8/config/imageprocessor/processing.config deleted file mode 100644 index 5737cde..0000000 --- a/src/DemoWebsite.v8/config/imageprocessor/processing.config +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/imageprocessor/security.config b/src/DemoWebsite.v8/config/imageprocessor/security.config deleted file mode 100644 index 7bce8ee..0000000 --- a/src/DemoWebsite.v8/config/imageprocessor/security.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v8/config/logviewer.searches.config.js b/src/DemoWebsite.v8/config/logviewer.searches.config.js deleted file mode 100644 index 345fe23..0000000 --- a/src/DemoWebsite.v8/config/logviewer.searches.config.js +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "name": "Find all logs where the Level is NOT Verbose and NOT Debug", - "query": "Not(@Level='Verbose') and Not(@Level='Debug')" - }, - { - "name": "Find all logs that has an exception property (Warning, Error & Fatal with Exceptions)", - "query": "Has(@Exception)" - }, - { - "name": "Find all logs that have the property 'Duration'", - "query": "Has(Duration)" - }, - { - "name": "Find all logs that have the property 'Duration' and the duration is greater than 1000ms", - "query": "Has(Duration) and Duration > 1000" - }, - { - "name": "Find all logs that are from the namespace 'Umbraco.Core'", - "query": "StartsWith(SourceContext, 'Umbraco.Core')" - }, - { - "name": "Find all logs that use a specific log message template", - "query": "@MessageTemplate = '[Timing {TimingId}] {EndMessage} ({TimingDuration}ms)'" - }, - { - "name": "Find logs where one of the items in the SortedComponentTypes property array is equal to", - "query": "SortedComponentTypes[?] = 'Umbraco.Web.Search.ExamineComponent'" - }, - { - "name": "Find logs where one of the items in the SortedComponentTypes property array contains", - "query": "Contains(SortedComponentTypes[?], 'DatabaseServer')" - }, - { - "name": "Find all logs that the message has localhost in it with SQL like", - "query": "@Message like '%localhost%'" - }, - { - "name": "Find all logs that the message that starts with 'end' in it with SQL like", - "query": "@Message like 'end%'" - } -] diff --git a/src/DemoWebsite.v8/config/serilog.config b/src/DemoWebsite.v8/config/serilog.config deleted file mode 100644 index 4d9151b..0000000 --- a/src/DemoWebsite.v8/config/serilog.config +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8/config/serilog.user.config b/src/DemoWebsite.v8/config/serilog.user.config deleted file mode 100644 index 8f20740..0000000 --- a/src/DemoWebsite.v8/config/serilog.user.config +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8/config/splashes/noNodes.aspx b/src/DemoWebsite.v8/config/splashes/noNodes.aspx deleted file mode 100644 index 46a27a4..0000000 --- a/src/DemoWebsite.v8/config/splashes/noNodes.aspx +++ /dev/null @@ -1,61 +0,0 @@ -<%@ Page Language="C#" AutoEventWireup="True" Inherits="Umbraco.Web.UI.Config.Splashes.NoNodes" CodeBehind="NoNodes.aspx.cs" %> -<%@ Import Namespace="Umbraco.Core.Configuration" %> -<%@ Import Namespace="Umbraco.Core.IO" %> - - - - - - - - - - - - - - - - - - - - -
-
-
- - -

Welcome to your Umbraco installation

-

You're seeing this wonderful page because your website doesn't contain any published content yet.

- - - - -
-
-

Easy start with Umbraco.tv

-

We have created a bunch of 'how-to' videos, to get you easily started with Umbraco. Learn how to build projects in just a couple of minutes. Easiest CMS in the world.

- - Umbraco.tv → -
- -
-

Be a part of the community

-

The Umbraco community is the best of its kind, be sure to visit, and if you have any questions, we're sure that you can get your answers from the community.

- - our.Umbraco → -
-
- -
-
- -
- - - - - diff --git a/src/DemoWebsite.v8/config/tinyMceConfig.config b/src/DemoWebsite.v8/config/tinyMceConfig.config deleted file mode 100644 index 7f7cb65..0000000 --- a/src/DemoWebsite.v8/config/tinyMceConfig.config +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - paste - anchor - charmap - table - lists - advlist - hr - autolink - directionality - tabfocus - searchreplace - fullscreen - - - - - font - - - - - raw - - diff --git a/src/DemoWebsite.v8/config/umbracoSettings.config b/src/DemoWebsite.v8/config/umbracoSettings.config deleted file mode 100644 index 5bb0c10..0000000 --- a/src/DemoWebsite.v8/config/umbracoSettings.config +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - - - - - - - 1 - - - - - - - - your@email.here - - - - - - Preview mode - - … - - - Click to end preview mode - - - - - ]]> - - - - throw - - - ashx,aspx,ascx,config,cshtml,vbhtml,asmx,air,axd,swf,xml,xhtml,html,htm,php,htaccess,xamlx - - - assets/img/login.jpg - - - assets/img/application/umbraco_logo_white.svg - - - - - false - - true - - false - - - - - - - - - - - - - - diff --git a/src/DemoWebsite.v8/packages.config b/src/DemoWebsite.v8/packages.config deleted file mode 100644 index 978870a..0000000 --- a/src/DemoWebsite.v8/packages.config +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/DemoWebsite.v9/.gitignore b/src/DemoWebsite.v9/.gitignore deleted file mode 100644 index b612d22..0000000 --- a/src/DemoWebsite.v9/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/wwwroot -/Smidge \ No newline at end of file diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.html b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.html deleted file mode 100644 index f2dbca5..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.html +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.js b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.js deleted file mode 100644 index e1238db..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-button.js +++ /dev/null @@ -1,12 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaButton", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-button.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, -}); diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-init.js b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-init.js deleted file mode 100644 index 450c4dc..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-init.js +++ /dev/null @@ -1,9 +0,0 @@ -angular.module("MyContentBlocksAddon", ["perplexContentBlocks"]) -angular.module("umbraco").requires.push("MyContentBlocksAddon"); - -angular.module("MyContentBlocksAddon").run([ - "perplexContentBlocksCustomComponents", - function (customComponents) { - customComponents.block.main = "mcba-main"; - customComponents.block.buttons.push("mcba-button"); - }]); diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.html b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.html deleted file mode 100644 index a999567..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.html +++ /dev/null @@ -1,39 +0,0 @@ - - - -

-
-
-
-
-
- -
-
-

-
-        
-        
-
-        
-        
-
-        
-    
-
- -
- - -
diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.js b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.js deleted file mode 100644 index d083074..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/mcba-main.js +++ /dev/null @@ -1,20 +0,0 @@ -angular.module("MyContentBlocksAddon").component("mcbaMain", { - templateUrl: "/App_Plugins/MyContentBlocksAddon/mcba-main.html", - - bindings: { - block: "<", - definition: "<", - }, - - require: { - blockCtrl: "^perplexContentBlock" - }, - - controller: [ - function mcbaMain() { - this.$onInit = function () { - // TODO - } - } - ], -}); diff --git a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/package.manifest b/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/package.manifest deleted file mode 100644 index ce30d1d..0000000 --- a/src/DemoWebsite.v9/App_Plugins/MyContentBlocksAddon/package.manifest +++ /dev/null @@ -1,7 +0,0 @@ -{ - "javascript": [ - "~/App_Plugins/MyContentBlocksAddon/mcba-init.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-main.js", - "~/App_Plugins/MyContentBlocksAddon/mcba-button.js" - ] -} diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/BaremetricsCalendar/public/js/Calendar.js b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/BaremetricsCalendar/public/js/Calendar.js deleted file mode 100644 index 4dabee8..0000000 --- a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/BaremetricsCalendar/public/js/Calendar.js +++ /dev/null @@ -1,787 +0,0 @@ -'use strict'; - - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery', 'moment'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS - module.exports = factory(require('jquery'), require('moment')); - } else { - // Browser globals - root.Calendar = factory(jQuery, moment); - } -} (this, function ($, moment) { - function Calendar(settings) { - var self = this; - - this.settings = settings; - - this.calIsOpen = false; - this.presetIsOpen = false; - this.sameDayRange = settings.same_day_range || false; - - this.element = settings.element || $('.daterange'); - this.selected = null; - - this.type = this.element.hasClass('daterange--single') ? 'single' : 'double'; - this.required = settings.required == false ? false : true; - - this.format = settings.format || {}; - this.format.input = settings.format && settings.format.input || 'MMMM D, YYYY'; - this.format.preset = settings.format && settings.format.preset || 'll'; - this.format.jump_month = settings.format && settings.format.jump_month || 'MMMM'; - this.format.jump_year = settings.format && settings.format.jump_year || 'YYYY'; - - this.placeholder = settings.placeholder || this.format.input; - - this.days_array = settings.days_array && settings.days_array.length == 7 ? - settings.days_array : moment.weekdaysMin(); - - this.orig_start_date = null; - this.orig_end_date = null; - this.orig_current_date = null; - - this.earliest_date = settings.earliest_date ? moment(settings.earliest_date) - : moment('1900-01-01', 'YYYY-MM-DD'); - this.latest_date = settings.latest_date ? moment(settings.latest_date) - : moment('2900-12-31', 'YYYY-MM-DD'); - this.end_date = settings.end_date ? moment(settings.end_date) - : (this.type == 'double' ? moment() : null); - this.start_date = settings.start_date ? moment(settings.start_date) - : (this.type == 'double' ? this.end_date.clone().subtract(1, 'month') : null); - this.current_date = settings.current_date ? moment(settings.current_date) - : (this.type == 'single' ? moment() : null); - - this.presets = settings.presets == false || this.type == 'single' ? false : true; - - this.callback = settings.callback || this.calendarSetDates; - - this.calendarHTML(this.type); - - $('.dr-presets', this.element).click(function() { - self.presetToggle(); - }); - - $('.dr-list-item', this.element).click(function() { - var start = $('.dr-item-aside', this).data('start'); - var end = $('.dr-item-aside', this).data('end'); - - self.start_date = self.calendarCheckDate(start); - self.end_date = self.calendarCheckDate(end); - - self.calendarSetDates(); - self.presetToggle(); - self.calendarSaveDates(); - }); - - $('.dr-date', this.element).on({ - 'click': function() { - self.calendarOpen(this); - }, - - 'keyup': function(event) { - if (event.keyCode == 9 && !self.calIsOpen && !self.start_date && !self.end_date) - self.calendarOpen(this); - }, - - 'keydown': function(event) { - switch (event.keyCode) { - - case 9: // Tab - if ($(self.selected).hasClass('dr-date-start')) { - event.preventDefault(); - self.calendarCheckDates(); - self.calendarSetDates(); - $('.dr-date-end', self.element).trigger('click'); - } else { - self.calendarCheckDates(); - self.calendarSetDates(); - self.calendarSaveDates(); - self.calendarClose('force'); - } - break; - - case 13: // Enter - event.preventDefault(); - self.calendarCheckDates(); - self.calendarSetDates(); - self.calendarSaveDates(); - self.calendarClose('force'); - break; - - case 27: // ESC - self.calendarSetDates(); - self.calendarClose('force'); - break; - - case 38: // Up - event.preventDefault(); - var timeframe = 'day'; - - if (event.shiftKey) - timeframe = 'week'; - - if (event.metaKey) - timeframe = 'month'; - - var back = moment(self.current_date).subtract(1, timeframe); - - $(this).html(back.format(self.format.input)); - self.current_date = back; - break; - - case 40: // Down - event.preventDefault(); - var timeframe = 'day'; - - if (event.shiftKey) - timeframe = 'week'; - - if (event.metaKey) - timeframe = 'month'; - - var forward = moment(self.current_date).add(1, timeframe); - - $(this).html(forward.format(self.format.input)); - self.current_date = forward; - break; - } - } - }); - - $('.dr-month-switcher i', this.element).click(function() { - var m = $('.dr-month-switcher span', self.element).data('month'); - var y = $('.dr-year-switcher span', self.element).data('year'); - var this_moment = moment([y, m, 1]); - var back = this_moment.clone().subtract(1, 'month'); - var forward = this_moment.clone().add(1, 'month').startOf('day'); - - if ($(this).hasClass('dr-left')) { - self.calendarOpen(self.selected, back); - } else if ($(this).hasClass('dr-right')) { - self.calendarOpen(self.selected, forward); - } - }); - - $('.dr-year-switcher i', this.element).click(function() { - var m = $('.dr-month-switcher span', self.element).data('month'); - var y = $('.dr-year-switcher span', self.element).data('year'); - var this_moment = moment([y, m, 1]); - var back = this_moment.clone().subtract(1, 'year'); - var forward = this_moment.clone().add(1, 'year').startOf('day'); - - - if ($(this).hasClass('dr-left')) { - self.calendarOpen(self.selected, back); - } else if ($(this).hasClass('dr-right')) { - self.calendarOpen(self.selected, forward); - } - }); - - $('.dr-dates-dash', this.element).click(function() { - $('.dr-date-start', self.element).trigger('click'); - }); - - // Once you click into a selection.. this lets you click out - this.element.on('click', function() { - document.addEventListener('click', function (event) { - var contains = $(event.target).parents(self.element); - - if (!contains.length) { - if (self.presetIsOpen) - self.presetToggle(); - - if (self.calIsOpen) { - if ($(self.selected).hasClass('dr-date-end')) - self.calendarSaveDates(); - - self.calendarSetDates(); - self.calendarClose('force'); - } - } - }); - }); - } - - - Calendar.prototype.presetToggle = function() { - if (this.presetIsOpen == false) { - this.orig_start_date = this.start_date; - this.orig_end_date = this.end_date; - this.orig_current_date = this.current_date; - - this.presetIsOpen = true; - } else if (this.presetIsOpen) { - this.presetIsOpen = false; - } - - if (this.calIsOpen == true) - this.calendarClose(); - - $('.dr-preset-list', this.element).slideToggle(200); - $('.dr-input', this.element).toggleClass('dr-active'); - $('.dr-presets', this.element).toggleClass('dr-active'); - this.element.toggleClass('dr-active'); - } - - - Calendar.prototype.presetCreate = function() { - var self = this; - var ul_presets = $(''); - var presets = typeof self.settings.presets === 'object' ? self.settings.presets : - [{ - label: 'Last 30 days', - start: moment(self.latest_date).subtract(29, 'days'), - end: self.latest_date - },{ - label: 'Last month', - start: moment(self.latest_date).subtract(1, 'month').startOf('month'), - end: moment(self.latest_date).subtract(1, 'month').endOf('month') - },{ - label: 'Last 3 months', - start: moment(self.latest_date).subtract(3, 'month').startOf('month'), - end: moment(self.latest_date).subtract(1, 'month').endOf('month') - },{ - label: 'Last 6 months', - start: moment(self.latest_date).subtract(6, 'month').startOf('month'), - end: moment(self.latest_date).subtract(1, 'month').endOf('month') - },{ - label: 'Last year', - start: moment(self.latest_date).subtract(1, 'year').startOf('year'), - end: moment(self.latest_date).subtract(1, 'year').endOf('year') - },{ - label: 'All time', - start: self.earliest_date, - end: self.latest_date - }]; - - if (moment(self.latest_date).diff(moment(self.latest_date).startOf('month'), 'days') >= 6 && - typeof self.settings.presets !== 'object' - ) { - presets.splice(1, 0, { - label: 'This month', - start: moment(self.latest_date).startOf('month'), - end: self.latest_date - }); - } - - $.each(presets, function(i, d) { - if (moment(d.start).isBefore(self.earliest_date)) { - d.start = self.earliest_date; - } - if (moment(d.start).isAfter(self.latest_date)) { - d.start = self.latest_date; - } - if (moment(d.end).isBefore(self.earliest_date)) { - d.end = self.earliest_date; - } - if (moment(d.end).isAfter(self.latest_date)) { - d.end = self.latest_date; - } - - var startISO = moment(d.start).toISOString(); - var endISO = moment(d.end).toISOString(); - var string = moment(d.start).format(self.format.preset) +' – '+ moment(d.end).format(self.format.preset); - - if ($('.dr-preset-list', self.element).length) { - var item = $('.dr-preset-list .dr-list-item:nth-of-type('+ (i + 1) +') .dr-item-aside', self.element); - item.data('start', startISO); - item.data('end', endISO); - item.html(string); - } else { - ul_presets.append('
  • '+ d.label + - ''+ string +''+ - '
  • '); - } - }); - - return ul_presets; - } - - - Calendar.prototype.calendarSetDates = function() { - $('.dr-date-start', this.element).html(moment(this.start_date).format(this.format.input)); - $('.dr-date-end', this.element).html(moment(this.end_date).format(this.format.input)); - - if (!this.start_date && !this.end_date) { - var old_date = $('.dr-date', this.element).html(); - var new_date = moment(this.current_date).format(this.format.input); - - if (old_date.length === 0 && !this.required) - new_date = ''; - - if (old_date != new_date) - $('.dr-date', this.element).html(new_date); - } - } - - - Calendar.prototype.calendarSaveDates = function() { - if (this.type === 'double') { - if (!moment(this.orig_end_date).isSame(this.end_date) || !moment(this.orig_start_date).isSame(this.start_date)) - return this.callback(); - } else { - if (!this.required || !moment(this.orig_current_date).isSame(this.current_date)) - return this.callback(); - } - } - - Calendar.prototype.calendarCheckDate = function(d) { - // Today - if (d === 'today' || d === 'now') - return moment().isAfter(this.latest_date) ? this.latest_date : - moment().isBefore(this.earliest_date) ? this.earliest_date : moment(); - - // Earliest - if (d === 'earliest') - return this.earliest_date; - - // Latest - if (d === 'latest') - return this.latest_date; - - // Convert string to a date if keyword ago or ahead exists - if (d && (/\bago\b/.test(d) || /\bahead\b/.test(d))) - return this.stringToDate(d); - - var regex = /(?:\d)((?:st|nd|rd|th)?,?)/; - var d_array = d ? d.replace(regex, '').split(' ') : []; - - // Add current year if year is not included - if (d_array.length == 2) { - d_array.push(moment().format(this.format.jump_year)); - d = d_array.join(' '); - } - - // Convert using settings format - var parsed_d = this.parseDate(d); - - if (!parsed_d.isValid()) - return moment(d); // occurs when parsing preset dates - - return parsed_d; - } - - Calendar.prototype.calendarCheckDates = function() { - var startTxt = $('.dr-date-start', this.element).html(); - var endTxt = $('.dr-date-end', this.element).html(); - var c = this.calendarCheckDate($(this.selected).html()); - var s; - var e; - - // Modify strings via some specific keywords to create valid dates - // Finally set all strings as dates - if (startTxt === 'ytd' || endTxt === 'ytd') { // Year to date - s = moment().startOf('year'); - e = moment().endOf('year'); - } else { - s = this.calendarCheckDate(startTxt); - e = this.calendarCheckDate(endTxt); - } - - if (c.isBefore(this.earliest_date)) - c = this.earliest_date; - if (s.isBefore(this.earliest_date)) - s = this.earliest_date; - if (e.isBefore(this.earliest_date) || e.isBefore(s)) - e = s.clone().add(6, 'day'); - - if (c.isAfter(this.latest_date)) - c = this.latest_date; - if (e.isAfter(this.latest_date)) - e = this.latest_date; - if (s.isAfter(this.latest_date) || s.isAfter(e)) - s = e.clone().subtract(6, 'day'); - - // Push and save if it's valid otherwise return to previous state - if (this.type === 'double') { - - // Is this a valid date? - if (s.isSame(e) && !this.sameDayRange) - return this.calendarSetDates(); - - this.start_date = s.isValid() ? s : this.start_date; - this.end_date = e.isValid() ? e : this.end_date; - } - - this.current_date = c.isValid() ? c : this.current_date; - } - - - Calendar.prototype.stringToDate = function(str) { - var date_arr = str.split(' '); - - if (date_arr[2] === 'ago') { - return moment(this.current_date).subtract(date_arr[0], date_arr[1]); - } - - else if (date_arr[2] === 'ahead') { - return moment(this.current_date).add(date_arr[0], date_arr[1]); - } - - return this.current_date; - } - - - Calendar.prototype.calendarOpen = function(selected, switcher) { - var self = this; - var other; - var cal_width = $('.dr-dates', this.element).innerWidth() - 8; - - this.selected = selected || this.selected; - - if (this.presetIsOpen == true) - this.presetToggle(); - - if (this.calIsOpen == true) { - this.calendarClose(switcher ? 'switcher' : undefined); - } else if ($(this.selected).html().length) { - this.orig_start_date = this.start_date; - this.orig_end_date = this.end_date; - this.orig_current_date = this.current_date; - } - - this.calendarCheckDates(); - this.calendarCreate(switcher); - this.calendarSetDates(); - - var next_month = moment(switcher || this.current_date).add(1, 'month').startOf('month').startOf('day'); - var past_month = moment(switcher || this.current_date).subtract(1, 'month').endOf('month'); - var next_year = moment(switcher || this.current_date).add(1, 'year').startOf('month').startOf('day'); - var past_year = moment(switcher || this.current_date).subtract(1, 'year').endOf('month'); - var this_moment = moment(switcher || this.current_date); - - $('.dr-month-switcher span', this.element) - .data('month', this_moment.month()) - .html(this_moment.format(this.format.jump_month)); - $('.dr-year-switcher span', this.element) - .data('year', this_moment.year()) - .html(this_moment.format(this.format.jump_year)); - - $('.dr-switcher i', this.element).removeClass('dr-disabled'); - - if (next_month.isAfter(this.latest_date)) - $('.dr-month-switcher .dr-right', this.element).addClass('dr-disabled'); - - if (past_month.isBefore(this.earliest_date)) - $('.dr-month-switcher .dr-left', this.element).addClass('dr-disabled'); - - if (next_year.isAfter(this.latest_date)) - $('.dr-year-switcher .dr-right', this.element).addClass('dr-disabled'); - - if (past_year.isBefore(this.earliest_date)) - $('.dr-year-switcher .dr-left', this.element).addClass('dr-disabled'); - - $('.dr-day', this.element).on({ - mouseenter: function() { - var selected = $(this); - var start_date = moment(self.start_date); - var end_date = moment(self.end_date); - var current_date = moment(self.current_date); - - if ($(self.selected).hasClass("dr-date-start")) { - selected.addClass('dr-hover dr-hover-before'); - $('.dr-start', self.element).css({'border': 'none', 'padding-left': '0.3125rem'}); - setMaybeRange('start'); - } - - if ($(self.selected).hasClass("dr-date-end")) { - selected.addClass('dr-hover dr-hover-after'); - $('.dr-end', self.element).css({'border': 'none', 'padding-right': '0.3125rem'}); - setMaybeRange('end'); - } - - if (!self.start_date && !self.end_date) - selected.addClass('dr-maybe'); - - $('.dr-selected', self.element).css('background-color', 'transparent'); - - function setMaybeRange(type) { - other = undefined; - - self.range(6 * 7).forEach(function(i) { - var next = selected.next().data('date'); - var prev = selected.prev().data('date'); - var curr = selected.data('date'); - - if (!curr) - return false; - - if (!prev) - prev = curr; - - if (!next) - next = curr; - - if (type == 'start') { - if (moment(next).isSame(self.end_date) || (self.sameDayRange && moment(curr).isSame(self.end_date))) - return false; - - if (moment(curr).isAfter(self.end_date)) { - other = other || moment(curr).add(6, 'day').startOf('day'); - - if (i > 5 || (next ? moment(next).isAfter(self.latest_date) : false)) { - $(selected).addClass('dr-end'); - other = moment(curr); - return false; - } - } - - selected = selected.next().addClass('dr-maybe'); - } else if (type == 'end') { - if (moment(prev).isSame(self.start_date) || (self.sameDayRange && moment(curr).isSame(self.start_date))) - return false; - - if (moment(curr).isBefore(self.start_date)) { - other = other || moment(curr).subtract(6, 'day'); - - if (i > 5 || (prev ? moment(prev).isBefore(self.earliest_date) : false)) { - $(selected).addClass('dr-start'); - other = moment(curr); - return false; - } - } - - selected = selected.prev().addClass('dr-maybe'); - } - }); - } - }, - mouseleave: function() { - if ($(this).hasClass('dr-hover-before dr-end')) - $(this).removeClass('dr-end'); - - if ($(this).hasClass('dr-hover-after dr-start')) - $(this).removeClass('dr-start'); - - $(this).removeClass('dr-hover dr-hover-before dr-hover-after'); - $('.dr-start, .dr-end', self.element).css({'border': '', 'padding': ''}); - $('.dr-maybe:not(.dr-current)', self.element).removeClass('dr-start dr-end'); - $('.dr-day', self.element).removeClass('dr-maybe'); - $('.dr-selected', self.element).css('background-color', ''); - } - }); - - if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) { - $('.dr-day', this.element).on({ - touchstart: function() { - self.selectOneDate(other, self, $(this).data('date')); - } - }); - - $('div[contenteditable]', this.element).removeAttr('contenteditable'); - } else { - $('.dr-day', this.element).on({ - mousedown: function () { - self.selectOneDate(other, self, $(this).data('date')); - } - }); - } - - $('.dr-calendar', this.element) - .css('width', cal_width) - .slideDown(200); - $('.dr-input', this.element).addClass('dr-active'); - $(selected).addClass('dr-active').focus(); - this.element.addClass('dr-active'); - - this.calIsOpen = true; - } - - - Calendar.prototype.calendarClose = function(type) { - var self = this; - - if (!this.calIsOpen || this.presetIsOpen || type == 'force') { - $('.dr-calendar', this.element).slideUp(200, function() { - $('.dr-day', self.element).remove(); - }); - } else { - $('.dr-day', this.element).remove(); - } - - if (type == 'switcher') { - return false; - } - - $('.dr-input, .dr-date', this.element).removeClass('dr-active'); - this.element.removeClass('dr-active'); - - this.calIsOpen = false; - } - - - Calendar.prototype.calendarCreate = function(switcher) { - var self = this; - var array = this.calendarArray(this.start_date, this.end_date, this.current_date, switcher); - - array.forEach(function(d, i) { - var classString = "dr-day"; - - if (d.fade) - classString += " dr-fade"; - - if (d.start) - classString += " dr-start"; - - if (d.end) - classString += " dr-end"; - - if (d.current) - classString += " dr-current"; - - if (d.selected) - classString += " dr-selected"; - - if (d.outside) - classString += " dr-outside"; - - $('.dr-day-list', self.element).append('
  • '+ d.str +'
  • '); - }); - } - - - Calendar.prototype.calendarArray = function(start, end, current, switcher) { - var self = this; - current = moment(current || start || end).startOf('day'); - - var reference = switcher || current || start || end; - - var startRange = moment(reference).startOf('month').startOf('week'); - var endRange = moment(startRange).add(6*7 - 1, 'days').endOf('day'); - - var daysInRange = []; - var d = moment(startRange); - while ( d.isBefore(endRange) ) { - daysInRange.push( { - str: +d.format('D'), - start: start && d.isSame(start, 'day'), - end: end && d.isSame(end, 'day'), - current: current && d.isSame(current, 'day'), - selected: start && end && d.isBetween(start, end), - date: d.toISOString(), - outside: d.isBefore(self.earliest_date) || d.isAfter(self.latest_date), - fade: !d.isSame(reference, 'month') - } ); - d.add(1, 'd'); - } - - return daysInRange; - } - - - Calendar.prototype.calendarHTML = function(type) { - var ul_days_of_the_week = $('
      '); - var days = this.days_array.splice(moment.localeData().firstDayOfWeek()).concat(this.days_array.splice(0, moment.localeData().firstDayOfWeek())); - - $.each(days, function(i, elem) { - ul_days_of_the_week.append('
    • ' + elem + '
    • '); - }); - - if (type == "double") - return this.element.append('
      ' + - '
      ' + - '
      '+ moment(this.start_date).format(this.format.input) +'
      ' + - '' + - '
      '+ moment(this.end_date).format(this.format.input) +'
      ' + - '
      ' + - - (this.presets ? '
      ' + - '' + - '' + - '' + - '
      ' : '') + - '
      ' + - - '
      ' + - '' + - (this.presets ? this.presetCreate()[0].outerHTML : '') + - '
      '); - - return this.element.append('
      ' + - '
      ' + - '
      '+ (this.settings.current_date ? moment(this.current_date).format(this.format.input) : '') +'
      ' + - '
      ' + - '
      ' + - - '
      ' + - '' + - '
      '); - } - - - Calendar.prototype.parseDate = function(d) { - if (moment.defaultZone !== null && moment.hasOwnProperty('tz')) { - return moment.tz(d, this.format.input, moment.defaultZone.name); - } else { - return moment(d, this.format.input); - } - } - - - Calendar.prototype.range = function(length) { - var range = new Array(length); - - for (var idx = 0; idx < length; idx++) { - range[idx] = idx; - } - - return range; - } - - - Calendar.prototype.selectOneDate = function(other, cal, date) { - var string = moment(date).format(cal.format.input); - - if (other) { - $('.dr-date', cal.element) - .not(cal.selected) - .html(other.format(cal.format.input)); - } - - $(cal.selected).html(string); - cal.calendarOpen(cal.selected); - - if ($(cal.selected).hasClass('dr-date-start')) { - $('.dr-date-end', cal.element).trigger('click'); - } else { - cal.calendarSaveDates(); - cal.calendarClose('force'); - } - } - - - return Calendar; -})); diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/sample-image.jpg b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/sample-image.jpg deleted file mode 100644 index 1334432..0000000 Binary files a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/sample-image.jpg and /dev/null differ diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/umbraco-logo.png b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/umbraco-logo.png deleted file mode 100644 index e299463..0000000 Binary files a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/Email-Example/umbraco-logo.png and /dev/null differ diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/aspnet-validation/dist/aspnet-validation.min.js b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/aspnet-validation/dist/aspnet-validation.min.js deleted file mode 100644 index e442df5..0000000 --- a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/aspnet-validation/dist/aspnet-validation.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.aspnetValidation=t():e.aspnetValidation=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"MvcValidationProviders",function(){return o}),r.d(t,"ValidationService",function(){return s});var n=function(e,t,r,n){return new(r||(r=Promise))(function(a,i){function o(e){try{u(n.next(e))}catch(e){i(e)}}function s(e){try{u(n.throw(e))}catch(e){i(e)}}function u(e){e.done?a(e.value):new r(function(t){t(e.value)}).then(o,s)}u((n=n.apply(e,t||[])).next())})},a=function(e,t){var r,n,a,i,o={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;o;)try{if(r=1,n&&(a=2&i[0]?n.return:i[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,i[1])).done)return a;switch(n=0,a&&(i=[2&i[0],a.value]),i[0]){case 0:case 1:a=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(a=(a=o.trys).length>0&&a[a.length-1])&&(6===i[0]||2===i[0])){o=0;continue}if(3===i[0]&&(!a||i[1]>a[0]&&i[1]-1){var a=e.substr(0,n)+"."+r,i=document.getElementsByName(a)[0];if(i)return i}return document.getElementsByName(r)[0]}var o=function(){return function(){this.required=function(e,t,r){return Boolean(e)},this.stringLength=function(e,t,r){if(!e)return!0;if(r.min){var n=parseInt(r.min);if(e.lengtha)return!1}return!0},this.compare=function(e,t,r){if(!r.other)return!0;var n=i(t.name,r.other);return!n||n.value===e},this.range=function(e,t,r){if(!e)return!0;var n=parseFloat(e);return!isNaN(n)&&(!(r.min&&nparseFloat(r.max)))},this.regex=function(e,t,r){return!e||!r.pattern||new RegExp(r.pattern).test(e)},this.email=function(e,t,r){return!e||/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*(\.\w{2,})+$/.test(e)},this.creditcard=function(e,t,r){if(!e)return!0;if(/[^0-9 \-]+/.test(e))return!1;var n,a,i=0,o=0,s=!1;if((e=e.replace(/\D/g,"")).length<13||e.length>19)return!1;for(n=e.length-1;n>=0;n--)a=e.charAt(n),o=parseInt(a,10),s&&(o*=2)>9&&(o-=9),i+=o,s=!s;return i%10==0},this.url=function(e,t,r){return!e||new RegExp("^(?:(?:https?|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))\\.?)(?::\\d{2,5})?(?:[/?#]\\S*)?$","i").test(e)},this.phone=function(e,t,r){return!e||!/[\+\-\s][\-\s]/g.test(e)&&/^\+?[0-9\-\s]+$/.test(e)},this.remote=function(e,t,r){if(!e)return!0;for(var n=r.additionalfields.split(","),a={},o=0,s=n;o=200&&n.status<300){var a=JSON.parse(n.responseText);e(a)}else t({status:n.status,statusText:n.statusText,data:n.responseText})},n.onerror=function(e){t({status:n.status,statusText:n.statusText,data:n.responseText})}})}}}(),s=function(){function e(){this.providers={},this.messageFor={},this.elementUIDs=[],this.elementByUID={},this.formInputs={},this.validators={},this.elementEvents={},this.summary={},this.debounce=300}return e.prototype.addProvider=function(e,t){this.providers[e]||(this.providers[e]=t)},e.prototype.addMvcProviders=function(){var e=new o;this.addProvider("required",e.required),this.addProvider("length",e.stringLength),this.addProvider("maxlength",e.stringLength),this.addProvider("minlength",e.stringLength),this.addProvider("equalto",e.compare),this.addProvider("range",e.range),this.addProvider("regex",e.regex),this.addProvider("creditcard",e.creditcard),this.addProvider("email",e.email),this.addProvider("url",e.url),this.addProvider("phone",e.phone),this.addProvider("remote",e.remote)},e.prototype.scanMessages=function(){for(var e=document.querySelectorAll("[data-valmsg-for]"),t=0;t>>0,s=0;sTe(e)?(d=e+1,_-Te(e)):(d=e,_),{year:d,dayOfYear:r}}function Ce(e,a,t){var s,n,d=Ne(e.year(),a,t),r=Math.floor((e.dayOfYear()-d-1)/7)+1;return r<1?s=r+Ie(n=e.year()-1,a,t):r>Ie(e.year(),a,t)?(s=r-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=r),{week:s,year:n}}function Ie(e,a,t){var s=Ne(e,a,t),n=Ne(e+1,a,t);return(Te(e)-s+n)/7}C("w",["ww",2],"wo","week"),C("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),E("week",5),E("isoWeek",5),ie("w",B),ie("ww",B,V),ie("W",B),ie("WW",B,V),Me(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=g(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}C("d",0,"do","day"),C("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),C("e",0,0,"weekday"),C("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),E("day",11),E("weekday",11),E("isoWeekday",11),ie("d",B),ie("e",B),ie("E",B),ie("dd",function(e,a){return a.weekdaysMinRegex(e)}),ie("ddd",function(e,a){return a.weekdaysShortRegex(e)}),ie("dddd",function(e,a){return a.weekdaysRegex(e)}),Me(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:Y(t).invalidWeekday=e}),Me(["d","e","E"],function(e,a,t,s){a[s]=g(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ve="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var Ke="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var Ze=re;var $e=re;var Be=re;function qe(){function e(e,a){return a.length-e.length}var a,t,s,n,d,r=[],_=[],i=[],o=[];for(a=0;a<7;a++)t=c([2e3,1]).day(a),s=this.weekdaysMin(t,""),n=this.weekdaysShort(t,""),d=this.weekdays(t,""),r.push(s),_.push(n),i.push(d),o.push(s),o.push(n),o.push(d);for(r.sort(e),_.sort(e),i.sort(e),o.sort(e),a=0;a<7;a++)_[a]=me(_[a]),i[a]=me(i[a]),o[a]=me(o[a]);this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,a){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}C("H",["HH",2],0,"hour"),C("h",["hh",2],0,Qe),C("k",["kk",2],0,function(){return this.hours()||24}),C("hmm",0,0,function(){return""+Qe.apply(this)+F(this.minutes(),2)}),C("hmmss",0,0,function(){return""+Qe.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)}),C("Hmm",0,0,function(){return""+this.hours()+F(this.minutes(),2)}),C("Hmmss",0,0,function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),O("hour","h"),E("hour",13),ie("a",ea),ie("A",ea),ie("H",B),ie("h",B),ie("k",B),ie("HH",B,V),ie("hh",B,V),ie("kk",B,V),ie("hmm",q),ie("hmmss",Q),ie("Hmm",q),ie("Hmmss",Q),le(["H","HH"],Ye),le(["k","kk"],function(e,a,t){var s=g(e);a[Ye]=24===s?0:s}),le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),le(["h","hh"],function(e,a,t){a[Ye]=g(e),Y(t).bigHour=!0}),le("hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s)),Y(t).bigHour=!0}),le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n)),Y(t).bigHour=!0}),le("Hmm",function(e,a,t){var s=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s))}),le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[Ye]=g(e.substr(0,s)),a[ye]=g(e.substr(s,2)),a[fe]=g(e.substr(n))});var aa,ta=Se("Hours",!0),sa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Oe,monthsShort:Pe,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Ke,weekdaysShort:Ve,meridiemParse:/[ap]\.?m?\.?/i},na={},da={};function ra(e){return e?e.toLowerCase().replace("_","-"):e}function _a(e){var a=null;if(!na[e]&&"undefined"!=typeof module&&module&&module.exports)try{a=aa._abbr,require("./locale/"+e),ia(a)}catch(e){}return na[e]}function ia(e,a){var t;return e&&((t=o(a)?ma(e):oa(e,a))?aa=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),aa._abbr}function oa(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=_a(a.parentLocale)))return da[a.parentLocale]||(da[a.parentLocale]=[]),da[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new j(b(s,a)),da[e]&&da[e].forEach(function(e){oa(e.name,e.config)}),ia(e),na[e]}function ma(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return aa;if(!_(e)){if(a=_a(e))return a;e=[e]}return function(e){for(var a,t,s,n,d=0;d=a&&r(n,t,!0)>=a-1)break;a--}d++}return aa}(e)}function ua(e){var a,t=e._a;return t&&-2===Y(e).overflow&&(a=t[Le]<0||11je(t[he],t[Le])?ce:t[Ye]<0||24Ie(t,d,r)?Y(e)._overflowWeeks=!0:null!=i?Y(e)._overflowWeekday=!0:(_=Re(t,s,n,d,r),e._a[he]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(d=la(e._a[he],s[he]),(e._dayOfYear>Te(d)||0===e._dayOfYear)&&(Y(e)._overflowDayOfYear=!0),t=Je(d,0,e._dayOfYear),e._a[Le]=t.getUTCMonth(),e._a[ce]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=r[a]=s[a];for(;a<7;a++)e._a[a]=r[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[Ye]&&0===e._a[ye]&&0===e._a[fe]&&0===e._a[ke]&&(e._nextDay=!0,e._a[Ye]=0),e._d=(e._useUTC?Je:function(e,a,t,s,n,d,r){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,d,r),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,d,r),_}).apply(null,r),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Ye]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(Y(e).weekdayMismatch=!0)}}var ha=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,La=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ca=/Z|[+-]\d\d(?::?\d\d)?/,Ya=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ya=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],fa=/^\/?Date\((\-?\d+)/i;function ka(e){var a,t,s,n,d,r,_=e._i,i=ha.exec(_)||La.exec(_);if(i){for(Y(e).iso=!0,a=0,t=Ya.length;at.valueOf():t.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},Mt.isLocal=function(){return!!this.isValid()&&!this._isUTC},Mt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},Mt.isUtc=Ra,Mt.isUTC=Ra,Mt.zoneAbbr=function(){return this._isUTC?"UTC":""},Mt.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},Mt.dates=t("dates accessor is deprecated. Use date instead.",_t),Mt.months=t("months accessor is deprecated. Use month instead",Ae),Mt.years=t("years accessor is deprecated. Use year instead",ve),Mt.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),Mt.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(k(e,this),(e=va(e))._a){var a=e._isUTC?c(e._a):Ha(e._a);this._isDSTShifted=this.isValid()&&0 11) { - calendar.year += Math.floor(Math.abs(calendar.month)/12); - calendar.month -= 12; - } - return calendar; - }, - - /** - * defaults and localisation - */ - defaults = { - - // bind the picker to a form field - field: null, - - // automatically show/hide the picker on `field` focus (default `true` if `field` is set) - bound: undefined, - - // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set) - ariaLabel: 'Use the arrow keys to pick a date', - - // position of the datepicker, relative to the field (default to bottom & left) - // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) - position: 'bottom left', - - // automatically fit in the viewport even if it means repositioning from the position option - reposition: true, - - // the default output format for `.toString()` and `field` value - format: 'YYYY-MM-DD', - - // the toString function which gets passed a current date object and format - // and returns a string - toString: null, - - // used to create date object from current input string - parse: null, - - // the initial date to view when first opened - defaultDate: null, - - // make the `defaultDate` the initial selected value - setDefaultDate: false, - - // first day of week (0: Sunday, 1: Monday etc) - firstDay: 0, - - // the default flag for moment's strict date parsing - formatStrict: false, - - // the minimum/earliest date that can be selected - minDate: null, - // the maximum/latest date that can be selected - maxDate: null, - - // number of years either side, or array of upper/lower range - yearRange: 10, - - // show week numbers at head of row - showWeekNumber: false, - - // Week picker mode - pickWholeWeek: false, - - // used internally (don't config outside) - minYear: 0, - maxYear: 9999, - minMonth: undefined, - maxMonth: undefined, - - startRange: null, - endRange: null, - - isRTL: false, - - // Additional text to append to the year in the calendar title - yearSuffix: '', - - // Render the month after year in the calendar title - showMonthAfterYear: false, - - // Render days of the calendar grid that fall in the next or previous month - showDaysInNextAndPreviousMonths: false, - - // Allows user to select days that fall in the next or previous month - enableSelectionDaysInNextAndPreviousMonths: false, - - // how many months are visible - numberOfMonths: 1, - - // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`) - // only used for the first display or when a selected date is not visible - mainCalendar: 'left', - - // Specify a DOM element to render the calendar in - container: undefined, - - // Blur field when date is selected - blurFieldOnSelect : true, - - // internationalization - i18n: { - previousMonth : 'Previous Month', - nextMonth : 'Next Month', - months : ['January','February','March','April','May','June','July','August','September','October','November','December'], - weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], - weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] - }, - - // Theme Classname - theme: null, - - // events array - events: [], - - // callback function - onSelect: null, - onOpen: null, - onClose: null, - onDraw: null, - - // Enable keyboard input - keyboardInput: true - }, - - - /** - * templating functions to abstract HTML rendering - */ - renderDayName = function(opts, day, abbr) - { - day += opts.firstDay; - while (day >= 7) { - day -= 7; - } - return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; - }, - - renderDay = function(opts) - { - var arr = []; - var ariaSelected = 'false'; - if (opts.isEmpty) { - if (opts.showDaysInNextAndPreviousMonths) { - arr.push('is-outside-current-month'); - - if(!opts.enableSelectionDaysInNextAndPreviousMonths) { - arr.push('is-selection-disabled'); - } - - } else { - return ''; - } - } - if (opts.isDisabled) { - arr.push('is-disabled'); - } - if (opts.isToday) { - arr.push('is-today'); - } - if (opts.isSelected) { - arr.push('is-selected'); - ariaSelected = 'true'; - } - if (opts.hasEvent) { - arr.push('has-event'); - } - if (opts.isInRange) { - arr.push('is-inrange'); - } - if (opts.isStartRange) { - arr.push('is-startrange'); - } - if (opts.isEndRange) { - arr.push('is-endrange'); - } - return '' + - '' + - ''; - }, - - renderWeek = function (d, m, y) { - // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified. - var onejan = new Date(y, 0, 1), - weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7); - return '' + weekNum + ''; - }, - - renderRow = function(days, isRTL, pickWholeWeek, isRowSelected) - { - return '' + (isRTL ? days.reverse() : days).join('') + ''; - }, - - renderBody = function(rows) - { - return '' + rows.join('') + ''; - }, - - renderHead = function(opts) - { - var i, arr = []; - if (opts.showWeekNumber) { - arr.push(''); - } - for (i = 0; i < 7; i++) { - arr.push('' + renderDayName(opts, i, true) + ''); - } - return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; - }, - - renderTitle = function(instance, c, year, month, refYear, randId) - { - var i, j, arr, - opts = instance._o, - isMinYear = year === opts.minYear, - isMaxYear = year === opts.maxYear, - html = '
      ', - monthHtml, - yearHtml, - prev = true, - next = true; - - for (arr = [], i = 0; i < 12; i++) { - arr.push(''); - } - - monthHtml = '
      ' + opts.i18n.months[month] + '
      '; - - if (isArray(opts.yearRange)) { - i = opts.yearRange[0]; - j = opts.yearRange[1] + 1; - } else { - i = year - opts.yearRange; - j = 1 + year + opts.yearRange; - } - - for (arr = []; i < j && i <= opts.maxYear; i++) { - if (i >= opts.minYear) { - arr.push(''); - } - } - yearHtml = '
      ' + year + opts.yearSuffix + '
      '; - - if (opts.showMonthAfterYear) { - html += yearHtml + monthHtml; - } else { - html += monthHtml + yearHtml; - } - - if (isMinYear && (month === 0 || opts.minMonth >= month)) { - prev = false; - } - - if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { - next = false; - } - - if (c === 0) { - html += ''; - } - if (c === (instance._o.numberOfMonths - 1) ) { - html += ''; - } - - return html += '
      '; - }, - - renderTable = function(opts, data, randId) - { - return '' + renderHead(opts) + renderBody(data) + '
      '; - }, - - - /** - * Pikaday constructor - */ - Pikaday = function(options) - { - var self = this, - opts = self.config(options); - - self._onMouseDown = function(e) - { - if (!self._v) { - return; - } - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - - if (!hasClass(target, 'is-disabled')) { - if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) { - self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day'))); - if (opts.bound) { - sto(function() { - self.hide(); - if (opts.blurFieldOnSelect && opts.field) { - opts.field.blur(); - } - }, 100); - } - } - else if (hasClass(target, 'pika-prev')) { - self.prevMonth(); - } - else if (hasClass(target, 'pika-next')) { - self.nextMonth(); - } - } - if (!hasClass(target, 'pika-select')) { - // if this is touch event prevent mouse events emulation - if (e.preventDefault) { - e.preventDefault(); - } else { - e.returnValue = false; - return false; - } - } else { - self._c = true; - } - }; - - self._onChange = function(e) - { - e = e || window.event; - var target = e.target || e.srcElement; - if (!target) { - return; - } - if (hasClass(target, 'pika-select-month')) { - self.gotoMonth(target.value); - } - else if (hasClass(target, 'pika-select-year')) { - self.gotoYear(target.value); - } - }; - - self._onKeyChange = function(e) - { - e = e || window.event; - - if (self.isVisible()) { - - switch(e.keyCode){ - case 13: - case 27: - if (opts.field) { - opts.field.blur(); - } - break; - case 37: - e.preventDefault(); - self.adjustDate('subtract', 1); - break; - case 38: - self.adjustDate('subtract', 7); - break; - case 39: - self.adjustDate('add', 1); - break; - case 40: - self.adjustDate('add', 7); - break; - } - } - }; - - self._onInputChange = function(e) - { - var date; - - if (e.firedBy === self) { - return; - } - if (opts.parse) { - date = opts.parse(opts.field.value, opts.format); - } else if (hasMoment) { - date = moment(opts.field.value, opts.format, opts.formatStrict); - date = (date && date.isValid()) ? date.toDate() : null; - } - else { - date = new Date(Date.parse(opts.field.value)); - } - if (isDate(date)) { - self.setDate(date); - } - if (!self._v) { - self.show(); - } - }; - - self._onInputFocus = function() - { - self.show(); - }; - - self._onInputClick = function() - { - self.show(); - }; - - self._onInputBlur = function() - { - // IE allows pika div to gain focus; catch blur the input field - var pEl = document.activeElement; - do { - if (hasClass(pEl, 'pika-single')) { - return; - } - } - while ((pEl = pEl.parentNode)); - - if (!self._c) { - self._b = sto(function() { - self.hide(); - }, 50); - } - self._c = false; - }; - - self._onClick = function(e) - { - e = e || window.event; - var target = e.target || e.srcElement, - pEl = target; - if (!target) { - return; - } - if (!hasEventListeners && hasClass(target, 'pika-select')) { - if (!target.onchange) { - target.setAttribute('onchange', 'return;'); - addEvent(target, 'change', self._onChange); - } - } - do { - if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) { - return; - } - } - while ((pEl = pEl.parentNode)); - if (self._v && target !== opts.trigger && pEl !== opts.trigger) { - self.hide(); - } - }; - - self.el = document.createElement('div'); - self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : ''); - - addEvent(self.el, 'mousedown', self._onMouseDown, true); - addEvent(self.el, 'touchend', self._onMouseDown, true); - addEvent(self.el, 'change', self._onChange); - - if (opts.keyboardInput) { - addEvent(document, 'keydown', self._onKeyChange); - } - - if (opts.field) { - if (opts.container) { - opts.container.appendChild(self.el); - } else if (opts.bound) { - document.body.appendChild(self.el); - } else { - opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling); - } - addEvent(opts.field, 'change', self._onInputChange); - - if (!opts.defaultDate) { - if (hasMoment && opts.field.value) { - opts.defaultDate = moment(opts.field.value, opts.format).toDate(); - } else { - opts.defaultDate = new Date(Date.parse(opts.field.value)); - } - opts.setDefaultDate = true; - } - } - - var defDate = opts.defaultDate; - - if (isDate(defDate)) { - if (opts.setDefaultDate) { - self.setDate(defDate, true); - } else { - self.gotoDate(defDate); - } - } else { - self.gotoDate(new Date()); - } - - if (opts.bound) { - this.hide(); - self.el.className += ' is-bound'; - addEvent(opts.trigger, 'click', self._onInputClick); - addEvent(opts.trigger, 'focus', self._onInputFocus); - addEvent(opts.trigger, 'blur', self._onInputBlur); - } else { - this.show(); - } - }; - - - /** - * public Pikaday API - */ - Pikaday.prototype = { - - - /** - * configure functionality - */ - config: function(options) - { - if (!this._o) { - this._o = extend({}, defaults, true); - } - - var opts = extend(this._o, options, true); - - opts.isRTL = !!opts.isRTL; - - opts.field = (opts.field && opts.field.nodeName) ? opts.field : null; - - opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null; - - opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field); - - opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field; - - opts.disableWeekends = !!opts.disableWeekends; - - opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null; - - var nom = parseInt(opts.numberOfMonths, 10) || 1; - opts.numberOfMonths = nom > 4 ? 4 : nom; - - if (!isDate(opts.minDate)) { - opts.minDate = false; - } - if (!isDate(opts.maxDate)) { - opts.maxDate = false; - } - if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) { - opts.maxDate = opts.minDate = false; - } - if (opts.minDate) { - this.setMinDate(opts.minDate); - } - if (opts.maxDate) { - this.setMaxDate(opts.maxDate); - } - - if (isArray(opts.yearRange)) { - var fallback = new Date().getFullYear() - 10; - opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback; - opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback; - } else { - opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange; - if (opts.yearRange > 100) { - opts.yearRange = 100; - } - } - - return opts; - }, - - /** - * return a formatted string of the current selection (using Moment.js if available) - */ - toString: function(format) - { - format = format || this._o.format; - if (!isDate(this._d)) { - return ''; - } - if (this._o.toString) { - return this._o.toString(this._d, format); - } - if (hasMoment) { - return moment(this._d).format(format); - } - return this._d.toDateString(); - }, - - /** - * return a Moment.js object of the current selection (if available) - */ - getMoment: function() - { - return hasMoment ? moment(this._d) : null; - }, - - /** - * set the current selection from a Moment.js object (if available) - */ - setMoment: function(date, preventOnSelect) - { - if (hasMoment && moment.isMoment(date)) { - this.setDate(date.toDate(), preventOnSelect); - } - }, - - /** - * return a Date object of the current selection - */ - getDate: function() - { - return isDate(this._d) ? new Date(this._d.getTime()) : null; - }, - - /** - * set the current selection - */ - setDate: function(date, preventOnSelect) - { - if (!date) { - this._d = null; - - if (this._o.field) { - this._o.field.value = ''; - fireEvent(this._o.field, 'change', { firedBy: this }); - } - - return this.draw(); - } - if (typeof date === 'string') { - date = new Date(Date.parse(date)); - } - if (!isDate(date)) { - return; - } - - var min = this._o.minDate, - max = this._o.maxDate; - - if (isDate(min) && date < min) { - date = min; - } else if (isDate(max) && date > max) { - date = max; - } - - this._d = new Date(date.getTime()); - setToStartOfDay(this._d); - this.gotoDate(this._d); - - if (this._o.field) { - this._o.field.value = this.toString(); - fireEvent(this._o.field, 'change', { firedBy: this }); - } - if (!preventOnSelect && typeof this._o.onSelect === 'function') { - this._o.onSelect.call(this, this.getDate()); - } - }, - - /** - * change view to a specific date - */ - gotoDate: function(date) - { - var newCalendar = true; - - if (!isDate(date)) { - return; - } - - if (this.calendars) { - var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), - lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1), - visibleDate = date.getTime(); - // get the end of the month - lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1); - lastVisibleDate.setDate(lastVisibleDate.getDate()-1); - newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate); - } - - if (newCalendar) { - this.calendars = [{ - month: date.getMonth(), - year: date.getFullYear() - }]; - if (this._o.mainCalendar === 'right') { - this.calendars[0].month += 1 - this._o.numberOfMonths; - } - } - - this.adjustCalendars(); - }, - - adjustDate: function(sign, days) { - - var day = this.getDate() || new Date(); - var difference = parseInt(days)*24*60*60*1000; - - var newDay; - - if (sign === 'add') { - newDay = new Date(day.valueOf() + difference); - } else if (sign === 'subtract') { - newDay = new Date(day.valueOf() - difference); - } - - this.setDate(newDay); - }, - - adjustCalendars: function() { - this.calendars[0] = adjustCalendar(this.calendars[0]); - for (var c = 1; c < this._o.numberOfMonths; c++) { - this.calendars[c] = adjustCalendar({ - month: this.calendars[0].month + c, - year: this.calendars[0].year - }); - } - this.draw(); - }, - - gotoToday: function() - { - this.gotoDate(new Date()); - }, - - /** - * change view to a specific month (zero-index, e.g. 0: January) - */ - gotoMonth: function(month) - { - if (!isNaN(month)) { - this.calendars[0].month = parseInt(month, 10); - this.adjustCalendars(); - } - }, - - nextMonth: function() - { - this.calendars[0].month++; - this.adjustCalendars(); - }, - - prevMonth: function() - { - this.calendars[0].month--; - this.adjustCalendars(); - }, - - /** - * change view to a specific full year (e.g. "2012") - */ - gotoYear: function(year) - { - if (!isNaN(year)) { - this.calendars[0].year = parseInt(year, 10); - this.adjustCalendars(); - } - }, - - /** - * change the minDate - */ - setMinDate: function(value) - { - if(value instanceof Date) { - setToStartOfDay(value); - this._o.minDate = value; - this._o.minYear = value.getFullYear(); - this._o.minMonth = value.getMonth(); - } else { - this._o.minDate = defaults.minDate; - this._o.minYear = defaults.minYear; - this._o.minMonth = defaults.minMonth; - this._o.startRange = defaults.startRange; - } - - this.draw(); - }, - - /** - * change the maxDate - */ - setMaxDate: function(value) - { - if(value instanceof Date) { - setToStartOfDay(value); - this._o.maxDate = value; - this._o.maxYear = value.getFullYear(); - this._o.maxMonth = value.getMonth(); - } else { - this._o.maxDate = defaults.maxDate; - this._o.maxYear = defaults.maxYear; - this._o.maxMonth = defaults.maxMonth; - this._o.endRange = defaults.endRange; - } - - this.draw(); - }, - - setStartRange: function(value) - { - this._o.startRange = value; - }, - - setEndRange: function(value) - { - this._o.endRange = value; - }, - - /** - * refresh the HTML - */ - draw: function(force) - { - if (!this._v && !force) { - return; - } - var opts = this._o, - minYear = opts.minYear, - maxYear = opts.maxYear, - minMonth = opts.minMonth, - maxMonth = opts.maxMonth, - html = '', - randId; - - if (this._y <= minYear) { - this._y = minYear; - if (!isNaN(minMonth) && this._m < minMonth) { - this._m = minMonth; - } - } - if (this._y >= maxYear) { - this._y = maxYear; - if (!isNaN(maxMonth) && this._m > maxMonth) { - this._m = maxMonth; - } - } - - randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); - - for (var c = 0; c < opts.numberOfMonths; c++) { - html += '
      ' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
      '; - } - - this.el.innerHTML = html; - - if (opts.bound) { - if(opts.field.type !== 'hidden') { - sto(function() { - opts.trigger.focus(); - }, 1); - } - } - - if (typeof this._o.onDraw === 'function') { - this._o.onDraw(this); - } - - if (opts.bound) { - // let the screen reader user know to use arrow keys - opts.field.setAttribute('aria-label', opts.ariaLabel); - } - }, - - adjustPosition: function() - { - var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned; - - if (this._o.container) return; - - this.el.style.position = 'absolute'; - - field = this._o.trigger; - pEl = field; - width = this.el.offsetWidth; - height = this.el.offsetHeight; - viewportWidth = window.innerWidth || document.documentElement.clientWidth; - viewportHeight = window.innerHeight || document.documentElement.clientHeight; - scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop; - leftAligned = true; - bottomAligned = true; - - if (typeof field.getBoundingClientRect === 'function') { - clientRect = field.getBoundingClientRect(); - left = clientRect.left + window.pageXOffset; - top = clientRect.bottom + window.pageYOffset; - } else { - left = pEl.offsetLeft; - top = pEl.offsetTop + pEl.offsetHeight; - while((pEl = pEl.offsetParent)) { - left += pEl.offsetLeft; - top += pEl.offsetTop; - } - } - - // default position is bottom & left - if ((this._o.reposition && left + width > viewportWidth) || - ( - this._o.position.indexOf('right') > -1 && - left - width + field.offsetWidth > 0 - ) - ) { - left = left - width + field.offsetWidth; - leftAligned = false; - } - if ((this._o.reposition && top + height > viewportHeight + scrollTop) || - ( - this._o.position.indexOf('top') > -1 && - top - height - field.offsetHeight > 0 - ) - ) { - top = top - height - field.offsetHeight; - bottomAligned = false; - } - - this.el.style.left = left + 'px'; - this.el.style.top = top + 'px'; - - addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned'); - addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned'); - removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned'); - removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned'); - }, - - /** - * render HTML for a particular month - */ - render: function(year, month, randId) - { - var opts = this._o, - now = new Date(), - days = getDaysInMonth(year, month), - before = new Date(year, month, 1).getDay(), - data = [], - row = []; - setToStartOfDay(now); - if (opts.firstDay > 0) { - before -= opts.firstDay; - if (before < 0) { - before += 7; - } - } - var previousMonth = month === 0 ? 11 : month - 1, - nextMonth = month === 11 ? 0 : month + 1, - yearOfPreviousMonth = month === 0 ? year - 1 : year, - yearOfNextMonth = month === 11 ? year + 1 : year, - daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth); - var cells = days + before, - after = cells; - while(after > 7) { - after -= 7; - } - cells += 7 - after; - var isWeekSelected = false; - for (var i = 0, r = 0; i < cells; i++) - { - var day = new Date(year, month, 1 + (i - before)), - isSelected = isDate(this._d) ? compareDates(day, this._d) : false, - isToday = compareDates(day, now), - hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false, - isEmpty = i < before || i >= (days + before), - dayNumber = 1 + (i - before), - monthNumber = month, - yearNumber = year, - isStartRange = opts.startRange && compareDates(opts.startRange, day), - isEndRange = opts.endRange && compareDates(opts.endRange, day), - isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, - isDisabled = (opts.minDate && day < opts.minDate) || - (opts.maxDate && day > opts.maxDate) || - (opts.disableWeekends && isWeekend(day)) || - (opts.disableDayFn && opts.disableDayFn(day)); - - if (isEmpty) { - if (i < before) { - dayNumber = daysInPreviousMonth + dayNumber; - monthNumber = previousMonth; - yearNumber = yearOfPreviousMonth; - } else { - dayNumber = dayNumber - days; - monthNumber = nextMonth; - yearNumber = yearOfNextMonth; - } - } - - var dayConfig = { - day: dayNumber, - month: monthNumber, - year: yearNumber, - hasEvent: hasEvent, - isSelected: isSelected, - isToday: isToday, - isDisabled: isDisabled, - isEmpty: isEmpty, - isStartRange: isStartRange, - isEndRange: isEndRange, - isInRange: isInRange, - showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths, - enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths - }; - - if (opts.pickWholeWeek && isSelected) { - isWeekSelected = true; - } - - row.push(renderDay(dayConfig)); - - if (++r === 7) { - if (opts.showWeekNumber) { - row.unshift(renderWeek(i - before, month, year)); - } - data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected)); - row = []; - r = 0; - isWeekSelected = false; - } - } - return renderTable(opts, data, randId); - }, - - isVisible: function() - { - return this._v; - }, - - show: function() - { - if (!this.isVisible()) { - this._v = true; - this.draw(); - removeClass(this.el, 'is-hidden'); - if (this._o.bound) { - addEvent(document, 'click', this._onClick); - this.adjustPosition(); - } - if (typeof this._o.onOpen === 'function') { - this._o.onOpen.call(this); - } - } - }, - - hide: function() - { - var v = this._v; - if (v !== false) { - if (this._o.bound) { - removeEvent(document, 'click', this._onClick); - } - this.el.style.position = 'static'; // reset - this.el.style.left = 'auto'; - this.el.style.top = 'auto'; - addClass(this.el, 'is-hidden'); - this._v = false; - if (v !== undefined && typeof this._o.onClose === 'function') { - this._o.onClose.call(this); - } - } - }, - - /** - * GAME OVER - */ - destroy: function() - { - var opts = this._o; - - this.hide(); - removeEvent(this.el, 'mousedown', this._onMouseDown, true); - removeEvent(this.el, 'touchend', this._onMouseDown, true); - removeEvent(this.el, 'change', this._onChange); - if (opts.keyboardInput) { - removeEvent(document, 'keydown', this._onKeyChange); - } - if (opts.field) { - removeEvent(opts.field, 'change', this._onInputChange); - if (opts.bound) { - removeEvent(opts.trigger, 'click', this._onInputClick); - removeEvent(opts.trigger, 'focus', this._onInputFocus); - removeEvent(opts.trigger, 'blur', this._onInputBlur); - } - } - if (this.el.parentNode) { - this.el.parentNode.removeChild(this.el); - } - } - - }; - - return Pikaday; -})); diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/promise-polyfill/dist/polyfill.min.js b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/promise-polyfill/dist/polyfill.min.js deleted file mode 100644 index 09fa4d5..0000000 --- a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/promise-polyfill/dist/polyfill.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n():"function"==typeof define&&define.amd?define(n):n()}(0,function(){"use strict";function e(e){var n=this.constructor;return this.then(function(t){return n.resolve(e()).then(function(){return t})},function(t){return n.resolve(e()).then(function(){return n.reject(t)})})}function n(e){return!(!e||"undefined"==typeof e.length)}function t(){}function o(e){if(!(this instanceof o))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],c(e,this)}function r(e,n){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,o._immediateFn(function(){var t=1===e._state?n.onFulfilled:n.onRejected;if(null!==t){var o;try{o=t(e._value)}catch(r){return void f(n.promise,r)}i(n.promise,o)}else(1===e._state?i:f)(n.promise,e._value)})):e._deferreds.push(n)}function i(e,n){try{if(n===e)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if(n instanceof o)return e._state=3,e._value=n,void u(e);if("function"==typeof t)return void c(function(e,n){return function(){e.apply(n,arguments)}}(t,n),e)}e._state=1,e._value=n,u(e)}catch(r){f(e,r)}}function f(e,n){e._state=2,e._value=n,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&o._immediateFn(function(){e._handled||o._unhandledRejectionFn(e._value)});for(var n=0,t=e._deferreds.length;t>n;n++)r(e,e._deferreds[n]);e._deferreds=null}function c(e,n){var t=!1;try{e(function(e){t||(t=!0,i(n,e))},function(e){t||(t=!0,f(n,e))})}catch(o){if(t)return;t=!0,f(n,o)}}var a=setTimeout;o.prototype["catch"]=function(e){return this.then(null,e)},o.prototype.then=function(e,n){var o=new this.constructor(t);return r(this,new function(e,n,t){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof n?n:null,this.promise=t}(e,n,o)),o},o.prototype["finally"]=e,o.all=function(e){return new o(function(t,o){function r(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var u=n.then;if("function"==typeof u)return void u.call(n,function(n){r(e,n)},o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},o.resolve=function(e){return e&&"object"==typeof e&&e.constructor===o?e:new o(function(n){n(e)})},o.reject=function(e){return new o(function(n,t){t(e)})},o.race=function(e){return new o(function(t,r){if(!n(e))return r(new TypeError("Promise.race accepts an array"));for(var i=0,f=e.length;f>i;i++)o.resolve(e[i]).then(t,r)})},o._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},o._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var l=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"Promise"in l?l.Promise.prototype["finally"]||(l.Promise.prototype["finally"]=e):l.Promise=o}); diff --git a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/themes/default/umbracoforms.js b/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/themes/default/umbracoforms.js deleted file mode 100644 index 5126408..0000000 --- a/src/DemoWebsite.v9/App_Plugins/UmbracoForms/Assets/themes/default/umbracoforms.js +++ /dev/null @@ -1,689 +0,0 @@ -(function () { - - - // polyfill for matches and closest - if (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector; - if (!Element.prototype.closest) Element.prototype.closest = function (selector) { - var el = this; - while (el) { - if (el.matches(selector)) { - return el; - } - el = el.parentElement; - } - }; - - - - //execute init() on document ready - if (document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll)) { - listen(); - } else { - document.addEventListener("DOMContentLoaded", listen); - } - - function listen() { - if (typeof umbracoFormsCollection === "undefined") { - //this will occur if this js file is loaded before the inline scripts, in which case - //we'll listen for the inline scripts to execute a custom event. - document.addEventListener("umbracoFormLoaded", init); - } - else { - initCollection(umbracoFormsCollection); - } - } - - function initCollection(formsCollection) { - configureUmbracoFormsValidation(); - - for (var i = 0; i < formsCollection.length; i++) { - init({ form: formsCollection[i] }); - } - } - - function init(e) { - - var formItem = JSON.parse(decodeURI(e.form)); - - var forms = document.querySelectorAll('.umbraco-forms-form'); - - for(var i = 0; i < forms.length; i++) { - var form = forms[i]; - - dependencyCheck(form); - - var page = form.querySelector('.umbraco-forms-page'); - var conditions = new UmbracoFormsConditions(page, - formItem.pageButtonConditions, - formItem.fieldSetConditions, - formItem.fieldConditions, - formItem.recordValues); - conditions.watch(); - - applyFormAccessibility(form); - } - } - - /** Configures the jquery validation for Umbraco forms */ - function configureUmbracoFormsValidation() { - - if (window.aspnetValidation !== undefined) { - // Asp-net validation setup: - - var validationService = new aspnetValidation.ValidationService(); - - // TODO: equivilant to this: - /* - $.validator.setDefaults({ - ignore: ":hidden" - }); - */ - - var required = function (value, element) { - // Handle single and multiple checkboxes: - if(element.type.toLowerCase() === "checkbox" || element.type.toLowerCase() === "radio") { - var allCheckboxesOfThisName = element.form.querySelectorAll("input[name='"+element.name+"']"); - for (var i=0; i