diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js new file mode 100644 index 0000000000..2feea2fea4 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js @@ -0,0 +1,57 @@ +/** +@ngdoc directive +@name umbraco.directives.directive:umbCheckbox +@restrict E +@scope + +@description +Added in Umbraco version 7.14.0 Use this directive to render an umbraco checkbox. + +
++ +@param {boolean} model Set to+ +++ + +
true or false to set the checkbox to checked or unchecked.
+@param {string} value Set the value of the checkbox.
+@param {string} name Set the name of the checkbox.
+@param {string} text Set the text for the checkbox label.
+
+
+**/
+
+(function () {
+ 'use strict';
+
+ function CheckboxDirective() {
+ var directive = {
+ restrict: 'E',
+ replace: true,
+ templateUrl: 'views/components/forms/umb-checkbox.html',
+ scope: {
+ model: "=",
+ value: "@",
+ name: "@",
+ text: "@"
+ }
+ };
+
+ return directive;
+
+ }
+
+ angular.module('umbraco.directives').directive('umbCheckbox', CheckboxDirective);
+
+})();
+
+
+
diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js
new file mode 100644
index 0000000000..f3f46918fd
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js
@@ -0,0 +1,54 @@
+/**
+@ngdoc directive
+@name umbraco.directives.directive:umbRadiobutton
+@restrict E
+@scope
+
+@description
+Added in Umbraco version 7.14.0 Use this directive to render an umbraco radio button.
+
+++ +@param {boolean} model Set to+ +++ + +
true or false to set the radiobutton to checked or unchecked.
+@param {string} value Set the value of the radiobutton.
+@param {string} name Set the name of the radiobutton.
+@param {string} text Set the text for the radiobutton label.
+
+
+**/
+
+(function () {
+ 'use strict';
+
+ function RadiobuttonDirective() {
+ var directive = {
+ restrict: 'E',
+ replace: true,
+ templateUrl: 'views/components/forms/umb-radiobutton.html',
+ scope: {
+ model: "=",
+ value: "@",
+ name: "@",
+ text: "@"
+ }
+ };
+
+ return directive;
+
+ }
+
+ angular.module('umbraco.directives').directive('umbRadiobutton', RadiobuttonDirective);
+
+})();
diff --git a/src/Umbraco.Web.UI.Client/src/less/belle.less b/src/Umbraco.Web.UI.Client/src/less/belle.less
index 7f10c3d4d7..4f70fc8011 100644
--- a/src/Umbraco.Web.UI.Client/src/less/belle.less
+++ b/src/Umbraco.Web.UI.Client/src/less/belle.less
@@ -101,6 +101,7 @@
@import "components/umb-confirm-action.less";
@import "components/umb-keyboard-shortcuts-overview.less";
@import "components/umb-checkbox-list.less";
+@import "components/umb-form-check.less";
@import "components/umb-locked-field.less";
@import "components/umb-tabs.less";
@import "components/umb-load-indicator.less";
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-checkbox-list.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-checkbox-list.less
index 02f30f6f35..985e57bea5 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/umb-checkbox-list.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-checkbox-list.less
@@ -1,3 +1,6 @@
+@checkboxWidth: 15px;
+@checkboxHeight: 15px;
+
.umb-checkbox-list {
list-style: none;
margin-left: 0;
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-form-check.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-form-check.less
new file mode 100644
index 0000000000..6e3da0c98f
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-form-check.less
@@ -0,0 +1,125 @@
+@checkboxWidth: 15px;
+@checkboxHeight: 15px;
+
+.umb-form-check {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ position: relative;
+ padding: 0;
+ margin: 0;
+
+ &__text{
+ margin: 0 0 0 26px;
+ position: relative;
+ top: 2px;
+ }
+
+ &__input{
+ position: absolute;
+ top: 0;
+ left: 0;
+ opacity: 0;
+
+ &:checked ~ .umb-form-check__state .umb-form-check__check{
+ border-color: @green;
+ }
+
+ &:focus:checked ~ .umb-form-check .umb-form-check__check,
+ &:focus ~ .umb-form-check__state .umb-form-check__check{
+ border-color: @gray-5;
+ }
+
+ &:checked ~ .umb-form-check__state{
+ .umb-form-check__check{
+ // This only happens if the state has a radiobutton modifier
+ .umb-form-check--radiobutton &{
+ &:before{
+ opacity: 1;
+ transform: scale(1);
+ }
+ }
+
+ // This only happens if state has the checkbox modifier
+ .umb-form-check--checkbox &{
+ &:before{
+ width: @checkboxWidth;
+ height: @checkboxHeight;
+ }
+ }
+ }
+
+ // This only happens if state has the checkbox modifier
+ .umb-form-check--checkbox &{
+ .umb-form-check__icon{
+ opacity: 1;
+ }
+ }
+ }
+ }
+
+ &__state{
+ height: 17px;
+ position: absolute;
+ top: 2px;
+ left: 0;
+ }
+
+ &__check{
+ position: relative;
+ border: 1px solid @gray-7;
+ width: @checkboxWidth;
+ height: @checkboxHeight;
+
+ &:before{
+ content: "";
+ background: @green;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ margin: auto;
+ }
+
+ // This only happens if state has the radiobutton modifier
+ .umb-form-check--radiobutton &{
+ border-radius: 100%;
+
+ &:before{
+ width: 9px;
+ height: 9px;
+ border-radius: 100%;
+ opacity: 0;
+ transform: scale(0);
+ transition: .15s ease-out;
+ }
+ }
+
+ // This only happens if state has the checkbox modifier
+ .umb-form-check--checkbox &{
+ &:before{
+ width: 0;
+ height: 0;
+ transition: .05s ease-out;
+ }
+ }
+ }
+
+ &__icon{
+ color: @white;
+ text-align: center;
+ font-size: 10px;
+ opacity: 0;
+ transition: .2s ease-out;
+
+ &:before{
+ position: absolute;
+ top: -2px;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ margin: auto;
+ }
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/less/property-editors.less b/src/Umbraco.Web.UI.Client/src/less/property-editors.less
index 73de7aeee7..c138eccc5d 100644
--- a/src/Umbraco.Web.UI.Client/src/less/property-editors.less
+++ b/src/Umbraco.Web.UI.Client/src/less/property-editors.less
@@ -13,7 +13,16 @@
&-push {
float:right;
- }
+ }
+
+ &--list{
+ float: left;
+ }
+
+ &__item{
+ line-height: 1;
+ margin: 0 0 5px;
+ }
}
.umb-editor-tiny {
@@ -246,7 +255,7 @@ div.umb-codeeditor .umb-btn-toolbar {
margin: 24px 0 0;
display: flex;
}
-
+
&__input {
width: 100%;
&-wrap{
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html
new file mode 100644
index 0000000000..9d2357f40b
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-checkbox.html
@@ -0,0 +1,14 @@
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html
new file mode 100644
index 0000000000..f09fcf9156
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/views/components/forms/umb-radiobutton.html
@@ -0,0 +1,11 @@
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
index f49858e5cb..f767ac5195 100644
--- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
+++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/checkboxlist/checkboxlist.html
@@ -1,14 +1,8 @@
-