Compare commits
10 Commits
temp8-w134
...
temp-#178
| Author | SHA1 | Date | |
|---|---|---|---|
| 517ea19763 | |||
| 39e8a9fa67 | |||
| 1dbf509020 | |||
| 8ce93055ef | |||
| ee4b2adbd4 | |||
| 6c0d14e0f4 | |||
| fd888cab4b | |||
| 50597b5715 | |||
| f35110309a | |||
| c73860d144 |
+2
-2
@@ -11,5 +11,5 @@ using System.Resources;
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
[assembly: AssemblyFileVersion("7.12.0")]
|
||||
[assembly: AssemblyInformationalVersion("7.12.0")]
|
||||
[assembly: AssemblyFileVersion("7.12.1")]
|
||||
[assembly: AssemblyInformationalVersion("7.12.1")]
|
||||
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
|
||||
{
|
||||
public class UmbracoVersion
|
||||
{
|
||||
private static readonly Version Version = new Version("7.12.0");
|
||||
private static readonly Version Version = new Version("7.12.1");
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current version of Umbraco.
|
||||
|
||||
@@ -3,37 +3,8 @@
|
||||
"browser": true
|
||||
},
|
||||
|
||||
"plugins": [
|
||||
"angular"
|
||||
],
|
||||
|
||||
"rules": {
|
||||
"eqeqeq": 2,
|
||||
"curly": 2,
|
||||
|
||||
"no-unused-vars": 1,
|
||||
"no-eval": 1,
|
||||
"no-delete-var": 1,
|
||||
"quotes": 1,
|
||||
"dot-notation": 1,
|
||||
|
||||
"no-use-before-define": 0,
|
||||
"angular/ng_controller_as": 1,
|
||||
"angular/ng_controller_as_vm": 1,
|
||||
|
||||
|
||||
"strict": 0,
|
||||
"no-irregular-whitespace": 0,
|
||||
"no-mixed-spaces-and-tabs": 0,
|
||||
"no-multi-spaces": 0,
|
||||
"key-spacing": 0,
|
||||
"semi-spacing": 0,
|
||||
"space-infix-ops": 0,
|
||||
"comma-spacing": 0,
|
||||
"no-trailing-spaces": 0,
|
||||
"eol-last": 0,
|
||||
"no-underscore-dangle": 0,
|
||||
"camelcase": 0
|
||||
"comma-dangle": ["error", "never"]
|
||||
},
|
||||
|
||||
"globals": {
|
||||
|
||||
@@ -12,6 +12,9 @@ const imagemin = require('gulp-imagemin');
|
||||
var _ = require('lodash');
|
||||
var MergeStream = require('merge-stream');
|
||||
|
||||
// js
|
||||
const eslint = require('gulp-eslint');
|
||||
|
||||
//Less + css
|
||||
var postcss = require('gulp-postcss');
|
||||
var less = require('gulp-less');
|
||||
@@ -30,6 +33,11 @@ Helper functions
|
||||
function processJs(files, out) {
|
||||
|
||||
return gulp.src(files)
|
||||
// check for js errors
|
||||
.pipe(eslint())
|
||||
// outputs the lint results to the console
|
||||
.pipe(eslint.format())
|
||||
// sort files in stream by path or any custom sort comparator
|
||||
.pipe(sort())
|
||||
.pipe(concat(out))
|
||||
.pipe(wrap('(function(){\n%= body %\n})();'))
|
||||
|
||||
+10487
File diff suppressed because it is too large
Load Diff
@@ -27,6 +27,7 @@
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-concat": "^2.6.0",
|
||||
"gulp-connect": "5.0.0",
|
||||
"gulp-eslint": "^5.0.0",
|
||||
"gulp-imagemin": "^4.1.0",
|
||||
"gulp-less": "^3.5.0",
|
||||
"gulp-ngdocs": "^0.3.0",
|
||||
|
||||
@@ -12,7 +12,7 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "background",
|
||||
category: "Color",
|
||||
name: "Background",
|
||||
name: "Background"
|
||||
},
|
||||
{
|
||||
type: "color",
|
||||
@@ -45,12 +45,12 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "background",
|
||||
category: "Color",
|
||||
name: "Background",
|
||||
name: "Background"
|
||||
},
|
||||
{
|
||||
type: "border",
|
||||
category: "Color",
|
||||
name: "Border",
|
||||
name: "Border"
|
||||
},
|
||||
{
|
||||
type: "color",
|
||||
@@ -83,7 +83,7 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "googlefontpicker",
|
||||
category: "Font",
|
||||
name: "Font familly",
|
||||
name: "Font familly"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -105,7 +105,7 @@ var canvasdesignerConfig = {
|
||||
name: "Margin",
|
||||
enable: ["top", "bottom"],
|
||||
schema: "#header"
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -124,7 +124,7 @@ var canvasdesignerConfig = {
|
||||
type: "color",
|
||||
category: "Font",
|
||||
name: "Font color",
|
||||
css: "color",
|
||||
css: "color"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -137,7 +137,7 @@ var canvasdesignerConfig = {
|
||||
type: "color",
|
||||
category: "Font",
|
||||
name: "Font color",
|
||||
css: "color",
|
||||
css: "color"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -150,7 +150,7 @@ var canvasdesignerConfig = {
|
||||
type: "color",
|
||||
category: "Font",
|
||||
name: "Font color",
|
||||
css: "color",
|
||||
css: "color"
|
||||
},
|
||||
{
|
||||
type: "slider",
|
||||
@@ -163,7 +163,7 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "margin",
|
||||
category: "Position",
|
||||
name: "Margin",
|
||||
name: "Margin"
|
||||
}
|
||||
|
||||
]
|
||||
@@ -177,7 +177,7 @@ var canvasdesignerConfig = {
|
||||
type: "color",
|
||||
category: "Font",
|
||||
name: "Font color",
|
||||
css: "color",
|
||||
css: "color"
|
||||
},
|
||||
{
|
||||
type: "slider",
|
||||
@@ -190,7 +190,7 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "margin",
|
||||
category: "Position",
|
||||
name: "Margin",
|
||||
name: "Margin"
|
||||
}
|
||||
|
||||
]
|
||||
@@ -216,7 +216,7 @@ var canvasdesignerConfig = {
|
||||
{
|
||||
type: "background",
|
||||
category: "Color",
|
||||
name: "Background",
|
||||
name: "Background"
|
||||
},
|
||||
{
|
||||
type: "padding",
|
||||
@@ -305,7 +305,7 @@ var canvasdesignerConfig = {
|
||||
name: "Background Hover",
|
||||
css: "background",
|
||||
schema: ".button-alt:hover"
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -73,7 +73,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
topbordertype: 'solid',
|
||||
bottombordersize: '',
|
||||
bottombordercolor: '',
|
||||
bottombordertype: 'solid',
|
||||
bottombordertype: 'solid'
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
fontFamily: '',
|
||||
fontType: '',
|
||||
fontWeight: '',
|
||||
fontStyle: '',
|
||||
fontStyle: ''
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
fontType: "safe",
|
||||
fontFamily: value,
|
||||
fontWeight: "normal",
|
||||
fontStyle: "normal",
|
||||
fontStyle: "normal"
|
||||
});
|
||||
});
|
||||
|
||||
@@ -121,7 +121,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
fontFamily: $scope.selectedFont.fontFamily,
|
||||
fontType: $scope.selectedFont.fontType,
|
||||
fontWeight: $scope.selectedFont.fontWeight,
|
||||
fontStyle: $scope.selectedFont.fontStyle,
|
||||
fontStyle: $scope.selectedFont.fontStyle
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -161,7 +161,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
fontFamily: $scope.selectedFont.fontFamily,
|
||||
fontType: $scope.selectedFont.fontType,
|
||||
fontWeight: $scope.selectedFont.fontWeight,
|
||||
fontStyle: $scope.selectedFont.fontStyle,
|
||||
fontStyle: $scope.selectedFont.fontStyle
|
||||
});
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
fontFamily: $scope.selectedFont.fontFamily,
|
||||
fontType: $scope.selectedFont.fontType,
|
||||
fontWeight: $scope.selectedFont.fontWeight,
|
||||
fontStyle: $scope.selectedFont.fontStyle,
|
||||
fontStyle: $scope.selectedFont.fontStyle
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
|
||||
$scope.selectedmargin = {
|
||||
name: "",
|
||||
value: 0,
|
||||
value: 0
|
||||
};
|
||||
|
||||
$scope.setSelectedmargin = function (margintype) {
|
||||
@@ -50,7 +50,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
leftmarginvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 1 ? $scope.item.defaultValue[1] : '',
|
||||
rightmarginvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 2 ? $scope.item.defaultValue[2] : '',
|
||||
topmarginvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 3 ? $scope.item.defaultValue[3] : '',
|
||||
bottommarginvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : '',
|
||||
bottommarginvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : ''
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
|
||||
$scope.selectedpadding = {
|
||||
name: "",
|
||||
value: 0,
|
||||
value: 0
|
||||
};
|
||||
|
||||
$scope.setSelectedpadding = function (paddingtype) {
|
||||
@@ -50,7 +50,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
leftpaddingvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 1 ? $scope.item.defaultValue[1] : '',
|
||||
rightpaddingvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 2 ? $scope.item.defaultValue[2] : '',
|
||||
toppaddingvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 3 ? $scope.item.defaultValue[3] : '',
|
||||
bottompaddingvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : '',
|
||||
bottompaddingvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : ''
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
|
||||
$scope.selectedradius = {
|
||||
name: "",
|
||||
value: 0,
|
||||
value: 0
|
||||
};
|
||||
|
||||
$scope.setSelectedradius = function (radiustype) {
|
||||
@@ -50,7 +50,7 @@ angular.module("Umbraco.canvasdesigner")
|
||||
topleftradiusvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 1 ? $scope.item.defaultValue[1] : '',
|
||||
toprightradiusvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 2 ? $scope.item.defaultValue[2] : '',
|
||||
bottomleftradiusvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 3 ? $scope.item.defaultValue[3] : '',
|
||||
bottomrightradiusvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : '',
|
||||
bottomrightradiusvalue: $scope.item.defaultValue && $scope.item.defaultValue.length > 4 ? $scope.item.defaultValue[4] : ''
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ angular.module('spectrumcolorpicker', [])
|
||||
scope.colorselected = initColor;
|
||||
scope.$apply();
|
||||
});
|
||||
},
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@
|
||||
backdropOpacity: "=?",
|
||||
highlightElement: "=?",
|
||||
highlightPreventClick: "=?",
|
||||
disableEventsOnClick: "=?",
|
||||
disableEventsOnClick: "=?"
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ angular.module("umbraco.directives")
|
||||
var $container = element.find(".crop-container");
|
||||
|
||||
//default constraints for drag n drop
|
||||
var constraints = {left: {max: scope.dimensions.margin, min: scope.dimensions.margin}, top: {max: scope.dimensions.margin, min: scope.dimensions.margin}, };
|
||||
var constraints = {left: {max: scope.dimensions.margin, min: scope.dimensions.margin}, top: {max: scope.dimensions.margin, min: scope.dimensions.margin} };
|
||||
scope.constraints = constraints;
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ angular.module("umbraco.directives")
|
||||
'<div ng-class="getNodeCssClass(node)" ng-swipe-right="options(node, $event)" ng-dblclick="load(node)" >' +
|
||||
//NOTE: This ins element is used to display the search icon if the node is a container/listview and the tree is currently in dialog
|
||||
//'<ins ng-if="tree.enablelistviewsearch && node.metaData.isContainer" class="umb-tree-node-search icon-search" ng-click="searchNode(node, $event)" alt="searchAltText"></ins>' +
|
||||
'<ins data-element="tree-item-expand" ng-class="{\'icon-navigation-right\': !node.expanded || node.metaData.isContainer, \'icon-navigation-down\': node.expanded && !node.metaData.isContainer}" ng-click="load(node)"> </ins>' +
|
||||
'<ins data-element="tree-item-expand" ng-class="{\'icon-navigation-right\': !node.expanded || enablelistviewexpand === \'true\', \'icon-navigation-down\': node.expanded || true}" ng-click="load(node)"> </ins>' +
|
||||
'<i class="icon umb-tree-icon sprTree" ng-click="select(node, $event)"></i>' +
|
||||
'<a class="umb-tree-item__label" href="#/{{node.routePath}}" ng-click="select(node, $event)"></a>' +
|
||||
//NOTE: These are the 'option' elipses
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
templateUrl: 'views/components/umb-dropdown-item.html',
|
||||
templateUrl: 'views/components/umb-dropdown-item.html'
|
||||
};
|
||||
|
||||
return directive;
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@
|
||||
},
|
||||
stop: function(e, ui) {
|
||||
updateTabsSortOrder();
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
scope.sortableOptionsProperty = {
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ angular.module("umbraco.directives")
|
||||
restrict: 'A',
|
||||
replace: false,
|
||||
scope: {
|
||||
node: '=umbLaunchMiniEditor',
|
||||
node: '=umbLaunchMiniEditor'
|
||||
},
|
||||
link: function(scope, element, attrs) {
|
||||
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
$http.get(url),
|
||||
'Failed to retrieve content types'
|
||||
);
|
||||
},
|
||||
}
|
||||
};
|
||||
});
|
||||
@@ -329,7 +329,7 @@ angular.module('umbraco.services').factory("editorState", function() {
|
||||
},
|
||||
set: function (value) {
|
||||
throw "Use editorState.set to set the value of the current entity";
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
return state;
|
||||
|
||||
@@ -504,7 +504,7 @@
|
||||
canDelete: _.contains(intersectPermissions, 'D'), //Magic Char = D
|
||||
canMove: _.contains(intersectPermissions, 'M'), //Magic Char = M
|
||||
canPublish: _.contains(intersectPermissions, 'U'), //Magic Char = U
|
||||
canUnpublish: _.contains(intersectPermissions, 'U'), //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
|
||||
canUnpublish: _.contains(intersectPermissions, 'U') //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -641,7 +641,7 @@ function navigationService($rootScope, $routeParams, $log, $location, $q, $timeo
|
||||
|
||||
//These will show up on the dialog controller's $scope under dialogOptions
|
||||
currentNode: args.node,
|
||||
currentAction: args.action,
|
||||
currentAction: args.action
|
||||
});
|
||||
|
||||
//save the currently assigned dialog so it can be removed before a new one is created
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
.nested-content
|
||||
{
|
||||
.umb-nested-content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nested-content--not-supported
|
||||
{
|
||||
.umb-nested-content--not-supported {
|
||||
opacity: 0.3;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.nested-content-overlay
|
||||
{
|
||||
.umb-nested-content-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -19,47 +16,39 @@
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.nested-content__item
|
||||
{
|
||||
.umb-nested-content__item {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
border-top: solid 1px transparent;
|
||||
background: white;
|
||||
|
||||
|
||||
background: @white;
|
||||
}
|
||||
|
||||
.nested-content__item--active:not(.nested-content__item--single)
|
||||
{
|
||||
background: #f8f8f8;
|
||||
.umb-nested-content__item--active:not(.umb-nested-content__item--single) {
|
||||
background: @gray-10;
|
||||
}
|
||||
|
||||
.nested-content__item.ui-sortable-placeholder
|
||||
{
|
||||
background: #f8f8f8;
|
||||
border: 1px dashed #d9d9d9;
|
||||
.umb-nested-content__item.ui-sortable-placeholder {
|
||||
background: @gray-10;
|
||||
border: 1px dashed @gray-8;
|
||||
visibility: visible !important;
|
||||
height: 55px;
|
||||
margin-top: -1px;
|
||||
}
|
||||
|
||||
.nested-content__item--single > .nested-content__content
|
||||
{
|
||||
.umb-nested-content__item--single > .umb-nested-content__content {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.nested-content__item--single > .nested-content__content > .umb-pane
|
||||
{
|
||||
.umb-nested-content__item--single > .umb-nested-content__content > .umb-pane {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.nested-content__header-bar
|
||||
{
|
||||
.umb-nested-content__header-bar {
|
||||
padding: 15px 20px;
|
||||
border-bottom: 1px dashed #e0e0e0;
|
||||
border-bottom: 1px dashed @gray-8;
|
||||
text-align: right;
|
||||
cursor: pointer;
|
||||
background-color: white;
|
||||
background-color: @white;
|
||||
|
||||
-moz-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
@@ -67,24 +56,21 @@
|
||||
-o-user-select: none;
|
||||
}
|
||||
|
||||
.nested-content__heading {
|
||||
.umb-nested-content__heading {
|
||||
line-height: 20px;
|
||||
position: relative;
|
||||
|
||||
&.-with-icon
|
||||
{
|
||||
&.-with-icon {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
i
|
||||
{
|
||||
color: #999; /* same icon color as the icons in the item type picker */
|
||||
i {
|
||||
color: @gray-2;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.nested-content__item-name
|
||||
{
|
||||
.umb-nested-content__item-name {
|
||||
max-height: 20px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
@@ -94,22 +80,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
.nested-content__icons
|
||||
{
|
||||
.umb-nested-content__icons {
|
||||
opacity: 0;
|
||||
|
||||
transition: opacity .15s ease-in-out;
|
||||
-moz-transition: opacity .15s ease-in-out;
|
||||
-webkit-transition: opacity .15s ease-in-out;
|
||||
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
top: 2px;
|
||||
background-color: white;
|
||||
background-color: @white;
|
||||
padding: 5px;
|
||||
|
||||
&:before
|
||||
{
|
||||
&:before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
display: block;
|
||||
@@ -117,126 +97,118 @@
|
||||
left: -30px;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: -webkit-linear-gradient(90deg, rgba(255,255,255,0), white);
|
||||
background: -moz-linear-gradient(90deg, rgba(255,255,255,0), white);
|
||||
background: linear-gradient(90deg, rgba(255,255,255,0), white);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.nested-content__header-bar:hover .nested-content__icons,
|
||||
.nested-content__item--active > .nested-content__header-bar .nested-content__icons
|
||||
{
|
||||
.umb-nested-content__header-bar:hover .umb-nested-content__icons,
|
||||
.umb-nested-content__item--active > .umb-nested-content__header-bar .umb-nested-content__icons {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.nested-content__icon,
|
||||
.nested-content__icon.nested-content__icon--disabled:hover
|
||||
{
|
||||
.umb-nested-content__icon,
|
||||
.umb-nested-content__icon.umb-nested-content__icon--disabled:hover {
|
||||
display: inline-block;
|
||||
padding: 4px 6px;
|
||||
margin: 2px;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
border: 1px solid #b6b6b6;
|
||||
background: @white;
|
||||
border: 1px solid @gray-7;
|
||||
border-radius: 200px;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.nested-content__icon:hover,
|
||||
.nested-content__icon--active
|
||||
.umb-nested-content__icon:hover,
|
||||
.umb-nested-content__icon--active
|
||||
{
|
||||
color: white;
|
||||
background: #2e8aea;
|
||||
border-color: #2e8aea;
|
||||
color: @white;
|
||||
background: @turquoise-d1;
|
||||
border-color: @turquoise-d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.nested-content__icon .icon,
|
||||
.nested-content__icon.nested-content__icon--disabled:hover .icon
|
||||
{
|
||||
.umb-nested-content__icon .icon,
|
||||
.umb-nested-content__icon.umb-nested-content__icon--disabled:hover .icon {
|
||||
display: block;
|
||||
font-size: 16px !important;
|
||||
color: #5f5f5f;
|
||||
color: @gray-3;
|
||||
}
|
||||
|
||||
.nested-content__icon:hover .icon,
|
||||
.nested-content__icon--active .icon
|
||||
{
|
||||
color: white;
|
||||
.umb-nested-content__icon:hover .icon,
|
||||
.umb-nested-content__icon--active .icon {
|
||||
color: @white;
|
||||
}
|
||||
|
||||
.nested-content__icon--disabled
|
||||
{
|
||||
.umb-nested-content__icon--disabled {
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
|
||||
.nested-content__footer-bar
|
||||
{
|
||||
.umb-nested-content__footer-bar {
|
||||
text-align: center;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.nested-content__content
|
||||
{
|
||||
border-bottom: 1px dashed #e0e0e0;
|
||||
.umb-nested-content__content {
|
||||
border-bottom: 1px dashed @gray-8;
|
||||
}
|
||||
|
||||
.nested-content__content .umb-control-group {
|
||||
.umb-nested-content__content .umb-control-group {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.nested-content__item.ui-sortable-helper .nested-content__content
|
||||
{
|
||||
.umb-nested-content__item.ui-sortable-helper .umb-nested-content__content {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.nested-content__help-text
|
||||
{
|
||||
.umb-nested-content__help-text {
|
||||
display: inline-block;
|
||||
padding: 10px 20px 10px 20px;
|
||||
clear: both;
|
||||
font-size: 14px;
|
||||
color: #555;
|
||||
background: #f8f8f8;
|
||||
color: @gray-3;
|
||||
background: @gray-10;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.nested-content__doctypepicker table input, .nested-content__doctypepicker table select {
|
||||
.umb-nested-content__doctypepicker table input,
|
||||
.umb-nested-content__doctypepicker table select {
|
||||
width: 100%;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.nested-content__doctypepicker table td.icon-navigation, .nested-content__doctypepicker i.nested-content__help-icon {
|
||||
.umb-nested-content__doctypepicker table td.icon-navigation,
|
||||
.umb-nested-content__doctypepicker i.umb-nested-content__help-icon {
|
||||
vertical-align: middle;
|
||||
color: #CCC;
|
||||
color: @gray-7;
|
||||
}
|
||||
|
||||
.nested-content__doctypepicker table td.icon-navigation:hover, .nested-content__doctypepicker i.nested-content__help-icon:hover {
|
||||
color: #343434;
|
||||
.umb-nested-content__doctypepicker table td.icon-navigation:hover,
|
||||
.umb-nested-content__doctypepicker i.umb-nested-content__help-icon:hover {
|
||||
color: @gray-2;
|
||||
}
|
||||
|
||||
.nested-content__doctypepicker i.nested-content__help-icon {
|
||||
.umb-nested-content__doctypepicker i.umb-nested-content__help-icon {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.form-horizontal .nested-content--narrow .controls-row
|
||||
.form-horizontal .umb-nested-content--narrow .controls-row
|
||||
{
|
||||
margin-left: 40% !important;
|
||||
}
|
||||
|
||||
.form-horizontal .nested-content--narrow .controls-row .umb-textstring,
|
||||
.form-horizontal .nested-content--narrow .controls-row .umb-textarea
|
||||
.form-horizontal .umb-nested-content--narrow .controls-row .umb-textstring,
|
||||
.form-horizontal .umb-nested-content--narrow .controls-row .umb-textarea
|
||||
{
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.form-horizontal .nested-content--narrow .controls-row .umb-dropdown {
|
||||
.form-horizontal .umb-nested-content--narrow .controls-row .umb-dropdown {
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
.usky-grid.nested-content__node-type-picker .cell-tools-menu {
|
||||
.usky-grid.umb-nested-content__node-type-picker .cell-tools-menu {
|
||||
position: relative;
|
||||
transform: translate(-50%, -25%);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ function LegacyDeleteController($scope, legacyResource, treeService, navigationS
|
||||
legacyResource.deleteItem({
|
||||
nodeId: $scope.currentNode.id,
|
||||
nodeType: $scope.currentNode.nodeType,
|
||||
alias: $scope.currentNode.name,
|
||||
alias: $scope.currentNode.name
|
||||
}).then(function () {
|
||||
$scope.currentNode.loading = false;
|
||||
//TODO: Need to sync tree, etc...
|
||||
|
||||
@@ -106,7 +106,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.LinkPickerController",
|
||||
hasChildren: false,
|
||||
name: searchText,
|
||||
metaData: {
|
||||
listViewNode: child,
|
||||
listViewNode: child
|
||||
},
|
||||
cssClass: "icon umb-tree-icon sprTree icon-search",
|
||||
cssClasses: ["not-published"]
|
||||
|
||||
@@ -181,7 +181,7 @@
|
||||
modalClass: "login-overlay",
|
||||
animation: "slide",
|
||||
show: true,
|
||||
callback: callback,
|
||||
callback: callback
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ angular.module("umbraco").controller('Umbraco.Dialogs.Template.QueryBuilderContr
|
||||
sort:{
|
||||
property:{
|
||||
alias: "",
|
||||
name: "",
|
||||
name: ""
|
||||
},
|
||||
direction: "ascending"
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ angular.module("umbraco").controller("Umbraco.Dialogs.TreePickerController",
|
||||
},
|
||||
name: searchText,
|
||||
metaData: {
|
||||
listViewNode: child,
|
||||
listViewNode: child
|
||||
},
|
||||
cssClass: "icon-search",
|
||||
cssClasses: ["not-published"]
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ angular.module("umbraco")
|
||||
pageSize: 100,
|
||||
totalItems: 0,
|
||||
totalPages: 0,
|
||||
filter: '',
|
||||
filter: ''
|
||||
};
|
||||
|
||||
//preload selected item
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@
|
||||
sort: {
|
||||
property: {
|
||||
alias: "",
|
||||
name: "",
|
||||
name: ""
|
||||
},
|
||||
direction: "ascending", //This is the value for sorting sent to server
|
||||
translation: {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<button ng-click="click()" class="umb-toggle dib" ng-class="{'umb-toggle--checked': checked}">
|
||||
<button ng-click="click()" type="button" class="umb-toggle dib" ng-class="{'umb-toggle--checked': checked}">
|
||||
|
||||
<span ng-if="!labelPosition && showLabels === 'true' || labelPosition === 'left' && showLabels === 'true'">
|
||||
<span ng-if="!checked" class="umb-toggle__label umb-toggle__label--left">{{ displayLabelOff }}</span>
|
||||
|
||||
@@ -28,7 +28,7 @@ function DataTypeEditController($scope, $routeParams, $location, appState, navig
|
||||
label: preVals[i].label,
|
||||
view: preVals[i].view,
|
||||
value: preVals[i].value,
|
||||
config: preVals[i].config,
|
||||
config: preVals[i].config
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
});
|
||||
},
|
||||
readOnly: true
|
||||
},
|
||||
}
|
||||
|
||||
]);
|
||||
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ angular.module("umbraco")
|
||||
name: "1 column layout",
|
||||
sections: [
|
||||
{
|
||||
grid: 12,
|
||||
grid: 12
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -36,7 +36,7 @@ angular.module("umbraco")
|
||||
name: "2 column layout",
|
||||
sections: [
|
||||
{
|
||||
grid: 4,
|
||||
grid: 4
|
||||
},
|
||||
{
|
||||
grid: 8
|
||||
|
||||
@@ -57,10 +57,10 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
|
||||
totalPages: 0,
|
||||
items: []
|
||||
};
|
||||
|
||||
|
||||
//when this is null, we don't check permissions
|
||||
$scope.currentNodePermissions = null;
|
||||
|
||||
$scope.currentNodePermissions = null;
|
||||
|
||||
if ($scope.entityType === "content") {
|
||||
//Just ensure we do have an editorState
|
||||
if (editorState.current) {
|
||||
@@ -75,9 +75,9 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
|
||||
"canDelete": _.contains(currentUserPermissions, 'D'), //Magic Char = D
|
||||
"canMove": _.contains(currentUserPermissions, 'M'), //Magic Char = M
|
||||
"canPublish": _.contains(currentUserPermissions, 'U'), //Magic Char = U
|
||||
"canUnpublish": _.contains(currentUserPermissions, 'U'), //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
|
||||
"canUnpublish": _.contains(currentUserPermissions, 'U') //Magic Char = Z (however UI says it can't be set, so if we can publish 'U' we can unpublish)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//when this is null, we don't check permissions
|
||||
|
||||
+3
-3
@@ -229,10 +229,10 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.NestedContent.Prop
|
||||
$scope.sortableOptions = {
|
||||
axis: 'y',
|
||||
cursor: "move",
|
||||
handle: ".nested-content__icon--move",
|
||||
handle: ".umb-nested-content__icon--move",
|
||||
start: function (ev, ui) {
|
||||
// Yea, yea, we shouldn't modify the dom, sue me
|
||||
$("#nested-content--" + $scope.model.id + " .umb-rte textarea").each(function () {
|
||||
$("#umb-nested-content--" + $scope.model.id + " .umb-rte textarea").each(function () {
|
||||
tinymce.execCommand('mceRemoveEditor', false, $(this).attr('id'));
|
||||
$(this).css("visibility", "hidden");
|
||||
});
|
||||
@@ -244,7 +244,7 @@ angular.module("umbraco").controller("Umbraco.PropertyEditors.NestedContent.Prop
|
||||
$scope.setDirty();
|
||||
},
|
||||
stop: function (ev, ui) {
|
||||
$("#nested-content--" + $scope.model.id + " .umb-rte textarea").each(function () {
|
||||
$("#umb-nested-content--" + $scope.model.id + " .umb-rte textarea").each(function () {
|
||||
tinymce.execCommand('mceAddEditor', true, $(this).attr('id'));
|
||||
$(this).css("visibility", "visible");
|
||||
});
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
<div id="{{model.alias}}" class="nested-content__doctypepicker" ng-controller="Umbraco.PropertyEditors.NestedContent.DocTypePickerController">
|
||||
<div id="{{model.alias}}" class="umb-nested-content__doctypepicker" ng-controller="Umbraco.PropertyEditors.NestedContent.DocTypePickerController">
|
||||
<div>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
@@ -45,11 +45,11 @@
|
||||
<a class="btn" ng-click="add()">
|
||||
<localize key="general_add">Add</localize>
|
||||
</a>
|
||||
<i class="icon icon-help-alt medium nested-content__help-icon" ng-click="showHelpText = !showHelpText"></i>
|
||||
<i class="icon icon-help-alt medium umb-nested-content__help-icon" ng-click="showHelpText = !showHelpText"></i>
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<div class="nested-content__help-text" ng-show="showHelpText">
|
||||
<div class="umb-nested-content__help-text" ng-show="showHelpText">
|
||||
<p>
|
||||
<b><localize key="editcontenttype_tab">Tab</localize>:</b><br/>
|
||||
Select the tab who's properties should be displayed. If left blank, the first tab on the doc type will be used.
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
<div class="umb-pane">
|
||||
<div ng-repeat="property in tab.properties" style="position: relative;">
|
||||
|
||||
<umb-property property="property" ng-class="{'nested-content--not-supported': property.notSupported}">
|
||||
<umb-property property="property" ng-class="{'umb-nested-content--not-supported': property.notSupported}">
|
||||
<umb-editor model="property"></umb-editor>
|
||||
</umb-property>
|
||||
|
||||
<div ng-if="property.notSupported" class="nested-content-overlay"></div>
|
||||
<div ng-if="property.notSupported" class="umb-nested-content-overlay"></div>
|
||||
|
||||
<p ng-if="property.notSupported">{{property.notSupportedMessage}}</p>
|
||||
|
||||
|
||||
+15
-15
@@ -1,48 +1,48 @@
|
||||
<div id="nested-content--{{model.id}}" class="nested-content"
|
||||
<div id="umb-nested-content--{{model.id}}" class="umb-nested-content"
|
||||
ng-controller="Umbraco.PropertyEditors.NestedContent.PropertyEditorController"
|
||||
ng-class="{'nested-content--narrow':!wideMode, 'nested-content--wide':wideMode}">
|
||||
ng-class="{'umb-nested-content--narrow':!wideMode, 'umb-nested-content--wide':wideMode}">
|
||||
<ng-form>
|
||||
|
||||
<div class="nested-content__items" ng-hide="nodes.length == 0" ui-sortable="sortableOptions" ng-model="nodes">
|
||||
<div class="umb-nested-content__items" ng-hide="nodes.length == 0" ui-sortable="sortableOptions" ng-model="nodes">
|
||||
|
||||
<div class="nested-content__item" ng-repeat="node in nodes" ng-class="{ 'nested-content__item--active' : $parent.realCurrentNode.key == node.key, 'nested-content__item--single' : $parent.singleMode }">
|
||||
<div class="umb-nested-content__item" ng-repeat="node in nodes" ng-class="{ 'umb-nested-content__item--active' : $parent.realCurrentNode.key == node.key, 'umb-nested-content__item--single' : $parent.singleMode }">
|
||||
|
||||
<div class="nested-content__header-bar" ng-click="$parent.editNode($index)" ng-hide="$parent.singleMode">
|
||||
<div class="umb-nested-content__header-bar" ng-click="$parent.editNode($index)" ng-hide="$parent.singleMode">
|
||||
|
||||
<div class="nested-content__heading" ng-class="{'-with-icon': showIcons}"><i ng-if="showIcons" class="icon" ng-class="$parent.getIcon($index)"></i><span class="nested-content__item-name" ng-bind="$parent.getName($index)"></span></div>
|
||||
<div class="umb-nested-content__heading" ng-class="{'-with-icon': showIcons}"><i ng-if="showIcons" class="icon" ng-class="$parent.getIcon($index)"></i><span class="umb-nested-content__item-name" ng-bind="$parent.getName($index)"></span></div>
|
||||
|
||||
<div class="nested-content__icons">
|
||||
<a class="nested-content__icon nested-content__icon--edit" title="{{editIconTitle}}" ng-class="{ 'nested-content__icon--active' : $parent.realCurrentNode.id == node.id }" ng-click="$parent.editNode($index); $event.stopPropagation();" ng-show="$parent.maxItems > 1" prevent-default>
|
||||
<div class="umb-nested-content__icons">
|
||||
<a class="umb-nested-content__icon umb-nested-content__icon--edit" title="{{editIconTitle}}" ng-class="{ 'umb-nested-content__icon--active' : $parent.realCurrentNode.id == node.id }" ng-click="$parent.editNode($index); $event.stopPropagation();" ng-show="$parent.maxItems > 1" prevent-default>
|
||||
<i class="icon icon-edit"></i>
|
||||
</a>
|
||||
<a class="nested-content__icon nested-content__icon--move" title="{{moveIconTitle}}" ng-click="$event.stopPropagation();" ng-show="$parent.nodes.length > 1" prevent-default>
|
||||
<a class="umb-nested-content__icon umb-nested-content__icon--move" title="{{moveIconTitle}}" ng-click="$event.stopPropagation();" ng-show="$parent.nodes.length > 1" prevent-default>
|
||||
<i class="icon icon-navigation"></i>
|
||||
</a>
|
||||
<a class="nested-content__icon nested-content__icon--delete" title="{{deleteIconTitle}}" ng-class="{ 'nested-content__icon--disabled': $parent.nodes.length <= $parent.minItems }" ng-click="$parent.deleteNode($index); $event.stopPropagation();" prevent-default>
|
||||
<a class="umb-nested-content__icon umb-nested-content__icon--delete" title="{{deleteIconTitle}}" ng-class="{ 'umb-nested-content__icon--disabled': $parent.nodes.length <= $parent.minItems }" ng-click="$parent.deleteNode($index); $event.stopPropagation();" prevent-default>
|
||||
<i class="icon icon-trash"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="nested-content__content" ng-if="$parent.realCurrentNode.key == node.key && !$parent.sorting">
|
||||
<div class="umb-nested-content__content" ng-if="$parent.realCurrentNode.key == node.key && !$parent.sorting">
|
||||
<umb-nested-content-editor ng-model="node" tab-alias="ncTabAlias" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="nested-content__help-text" ng-show="nodes.length == 0">
|
||||
<div class="umb-nested-content__help-text" ng-show="nodes.length == 0">
|
||||
<localize key="grid_addElement"></localize>
|
||||
</div>
|
||||
|
||||
<div class="nested-content__footer-bar" ng-hide="nodes.length >= maxItems">
|
||||
<a class="nested-content__icon" ng-click="openNodeTypePicker($event)" prevent-default>
|
||||
<div class="umb-nested-content__footer-bar" ng-hide="nodes.length >= maxItems">
|
||||
<a class="umb-nested-content__icon" ng-click="openNodeTypePicker($event)" prevent-default>
|
||||
<i class="icon icon-add"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="usky-grid nested-content__node-type-picker" ng-if="overlayMenu.show">
|
||||
<div class="usky-grid umb-nested-content__node-type-picker" ng-if="overlayMenu.show">
|
||||
<div class="cell-tools-menu" ng-style="overlayMenu.style" style="margin: 0;" delayed-mouseleave="closeNodeTypePicker()" on-delayed-mouseleave="closeNodeTypePicker()">
|
||||
<h5>
|
||||
<localize key="grid_insertControl" />
|
||||
|
||||
@@ -183,7 +183,7 @@ angular.module("umbraco")
|
||||
tagsHound.get(query, function (suggestions) {
|
||||
cb(removeCurrentTagsFromSuggestions(suggestions));
|
||||
});
|
||||
},
|
||||
}
|
||||
}).bind("typeahead:selected", function (obj, datum, name) {
|
||||
angularHelper.safeApply($scope, function () {
|
||||
addTag(datum["value"]);
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
});
|
||||
},
|
||||
readOnly: true
|
||||
},
|
||||
}
|
||||
]);
|
||||
|
||||
// initial cursor placement
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
});
|
||||
},
|
||||
readOnly: true
|
||||
},
|
||||
}
|
||||
|
||||
]);
|
||||
|
||||
|
||||
@@ -1034,9 +1034,9 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\"
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>7120</DevelopmentServerPort>
|
||||
<DevelopmentServerPort>7121</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:7120</IISUrl>
|
||||
<IISUrl>http://localhost:7121</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
@@ -1089,4 +1089,4 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\"
|
||||
<Exec WorkingDirectory="$(ProjectDir)\..\..\" Command="powershell -ExecutionPolicy RemoteSigned -Command "&{ $env:PSModulePath = \"$pwd\build\Modules\;$env:PSModulePath\" ; Import-Module Umbraco.Build -Force -DisableNameChecking ; build-umbraco compile-belle }"" />
|
||||
</Target>
|
||||
<Import Project="..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets" Condition="Exists('..\packages\AutoMapper.3.3.1\tools\AutoMapper.targets')" />
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -51,17 +51,24 @@ namespace Umbraco.Web.Trees
|
||||
|
||||
internal static string GetRootNodeDisplayName(this TreeAttribute attribute, ILocalizedTextService textService)
|
||||
{
|
||||
var label = $"[{attribute.Alias}]";
|
||||
|
||||
// try to look up a the localized tree header matching the tree alias
|
||||
var localizedLabel = textService.Localize("treeHeaders/" + attribute.Alias);
|
||||
if (string.IsNullOrEmpty(localizedLabel) == false)
|
||||
return localizedLabel;
|
||||
|
||||
// otherwise return the header if it's defined
|
||||
if (string.IsNullOrEmpty(attribute.Title) == false)
|
||||
return attribute.Title;
|
||||
|
||||
// if all fails, return this to signal that a label was not found
|
||||
return "[" + attribute.Alias + "]";
|
||||
// if the localizedLabel returns [alias] then return the title attribute from the trees.config file, if it's defined
|
||||
if (localizedLabel != null && localizedLabel.Equals(label, StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
if (string.IsNullOrEmpty(attribute.Title) == false)
|
||||
label = attribute.Title;
|
||||
}
|
||||
else
|
||||
{
|
||||
// the localizedLabel translated into something that's not just [alias], so use the translation
|
||||
label = localizedLabel;
|
||||
}
|
||||
|
||||
return label;
|
||||
}
|
||||
|
||||
internal static Attempt<Type> TryGetControllerTree(this ApplicationTree appTree)
|
||||
|
||||
Reference in New Issue
Block a user