Add WebCms
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
<h3>Start here</h3>
|
||||
<h4>This section contains the tools to add advanced features to your Umbraco site</h4>
|
||||
<p>From here you can explore and install packages, create macros, add data types, and much more. Start by exploring the below links or videos.</p>
|
||||
|
||||
<h4>Find out more:</h4>
|
||||
|
||||
<ul>
|
||||
<li>Find the answers to your Umbraco questions on our <a class="btn-link -underline href="http://our.umbraco.org/wiki" target="_blank">Community Wiki</a></li>
|
||||
<li>Ask a question in the <a class="btn-link -underline href="http://our.umbraco.org/" target="_blank">Community Forum</a></li>
|
||||
<li>Find an add-on <a class="btn-link -underline href="http://our.umbraco.org/projects" target="_blank">package</a> to help you get going quickly</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.org/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.org/training/training-schedule" target="_blank">training and certification</a> opportunities</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,20 @@
|
||||
<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 class="btn-link -underline" href="http://umbraco.tv" target="_blank">umbraco.tv</a> for even more Umbraco videos</p>
|
||||
|
||||
<div class="row-fluid"
|
||||
ng-init="init('http://umbraco.tv/videos/developer/chapterrss?sort=no')"
|
||||
ng-controller="Umbraco.Dashboard.StartupVideosController">
|
||||
|
||||
<ul class="thumbnails" >
|
||||
<li class="span2" ng-repeat="video in videos">
|
||||
<div class="thumbnail" style="margin-right: 20px; padding: 20px;">
|
||||
<a class="btn-link -underline" target="_blank" href="{{video.link}}" title="{{video.title}}">
|
||||
<img ng-src="{{video.thumbnail}}" alt="{{video.title}}">
|
||||
</a>
|
||||
<a target="_blank" href="{{video.link}}" title="{{video.title}}">
|
||||
<div style="font-weight: bold; text-align: center; margin: 20px 0 0;">{{video.title}}</div>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -0,0 +1,234 @@
|
||||
<div id="examineManagement" ng-controller="Umbraco.Dashboard.ExamineMgmtController">
|
||||
|
||||
<h3>Examine Management</h3>
|
||||
|
||||
<div ng-show="loading">
|
||||
Loading...
|
||||
</div>
|
||||
|
||||
<h4>Indexers</h4>
|
||||
|
||||
<ul ng-hide="loading">
|
||||
<li class="provider" ng-repeat="indexer in indexerDetails">
|
||||
|
||||
<a class="btn-link -underline" href="" ng-click="toggle(indexer, 'showProperties')">
|
||||
{{indexer.name}}
|
||||
</a>
|
||||
|
||||
<ul ng-show="indexer.showProperties">
|
||||
|
||||
<li>
|
||||
|
||||
<a href="" ng-click="toggle(indexer, 'showTools')">Index info & tools</a>
|
||||
|
||||
<div ng-show="indexer.showTools && indexer.isLuceneIndex">
|
||||
<div>
|
||||
<br />
|
||||
<div ng-show="!indexer.isProcessing && (!indexer.processingAttempts || indexer.processingAttempts < 100)" class="btn-group">
|
||||
|
||||
<button type="button" class="btn btn-warning" ng-click="rebuildIndex(indexer)">Rebuild index</button>
|
||||
<button type="button" class="btn btn-warning" ng-click="optimizeIndex(indexer)" ng-show="indexer.documentCount > 0">Optimize index</button>
|
||||
</div>
|
||||
|
||||
<div ng-show="indexer.isProcessing" class="umb-loader-wrapper" ng-show="actionInProgress">
|
||||
<div class="umb-loader"></div>
|
||||
</div>
|
||||
|
||||
<div class="error" ng-show="indexer.processingAttempts >= 100">
|
||||
The process is taking longer than expected, check the umbraco log to see if there have been any errors during this operation
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-bordered table-condensed">
|
||||
<caption> </caption>
|
||||
<tr>
|
||||
<th>Documents in index</th>
|
||||
<td>{{indexer.documentCount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Fields in index</th>
|
||||
<td>{{indexer.fieldCount}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Has deletions?</th>
|
||||
<td>
|
||||
<span>{{indexer.deletionCount > 0}}</span>
|
||||
(<span>{{indexer.deletionCount}}</span>)
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Optimized?</th>
|
||||
<td>
|
||||
<span>{{indexer.isOptimized}}</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li ng-show="indexer.indexCriteria.IncludeNodeTypes.length > 0 || indexer.indexCriteria.ExcludeNodeTypes.length > 0 || indexer.indexCriteria.ParentNodeId">
|
||||
<a href="" ng-click="toggle(indexer, 'showNodeTypes')">Node types</a>
|
||||
<table ng-show="indexer.showNodeTypes" class="table table-bordered table-condensed">
|
||||
<tr ng-show="indexer.indexCriteria.IncludeNodeTypes.length > 0">
|
||||
<th>Include node types</th>
|
||||
<td>{{indexer.indexCriteria.IncludeNodeTypes | json}}</td>
|
||||
</tr>
|
||||
<tr ng-show="indexer.indexCriteria.ExcludeNodeTypes.length > 0">
|
||||
<th>Exclude node types</th>
|
||||
<td>{{indexer.indexCriteria.ExcludeNodeTypes | json}}</td>
|
||||
</tr>
|
||||
<tr ng-show="indexer.indexCriteria.ParentNodeId">
|
||||
<th>Parent node id</th>
|
||||
<td>{{indexer.indexCriteria.ParentNodeId}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
<li ng-show="indexer.indexCriteria.StandardFields.length > 0">
|
||||
<a href="" ng-click="toggle(indexer, 'showSystemFields')">System fields</a>
|
||||
<table ng-show="indexer.showSystemFields" class="table table-bordered table-condensed">
|
||||
<caption> </caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Enable sorting</th>
|
||||
<th>Type</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="field in indexer.indexCriteria.StandardFields">
|
||||
<th>{{field.Name}}</th>
|
||||
<td>{{field.EnableSorting}}</td>
|
||||
<td>{{field.Type}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
<li ng-show="indexer.indexCriteria.UserFields.length > 0">
|
||||
<a href="" ng-click="toggle(indexer, 'showUserFields')">User fields</a>
|
||||
<table ng-show="indexer.showUserFields" class="table table-bordered table-condensed">
|
||||
<caption> </caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Enable sorting</th>
|
||||
<th>Type</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="field in indexer.indexCriteria.UserFields">
|
||||
<th>{{field.Name}}</th>
|
||||
<td>{{field.EnableSorting}}</td>
|
||||
<td>{{field.Type}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="" ng-click="toggle(indexer, 'showProviderProperties')">Provider properties</a>
|
||||
<table ng-show="indexer.showProviderProperties" class="table table-bordered table-condensed">
|
||||
<caption> </caption>
|
||||
<tr ng-repeat="(key, val) in indexer.providerProperties track by $index">
|
||||
<th>{{key}}</th>
|
||||
<td>{{val}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<h4>Searchers</h4>
|
||||
|
||||
<ul ng-hide="loading">
|
||||
<li class="provider" ng-repeat="searcher in searcherDetails">
|
||||
<a class="btn-link -underline" href="" ng-click="toggle(searcher, 'showProperties')">
|
||||
{{searcher.name}}
|
||||
</a>
|
||||
|
||||
<ul ng-show="searcher.showProperties">
|
||||
|
||||
<li class="search-tools">
|
||||
|
||||
<a href="" ng-click="toggle(searcher, 'showTools')">Search tools</a>
|
||||
|
||||
<div ng-show="searcher.showTools">
|
||||
<a class="hide" href="" ng-click="closeSearch(searcher)" ng-show="searcher.isSearching">Hide search results</a>
|
||||
|
||||
<br />
|
||||
|
||||
<form>
|
||||
|
||||
<div class="row form-search">
|
||||
<div class="span8 input-append">
|
||||
<input type="text" class="search-query" ng-model="searcher.searchText" no-dirty-check />
|
||||
<button type="button" class="btn btn-info" ng-click="search(searcher)" ng-disabled="searcher.isProcessing">Search</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="{{searcher.name}}-textSearch" class="radio inline">
|
||||
<input type="radio" name="searchType" id="{{searcher.name}}-textSearch" value="text" ng-model="searcher.searchType" no-dirty-check />
|
||||
Text Search
|
||||
</label>
|
||||
<label for="{{searcher.name}}-luceneSearch" class="radio inline">
|
||||
<input type="radio" name="searchType" id="{{searcher.name}}-luceneSearch" value="lucene" ng-model="searcher.searchType" no-dirty-check />
|
||||
Lucene Search
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
<div class="search-results" ng-show="searcher.isSearching">
|
||||
|
||||
<div ng-show="indexer.isProcessing" class="umb-loader-wrapper" ng-show="indexer.isProcessing">
|
||||
<div class="umb-loader"></div>
|
||||
</div>
|
||||
|
||||
<table ng-hide="searcher.isProcessing" class="table table-bordered table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="score">Score</th>
|
||||
<th class="id">Id</th>
|
||||
<th>Values</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="result in searcher.searchResults">
|
||||
<td>{{result.Score}}</td>
|
||||
<td>{{result.Id}}</td>
|
||||
<td>
|
||||
<span ng-repeat="(key,val) in result.Fields track by $index">
|
||||
<span class=""><em>{{key}}</em>:</span>
|
||||
<span class="text-info">{{val}}</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="" ng-click="toggle(searcher, 'showProviderProperties')">Provider properties</a>
|
||||
<table ng-show="searcher.showProviderProperties" class="table table-bordered table-condensed">
|
||||
<caption> </caption>
|
||||
<tr ng-repeat="(key, val) in searcher.providerProperties track by $index">
|
||||
<th>{{key}}</th>
|
||||
<td>{{val}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,139 @@
|
||||
<div ng-controller="Umbraco.Dashboard.HealthCheckController as vm">
|
||||
|
||||
<div ng-if="vm.viewState === 'list'">
|
||||
|
||||
<h3 class="bold">Health Check</h3>
|
||||
<div class="umb-healthcheck-help-text faded">
|
||||
<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.org/documentation/Extending/Healthcheck/" target="_blank" class="btn-link -underline">the documentation for more information</a> about custom health checks.</p>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-action-bar">
|
||||
<button class="umb-era-button -blue" type="button" ng-click="vm.checkAllGroups(vm.groups);">Check All Groups</button>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck">
|
||||
|
||||
<div class="umb-air" ng-repeat="group in vm.groups" ng-click="vm.openGroup(group);">
|
||||
<div class="umb-healthcheck-group">
|
||||
|
||||
<div class="umb-healthcheck-title">{{group.name}}</div>
|
||||
|
||||
<div class="umb-healthcheck-group__load-container" ng-if="group.loading">
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-messages" ng-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"></i>
|
||||
{{ group.totalSuccess }}
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalWarning > 0">
|
||||
<i class="icon-alert color-yellow"></i>
|
||||
{{ group.totalWarning }}
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalError > 0">
|
||||
<i class="icon-delete color-red"></i>
|
||||
{{ group.totalError }}
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-message" ng-if="group.totalInfo > 0">
|
||||
<i class="umb-healthcheck-status-icon icon-info"></i>
|
||||
{{ group.totalInfo }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-if="vm.viewState === 'details'">
|
||||
|
||||
<umb-editor-sub-header>
|
||||
<umb-editor-sub-header-content-left>
|
||||
<a class="umb-healthcheck-back-link" href="" ng-click="vm.setViewState('list');">← Back to overview</a>
|
||||
</umb-editor-sub-header-content-left>
|
||||
</umb-editor-sub-header>
|
||||
|
||||
|
||||
<div class="umb-healthcheck-group__details">
|
||||
|
||||
<div class="umb-healthcheck-group__details-group-title">
|
||||
<div class="umb-healthcheck-group__details-group-name">{{ vm.selectedGroup.name }}</div>
|
||||
<button class="umb-era-button -white -text-black" type="button" ng-click="vm.checkAllInGroup(vm.selectedGroup, vm.selectedGroup.checks);">Check group</button>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-group__details-checks">
|
||||
|
||||
<div class="umb-healthcheck-group__details-check" ng-repeat="check in vm.selectedGroup.checks">
|
||||
|
||||
<div class="umb-healthcheck-group__details-check-title">
|
||||
<div class="umb-healthcheck-group__details-check-name">{{ check.name }}</div>
|
||||
<div class="umb-healthcheck-group__details-check-description">{{ check.description }}</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-group__details-status" ng-repeat="status in check.status">
|
||||
|
||||
<div class="umb-healthcheck-group__details-status-icon-container">
|
||||
<i class="umb-healthcheck-status-icon icon-check color-green" ng-if="status.resultType === 0"></i>
|
||||
<i class="umb-healthcheck-status-icon icon-alert icon-alert color-yellow" ng-if="status.resultType === 1"></i>
|
||||
<i class="umb-healthcheck-status-icon icon-delete icon-delete color-red" ng-if="status.resultType === 2"></i>
|
||||
<i class="umb-healthcheck-status-icon icon-info icon-info" ng-if="status.resultType === 3"></i>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-group__details-status-content">
|
||||
|
||||
<div class="umb-healthcheck-group__details-status-text">
|
||||
<div ng-bind-html="status.message"></div>
|
||||
<div ng-if="status.description" ng-bind-html="status.description"></div>
|
||||
</div>
|
||||
|
||||
<div class="umb-healthcheck-group__details-status-actions" ng-if="status.actions">
|
||||
<div class="umb-healthcheck-group__details-status-action" ng-repeat="action in status.actions">
|
||||
<ng-form name="healthCheckAction">
|
||||
|
||||
<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/>
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="umb-era-button -blue"
|
||||
ng-class="{ '-inactive': healthCheckAction.providedValue.$invalid}"
|
||||
ng-click="vm.executeAction(check, $parent.$index, action);"
|
||||
ng-disabled="healthCheckAction.providedValue.$invalid">
|
||||
{{action.name}}
|
||||
</button>
|
||||
|
||||
</ng-form>
|
||||
|
||||
<div class="umb-healthcheck-group__details-status-action-description" ng-if="action.description" ng-bind-html="action.description"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-show="check.loading">
|
||||
<div class="umb-healthcheck-group__details-status-overlay"></div>
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,113 @@
|
||||
<div class="redirecturlsearch" ng-controller="Umbraco.Dashboard.RedirectUrlsController as vm">
|
||||
|
||||
<umb-load-indicator ng-if="vm.dashboard.loading"></umb-load-indicator>
|
||||
|
||||
<umb-editor-sub-header>
|
||||
|
||||
<umb-editor-sub-header-content-right>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="vm.dashboard.userIsAdmin === true">
|
||||
|
||||
<button
|
||||
ng-if="vm.dashboard.urlTrackerDisabled === false"
|
||||
type="button"
|
||||
class="umb-era-button umb-button--s"
|
||||
ng-click="vm.disableUrlTracker()">
|
||||
<span><localize key="redirectUrls_disableUrlTracker">Disable URL Tracker</localize></span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
ng-if="vm.dashboard.urlTrackerDisabled === true"
|
||||
type="button"
|
||||
class="umb-era-button umb-button--s -blue"
|
||||
ng-click="vm.enableUrlTracker()">
|
||||
<span><localize key="redirectUrls_enableUrlTracker">Enable URL Tracker</localize></span>
|
||||
</button>
|
||||
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="vm.dashboard.urlTrackerDisabled === false">
|
||||
|
||||
<form class="form-search -no-margin-bottom pull-right" novalidate>
|
||||
<div class="inner-addon left-addon">
|
||||
<i class="icon icon-search"></i>
|
||||
<input
|
||||
class="form-control search-input"
|
||||
type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_typeToSearch"
|
||||
ng-model="vm.dashboard.searchTerm"
|
||||
ng-change="vm.filter()"
|
||||
prevent-enter-submit
|
||||
no-dirty-check>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
</umb-editor-sub-header-content-right>
|
||||
|
||||
</umb-editor-sub-header>
|
||||
|
||||
<div class="umb-table" ng-if="vm.redirectUrls.length > 0 && vm.dashboard.loading === false" ng-class="{'umb-table-inactive': vm.dashboard.urlTrackerDisabled === true}">
|
||||
|
||||
<div class="umb-table-head">
|
||||
<div class="umb-table-row">
|
||||
<div class="umb-table-cell not-fixed flx-s1 flx-g1 flx-b4"><localize key="redirectUrls_originalUrl">Original URL</localize></div>
|
||||
<div class="umb-table-cell flx-s0 flx-g0" style="flex-basis: 20px;"></div>
|
||||
<div class="umb-table-cell flx-s1 flx-g1 flx-b6"><localize key="redirectUrls_redirectedTo">Redirected To</localize></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-table-body">
|
||||
|
||||
<div class="umb-table-row -solid" ng-repeat="redirectUrl in vm.redirectUrls">
|
||||
|
||||
|
||||
<div class="umb-table-cell not-fixed flx-s1 flx-g1 flx-b4">
|
||||
<a class="umb-table-body__link" href="{{redirectUrl.originalUrl}}" target="_blank" title="{{redirectUrl.originalUrl}}">{{redirectUrl.originalUrl}}</a>
|
||||
</div>
|
||||
|
||||
<div class="umb-table-cell flx-s0 flx-g0" style="flex-basis: 20px;">
|
||||
<i class="umb-table-body__icon umb-table-body__fileicon icon-arrow-right" style="font-size: 12px; line-height: 1;"></i>
|
||||
</div>
|
||||
|
||||
<div class="umb-table-cell flx-s1 flx-g1 flx-b6 items-center">
|
||||
<div class="flx-s1 flx-g1 flx-b0" style="margin-right: 20px;">
|
||||
<a class="umb-table-body__link" href="{{redirectUrl.destinationUrl}}" target="_blank" title="{{redirectUrl.destinationUrl}}">{{redirectUrl.destinationUrl}}</a>
|
||||
</div>
|
||||
|
||||
<button type="button" class="umb-era-button umb-button--s -red" ng-click="vm.removeRedirect(redirectUrl)"><localize key="redirectUrls_removeButton">Remove</localize></button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="vm.redirectUrls.length === 0 && vm.dashboard.searchTerm.length === 0 && !vm.dashboard.loading"
|
||||
position="center">
|
||||
<div><localize key="redirectUrls_noRedirects">No redirects have been made</localize></div>
|
||||
<small class="faded"><localize key="redirectUrls_noRedirectsDescription">When a published page gets renamed or moved a redirect will automatically be made to the new page</localize></small>
|
||||
</umb-empty-state>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="vm.redirectUrls.length === 0 && vm.dashboard.searchTerm.length > 0 && !vm.dashboard.loading"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<div class="flex justify-center items-center">
|
||||
<umb-pagination
|
||||
ng-if="vm.pagination.totalPages > 1 && !vm.dashboard.loading"
|
||||
page-number="vm.pagination.pageNumber"
|
||||
total-pages="vm.pagination.totalPages"
|
||||
on-next="vm.goToPage"
|
||||
on-prev="vm.goToPage"
|
||||
on-go-to-page="vm.goToPage">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div id="examineManagement" ng-controller="Umbraco.Dashboard.XmlDataIntegrityReportController">
|
||||
|
||||
<h3>Xml Cache Data integrity</h3>
|
||||
|
||||
<div ng-show="loading">
|
||||
Loading...
|
||||
</div>
|
||||
|
||||
<p>
|
||||
This checks the data integrity for the xml structures for content, media and members that are stored in the cmsContentXml table.
|
||||
This does not check the data integrity of the xml cache file, only the xml structures stored in the database used to create the xml cache file.
|
||||
</p>
|
||||
<div ng-repeat="(key, value) in items" style="padding: 4px 0;">
|
||||
<span ><strong>{{value.label}} ...</strong></span>
|
||||
<span ng-if="value.checking" class="text-info">Checking...</span>
|
||||
<span ng-if="!value.checking && !value.invalid" class="text-success"><strong>Ok</strong></span>
|
||||
<span ng-if="!value.checking && value.invalid" class="text-error"><strong>Error</strong></span>
|
||||
<div ng-show="value.fix && !value.fixing">
|
||||
<button type="button" ng-click="fix(value)" class="btn btn-danger" ng-if="value.invalid">
|
||||
<span>Fix</span>
|
||||
|
||||
</button>
|
||||
</div>
|
||||
<div class="umb-loader-wrapper" ng-show="value.fixing">
|
||||
<div class="umb-loader"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user