summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-02-26 16:39:30 +0100
committerChristophe Simonis <chs@odoo.com>2019-02-26 16:39:30 +0100
commitff9c9341d6ed4e9ab18a0aa02e79441999d658f1 (patch)
tree47ffd01e071d3783cff6013cfc4b6c3d8e47a841 /addons/web_editor/static/src
parentbc84fdf71b15ad419f8693861aea682ee751f85c (diff)
parentfcb972db9dc778eeaf7d6b6ba3638c78d93998ad (diff)
[MERGE] forward port branch saas-12.2 up to fcb972db9dc
Diffstat (limited to 'addons/web_editor/static/src')
-rw-r--r--addons/web_editor/static/src/js/wysiwyg/plugin/keyboard.js30
-rw-r--r--addons/web_editor/static/src/js/wysiwyg/plugin/media.js3
-rw-r--r--addons/web_editor/static/src/scss/web_editor.variables.scss38
-rw-r--r--addons/web_editor/static/src/xml/editor.xml8
4 files changed, 48 insertions, 31 deletions
diff --git a/addons/web_editor/static/src/js/wysiwyg/plugin/keyboard.js b/addons/web_editor/static/src/js/wysiwyg/plugin/keyboard.js
index 3db30752277..0cb451c100d 100644
--- a/addons/web_editor/static/src/js/wysiwyg/plugin/keyboard.js
+++ b/addons/web_editor/static/src/js/wysiwyg/plugin/keyboard.js
@@ -42,7 +42,6 @@ var KeyboardPlugin = AbstractPlugin.extend({
range = direction === 'prev' ? this._insertInvisibleCharAfterSingleBR(range) : range;
range = this._rerangeOutOfBR(range, direction);
range = this._cleanRangeAfterDeletion(range);
- range = this._replaceEmptyParentWithEmptyP(range);
return range;
},
/**
@@ -219,8 +218,15 @@ var KeyboardPlugin = AbstractPlugin.extend({
* @returns {Boolean} true if case handled
*/
_handleDeletion: function (direction) {
- var didDeleteNodes = this.context.invoke('HelperPlugin.deleteSelection')
var range = this.context.invoke('editor.createRange');
+ range = direction === 'prev' && this._replaceEmptyParentWithEmptyP(range);
+ if (range) {
+ range = this._afterDeletion(range, direction);
+ range.select();
+ return true;
+ }
+ var didDeleteNodes = this.context.invoke('HelperPlugin.deleteSelection');
+ range = this.context.invoke('editor.createRange');
var wasOnStartOfBR = direction === 'prev' && !range.so && range.sc.tagName === 'BR';
this._removeNextEmptyUnbreakable(range.sc);
@@ -837,23 +843,27 @@ var KeyboardPlugin = AbstractPlugin.extend({
*
* @private
* @param {Object} range
- * @returns {Object} range
+ * @returns {Object|undefined} range
*/
_replaceEmptyParentWithEmptyP: function (range) {
- if (range.sc === this.editable || range.sc.parentNode === this.editable) {
- return range;
+ var node = range.sc.childElementCount === 1 && range.sc.firstChild.tagName === 'BR' ? range.sc.firstChild : range.sc;
+ if (node === this.editable || !node.parentNode || node.parentNode === this.editable) {
+ return;
}
- var node = dom.isVoid(range.sc) && range.sc.parentNode ? range.sc.parentNode : range.sc;
- var parentOnlyHasNode = node.parentNode && this.context.invoke('HelperPlugin.onlyContains', node.parentNode, node);
- if (dom.isEmpty(node) && node.tagName !== 'LI' && parentOnlyHasNode) {
+ if (
+ dom.isEmpty(node) &&
+ this.context.invoke('HelperPlugin.onlyContains', node.parentNode, node) &&
+ ['LI', 'P'].indexOf(node.parentNode.tagName) === -1
+ ) {
var emptyP = this.document.createElement('p');
var br = this.document.createElement('br');
$(emptyP).append(br);
- $(node).before(emptyP).remove();
+ $(node.parentNode).before(emptyP).remove();
range.sc = range.ec = br;
range.so = range.eo = 0;
+ return range.collapse(true);
}
- return range;
+ return;
},
/**
* Replace all leading space from a text node with one non-breakable space.
diff --git a/addons/web_editor/static/src/js/wysiwyg/plugin/media.js b/addons/web_editor/static/src/js/wysiwyg/plugin/media.js
index b4d484af805..e60cfbe8039 100644
--- a/addons/web_editor/static/src/js/wysiwyg/plugin/media.js
+++ b/addons/web_editor/static/src/js/wysiwyg/plugin/media.js
@@ -151,6 +151,9 @@ var MediaPlugin = AbstractPlugin.extend({
* @param {Object} data contains the media to insert
*/
insertMedia: function (previous, data) {
+ if (!data.media) {
+ return;
+ }
var newMedia = data.media;
this._wrapCommand(function () {
this.$editable.focus();
diff --git a/addons/web_editor/static/src/scss/web_editor.variables.scss b/addons/web_editor/static/src/scss/web_editor.variables.scss
index a66e3516c77..e317fe7616b 100644
--- a/addons/web_editor/static/src/scss/web_editor.variables.scss
+++ b/addons/web_editor/static/src/scss/web_editor.variables.scss
@@ -117,10 +117,17 @@ $o-checklist-before-size: 13px;
color: #555;
background-color: #fff;
border-radius: 0;
+
&.is-invalid {
border-color: $danger;
}
}
+ .input-group .form-control {
+ height: auto;
+ }
+ .input-group-text {
+ background-color: #e9ecef;
+ }
.was-validated {
.form-control:invalid {
@@ -143,10 +150,14 @@ $o-checklist-before-size: 13px;
border-radius: 0;
background-color: $o-we-color-paper;
+ .modal-header {
+ border-bottom-color: #e9ecef;
+ }
.modal-body {
background-color: white;
}
.modal-footer {
+ border-top-color: #e9ecef;
text-align: left;
}
}
@@ -154,23 +165,23 @@ $o-checklist-before-size: 13px;
@mixin o-w-preserve-tabs {
.nav-tabs {
- border-bottom: 1px solid gray('200');
+ border-bottom: 1px solid #e9ecef;
> li {
> a {
line-height: 1.5;
color: $o-we-color-light;
+
&:hover {
- border-color: gray('200');
+ border-color: #dee2e6;
}
- }
- &.active > a {
- &, &:hover, &:focus {
- color: $o-we-color-normal;
- background-color: $o-we-color-paper;
- border-color: gray('200');
- border-bottom-color: transparent;
+ &.active {
+ &, &:hover, &:focus {
+ color: $o-we-color-normal;
+ background-color: $o-we-color-paper;
+ border-color: #dee2e6 #dee2e6 #FFFFFF;
+ }
}
}
}
@@ -182,7 +193,7 @@ $o-checklist-before-size: 13px;
border-radius: 0;
font-weight: normal;
text-transform: none;
- @include button-size(.375rem, .75rem, 1rem, 1.5, 0);
+ @include button-size(.375rem, .75rem, 0.875rem, 1.5, 0);
&.btn-primary {
@include button-variant($o-brand-primary, $o-brand-primary);
@@ -207,13 +218,6 @@ $o-checklist-before-size: 13px;
&.btn-danger {
@include button-variant($o-we-color-danger, $o-we-color-danger);
}
-
- &.btn-lg {
- @include button-size(.5rem, 1rem, 1.25rem, 1.5, 0);
- }
- &.btn-sm {
- @include button-size(.25rem, .5rem, .875rem, 1.5, 0);
- }
}
}
diff --git a/addons/web_editor/static/src/xml/editor.xml b/addons/web_editor/static/src/xml/editor.xml
index 51c3d5412ff..aa8b5a2f094 100644
--- a/addons/web_editor/static/src/xml/editor.xml
+++ b/addons/web_editor/static/src/xml/editor.xml
@@ -45,7 +45,7 @@
<label class="col-md-3 col-form-label" for="o_bg_img_opt_custom_size_x">Background width</label>
<div class="col-md-5">
<div class="input-group">
- <input type="number" min="0" max="100" class="form-control form-control-sm" id="o_bg_img_opt_custom_size_x" placeholder="auto"/>
+ <input type="number" min="0" max="100" class="form-control" id="o_bg_img_opt_custom_size_x" placeholder="auto"/>
<div class="input-group-append">
<div class="input-group-text">%</div>
</div>
@@ -56,7 +56,7 @@
<label class="col-md-3 col-form-label" for="o_bg_img_opt_custom_size_y">Background height</label>
<div class="col-md-5">
<div class="input-group">
- <input type="number" min="0" max="100" class="form-control form-control-sm" id="o_bg_img_opt_custom_size_y" placeholder="auto"/>
+ <input type="number" min="0" max="100" class="form-control" id="o_bg_img_opt_custom_size_y" placeholder="auto"/>
<div class="input-group-append">
<div class="input-group-text">%</div>
</div>
@@ -71,7 +71,7 @@
<label class="col-md-3 col-form-label" for="o_bg_img_opt_custom_pos_x">Horizontal</label>
<div class="col-md-5">
<div class="input-group">
- <input type="number" min="0" max="100" class="form-control form-control-sm" id="o_bg_img_opt_custom_pos_x" placeholder="auto"/>
+ <input type="number" min="0" max="100" class="form-control " id="o_bg_img_opt_custom_pos_x" placeholder="auto"/>
<div class="input-group-append">
<div class="input-group-text">%</div>
</div>
@@ -82,7 +82,7 @@
<label class="col-md-3 col-form-label" for="o_bg_img_opt_custom_pos_y">Vertical</label>
<div class="col-md-5">
<div class="input-group">
- <input type="number" min="0" max="100" class="form-control form-control-sm" id="o_bg_img_opt_custom_pos_y" placeholder="auto"/>
+ <input type="number" min="0" max="100" class="form-control" id="o_bg_img_opt_custom_pos_y" placeholder="auto"/>
<div class="input-group-append">
<div class="input-group-text">%</div>
</div>