diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
index 3eac5439fd..ed0259f78b 100644
--- a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/edit.controller.js
@@ -157,10 +157,19 @@
if(app && app.alias !== "umbContent" && app.alias !== "umbInfo") {
$scope.defaultButton = null;
$scope.subButtons = null;
+ $scope.page.showSaveButton = false;
$scope.page.showPreviewButton = false;
return;
}
+ // create the save button
+ if(_.contains($scope.content.allowedActions, "A")) {
+ $scope.page.showSaveButton = true;
+ // add ellipsis to the save button if it opens the variant overlay
+ $scope.page.saveButtonEllipsis = content.variants && content.variants.length > 1 ? "true" : "false";
+ }
+
+ // create the pubish combo button
$scope.page.buttonGroupState = "init";
var buttons = contentEditingHelper.configureContentEditorButtons({
create: $scope.page.isNew,
@@ -168,7 +177,6 @@
methods: {
saveAndPublish: $scope.saveAndPublish,
sendToPublish: $scope.sendToPublish,
- save: $scope.save,
unPublish: $scope.unPublish
}
});
@@ -225,9 +233,7 @@
// This is a helper method to reduce the amount of code repitition for actions: Save, Publish, SendToPublish
function performSave(args) {
-
- $scope.page.buttonGroupState = "busy";
-
+
eventsService.emit("content.saving", { content: $scope.content, action: args.action });
return contentEditingHelper.contentEditorPerformSave({
@@ -242,8 +248,6 @@
syncTreeNode($scope.content, data.path);
- $scope.page.buttonGroupState = "success";
-
eventsService.emit("content.saved", { content: $scope.content, action: args.action });
return $q.when(data);
@@ -257,8 +261,6 @@
editorState.set($scope.content);
}
- $scope.page.buttonGroupState = "error";
-
return $q.reject(err);
});
}
@@ -405,13 +407,20 @@
}
}
else {
- return performSave({ saveMethod: contentResource.sendToPublish, action: "sendToPublish" });
+ $scope.page.buttonGroupState = "busy";
+ return performSave({
+ saveMethod: contentResource.sendToPublish,
+ action: "sendToPublish"
+ }).then(function(){
+ $scope.page.buttonGroupState = "success";
+ }, function () {
+ $scope.page.buttonGroupState = "error";
+ });;
}
};
$scope.saveAndPublish = function () {
clearNotifications($scope.content);
- // TODO: Add "..." to publish button label if there are more than one variant to publish - currently it just adds the elipses if there's more than 1 variant
if (showSaveOrPublishDialog()) {
//before we launch the dialog we want to execute all client side validations first
if (formHelper.submitForm({ scope: $scope, action: "publish" })) {
@@ -457,7 +466,15 @@
else {
//ensure the publish flag is set
$scope.content.variants[0].publish = true;
- return performSave({ saveMethod: contentResource.publish, action: "publish" });
+ $scope.page.buttonGroupState = "busy";
+ return performSave({
+ saveMethod: contentResource.publish,
+ action: "publish"
+ }).then(function(){
+ $scope.page.buttonGroupState = "success";
+ }, function () {
+ $scope.page.buttonGroupState = "error";
+ });;
}
};
@@ -488,15 +505,14 @@
clearNotifications($scope.content);
overlayService.close();
return $q.when(data);
- },
- function (err) {
- clearDirtyState($scope.content.variants);
- model.submitButtonState = "error";
- //re-map the dialog model since we've re-bound the properties
- dialog.variants = $scope.content.variants;
- //don't reject, we've handled the error
- return $q.when(err);
- });
+ }, function (err) {
+ clearDirtyState($scope.content.variants);
+ model.submitButtonState = "error";
+ //re-map the dialog model since we've re-bound the properties
+ dialog.variants = $scope.content.variants;
+ //don't reject, we've handled the error
+ return $q.when(err);
+ });
},
close: function (oldModel) {
overlayService.close();
@@ -507,7 +523,15 @@
}
}
else {
- return performSave({ saveMethod: $scope.saveMethod(), action: "save" });
+ $scope.page.saveButtonState = "busy";
+ return performSave({
+ saveMethod: $scope.saveMethod(),
+ action: "save"
+ }).then(function(){
+ $scope.page.saveButtonState = "success";
+ }, function () {
+ $scope.page.saveButtonState = "error";
+ });
}
};
diff --git a/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js
index decbd74150..a11c93c2da 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/contenteditinghelper.service.js
@@ -146,7 +146,7 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
if (!args.methods) {
throw "args.methods is not defined";
}
- if (!args.methods.saveAndPublish || !args.methods.sendToPublish || !args.methods.save || !args.methods.unPublish) {
+ if (!args.methods.saveAndPublish || !args.methods.sendToPublish || !args.methods.unPublish) {
throw "args.methods does not contain all required defined methods";
}
@@ -179,17 +179,6 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
alias: "sendToPublish",
addEllipsis: args.content.variants && args.content.variants.length > 1 ? "true" : "false"
};
- case "A":
- //save
- return {
- letter: ch,
- labelKey: "buttons_save",
- handler: args.methods.save,
- hotKey: "ctrl+s",
- hotKeyWhenHidden: true,
- alias: "save",
- addEllipsis: args.content.variants && args.content.variants.length > 1 ? "true" : "false"
- };
case "Z":
//unpublish
return {
@@ -209,8 +198,8 @@ function contentEditingHelper(fileManager, $q, $location, $routeParams, notifica
buttons.subButtons = [];
//This is the ideal button order but depends on circumstance, we'll use this array to create the button list
- // Publish, SendToPublish, Save
- var buttonOrder = ["U", "H", "A"];
+ // Publish, SendToPublish
+ var buttonOrder = ["U", "H"];
//Create the first button (primary button)
//We cannot have the Save or SaveAndPublish buttons if they don't have create permissions when we are creating a new item.
diff --git a/src/Umbraco.Web.UI.Client/src/less/buttons.less b/src/Umbraco.Web.UI.Client/src/less/buttons.less
index daa6757f44..b1e9671de3 100644
--- a/src/Umbraco.Web.UI.Client/src/less/buttons.less
+++ b/src/Umbraco.Web.UI.Client/src/less/buttons.less
@@ -227,13 +227,29 @@ input[type="button"] {
font-size: 16px;
border: none;
background: @green;
- color: white;
+ color: @white;
font-weight: bold;
&:hover {
background: @green-d1;
}
}
+// outlined
+.btn-outline {
+ border: 1px solid @gray-8;
+ background: @white;
+ color: @black;
+ padding: 5px 13px;
+}
+
+.btn-outline:hover,
+.btn-outline:focus,
+.btn-outline:active {
+ border-color: @gray-7;
+ background: transparent;
+ color: @black;
+}
+
// Cross-browser Jank
// --------------------------------------------------
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/application/umb-dashboard.less b/src/Umbraco.Web.UI.Client/src/less/components/application/umb-dashboard.less
index 4f40841c03..2a1d5eb6d3 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/application/umb-dashboard.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/application/umb-dashboard.less
@@ -20,7 +20,7 @@
}
.umb-dashboard__content {
- padding: 30px 20px;
+ padding: 20px;
overflow: auto;
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less
index 4bcc60d5f3..e40282cb58 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/buttons/umb-button-group.less
@@ -16,12 +16,15 @@
.umb-button-group {
.umb-button__button {
- border-radius: 3px 0px 0px 3px;
+ border-radius: @baseBorderRadius;
}
.umb-button-group__toggle {
- border-radius: 0px 3px 3px 0;
+ border-radius: 0px @baseBorderRadius @baseBorderRadius 0;
border-left: 1px solid rgba(0,0,0,0.09);
+ margin-left: -2px;
+ padding-left: 10px;
+ padding-right: 10px;
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/editor/subheader/umb-editor-sub-header.less b/src/Umbraco.Web.UI.Client/src/less/components/editor/subheader/umb-editor-sub-header.less
index 99f3ac36ee..10296b58e3 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/editor/subheader/umb-editor-sub-header.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/editor/subheader/umb-editor-sub-header.less
@@ -4,7 +4,7 @@
background: @gray-10;
display: flex;
justify-content: space-between;
- margin-top: -20px;
+ margin-top: -10px;
position: relative;
top: 0;
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html b/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html
index ace41d7e94..d5ee000e87 100644
--- a/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html
+++ b/src/Umbraco.Web.UI.Client/src/views/components/content/edit.html
@@ -39,12 +39,23 @@
+
+
+
+ action="openCompositionsDialog()"
+ size="xs">
+ action="toggleSortingMode();"
+ size="xs">
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html
index c4a68b9b0c..dcdf544fe2 100644
--- a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html
+++ b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html
@@ -48,8 +48,8 @@
@@ -62,48 +62,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+