Upgrade to 7.4.3

This commit is contained in:
Sebastiaan Janssen
2016-04-14 18:01:44 +02:00
parent 7d0578d8c1
commit 53c188c5b6
21 changed files with 1008 additions and 413 deletions
+51 -51
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\UmbracoCms.7.4.2\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.4.2\build\UmbracoCms.props')" />
<Import Project="..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.7.4.3\build\UmbracoCms.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -55,8 +55,8 @@
<HintPath>..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="businesslogic, Version=1.0.5921.28478, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\businesslogic.dll</HintPath>
<Reference Include="businesslogic, Version=1.0.5948.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\businesslogic.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core, Version=1.8.4.0, Culture=neutral, processorArchitecture=MSIL">
@@ -67,12 +67,12 @@
<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.5921.28479, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\cms.dll</HintPath>
<Reference Include="cms, Version=1.0.5948.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\cms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="controls, Version=1.0.5921.28480, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\controls.dll</HintPath>
<Reference Include="controls, Version=1.0.5948.18145, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\controls.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
@@ -107,8 +107,8 @@
<HintPath>..\packages\UrlTracker.3.11\lib\InfoCaster.Umbraco.UrlTracker.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="interfaces, Version=1.0.5921.28476, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\interfaces.dll</HintPath>
<Reference Include="interfaces, Version=1.0.5948.18141, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.2\lib\log4net.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.2\lib\Microsoft.ApplicationBlocks.Data.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.5921.28479, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\SQLCE4Umbraco.dll</HintPath>
<Reference Include="SQLCE4Umbraco, Version=1.0.5948.18145, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.2\lib\System.Data.SqlServerCe.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.2\lib\System.Data.SqlServerCe.Entity.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.4.3\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.2\lib\TidyNet.dll</HintPath>
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\TidyNet.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="umbraco, Version=1.0.5921.28480, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\umbraco.dll</HintPath>
<Reference Include="umbraco, Version=1.0.5948.18146, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\umbraco.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Core, Version=1.0.5921.28477, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\Umbraco.Core.dll</HintPath>
<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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.DataLayer, Version=1.0.5921.28478, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\umbraco.DataLayer.dll</HintPath>
<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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.editorControls, Version=1.0.5921.28481, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\umbraco.editorControls.dll</HintPath>
<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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.MacroEngines, Version=1.0.5921.28482, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\umbraco.MacroEngines.dll</HintPath>
<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>
<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>
<Private>True</Private>
</Reference>
<Reference Include="umbraco.providers, Version=1.0.5921.28480, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\umbraco.providers.dll</HintPath>
<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>
<Private>True</Private>
</Reference>
<Reference Include="Umbraco.Web.UI, Version=1.0.5921.28482, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\Umbraco.Web.UI.dll</HintPath>
<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>
<Private>True</Private>
</Reference>
<Reference Include="UmbracoExamine, Version=0.7.0.28479, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.2\lib\UmbracoExamine.dll</HintPath>
<Reference Include="UmbracoExamine, Version=0.7.0.18144, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UmbracoCms.Core.7.4.3\lib\UmbracoExamine.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
@@ -424,18 +424,14 @@
<Content Include="Assets\swipebox\js\jquery.swipebox.min.js" />
<Content Include="config\404handlers.config" />
<Content Include="config\applications.config" />
<Content Include="config\BaseRestExtensions.config" />
<Content Include="config\ClientDependency.config" />
<Content Include="config\Dashboard.config" />
<Content Include="config\EmbeddedMedia.config" />
<Content Include="config\ExamineIndex.config">
<SubType>Designer</SubType>
</Content>
<Content Include="config\ExamineSettings.config">
<SubType>Designer</SubType>
</Content>
<Content Include="config\feedProxy.config" />
<Content Include="config\FileSystemProviders.config" />
<Content Include="config\formHandlers.config" />
<Content Include="config\githubpull.config" />
<Content Include="config\grid.editors.config.js" />
@@ -458,13 +454,10 @@
<Content Include="config\Lang\sv-SE.user.xml" />
<Content Include="config\Lang\zh-CN.user.xml" />
<Content Include="config\log4net.config" />
<Content Include="config\metablogConfig.config" />
<Content Include="config\Notification.config" />
<Content Include="config\restExtensions.config" />
<Content Include="config\scripting.config" />
<Content Include="config\Skinning.config" />
<Content Include="config\splashes\worker.png" />
<Content Include="config\tinyMceConfig.config" />
<Content Include="config\trees.config" />
<Content Include="config\UmbracoHelp.config" />
<Content Include="config\umbracoSettings.config">
@@ -487,6 +480,7 @@
<Content Include="css\select2-new.css" />
<Content Include="css\select2.css" />
<Content Include="css\tooltipster.css" />
<Content Include="default.aspx" />
<Content Include="Global.asax" />
<Content Include="Hiccup.aspx" />
<Content Include="css\forum\wmd-buttons.png" />
@@ -671,6 +665,13 @@
<Content Include="scripts\forum\tags.js" />
<Content Include="config\IISRewriteMaps.config" />
<Content Include="App_Plugins\ModelsBuilder\package.manifest" />
<Content Include="config\tinyMceConfig.config" />
<Content Include="config\scripting.config" />
<Content Include="config\metablogConfig.config" />
<Content Include="config\FileSystemProviders.config" />
<Content Include="config\feedProxy.config" />
<Content Include="config\EmbeddedMedia.config" />
<Content Include="config\BaseRestExtensions.config" />
<None Include="Properties\PublishProfiles\Local.pubxml" />
<None Include="scripts\jquery-1.4.1-vsdoc.js" />
<Content Include="scripts\jquery-1.4.1.js" />
@@ -1902,7 +1903,6 @@
<Content Include="css\wiki\package.png" />
<Content Include="css\wiki\pin.png" />
<Content Include="css\wiki\pin_current.png" />
<Content Include="default.aspx" />
<Content Include="HTMLPage.html" />
<Content Include="images\add-your-projects.png" />
<Content Include="images\arrow-viewall.png" />
@@ -4373,14 +4373,6 @@
<Content Include="umbraco\Views\Default.cshtml" />
<Content Include="umbraco\webservices\UltimatePickerAutoCompleteHandler.ashx" />
<Content Include="umbraco\xslt\Web.config" />
<Content Include="Views\Partials\Grid\Bootstrap2.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap3.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Base.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Embed.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Macro.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Media.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Rte.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Textstring.cshtml" />
<Content Include="Views\MacroPartials\Forum\Latest.cshtml" />
<Content Include="Views\MacroPartials\Forum\Forum.cshtml" />
<Content Include="Views\MacroPartials\Forum\Thread.cshtml" />
@@ -4392,6 +4384,14 @@
<Content Include="Views\Partials\Project\Edit.cshtml" />
<Content Include="Views\Partials\Home\Documentation.cshtml" />
<Content Include="Views\Partials\Home\ForumActivity.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Textstring.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Rte.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Media.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Macro.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Embed.cshtml" />
<Content Include="Views\Partials\Grid\Editors\Base.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap3.cshtml" />
<Content Include="Views\Partials\Grid\Bootstrap2.cshtml" />
<None Include="web.Debug.config">
<DependentUpon>web.config</DependentUpon>
</None>
@@ -4470,10 +4470,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.2\build\UmbracoCms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.4.2\build\UmbracoCms.props'))" />
<Error Condition="!Exists('..\packages\UmbracoCms.7.4.2\build\UmbracoCms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\UmbracoCms.7.4.2\build\UmbracoCms.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'))" />
</Target>
<Import Project="..\packages\UmbracoCms.7.4.2\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.4.2\build\UmbracoCms.targets')" />
<Import Project="..\packages\UmbracoCms.7.4.3\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.7.4.3\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">
@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1332472882" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<clientDependency version="1684412149" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<!--
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
+5 -7
View File
@@ -31,16 +31,16 @@
views/dashboard/developer/developerdashboardvideos.html
</control>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
<tab caption="Xml Data Integrity Report">
<control>
views/dashboard/developer/xmldataintegrityreport.html
</control>
</tab>
<tab caption="Examine Management">
<control>
views/dashboard/developer/examinemanagement.html
</control>
</tab>
</section>
<section alias="StartupMediaDashboardSection">
@@ -66,11 +66,9 @@
<access>
<grant>admin</grant>
</access>
<control showOnce="true" addPanel="true" panelCaption="">
views/dashboard/default/startupdashboardintro.html
</control>
</tab>
</section>
+2 -2
View File
@@ -52,8 +52,8 @@
<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.2" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.4.2" targetFramework="net451" />
<package id="UmbracoCms" version="7.4.3" targetFramework="net451" />
<package id="UmbracoCms.Core" version="7.4.3" 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" />
@@ -80,7 +80,8 @@
item-max-width="150"
item-max-height="150"
item-min-width="100"
item-min-height="100">
item-min-height="100"
only-images={{onlyImages}}>
</umb-media-grid>
</div>
@@ -16,4 +16,12 @@
</h5>
<pre style="white-space: pre-wrap; overflow-x: auto;">{{model.error.data.StackTrace}}</pre>
</div>
<div class="umb-control-group" ng-repeat="e in model.error.data.InnerExceptions">
<h5>
<localize key="defaultdialogs_innerException">Inner Exception:</localize>
</h5>
<div>{{e.ExceptionType}}: {{e.ExceptionMessage}}</div>
<pre style="white-space: pre-wrap; overflow-x: auto;">{{e.StackTrace}}</pre>
</div>
</div>
@@ -9,7 +9,7 @@
<i ng-if="item.selected" class="icon-check umb-content-grid__checkmark"></i>
<div class="umb-content-grid__icon-container">
<i class="{{ item.icon }} umb-content-grid__icon" ng-class="{'-light': !item.published}"></i>
<i class="umb-content-grid__icon {{ item.icon }}" ng-class="{'-light': !item.published}"></i>
</div>
<div class="umb-content-grid__content">
@@ -5,10 +5,9 @@
</div>
<div ng-if="layoutDropDownIsOpen" class="umb-layout-selector__dropdown shadow-depth-3 animated -half-second fadeIn" on-outside-click="closeLayoutDropdown()">
<div ng-repeat="layout in layouts | filter:{selected:true}" class="umb-layout-selector__dropdown-item" ng-click="pickLayout(layout)" ng-class="{'-active': layout.active }">
<i class="{{ layout.icon }} umb-layout-selector__dropdown-item-icon"></i>
</div>
<div ng-repeat="layout in layouts | filter:{selected:true}" class="umb-layout-selector__dropdown-item" ng-click="pickLayout(layout)" ng-class="{'-active': layout.active }" ng-attr-title="{{layout.name}}">
<i class="{{ layout.icon }} umb-layout-selector__dropdown-item-icon"></i>
</div>
</div>
@@ -78,12 +78,12 @@
<strong>{{ file.name }}</strong>
<span class="file-error" ng-if="file.$error">
<span ng-if="file.$error === 'pattern'" class="errorMessage color-red">(<localize key="media_onlyAllowedFiles"></localize>: "{{ accept }}")</span>
<span ng-if="file.$error === 'maxSize'" class="errorMessage color-red">(<localize key="media_maxFileSize"></localize> "{{maxFileSize}}")</span>
<span ng-if="file.$error === 'pattern'" class="errorMessage color-red"><localize key="media_disallowedFileType"></localize></span>
<span ng-if="file.$error === 'maxSize'" class="errorMessage color-red"><localize key="media_maxFileSize"></localize> "{{maxFileSize}}"</span>
</span>
<span class="file-error" ng-if="file.serverErrorMessage">
<span class="errorMessage color-red">({{file.serverErrorMessage}})</span>
<span class="errorMessage color-red">{{file.serverErrorMessage}}</span>
</span>
</div>
@@ -1,13 +1,13 @@
<h3>Start here</h3>
<h4>This section contains the building blocks for your Umbraco site</h4>
<p>Follow the below links to find out more about working with the items in the Setings section:</p>
<p>Follow the below links to find out more about working with the items in the Settings section:</p>
<h4>Find out more:</h4>
<ul>
<li>Read more about working with the Items in Settings <a class="btn-link -underline" href="http://our.umbraco.org/wiki/umbraco-help/settings" target="_blank">in the Community Wiki</a></li>
<li>Download the <a class="btn-link -underline" href="http://our.umbraco.org/projects/website-utilities/umbraco-7-editors-manual" target="_blank">Editors Manual</a> for details on working with the Umbraco UI</li>
<li>Ask a question in the <a class="btn-link -underline" href="http://our.umbraco.org/" target="_blank">Community Forum</a></li>
<li>Read more about working with the Items in Settings <a class="btn-link -underline" href="https://our.umbraco.org/documentation/Getting-Started/Backoffice/Sections/" target="_blank">in the Documentation section</a> of Our Umbraco</li>
<li>Download the <a class="btn-link -underline" href="https://our.umbraco.org/projects/website-utilities/umbraco-7-editors-manual" target="_blank">Editors Manual</a> for details on working with the Umbraco UI</li>
<li>Ask a question in the <a class="btn-link -underline" href="https://our.umbraco.org/" target="_blank">Community Forum</a></li>
<li>Watch our <a class="btn-link -underline" href="http://umbraco.tv" target="_blank">tutorial videos</a> (some are free, some require a subscription)</li>
<li>Find out about our <a class="btn-link -underline" href="http://umbraco.com/products" target="_blank">productivity boosting tools and commercial support</a></li>
<li>Find out about real-life <a class="btn-link -underline" href="http://umbraco.com/products/training/schedule" target="_blank">training and certification</a> opportunities</li>
@@ -11,68 +11,79 @@
</tr>
</thead>
<tbody ui-sortable="sortableOptions" ng-model="model.value">
<tr ng-repeat="link in model.value" data-link="{{link.link}}">
<td style="width: 20px"><i class="icon icon-navigation handle"></i></td>
<td style="word-wrap:break-word; word-break: break-all">
<tr ng-repeat="link in model.value" data-link="{{link.link}}" ng-class="{ 'unsortable': model.value.length <= 1 }">
<td class="col-sort"><i class="icon icon-navigation handle" ng-show="canSort()"></i></td>
<td class="col-caption">
<span ng-show="!link.edit">{{link.caption}}</span>
<input type="text" ng-model="link.caption" ng-show="link.edit" />
<div class="control-wrapper">
<input type="text" ng-model="link.caption" ng-show="link.edit" />
</div>
</td>
<td style="word-wrap:break-word; word-break: break-all">
<td class="col-link">
<div ng-show="!link.edit">
<i class="icon {{link.internalIcon}}" ng-show="link.internalIcon"></i>
<a href="{{link.link}}" target="_blank" ng-show="!link.isInternal">{{link.link}}</a>
<a href="#/content/content/edit/{{link.internal}}" target="_blank" ng-show="link.isInternal" ng-bind="link.internalName"></a>
</div>
<div ng-show="link.edit">
<div ng-show="!link.isInternal">
<input type="text" ng-model="link.link" /><br />
<localize key="or">or</localize> <a href="#" ng-click="switchLinkType($event,link)"><localize key="relatedlinks_chooseInternal">choose internal page</localize></a>
</div>
<div class="control-wrapper">
<input type="text" ng-model="link.link" />
</div>
<localize key="or">or</localize> <a href="#" ng-click="switchLinkType($event,link)"><localize key="relatedlinks_chooseInternal">choose internal page</localize></a>
</div>
<div ng-show="link.isInternal">
<i class="icon {{link.internalIcon}}" ng-show="link.internalIcon"></i>
<span ng-bind="link.internalName"></span> <a href="#" ng-click="selectInternal($event,link)"><localize key="choose">Choose</localize></a><br />
<localize key="or">or</localize> <a href="#" ng-click="switchLinkType($event,link)"><localize key="relatedlinks_enterExternal">enter external link</localize></a>
</div>
</div>
</td>
<td>
<td class="col-newwindow">
<span ng-show="!link.edit">{{link.newWindow}}</span>
<input type="checkbox" ng-model="link.newWindow" ng-show="link.edit" />
</td>
<td>
<td class="col-actions">
<div class="btn-group" ng-show="!link.edit">
<button type="button" class="btn btn-default" ng-click="edit($index)"><localize key="edit">Edit</localize></button>
<button type="button" class="btn btn-default" ng-click="delete($index)"><localize key="delete">Delete</localize></button>
</div>
<div class="btn-group" ng-show="link.edit">
<div class="btn-group" ng-show="link.edit" style="margin-left: 0;">
<button type="button" class="btn btn-default" ng-click="saveEdit($index)"><localize key="buttons_save">Save</localize></button>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tfoot ng-show="canAdd()">
<tr>
<td></td>
<td><input type="text" ng-model="newCaption" localize="placeholder" placeholder="@relatedlinks_captionPlaceholder" val-highlight="{{hasError}}" /></td>
<td>
<div ng-show="addExternal">
<td class="col-sort"></td>
<td class="col-caption">
<div class="control-wrapper">
<input type="text" ng-model="newCaption" localize="placeholder" placeholder="@relatedlinks_captionPlaceholder" val-highlight="hasError" />
</div>
</td>
<td class="col-link">
<div ng-show="addExternal">
<div class="control-wrapper">
<input type="text" ng-model="newLink" localize="placeholder" placeholder="@relatedlinks_externalLinkPlaceholder" />
<br /> <localize key="or">or</localize>
<a href="#" ng-click="switch($event)"><localize key="relatedlinks_chooseInternal">choose internal page</localize></a>
</div>
<localize key="or">or</localize>
<a href="#" ng-click="switch($event)"><localize key="relatedlinks_chooseInternal">choose internal page</localize></a>
</div>
<div ng-show="!addExternal">
<span ng-bind="newInternalName"></span> <a href="#" ng-click="internal($event)"><localize key="choose">Choose</localize></a><br />
<localize key="or">or</localize> <a href="#" ng-click="switch($event)"><localize key="relatedlinks_enterExternal">enter external link</localize></a>
</div>
</td>
<td><input type="checkbox" ng-model="newNewWindow" /> </td>
<td>
<div class="btn-group">
<button class="btn btn-default" ng-click="add($event)"><localize key="general_add">Add</localize></button>
</div>
</td>
<div ng-show="!addExternal">
<i class="icon {{newInternalIcon}}" ng-show="newInternalIcon"></i>
<span ng-bind="newInternalName"></span> <a href="#" ng-click="internal($event)"><localize key="choose">Choose</localize></a><br />
<localize key="or">or</localize> <a href="#" ng-click="switch($event)"><localize key="relatedlinks_enterExternal">enter external link</localize></a>
</div>
</td>
<td class="col-newwindow"><input type="checkbox" ng-model="newNewWindow" /></td>
<td class="col-actions">
<div class="btn-group">
<button class="btn btn-default" ng-click="add($event)" ng-disabled="newCaption == '' || !canAdd()" ng-show="canAdd()"><localize key="general_add">Add</localize></button>
</div>
</td>
</tr>
</tfoot>
</table>
@@ -84,4 +95,4 @@
position="right">
</umb-overlay>
</div>
</div>
+2 -1
View File
@@ -271,7 +271,8 @@
<key alias="externalLoginProviders">External login providers</key>
<key alias="exceptionDetail">Exception Details</key>
<key alias="stracktrace">Stacktrace</key>
<key alias="stacktrace">Stacktrace</key>
<key alias="innerException">Inner Exception</key>
<key alias="linkYour">Link your</key>
<key alias="unLinkYour">Un-Link your</key>
@@ -175,6 +175,7 @@
<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="disallowedFileType">Cannot upload this file, it does not have an approved file type</key>
<key alias="maxFileSize">Max file size is</key>
</area>
<area alias="member">
@@ -271,7 +272,8 @@
<key alias="externalLoginProviders">External login providers</key>
<key alias="exceptionDetail">Exception Details</key>
<key alias="stracktrace">Stacktrace</key>
<key alias="stacktrace">Stacktrace</key>
<key alias="innerException">Inner Exception</key>
<key alias="linkYour">Link your</key>
<key alias="unLinkYour">Un-Link your</key>
+13 -12
View File
@@ -242,7 +242,7 @@
<key alias="treepicker">項目の選択</key>
<key alias="viewCacheItem">キャッシュされている項目の表示</key>
<key alias="createFolder">フォルダーの作成...</key>
<key alias="relateToOriginalLabel">オリジナルに関連付ける</key>
<key alias="theFriendliestCommunity">フレンドリーなコミュニティ</key>
@@ -267,7 +267,8 @@
<key alias="externalLoginProviders">外部ログイン プロバイダー</key>
<key alias="exceptionDetail">例外の詳細</key>
<key alias="stracktrace">スタックトレース</key>
<key alias="stacktrace">スタックトレース</key>
<key alias="innerException">Inner Exception</key>
<key alias="linkYour">次をリンク:</key>
<key alias="unLinkYour">次をリンク解除:</key>
@@ -475,7 +476,7 @@
<key alias="move">移動</key>
<key alias="embed">埋め込み</key>
</area>
<area alias="colors">
<key alias="black">ブラック</key>
<key alias="green">グリーン</key>
@@ -484,7 +485,7 @@
<key alias="blue">ブルー</key>
<key alias="red">レッド</key>
</area>
<area alias="shortcuts">
<key alias="addTab">タブの追加</key>
<key alias="addProperty">プロパティの追加</key>
@@ -503,7 +504,7 @@
<key alias="toggleListView">リスト ビューの切り替え</key>
<key alias="toggleAllowAsRoot">ルートとして許可に切り替え</key>
</area>
<area alias="graphicheadline">
<key alias="backgroundcolor">背景色</key>
<key alias="bold">太字</key>
@@ -537,7 +538,7 @@
<strong>アップグレード</strong>ボタンを押すとUmbraco %0% 用にデータベースをアップグレードします。</p>
<p>
心配ありません。 - コンテントが消える事はありませんし、後で続けることもできます。
</p>
</p>
]]></key>
<key alias="databaseUpgradeDone"><![CDATA[データベースはバージョン %0% 用にアップグレードされました。<br /><strong>次へ</strong>
を押して続行してください。]]></key>
@@ -583,7 +584,7 @@
]]></key>
<key alias="runwayFromScratch">スクラッチから始めたい</key>
<key alias="runwayFromScratchText"><![CDATA[
ウェブサイトはさしあたり完全に空っぽで、必要なドキュメント型やテンプレートを作成するところから始められます。
ウェブサイトはさしあたり完全に空っぽで、必要なドキュメント型やテンプレートを作成するところから始められます。
(<a href="http://umbraco.tv/documentation/videos/for-site-builders/foundation/document-types">どうしたらいいの?</a>)
後からRunwayをインストールする事もできます。そうしたくなった時は、Developerセクションのパッケージへどうぞ。
]]></key>
@@ -597,8 +598,8 @@
<key alias="runwaySimpleSite">簡単なウェブサイトから始めたい</key>
<key alias="runwaySimpleSiteText"><![CDATA[
<p>
"Runway"(≈滑走路)は幾つかの基本的なテンプレートから簡単なウェブサイトを用意します。このインストーラーは自動的にRnwayをセットアップできますが、
これを編集したり、拡張したり、削除する事も簡単にできます。もしUmbracoを完璧に使いこなせるならばこれは不要です。とはいえ、
"Runway"(≈滑走路)は幾つかの基本的なテンプレートから簡単なウェブサイトを用意します。このインストーラーは自動的にRnwayをセットアップできますが、
これを編集したり、拡張したり、削除する事も簡単にできます。もしUmbracoを完璧に使いこなせるならばこれは不要です。とはいえ、
Runwayを使う事は、手間なく簡単にUmbracoを始める為には良い選択肢です。
Runwayをインストールすれば、必要に応じてRunwayによる基本的な構成のページをRunwayのモジュールから選択できます。
</p>
@@ -692,7 +693,7 @@ Runwayをインストールして作られた新しいウェブサイトがど
<p>ユーザー <strong>'%3%'</strong> によりページ <a href="http://%4%/actions/preview.aspx?id=%5%"><strong>'%2%'</strong></a> 上のタスク <strong>'%1%'</strong> から自動的にメールします。</p>
<div style="margin: 8px 0; padding: 8px; display: block;">
<br />
<a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;編集&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
<a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;編集&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
<br />
</div>
<p>
@@ -704,7 +705,7 @@ Runwayをインストールして作られた新しいウェブサイトがど
<div style="margin: 8px 0; padding: 8px; display: block;">
<br />
<a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;編集&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
<a style="color: white; font-weight: bold; background-color: #5372c3; text-decoration : none; margin-right: 20px; border: 8px solid #5372c3; width: 150px;" href="http://%4%/#/content/content/edit/%5%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;編集&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> &nbsp;
<br />
</div>
@@ -1064,7 +1065,7 @@ Runwayをインストールして作られた新しいウェブサイトがど
<key alias="thisEditorUpdateSettings">このエディターを使用すると新しい設定で更新されます</key>
</area>
<area alias="templateEditor">
<key alias="alternativeField">代替フィールド</key>
<key alias="alternativeText">代替テキスト</key>
+30 -29
View File
@@ -189,10 +189,10 @@
<key alias="inheritedFrom">Унаследован от</key>
<key alias="addProperty">Добавить свойство</key>
<key alias="requiredLabel">Обязательная метка</key>
<key alias="enableListViewHeading">Представление в формате списка</key>
<key alias="enableListViewDescription">Устанавливает представление документа данного типа в виде сортируемого списка дочерних документов с функцией поиска, в отличие от обычного представления дочерних документов в виде дерева</key>
<key alias="allowedTemplatesHeading">Допустимые шаблоны</key>
<key alias="allowedTemplatesDescription">Выберите перечень допустимых шаблонов для сопоставления документам данного типа</key>
<key alias="allowAsRootHeading">Разрешить в качестве корневого</key>
@@ -206,31 +206,31 @@
<key alias="compositionsDescription">Унаследовать вкладки и свойства из уже существующего типа документов. Вкладки будут либо добавлены в создаваемый тип, либо в случае совпадения названий вкладок будут добавлены наследуемые свойства.</key>
<key alias="compositionInUse">Этот тип документов уже участвует в композиции другого типа, поэтому сам не может быть композицией.</key>
<key alias="noAvailableCompositions">В настоящее время нет типов документов, допустимых для построения композиции.</key>
<key alias="availableEditors">Доступные редакторы</key>
<key alias="reuse">Переиспользовать</key>
<key alias="editorSettings">Установки редактора</key>
<key alias="configuration">Конфигурирование</key>
<key alias="yesDelete">ДА, удалить</key>
<key alias="movedUnderneath">была перемещена внутрь</key>
<key alias="folderToMove">Выбрать папку для перемещения</key>
<key alias="structureBelow">в структуре дерева</key>
<key alias="allDocumentTypes">Все типы документов</key>
<key alias="allDocuments">Все документы</key>
<key alias="allMediaItems">Все медиа-элементы</key>
<key alias="usingThisDocument">, использующие этот тип документов, будут безвозвратно удалены, пожалуйста, подтвердите это действие.</key>
<key alias="usingThisMedia">, использующие этот тип медиа, будут безвозвратно удалены, пожалуйста, подтвердите это действие.</key>
<key alias="usingThisMember">, использующие этот тип участников, будут безвозвратно удалены, пожалуйста, подтвердите это действие.</key>
<key alias="andAllDocuments">и все документы, использующие данный тип</key>
<key alias="andAllMediaItems">и все медиа-элементы, использующие данный тип</key>
<key alias="andAllMembers">и все участники, использующие данный тип</key>
<key alias="thisEditorUpdateSettings">, использующие этот редактор, будут обновлены с применением этих установок</key>
<key alias="memberCanEdit">Участник может изменить</key>
@@ -302,18 +302,18 @@
<key alias="treepicker">Выберите элемент</key>
<key alias="viewCacheItem">Просмотр элемента кэша</key>
<key alias="createFolder">Создать папку...</key>
<key alias="relateToOriginalLabel">Связать с оригиналом</key>
<key alias="theFriendliestCommunity">Самое дружелюбное сообщество</key>
<key alias="linkToPage">Ссылка на страницу</key>
<key alias="openInNewWindow">Открывает документ по ссылке в новом окне или вкладке браузера</key>
<key alias="openInFullBody">Открывает документ по ссылке в полноэкранном режиме</key>
<key alias="openInParentFrame">Открывает документ по ссылке в родительском фрейме</key>
<key alias="linkToMedia">Ссылка на медиа-файл</key>
<key alias="selectMedia">Выбрать медиа</key>
<key alias="selectIcon">Выбрать значок</key>
<key alias="selectItem">Выбрать элемент</key>
@@ -322,23 +322,24 @@
<key alias="selectContent">Выбрать содержимое</key>
<key alias="selectMember">Выбрать участника</key>
<key alias="selectMemberGroup">Выбрать группу участников</key>
<key alias="noMacroParams">Это макрос без параметров</key>
<key alias="externalLoginProviders">Провайдеры аутентификации</key>
<key alias="exceptionDetail">Подробное сообщение об ошибке</key>
<key alias="stracktrace">Трассировка стека</key>
<key alias="stacktrace">Трассировка стека</key>
<key alias="innerException">Inner Exception</key>
<key alias="linkYour">Связать</key>
<key alias="unLinkYour">Разорвать связь</key>
<key alias="account">учетную запись</key>
<key alias="selectEditor">Выбрать редактор</key>
</area>
<area alias="dictionaryItem">
<key alias="description"><![CDATA[
Ниже Вы можете указать различные переводы данной статьи словаря '<em>%0%</em>'<br/>Добавить другие языки можно, воспользовавшись пунктом 'Языки' в меню слева
Ниже Вы можете указать различные переводы данной статьи словаря '<em>%0%</em>'<br/>Добавить другие языки можно, воспользовавшись пунктом 'Языки' в меню слева
]]></key>
<key alias="displayName">Название языка (культуры)</key>
</area>
@@ -397,7 +398,7 @@
<key alias="macroErrorLoadingCustomControl">Ошибка загрузки внешнего типа (сборка: %0%, тип: '%1%')</key>
<key alias="macroErrorLoadingMacroEngineScript">Ошибка загрузки макроса (файл: %0%)</key>
<key alias="macroErrorParsingXSLTFile">"Ошибка разбора кода XSLT в файле: %0%</key>
<key alias="macroErrorReadingXSLTFile">"Ошибка чтения XSLT-файла: %0%</key>
<key alias="macroErrorReadingXSLTFile">"Ошибка чтения XSLT-файла: %0%</key>
<key alias="missingPropertyEditorErrorMessage">Ошибка в конфигурации типа данных, используемого для свойства, проверьте тип данных</key>
<key alias="missingTitle">Укажите заголовок</key>
<key alias="missingType">Выберите тип</key>
@@ -876,7 +877,7 @@
]]></key>
<key alias="contentPublishedFailedExpired"><![CDATA[
Документ %0% не может быть опубликован, так как текущая информация в нем устарела.
]]></key>
]]></key>
<key alias="contentPublishedFailedByParent"><![CDATA[
Документ %0% не может быть опубликован, так как не опубликован его родительский документ.
]]></key>
@@ -959,14 +960,14 @@
<key alias="addTemplate">Добавить шаблон</key>
<key alias="addChildNode">Добавить дочерний узел</key>
<key alias="addChild">Добавить дочерний</key>
<key alias="editDataType">Изменить тип данных</key>
<key alias="navigateSections">Навигация по разделам</key>
<key alias="shortcut">Ярлыки</key>
<key alias="showShortcuts">показать ярлыки</key>
<key alias="toggleListView">В формате списка</key>
<key alias="toggleAllowAsRoot">Разрешить в качестве корневого</key>
</area>
@@ -1108,7 +1109,7 @@
http://%3%.
Удачи!
Генератор уведомлений Umbraco.
]]></key>
<key alias="mailSubject">[%0%] Задание по переводу %1%</key>
@@ -3280,7 +3280,12 @@ angular.module("umbraco")
$scope.startNodeId = dialogOptions.startNodeId ? dialogOptions.startNodeId : -1;
$scope.cropSize = dialogOptions.cropSize;
$scope.lastOpenedNode = $cookieStore.get("umbLastOpenedMediaNodeId");
$scope.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes);
if($scope.onlyImages){
$scope.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes);
}
else {
$scope.acceptedFileTypes = !mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles);
}
$scope.maxFileSize = Umbraco.Sys.ServerVariables.umbracoSettings.maxFileSize + "KB";
$scope.model.selectedImages = [];
@@ -4393,6 +4398,18 @@ angular.module("umbraco")
$scope.model.error.data.StackTrace = $scope.model.error.data.StackTrace.trim();
}
if ($scope.model.error && $scope.model.error.data) {
$scope.model.error.data.InnerExceptions = [];
var ex = $scope.model.error.data.InnerException;
while (ex) {
if (ex.StackTrace) {
ex.StackTrace = ex.StackTrace.trim();
}
$scope.model.error.data.InnerExceptions.push(ex);
ex = ex.InnerException;
}
}
});
angular.module("umbraco").controller("Umbraco.Editors.Content.CopyController",
@@ -6281,7 +6298,8 @@ angular.module("umbraco").controller("Umbraco.Editors.DocumentTypes.DeleteContro
contentTypeHelper.generateModels().then(function (result) {
if (result.success) {
// generateModels() returns the dashboard content
if (!result.lastError) {
//re-check model status
contentTypeHelper.checkModelsBuilderStatus().then(function(statusResult) {
@@ -12027,10 +12045,8 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesL
var vm = this;
vm.nodeId = $scope.contentId;
//vm.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes);
//instead of passing in a whitelist, we pass in a blacklist by adding ! to the ext
vm.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles).replace(/\./g, "!.");
//we pass in a blacklist by adding ! to the file extensions, allowing everything EXCEPT for disallowedUploadFiles
vm.acceptedFileTypes = !mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles);
vm.maxFileSize = Umbraco.Sys.ServerVariables.umbracoSettings.maxFileSize + "KB";
vm.activeDrag = false;
vm.mediaDetailsTooltip = {};
@@ -12136,9 +12152,8 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.IncludePropertiesL
var vm = this;
vm.nodeId = $scope.contentId;
//vm.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes);
//instead of passing in a whitelist, we pass in a blacklist by adding ! to the ext
vm.acceptedFileTypes = mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles).replace(/./g, "!.");
//we pass in a blacklist by adding ! to the file extensions, allowing everything EXCEPT for disallowedUploadFiles
vm.acceptedFileTypes = !mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.disallowedUploadFiles);
vm.maxFileSize = Umbraco.Sys.ServerVariables.umbracoSettings.maxFileSize + "KB";
vm.activeDrag = false;
vm.isRecycleBin = $scope.contentId === '-21' || $scope.contentId === '-20';
@@ -13039,10 +13054,10 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
$scope.model.config.startNodeId = userData.startMediaId;
});
}
function setupViewModel() {
$scope.images = [];
$scope.ids = [];
$scope.ids = [];
if ($scope.model.value) {
var ids = $scope.model.value.split(',');
@@ -13057,16 +13072,16 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
entityResource.getByIds(ids, "Media").then(function (medias) {
_.each(medias, function (media, i) {
//only show non-trashed items
if (media.parentId >= -1) {
if (!media.thumbnail) {
if (!media.thumbnail) {
media.thumbnail = mediaHelper.resolveFileFromEntity(media, true);
}
$scope.images.push(media);
$scope.ids.push(media.id);
$scope.ids.push(media.id);
}
});
@@ -13094,6 +13109,7 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
title: "Select media",
startNodeId: $scope.model.config.startNodeId,
multiPicker: multiPicker,
onlyImages: onlyImages,
show: true,
submit: function(model) {
@@ -13120,8 +13136,8 @@ angular.module('umbraco').controller("Umbraco.PropertyEditors.MediaPickerControl
$scope.sortableOptions = {
update: function(e, ui) {
var r = [];
//TODO: Instead of doing this with a half second delay would be better to use a watch like we do in the
// content picker. THen we don't have to worry about setting ids, render models, models, we just set one and let the
//TODO: Instead of doing this with a half second delay would be better to use a watch like we do in the
// content picker. THen we don't have to worry about setting ids, render models, models, we just set one and let the
// watch do all the rest.
$timeout(function(){
angular.forEach($scope.images, function(value, key){
@@ -13498,17 +13514,20 @@ function ReadOnlyValueController($rootScope, $scope, $filter) {
angular.module('umbraco').controller("Umbraco.PropertyEditors.ReadOnlyValueController", ReadOnlyValueController);
angular.module("umbraco")
.controller("Umbraco.PropertyEditors.RelatedLinksController",
function ($rootScope, $scope, dialogService) {
function ($rootScope, $scope, dialogService, iconHelper) {
if (!$scope.model.value) {
$scope.model.value = [];
}
$scope.model.config.max = isNumeric($scope.model.config.max) && $scope.model.config.max !== 0 ? $scope.model.config.max : Number.MAX_VALUE;
$scope.newCaption = '';
$scope.newLink = 'http://';
$scope.newNewWindow = false;
$scope.newInternal = null;
$scope.newInternalName = '';
$scope.newInternalIcon = null;
$scope.addExternal = true;
$scope.currentEditLink = null;
$scope.hasError = false;
@@ -13570,7 +13589,6 @@ angular.module("umbraco")
}
$scope.model.value[idx].edit = true;
};
$scope.saveEdit = function (idx) {
$scope.model.value[idx].title = $scope.model.value[idx].caption;
@@ -13605,6 +13623,7 @@ angular.module("umbraco")
this.edit = false;
this.isInternal = true;
this.internalName = $scope.newInternalName;
this.internalIcon = $scope.newInternalIcon;
this.type = "internal";
this.title = $scope.newCaption;
};
@@ -13615,7 +13634,7 @@ angular.module("umbraco")
$scope.newNewWindow = false;
$scope.newInternal = null;
$scope.newInternalName = '';
$scope.newInternalIcon = null;
}
$event.preventDefault();
};
@@ -13639,23 +13658,73 @@ angular.module("umbraco")
$scope.model.value[index + direction] = temp;
};
//helper for determining if a user can add items
$scope.canAdd = function () {
return $scope.model.config.max <= 0 || $scope.model.config.max > countVisible();
}
//helper that returns if an item can be sorted
$scope.canSort = function () {
return countVisible() > 1;
}
$scope.sortableOptions = {
containment: 'parent',
axis: 'y',
handle: '.handle',
cursor: 'move',
cancel: '.no-drag',
containment: 'parent',
placeholder: 'sortable-placeholder',
forcePlaceholderSize: true,
helper: function (e, ui) {
// When sorting <trs>, the cells collapse. This helper fixes that: http://www.foliotek.com/devblog/make-table-rows-sortable-using-jquery-ui-sortable/
// When sorting table rows, the cells collapse. This helper fixes that: http://www.foliotek.com/devblog/make-table-rows-sortable-using-jquery-ui-sortable/
ui.children().each(function () {
$(this).width($(this).width());
});
return ui;
},
items: '> tr',
items: '> tr:not(.unsortable)',
tolerance: 'pointer',
update: function (e, ui) {
// Get the new and old index for the moved element (using the URL as the identifier)
var newIndex = ui.item.index();
var movedLinkUrl = ui.item.attr('data-link');
var originalIndex = getElementIndexByUrl(movedLinkUrl);
// Move the element in the model
var movedElement = $scope.model.value[originalIndex];
$scope.model.value.splice(originalIndex, 1);
$scope.model.value.splice(newIndex, 0, movedElement);
},
start: function (e, ui) {
//ui.placeholder.html("<td colspan='5'></td>");
// Build a placeholder cell that spans all the cells in the row: http://stackoverflow.com/questions/25845310/jquery-ui-sortable-and-table-cell-size
var cellCount = 0;
$('td, th', ui.helper).each(function () {
// For each td or th try and get it's colspan attribute, and add that or 1 to the total
var colspan = 1;
var colspanAttr = $(this).attr('colspan');
if (colspanAttr > 1) {
colspan = colspanAttr;
}
cellCount += colspan;
});
// Add the placeholder UI - note that this is the item's content, so td rather than tr - and set height of tr
ui.placeholder.html('<td colspan="' + cellCount + '"></td>').height(ui.item.height());
}
};
//helper to count what is visible
function countVisible() {
return $scope.model.value.length;
}
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function getElementIndexByUrl(url) {
for (var i = 0; i < $scope.model.value.length; i++) {
if ($scope.model.value[i].link == url) {
@@ -13670,10 +13739,12 @@ angular.module("umbraco")
if ($scope.currentEditLink != null) {
$scope.currentEditLink.internal = data.id;
$scope.currentEditLink.internalName = data.name;
$scope.currentEditLink.internalIcon = iconHelper.convertFromLegacyIcon(data.icon);
$scope.currentEditLink.link = data.id;
} else {
$scope.newInternal = data.id;
$scope.newInternalName = data.name;
$scope.newInternalIcon = iconHelper.convertFromLegacyIcon(data.icon);
}
}
});
@@ -8652,6 +8652,13 @@ Use this directive to generate a thumbnail grid of media items.
var item = scope.items[i];
setItemData(item);
setOriginalSize(item, itemMaxHeight);
// remove non images when onlyImages is set to true
if(scope.onlyImages === "true" && !item.isFolder && !item.thumbnail){
scope.items.splice(i, 1);
i--;
}
}
if (scope.items.length > 0) {
@@ -8799,7 +8806,8 @@ Use this directive to generate a thumbnail grid of media items.
itemMaxWidth: "@",
itemMaxHeight: "@",
itemMinWidth: "@",
itemMinHeight: "@"
itemMinHeight: "@",
onlyImages: "@"
},
link: link
};
+221 -18
View File
@@ -3547,6 +3547,50 @@ function keyboardService($window, $timeout) {
return keyboardManagerService;
} angular.module('umbraco.services').factory('keyboardService', ['$window', '$timeout', keyboardService]);
/**
@ngdoc service
* @name umbraco.services.listViewHelper
*
*
* @description
* Service for performing operations against items in the list view UI. Used by the built-in internal listviews
* as well as custom listview.
*
* A custom listview is always used inside a wrapper listview, so there are a number of inherited values on its
* scope by default:
*
* **$scope.selection**: Array containing all items currently selected in the listview
*
* **$scope.items**: Array containing all items currently displayed in the listview
*
* **$scope.folders**: Array containing all folders in the current listview (only for media)
*
* **$scope.options**: configuration object containing information such as pagesize, permissions, order direction etc.
*
* **$scope.model.config.layouts**: array of available layouts to apply to the listview (grid, list or custom layout)
*
* ##Usage##
* To use, inject listViewHelper into custom listview controller, listviewhelper expects you
* to pass in the full collection of items in the listview in several of its methods
* this collection is inherited from the parent controller and is available on $scope.selection
*
* <pre>
* angular.module("umbraco").controller("my.listVieweditor". function($scope, listViewHelper){
*
* //current items in the listview
* var items = $scope.items;
*
* //current selection
* var selection = $scope.selection;
*
* //deselect an item , $scope.selection is inherited, item is picked from inherited $scope.items
* listViewHelper.deselectItem(item, $scope.selection);
*
* //test if all items are selected, $scope.items + $scope.selection are inherited
* listViewhelper.isSelectedAll($scope.items, $scope.selection);
* });
* </pre>
*/
(function () {
'use strict';
@@ -3555,6 +3599,19 @@ function keyboardService($window, $timeout) {
var firstSelectedIndex = 0;
var localStorageKey = "umblistViewLayout";
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#getLayout
* @methodOf umbraco.services.listViewHelper
*
* @description
* Method for internal use, based on the collection of layouts passed, the method selects either
* any previous layout from local storage, or picks the first allowed layout
*
* @param {Number} nodeId The id of the current node displayed in the content editor
* @param {Array} availableLayouts Array of all allowed layouts, available from $scope.model.config.layouts
*/
function getLayout(nodeId, availableLayouts) {
var storedLayouts = [];
@@ -3577,6 +3634,19 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#setLayout
* @methodOf umbraco.services.listViewHelper
*
* @description
* Changes the current layout used by the listview to the layout passed in. Stores selection in localstorage
*
* @param {Number} nodeID Id of the current node displayed in the content editor
* @param {Object} selectedLayout Layout selected as the layout to set as the current layout
* @param {Array} availableLayouts Array of all allowed layouts, available from $scope.model.config.layouts
*/
function setLayout(nodeId, selectedLayout, availableLayouts) {
var activeLayout = {};
@@ -3603,6 +3673,18 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#saveLayoutInLocalStorage
* @methodOf umbraco.services.listViewHelper
*
* @description
* Stores a given layout as the current default selection in local storage
*
* @param {Number} nodeId Id of the current node displayed in the content editor
* @param {Object} selectedLayout Layout selected as the layout to set as the current layout
*/
function saveLayoutInLocalStorage(nodeId, selectedLayout) {
var layoutFound = false;
var storedLayouts = [];
@@ -3633,6 +3715,17 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#getFirstAllowedLayout
* @methodOf umbraco.services.listViewHelper
*
* @description
* Returns currently selected layout, or alternatively the first layout in the available layouts collection
*
* @param {Array} layouts Array of all allowed layouts, available from $scope.model.config.layouts
*/
function getFirstAllowedLayout(layouts) {
var firstAllowedLayout = {};
@@ -3648,6 +3741,23 @@ function keyboardService($window, $timeout) {
return firstAllowedLayout;
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#selectHandler
* @methodOf umbraco.services.listViewHelper
*
* @description
* Helper method for working with item selection via a checkbox, internally it uses selectItem and deselectItem.
* Working with this method, requires its triggered via a checkbox which can then pass in its triggered $event
* When the checkbox is clicked, this method will toggle selection of the associated item so it matches the state of the checkbox
*
* @param {Object} selectedItem Item being selected or deselected by the checkbox
* @param {Number} selectedIndex Index of item being selected/deselected, usually passed as $index
* @param {Array} items All items in the current listview, available as $scope.items
* @param {Array} selection All selected items in the current listview, available as $scope.selection
* @param {Event} $event Event triggered by the checkbox being checked to select / deselect an item
*/
function selectHandler(selectedItem, selectedIndex, items, selection, $event) {
var start = 0;
@@ -3692,6 +3802,18 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#selectItem
* @methodOf umbraco.services.listViewHelper
*
* @description
* Selects a given item to the listview selection array, requires you pass in the inherited $scope.selection collection
*
* @param {Object} item Item to select
* @param {Array} selection Listview selection, available as $scope.selection
*/
function selectItem(item, selection) {
var isSelected = false;
for (var i = 0; selection.length > i; i++) {
@@ -3706,6 +3828,18 @@ function keyboardService($window, $timeout) {
}
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#deselectItem
* @methodOf umbraco.services.listViewHelper
*
* @description
* Deselects a given item from the listviews selection array, requires you pass in the inherited $scope.selection collection
*
* @param {Object} item Item to deselect
* @param {Array} selection Listview selection, available as $scope.selection
*/
function deselectItem(item, selection) {
for (var i = 0; selection.length > i; i++) {
var selectedItem = selection[i];
@@ -3716,6 +3850,20 @@ function keyboardService($window, $timeout) {
}
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#clearSelection
* @methodOf umbraco.services.listViewHelper
*
* @description
* Removes a given number of items and folders from the listviews selection array
* Folders can only be passed in if the listview is used in the media section which has a concept of folders.
*
* @param {Array} items Items to remove, can be null
* @param {Array} folders Folders to remove, can be null
* @param {Array} selection Listview selection, available as $scope.selection
*/
function clearSelection(items, folders, selection) {
var i = 0;
@@ -3729,7 +3877,7 @@ function keyboardService($window, $timeout) {
}
}
if (angular.isArray(items)) {
if(angular.isArray(folders)) {
for (i = 0; folders.length > i; i++) {
var folder = folders[i];
folder.selected = false;
@@ -3737,6 +3885,20 @@ function keyboardService($window, $timeout) {
}
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#selectAllItems
* @methodOf umbraco.services.listViewHelper
*
* @description
* Helper method for toggling the select state on all items in the active listview
* Can only be used from a checkbox as a checkbox $event is required to pass in.
*
* @param {Array} items Items to toggle selection on, should be $scope.items
* @param {Array} selection Listview selection, available as $scope.selection
* @param {$event} $event Event passed from the checkbox being toggled
*/
function selectAllItems(items, selection, $event) {
var checkbox = $event.target;
@@ -3768,6 +3930,20 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#isSelectedAll
* @methodOf umbraco.services.listViewHelper
*
* @description
* Method to determine if all items on the current page in the list has been selected
* Given the current items in the view, and the current selection, it will return true/false
*
* @param {Array} items Items to test if all are selected, should be $scope.items
* @param {Array} selection Listview selection, available as $scope.selection
* @returns {Boolean} boolean indicate if all items in the listview have been selected
*/
function isSelectedAll(items, selection) {
var numberOfSelectedItem = 0;
@@ -3791,10 +3967,35 @@ function keyboardService($window, $timeout) {
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#setSortingDirection
* @methodOf umbraco.services.listViewHelper
*
* @description
* *Internal* method for changing sort order icon
* @param {String} col Column alias to order after
* @param {String} direction Order direction `asc` or `desc`
* @param {Object} options object passed from the parent listview available as $scope.options
*/
function setSortingDirection(col, direction, options) {
return options.orderBy.toUpperCase() === col.toUpperCase() && options.orderDirection === direction;
}
/**
* @ngdoc method
* @name umbraco.services.listViewHelper#setSorting
* @methodOf umbraco.services.listViewHelper
*
* @description
* Method for setting the field on which the listview will order its items after.
*
* @param {String} field Field alias to order after
* @param {Boolean} allow Determines if the user is allowed to set this field, normally true
* @param {Object} options Options object passed from the parent listview available as $scope.options
*/
function setSorting(field, allow, options) {
if (allow) {
options.orderBy = field;
@@ -3806,12 +4007,12 @@ function keyboardService($window, $timeout) {
}
}
}
//This takes in a dictionary of Ids with Permissions and determines
// the intersect of all permissions to return an object representing the
// listview button permissions
function getButtonPermissions(unmergedPermissions, currentIdsWithPermissions) {
if (currentIdsWithPermissions == null) {
currentIdsWithPermissions = {};
}
@@ -3835,26 +4036,28 @@ function keyboardService($window, $timeout) {
canCopy: _.contains(intersectPermissions, 'O'), //Magic Char = O
canCreate: _.contains(intersectPermissions, 'C'), //Magic Char = C
canDelete: _.contains(intersectPermissions, 'D'), //Magic Char = D
canMove: _.contains(intersectPermissions, 'M'), //Magic Char = M
canMove: _.contains(intersectPermissions, 'M'), //Magic Char = M
canPublish: _.contains(intersectPermissions, 'U'), //Magic Char = U
canUnpublish: _.contains(intersectPermissions, 'U'), //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
canUnpublish: _.contains(intersectPermissions, 'U'), //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
};
}
var service = {
getLayout: getLayout,
getFirstAllowedLayout: getFirstAllowedLayout,
setLayout: setLayout,
saveLayoutInLocalStorage: saveLayoutInLocalStorage,
selectHandler: selectHandler,
selectItem: selectItem,
deselectItem: deselectItem,
clearSelection: clearSelection,
selectAllItems: selectAllItems,
isSelectedAll: isSelectedAll,
setSortingDirection: setSortingDirection,
setSorting: setSorting,
getButtonPermissions: getButtonPermissions
getLayout: getLayout,
getFirstAllowedLayout: getFirstAllowedLayout,
setLayout: setLayout,
saveLayoutInLocalStorage: saveLayoutInLocalStorage,
selectHandler: selectHandler,
selectItem: selectItem,
deselectItem: deselectItem,
clearSelection: clearSelection,
selectAllItems: selectAllItems,
isSelectedAll: isSelectedAll,
setSortingDirection: setSortingDirection,
setSorting: setSorting,
getButtonPermissions: getButtonPermissions
};
return service;
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
<%@ Page language="c#" AutoEventWireup="True" %>
I'm alive!
+1 -1
View File
@@ -37,7 +37,7 @@
Umbraco web.config configuration documentation can be found here:
http://our.umbraco.org/documentation/using-umbraco/config-files/#webconfig
-->
<add key="umbracoConfigurationStatus" value="7.4.2" />
<add key="umbracoConfigurationStatus" value="7.4.3" />
<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" />
<add key="umbracoContentXML" value="~/App_Data/umbraco.config" />