Merge pull request #2838 from umbraco/temp8-bye-umbraco_client
Bye umbraco_client
This commit is contained in:
@@ -31,6 +31,8 @@
|
||||
"jquery": "2.2.4",
|
||||
"jquery-ui": "~1.12.0",
|
||||
"jquery-migrate": "1.4.0",
|
||||
"jquery-validate": "~1.17.0",
|
||||
"jquery-validation-unobtrusive": "3.2.10",
|
||||
"angular-dynamic-locale": "~0.1.36",
|
||||
"ng-file-upload": "~12.2.13",
|
||||
"tinymce": "~4.7.1",
|
||||
@@ -53,39 +55,41 @@
|
||||
"ace-builds"
|
||||
],
|
||||
"sources": {
|
||||
"moment": [
|
||||
"bower_components/moment/min/moment.min.js",
|
||||
"bower_components/moment/min/moment-with-locales.js",
|
||||
"bower_components/moment/min/moment-with-locales.min.js",
|
||||
"bower_components/moment/locale/*.js"
|
||||
],
|
||||
"underscore": [
|
||||
"bower_components/underscore/underscore-min.js",
|
||||
"bower_components/underscore/underscore-min.map"
|
||||
],
|
||||
"jquery": [
|
||||
"bower_components/jquery/dist/jquery.min.js",
|
||||
"bower_components/jquery/dist/jquery.min.map"
|
||||
],
|
||||
"angular-dynamic-locale": [
|
||||
"bower_components/angular-dynamic-locale/tmhDynamicLocale.min.js",
|
||||
"bower_components/angular-dynamic-locale/tmhDynamicLocale.min.js.map"
|
||||
],
|
||||
"angular-local-storage": [
|
||||
"bower_components/angular-local-storage/dist/angular-local-storage.min.js",
|
||||
"bower_components/angular-local-storage/dist/angular-local-storage.min.js.map"
|
||||
],
|
||||
"tinymce": [
|
||||
"bower_components/tinymce/tinymce.min.js"
|
||||
],
|
||||
"angular-i18n": "bower_components/angular-i18n/angular-locale_*.js",
|
||||
"typeahead.js": "bower_components/typeahead.js/dist/typeahead.bundle.min.js",
|
||||
"rgrove-lazyload": "bower_components/rgrove-lazyload/lazyload.js",
|
||||
"ng-file-upload": "bower_components/ng-file-upload/ng-file-upload.min.js",
|
||||
"jquery-ui": "bower_components/jquery-ui/jquery-ui.min.js",
|
||||
"jquery-migrate": "bower_components/jquery-migrate/jquery-migrate.min.js",
|
||||
"clipboard": "bower_components/clipboard/dist/clipboard.min.js",
|
||||
"animejs": "bower_components/animejs/anime.min.js"
|
||||
"moment": [
|
||||
"bower_components/moment/min/moment.min.js",
|
||||
"bower_components/moment/min/moment-with-locales.js",
|
||||
"bower_components/moment/min/moment-with-locales.min.js",
|
||||
"bower_components/moment/locale/*.js"
|
||||
],
|
||||
"underscore": [
|
||||
"bower_components/underscore/underscore-min.js",
|
||||
"bower_components/underscore/underscore-min.map"
|
||||
],
|
||||
"jquery": [
|
||||
"bower_components/jquery/dist/jquery.min.js",
|
||||
"bower_components/jquery/dist/jquery.min.map"
|
||||
],
|
||||
"angular-dynamic-locale": [
|
||||
"bower_components/angular-dynamic-locale/tmhDynamicLocale.min.js",
|
||||
"bower_components/angular-dynamic-locale/tmhDynamicLocale.min.js.map"
|
||||
],
|
||||
"angular-local-storage": [
|
||||
"bower_components/angular-local-storage/dist/angular-local-storage.min.js",
|
||||
"bower_components/angular-local-storage/dist/angular-local-storage.min.js.map"
|
||||
],
|
||||
"tinymce": [
|
||||
"bower_components/tinymce/tinymce.min.js"
|
||||
],
|
||||
"angular-i18n": "bower_components/angular-i18n/angular-locale_*.js",
|
||||
"typeahead.js": "bower_components/typeahead.js/dist/typeahead.bundle.min.js",
|
||||
"rgrove-lazyload": "bower_components/rgrove-lazyload/lazyload.js",
|
||||
"ng-file-upload": "bower_components/ng-file-upload/ng-file-upload.min.js",
|
||||
"jquery-ui": "bower_components/jquery-ui/jquery-ui.min.js",
|
||||
"jquery-migrate": "bower_components/jquery-migrate/jquery-migrate.min.js",
|
||||
"clipboard": "bower_components/clipboard/dist/clipboard.min.js",
|
||||
"animejs": "bower_components/animejs/anime.min.js",
|
||||
"jquery-validate": "bower_components/jquery-validate/dist/jquery.validate.min.js",
|
||||
"jquery-validation-unobtrusive": "bower_components/jquery-validation-unobtrusive/dist/jquery.validate.unobtrusive.min.js"
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -66,11 +66,12 @@ table {
|
||||
// CONDENSED TABLE W/ HALF PADDING
|
||||
// -------------------------------
|
||||
|
||||
.table-condensed {
|
||||
th,
|
||||
td {
|
||||
padding: 4px 5px;
|
||||
}
|
||||
.table-condensed tbody td {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
.table-condensed thead th {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
|
||||
@@ -249,3 +250,8 @@ table th[class*="span"],
|
||||
background-color: darken(@infoBackground, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
// table sortable
|
||||
.table-sortable tbody tr {
|
||||
cursor: move;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<div ng-controller="Umbraco.Editors.Content.AssignDomainController as vm">
|
||||
<div class="umb-dialog-body">
|
||||
<umb-pane>
|
||||
<p>UI magic to be done...</p>
|
||||
</umb-pane>
|
||||
</div>
|
||||
|
||||
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
|
||||
|
||||
<umb-button
|
||||
label-key="general_cancel"
|
||||
action="vm.closeDialog()"
|
||||
type="button"
|
||||
button-style="link">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
label-key="buttons_save"
|
||||
type="button"
|
||||
button-style="success">
|
||||
</umb-button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function AssignDomainController($scope) {
|
||||
|
||||
var vm = this;
|
||||
vm.closeDialog = closeDialog;
|
||||
|
||||
function closeDialog() {
|
||||
$scope.nav.hideDialog();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
angular.module("umbraco").controller("Umbraco.Editors.Content.AssignDomainController", AssignDomainController);
|
||||
|
||||
})();
|
||||
@@ -0,0 +1,82 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function ContentSortController($scope, $filter, contentResource, navigationService) {
|
||||
|
||||
var vm = this;
|
||||
var parentId = $scope.currentNode.parentId ? $scope.currentNode.parentId : "-1";
|
||||
var id = $scope.currentNode.id;
|
||||
|
||||
vm.loading = false;
|
||||
vm.children = [];
|
||||
vm.saveButtonState = "init";
|
||||
vm.sortOrder = {};
|
||||
vm.sortableOptions = {
|
||||
distance: 10,
|
||||
tolerance: "pointer",
|
||||
opacity: 0.7,
|
||||
scroll: true,
|
||||
cursor: "move",
|
||||
helper: fixSortableHelper,
|
||||
update: function() {
|
||||
// clear the sort order when drag and drop is used
|
||||
vm.sortOrder.column = "";
|
||||
vm.sortOrder.reverse = false;
|
||||
}
|
||||
};
|
||||
|
||||
vm.save = save;
|
||||
vm.sort = sort;
|
||||
|
||||
function onInit() {
|
||||
vm.loading = true;
|
||||
contentResource.getChildren(id)
|
||||
.then(function(data){
|
||||
vm.children = data.items;
|
||||
vm.loading = false;
|
||||
});
|
||||
}
|
||||
|
||||
function save() {
|
||||
vm.saveButtonState = "busy";
|
||||
|
||||
var args = {
|
||||
parentId: parentId,
|
||||
sortedIds: _.map(vm.children, function(child){ return child.id; })
|
||||
};
|
||||
|
||||
contentResource.sort(args)
|
||||
.then(function(){
|
||||
navigationService.syncTree({ tree: "content", path: $scope.currentNode.path, forceReload: true, activate: false });
|
||||
vm.saveButtonState = "success";
|
||||
}, function(error) {
|
||||
vm.error = error;
|
||||
vm.saveButtonState = "error";
|
||||
});
|
||||
}
|
||||
|
||||
function fixSortableHelper(e, ui) {
|
||||
// keep the correct width of each table cell when sorting
|
||||
ui.children().each(function () {
|
||||
$(this).width($(this).width());
|
||||
});
|
||||
return ui;
|
||||
}
|
||||
|
||||
function sort(column) {
|
||||
// reverse if it is already ordered by that column
|
||||
if(vm.sortOrder.column === column) {
|
||||
vm.sortOrder.reverse = !vm.sortOrder.reverse
|
||||
} else {
|
||||
vm.sortOrder.column = column;
|
||||
vm.sortOrder.reverse = false;
|
||||
}
|
||||
vm.children = $filter('orderBy')(vm.children, vm.sortOrder.column, vm.sortOrder.reverse);
|
||||
}
|
||||
|
||||
onInit();
|
||||
|
||||
}
|
||||
|
||||
angular.module("umbraco").controller("Umbraco.Editors.Content.SortController", ContentSortController);
|
||||
})();
|
||||
89
src/Umbraco.Web.UI.Client/src/views/content/sort.html
Normal file
89
src/Umbraco.Web.UI.Client/src/views/content/sort.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<div ng-controller="Umbraco.Editors.Content.SortController as vm" ng-cloak>
|
||||
|
||||
<div class="umb-dialog-body with-footer">
|
||||
|
||||
<div class="umb-pane">
|
||||
|
||||
<div ng-if="vm.error">
|
||||
<div class="alert alert-error">
|
||||
<div>{{vm.error.errorMsg}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-load-indicator
|
||||
ng-show="vm.loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div ng-if="!vm.loading">
|
||||
<p class="abstract"><localize key="sort_sortHelp"></localize></p>
|
||||
<table class="table table-condensed table-sortable" ng-if="vm.children">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('name')" prevent-default>
|
||||
<localize key="general_name"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'name'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('createDate')" prevent-default>
|
||||
<localize key="sort_sortCreationDate"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'createDate'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('sortOrder')" prevent-default>
|
||||
<localize key="sort_sortOrder"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'sortOrder'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ui-sortable="vm.sortableOptions" ng-model="vm.children">
|
||||
<tr ng-repeat="child in vm.children">
|
||||
<td>{{ child.name }}</td>
|
||||
<td>{{ child.createDate }}</td>
|
||||
<td>{{ child.sortOrder }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!vm.children"
|
||||
position="center">
|
||||
<localize key="sort_sortEmptyState"></localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
|
||||
<umb-button
|
||||
type="button"
|
||||
button-style="link"
|
||||
action="nav.hideDialog()"
|
||||
label-key="general_close">
|
||||
</umb-button>
|
||||
<umb-button
|
||||
ng-if="vm.children"
|
||||
type="button"
|
||||
action="vm.save()"
|
||||
state="vm.saveButtonState"
|
||||
button-style="success"
|
||||
label-key="buttons_save">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
function MediaSortController($scope, $filter, mediaResource, navigationService) {
|
||||
|
||||
var vm = this;
|
||||
var parentId = $scope.currentNode.parentId ? $scope.currentNode.parentId : "-1";
|
||||
var id = $scope.currentNode.id;
|
||||
|
||||
vm.loading = false;
|
||||
vm.children = [];
|
||||
vm.saveButtonState = "init";
|
||||
vm.sortOrder = {};
|
||||
vm.sortableOptions = {
|
||||
distance: 10,
|
||||
tolerance: "pointer",
|
||||
opacity: 0.7,
|
||||
scroll: true,
|
||||
cursor: "move",
|
||||
helper: fixSortableHelper,
|
||||
update: function() {
|
||||
// clear the sort order when drag and drop is used
|
||||
vm.sortOrder.column = "";
|
||||
vm.sortOrder.reverse = false;
|
||||
}
|
||||
};
|
||||
|
||||
vm.save = save;
|
||||
vm.sort = sort;
|
||||
|
||||
function onInit() {
|
||||
vm.loading = true;
|
||||
mediaResource.getChildren(id)
|
||||
.then(function(data){
|
||||
vm.children = data.items;
|
||||
vm.loading = false;
|
||||
});
|
||||
}
|
||||
|
||||
function save() {
|
||||
vm.saveButtonState = "busy";
|
||||
|
||||
var args = {
|
||||
parentId: parentId,
|
||||
sortedIds: _.map(vm.children, function(child){ return child.id; })
|
||||
};
|
||||
|
||||
mediaResource.sort(args)
|
||||
.then(function(){
|
||||
navigationService.syncTree({ tree: "media", path: $scope.currentNode.path, forceReload: true, activate: false });
|
||||
vm.saveButtonState = "success";
|
||||
}, function(error) {
|
||||
vm.error = error;
|
||||
vm.saveButtonState = "error";
|
||||
});
|
||||
}
|
||||
|
||||
function fixSortableHelper(e, ui) {
|
||||
// keep the correct width of each table cell when sorting
|
||||
ui.children().each(function () {
|
||||
$(this).width($(this).width());
|
||||
});
|
||||
return ui;
|
||||
}
|
||||
|
||||
function sort(column) {
|
||||
// reverse if it is already ordered by that column
|
||||
if(vm.sortOrder.column === column) {
|
||||
vm.sortOrder.reverse = !vm.sortOrder.reverse
|
||||
} else {
|
||||
vm.sortOrder.column = column;
|
||||
vm.sortOrder.reverse = false;
|
||||
}
|
||||
vm.children = $filter('orderBy')(vm.children, vm.sortOrder.column, vm.sortOrder.reverse);
|
||||
}
|
||||
|
||||
onInit();
|
||||
|
||||
}
|
||||
|
||||
angular.module("umbraco").controller("Umbraco.Editors.Media.SortController", MediaSortController);
|
||||
})();
|
||||
88
src/Umbraco.Web.UI.Client/src/views/media/sort.html
Normal file
88
src/Umbraco.Web.UI.Client/src/views/media/sort.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<div ng-controller="Umbraco.Editors.Media.SortController as vm" ng-cloak>
|
||||
|
||||
<div class="umb-dialog-body with-footer">
|
||||
|
||||
<div class="umb-pane">
|
||||
|
||||
<div ng-if="vm.error">
|
||||
<div class="alert alert-error">
|
||||
<div>{{vm.error.errorMsg}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-load-indicator
|
||||
ng-show="vm.loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div ng-if="!vm.loading">
|
||||
<p class="abstract"><localize key="sort_sortHelp"></localize></p>
|
||||
<table class="table table-condensed table-sortable" ng-if="vm.children">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('name')" prevent-default>
|
||||
<localize key="general_name"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'name'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('createDate')" prevent-default>
|
||||
<localize key="sort_sortCreationDate"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'createDate'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
<a ng-href="#" ng-click="vm.sort('sortOrder')" prevent-default>
|
||||
<localize key="sort_sortOrder"></localize>
|
||||
<span ng-if="vm.sortOrder.column === 'sortOrder'">
|
||||
<i ng-if="vm.sortOrder.reverse" class="icon-navigation-up"></i>
|
||||
<i ng-if="!vm.sortOrder.reverse" class="icon-navigation-down"></i>
|
||||
</span>
|
||||
</a>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ui-sortable="vm.sortableOptions" ng-model="vm.children">
|
||||
<tr ng-repeat="child in vm.children">
|
||||
<td>{{ child.name }}</td>
|
||||
<td>{{ child.createDate }}</td>
|
||||
<td>{{ child.sortOrder }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!vm.children"
|
||||
position="center">
|
||||
<localize key="sort_sortEmptyState"></localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-dialog-footer btn-toolbar umb-btn-toolbar">
|
||||
<umb-button
|
||||
type="button"
|
||||
button-style="link"
|
||||
action="nav.hideDialog()"
|
||||
label-key="general_close">
|
||||
</umb-button>
|
||||
<umb-button
|
||||
ng-if="vm.children"
|
||||
type="button"
|
||||
action="vm.save()"
|
||||
state="vm.saveButtonState"
|
||||
button-style="success"
|
||||
label-key="buttons_save">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user