Merge remote-tracking branch 'origin/v8/dev' into netcore/dev
# Conflicts: # src/SolutionInfo.cs
This commit is contained in:
+3
-1
@@ -39,6 +39,8 @@ To build Umbraco, fire up PowerShell and move to Umbraco's repository root (the
|
||||
|
||||
build/build.ps1
|
||||
|
||||
If you only see a build.bat-file, you're probably on the wrong branch. If you switch to the correct branch (dev-v8) the file will appear and you can build it.
|
||||
|
||||
You might run into [Powershell quirks](#powershell-quirks).
|
||||
|
||||
### Build Infrastructure
|
||||
@@ -209,4 +211,4 @@ The best solution is to unblock the Zip file before un-zipping: right-click the
|
||||
|
||||
### Git Quirks
|
||||
|
||||
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
|
||||
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
|
||||
|
||||
@@ -59,7 +59,8 @@ Great question! The short version goes like this:
|
||||
* **Clone** - when GitHub has created your fork, you can clone it in your favorite Git tool
|
||||
|
||||

|
||||
|
||||
|
||||
* **Switch to the correct branch** - switch to the v8-dev branch
|
||||
* **Build** - build your fork of Umbraco locally as described in [building Umbraco from source code](BUILD.md)
|
||||
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](#questions)
|
||||
* **Commit** - done? Yay! 🎉 **Important:** create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `12345`. When you have a branch, commit your changes. Don't commit to `v8/dev`, create a new branch first.
|
||||
|
||||
@@ -7,15 +7,15 @@ A brief description of the issue goes here.
|
||||
|
||||
<!--
|
||||
|
||||
If you haven't yet done so, please read the "contributing guidelines"
|
||||
thoroughly. Then, proceed by filling out the rest of the details in the issue
|
||||
template below. The more details you can give us, the easier it will be for us
|
||||
Please fill out the rest of the details in the issue template below.
|
||||
The more details you can give us, the easier it will be for us
|
||||
to determine the cause of a problem.
|
||||
|
||||
See: https://github.com/umbraco/Umbraco-CMS/blob/v8/dev/.github/CONTRIBUTING.md
|
||||
|
||||
-->
|
||||
|
||||
## Umbraco version
|
||||
|
||||
I am seeing this issue on Umbraco version: <!-- please note the version here -->
|
||||
|
||||
|
||||
Reproduction
|
||||
|
||||
@@ -11,17 +11,12 @@ Y88 88Y 888 888 888 888 d88P 888 888 888 Y88b. Y88..88P
|
||||
|
||||
Don't forget to build!
|
||||
|
||||
We've done our best to transform your configuration files but in case something is not quite right: remember we
|
||||
backed up your files in App_Data\NuGetBackup so you can find the original files before they were transformed.
|
||||
|
||||
We've overwritten all the files in the Umbraco folder, these have been backed up in
|
||||
App_Data\NuGetBackup. We didn't overwrite the UI.xml file nor did we remove any files or folders that you or
|
||||
a package might have added. Only the existing files were overwritten. If you customized anything then make
|
||||
sure to do a compare and merge with the NuGetBackup folder.
|
||||
We've done our best to transform your configuration files but in case something is not quite right: we recommmend you look in source control for the previous version so you can find the original files before they were transformed.
|
||||
|
||||
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
|
||||
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
|
||||
Publish this won't affect you.
|
||||
|
||||
The following items will now be automatically included when creating a deploy package or publishing to the file
|
||||
system: umbraco, config\splashes and global.asax.
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace Umbraco.Core.Models
|
||||
@@ -9,7 +8,7 @@ namespace Umbraco.Core.Models
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
[DataContract(Name = "pagedCollection", Namespace = "")]
|
||||
public class PagedResult<T>
|
||||
public abstract class PagedResult
|
||||
{
|
||||
public PagedResult(long totalItems, long pageNumber, long pageSize)
|
||||
{
|
||||
@@ -39,9 +38,6 @@ namespace Umbraco.Core.Models
|
||||
[DataMember(Name = "totalItems")]
|
||||
public long TotalItems { get; private set; }
|
||||
|
||||
[DataMember(Name = "items")]
|
||||
public IEnumerable<T> Items { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Calculates the skip size based on the paged parameters specified
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace Umbraco.Core.Models
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a paged result for a model collection
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
[DataContract(Name = "pagedCollection", Namespace = "")]
|
||||
public class PagedResult<T> : PagedResult
|
||||
{
|
||||
public PagedResult(long totalItems, long pageNumber, long pageSize)
|
||||
: base(totalItems, pageNumber, pageSize)
|
||||
{ }
|
||||
|
||||
[DataMember(Name = "items")]
|
||||
public IEnumerable<T> Items { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -3083,7 +3083,7 @@ namespace Umbraco.Core.Services.Implement
|
||||
var version = GetVersion(versionId);
|
||||
|
||||
//Good ole null checks
|
||||
if (content == null || version == null)
|
||||
if (content == null || version == null || content.Trashed)
|
||||
{
|
||||
return new OperationResult(OperationResultType.FailedCannot, evtMsgs);
|
||||
}
|
||||
|
||||
@@ -405,6 +405,21 @@ namespace Umbraco.Core.Services.Implement
|
||||
/// <returns></returns>
|
||||
public ITemplate CreateTemplateWithIdentity(string name, string alias, string content, ITemplate masterTemplate = null, int userId = Constants.Security.SuperUserId)
|
||||
{
|
||||
if (name == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(name));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(name))
|
||||
{
|
||||
throw new ArgumentException("Name cannot be empty or contain only white-space characters", nameof(name));
|
||||
}
|
||||
|
||||
if (name.Length > 255)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(name), "Name cannot be more than 255 characters in length.");
|
||||
}
|
||||
|
||||
// file might already be on disk, if so grab the content to avoid overwriting
|
||||
var template = new Template(name, alias)
|
||||
{
|
||||
@@ -539,6 +554,17 @@ namespace Umbraco.Core.Services.Implement
|
||||
/// <param name="userId"></param>
|
||||
public void SaveTemplate(ITemplate template, int userId = Constants.Security.SuperUserId)
|
||||
{
|
||||
if (template == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(template));
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(template.Name) || template.Name.Length > 255)
|
||||
{
|
||||
throw new InvalidOperationException("Name cannot be null, empty, contain only white-space characters or be more than 255 characters in length.");
|
||||
}
|
||||
|
||||
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
if (scope.Events.DispatchCancelable(SavingTemplate, this, new SaveEventArgs<ITemplate>(template)))
|
||||
|
||||
@@ -816,8 +816,8 @@ namespace Umbraco.Core.Services.Implement
|
||||
{
|
||||
//trimming username and email to make sure we have no trailing space
|
||||
member.Username = member.Username.Trim();
|
||||
member.Email = member.Email.Trim();
|
||||
|
||||
member.Email = member.Email.Trim();
|
||||
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var saveEventArgs = new SaveEventArgs<IMember>(member);
|
||||
|
||||
@@ -254,6 +254,7 @@
|
||||
<Compile Include="Models\Entities\IMediaEntitySlim.cs" />
|
||||
<Compile Include="Models\Entities\IMemberEntitySlim.cs" />
|
||||
<Compile Include="Models\Entities\MediaEntitySlim.cs" />
|
||||
<Compile Include="Models\PagedResult.cs" />
|
||||
<Compile Include="Models\Entities\MemberEntitySlim.cs" />
|
||||
<Compile Include="Models\PublishedContent\ILivePublishedModelFactory.cs" />
|
||||
<Compile Include="Models\PublishedContent\IndexedArrayItem.cs" />
|
||||
@@ -603,6 +604,11 @@
|
||||
<Compile Include="Models\MemberTypePropertyProfileAccess.cs" />
|
||||
<Compile Include="Models\Packaging\InstallationSummary.cs" />
|
||||
<Compile Include="Models\Packaging\PreInstallWarnings.cs" />
|
||||
<Compile Include="Models\PagedResultOfT.cs" />
|
||||
<Compile Include="Models\PartialView.cs" />
|
||||
<Compile Include="Models\PartialViewType.cs" />
|
||||
<Compile Include="Models\Property.cs" />
|
||||
<Compile Include="Models\PropertyCollection.cs" />
|
||||
<Compile Include="Models\PropertyGroup.cs" />
|
||||
<Compile Include="Models\PropertyGroupCollection.cs" />
|
||||
<Compile Include="Models\PropertyType.cs" />
|
||||
|
||||
+3
-2
@@ -239,12 +239,13 @@ Use this directive to construct a header inside the main editor window.
|
||||
if (scope.editorfor) {
|
||||
localizeVars.push(scope.editorfor);
|
||||
}
|
||||
localizationService.localizeMany(localizeVars).then(function (data) {
|
||||
localizationService.localizeMany(localizeVars).then(function(data) {
|
||||
setAccessibilityForEditor(data);
|
||||
scope.loading = false;
|
||||
});
|
||||
} else {
|
||||
scope.loading = false;
|
||||
}
|
||||
|
||||
scope.goBack = function () {
|
||||
if (scope.onBack) {
|
||||
scope.onBack();
|
||||
|
||||
@@ -389,7 +389,7 @@ function dataTypeResource($q, $http, umbDataFormatter, umbRequestHelper) {
|
||||
(umbRequestHelper.getApiUrl(
|
||||
"dataTypeApiBaseUrl",
|
||||
"PostRenameContainer",
|
||||
{ id: id, name: name })),
|
||||
{ id: id, name: encodeURIComponent(name) })),
|
||||
"Failed to rename the folder with id " + id);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -107,5 +107,5 @@
|
||||
.umb-panel-group__details-status-action-description {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
padding-left: 165px;
|
||||
padding-left:165px;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
|
||||
.umb-healthcheck-help-text {
|
||||
line-height: 1.6em;
|
||||
max-width: 750px;
|
||||
}
|
||||
|
||||
.umb-healthcheck-action-bar {
|
||||
|
||||
@@ -415,8 +415,6 @@
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.umb-sortable-thumbnails.ui-sortable:not(.ui-sortable-disabled) {
|
||||
@@ -425,9 +423,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
.umb-sortable-thumbnails li:hover .umb-sortable-thumbnails__actions {
|
||||
.umb-sortable-thumbnails li:hover .umb-sortable-thumbnails__action {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.umb-sortable-thumbnails .umb-sortable-thumbnails__action {
|
||||
@@ -443,6 +440,12 @@
|
||||
margin-left: 5px;
|
||||
text-decoration: none;
|
||||
.box-shadow(0 1px 2px rgba(0,0,0,0.25));
|
||||
opacity: 0;
|
||||
transition: opacity .1s ease-in-out;
|
||||
|
||||
.tabbing-active &:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.umb-sortable-thumbnails .umb-sortable-thumbnails__action.-red {
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
title="{{historyLabel}}">
|
||||
|
||||
<umb-button
|
||||
ng-hide="node.trashed"
|
||||
type="button"
|
||||
button-style="outline"
|
||||
action="openRollback()"
|
||||
|
||||
@@ -4,13 +4,15 @@
|
||||
|
||||
<umb-box>
|
||||
<umb-box-content>
|
||||
<h3>Hours of Umbraco training videos are only a click away</h3>
|
||||
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="https://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
<h3><localize key="settingsDashboardVideos_trainingHeadline">Hours of Umbraco training videos are only a click away</localize></h3>
|
||||
<localize key="settingsDashboardVideos_trainingDescription">
|
||||
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
</localize>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
|
||||
<div ng-show="videos.length">
|
||||
<h4>To get you started:</h4>
|
||||
<h4><localize key="settingsDashboardVideos_getStarted">To get you started</localize>:</h4>
|
||||
<ul class="thumbnails" >
|
||||
<li class="span2" ng-repeat="video in videos">
|
||||
<div class="thumbnail" style="margin-right: 20px">
|
||||
|
||||
@@ -100,8 +100,12 @@
|
||||
<div class="umb-panel-group__details-check">
|
||||
|
||||
<div class="umb-panel-group__details-check-title">
|
||||
<div class="umb-panel-group__details-check-name">Search</div>
|
||||
<div class="umb-panel-group__details-check-description">Search the index and view the results</div>
|
||||
<div class="umb-panel-group__details-check-name">
|
||||
<localize key="general_search">Search</localize>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-check-description">
|
||||
<localize key="examineManagement_searchDescription">Search the index and view the results</localize>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-group__details-status">
|
||||
@@ -225,7 +229,7 @@
|
||||
<div class="umb-panel-group__details-status-text">
|
||||
<div>{{vm.selectedIndex.healthStatus}}</div>
|
||||
<div ng-show="!vm.selectedIndex" class="color-red">
|
||||
The index cannot be read and will need to be rebuilt
|
||||
<localize key="examineManagement_indexCannotRead">The index cannot be read and will need to be rebuilt</localize>
|
||||
</div>
|
||||
<!--<div ng-if="status.description" ng-bind-html="status.description"></div>-->
|
||||
</div>
|
||||
@@ -377,13 +381,14 @@
|
||||
</div>
|
||||
|
||||
<div ng-show="vm.selectedIndex.processingAttempts >= 100">
|
||||
The process is taking longer than expected, check the umbraco log to see if there have been any errors during this operation
|
||||
<localize key="examineManagement_processIsTakingLonger">The process is taking longer than expected, check the umbraco log to see if there have been any errors during this operation</localize>
|
||||
</div>
|
||||
|
||||
</ng-form>
|
||||
|
||||
<div class="umb-panel-group__details-status-action-description" ng-show="!vm.selectedIndex.canRebuild">
|
||||
This index cannot be rebuilt because it has no assigned <code>IIndexPopulator</code>
|
||||
<localize key="examineManagement_indexCannotRebuild">This index cannot be rebuilt because it has no assigned </localize>
|
||||
<code><localize key="examineManagement_iIndexPopulator">IIndexPopulator</localize></code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,78 +4,70 @@
|
||||
|
||||
<umb-box>
|
||||
<umb-box-content>
|
||||
<div class="flex justify-between items-center">
|
||||
<h3 class="bold">Health Check</h3>
|
||||
<umb-button
|
||||
type="button"
|
||||
button-style="success"
|
||||
label="Check All Groups"
|
||||
action="vm.checkAllGroups(vm.groups)">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-help-text">
|
||||
<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.
|
||||
You can add your own health checks, have a look at <a href="https://our.umbraco.com/documentation/Extending/Healthcheck/" target="_blank" class="btn-link -underline">the documentation for more information</a> about custom health checks.</p>
|
||||
<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.
|
||||
You can add your own health checks, have a look at <a href="https://our.umbraco.com/documentation/Extending/Healthcheck/" target="_blank" class="btn-link -underline">the documentation for more information</a> about custom health checks.
|
||||
</p>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-status-actions">
|
||||
<umb-button type="button"
|
||||
button-style="success"
|
||||
label="Check All Groups"
|
||||
action="vm.checkAllGroups(vm.groups)">
|
||||
</umb-button>
|
||||
</div>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
|
||||
<div class="umb-healthcheck">
|
||||
|
||||
<div class="umb-air" ng-repeat="group in vm.groups">
|
||||
<button type="button" class="umb-healthcheck-group" ng-click="vm.openGroup(group);">
|
||||
|
||||
<div class="umb-healthcheck-title">{{group.name}}</div>
|
||||
<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 class="umb-healthcheck-group__load-container" ng-if="group.loading">
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-messages"
|
||||
ng-hide="group.loading || !group.totalSuccess && !group.totalWarning && !group.totalError && !group.totalInfo">
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalSuccess > 0">
|
||||
<i class="icon-check color-green" aria-hidden="true"></i>
|
||||
{{ group.totalSuccess }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_passed">passed</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="umb-healthcheck-messages"
|
||||
ng-hide="group.loading || !group.totalSuccess && !group.totalWarning && !group.totalError && !group.totalInfo"
|
||||
>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalSuccess > 0">
|
||||
<i class="icon-check color-green" aria-hidden="true"></i>
|
||||
{{ group.totalSuccess }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_passed">passed</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalWarning > 0">
|
||||
<i class="icon-alert color-orange" aria-hidden="true"></i>
|
||||
{{ group.totalWarning }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_warning">warning</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalError > 0">
|
||||
<i class="icon-delete color-red" aria-hidden="true"></i>
|
||||
{{ group.totalError }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_failed">failed</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalInfo > 0">
|
||||
<i class="umb-healthcheck-status-icon icon-info" aria-hidden="true"></i>
|
||||
{{ group.totalInfo }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_suggestion">suggestion</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalWarning > 0">
|
||||
<i class="icon-alert color-orange" aria-hidden="true"></i>
|
||||
{{ group.totalWarning }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_warning">warning</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalError > 0">
|
||||
<i class="icon-delete color-red" aria-hidden="true"></i>
|
||||
{{ group.totalError }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_failed">failed</localize>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalInfo > 0">
|
||||
<i class="umb-healthcheck-status-icon icon-info" aria-hidden="true"></i>
|
||||
{{ group.totalInfo }}
|
||||
<span class="sr-only">
|
||||
<localize key="visuallyHiddenTexts_suggestion">suggestion</localize>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-if="vm.viewState === 'details'">
|
||||
@@ -88,31 +80,25 @@
|
||||
</umb-editor-sub-header-content-left>
|
||||
</umb-editor-sub-header>
|
||||
|
||||
|
||||
<div class="umb-panel-group__details">
|
||||
|
||||
<div class="umb-panel-group__details-group">
|
||||
|
||||
<div class="umb-panel-group__details-group-title">
|
||||
<div class="umb-panel-group__details-group-name">{{ vm.selectedGroup.name }}</div>
|
||||
<umb-button
|
||||
type="button"
|
||||
action="vm.checkAllInGroup(vm.selectedGroup, vm.selectedGroup.checks)"
|
||||
label="Check group">
|
||||
<umb-button type="button" button-style="success"
|
||||
action="vm.checkAllInGroup(vm.selectedGroup, vm.selectedGroup.checks)"
|
||||
label="Check group">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-group__details-checks">
|
||||
|
||||
<div class="umb-panel-group__details-check" ng-repeat="check in vm.selectedGroup.checks">
|
||||
|
||||
<div class="umb-panel-group__details-check-title">
|
||||
<div class="umb-panel-group__details-check-name">{{ check.name }}</div>
|
||||
<div class="umb-panel-group__details-check-description">{{ check.description }}</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-group__details-status" ng-repeat="status in check.status">
|
||||
|
||||
<div class="umb-panel-group__details-status-icon-container" aria-hidden="true">
|
||||
<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>
|
||||
@@ -121,7 +107,6 @@
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-group__details-status-content">
|
||||
|
||||
<div class="umb-panel-group__details-status-text">
|
||||
<span class="sr-only" ng-if="status.resultType === 0">
|
||||
<localize key="visuallyHiddenTexts_checkPassed">Check passed</localize>:
|
||||
@@ -145,16 +130,15 @@
|
||||
|
||||
<div ng-if="action.valueRequired">
|
||||
<div><label class="bold">Set new value:</label></div>
|
||||
<input name="providedValue" type="text" ng-model="action.providedValue" required val-email/>
|
||||
<input name="providedValue" type="text" ng-model="action.providedValue" required val-email />
|
||||
</div>
|
||||
|
||||
<umb-button
|
||||
type="button"
|
||||
button-style="success"
|
||||
size="s"
|
||||
disabled="healthCheckAction.providedValue.$invalid"
|
||||
action="vm.executeAction(check, $parent.$index, action)"
|
||||
label="{{action.name}}">
|
||||
<umb-button type="button"
|
||||
button-style="success"
|
||||
size="s"
|
||||
disabled="healthCheckAction.providedValue.$invalid"
|
||||
action="vm.executeAction(check, $parent.$index, action)"
|
||||
label="{{action.name}}">
|
||||
</umb-button>
|
||||
|
||||
</ng-form>
|
||||
@@ -162,9 +146,7 @@
|
||||
<div class="umb-panel-group__details-status-action-description" ng-if="action.description" ng-bind-html="action.description"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-show="check.loading">
|
||||
@@ -173,13 +155,8 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -4,12 +4,14 @@
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
<p>
|
||||
<span ng-show="vm.working">(wait)</span>
|
||||
<span ng-show="vm.working">(<localize key="nuCache_wait">wait</localize>)</span>
|
||||
</p>
|
||||
|
||||
<div class="umb-panel-group__details-group">
|
||||
<div class="umb-panel-group__details-group-title">
|
||||
<div class="umb-panel-group__details-group-name">Published Cache Status</div>
|
||||
<div class="umb-panel-group__details-group-name">
|
||||
<localize key="nuCache_publishedCacheStatus">Published Cache Status</localize>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-checks">
|
||||
<div class="umb-panel-group__details-check">
|
||||
@@ -20,7 +22,9 @@
|
||||
</div>
|
||||
<div class="umb-panel-group__details-status-actions">
|
||||
<div class="umb-panel-group__details-status-action no-background no-left-padding">
|
||||
<button type="button" ng-click="vm.verify($event)" class="btn btn-danger">Refresh status</button>
|
||||
<button type="button" ng-click="vm.verify($event)" class="btn btn-danger">
|
||||
<localize key="nuCache_refreshStatus">Refresh status</localize>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,53 +35,75 @@
|
||||
<br />
|
||||
<div class="umb-panel-group__details-group">
|
||||
<div class="umb-panel-group__details-group-title">
|
||||
<div class="umb-panel-group__details-group-name">Caches</div>
|
||||
<div class="umb-panel-group__details-group-name">
|
||||
<localize key="nuCache_caches">Caches</localize>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-checks">
|
||||
<div class="umb-panel-group__details-check">
|
||||
<div class="umb-panel-group__details-check-title">
|
||||
<div class="umb-panel-group__details-check-name">Memory Cache</div>
|
||||
<div class="umb-panel-group__details-check-name">
|
||||
<localize key="nuCache_memoryCache">Memory Cache</localize>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-check-description">
|
||||
This button lets you reload the in-memory cache, by entirely reloading it from the database
|
||||
cache (but it does not rebuild that database cache). This is relatively fast.
|
||||
Use it when you think that the memory cache has not been properly refreshed, after some events
|
||||
triggered—which would indicate a minor Umbraco issue.
|
||||
(note: triggers the reload on all servers in an LB environment).
|
||||
<localize key="nuCache_memoryCacheDescription">
|
||||
This button lets you reload the in-memory cache, by entirely reloading it from the database
|
||||
cache (but it does not rebuild that database cache). This is relatively fast.
|
||||
Use it when you think that the memory cache has not been properly refreshed, after some events
|
||||
triggered—which would indicate a minor Umbraco issue.
|
||||
(note: triggers the reload on all servers in an LB environment).
|
||||
</localize>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-group__details-status-actions">
|
||||
<div class="umb-panel-group__details-status-action no-background no-left-padding">
|
||||
<button type="button" ng-click="vm.reload($event)" class="btn btn-danger">Reload</button>
|
||||
<button type="button" ng-click="vm.reload($event)" class="btn btn-danger">
|
||||
<localize key="nuCache_reload">Reload</localize>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="umb-panel-group__details-check-title top-border">
|
||||
<div class="umb-panel-group__details-check-name">Database Cache</div>
|
||||
<div class="umb-panel-group__details-check-name">
|
||||
<localize key="nuCache_databaseCache">Database Cache</localize>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-check-description">
|
||||
This button lets you rebuild the database cache, ie the content of the cmsContentNu table.
|
||||
<strong>Rebuilding can be expensive.</strong>
|
||||
Use it when reloading is not enough, and you think that the database cache has not been
|
||||
properly generated—which would indicate some critical Umbraco issue.
|
||||
<localize key="nuCache_databaseCacheDescription">
|
||||
This button lets you rebuild the database cache, ie the content of the cmsContentNu table.
|
||||
<strong>Rebuilding can be expensive.</strong>
|
||||
Use it when reloading is not enough, and you think that the database cache has not been
|
||||
properly generated—which would indicate some critical Umbraco issue.
|
||||
</localize>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-status-actions">
|
||||
<div class="umb-panel-group__details-status-action no-background no-left-padding">
|
||||
<button type="button" ng-click="vm.rebuild($event)" class="btn btn-danger">Rebuild</button>
|
||||
<button type="button" ng-click="vm.rebuild($event)" class="btn btn-danger">
|
||||
<localize key="nuCache_rebuild">Rebuild</localize>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="umb-panel-group__details-check-title top-border">
|
||||
<div class="umb-panel-group__details-check-name">Internals</div>
|
||||
<div class="umb-panel-group__details-check-name">
|
||||
<localize key="nuCache_internals">Internals</localize>
|
||||
</div>
|
||||
<div class="umb-panel-group__details-check-description">
|
||||
This button lets you trigger a NuCache snapshots collection (after running a fullCLR GC).
|
||||
Unless you know what that means, you probably do <em>not</em> need to use it.
|
||||
<localize key="nuCache_internalsDescription">
|
||||
This button lets you trigger a NuCache snapshots collection (after running a fullCLR GC).
|
||||
Unless you know what that means, you probably do <em>not</em> need to use it.
|
||||
</localize>
|
||||
|
||||
</div>
|
||||
<div class="umb-panel-group__details-status-actions">
|
||||
<div class="umb-panel-group__details-status-action no-background no-left-padding">
|
||||
<button type="button" ng-click="vm.collect($event)" class="btn btn-danger">Collect</button>
|
||||
<button type="button" ng-click="vm.collect($event)" class="btn btn-danger">
|
||||
<localize key="nuCache_collect">Collect</localize>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,39 +6,51 @@
|
||||
|
||||
<umb-box ng-hide="vm.loading">
|
||||
<umb-box-content>
|
||||
<h3 class="bold">Performance profiling</h3>
|
||||
<h3 class="bold">
|
||||
<localize key="profiling_performanceProfiling">Performance profiling</localize>
|
||||
</h3>
|
||||
<div ng-show="vm.profilerEnabled">
|
||||
<div class="mb4">
|
||||
<p>
|
||||
Umbraco currently runs in debug mode. This means you can use the built-in performance profiler to assess the performance when rendering pages.
|
||||
</p>
|
||||
<p>
|
||||
If you want to activate the profiler for a specific page rendering, simply add <b>umbDebug=true</b> to the querystring when requesting the page.
|
||||
</p>
|
||||
<p>
|
||||
If you want the profiler to be activated by default for all page renderings, you can use the toggle below.
|
||||
It will set a cookie in your browser, which then activates the profiler automatically.
|
||||
In other words, the profiler will only be active by default in <i>your</i> browser - not everyone else's.
|
||||
</p>
|
||||
<localize key="profiling_performanceProfilingDescription">
|
||||
<p>
|
||||
Umbraco currently runs in debug mode. This means you can use the built-in performance profiler to assess the performance when rendering pages.
|
||||
</p>
|
||||
<p>
|
||||
If you want to activate the profiler for a specific page rendering, simply add <b>umbDebug=true</b> to the querystring when requesting the page.
|
||||
</p>
|
||||
<p>
|
||||
If you want the profiler to be activated by default for all page renderings, you can use the toggle below.
|
||||
It will set a cookie in your browser, which then activates the profiler automatically.
|
||||
In other words, the profiler will only be active by default in <i>your</i> browser - not everyone else's.
|
||||
</p>
|
||||
</localize>
|
||||
</div>
|
||||
<div class="mb4">
|
||||
<div class="flex items-center">
|
||||
<umb-toggle checked="vm.alwaysOn" id="profilerAlwaysOn" on-click="vm.toggle()"></umb-toggle>
|
||||
<label for="profilerAlwaysOn" class="mb0 ml2">Activate the profiler by default</label>
|
||||
<label for="profilerAlwaysOn" class="mb0 ml2">
|
||||
<localize key="profiling_activateByDefault">Activate the profiler by default</localize>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<h4>Friendly reminder</h4>
|
||||
<p>
|
||||
You should never let a production site run in debug mode. Debug mode is turned off by setting <b>debug="false"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
<h4>
|
||||
<localize key="profiling_reminder">Friendly reminder</localize>
|
||||
</h4>
|
||||
<localize key="profiling_reminderDescription">
|
||||
<p>
|
||||
You should never let a production site run in debug mode. Debug mode is turned off by setting <b>debug="false"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
</localize>
|
||||
</div>
|
||||
<div ng-hide="vm.profilerEnabled">
|
||||
<p>
|
||||
Umbraco currently does not run in debug mode, so you can't use the built-in profiler. This is how it should be for a production site.
|
||||
</p>
|
||||
<p>
|
||||
Debug mode is turned on by setting <b>debug="true"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
<localize key="profiling_profilerEnabledDescription">
|
||||
<p>
|
||||
Umbraco currently does not run in debug mode, so you can't use the built-in profiler. This is how it should be for a production site.
|
||||
</p>
|
||||
<p>
|
||||
Debug mode is turned on by setting <b>debug="true"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
</localize>
|
||||
</div>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
|
||||
@@ -1,12 +1,18 @@
|
||||
<h3>Hours of Umbraco training videos are only a click away</h3>
|
||||
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
<h3>
|
||||
<localize key="settingsDashboardVideos_trainingHeadline">Hours of Umbraco training videos are only a click away</localize>
|
||||
</h3>
|
||||
<localize key="settingsDashboardVideos_trainingDescription">
|
||||
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
</localize>
|
||||
|
||||
<div class="row-fluid"
|
||||
ng-init="init('https://umbraco.tv/videos/implementor/chapterrss?sort=no')"
|
||||
ng-controller="Umbraco.Dashboard.StartupVideosController">
|
||||
|
||||
<div ng-show="videos.length">
|
||||
<h4>To get you started:</h4>
|
||||
<h4>
|
||||
<localize key="settingsDashboardVideos_getStarted">To get you started</localize>:
|
||||
</h4>
|
||||
<ul class="thumbnails" >
|
||||
<li class="span2" ng-repeat="video in videos">
|
||||
<div class="thumbnail" style="margin-right: 20px">
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
</div>
|
||||
|
||||
<umb-control-group label="Enter a folder name" hide-label="false">
|
||||
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
<input type="text" name="folderName" maxlength="255" ng-model="model.folderName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
</umb-control-group>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
<umb-control-group>
|
||||
<label for="collectionName" class="control-label">Name of the Parent Document Type</label>
|
||||
<input type="text" name="collectionName" id="collectionName" ng-model="model.collectionName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
<input type="text" name="collectionName" id="collectionName" ng-model="model.collectionName" maxlength="255" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
|
||||
<umb-checkbox ng-if="model.disableTemplates === false"
|
||||
name="collectionCreateTemplate"
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
<umb-control-group>
|
||||
<label for="collectionItemName" class="control-label">Name of the Item Document Type</label>
|
||||
<input type="text" name="collectionItemName" id="collectionItemName" ng-model="model.collectionItemName" class="umb-textstring textstring input-block-level" required />
|
||||
<input type="text" name="collectionItemName" id="collectionItemName" ng-model="model.collectionItemName" maxlength="255" class="umb-textstring textstring input-block-level" required />
|
||||
|
||||
<umb-checkbox ng-if="model.disableTemplates === false"
|
||||
name="collectionItemCreateTemplate"
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
var documentTypeId = $routeParams.id;
|
||||
var create = $routeParams.create;
|
||||
var noTemplate = $routeParams.notemplate;
|
||||
var isElement = $routeParams.iselement;
|
||||
var allowVaryByCulture = $routeParams.culturevary;
|
||||
var infiniteMode = $scope.model && $scope.model.infiniteMode;
|
||||
|
||||
vm.save = save;
|
||||
@@ -63,6 +65,8 @@
|
||||
documentTypeId = $scope.model.id;
|
||||
create = $scope.model.create;
|
||||
noTemplate = $scope.model.notemplate;
|
||||
isElement = $scope.model.isElement;
|
||||
allowVaryByCulture = $scope.model.allowVaryByCulture;
|
||||
vm.submitButtonKey = "buttons_saveAndClose";
|
||||
vm.generateModelsKey = "buttons_generateModelsAndClose";
|
||||
}
|
||||
@@ -430,7 +434,14 @@
|
||||
contentType.defaultTemplate = contentTypeHelper.insertDefaultTemplatePlaceholder(contentType.defaultTemplate);
|
||||
contentType.allowedTemplates = contentTypeHelper.insertTemplatePlaceholder(contentType.allowedTemplates);
|
||||
}
|
||||
|
||||
// set isElement checkbox by default
|
||||
if (isElement) {
|
||||
contentType.isElement = true;
|
||||
}
|
||||
// set vary by culture checkbox by default
|
||||
if (allowVaryByCulture) {
|
||||
contentType.allowCultureVariant = true;
|
||||
}
|
||||
// convert icons for content type
|
||||
convertLegacyIcons(contentType);
|
||||
|
||||
|
||||
@@ -58,7 +58,9 @@
|
||||
</td>
|
||||
<td>
|
||||
<span ng-if="language.fallbackLanguageId">{{vm.getLanguageById(language.fallbackLanguageId).name}}</span>
|
||||
<span ng-if="!language.fallbackLanguageId">(none)</span>
|
||||
<span ng-if="!language.fallbackLanguageId">
|
||||
(<localize key="languages_none">none</localize>)
|
||||
</span>
|
||||
</td>
|
||||
<td style="text-align: right;">
|
||||
<umb-button ng-if="!language.isDefault"
|
||||
|
||||
@@ -20,16 +20,16 @@
|
||||
|
||||
<div class="umb-sortable-thumbnails__actions" data-element="sortable-thumbnail-actions">
|
||||
|
||||
<a role="button" aria-label="Remove" class="umb-sortable-thumbnails__action -red" data-element="action-remove" ng-click="remove()">
|
||||
<i class="icon icon-delete"></i>
|
||||
</a>
|
||||
<button aria-label="Remove" class="umb-sortable-thumbnails__action -red btn-reset" data-element="action-remove" ng-click="remove()">
|
||||
<i class="icon icon-delete" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li style="border: none;" class="add-wrapper unsortable" ng-hide="model.value">
|
||||
<a role="button" aria-label="Open media picker" data-element="sortable-thumbnails-add" class="add-link add-link-square" ng-click="add()" prevent-default>
|
||||
<i class="icon icon-add large"></i>
|
||||
</a>
|
||||
<button aria-label="Open media picker" data-element="sortable-thumbnails-add" class="add-link add-link-square btn-reset" ng-click="add()" prevent-default>
|
||||
<i class="icon icon-add large" aria-hidden="true"></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -36,18 +36,18 @@
|
||||
</umb-file-icon>
|
||||
|
||||
<div class="umb-sortable-thumbnails__actions" data-element="sortable-thumbnail-actions">
|
||||
<a role="button" aria-label="Edit media" ng-if="allowEditMedia" class="umb-sortable-thumbnails__action" data-element="action-edit" ng-click="vm.editItem(media)">
|
||||
<i class="icon icon-edit"></i>
|
||||
</a>
|
||||
<a role="button" aria-label="Remove" class="umb-sortable-thumbnails__action -red" data-element="action-remove" ng-click="vm.remove($index)">
|
||||
<i class="icon icon-delete"></i>
|
||||
</a>
|
||||
<button aria-label="Edit media" ng-if="allowEditMedia" class="umb-sortable-thumbnails__action btn-reset" data-element="action-edit" ng-click="vm.editItem(media)">
|
||||
<i class="icon icon-edit" aria-hidden="true"></i>
|
||||
</button>
|
||||
<button aria-label="Remove" class="umb-sortable-thumbnails__action -red btn-reset" data-element="action-remove" ng-click="vm.remove($index)">
|
||||
<i class="icon icon-delete" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
</li>
|
||||
<li style="border: none;" class="add-wrapper unsortable" ng-if="vm.showAdd() && allowAddMedia">
|
||||
<a role="button" aria-label="Open media picker" data-element="sortable-thumbnails-add" class="add-link" ng-click="vm.add()" ng-class="{'add-link-square': (mediaItems.length === 0 || isMultiPicker)}" prevent-default>
|
||||
<i class="icon icon-add large"></i>
|
||||
</a>
|
||||
<button aria-label="Open media picker" data-element="sortable-thumbnails-add" class="add-link btn-reset" ng-click="vm.add()" ng-class="{'add-link-square': (mediaItems.length === 0 || isMultiPicker)}" prevent-default>
|
||||
<i class="icon icon-add large" aria-hidden="true"></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -351,6 +351,9 @@
|
||||
<DevelopmentServerPort>9000</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:9000/</IISUrl>
|
||||
<DevelopmentServerPort>8400</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:8400/</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js");
|
||||
Html.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
|
||||
|
||||
@@ -514,6 +514,10 @@
|
||||
<key alias="tools">Værktøjer</key>
|
||||
<key alias="toolsDescription">Værktøjer til at administrere indekset</key>
|
||||
<key alias="fields">felter</key>
|
||||
<key alias="indexCannotRead">Indexet skal bygges igen, for at kunne læses</key>
|
||||
<key alias="processIsTakingLonger">Processen tager længere tid end forventet. Kontrollér Umbraco loggen for at se om der er sket fejl under operationen</key>
|
||||
<key alias="indexCannotRebuild">Dette index kan ikke genbygess for det ikke har nogen</key>
|
||||
<key alias="iIndexPopulator">IIndexPopulator</key>
|
||||
</area>
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Indtast dit brugernavn</key>
|
||||
@@ -1411,6 +1415,7 @@ Mange hilsner fra Umbraco robotten
|
||||
<key alias="noFallbackLanguageOption">Intet fallback-sprog</key>
|
||||
<key alias="fallbackLanguageDescription">For at tillade flersproget indhold, som ikke er tilgængeligt i det anmodede sprog, skal du her vælge et sprog at falde tilbage på.</key>
|
||||
<key alias="fallbackLanguage">Fallback-sprog</key>
|
||||
<key alias="none">ingen</key>
|
||||
</area>
|
||||
<area alias="macro">
|
||||
<key alias="addParameter">Tilføj parameter</key>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -523,6 +523,10 @@
|
||||
<key alias="tools">Tools</key>
|
||||
<key alias="toolsDescription">Tools to manage the index</key>
|
||||
<key alias="fields">fields</key>
|
||||
<key alias="indexCannotRead">The index cannot be read and will need to be rebuilt</key>
|
||||
<key alias="processIsTakingLonger">The process is taking longer than expected, check the umbraco log to see if there have been any errors during this operation</key>
|
||||
<key alias="indexCannotRebuild">This index cannot be rebuilt because it has no assigned</key>
|
||||
<key alias="iIndexPopulator">IIndexPopulator</key>
|
||||
</area>
|
||||
<area alias="placeholders">
|
||||
<key alias="username">Enter your username</key>
|
||||
@@ -1649,6 +1653,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<key alias="noFallbackLanguageOption">No fall back language</key>
|
||||
<key alias="fallbackLanguageDescription">To allow multi-lingual content to fall back to another language if not present in the requested language, select it here.</key>
|
||||
<key alias="fallbackLanguage">Fall back language</key>
|
||||
<key alias="none">none</key>
|
||||
</area>
|
||||
<area alias="macro">
|
||||
<key alias="addParameter">Add parameter</key>
|
||||
@@ -2233,4 +2238,85 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<area alias="propertyActions">
|
||||
<key alias="tooltipForPropertyActionsMenu">Open Property Actions</key>
|
||||
</area>
|
||||
<area alias="nuCache">
|
||||
<key alias="wait">Wait</key>
|
||||
<key alias="refreshStatus">Refresh status</key>
|
||||
<key alias="memoryCache">Memory Cache</key>
|
||||
<key alias="memoryCacheDescription">
|
||||
<![CDATA[
|
||||
This button lets you reload the in-memory cache, by entirely reloading it from the database
|
||||
cache (but it does not rebuild that database cache). This is relatively fast.
|
||||
Use it when you think that the memory cache has not been properly refreshed, after some events
|
||||
triggered—which would indicate a minor Umbraco issue.
|
||||
(note: triggers the reload on all servers in an LB environment).
|
||||
]]>
|
||||
</key>
|
||||
<key alias="reload">Reload</key>
|
||||
<key alias="databaseCache">Database Cache</key>
|
||||
<key alias="databaseCacheDescription">
|
||||
<![CDATA[
|
||||
This button lets you rebuild the database cache, ie the content of the cmsContentNu table.
|
||||
<strong>Rebuilding can be expensive.</strong>
|
||||
Use it when reloading is not enough, and you think that the database cache has not been
|
||||
properly generated—which would indicate some critical Umbraco issue.
|
||||
]]>
|
||||
</key>
|
||||
<key alias="rebuild">Rebuild</key>
|
||||
<key alias="internals">Internals</key>
|
||||
<key alias="internalsDescription">
|
||||
<![CDATA[
|
||||
This button lets you trigger a NuCache snapshots collection (after running a fullCLR GC).
|
||||
Unless you know what that means, you probably do <em>not</em> need to use it.
|
||||
]]>
|
||||
</key>
|
||||
<key alias="collect">Collect</key>
|
||||
<key alias="publishedCacheStatus">Published Cache Status</key>
|
||||
<key alias="caches">Caches</key>
|
||||
</area>
|
||||
<area alias="profiling">
|
||||
<key alias="performanceProfiling">Performance profiling</key>
|
||||
<key alias="performanceProfilingDescription">
|
||||
<![CDATA[
|
||||
<p>
|
||||
Umbraco currently runs in debug mode. This means you can use the built-in performance profiler to assess the performance when rendering pages.
|
||||
</p>
|
||||
<p>
|
||||
If you want to activate the profiler for a specific page rendering, simply add <b>umbDebug=true</b> to the querystring when requesting the page.
|
||||
</p>
|
||||
<p>
|
||||
If you want the profiler to be activated by default for all page renderings, you can use the toggle below.
|
||||
It will set a cookie in your browser, which then activates the profiler automatically.
|
||||
In other words, the profiler will only be active by default in <i>your</i> browser - not everyone else's.
|
||||
</p>
|
||||
]]>
|
||||
</key>
|
||||
<key alias="activateByDefault">Activate the profiler by default</key>
|
||||
<key alias="reminder">Friendly reminder</key>
|
||||
<key alias="reminderDescription">
|
||||
<![CDATA[
|
||||
<p>
|
||||
You should never let a production site run in debug mode. Debug mode is turned off by setting <b>debug="false"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
]]>
|
||||
</key>
|
||||
<key alias="profilerEnabledDescription">
|
||||
<![CDATA[
|
||||
<p>
|
||||
Umbraco currently does not run in debug mode, so you can't use the built-in profiler. This is how it should be for a production site.
|
||||
</p>
|
||||
<p>
|
||||
Debug mode is turned on by setting <b>debug="true"</b> on the <b><compilation /></b> element in web.config.
|
||||
</p>
|
||||
]]>
|
||||
</key>
|
||||
</area>
|
||||
<area alias="settingsDashboardVideos">
|
||||
<key alias="trainingHeadline">Hours of Umbraco training videos are only a click away</key>
|
||||
<key alias="trainingDescription">
|
||||
<![CDATA[
|
||||
<p>Want to master Umbraco? Spend a couple of minutes learning some best practices by watching one of these videos about using Umbraco. And visit <a href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
]]>
|
||||
</key>
|
||||
<key alias="getStarted">To get you started</key>
|
||||
</area>
|
||||
</language>
|
||||
|
||||
@@ -39,7 +39,8 @@ namespace Umbraco.Web.Install.InstallSteps
|
||||
var fileName = IOHelper.MapPath($"{SystemDirectories.Root}/web.config");
|
||||
var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
|
||||
|
||||
var systemWeb = xml.Root.DescendantsAndSelf("system.web").Single();
|
||||
// we only want to get the element that is under the root, (there may be more under <location> tags we don't want them)
|
||||
var systemWeb = xml.Root.Element("system.web");
|
||||
|
||||
// Update appSetting if it exists, or else create a new appSetting for the given key and value
|
||||
var machineKey = systemWeb.Descendants("machineKey").FirstOrDefault();
|
||||
|
||||
Reference in New Issue
Block a user