Upgrade to 7.5.0-beta2

This commit is contained in:
Sebastiaan Janssen
2016-07-19 17:00:02 +02:00
parent 126de6dbe5
commit 868770b553
70 changed files with 11536 additions and 6988 deletions
+46 -46
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props')" />
<Import Project="..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -55,24 +55,24 @@
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="businesslogic, Version=1.0.5948.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\businesslogic.dll</HintPath>
<Reference Include="businesslogic, Version=1.0.6044.25388, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\businesslogic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency.1.8.4\lib\net45\ClientDependency.Core.dll</HintPath>
<Reference Include="ClientDependency.Core, Version=1.9.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency.1.9.0-beta4\lib\net45\ClientDependency.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="cms, Version=1.0.5948.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\cms.dll</HintPath>
<Reference Include="cms, Version=1.0.6044.25389, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\cms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="controls, Version=1.0.5948.18145, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\controls.dll</HintPath>
<Reference Include="controls, Version=1.0.6044.25390, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
@@ -83,8 +83,8 @@
<HintPath>..\packages\EasyHttp.1.6.29.0\lib\net40\EasyHttp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Examine, Version=0.1.68.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.68.0\lib\Examine.dll</HintPath>
<Reference Include="Examine, Version=0.1.69.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Examine.0.1.69.0-beta\lib\Examine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.9.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
@@ -95,20 +95,20 @@
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor, Version=2.3.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.3.3.0\lib\net45\ImageProcessor.dll</HintPath>
<Reference Include="ImageProcessor, Version=2.4.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.2.4.3.0\lib\net45\ImageProcessor.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ImageProcessor.Web, Version=4.5.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.5.3.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Reference Include="ImageProcessor.Web, Version=4.6.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ImageProcessor.Web.4.6.3.0\lib\net45\ImageProcessor.Web.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="InfoCaster.Umbraco.UrlTracker, Version=3.11.5900.30099, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UrlTracker.3.11\lib\InfoCaster.Umbraco.UrlTracker.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.5948.18141, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\interfaces.dll</HintPath>
<Reference Include="interfaces, Version=1.0.6044.25385, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\interfaces.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="JsonFx, Version=2.0.1209.2802, Culture=neutral, PublicKeyToken=315052dd637f8a52, processorArchitecture=MSIL">
@@ -116,7 +116,7 @@
<HintPath>..\packages\JsonFx.2.0.1209.2802\lib\net40\JsonFx.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=1.2.11.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\log4net.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\log4net.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Lucene.Net, Version=2.9.4.1, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
@@ -128,7 +128,7 @@
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.AspNet.Identity.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -200,8 +200,8 @@
<HintPath>..\packages\semver.1.1.2\lib\net451\Semver.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="SQLCE4Umbraco, Version=1.0.5948.18145, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\SQLCE4Umbraco.dll</HintPath>
<Reference Include="SQLCE4Umbraco, Version=1.0.6044.25389, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\SQLCE4Umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.1.36.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
@@ -210,11 +210,11 @@
</Reference>
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.SqlServerCe, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\System.Data.SqlServerCe.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\System.Data.SqlServerCe.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http" />
@@ -282,43 +282,43 @@
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Xml.Linq" />
<Reference Include="TidyNet, Version=1.0.0.0, Culture=neutral">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\TidyNet.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\TidyNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.5948.18146, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.dll</HintPath>
<Reference Include="umbraco, Version=1.0.6044.25391, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Core, Version=1.0.5948.18141, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\Umbraco.Core.dll</HintPath>
<Reference Include="Umbraco.Core, Version=1.0.6044.25385, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\Umbraco.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.DataLayer, Version=1.0.5948.18143, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.DataLayer.dll</HintPath>
<Reference Include="umbraco.DataLayer, Version=1.0.6044.25388, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\umbraco.DataLayer.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.editorControls, Version=1.0.5948.18148, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.editorControls.dll</HintPath>
<Reference Include="umbraco.editorControls, Version=1.0.6044.25393, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\umbraco.editorControls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.MacroEngines, Version=1.0.5948.18149, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.MacroEngines.dll</HintPath>
<Reference Include="umbraco.MacroEngines, Version=1.0.6044.25394, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\umbraco.MacroEngines.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.ModelsBuilder, Version=3.0.2.93, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.3.0.2\lib\Umbraco.ModelsBuilder.dll</HintPath>
<Reference Include="Umbraco.ModelsBuilder, Version=3.0.3.94, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.3.0.3\lib\Umbraco.ModelsBuilder.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.providers, Version=1.0.5948.18146, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.providers.dll</HintPath>
<Reference Include="umbraco.providers, Version=1.0.6044.25390, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\umbraco.providers.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Web.UI, Version=1.0.5948.18150, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\Umbraco.Web.UI.dll</HintPath>
<Reference Include="Umbraco.Web.UI, Version=1.0.6044.25394, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\Umbraco.Web.UI.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UmbracoExamine, Version=0.7.0.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\UmbracoExamine.dll</HintPath>
<Reference Include="UmbracoExamine, Version=0.7.0.25389, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.5.0-beta2\lib\UmbracoExamine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
@@ -664,6 +664,7 @@
<Content Include="scripts\forum\select2\select2-new.js" />
<Content Include="scripts\forum\tags.js" />
<Content Include="config\IISRewriteMaps.config" />
<Content Include="masterpages\ReleaseCompare.master" />
<Content Include="App_Plugins\ModelsBuilder\package.manifest" />
<Content Include="config\tinyMceConfig.config" />
<Content Include="config\scripting.config" />
@@ -672,7 +673,6 @@
<Content Include="config\feedProxy.config" />
<Content Include="config\EmbeddedMedia.config" />
<Content Include="config\BaseRestExtensions.config" />
<Content Include="masterpages\ReleaseCompare.master" />
<None Include="Properties\PublishProfiles\Local.pubxml" />
<None Include="scripts\jquery-1.4.1-vsdoc.js" />
<Content Include="scripts\jquery-1.4.1.js" />
@@ -4472,10 +4472,10 @@
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.4.3\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.4.3\build\UmbracoCms.targets'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.props'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.targets'))" />
</Target>
<Import Project="..\packages\UmbracoCms.7.4.3\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.4.3\build\UmbracoCms.targets')" />
<Import Project="..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.5.0-beta2\build\UmbracoCms.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="AfterBuild">
@@ -5,7 +5,9 @@
{
string markup = Model.editor.config.markup.ToString();
markup = markup.Replace("#value#", Model.value.ToString());
var UmbracoHelper = new UmbracoHelper(UmbracoContext.Current);
markup = markup.Replace("#value#", UmbracoHelper.ReplaceLineBreaksForHtml(Model.value.ToString()));
markup = markup.Replace("#style#", Model.editor.config.style.ToString());
<text>
+16 -21
View File
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
@@ -8,7 +7,16 @@
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
@@ -22,16 +30,12 @@
<add namespace="Umbraco.Web.Mvc" />
<add namespace="umbraco" />
<add namespace="Examine" />
<add namespace="Umbraco.Web.PublishedContentModels" />
<add namespace="Umbraco.Web.PublishedContentModels" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
</system.web.webPages.razor><appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
</appSettings><system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
</httpHandlers>
@@ -43,25 +47,16 @@
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
--><pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
</system.web><system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler" />
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
</system.webServer></configuration>
+12 -8
View File
@@ -19,18 +19,19 @@ NOTES:
-->
<fileRegistration defaultProvider="PlaceHolderProvider">
<providers>
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core" />
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core" />
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core" />
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core" javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder" />
<add name="PageHeaderProvider" type="ClientDependency.Core.FileRegistration.Providers.PageHeaderProvider, ClientDependency.Core"/>
<add name="LazyLoadProvider" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadProvider, ClientDependency.Core"/>
<add name="LoaderControlProvider" type="ClientDependency.Core.FileRegistration.Providers.LoaderControlProvider, ClientDependency.Core"/>
<add name="PlaceHolderProvider" type="ClientDependency.Core.FileRegistration.Providers.PlaceHolderProvider, ClientDependency.Core"
javascriptPlaceHolderId="JavaScriptPlaceHolder" cssPlaceHolderId="CssPlaceHolder"/>
</providers>
</fileRegistration>
<!-- This section is used for MVC only -->
<mvc defaultRenderer="StandardRenderer">
<renderers>
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core" />
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core" />
<add name="StandardRenderer" type="ClientDependency.Core.FileRegistration.Providers.StandardRenderer, ClientDependency.Core"/>
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core"/>
</renderers>
</mvc>
@@ -44,12 +45,15 @@ NOTES:
-->
<compositeFiles defaultProvider="defaultFileProcessingProvider" compositeFileHandlerPath="~/DependencyHandler.axd">
<fileProcessingProviders>
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core" enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456" urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}" />
<add name="CompositeFileProcessor" type="ClientDependency.Core.CompositeFiles.Providers.CompositeFileProcessingProvider, ClientDependency.Core"
enableCssMinify="true" enableJsMinify="true" persistFiles="true" compositeFilePath="~/App_Data/TEMP/ClientDependency" bundleDomains="localhost:123456"
urlType="Base64QueryStrings" pathUrlFormat="{dependencyId}/{version}/{type}"/>
</fileProcessingProviders>
<!-- A file map provider stores references to dependency files by an id to be used in the handler URL when using the MappedId Url type -->
<fileMapProviders>
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core" mapPath="~/App_Data/TEMP/ClientDependency" />
<add name="XmlFileMap" type="ClientDependency.Core.CompositeFiles.Providers.XmlFileMapper, ClientDependency.Core"
mapPath="~/App_Data/TEMP/ClientDependency"/>
</fileMapProviders>
</compositeFiles>
+7 -7
View File
@@ -2,14 +2,14 @@
<packages>
<package id="AspNetMvc" version="3.0.20105.1" targetFramework="net4" />
<package id="AutoMapper" version="3.0.0" targetFramework="net451" />
<package id="ClientDependency" version="1.8.4" targetFramework="net451" />
<package id="ClientDependency" version="1.9.0-beta4" targetFramework="net451" />
<package id="ClientDependency-Mvc" version="1.8.0.0" targetFramework="net451" />
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net451" />
<package id="EasyHttp" version="1.6.29.0" targetFramework="net451" />
<package id="Examine" version="0.1.68.0" targetFramework="net451" />
<package id="Examine" version="0.1.69.0-beta" targetFramework="net451" />
<package id="HtmlAgilityPack" version="1.4.9" targetFramework="net451" />
<package id="ImageProcessor" version="2.3.3.0" targetFramework="net451" />
<package id="ImageProcessor.Web" version="4.5.3.0" targetFramework="net451" />
<package id="ImageProcessor" version="2.4.3.0" targetFramework="net451" />
<package id="ImageProcessor.Web" version="4.6.3.0" targetFramework="net451" />
<package id="jQuery" version="1.4.1" targetFramework="net451" />
<package id="jQuery.Validation" version="1.8" targetFramework="net451" />
<package id="jQuery.Validation.Unobtrusive" version="2.0.20710.0" targetFramework="net451" />
@@ -51,9 +51,9 @@
<package id="SharpZipLib" version="0.86.0" targetFramework="net451" />
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net451" />
<package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net451" />
<package id="Umbraco.ModelsBuilder" version="3.0.2" targetFramework="net451" />
<package id="UmbracoCms" version="7.4.3" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.4.3" targetFramework="net451" />
<package id="Umbraco.ModelsBuilder" version="3.0.3" targetFramework="net451" />
<package id="UmbracoCms" version="7.5.0-beta2" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.5.0-beta2" targetFramework="net451" />
<package id="UrlRewritingNet" version="2.0.7" targetFramework="net451" />
<package id="UrlTracker" version="3.11" targetFramework="net451" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net451" />
@@ -64,7 +64,8 @@
<script type="text/javascript">
document.angularReady = function (app) {
@Html.AngularExternalLoginInfoValuesScript((IEnumerable<string>)ViewBag.ExternalSignInError)
@Html.AngularValueExternalLoginInfoScript((IEnumerable<string>)ViewBag.ExternalSignInError)
@Html.AngularValueResetPasswordCodeInfoScript(ViewData["PasswordResetCode"])
}
</script>
+2 -2
View File
@@ -72,8 +72,8 @@
<script type="text/javascript">
document.angularReady = function(app) {
@Html.AngularExternalLoginInfoValuesScript((IEnumerable<string>)ViewBag.ExternalSignInError)
@Html.AngularValueExternalLoginInfoScript((IEnumerable<string>)ViewBag.ExternalSignInError)
@Html.AngularValueResetPasswordCodeInfoScript(ViewData["PasswordResetCode"])
}
</script>
@@ -4,10 +4,11 @@
<div class="form-search">
<i class="icon-search"></i>
<input type="text"
style="width: 100%"
style="width: 100%"
ng-model="searchTerm"
class="umb-search-field search-query input-block-level"
placeholder="Filter...">
placeholder="Filter..."
no-dirty-check>
</div>
</div>
</div>
@@ -1,55 +1,135 @@
<div ng-controller="Umbraco.Dialogs.LoginController">
<div id="login" class="umb-modalcolumn" ng-class="{'show-validation': loginForm.$invalid}" ng-cloak konami-code="activateKonamiMode()">
<div id="login" class="umb-modalcolumn umb-dialog" ng-class="{'show-validation': loginForm.$invalid}" ng-cloak konami-code="activateKonamiMode()">
<div class="form">
<h1>{{greeting}}</h1>
<p>
<span ng-show="dialogData.isTimedOut"><localize key="login_timeout">Log in below</localize>.</span>
<localize key="login_instruction">Log in below</localize>
</p>
<div class="external-logins" ng-if="externalLoginProviders.length > 0">
<div class="alert alert-error" ng-repeat="error in externalLoginInfo.errors">
<span>{{error}}</span>
<div ng-show="view == 'login'">
<p>
<span ng-show="dialogData.isTimedOut"><localize key="login_timeout">Log in below</localize>.</span>
<localize key="login_instruction">Log in below</localize>
</p>
<div class="external-logins" ng-if="externalLoginProviders.length > 0">
<div class="text-error" ng-repeat="error in externalLoginInfo.errors">
<span>{{error}}</span>
</div>
<form method="POST" name="externalLoginForm" action="{{externalLoginFormAction}}">
<div ng-repeat="login in externalLoginProviders">
<button type="submit" class="btn btn-block btn-social"
ng-class="login.properties.SocialStyle"
id="{{login.authType}}" name="provider" value="{{login.authType}}"
title="Log in using your {{login.caption}} account">
<i class="fa" ng-class="login.properties.SocialIcon"></i>
Sign in with {{login.caption}}
</button>
</div>
</form>
<div id="hrOr">
<hr />
<div>Or</div>
</div>
</div>
<form method="POST" name="externalLoginForm" action="{{externalLoginFormAction}}">
<form method="POST" name="loginForm" ng-submit="loginSubmit(login, password)">
<div class="control-group" ng-class="{error: loginForm.username.$invalid}">
<input type="text" ng-model="login" name="username" class="input-xlarge" localize="placeholder" placeholder="@placeholders_username" />
</div>
<div ng-repeat="login in externalLoginProviders">
<div class="control-group" ng-class="{error: loginForm.password.$invalid}">
<input type="password" ng-model="password" name="password" class="input-xlarge" localize="placeholder" placeholder="@placeholders_password" autocomplete="off" />
</div>
<div class="control-group" ng-show="loginForm.$invalid">
<div class="text-error">{{errorMsg}}</div>
</div>
<button type="submit" class="btn btn-block btn-social"
ng-class="login.properties.SocialStyle"
id="{{login.authType}}" name="provider" value="{{login.authType}}"
title="Log in using your {{login.caption}} account">
<i class="fa" ng-class="login.properties.SocialIcon"></i>
Sign in with {{login.caption}}
</button>
<button type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_login">Login</localize></button>
<div class="switch-view" ng-show="allowPasswordReset">
<a class="muted" href="#" prevent-default ng-click="showRequestPasswordReset()"><localize key="login_forgottenPassword">Forgotten password?</localize></a>
</div>
</form>
<div id="hrOr">
<hr/><div>Or</div>
</div>
</div>
<form method="POST" name="loginForm" ng-submit="loginSubmit(login, password)">
<div class="control-group" ng-class="{error: loginForm.username.$invalid}">
<input type="text" autofocus ng-model="login" name="username" class="input-xlarge" localize="placeholder" placeholder="@placeholders_username" />
</div>
<div ng-show="view == 'request-password-reset'">
<p>
<localize key="login_forgottenPasswordInstruction">An email will be sent to the address specified with a link to reset your password</localize>
</p>
<div class="control-group" ng-class="{error: loginForm.password.$invalid}">
<input type="password" ng-model="password" name="password" class="input-xlarge" localize="placeholder" placeholder="@placeholders_password" autocomplete="off" />
</div>
<form method="POST" name="requestPasswordResetForm" ng-submit="requestPasswordResetSubmit(email)">
<div class="control-group" ng-class="{error: requestPasswordResetForm.email.$invalid}">
<input type="text" ng-model="email" name="email" class="input-xlarge" localize="placeholder" placeholder="@placeholders_email" />
</div>
<div class="control-group" ng-show="requestPasswordResetForm.$invalid">
<div class="text-error">{{errorMsg}}</div>
</div>
<div class="control-group" ng-show="showEmailResetConfirmation">
<div class="text-info">
<localize key="login_requestPasswordResetConfirmation">An email with password reset instructions will be sent to the specified address if it matched our records</localize>
</div>
</div>
<button type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_login">Login</localize></button>
<button type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
<div class="control-group" ng-show="loginForm.$invalid">
<div class="alert alert-error">{{errorMsg}}</div>
<div class="switch-view">
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
</div>
</form>
</div>
<div ng-show="view == 'set-password'">
<p ng-hide="resetComplete">
<localize key="login_setPasswordInstruction">Please provide a new password.</localize>
</p>
<form method="POST" name="setPasswordForm" ng-submit="setPasswordSubmit(password, confirmPassword)">
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.password.$invalid}">
<input type="password" ng-model="password" name="password" class="input-xlarge" localize="placeholder" placeholder="@placeholders_password" />
</div>
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.confirmPassword.$invalid}">
<input type="password" ng-model="confirmPassword" name="confirmPassword" class="input-xlarge" localize="placeholder" placeholder="@placeholders_confirmPassword" />
</div>
<div ng-hide="resetComplete" class="control-group" ng-show="setPasswordForm.$invalid">
<div class="text-error">{{errorMsg}}</div>
</div>
<div class="control-group" ng-show="showSetPasswordConfirmation">
<div class="text-info">
<localize key="login_setPasswordConfirmation">Your new password has been set and you may now use it to log in.</localize>
</div>
</div>
<button ng-hide="resetComplete" type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
<div class="switch-view">
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
</div>
</form>
</div>
<div ng-show="view == 'password-reset-code-expired'">
<div class="text-error" ng-repeat="error in resetPasswordCodeInfo.errors">
<span>{{error}}</span>
</div>
</form>
<div class="switch-view">
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
</div>
</div>
</div>
</div>
</div>
@@ -1,7 +1,7 @@
<div ng-controller="Umbraco.Notifications.ConfirmRouteChangeController">
<h4>You have unsaved changes</h4>
<p>Are you sure you want to navigate away from this page? - you have unsaved changes</p>
<h4><localize key="prompt_unsavedChanges">You have unsaved changes</localize></h4>
<p><localize key="prompt_unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</localize></p>
<button class="btn btn-warning" ng-click="discard(notification)">Discard changes</button>
<button class="btn" ng-click="stay(notification)" umb-auto-focus>Stay</button>
</div>
<button class="btn btn-warning" ng-click="discard(notification)"><localize key="prompt_discardChanges">Discard changes</localize></button>
<button class="btn" ng-click="stay(notification)" umb-auto-focus><localize key="prompt_stay">Stay</localize></button>
</div>
@@ -9,7 +9,8 @@
class="umb-search-field search-query input-block-level"
localize="placeholder"
placeholder="@placeholders_filter"
umb-auto-focus>
umb-auto-focus
no-dirty-check>
</div>
</div>
@@ -1,9 +1,13 @@
<div>
<div id="applications" ng-class="{faded:stickyNavigation}">
<div id="applications" ng-class="{faded:stickyNavigation}">
<ul class="sections">
<li class="avatar">
<a href="#" ng-click="avatarClick()" hotkey="ctrl+shift+u" title="{{user.name}}" prevent-default>
<img id="avatar-img" ng-src="{{avatar[0].value}}" ng-srcset="{{avatar[1].value}} 2x, {{avatar[2].value}} 3x" />
<umb-avatar
size="xs"
img-src="{{avatar[0].value}}"
img-srcset="{{avatar[1].value}} 2x, {{avatar[2].value}} 3x">
</umb-avatar>
</a>
</li>
<li ng-repeat="section in sections | limitTo: maxSections" ng-class="{current: section.alias == currentSection}">
@@ -11,11 +15,11 @@
ng-dblclick="sectionDblClick(section)"
ng-click="sectionClick($event, section)"
prevent-default>
<section-icon icon="{{section.cssclass}}"></section-icon>
<section-icon icon="{{section.cssclass}}"></section-icon>
<span>{{section.name}}</span>
</a>
</li>
<li class="expand" ng-class="{ 'open': showTray === true }" ng-show="needTray">
<a href ng-click="trayClick()">
<i class="icon icon-arrow-right"></i>
@@ -2,9 +2,9 @@
<div class="umb-panel-header-content-wrapper">
<div class="umb-panel-header-content" ng-class="{'-top-position': tabs || !icon }">
<div class="umb-panel-header-content">
<div class="umb-panel-header-left-side">
<div class="umb-panel-header-left-side" ng-class="{'-top-position': tabs || !icon }">
<div class="umb-panel-header-icon" ng-if="!hideIcon" ng-click="openIconPicker()" ng-class="{'-placeholder': $parent.icon==='' || $parent.icon===null}">
<i class="icon {{$parent.icon}}" ng-if="$parent.icon!=='' && $parent.icon!==null"></i>
@@ -66,6 +66,7 @@
label="{{model.submitButtonLabel}}"
ng-if="model.submit && model.hideSubmitButton !== true"
type="button"
disabled="model.disableSubmitButton"
action="submitForm(model)">
</umb-button>
</div>
@@ -0,0 +1 @@
<img class="umb-avatar -{{size}}" ng-src="{{imgSrc}}" ng-srcset="{{imgSrcset}}" />
@@ -49,7 +49,7 @@
<!-- TAB ACTIVE OR INACTIVE STATE -->
<div class="umb-group-builder__group" ng-if="tab.tabState !== 'init'" ng-class="{'-active':tab.tabState=='active', '-inherited': tab.inherited, 'umb-group-builder__group-handle -sortable': sortingMode && !tab.inherited}" ng-click="activateGroup(tab)">
<div class="umb-group-builder__group-remove" ng-if="!sortingMode && tab.properties.length <= 1 && model.groups.length > 1">
<div class="umb-group-builder__group-remove" ng-if="!sortingMode && tab.properties.length <= 1">
<i class="icon-trash" ng-click="togglePrompt(tab)"></i>
<umb-confirm-action
ng-if="tab.deletePrompt"
@@ -0,0 +1,19 @@
<div class="umb-lightbox">
<div class="umb-lightbox__backdrop" ng-click="close()" hotkey="esc"></div>
<div class="umb-lightbox__images">
<div class="umb-lightbox__image shadow-depth-2" ng-repeat="item in items" ng-show="$index === activeItemIndex">
<img ng-src="{{ item.source }}" />
</div>
</div>
<div class="umb-lightbox__control -prev" ng-if="activeItemIndex > 0" ng-click="prev()" hotkey="left">
<i class="icon-previous umb-lightbox__control-icon"></i>
</div>
<div class="umb-lightbox__control -next" ng-if="activeItemIndex + 1 < items.length" ng-click="next()" hotkey="right">
<i class="icon-next umb-lightbox__control-icon"></i>
</div>
</div>
@@ -0,0 +1,3 @@
<div class="umb-progress-bar">
<span class="umb-progress-bar__progress" style="width: {{percentage}}%"></span>
</div>
@@ -1,38 +1,30 @@
<div>
<div class="umb-table" ng-if="items">
<!-- Listviews head section -->
<div class="umb-table-head">
<div class="umb-table-row">
<div class="umb-table-cell">
<input class="umb-table__input" type="checkbox"
ng-if="allowSelectAll"
ng-click="selectAll($event)"
ng-checked="isSelectedAll()">
</div>
<div class="umb-table-cell umb-table__name">
<a class="umb-table-head__link sortable" href="#" ng-click="sort('Name', true)" prevent-default>
<a class="umb-table-head__link sortable" href="#" ng-click="sort('Name', true, true)" prevent-default>
<localize key="general_name">Name</localize>
<i class="umb-table-head__icon icon" ng-class="{'icon-navigation-up': isSortDirection('Name', 'asc'), 'icon-navigation-down': isSortDirection('Name', 'desc')}"></i>
</a>
</div>
<div class="umb-table-cell" ng-repeat="column in itemProperties">
<a class="umb-table-head__link" title="Sort by {{ column.header }}" href="#"
ng-click="sort(column.alias, column.allowSorting)"
ng-click="sort(column.alias, column.allowSorting, column.isSystem)"
ng-class="{'sortable':column.allowSorting}" prevent-default>
<span ng-bind="column.header"></span>
<i class="umb-table-head__icon icon" ng-class="{'icon-navigation-up': isSortDirection(column.alias, 'asc'), 'icon-navigation-down': isSortDirection(column.alias, 'desc')}"></i>
</a>
</div>
</div>
</div>
<!-- Listview body section -->
<div class="umb-table-body">
<div class="umb-table-row"
@@ -44,33 +36,25 @@
}"
ng-click="selectItem(item, $index, $event)">
<div class="umb-table-cell">
<i class="umb-table-body__icon umb-table-body__fileicon {{item.icon}}" ng-class="getIcon(item)"></i>
<i class="umb-table-body__icon umb-table-body__checkicon icon-check"></i>
</div>
<div class="umb-table-cell umb-table__name">
<a title="{{ item.name }}" class="umb-table-body__link" href=""
ng-click="clickItem(item, $event)"
ng-bind="item.name">
</a>
</div>
<div class="umb-table-cell" ng-repeat="column in itemProperties">
<span title="{{column.header}}: {{item[column.alias]}}">{{item[column.alias]}}</span>
</div>
</div>
</div>
</div>
<!-- If list is empty, then display -->
<umb-empty-state
ng-if="!items"
position="center">
<umb-empty-state ng-if="!items"
position="center">
<localize key="content_listViewNoItems">There are no items show in the list.</localize>
</umb-empty-state>
</div>
@@ -1,8 +1,17 @@
<div class="umb-dialog" ng-controller="Umbraco.Editors.Content.EmptyRecycleBinController">
<div class="umb-dialog-body" auto-scale="90">
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
<div class="umb-dialog-body">
<umb-pane>
<div class="umb-loader-wrapper" ng-show="busy">
<div class="umb-loader"></div>
</div>
<p class="umb-abstract">
<localize key="defaultdialogs_recycleBinWarning">When items are deleted from the recycle bin, they will be gone forever</localize>.
<localize key="general_areyousure">Are you sure</localize>?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
</umb-pane>
</div>
</div>
@@ -0,0 +1,116 @@
<div ng-controller="Umbraco.Dashboard.HealthCheckController as vm">
<h3>Health Check</h3>
<p>The health checker evaluates various areas of your site for best practice settings, configuration, potential problems, etc. You can easily fix problems by pressing a button. <br/>
You can add your own health checks, have a look at <a href="https://our.umbraco.org/documentation/Extending/Healthcheck/" class="btn-link -underline">the documentation for more information</a> about custom health checks.</p>
<button type="button" class="umb-era-button" ng-click="vm.triggerChecks()" ng-disabled="vm.checksRunning" ng-class="{'-inactive': vm.checksRunning}" ng-hide="vm.viewState === 'details'">Run Checks</button>
<div class="umb-healthcheck" ng-if="vm.viewState === 'list'">
<div class="umb-air" ng-repeat="group in vm.groups" ng-click="vm.openGroup(group);">
<div class="umb-healthcheck-group">
<div class="umb-healthcheck-title">{{group.name}}</div>
<div class="umb-healthcheck-group__load-container" ng-if="group.loading">
<umb-load-indicator></umb-load-indicator>
</div>
<div class="umb-healthcheck-messages" ng-if="!group.loading">
<div class="umb-healthcheck-message" ng-if="group.totalSuccess > 0">
<i class="icon-check color-green"></i>
{{ group.totalSuccess }}
</div>
<div class="umb-healthcheck-message" ng-if="group.totalWarning > 0">
<i class="icon-alert color-yellow"></i>
{{ group.totalWarning }}
</div>
<div class="umb-healthcheck-message" ng-if="group.totalError > 0">
<i class="icon-delete color-red"></i>
{{ group.totalError }}
</div>
<div class="umb-healthcheck-message" ng-if="group.totalInfo > 0">
<i class="umb-healthcheck-status-icon icon-info"></i>
{{ group.totalInfo }}
</div>
</div>
</div>
</div>
</div>
<div ng-if="vm.viewState === 'details'">
<umb-editor-sub-header>
<umb-editor-sub-header-content-left>
<a class="umb-healthcheck-back-link" href="" ng-click="vm.setViewState('list');">&larr; Take me back</a>
</umb-editor-sub-header-content-left>
</umb-editor-sub-header>
<div class="umb-healthcheck-group__details">
<div class="umb-healthcheck-group__details-group-title">
<div class="umb-healthcheck-group__details-group-name">{{ vm.selectedGroup.name }}</div>
<button class="umb-era-button -white -text-black" type="button" ng-click="vm.checkAllInGroup(vm.selectedGroup, vm.selectedGroup.checks);">Check all</button>
</div>
<div class="umb-healthcheck-group__details-checks">
<div class="umb-healthcheck-group__details-check" ng-repeat="check in vm.selectedGroup.checks">
<div class="umb-healthcheck-group__details-check-title">
<div class="umb-healthcheck-group__details-check-name">{{ check.name }}</div>
<div class="umb-healthcheck-group__details-check-description">{{ check.description }}</div>
</div>
<div class="umb-healthcheck-group__details-status" ng-repeat="status in check.status">
<div class="umb-healthcheck-group__details-status-icon-container">
<i class="umb-healthcheck-status-icon icon-check color-green" ng-if="status.resultType == 0"></i>
<i class="umb-healthcheck-status-icon icon-alert icon-alert color-yellow" ng-if="status.resultType == 1"></i>
<i class="umb-healthcheck-status-icon icon-delete icon-delete color-red" ng-if="status.resultType == 2"></i>
<i class="umb-healthcheck-status-icon icon-info icon-info" ng-if="status.resultType == 3"></i>
</div>
<div class="umb-healthcheck-group__details-status-content">
<div class="umb-healthcheck-group__details-status-text">
<div ng-bind-html="status.message"></div>
<div ng-if="status.description" ng-bind-html="status.description"></div>
</div>
<div class="umb-healthcheck-group__details-status-actions">
<div class="umb-healthcheck-group__details-status-action" ng-repeat="action in status.actions">
<span ng-show="action.valueRequired">
Set new value:
<input type="text" ng-model="action.providedValue" required/>
</span>
<button type="button" class="umb-era-button" ng-click="vm.executeAction(check, $index, action);">{{action.name}}</button>
<div class="umb-healthcheck-group__details-status-action-description" ng-if="action.description" ng-bind-html="action.description"></div>
</div>
</div>
</div>
<div ng-show="check.loading">
<div class="umb-healthcheck-group__details-status-overlay"></div>
<umb-load-indicator></umb-load-indicator>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -10,7 +10,7 @@
<i class="large icon-autofill"></i>
<span class="menu-label">
<localize key="general_new">New</localize>&nbsp;Data type
<localize key="create_newDataType">New data type</localize>
</span>
</a>
@@ -21,7 +21,7 @@
<i class="large icon-folder"></i>
<span class="menu-label">
Folder
<localize key="create_newFolder">New folder</localize>
</span>
</a>
</li>
@@ -9,20 +9,16 @@
<div class="control-group">
<legend>What type of database do you use?</legend>
<label class="control-label" for="dbType">Database type</label>
<div class="controls">
<select name="dbType" ng-options="db.id as db.name for db in dbs" ng-model="installer.current.model.dbType" required>
</select>
</div>
<div class="controls">
<select id="dbType" name="dbType" ng-options="db.id as db.name for db in dbs" ng-model="installer.current.model.dbType" required></select>
</div>
</div>
<div class="controls" ng-if="installer.current.model.dbType == 0">
<p>Great!, no need to configure anything then, you simply click the <strong>continue</strong> button below to continue to the next step</p>
<p>Great!, no need to configure anything then, you simply click the <strong>continue</strong> button below to continue to the next step</p>
</div>
<div ng-if="installer.current.model.dbType < 0">
<legend>What is the exact connectionstring we should use?</legend>
<div class="control-group">
<label class="control-label" for="server">Connection string</label>
@@ -42,7 +38,7 @@
<div class="control-group">
<label class="control-label" for="server">Server</label>
<div class="controls">
<input type="text" name="server" placeholder="127.0.0.1\SQLEXPRESS" required ng-model="installer.current.model.server" />
<input type="text" id="server" name="server" placeholder="127.0.0.1\SQLEXPRESS" required ng-model="installer.current.model.server" />
<small class="inline-help">Enter server domain or IP</small>
</div>
</div>
@@ -52,7 +48,7 @@
<div class="control-group">
<label class="control-label" for="databaseName">Database name</label>
<div class="controls">
<input type="text" name="installer.current.model.databaseName"
<input type="text" id="databaseName" name="installer.current.model.databaseName"
placeholder="umbraco-cms"
required ng-model="installer.current.model.databaseName" />
<small class="inline-help">Enter the name of the database</small>
@@ -61,49 +57,48 @@
</div>
</div>
<div class="row">
<legend>What credentials are used to access the database?</legend>
<div class="span6">
<div class="control-group" ng-if="!installer.current.model.integratedAuth">
<label class="control-label" for="login">Login</label>
<div class="controls">
<input type="text" name="login"
placeholder="databaseuser"
required ng-model="installer.current.model.login" />
<small class="inline-help">Enter the database user name</small>
</div>
</div>
</div>
<div class="span6">
<div class="control-group" ng-if="!installer.current.model.integratedAuth">
<label class="control-label" for="password">Password</label>
<div class="controls">
<input type="password" name="password"
placeholder="umbraco-cms"
required ng-model="installer.current.model.password" />
<small class="inline-help">Enter the database password</small>
</div>
</div>
</div>
<div class="span12 control-group" ng-if="installer.current.model.dbType == 1">
<legend>What credentials are used to access the database?</legend>
<div class="span6">
<div class="control-group" ng-if="!installer.current.model.integratedAuth">
<label class="control-label" for="login">Login</label>
<div class="controls">
<label class="checkbox" for="integratedAuth">
<input type="checkbox" name="integratedAuth"
placeholder="umbraco-cms"
ng-model="installer.current.model.integratedAuth" /> Use integrated authentication</label>
<input type="text" id="login" name="login"
placeholder="databaseuser"
required ng-model="installer.current.model.login" />
<small class="inline-help">Enter the database user name</small>
</div>
</div>
</div>
<div class="span6">
<div class="control-group" ng-if="!installer.current.model.integratedAuth">
<label class="control-label" for="password">Password</label>
<div class="controls">
<input type="password" id="password" name="password"
placeholder="umbraco-cms"
required ng-model="installer.current.model.password" />
<small class="inline-help">Enter the database password</small>
</div>
</div>
</div>
<div class="span12 control-group" ng-if="installer.current.model.dbType == 1">
<div class="controls">
<label class="checkbox">
<input type="checkbox" id="integratedAuth" name="integratedAuth"
placeholder="umbraco-cms"
ng-model="installer.current.model.integratedAuth" /> Use integrated authentication</label>
</div>
</div>
</div>
</div>
<div class="row">
<div class="control-group" ng-class="{disabled:myForm.$invalid}">
<div class="control-group">
<div class="controls">
<input type="submit" ng-disabled="myForm.$invalid || checking"
value="Continue" class="btn btn-success" />
<input type="submit" ng-disabled="myForm.$invalid || checking" ng-class="{disabled:myForm.$invalid}"
value="Continue" class="btn btn-success" />
<button class="btn" ng-click="restart()">Go back</button>
@@ -3,10 +3,17 @@
<p>
Welcome to the Umbraco installer. You see this screen because your Umbraco installation needs a quick upgrade of its database and files, which will ensure your website is kept as fast, secure and up to date as possible.
</p>
<p>
To read a report of changes between your current version <strong>{{installer.current.model.currentVersion}}</strong> and this version your upgrading to <strong>{{installer.current.model.newVersion}}</strong>
</p>
<p>
<a ng-href="{{installer.current.model.reportUrl}}" target="_blank" class="btn">View Report</a>
</p>
<p>
Simply click <strong>continue</strong> below to be guided through the rest of the upgrade
</p>
<p>
<button class="btn btn-success" ng-click="install()">Continue</button>
</p>
@@ -10,14 +10,14 @@
<div class="pull-right">
<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input type="text" id="name" name="name" placeholder="Full name" required ng-model="installer.current.model.name" />
</div>
<div class="controls">
<input type="text" id="name" name="name" placeholder="Full name" required ng-model="installer.current.model.name" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">Email</label>
<div class="controls">
<div class="controls">
<input type="text" id="email" name="email" placeholder="you@example.com" required ng-model="installer.current.model.email" val-email />
<small class="inline-help">Your email will be used as your login</small>
</div>
@@ -46,17 +46,15 @@
<div class="control-group">
<div class="controls">
<label class="checkbox" for="subscribeToNewsLetter">
<label class="checkbox">
<input type="checkbox" id="subscribeToNewsLetter" name="subscribeToNewsLetter"
ng-model="installer.current.model.subscribeToNewsLetter" /> Keep me updated on Umbraco Versions, Security Bulletins and Community News</label>
ng-model="installer.current.model.subscribeToNewsLetter" /> Keep me updated on Umbraco Versions, Security Bulletins and Community News</label>
</div>
</div>
<div class="control-group" ng-class="{disabled:myForm.$invalid}">
<div class="controls">
<input type="submit" ng-disabled="myForm.$invalid" value="Install" class="btn btn-success" />
<input type="submit" ng-disabled="myForm.$invalid" value="Install" class="btn btn-success" />
<a href class="btn btn-neutral control-customize" ng-disabled="myForm.$invalid" ng-click="validateAndForward()">Customize</a>
</div>
</div>
@@ -1,8 +1,19 @@
<div class="umb-dialog" ng-controller="Umbraco.Editors.Media.EmptyRecycleBinController">
<div class="umb-dialog-body">
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
<umb-pane>
<div class="umb-loader-wrapper" ng-show="busy">
<div class="umb-loader"></div>
</div>
<p class="umb-abstract">
<localize key="defaultdialogs_recycleBinWarning">When items are deleted from the recycle bin, they will be gone forever</localize>.
<localize key="general_areyousure">Are you sure</localize>?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
</umb-pane>
</div>
</div>
@@ -0,0 +1,13 @@
<div class="umb-dialog umb-pane" ng-controller="Umbraco.Editors.Packages.DeleteController">
<div class="umb-dialog-body" auto-scale="90">
<p class="umb-abstract">
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
</p>
<umb-confirm on-confirm="performDelete" on-cancel="cancel">
</umb-confirm>
</div>
</div>
@@ -0,0 +1,28 @@
<div ng-controller="Umbraco.Editors.Packages.OverviewController as vm" class="clearfix">
<form name="packagesForm" ng-submit="save()" novalidate val-form-manager>
<umb-editor-view footer="false">
<umb-editor-header
name="vm.page.name"
name-locked="true"
hide-icon="true"
hide-description="true"
navigation="vm.page.navigation"
hide-alias="true">
</umb-editor-header>
<umb-editor-container>
<umb-editor-sub-views
sub-views="vm.page.navigation">
</umb-editor-sub-views>
</umb-editor-container>
</umb-editor-view>
</form>
</div>
@@ -0,0 +1,137 @@
<div ng-controller="Umbraco.Editors.Packages.InstallLocalController as vm">
<div class="umb-packages-view-wrapper" ng-if="vm.state === 'upload'">
<!-- Upload -->
<div class="flex items-center justify-center">
<form novalidate name="localPackageForm" class="flex flex-column justify-center items-center tc">
<!-- Drag and drop files area -->
<div ngf-drop
ng-hide="hideDropzone"
ng-model="filesHolder"
ngf-change="handleFiles($files, $event)"
class="umb-upload-local__dropzone"
ngf-drag-over-class="drag-over"
ngf-multiple="false"
ngf-allow-dir="false"
ngf-pattern="*.zip"
ngf-max-size="{{ maxFileSize }}"
ng-class="{'is-small': compact!=='false' || (done.length+queue.length) > 0 }">
<div class="content">
<!-- Drag and drop illustration -->
<i class="icon-box" draggable="false"></i>
<small class="faded" draggable="false"><strong>Drop to upload</strong></small>
<!-- Select files -->
<div class="umb-upload-local__select-file"
ngf-select
ng-model="filesHolder"
ngf-change="handleFiles($files, $event)"
ngf-multiple="true"
ngf-pattern="*.zip"
ngf-max-size="{{ maxFileSize }}">
- <localize key="media_orClickHereToUpload">or click here to choose files</localize>
</div>
<div class="umb-info-local-item text-error" ng-if="vm.zipFile.uploadStatus === 'error'">
{{vm.zipFile.serverErrorMessage}}
</div>
</div>
</div>
<h3><strong>Upload package</strong></h3>
<p class="faded">
Install a local package by selecting it from your machine. Only install packages from sources you know and trust.
</p>
</form>
</div>
</div>
<div ng-if="vm.state === 'packageDetails'">
<umb-editor-sub-header>
<umb-editor-sub-header-content-left>
<a class="umb-package-details__back-link" href="" ng-click="vm.state = 'upload'">&larr; Cancel and upload another package</a>
</umb-editor-sub-header-content-left>
</umb-editor-sub-header>
<div class="umb-packages-view-wrapper">
<!-- Package details -->
<div class="flex items-center justify-center">
<div class="umb-info-local-items">
<form novalidate name="localPackageForm" class="w-100">
<div class="umb-package-icon">
<i ng-if="!vm.localPackage.icon" class="icon-box"></i>
<img ng-if="vm.localPackage.icon" ng-src="{{vm.localPackage.icon}}" alt="" />
</div>
<div class="umb-package-info">
<h4 class="umb-info-local-item"><strong>{{ vm.localPackage.name }}</strong></h4>
<div class="umb-info-local-item">
<strong>Author</strong>
<a href="{{ vm.localPackage.authorLink }}" target="_blank">{{ vm.localPackage.author }}</a>
</div>
<div class="umb-info-local-item">
<strong>Version</strong>
{{ vm.localPackage.version }}
</div>
<div class="umb-info-local-item">
<strong>License</strong>
<a href="{{ vm.localPackage.licenseUrl }}" target="_blank">{{ vm.localPackage.license }}</a>
</div>
<div class="umb-info-local-item">
<strong>Read me</strong>
<br>
<small ng-bind-html-unsafe="vm.localPackage.readMe"></small>
</div>
<div class="umb-info-local-item mt4 flex items-center flex-column" ng-if="vm.installState.status == '' && vm.localPackage.isCompatible">
<label for="license-accepts" class="umb-package-installer-label">
<input type="checkbox" id="license-accepts" ng-model="vm.localPackage.packageLicenseAccept" required no-dirty-check>
<strong class="label-text">I accept <a href="{{ vm.localPackage.licenseUrl }}" target="_blank">terms of use</a></strong>
</label>
<button type="button"
ng-class="{'-inactive' : localPackageForm.$invalid}"
ng-disabled="localPackageForm.$invalid"
class="umb-era-button -blue flex-inline mt3"
ng-click="vm.installPackage()">
Install package
</button>
</div>
<div class="umb-info-local-item">
<umb-progress-bar
ng-if="vm.installState.status !== ''"
percentage="{{vm.installState.progress}}">
</umb-progress-bar>
</div>
<div class="umb-info-local-item text-error" ng-if="!vm.localPackage.isCompatible">
This package cannot be installed, it requires a minimum Umbraco version of {{vm.localPackage.umbracoVersion}}
</div>
<div class="umb-info-local-item text-info">
<p>{{vm.installState.status}}</p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,122 @@
<div ng-controller="Umbraco.Editors.Packages.InstalledController as vm">
<!-- Package list-->
<div class="umb-packages-view-wrapper" ng-if="vm.state == 'list'">
<div ng-if="vm.installedPackages.length > 0">
<div class="umb-packages-view-title">Installed packages</div>
<div class="umb-package-list">
<div class="umb-package-list__item" ng-repeat="installedPackage in vm.installedPackages">
<div class="umb-package-list__item-icon">
<i ng-if="!installedPackage.icon" class="icon-box"></i>
<img ng-if="installedPackage.icon" ng-src="{{installedPackage.icon}}" />
</div>
<div class="umb-package-list__item-content">
<div class="umb-package-list__item-name">{{ installedPackage.name }}</div>
<div class="umb-package-list__item-description">
{{ installedPackage.version }} | <a href="{{ installedPackage.url }}" target="_blank">{{ installedPackage.url }}</a>| {{ installedPackage.author }}
</div>
</div>
<div class="umb-package-list__item-actions">
<button type="button" class="umb-era-button" ng-click="vm.confirmUninstall(installedPackage)">Uninstall</button>
</div>
</div>
</div>
</div>
<umb-empty-state
ng-if="vm.installedPackages.length === 0"
position="center">
<h4><strong>You dont have any packages installed.</strong></h4>
<p class="faded">You dont have any packages installed. Either install a local package by selecting it from your machine, or browse through available packages using the "Package" icon in the top right of your screen."</p>
</umb-empty-state>
</div>
<!-- Package details -->
<div ng-if="vm.state === 'packageDetails'">
<umb-editor-sub-header>
<umb-editor-sub-header-content-left>
<a class="umb-package-details__back-link" href="" ng-click="vm.state = 'list'">&larr; Take me back</a>
</umb-editor-sub-header-content-left>
</umb-editor-sub-header>
<div class="flex items-center justify-center">
<div class="umb-info-local-items">
<form novalidate name="uninstallForm" class="w-100">
<div class="umb-package-icon">
<i ng-if="!vm.package.iconUrl" class="icon-box"></i>
<img ng-if="vm.package.iconUrl" ng-src="{{vm.package.iconUrl}}" alt="" />
</div>
<div class="umb-package-info">
<h4 class="umb-info-local-item"><strong>{{ vm.package.name }}</strong></h4>
<div class="umb-info-local-item">
<strong>Author</strong>
<a href="{{ vm.package.authorLink }}" target="_blank">{{ vm.package.author }}</a>
</div>
<div class="umb-info-local-item">
<strong>Version</strong>
{{ vm.package.version }}
</div>
<div class="umb-info-local-item">
<strong>License</strong>
<a href="{{ vm.package.licenseUrl }}" target="_blank">{{ vm.package.license }}</a>
</div>
<div class="umb-info-local-item">
<strong>Read me</strong>
<br>
<small> {{ vm.package.readme }} </small>
</div>
<div class="umb-info-local-item mt4 flex items-center flex-column" ng-if="vm.installState.status == ''">
<label for="confirm-uninstall" class="umb-package-installer-label">
<input type="checkbox" id="confirm-uninstall" ng-model="vm.package.confirmUninstall" required no-dirty-check>
<strong class="label-text">Confirm package uninstall</strong>
</label>
<button type="button"
ng-class="{'-inactive' : uninstallForm.$invalid}"
ng-disabled="uninstallForm.$invalid"
class="umb-era-button -blue flex-inline mt3"
ng-click="vm.uninstallPackage(vm.package)">
Uninstall package
</button>
</div>
<div class="umb-info-local-item">
<umb-progress-bar
ng-if="vm.installState.status !== ''"
percentage="{{vm.installState.progress}}">
</umb-progress-bar>
</div>
<div class="umb-info-local-item text-info">
<p>{{vm.installState.status}}</p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@@ -0,0 +1,350 @@
<div ng-controller="Umbraco.Editors.Packages.RepoController as vm" class="clearfix">
<umb-load-indicator ng-show="vm.loading"></umb-load-indicator>
<!-- LIST -->
<div class="umb-packages-view-wrapper" ng-if="vm.packageViewState === 'packageList'">
<div class="umb-packages-section">
<div class="umb-packages-search">
<input class="-full-width-input" type="text" name="query" placeholder="Search for packages" umb-auto-focus ng-model="vm.searchQuery" ng-change="vm.search()" no-dirty-check>
</div>
</div>
<div ng-show="vm.loading === false">
<div class="umb-packages-section" ng-if="vm.searchQuery == ''">
<div class="umb-packages-categories">
<a href=""
class="umb-packages-category"
ng-click="vm.selectCategory(category, vm.categories)"
ng-repeat="category in vm.categories"
ng-class="{'-active': category.active, '-first': $first, '-last': $last}">
<div>{{ category.name }}</div>
</a>
</div>
</div>
<div class="umb-packages-section" ng-if="vm.searchQuery == ''">
<h4><strong>Popular</strong></h4>
<div class="umb-packages clearfix">
<div class="umb-package" ng-repeat="package in vm.popular">
<a class="umb-package-link" href="" ng-click="vm.showPackageDetails(package)">
<div class="umb-package-icon">
<img ng-src="{{package.icon}}" alt="" />
</div>
<div class="umb-package-info">
<div class="umb-package-name">{{ package.name }}</div>
<div class="umb-package-description">{{ package.excerpt | limitTo: 40 }}<span ng-if="package.excerpt > (package.excerpt | limitTo: 40)">...</span></div>
<div class="umb-package-numbers">
<small class="umb-package-downloads">
<i class="icon-download-alt"></i> <strong>{{ package.downloads }}</strong>
</small>
<small class="umb-package-likes">
<i class="icon-hearts"></i> <strong>{{ package.likes }}</strong>
</small>
</div>
</div>
</a>
</div> <!-- end package -->
</div> <!-- end packages -->
</div>
<div class="umb-packages-section" ng-if="vm.packages.length > 0">
<h4 ng-if="vm.searchQuery === ''"><strong>New Releases</strong></h4>
<h4 ng-if="vm.searchQuery !== ''"><strong>Results for '{{ vm.searchQuery }}'</strong></h4>
<div class="umb-packages clearfix">
<div class="umb-package" ng-repeat="package in vm.packages">
<a class="umb-package-link" href="" ng-click="vm.showPackageDetails(package)">
<div class="umb-package-icon">
<img ng-src="{{ package.icon }}" alt="" />
</div>
<div class="umb-package-info">
<div class="umb-package-name">{{ package.name }}</div>
<div class="umb-package-description">{{ package.excerpt | limitTo: 40 }}<span ng-if="package.excerpt > (package.excerpt | limitTo: 40)">...</span></div>
<div class="umb-package-numbers">
<small class="umb-package-downloads">
<i class="icon-download-alt"></i> <strong>{{ package.downloads }}</strong>
</small>
<small class="umb-package-likes">
<i class="icon-hearts"></i> <strong>{{ package.likes }}</strong>
</small>
</div>
</div>
</a>
</div> <!-- end package -->
</div> <!-- end packages -->
</div>
<div class="umb-packages__pagination" ng-if="vm.pagination.totalPages > 1 && vm.loading === false">
<umb-pagination page-number="vm.pagination.pageNumber"
total-pages="vm.pagination.totalPages"
on-next="vm.nextPage"
on-prev="vm.prevPage"
on-go-to-page="vm.goToPage">
</umb-pagination>
</div>
<!-- Empty state -->
<umb-empty-state
ng-if="vm.packages.length === 0 && vm.loading === false && vm.searchQuery !== ''"
position="center">
<h4><strong>We couldn't find anything for '{{ vm.searchQuery }}'</strong></h4>
<p class="faded">Please try searching for another package or browse through the categories.</p>
</umb-empty-state>
</div>
</div>
<!-- DETAILS --->
<div ng-if="vm.packageViewState === 'packageDetails' && vm.loading === false">
<umb-editor-sub-header>
<umb-editor-sub-header-content-left>
<a class="umb-package-details__back-link" href="" ng-click="vm.setPackageViewState('packageList');">&larr; Take me back</a>
</umb-editor-sub-header-content-left>
</umb-editor-sub-header>
<div class="umb-packages-view-wrapper">
<div class="umb-package-details">
<div class="umb-package-details__main-content">
<div class="umb-packages-view-title">{{ vm.package.name }}</div>
<div class="umb-package-details__description" ng-bind-html-unsafe="vm.package.description"></div>
<div class="umb-gallery">
<div class="umb-gallery__thumbnails">
<a class="umb-gallery__thumbnail" ng-repeat="image in vm.package.images" ng-click="vm.openLightbox($index, vm.package.images)">
<img ng-src="{{ image.thumbnail }}" />
</a>
</div>
</div>
<umb-lightbox
ng-if="vm.lightbox.show"
items="vm.lightbox.items"
active-item-index="vm.lightbox.activeIndex"
on-close="vm.closeLightbox">
</umb-lightbox>
</div>
<div class="umb-package-details__sidebar">
<div class="umb-package-details__section">
<button class="umb-era-button -blue -full-width"
ng-if="vm.package.isValid === true"
ng-click="vm.downloadPackage(vm.package)">Install package</button>
<div class="umb-info-local-item text-error" ng-if="vm.package.isValid === false">
<localize key="packager_packageAlreadyInstalled">The package and version chosen is already installed</localize>
</div>
</div>
<div class="umb-package-details__section">
<div class="umb-package-details__owner-profile">
<div class="umb-package-details__owner-profile-avatar">
<umb-avatar
size="m"
img-src="{{ 'https://our.umbraco.org' + vm.package.ownerInfo.ownerAvatar }}">
</umb-avatar>
</div>
<div>
<div class="umb-package-details__owner-profile-name">{{ vm.package.ownerInfo.owner }}</div>
<div class="umb-package-details__owner-profile-karma">
{{ vm.package.ownerInfo.owner }} has <strong>{{ vm.package.ownerInfo.karma }}</strong> karma points
</div>
</div>
</div>
</div>
<div class="umb-package-details__section">
<div class="umb-package-details__section-title">Information</div>
<div>
<div class="umb-package-details__information-item" ng-if="vm.package.ownerInfo.owner">
<div class="umb-package-details__information-item-label">Owner:</div>
<div class="umb-package-details__information-item-content">{{vm.package.ownerInfo.owner}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.ownerInfo.contributors">
<div class="umb-package-details__information-item-label">Contributors:</div>
<div class="umb-package-details__information-item-content">
<span ng-repeat="contributor in vm.package.ownerInfo.contributors">{{ contributor }}<span ng-if="!$last">,&nbsp;</span></span>
</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.created">
<div class="umb-package-details__information-item-label">Created:</div>
<div class="umb-package-details__information-item-content">{{vm.package.created}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.latestVersion">
<div class="umb-package-details__information-item-label">Current version:</div>
<div class="umb-package-details__information-item-content">{{vm.package.latestVersion}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.information.netVersion">
<div class="umb-package-details__information-item-label">.Net Version:</div>
<div class="umb-package-details__information-item-content">{{vm.package.information.netVersion}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.licenseName">
<div class="umb-package-details__information-item-label">License:</div>
<div class="umb-package-details__information-item-content">{{vm.package.licenseName}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.downloads">
<div class="umb-package-details__information-item-label">Downloads:</div>
<div class="umb-package-details__information-item-content">{{vm.package.downloads}}</div>
</div>
<div class="umb-package-details__information-item" ng-if="vm.package.ownerInfo.karma">
<div class="umb-package-details__information-item-label">Likes:</div>
<div class="umb-package-details__information-item-content">{{vm.package.likes}}</div>
</div>
</div>
</div>
<div class="umb-package-details__section">
<div class="umb-package-details__section-title">Compatibility</div>
<div class="umb-package-details__section-description">This package is compatible with the following versions of Umbraco, as reported by community members. Full compatability cannot be gauranteed for versions reported below 100%</div>
<div class="umb-package-details__compatability" ng-repeat="compatibility in vm.package.compatibility | filter:percentage > 0">
<div class="umb-package-details__compatability-label">
<span class="umb-package-details__information-item-label">{{compatibility.version}}</span>
<span class="umb-package-details__information-item-label-2">({{compatibility.percentage}}%)</span>
</div>
<umb-progress-bar
percentage="{{compatibility.percentage}}">
</umb-progress-bar>
</div>
</div>
<div class="umb-package-details__section" ng-if="vm.package.externalSources">
<div class="umb-package-details__section-title">External sources</div>
<div>
<div class="umb-package-details__information-item" ng-repeat="externalSource in vm.package.externalSources">
<a class="umb-package-details__link" target="_blank" href="{{ externalSource.url }}">
<i class="icon-out"></i>
{{ externalSource.name }}
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Package details -->
<div ng-if="vm.packageViewState === 'packageInstall' && vm.loading === false">
<umb-editor-sub-header>
<umb-editor-sub-header-content-left>
<a class="umb-package-details__back-link" href="" ng-click="vm.setPackageViewState('packageDetails');">&larr; Take me back</a>
</umb-editor-sub-header-content-left>
</umb-editor-sub-header>
<div class="umb-packages-view-wrapper">
<div class="flex items-center justify-center">
<div class="umb-info-local-items">
<form novalidate name="localPackageForm" class="w-100">
<div class="umb-package-icon">
<i ng-if="!vm.localPackage.icon" class="icon-box"></i>
<img ng-if="vm.localPackage.icon" ng-src="{{vm.localPackage.icon}}" alt="" />
</div>
<div class="umb-package-info">
<h4 class="umb-info-local-item"><strong>{{ vm.localPackage.name }}</strong></h4>
<div class="umb-info-local-item">
<strong>Author</strong>
<a href="{{ vm.localPackage.authorLink }}" target="_blank">{{ vm.localPackage.author }}</a>
</div>
<div class="umb-info-local-item">
<strong>Version</strong>
{{ vm.localPackage.version }}
</div>
<div class="umb-info-local-item">
<strong>License</strong>
<a href="{{ vm.localPackage.licenseUrl }}" target="_blank">{{ vm.localPackage.license }}</a>
</div>
<div class="umb-info-local-item">
<strong>Read me</strong>
<br>
<small ng-bind-html-unsafe="vm.localPackage.readMe"></small>
</div>
<div class="umb-info-local-item mt4 flex items-center flex-column" ng-if="vm.installState.status == '' && vm.localPackage.isCompatible">
<label for="license-accept" class="umb-package-installer-label">
<input type="checkbox" id="license-accept" ng-model="vm.localPackage.packageLicenseAccept" required no-dirty-check>
<strong class="label-text">I accept <a href="{{ vm.localPackage.licenseUrl }}">terms of use</a></strong>
</label>
<button type="button"
ng-if="vm.installState.type !== 'error'"
ng-class="{'-inactive' : localPackageForm.$invalid}"
ng-disabled="localPackageForm.$invalid"
class="umb-era-button -blue flex-inline mt3"
ng-click="vm.installPackage(vm.localPackage)">
Install package
</button>
</div>
<div class="umb-info-local-item">
<umb-progress-bar
ng-if="vm.installState.status !== ''"
percentage="{{vm.installState.progress}}">
</umb-progress-bar>
</div>
<div class="umb-info-local-item text-error" ng-if="!vm.localPackage.isCompatible">
This package cannot be installed, it requires a minimum Umbraco version of {{vm.localPackage.umbracoVersion}}
</div>
<div class="umb-info-local-item text-info" ng-class="{'text-info' : vm.installState.type !== 'error'}">
<p>{{vm.installState.status}}</p>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,7 @@
<select ng-model="model.value">
<option value="STRING">String</option>
<option value="DECIMAL">Decimal</option>
<option value="DATETIME">Date/time</option>
<option value="INT">Integer</option>
<option value="TEXT">Long string</option>
</select>
@@ -18,6 +18,10 @@
<span class="help-inline" val-msg-for="datepicker" val-toggle-msg="valServer">{{datePickerForm.datepicker.errorMsg}}</span>
<span class="help-inline" val-msg-for="datepicker" val-toggle-msg="pickerError">Invalid date</span>
<p ng-if="model.config.offsetTime === '1' && serverTimeNeedsOffsetting && model.value" class="muted">
<small><localize key="content_scheduledPublishServerTime">This translates to the following time on the server:</localize> {{serverTime}}</small><br/>
<small><localize key="content_scheduledPublishDocumentation">What does this mean?</localize></small>
</p>
<p ng-show="hasDatetimePickerValue === true || datePickerForm.datepicker.$error.pickerError === true">
<a href ng-click="clearDate()"><i class="icon-delete"></i><small><localize key="content_removeDate">Clear date</localize></small></a>
</p>
@@ -7,7 +7,7 @@
</div>
<div ng-if="preview">
<div
ng-if="preview" style="text-align: left"
ng-if="preview" style="text-align: left; pointer-events: none; cursor: default;"
ng-bind-html-unsafe="preview">
</div>
</div>
@@ -1,5 +1,5 @@
<div ng-controller="Umbraco.PropertyEditors.GridPrevalueEditorController" class="usky-grid usky-grid-configuration">
<div style="width: 600px">
<div style="max-width: 600px">
<div class="control-group uSky-templates">
<h4><localize key="grid_gridLayouts"/></h4>
@@ -11,7 +11,7 @@
<umb-editor-sub-header-content-left>
<umb-editor-sub-header-section ng-if="(listViewAllowedTypes && listViewAllowedTypes.length > 0 && !isAnythingSelected()) && currentNodePermissions.canCreate">
<div class="btn-group">
<div class="btn-group" ng-show="listViewAllowedTypes.length > 1">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<localize key="actions_create">Create</localize>
<span class="caret"></span>
@@ -25,19 +25,26 @@
</li>
</ul>
</div>
<div class="btn-group" ng-show="listViewAllowedTypes.length === 1">
<a class="btn" href="#/{{entityType}}/{{entityType}}/edit/{{contentId}}?doctype={{listViewAllowedTypes[0].alias}}&create=true">
<i class="icon-{{listViewAllowedTypes[0].cssClass}}"></i>
<localize key="actions_create">Create</localize> {{ listViewAllowedTypes[0].name }}
</a>
</div>
</umb-editor-sub-header-section>
<umb-editor-sub-header-section ng-if="isAnythingSelected()">
<umb-button
type="button"
label="Clear selection"
label-key="buttons_clearSelection"
action="clearSelection()"
disabled="actionInProgress">
</umb-button>
</umb-editor-sub-header-section>
<umb-editor-sub-header-section ng-if="isAnythingSelected()">
<strong ng-show="!actionInProgress">{{ selectedItemsCount() }} of {{ listViewResultSet.items.length }} selected</strong>
<strong ng-show="!actionInProgress">{{ selectedItemsCount() }} <localize key="general_of">of</localize> {{ listViewResultSet.items.length }} <localize key="general_selected">selected</localize></strong>
<strong ng-show="actionInProgress" ng-bind="bulkStatus"></strong>
<div class="umb-loader-wrapper -bottom" ng-show="actionInProgress">
@@ -86,7 +93,7 @@
type="button"
button-style="link"
label="Publish"
key="actions_publish"
label-key="actions_publish"
icon="icon-globe"
action="publish()"
disabled="actionInProgress">
@@ -97,7 +104,7 @@
type="button"
button-style="link"
label="Unpublish"
key="actions_unpublish"
label-key="actions_unpublish"
icon="icon-block"
action="unpublish()"
disabled="actionInProgress">
@@ -108,7 +115,7 @@
type="button"
button-style="link"
label="Copy"
key="actions_copy"
label-key="actions_copy"
icon="icon-documents"
action="copy()"
disabled="actionInProgress">
@@ -119,7 +126,7 @@
type="button"
button-style="link"
label="Move"
key="actions_move"
label-key="actions_move"
icon="icon-enter"
action="move()"
disabled="actionInProgress">
@@ -129,8 +136,8 @@
ng-if="options.allowBulkDelete && (buttonPermissions == null || buttonPermissions.canDelete)"
type="button"
button-style="link"
label="Delete"
key="actions_delete"
label="Delete"
label-key="actions_delete"
icon="icon-trash"
action="delete()"
disabled="actionInProgress">
@@ -1,5 +1,5 @@
<div>
<select ng-model="model.value" required name="handle">
<select ng-model="model.value" name="handle">
<option value="round">Round</option>
<option value="square">Square</option>
<option value="triangle">Triangle</option>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 KiB

After

Width:  |  Height:  |  Size: 298 KiB

@@ -179,6 +179,12 @@
<key alias="visit">Navštívit</key>
<key alias="welcome">Vítejte</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Název</key>
<key alias="assignDomain">Spravovat názvy hostitelů</key>
+27 -14
View File
@@ -6,7 +6,7 @@
</creator>
<area alias="actions">
<key alias="assignDomain">Tilføj domæne</key>
<key alias="auditTrail">Revisions spor</key>
<key alias="auditTrail">Revisionsspor</key>
<key alias="browse">Gennemse elementer</key>
<key alias="changeDocType">Skift dokumenttype</key>
<key alias="copy">Kopier</key>
@@ -60,6 +60,7 @@
<key alias="atViewingFor">For</key>
</area>
<area alias="buttons">
<key alias="clearSelection">Ryd valg</key>
<key alias="select">Vælg</key>
<key alias="selectCurrentFolder">Vælg nuværende mappe</key>
<key alias="somethingElse">Gør noget andet</key>
@@ -118,12 +119,12 @@
<key alias="alias">Alias</key>
<key alias="alternativeTextHelp">(hvordan ville du f.eks. beskrive billedet via telefonen?)</key>
<key alias="alternativeUrls">Alternative links</key>
<key alias="clickToEdit">Klik på musen for at redigere dette punkt</key>
<key alias="clickToEdit">Klik for at redigere dette punkt</key>
<key alias="createBy">Oprettet af</key>
<key alias="createByDesc" version="7.0">Oprindelig forfatter</key>
<key alias="updatedBy" version="7.0">Opdateret af</key>
<key alias="createDate">Oprettet den</key>
<key alias="createDateDesc" version="7.0">tidspunkt for oprettelse</key>
<key alias="createDateDesc" version="7.0">Tidspunkt for oprettelse</key>
<key alias="documentType">Dokumenttype</key>
<key alias="editing">Redigerer</key>
<key alias="expireDate">Nedtagningsdato</key>
@@ -165,6 +166,10 @@
<area alias="media">
<key alias="clickToUpload">Klik for at uploade</key>
<key alias="dropFilesHere">Slip filerne her...</key>
<key alias="urls">Link til medie</key>
<key alias="orClickHereToUpload">eller klik her for at vælge filer</key>
<key alias="onlyAllowedFiles">Tilladte filtyper er kun</key>
<key alias="maxFileSize">Maks filstørrelse er</key>
</area>
<area alias="member">
<key alias="createNewMember">Opret et nyt medlem</key>
@@ -177,6 +182,8 @@
<key alias="noDocumentTypes" version="7.0"><![CDATA[Der kunne ikke findes nogen tilladte dokument typer. Du skal tillade disse i indstillinger under <strong>"dokument typer"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[Der kunne ikke findes nogen tilladte media typer. Du skal tillade disse i indstillinger under <strong>"media typer"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Dokument type uden skabelon</key>
<key alias="newFolder">Ny mappe</key>
<key alias="newDataType">Ny datatype</key>
</area>
<area alias="dashboard">
<key alias="browser">Til dit website</key>
@@ -187,6 +194,12 @@
<key alias="visit">Besøg</key>
<key alias="welcome">Velkommen</key>
</area>
<area alias="prompt">
<key alias="stay">Bliv</key>
<key alias="discardChanges">Kassér ændringer</key>
<key alias="unsavedChanges">Du har ikke-gemte ændringer</key>
<key alias="unsavedChangesWarning">Er du sikker på du vil navigere væk fra denne side? - du har ikke-gemte ændringer</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Navn på lokalt link</key>
<key alias="assignDomain">Rediger domæner</key>
@@ -197,7 +210,7 @@
<key alias="confirmlogout">Er du sikker på at du vil forlade Umbraco?</key>
<key alias="confirmSure">Er du sikker?</key>
<key alias="cut">Klip</key>
<key alias="editdictionary">Rediger ordbogs nøgle</key>
<key alias="editdictionary">Rediger ordbogsnøgle</key>
<key alias="editlanguage">Rediger sprog</key>
<key alias="insertAnchor">Indsæt lokalt link</key>
<key alias="insertCharacter">Indsæt tegn</key>
@@ -421,8 +434,8 @@
<key alias="listView">Listevisning</key>
<key alias="saving">Gemmer...</key>
<key alias="current">nuværende</key>
<key alias="move">Flyt</key>
<key alias="embed">Indlejring</key>
<key alias="selected">valgt</key>
</area>
<area alias="colors">
@@ -436,13 +449,13 @@
<area alias="shortcuts">
<key alias="addTab">Tilføj fane</key>
<key alias="addProperty">Tilføj property</key>
<key alias="addProperty">Tilføj egenskab</key>
<key alias="addEditor">Tilføj editor</key>
<key alias="addTemplate">Tilføj skabelon</key>
<key alias="addChildNode">Tilføj child node</key>
<key alias="addChild">Tilføj child</key>
<key alias="editDataType">Rediger data type</key>
<key alias="editDataType">Rediger datatype</key>
<key alias="navigateSections">Naviger sektioner</key>
@@ -862,7 +875,7 @@ Mange hilsner fra Umbraco robotten
<key alias="editMemberSaved">Medlem gemt</key>
<key alias="editStylesheetPropertySaved">Stylesheetegenskab gemt</key>
<key alias="editStylesheetSaved">Stylesheet gemt</key>
<key alias="editTemplateSaved">Template gemt</key>
<key alias="editTemplateSaved">Skabelon gemt</key>
<key alias="editUserError">Der er opstået en fejl under redigering</key>
<key alias="editUserSaved">Bruger gemt</key>
<key alias="editUserTypeSaved">Brugertype gemt</key>
@@ -937,7 +950,7 @@ Mange hilsner fra Umbraco robotten
<key alias="urlEncodeHelp">Hvis indholdet af felterne skal sendes til en url, skal denne slåes til så specialtegn formateres</key>
<key alias="usedIfAllEmpty">Denne tekst vil blive brugt hvis ovenstående felter er tomme</key>
<key alias="usedIfEmpty">Dette felt vil blive brugt hvis ovenstående felt er tomt</key>
<key alias="withTime">Ja, med klokkeslet. Dato/tid separator: </key>
<key alias="withTime">Ja, med klokkeslæt. Dato/tid separator: </key>
</area>
<area alias="translation">
<key alias="assignedTasks">Opgaver tildelt dig</key>
@@ -974,10 +987,10 @@ Mange hilsner fra Umbraco robotten
<key alias="dataTypes">Datatyper</key>
<key alias="dictionary">Ordbog</key>
<key alias="installedPackages">Installerede pakker</key>
<key alias="installSkin">Installér et skin'</key>
<key alias="installStarterKit">Installér et starter kit'</key>
<key alias="installSkin">Installér et skin</key>
<key alias="installStarterKit">Installér et starterkit</key>
<key alias="languages">Sprog</key>
<key alias="localPackage">Installer lokal pakke</key>
<key alias="localPackage">Installér lokal pakke</key>
<key alias="macros">Makroer</key>
<key alias="mediaTypes">Medietyper</key>
<key alias="member">Medlemmer</key>
@@ -985,7 +998,7 @@ Mange hilsner fra Umbraco robotten
<key alias="memberRoles">Roller</key>
<key alias="memberTypes">Medlemstype</key>
<key alias="documentTypes">Dokumenttyper</key>
<key alias="relationTypes">Dokumenttyper</key>
<key alias="relationTypes">Relationstyper</key>
<key alias="packager">Pakker</key>
<key alias="packages">Pakker</key>
@@ -1015,7 +1028,7 @@ Mange hilsner fra Umbraco robotten
<key alias="changePasswordDescription">Du kan ændre dit kodeord, som giver dig adgang til Umbraco Back Office ved at udfylde formularen og klikke på knappen 'Skift dit kodeord'</key>
<key alias="contentChannel">Indholdskanal</key>
<key alias="descriptionField">Beskrivelsesfelt</key>
<key alias="disabled">Deaktivér User</key>
<key alias="disabled">Deaktivér bruger</key>
<key alias="documentType">Dokumenttype</key>
<key alias="editors">Redaktør</key>
<key alias="excerptField">Uddragsfelt</key>
@@ -186,6 +186,12 @@
<key alias="visit">Besuchen</key>
<key alias="welcome">Willkommen</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Name</key>
<key alias="assignDomain">Hostnamen verwalten</key>
+142 -5
View File
@@ -65,6 +65,7 @@
<key alias="atViewingFor">Viewing for</key>
</area>
<area alias="buttons">
<key alias="clearSelection">Clear selection</key>
<key alias="select">Select</key>
<key alias="selectCurrentFolder">Select current folder</key>
<key alias="somethingElse">Do something else</key>
@@ -147,6 +148,7 @@
<key alias="otherElements">Properties</key>
<key alias="parentNotPublished">This document is published but is not visible because the parent '%0%' is unpublished</key>
<key alias="parentNotPublishedAnomaly">Oops: this document is published but is not in the cache (internal error)</key>
<key alias="routeError">Oops: this document is published but its url would collide with content %0%</key>
<key alias="publish">Publish</key>
<key alias="publishStatus">Publication Status</key>
<key alias="releaseDate">Publish at</key>
@@ -167,11 +169,13 @@
<key alias="notmemberof">Not a member of group(s)</key>
<key alias="childItems" version="7.0">Child items</key>
<key alias="target" version="7.0">Target</key>
<key alias="scheduledPublishServerTime">This translates to the following time on the server:</key>
<key alias="scheduledPublishDocumentation"><![CDATA[<a href="https://our.umbraco.org/documentation/Getting-Started/Data/Scheduled-Publishing/#timezones" target="_blank">What does this mean?</a>]]></key>
</area>
<area alias="media">
<key alias="clickToUpload">Click to upload</key>
<key alias="dropFilesHere">Drop your files here...</key>
<key alias="urls">Link to media</key>
<key alias="urls">Link to media</key>
<key alias="orClickHereToUpload">or click here to choose files</key>
<key alias="onlyAllowedFiles">Only allowed file types are</key>
<key alias="maxFileSize">Max file size is</key>
@@ -187,6 +191,8 @@
<key alias="noDocumentTypes" version="7.0"><![CDATA[There are no allowed document types available. You must enable these in the settings section under <strong>"document types"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[There are no allowed media types available. You must enable these in the settings section under <strong>"media types"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Document Type without a template</key>
<key alias="newFolder">New folder</key>
<key alias="newDataType">New data type</key>
</area>
<area alias="dashboard">
<key alias="browser">Browse your website</key>
@@ -197,6 +203,12 @@
<key alias="visit">Visit</key>
<key alias="welcome">Welcome</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Name</key>
<key alias="assignDomain">Manage hostnames</key>
@@ -290,6 +302,7 @@
<area alias="placeholders">
<key alias="username">Enter your username</key>
<key alias="password">Enter your password</key>
<key alias="confirmPassword">Confirm your password</key>
<key alias="nameentity">Name the %0%...</key>
<key alias="entername">Enter a name...</key>
<key alias="label">Label...</key>
@@ -297,6 +310,7 @@
<key alias="search">Type to search...</key>
<key alias="filter">Type to filter...</key>
<key alias="enterTags">Type to add tags (press enter after each tag)...</key>
<key alias="email">Enter your email</key>
</area>
<area alias="editcontenttype">
<key alias="allowAtRoot" version="7.2">Allow at root</key>
@@ -479,8 +493,8 @@
<key alias="listView">List view</key>
<key alias="saving">Saving...</key>
<key alias="current">current</key>
<key alias="move">Move</key>
<key alias="embed">Embed</key>
<key alias="selected">selected</key>
</area>
<area alias="colors">
@@ -660,6 +674,17 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="instruction">Log in below</key>
<key alias="timeout">Session timed out</key>
<key alias="bottomText"><![CDATA[<p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">Umbraco.com</a></p> ]]></key>
<key alias="forgottenPassword">Forgotten password?</key>
<key alias="forgottenPasswordInstruction">An email will be sent to the address specified with a link to reset your password</key>
<key alias="requestPasswordResetConfirmation">An email with password reset instructions will be sent to the specified address if it matched our records</key>
<key alias="returnToLogin">Return to login form</key>
<key alias="setPasswordInstruction">Please provide a new password</key>
<key alias="setPasswordConfirmation">Your Password has been updated</key>
<key alias="resetCodeExpired">The link you have clicked on is invalid or has expired</key>
<key alias="resetPasswordEmailCopySubject">Umbraco: Reset Password</key>
<key alias="resetPasswordEmailCopyFormat">
<![CDATA[<p>Your username to login to the Umbraco back-office is: <strong>%0%</strong></p><p>Click <a href="%1%"><strong>here</strong></a> to reset your password or copy/paste this URL into your browser:</p><p><em>%1%</em></p>]]>
</key>
</area>
<area alias="main">
<key alias="dashboard">Dashboard</key>
@@ -756,6 +781,15 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="packageVersion">Package version</key>
<key alias="packageVersionHistory">Package version history</key>
<key alias="viewPackageWebsite">View package website</key>
<key alias="packageAlreadyInstalled">The package and version chosen is already installed</key>
<key alias="targetVersionMismatch">This package cannot be installed, it requires a minimum Umbraco version of %0%</key>
<key alias="installStateUninstalling">Uninstalling...</key>
<key alias="installStateDownloading">Downloading...</key>
<key alias="installStateImporting">Importing...</key>
<key alias="installStateInstalling">Installing...</key>
<key alias="installStateRestarting">Restarting, please wait...</key>
<key alias="installStateComplete">All done, your browser will now refresh, please wait...</key>
</area>
<area alias="paste">
<key alias="doNothing">Paste with full formatting (Not recommended)</key>
@@ -799,14 +833,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="contentPublishedFailedByParent"><![CDATA[
%0% can not be published, because a parent page is not published.
]]></key>
<key alias="includeUnpublished">Include unpublished child pages</key>
<key alias="includeUnpublished">Include unpublished subpages</key>
<key alias="inProgress">Publishing in progress - please wait...</key>
<key alias="inProgressCounter">%0% out of %1% pages have been published...</key>
<key alias="nodePublish">%0% has been published</key>
<key alias="nodePublishAll">%0% and subpages have been published</key>
<key alias="publishAll">Publish %0% and all its subpages</key>
<key alias="publishHelp"><![CDATA[Click <em>ok</em> to publish <strong>%0%</strong> and thereby making its content publicly available.<br/><br />
You can publish this page and all it's sub-pages by checking <em>publish all children</em> below.
<key alias="publishHelp"><![CDATA[Click <em>Publish</em> to publish <strong>%0%</strong> and thereby making its content publicly available.<br/><br />
You can publish this page and all its subpages by checking <em>Include unpublished subpages</em> below.
]]></key>
</area>
<area alias="colorpicker">
@@ -1146,6 +1180,7 @@ To manage your website, simply open the Umbraco back office and start adding con
To close a translation task, please go to the Details view and click the "Close" button.
]]></key>
<key alias="pageHasBeenSendToTranslation">The page '%0%' has been send to translation</key>
<key alias="noLanguageSelected">Please select the language that the content should be translated into</key>
<key alias="sendToTranslate">Send the page '%0%' to translation</key>
<key alias="taskAssignedBy">Assigned by</key>
<key alias="taskOpened">Task opened</key>
@@ -1249,4 +1284,106 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="enterCustomValidation">...or enter a custom validation</key>
<key alias="fieldIsMandatory">Field is mandatory</key>
</area>
<area alias="healthcheck">
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
2: XPath
3: Configuration file path
-->
<key alias="checkSuccessMessage">Value is set to the recommended value: '%0%'.</key>
<key alias="rectifySuccessMessage">Value was set to '%1%' for XPath '%2%' in configuration file '%3%'.</key>
<key alias="checkErrorMessageDifferentExpectedValue">Expected value '%1%' for '%2%' in configuration file '%3%', but found '%0%'.</key>
<key alias="checkErrorMessageUnexpectedValue">Found unexpected value '%0%' for '%2%' in configuration file '%3%'.</key>
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
-->
<key alias="customErrorsCheckSuccessMessage">Custom errors are set to '%0%'.</key>
<key alias="customErrorsCheckErrorMessage">Custom errors are currently set to '%0%'. It is recommended to set this to '%1%' before go live.</key>
<key alias="customErrorsCheckRectifySuccessMessage">Custom errors successfully set to '%0%'.</key>
<key alias="macroErrorModeCheckSuccessMessage">MacroErrors are set to '%0%'.</key>
<key alias="macroErrorModeCheckErrorMessage">MacroErrors are set to '%0%' which will prevent some or all pages in your site from loading completely when there's any errors in macros. Rectifying this will set the value to '%1%'.</key>
<key alias="macroErrorModeCheckRectifySuccessMessage">MacroErrors are now set to '%0%'.</key>
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
2: Server version
-->
<key alias="trySkipIisCustomErrorsCheckSuccessMessage">Try Skip IIS Custom Errors is set to '%0%' and you're using IIS version '%1%'.</key>
<key alias="trySkipIisCustomErrorsCheckErrorMessage">Try Skip IIS Custom Errors is currently '%0%'. It is recommended to set this to '%1%' for your IIS version (%2%).</key>
<key alias="trySkipIisCustomErrorsCheckRectifySuccessMessage">Try Skip IIS Custom Errors successfully set to '%0%'.</key>
<!-- The following keys get predefined tokens passed in that are not all the same, like above -->
<key alias="configurationServiceFileNotFound">File does not exist: '%0%'.</key>
<key alias="configurationServiceNodeNotFound"><![CDATA[Unable to find <strong>'%0%'</strong> in config file <strong>'%1%'</strong>.]]></key>
<key alias="configurationServiceError">There was an error, check log for full error: %0%.</key>
<key alias="xmlDataIntegrityCheckMembers">Total XML: %0%, Total: %1%</key>
<key alias="xmlDataIntegrityCheckMedia">Total XML: %0%, Total: %1%</key>
<key alias="xmlDataIntegrityCheckContent">Total XML: %0%, Total published: %1%</key>
<key alias="httpsCheckInvalidCertificate">Certificate validation error: '%0%'</key>
<key alias="httpsCheckInvalidUrl">Error pinging the URL %0% - '%1%'</key>
<key alias="httpsCheckIsCurrentSchemeHttps">You are currently %0% viewing the site using the HTTPS scheme.</key>
<key alias="httpsCheckConfigurationRectifyNotPossible">The appSetting 'umbracoUseSSL' is set to 'false' in your web.config file. Once you access this site using the HTTPS scheme, that should be set to 'true'.</key>
<key alias="httpsCheckConfigurationCheckResult">The appSetting 'umbracoUseSSL' is set to '%0%' in your web.config file, your cookies are %1% marked as secure.</key>
<key alias="httpsCheckEnableHttpsError">Could not update the 'umbracoUseSSL' setting in your web.config file. Error: %0%</key>
<!-- The following keys don't get tokens passed in -->
<key alias="httpsCheckEnableHttpsButton">Enable HTTPS</key>
<key alias="httpsCheckEnableHttpsDescription">Sets umbracoSSL setting to true in the appSettings of the web.config file.</key>
<key alias="httpsCheckEnableHttpsSuccess">The appSetting 'umbracoUseSSL' is now set to 'true' in your web.config file, your cookies will be marked as secure.</key>
<key alias="rectifyButton">Fix</key>
<key alias="cannotRectifyShouldNotEqual">Cannot fix a check with a value comparison type of 'ShouldNotEqual'.</key>
<key alias="cannotRectifyShouldEqualWithValue">Cannot fix a check with a value comparison type of 'ShouldEqual' with a provided value.</key>
<key alias="valueToRectifyNotProvided">Value to fix check not provided.</key>
<key alias="compilationDebugCheckSuccessMessage">Debug compilation mode is disabled.</key>
<key alias="compilationDebugCheckErrorMessage">Debug compilation mode is currently enabled. It is recommended to disable this setting before go live.</key>
<key alias="compilationDebugCheckRectifySuccessMessage">Debug compilation mode successfully disabled.</key>
<key alias="traceModeCheckSuccessMessage">Trace mode is disabled.</key>
<key alias="traceModeCheckErrorMessage">Trace mode is currently enabled. It is recommended to disable this setting before go live.</key>
<key alias="traceModeCheckRectifySuccessMessage">Trace mode successfully disabled.</key>
<key alias="folderPermissionsCheckMessage">All folders have the correct permissions set.</key>
<!-- The following keys get these tokens passed in:
0: Comma delimitted list of failed folder paths
-->
<key alias="requiredFolderPermissionFailed"><![CDATA[The following folders must be set up with modify permissions but could not be acccessed: <strong>%0%</strong>.]]></key>
<key alias="optionalFolderPermissionFailed"><![CDATA[The following folders must be set up with modify permissions for certain Umbraco operations to function but could not be acccessed: <strong>%0%</strong>. If they aren't being written to no action need be taken.]]></key>
<key alias="filePermissionsCheckMessage">All files have the correct permissions set.</key>
<!-- The following keys get these tokens passed in:
0: Comma delimitted list of failed folder paths
-->
<key alias="requiredFilePermissionFailed"><![CDATA[The following files must be set up with write permissions but could not be acccessed: <strong>%0%</strong>.]]></key>
<key alias="optionalFilePermissionFailed"><![CDATA[The following files must be set up with write permissions for certain Umbraco operations to function but could not be acccessed: <strong>%0%</strong>. If they aren't being written to no action need be taken.]]></key>
<key alias="clickJackingCheckHeaderFound"><![CDATA[The header or meta-tag <strong>X-Frame-Options</strong> used to control whether a site can be IFRAMed by another was found.]]></key>
<key alias="clickJackingCheckHeaderNotFound"><![CDATA[The header or meta-tag <strong>X-Frame-Options</strong> used to control whether a site can be IFRAMed by another was not found.]]></key>
<key alias="clickJackingSetHeaderInConfig">Set Header in Config</key>
<key alias="clickJackingSetHeaderInConfigDescription">Adds a value to the httpProtocol/customHeaders section of web.config to prevent the site being IFRAMed by other websites.</key>
<key alias="clickJackingSetHeaderInConfigSuccess">A setting to create a header preventing IFRAMing of the site by other websites has been added to your web.config file.</key>
<key alias="clickJackingSetHeaderInConfigError">Could not update web.config file. Error: %0%</key>
<!-- The following key get these tokens passed in:
0: Comma delimitted list of headers found
-->
<key alias="excessiveHeadersFound"><![CDATA[The following headers revealing information about the website technology were found: <strong>%0%</strong>.]]></key>
<key alias="excessiveHeadersNotFound">No headers revealing information about the website technology were found.</key>
<key alias="smtpMailSettingsNotFound">In the Web.config file, system.net/mailsettings could not be found.</key>
<key alias="smtpMailSettingsHostNotConfigured">In the Web.config file system.net/mailsettings section, the host is not configured.</key>
<key alias="smtpMailSettingsConnectionSuccess">SMTP settings are configured correctly and the service is operating as expected.</key>
<key alias="smtpMailSettingsConnectionFail">The SMTP server configured with host '%0%' and port '%1%' could not be reached. Please check to ensure the SMTP settings in the Web.config file system.net/mailsettings are correct.</key>
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notification email has been set to <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notification email is still set to the default value of <strong>%0%</strong>.]]></key>
</area>
</language>
+140 -4
View File
@@ -65,6 +65,7 @@
<key alias="atViewingFor">Viewing for</key>
</area>
<area alias="buttons">
<key alias="clearSelection">Clear selection</key>
<key alias="select">Select</key>
<key alias="selectCurrentFolder">Select current folder</key>
<key alias="somethingElse">Do something else</key>
@@ -148,6 +149,7 @@
<key alias="otherElements">Properties</key>
<key alias="parentNotPublished">This document is published but is not visible because the parent '%0%' is unpublished</key>
<key alias="parentNotPublishedAnomaly">Oops: this document is published but is not in the cache (internal error)</key>
<key alias="routeError">Oops: this document is published but its url would collide with content %0%</key>
<key alias="publish">Publish</key>
<key alias="publishStatus">Publication Status</key>
<key alias="releaseDate">Publish at</key>
@@ -168,6 +170,8 @@
<key alias="notmemberof">Not a member of group(s)</key>
<key alias="childItems" version="7.0">Child items</key>
<key alias="target" version="7.0">Target</key>
<key alias="scheduledPublishServerTime">This translates to the following time on the server:</key>
<key alias="scheduledPublishDocumentation"><![CDATA[<a href="https://our.umbraco.org/documentation/Getting-Started/Data/Scheduled-Publishing/#timezones" target="_blank">What does this mean?</a>]]></key>
</area>
<area alias="media">
<key alias="clickToUpload">Click to upload</key>
@@ -189,6 +193,8 @@
<key alias="noDocumentTypes" version="7.0"><![CDATA[There are no allowed document types available. You must enable these in the settings section under <strong>"document types"</strong>.]]></key>
<key alias="noMediaTypes" version="7.0"><![CDATA[There are no allowed media types available. You must enable these in the settings section under <strong>"media types"</strong>.]]></key>
<key alias="documentTypeWithoutTemplate">Document Type without a template</key>
<key alias="newFolder">New folder</key>
<key alias="newDataType">New data type</key>
</area>
<area alias="dashboard">
<key alias="browser">Browse your website</key>
@@ -199,6 +205,12 @@
<key alias="visit">Visit</key>
<key alias="welcome">Welcome</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Name</key>
<key alias="assignDomain">Manage hostnames</key>
@@ -291,6 +303,7 @@
<area alias="placeholders">
<key alias="username">Enter your username</key>
<key alias="password">Enter your password</key>
<key alias="confirmPassword">Confirm your password</key>
<key alias="nameentity">Name the %0%...</key>
<key alias="entername">Enter a name...</key>
<key alias="label">Label...</key>
@@ -298,6 +311,7 @@
<key alias="search">Type to search...</key>
<key alias="filter">Type to filter...</key>
<key alias="enterTags">Type to add tags (press enter after each tag)...</key>
<key alias="email">Enter your email</key>
</area>
<area alias="editcontenttype">
@@ -483,8 +497,8 @@
<key alias="listView">List view</key>
<key alias="saving">Saving...</key>
<key alias="current">current</key>
<key alias="move">Move</key>
<key alias="embed">Embed</key>
<key alias="selected">selected</key>
</area>
<area alias="colors">
<key alias="black">Black</key>
@@ -658,6 +672,17 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="instruction">Log in below</key>
<key alias="timeout">Session timed out</key>
<key alias="bottomText"><![CDATA[<p style="text-align:right;">&copy; 2001 - %0% <br /><a href="http://umbraco.com" style="text-decoration: none" target="_blank">Umbraco.com</a></p> ]]></key>
<key alias="forgottenPassword">Forgotten password?</key>
<key alias="forgottenPasswordInstruction">An email will be sent to the address specified with a link to reset your password</key>
<key alias="requestPasswordResetConfirmation">An email with password reset instructions will be sent to the specified address if it matched our records</key>
<key alias="returnToLogin">Return to login form</key>
<key alias="setPasswordInstruction">Please provide a new password</key>
<key alias="setPasswordConfirmation">Your Password has been updated</key>
<key alias="resetCodeExpired">The link you have clicked on is invalid or has expired</key>
<key alias="resetPasswordEmailCopySubject">Umbraco: Reset Password</key>
<key alias="resetPasswordEmailCopyFormat">
<![CDATA[<p>Your username to login to the Umbraco back-office is: <strong>%0%</strong></p><p>Click <a href="%1%"><strong>here</strong></a> to reset your password or copy/paste this URL into your browser:</p><p><em>%1%</em></p>]]>
</key>
</area>
<area alias="main">
<key alias="dashboard">Dashboard</key>
@@ -755,6 +780,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="packageVersion">Package version</key>
<key alias="packageVersionHistory">Package version history</key>
<key alias="viewPackageWebsite">View package website</key>
<key alias="packageAlreadyInstalled">The package and version chosen is already installed</key>
<key alias="targetVersionMismatch">This package cannot be installed, it requires a minimum Umbraco version of %0%</key>
<key alias="installStateUninstalling">Uninstalling...</key>
<key alias="installStateDownloading">Downloading...</key>
<key alias="installStateImporting">Importing...</key>
<key alias="installStateInstalling">Installing...</key>
<key alias="installStateRestarting">Restarting, please wait...</key>
<key alias="installStateComplete">All done, your browser will now refresh, please wait...</key>
</area>
<area alias="paste">
<key alias="doNothing">Paste with full formatting (Not recommended)</key>
@@ -798,14 +831,14 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="contentPublishedFailedByParent"><![CDATA[
%0% can not be published, because a parent page is not published.
]]></key>
<key alias="includeUnpublished">Include unpublished child pages</key>
<key alias="includeUnpublished">Include unpublished subpages</key>
<key alias="inProgress">Publishing in progress - please wait...</key>
<key alias="inProgressCounter">%0% out of %1% pages have been published...</key>
<key alias="nodePublish">%0% has been published</key>
<key alias="nodePublishAll">%0% and subpages have been published</key>
<key alias="publishAll">Publish %0% and all its subpages</key>
<key alias="publishHelp"><![CDATA[Click <em>ok</em> to publish <strong>%0%</strong> and thereby making its content publicly available.<br/><br />
You can publish this page and all it's sub-pages by checking <em>publish all children</em> below.
<key alias="publishHelp"><![CDATA[Click <em>Publish</em> to publish <strong>%0%</strong> and thereby making its content publicly available.<br/><br />
You can publish this page and all its subpages by checking <em>Include unpublished subpages</em> below.
]]></key>
</area>
<area alias="colorpicker">
@@ -1151,6 +1184,7 @@ To manage your website, simply open the Umbraco back office and start adding con
To close a translation task, please go to the Details view and click the "Close" button.
]]></key>
<key alias="pageHasBeenSendToTranslation">The page '%0%' has been send to translation</key>
<key alias="noLanguageSelected">Please select the language that the content should be translated into</key>
<key alias="sendToTranslate">Send the page '%0%' to translation</key>
<key alias="taskAssignedBy">Assigned by</key>
<key alias="taskOpened">Task opened</key>
@@ -1254,4 +1288,106 @@ To manage your website, simply open the Umbraco back office and start adding con
<key alias="enterCustomValidation">...or enter a custom validation</key>
<key alias="fieldIsMandatory">Field is mandatory</key>
</area>
<area alias="healthcheck">
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
2: XPath
3: Configuration file path
-->
<key alias="checkSuccessMessage">Value is set to the recommended value: '%0%'.</key>
<key alias="rectifySuccessMessage">Value was set to '%1%' for XPath '%2%' in configuration file '%3%'.</key>
<key alias="checkErrorMessageDifferentExpectedValue">Expected value '%1%' for '%2%' in configuration file '%3%', but found '%0%'.</key>
<key alias="checkErrorMessageUnexpectedValue">Found unexpected value '%0%' for '%2%' in configuration file '%3%'.</key>
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
-->
<key alias="customErrorsCheckSuccessMessage">Custom errors are set to '%0%'.</key>
<key alias="customErrorsCheckErrorMessage">Custom errors are currently set to '%0%'. It is recommended to set this to '%1%' before go live.</key>
<key alias="customErrorsCheckRectifySuccessMessage">Custom errors successfully set to '%0%'.</key>
<key alias="macroErrorModeCheckSuccessMessage">MacroErrors are set to '%0%'.</key>
<key alias="macroErrorModeCheckErrorMessage">MacroErrors are set to '%0%' which will prevent some or all pages in your site from loading completely when there's any errors in macros. Rectifying this will set the value to '%1%'.</key>
<key alias="macroErrorModeCheckRectifySuccessMessage">MacroErrors are now set to '%0%'.</key>
<!-- The following keys get these tokens passed in:
0: Current value
1: Recommended value
2: Server version
-->
<key alias="trySkipIisCustomErrorsCheckSuccessMessage">Try Skip IIS Custom Errors is set to '%0%' and you're using IIS version '%1%'.</key>
<key alias="trySkipIisCustomErrorsCheckErrorMessage">Try Skip IIS Custom Errors is currently '%0%'. It is recommended to set this to '%1%' for your IIS version (%2%).</key>
<key alias="trySkipIisCustomErrorsCheckRectifySuccessMessage">Try Skip IIS Custom Errors successfully set to '%0%'.</key>
<!-- The following keys get predefined tokens passed in that are not all the same, like above -->
<key alias="configurationServiceFileNotFound">File does not exist: '%0%'.</key>
<key alias="configurationServiceNodeNotFound"><![CDATA[Unable to find <strong>'%0%'</strong> in config file <strong>'%1%'</strong>.]]></key>
<key alias="configurationServiceError">There was an error, check log for full error: %0%.</key>
<key alias="xmlDataIntegrityCheckMembers">Total XML: %0%, Total: %1%</key>
<key alias="xmlDataIntegrityCheckMedia">Total XML: %0%, Total: %1%</key>
<key alias="xmlDataIntegrityCheckContent">Total XML: %0%, Total published: %1%</key>
<key alias="httpsCheckInvalidCertificate">Certificate validation error: '%0%'</key>
<key alias="httpsCheckInvalidUrl">Error pinging the URL %0% - '%1%'</key>
<key alias="httpsCheckIsCurrentSchemeHttps">You are currently %0% viewing the site using the HTTPS scheme.</key>
<key alias="httpsCheckConfigurationRectifyNotPossible">The appSetting 'umbracoUseSSL' is set to 'false' in your web.config file. Once you access this site using the HTTPS scheme, that should be set to 'true'.</key>
<key alias="httpsCheckConfigurationCheckResult">The appSetting 'umbracoUseSSL' is set to '%0%' in your web.config file, your cookies are %1% marked as secure.</key>
<key alias="httpsCheckEnableHttpsError">Could not update the 'umbracoUseSSL' setting in your web.config file. Error: %0%</key>
<!-- The following keys don't get tokens passed in -->
<key alias="httpsCheckEnableHttpsButton">Enable HTTPS</key>
<key alias="httpsCheckEnableHttpsDescription">Sets umbracoSSL setting to true in the appSettings of the web.config file.</key>
<key alias="httpsCheckEnableHttpsSuccess">The appSetting 'umbracoUseSSL' is now set to 'true' in your web.config file, your cookies will be marked as secure.</key>
<key alias="rectifyButton">Fix</key>
<key alias="cannotRectifyShouldNotEqual">Cannot fix a check with a value comparison type of 'ShouldNotEqual'.</key>
<key alias="cannotRectifyShouldEqualWithValue">Cannot fix a check with a value comparison type of 'ShouldEqual' with a provided value.</key>
<key alias="valueToRectifyNotProvided">Value to fix check not provided.</key>
<key alias="compilationDebugCheckSuccessMessage">Debug compilation mode is disabled.</key>
<key alias="compilationDebugCheckErrorMessage">Debug compilation mode is currently enabled. It is recommended to disable this setting before go live.</key>
<key alias="compilationDebugCheckRectifySuccessMessage">Debug compilation mode successfully disabled.</key>
<key alias="traceModeCheckSuccessMessage">Trace mode is disabled.</key>
<key alias="traceModeCheckErrorMessage">Trace mode is currently enabled. It is recommended to disable this setting before go live.</key>
<key alias="traceModeCheckRectifySuccessMessage">Trace mode successfully disabled.</key>
<key alias="folderPermissionsCheckMessage">All folders have the correct permissions set.</key>
<!-- The following keys get these tokens passed in:
0: Comma delimitted list of failed folder paths
-->
<key alias="requiredFolderPermissionFailed"><![CDATA[The following folders must be set up with modify permissions but could not be acccessed: <strong>%0%</strong>.]]></key>
<key alias="optionalFolderPermissionFailed"><![CDATA[The following folders must be set up with modify permissions for certain Umbraco operations to function but could not be acccessed: <strong>%0%</strong>. If they aren't being written to no action need be taken.]]></key>
<key alias="filePermissionsCheckMessage">All files have the correct permissions set.</key>
<!-- The following keys get these tokens passed in:
0: Comma delimitted list of failed folder paths
-->
<key alias="requiredFilePermissionFailed"><![CDATA[The following files must be set up with write permissions but could not be acccessed: <strong>%0%</strong>.]]></key>
<key alias="optionalFilePermissionFailed"><![CDATA[The following files must be set up with write permissions for certain Umbraco operations to function but could not be acccessed: <strong>%0%</strong>. If they aren't being written to no action need be taken.]]></key>
<key alias="clickJackingCheckHeaderFound"><![CDATA[The header or meta-tag <strong>X-Frame-Options</strong> used to control whether a site can be IFRAMed by another was found.]]></key>
<key alias="clickJackingCheckHeaderNotFound"><![CDATA[The header or meta-tag <strong>X-Frame-Options</strong> used to control whether a site can be IFRAMed by another was not found.]]></key>
<key alias="clickJackingSetHeaderInConfig">Set Header in Config</key>
<key alias="clickJackingSetHeaderInConfigDescription">Adds a value to the httpProtocol/customHeaders section of web.config to prevent the site being IFRAMed by other websites.</key>
<key alias="clickJackingSetHeaderInConfigSuccess">A setting to create a header preventing IFRAMing of the site by other websites has been added to your web.config file.</key>
<key alias="clickJackingSetHeaderInConfigError">Could not update web.config file. Error: %0%</key>
<!-- The following key get these tokens passed in:
0: Comma delimitted list of headers found
-->
<key alias="excessiveHeadersFound"><![CDATA[The following headers revealing information about the website technology were found: <strong>%0%</strong>.]]></key>
<key alias="excessiveHeadersNotFound">No headers revealing information about the website technology were found.</key>
<key alias="smtpMailSettingsNotFound">In the Web.config file, system.net/mailsettings could not be found.</key>
<key alias="smtpMailSettingsHostNotConfigured">In the Web.config file system.net/mailsettings section, the host is not configured.</key>
<key alias="smtpMailSettingsConnectionSuccess">SMTP settings are configured correctly and the service is operating as expected.</key>
<key alias="smtpMailSettingsConnectionFail">The SMTP server configured with host '%0%' and port '%1%' could not be reached. Please check to ensure the SMTP settings in the Web.config file system.net/mailsettings are correct.</key>
<key alias="notificationEmailsCheckSuccessMessage"><![CDATA[Notification email has been set to <strong>%0%</strong>.]]></key>
<key alias="notificationEmailsCheckErrorMessage"><![CDATA[Notification email is still set to the default value of <strong>%0%</strong>.]]></key>
</area>
</language>
@@ -185,6 +185,12 @@
<key alias="visit">Visita</key>
<key alias="welcome">Bienvenido</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Nombre</key>
<key alias="assignDomain">Administrar dominios</key>
@@ -181,6 +181,12 @@
<key alias="visit">Visiter</key>
<key alias="welcome">Bienvenue</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Name</key>
<key alias="assignDomain">Gérer les noms d'hôtes</key>
@@ -131,6 +131,12 @@
<key alias="visit">בקר</key>
<key alias="welcome">ברוכים הבאים</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">שם</key>
<key alias="assignDomain">ניהול שם מתחם</key>
@@ -127,6 +127,12 @@
<key alias="visit">Visita</key>
<key alias="welcome">Benvenuto</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Nome</key>
<key alias="assignDomain">Gestione alias Hostnames</key>
@@ -194,6 +194,12 @@
<key alias="visit">訪れる</key>
<key alias="welcome">ようこそ</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">名前</key>
<key alias="assignDomain">ドメインの割り当て</key>
@@ -125,6 +125,12 @@
<key alias="visit">방문</key>
<key alias="welcome">환영합니다</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">이름</key>
<key alias="assignDomain">호스트네임 관리</key>
@@ -186,6 +186,12 @@
<key alias="visit">Besøk</key>
<key alias="welcome">Velkommen</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Navn på lokal link</key>
<key alias="assignDomain">Rediger domener</key>
@@ -188,6 +188,12 @@
<key alias="visit">Bezoek</key>
<key alias="welcome">Welkom</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Naam</key>
<key alias="assignDomain">Beheer domeinnamen</key>
@@ -125,6 +125,12 @@
<key alias="visit">Odwiedź</key>
<key alias="welcome">Witaj</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Nazwa</key>
<key alias="assignDomain">Zarządzaj nazwami hostów</key>
@@ -125,6 +125,12 @@
<key alias="visit">Visitar</key>
<key alias="welcome">Bem Vindo(a)</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Nome</key>
<key alias="assignDomain">Gerenciar hostnames</key>
@@ -254,6 +254,12 @@
<key alias="visit">Посетить</key>
<key alias="welcome">Рады приветствовать</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Название</key>
<key alias="assignDomain">Управление доменами</key>
@@ -181,6 +181,12 @@
<key alias="welcome">Välkommen</key>
<key alias="visit">Besök</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">Namn</key>
<key alias="assignDomain">Hantera domännamn</key>
@@ -166,6 +166,12 @@
<key alias="visit">访问</key>
<key alias="welcome">欢迎</key>
</area>
<area alias="prompt">
<key alias="stay">Stay</key>
<key alias="discardChanges">Discard changes</key>
<key alias="unsavedChanges">You have unsaved changes</key>
<key alias="unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</key>
</area>
<area alias="defaultdialogs">
<key alias="anchorInsert">锚点名称</key>
<key alias="assignDomain">管理主机名</key>
@@ -35,13 +35,28 @@
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" EnableClientScript="false"
ControlToValidate="packageVersion">*</asp:RequiredFieldValidator>
</cc2:PropertyPanel>
<cc2:PropertyPanel runat="server" ID="pp_icon" Text="Package Icon URL">
<asp:TextBox ID="iconUrl" runat="server" Width="230px" CssClass="guiInputText"></asp:TextBox>
</cc2:PropertyPanel>
<cc2:PropertyPanel runat="server" ID="pp_file" Text="Package file (.zip):">
<asp:Button ID="bt_submitButton" runat="server" Text="Submit to repository" Visible="false" />
<asp:Literal ID="packageUmbFile" runat="server" />
</cc2:PropertyPanel>
</cc2:Pane>
<cc2:Pane ID="Pane5" runat="server">
<cc2:PropertyPanel runat="server" ID="pp_umbracoVersion" Text="Umbraco Target Version">
<asp:TextBox ID="umbracoVersion" runat="server" Width="230px" CssClass="guiInputText"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" EnableClientScript="false"
ControlToValidate="umbracoVersion">*</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="VersionValidator" runat="server" EnableClientScript="false"
ControlToValidate="umbracoVersion" ValidationExpression="^\d+\.\d+\.\d+$">Invalid version number (eg. 7.5.0)</asp:RegularExpressionValidator>
</cc2:PropertyPanel>
</cc2:Pane>
<cc2:Pane ID="Pane1_1" runat="server">
<cc2:PropertyPanel runat="server" ID="pp_author" Text="Author Name">
<cc2:PropertyPanel runat="server" ID="pp_author" Text="Author Name" >
<asp:TextBox ID="packageAuthorName" runat="server" Width="230px" CssClass="guiInputText"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" EnableClientScript="false"
ControlToValidate="packageAuthorName">*</asp:RequiredFieldValidator>
@@ -52,6 +67,7 @@
ControlToValidate="packageAuthorUrl">*</asp:RequiredFieldValidator>
</cc2:PropertyPanel>
</cc2:Pane>
<cc2:Pane ID="Pane1_2" runat="server">
<cc2:PropertyPanel runat="server" ID="pp_licens" Text="License Name:">
<asp:TextBox ID="packageLicenseName" runat="server" Width="230px" CssClass="guiInputText"></asp:TextBox>
@@ -75,7 +91,7 @@
<asp:PlaceHolder ID="content" runat="server"></asp:PlaceHolder>
<br />
<asp:CheckBox ID="packageContentSubdirs" runat="server" />
Include all child nodes
<asp:Label ID="packageContentSubdirsLabel" Text="Include all child nodes" AssociatedControlID="packageContentSubdirs" runat="server" />
</cc2:PropertyPanel>
</cc2:Pane>
<cc2:Pane ID="Pane2_1" runat="server">
+3 -3
View File
@@ -93,10 +93,10 @@ app.config(function ($routeProvider) {
//ensure auth is *not* required so it will redirect to /
resolve: canRoute(false)
})
.when('/logout', {
.when('/logout', {
redirectTo: '/login/false',
resolve: doLogout()
})
resolve: doLogout()
})
.when('/:section', {
templateUrl: function (rp) {
if (rp.section.toLowerCase() === "default" || rp.section.toLowerCase() === "umbraco" || rp.section === "")
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+75 -74
View File
@@ -6,11 +6,81 @@
(function() {
// Based loosely around work by Witold Szczerba - https://github.com/witoldsz/angular-http-auth
angular.module('umbraco.security', [
'umbraco.security.retryQueue',
'umbraco.security.interceptor']);
angular.module('umbraco.security.interceptor', ['umbraco.security.retryQueue'])
//TODO: This is silly and unecessary to have a separate module for this
angular.module('umbraco.security.retryQueue', []);
angular.module('umbraco.security.interceptor', ['umbraco.security.retryQueue']);
angular.module('umbraco.security', ['umbraco.security.retryQueue', 'umbraco.security.interceptor']);
//TODO: This is silly and unecessary to have a separate module for this
angular.module('umbraco.security.retryQueue', [])
// This is a generic retry queue for security failures. Each item is expected to expose two functions: retry and cancel.
.factory('securityRetryQueue', ['$q', '$log', function ($q, $log) {
var retryQueue = [];
var service = {
// The security service puts its own handler in here!
onItemAddedCallbacks: [],
hasMore: function() {
return retryQueue.length > 0;
},
push: function(retryItem) {
retryQueue.push(retryItem);
// Call all the onItemAdded callbacks
angular.forEach(service.onItemAddedCallbacks, function(cb) {
try {
cb(retryItem);
} catch(e) {
$log.error('securityRetryQueue.push(retryItem): callback threw an error' + e);
}
});
},
pushRetryFn: function(reason, retryFn) {
// The reason parameter is optional
if ( arguments.length === 1) {
retryFn = reason;
reason = undefined;
}
// The deferred object that will be resolved or rejected by calling retry or cancel
var deferred = $q.defer();
var retryItem = {
reason: reason,
retry: function() {
// Wrap the result of the retryFn into a promise if it is not already
$q.when(retryFn()).then(function(value) {
// If it was successful then resolve our deferred
deferred.resolve(value);
}, function(value) {
// Othewise reject it
deferred.reject(value);
});
},
cancel: function() {
// Give up on retrying and reject our deferred
deferred.reject();
}
};
service.push(retryItem);
return deferred.promise;
},
retryReason: function() {
return service.hasMore() && retryQueue[0].reason;
},
cancelAll: function() {
while(service.hasMore()) {
retryQueue.shift().cancel();
}
},
retryAll: function() {
while(service.hasMore()) {
retryQueue.shift().retry();
}
}
};
return service;
}]);
angular.module('umbraco.security.interceptor')
// This http interceptor listens for authentication successes and failures
.factory('securityInterceptor', ['$injector', 'securityRetryQueue', 'notificationsService', 'requestInterceptorFilter', function ($injector, queue, notifications, requestInterceptorFilter) {
return function(promise) {
@@ -105,74 +175,5 @@ angular.module('umbraco.security.interceptor', ['umbraco.security.retryQueue'])
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.responseInterceptors.push('securityInterceptor');
}]);
angular.module('umbraco.security.retryQueue', [])
// This is a generic retry queue for security failures. Each item is expected to expose two functions: retry and cancel.
.factory('securityRetryQueue', ['$q', '$log', function ($q, $log) {
var retryQueue = [];
var service = {
// The security service puts its own handler in here!
onItemAddedCallbacks: [],
hasMore: function() {
return retryQueue.length > 0;
},
push: function(retryItem) {
retryQueue.push(retryItem);
// Call all the onItemAdded callbacks
angular.forEach(service.onItemAddedCallbacks, function(cb) {
try {
cb(retryItem);
} catch(e) {
$log.error('securityRetryQueue.push(retryItem): callback threw an error' + e);
}
});
},
pushRetryFn: function(reason, retryFn) {
// The reason parameter is optional
if ( arguments.length === 1) {
retryFn = reason;
reason = undefined;
}
// The deferred object that will be resolved or rejected by calling retry or cancel
var deferred = $q.defer();
var retryItem = {
reason: reason,
retry: function() {
// Wrap the result of the retryFn into a promise if it is not already
$q.when(retryFn()).then(function(value) {
// If it was successful then resolve our deferred
deferred.resolve(value);
}, function(value) {
// Othewise reject it
deferred.reject(value);
});
},
cancel: function() {
// Give up on retrying and reject our deferred
deferred.reject();
}
};
service.push(retryItem);
return deferred.promise;
},
retryReason: function() {
return service.hasMore() && retryQueue[0].reason;
},
cancelAll: function() {
while(service.hasMore()) {
retryQueue.shift().cancel();
}
},
retryAll: function() {
while(service.hasMore()) {
retryQueue.shift().retry();
}
}
};
return service;
}]);
})();
+172 -27
View File
@@ -3049,11 +3049,16 @@ function iconHelper($q, $timeout) {
},
formatContentTypeIcons: function (contentTypes) {
for (var i = 0; i < contentTypes.length; i++) {
contentTypes[i].icon = this.convertFromLegacyIcon(contentTypes[i].icon);
if (!contentTypes[i].icon) {
//just to be safe (e.g. when focus was on close link and hitting save)
contentTypes[i].icon = "icon-document"; // default icon
} else {
contentTypes[i].icon = this.convertFromLegacyIcon(contentTypes[i].icon);
}
//couldnt find replacement
if(contentTypes[i].icon.indexOf(".") > 0){
contentTypes[i].icon = "icon-document-dashed-line";
contentTypes[i].icon = "icon-document-dashed-line";
}
}
return contentTypes;
@@ -3068,6 +3073,10 @@ function iconHelper($q, $timeout) {
},
/** If the icon is legacy */
isLegacyIcon: function (icon) {
if(!icon) {
return false;
}
if(icon.startsWith('..')){
return false;
}
@@ -3998,13 +4007,12 @@ function keyboardService($window, $timeout) {
function setSorting(field, allow, options) {
if (allow) {
options.orderBy = field;
if (options.orderDirection === "desc") {
options.orderDirection = "asc";
} else {
if (options.orderBy === field && options.orderDirection === 'asc') {
options.orderDirection = "desc";
} else {
options.orderDirection = "asc";
}
options.orderBy = field;
}
}
@@ -4070,6 +4078,29 @@ function keyboardService($window, $timeout) {
})();
/**
* @ngdoc service
* @name umbraco.services.localizationService
*
* @requires $http
* @requires $q
* @requires $window
* @requires $filter
*
* @description
* Application-wide service for handling localization
*
* ##usage
* To use, simply inject the localizationService into any controller that needs it, and make
* sure the umbraco.services module is accesible - which it should be by default.
*
* <pre>
* localizationService.localize("area_key").then(function(value){
* element.html(value);
* });
* </pre>
*/
angular.module('umbraco.services')
.factory('localizationService', function ($http, $q, eventsService, $window, $filter, userService) {
@@ -4150,7 +4181,17 @@ angular.module('umbraco.services')
return deferred.promise;
},
//helper to tokenize and compile a localization string
/**
* @ngdoc method
* @name umbraco.services.localizationService#tokenize
* @methodOf umbraco.services.localizationService
*
* @description
* Helper to tokenize and compile a localization string
* @param {String} value the value to tokenize
* @param {Object} scope the $scope object
* @returns {String} tokenized resource string
*/
tokenize: function (value, scope) {
if (value) {
var localizer = value.split(':');
@@ -4167,7 +4208,17 @@ angular.module('umbraco.services')
return value;
},
// checks the dictionary for a localized resource string
/**
* @ngdoc method
* @name umbraco.services.localizationService#localize
* @methodOf umbraco.services.localizationService
*
* @description
* Checks the dictionary for a localized resource string
* @param {String} value the area/key to localize
* @param {Array} tokens if specified this array will be sent as parameter values
* @returns {String} localized resource string
*/
localize: function (value, tokens) {
return service.initLocalizedResources().then(function (dic) {
var val = _lookup(value, tokens, dic);
@@ -8200,16 +8251,14 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
}
}
else {
//return an error object including the error message for UI
deferred.reject({
errorMsg: result.errorMsg,
data: result.data,
status: result.status
});
//return an error object including the error message for UI
deferred.reject({
errorMsg: result.errorMsg,
data: result.data,
status: result.status
});
}
});
@@ -8296,15 +8345,14 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
}
}
else {
//return an error object including the error message for UI
deferred.reject({
errorMsg: 'An error occurred',
data: data,
status: status
});
}
//return an error object including the error message for UI
deferred.reject({
errorMsg: 'An error occurred',
data: data,
status: status
});
});
@@ -8368,6 +8416,7 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
};
}
angular.module('umbraco.services').factory('umbRequestHelper', umbRequestHelper);
angular.module('umbraco.services')
.factory('userService', function ($rootScope, eventsService, $q, $location, $log, securityRetryQueue, authResource, dialogService, $timeout, angularHelper, $http) {
@@ -8581,7 +8630,7 @@ angular.module('umbraco.services')
return result;
});
},
/** Logs the user out
*/
logout: function () {
@@ -8641,6 +8690,102 @@ angular.module('umbraco.services')
});
/*Contains multiple services for various helper tasks */
function versionHelper() {
return {
//see: https://gist.github.com/TheDistantSea/8021359
versionCompare: function(v1, v2, options) {
var lexicographical = options && options.lexicographical,
zeroExtend = options && options.zeroExtend,
v1parts = v1.split('.'),
v2parts = v2.split('.');
function isValidPart(x) {
return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x);
}
if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {
return NaN;
}
if (zeroExtend) {
while (v1parts.length < v2parts.length) {
v1parts.push("0");
}
while (v2parts.length < v1parts.length) {
v2parts.push("0");
}
}
if (!lexicographical) {
v1parts = v1parts.map(Number);
v2parts = v2parts.map(Number);
}
for (var i = 0; i < v1parts.length; ++i) {
if (v2parts.length === i) {
return 1;
}
if (v1parts[i] === v2parts[i]) {
continue;
}
else if (v1parts[i] > v2parts[i]) {
return 1;
}
else {
return -1;
}
}
if (v1parts.length !== v2parts.length) {
return -1;
}
return 0;
}
};
}
angular.module('umbraco.services').factory('versionHelper', versionHelper);
function dateHelper() {
return {
convertToServerStringTime: function(momentLocal, serverOffsetMinutes, format) {
//get the formatted offset time in HH:mm (server time offset is in minutes)
var formattedOffset = (serverOffsetMinutes > 0 ? "+" : "-") +
moment()
.startOf('day')
.minutes(Math.abs(serverOffsetMinutes))
.format('HH:mm');
var server = moment.utc(momentLocal).zone(formattedOffset);
return server.format(format ? format : "YYYY-MM-DD HH:mm:ss");
},
convertToLocalMomentTime: function (strVal, serverOffsetMinutes) {
//get the formatted offset time in HH:mm (server time offset is in minutes)
var formattedOffset = (serverOffsetMinutes > 0 ? "+" : "-") +
moment()
.startOf('day')
.minutes(Math.abs(serverOffsetMinutes))
.format('HH:mm');
//convert to the iso string format
var isoFormat = moment(strVal).format("YYYY-MM-DDTHH:mm:ss") + formattedOffset;
//create a moment with the iso format which will include the offset with the correct time
// then convert it to local time
return moment.parseZone(isoFormat).local();
}
};
}
angular.module('umbraco.services').factory('dateHelper', dateHelper);
function packageHelper(assetsService, treeService, eventsService, $templateCache) {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -7,9 +7,9 @@
_opts: null,
_openMacroModal: function(alias) {
var self = this;
UmbClientMgr.openAngularModalWindow({
template: "views/common/dialogs/insertmacro.html",
dialogData: {
@@ -66,7 +66,7 @@
constructor: function(opts) {
// Merge options with default
this._opts = $.extend({
// Default options go here
}, opts);
@@ -82,7 +82,7 @@
event.preventDefault();
self.doSubmit();
});
$("#sb").click(function() {
self._insertCodeBlock();
});
@@ -112,7 +112,7 @@
});
},
doSubmit: function() {
doSubmit: function() {
this.save(jQuery('#' + this._opts.templateNameClientId).val(), jQuery('#' + this._opts.templateAliasClientId).val(), UmbEditor.GetCode());
},
@@ -134,7 +134,7 @@
self.submitFailure(e.message, e.header);
}
});
},
submitSuccess: function (args) {
@@ -151,7 +151,10 @@
if (args.contents) {
UmbEditor.SetCode(args.contents);
}
var alias = args.alias;
this._opts.aliasTxtBox.val(alias);
top.UmbSpeechBubble.ShowMessage('save', header, msg);
UmbClientMgr.mainTree().setActiveTreeType('templates');
if (pathChanged) {
@@ -167,7 +170,7 @@
top.UmbSpeechBubble.ShowMessage('error', header, err);
}
});
//Set defaults for jQuery ajax calls.
$.ajaxSetup({
dataType: 'json',
@@ -33,19 +33,19 @@
insertMacroMarkup: function(alias) {
/// <summary>callback used to insert the markup for a macro with no parameters</summary>
UmbEditor.Insert("@Umbraco.RenderMacro(\"" + alias + "\")", "", this._opts.codeEditorElementId);
},
insertRenderBody: function() {
UmbEditor.Insert("@RenderBody()", "", this._opts.codeEditorElementId);
},
openMacroModal: function (alias) {
/// <summary>callback used to display the modal dialog to insert a macro with parameters</summary>
var self = this;
UmbClientMgr.openAngularModalWindow({
template: "views/common/dialogs/insertmacro.html",
dialogData: {
@@ -141,7 +141,7 @@
});
}
else {
//saving a partial view
//saving a partial view
var actionName = this._opts.editorType === "PartialViewMacro" ? "SavePartialViewMacro" : "SavePartialView";
$.post(self._opts.restServiceLocation + actionName,
@@ -159,9 +159,9 @@
});
}
},
submitSuccess: function (args) {
var msg = args.message;
var header = args.header;
var path = this._opts.treeSyncPath;
@@ -183,6 +183,9 @@
if (this._opts.editorType == "Template") {
var alias = args.alias;
this._opts.aliasTxtBox.val(alias);
top.UmbSpeechBubble.ShowMessage('save', header, msg);
//templates are different because they are ID based, whereas view files are file based without a static id
@@ -194,12 +197,12 @@
else {
UmbClientMgr.mainTree().syncTree(path, true);
}
}
else {
var newFilePath = this._opts.nameTxtBox.val();
function trimStart(str, trim) {
if (str.startsWith(trim)) {
return str.substring(trim.length);
@@ -219,12 +222,12 @@
var newLocation = window.location.pathname + "?" + notFileParts.join("&") + "&file=" + newFilePath;
UmbClientMgr.contentFrame(newLocation);
//we need to do this after we navigate otherwise the navigation will wait unti lthe message timeout is done!
top.UmbSpeechBubble.ShowMessage('save', header, msg);
}
else {
top.UmbSpeechBubble.ShowMessage('save', header, msg);
if (args && args.name) {
@@ -235,15 +238,15 @@
}
UmbClientMgr.mainTree().syncTree(path, true, null, newFilePath.split("/")[1]);
}
}
}
},
submitFailure: function (err, header) {
top.UmbSpeechBubble.ShowMessage('error', header, err);
top.UmbSpeechBubble.ShowMessage('error', header, err);
},
changeMasterPageFile: function ( ) {
//var editor = document.getElementById(this._opts.sourceEditorId);
var templateDropDown = this._opts.masterPageDropDown.get(0);
@@ -279,7 +282,7 @@
$.ajaxSetup({
dataType: 'json',
cache: false,
contentType: 'application/json; charset=utf-8'
contentType: 'application/json; charset=utf-8'
});
})(jQuery);
+1 -1
View File
@@ -37,7 +37,7 @@
Umbraco web.config configuration documentation can be found here:
http://our.umbraco.org/documentation/using-umbraco/config-files/#webconfig
-->
<add key="umbracoConfigurationStatus" value="7.4.3" />
<add key="umbracoConfigurationStatus" value="7.5.0-beta2" />
<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/Hiccup.aspx,~/signalR,~/VSEnterpriseHelper.axd" />
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/communityLogoGenerator,~/adhoc,~/signalR,~/apidocs" />
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />