Upgrade to 7.5.0-beta2
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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');">← 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> 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'">← 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 don’t have any packages installed.</strong></h4>
|
||||
<p class="faded">You don’t 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'">← 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');">← 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">, </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');">← 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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;">© 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>
|
||||
|
||||
@@ -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;">© 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">
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}]);
|
||||
|
||||
})();
|
||||
@@ -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) {
|
||||
|
||||
|
||||
+969
-354
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);
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user