[FIX] website: fix editor
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
@charset "UTF-8";
|
||||
/* ---- SNIPPET EDITOR ---- {{{ */
|
||||
#oe_snippets #o_left_bar, #oe_snippets #o_arrow {
|
||||
position: fixed;
|
||||
@@ -870,3 +871,12 @@ table.table_desc tr td:last-child {
|
||||
.s_features_grid {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* other snippet styles */
|
||||
.s_comparisons .panel .list-group-item:not(.active) {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.s_references .img-thumbnail {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
.oe_snippet
|
||||
display: inline-block
|
||||
vertical-align: top
|
||||
width: 93px
|
||||
width: 92px
|
||||
margin-left: 3px
|
||||
margin-right: 3px
|
||||
margin-top: 1px
|
||||
@@ -701,3 +701,15 @@ table.table_desc tr td
|
||||
|
||||
.s_features_grid
|
||||
margin-bottom: 16px
|
||||
|
||||
|
||||
/* other snippet styles */
|
||||
|
||||
.s_comparisons
|
||||
.panel
|
||||
.list-group-item:not(.active)
|
||||
color: #666
|
||||
|
||||
.s_references
|
||||
.img-thumbnail
|
||||
border: none
|
||||
|
||||
@@ -920,19 +920,21 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
|
||||
options.keyMap.mac['ESCAPE'] = 'cancel';
|
||||
|
||||
$.summernote.pluginEvents.insertTable = function (event, editor, layoutInfo, sDim) {
|
||||
var $editable = layoutInfo.editable();
|
||||
var dimension = sDim.split('x');
|
||||
var rng = range.create();
|
||||
rng = rng.deleteContents();
|
||||
var $editable = layoutInfo.editable();
|
||||
$editable.data('NoteHistory').recordUndo($editable, 'enter');
|
||||
|
||||
var isBodyContainer = dom.isBodyContainer;
|
||||
dom.isBodyContainer = dom.isNotBreakable;
|
||||
rng.insertNode(editor.table.createTable(dimension[0], dimension[1]));
|
||||
dom.isBodyContainer = isBodyContainer;
|
||||
var dimension = sDim.split('x');
|
||||
var rng = range.create();
|
||||
rng = rng.deleteContents();
|
||||
|
||||
editor.afterCommand($editable);
|
||||
event.preventDefault();
|
||||
return false;
|
||||
var isBodyContainer = dom.isBodyContainer;
|
||||
dom.isBodyContainer = dom.isNotBreakable;
|
||||
rng.insertNode(editor.table.createTable(dimension[0], dimension[1]));
|
||||
dom.isBodyContainer = isBodyContainer;
|
||||
|
||||
editor.afterCommand($editable);
|
||||
event.preventDefault();
|
||||
return false;
|
||||
};
|
||||
$.summernote.pluginEvents.tab = function (event, editor, layoutInfo, outdent) {
|
||||
var $editable = layoutInfo.editable();
|
||||
|
||||
@@ -366,9 +366,9 @@ define(['summernote/summernote'], function () {
|
||||
|
||||
var def = new $.Deferred();
|
||||
editor.on("save", this, function (linkInfo) {
|
||||
linkInfo.range.select();
|
||||
$editable.data('range', linkInfo.range);
|
||||
def.resolve(linkInfo);
|
||||
$editable.data('range', range.create());
|
||||
$('.note-popover .note-link-popover').show();
|
||||
});
|
||||
editor.on("cancel", this, function () {
|
||||
@@ -410,7 +410,7 @@ define(['summernote/summernote'], function () {
|
||||
if (node && (nodeName === "SPAN" || nodeName === "I") && className.length) {
|
||||
var classNames = className.split(/\s+/);
|
||||
for (var k=0; k<website.editor.fontIcons.length; k++) {
|
||||
if (_.intersection(website.editor.fontIcons[k].icons, classNames).length) {
|
||||
if (_.intersection(website.editor.fontIcons[k].alias, classNames).length) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1207,8 +1207,6 @@ define(['summernote/summernote'], function () {
|
||||
this.EditorBar = EditorBar;
|
||||
$('.inline-media-link').remove();
|
||||
this._super.apply(this, arguments);
|
||||
|
||||
computeFonts();
|
||||
},
|
||||
/**
|
||||
* Add a record undo to history
|
||||
@@ -1342,6 +1340,8 @@ define(['summernote/summernote'], function () {
|
||||
$(document).trigger('mousedown');
|
||||
|
||||
if (!restart) {
|
||||
computeFonts();
|
||||
|
||||
$('#wrapwrap, .o_editable').on('click', '*', function (event) {
|
||||
event.preventDefault();
|
||||
});
|
||||
@@ -2188,9 +2188,21 @@ define(['summernote/summernote'], function () {
|
||||
for(var r = 0; r < rules.length; r++) {
|
||||
var selectorText = rules[r].selectorText;
|
||||
if (selectorText) {
|
||||
var match = selectorText.match(filter);
|
||||
if (match) {
|
||||
css.push([match[1], rules[r].cssText.replace(/(^.*\{\s*)|(\s*\}\s*$)/g, '')]);
|
||||
selectorText = selectorText.split(/\s*,\s*/);
|
||||
var data = null;
|
||||
for(var s = 0; s < selectorText.length; s++) {
|
||||
var match = selectorText[s].match(filter);
|
||||
if (match) {
|
||||
var clean = match[1].slice(1).replace(/::?before$/, '');
|
||||
if (!data) {
|
||||
data = [match[1], rules[r].cssText.replace(/(^.*\{\s*)|(\s*\}\s*$)/g, ''), clean, [clean]];
|
||||
} else {
|
||||
data[3].push(clean);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (data) {
|
||||
css.push(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2200,8 +2212,11 @@ define(['summernote/summernote'], function () {
|
||||
};
|
||||
function computeFonts() {
|
||||
_.each(website.editor.fontIcons, function (data) {
|
||||
data.icons = _.map(website.editor.getCssSelectors(data.parser), function (css) {
|
||||
return css[0].slice(1, css[0].length).replace(/::?before$/, '');
|
||||
data.cssData = website.editor.getCssSelectors(data.parser);
|
||||
data.alias = [];
|
||||
data.icons = _.map(data.cssData, function (css) {
|
||||
data.alias.push.apply(data.alias, css[3]);
|
||||
return css[2];
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -2252,22 +2267,20 @@ define(['summernote/summernote'], function () {
|
||||
search: function (needle) {
|
||||
var iconsParser = this.iconsParser;
|
||||
if (needle) {
|
||||
var parser = [];
|
||||
var fontIcons = website.editor.fontIcons, fontIcon;
|
||||
|
||||
for (var k=0; k<fontIcons.length; k++) {
|
||||
fontIcon = fontIcons[k];
|
||||
var icons = _(fontIcon.icons).filter(function (icon) {
|
||||
return icon.indexOf(needle) !== -1;
|
||||
var iconsParser = [];
|
||||
_.filter(this.iconsParser, function (data) {
|
||||
var cssData = _.filter(data.cssData, function (cssData) {
|
||||
return _.find(cssData[3], function (alias) {
|
||||
return alias.indexOf(needle) !== -1;
|
||||
});
|
||||
});
|
||||
if (icons.length) {
|
||||
parser.push({
|
||||
base: fontIcon.base,
|
||||
icons: icons
|
||||
if (cssData.length) {
|
||||
iconsParser.push({
|
||||
base: data.base,
|
||||
cssData: cssData
|
||||
});
|
||||
}
|
||||
}
|
||||
iconsParser = parser;
|
||||
});
|
||||
}
|
||||
this.$('div.font-icons-icons').html(
|
||||
openerp.qweb.render('website.editor.dialog.font-icons.icons', {'iconsParser': iconsParser}));
|
||||
@@ -2301,17 +2314,17 @@ define(['summernote/summernote'], function () {
|
||||
if (!(classNames instanceof Array)) {
|
||||
classNames = (classNames||"").split(/\s+/);
|
||||
}
|
||||
var fontIcons = website.editor.fontIcons, fontIcon, className;
|
||||
for (var i=0; i<classNames.length; i++) {
|
||||
className = classNames[i];
|
||||
for (var k=0; k<fontIcons.length; k++) {
|
||||
fontIcon = fontIcons[k];
|
||||
if (className === fontIcon.base || fontIcon.icons.indexOf(className) !== -1) {
|
||||
var fontIcon, cssData;
|
||||
for (var k=0; k<this.iconsParser.length; k++) {
|
||||
fontIcon = this.iconsParser[k];
|
||||
for (var s=0; s<fontIcon.cssData.length; s++) {
|
||||
cssData = fontIcon.cssData[s];
|
||||
if (_.intersection(classNames, cssData[3]).length) {
|
||||
return {
|
||||
'base': fontIcon.base,
|
||||
'parser': fontIcon.parser,
|
||||
'icons': fontIcon.icons,
|
||||
'font': className
|
||||
'font': cssData[2]
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -2347,7 +2360,7 @@ define(['summernote/summernote'], function () {
|
||||
continue;
|
||||
case '': continue;
|
||||
default:
|
||||
$(".font-icons-icon").removeClass("font-icons-selected").filter("."+cls).addClass("font-icons-selected");
|
||||
$(".font-icons-icon").removeClass("font-icons-selected").filter("[data-alias*=',"+cls+",']").addClass("font-icons-selected");
|
||||
for (var k=0; k<this.icons.length; k++) {
|
||||
if (this.icons.indexOf(cls) !== -1) {
|
||||
this.$('#fa-icon').val(cls);
|
||||
|
||||
@@ -1067,6 +1067,10 @@
|
||||
this.$bg.removeClass("oe_img_bg").removeClass("oe_custom_bg");
|
||||
}
|
||||
},
|
||||
select_class : function(type, value, $li) {
|
||||
this.background(type, '', $li);
|
||||
this._super(type, value, $li);
|
||||
},
|
||||
choose_image: function(type, value, $li) {
|
||||
if(type !== "click") return;
|
||||
|
||||
@@ -1158,6 +1162,7 @@
|
||||
.click(function () {
|
||||
$td.removeClass("selected");
|
||||
$(this).parent().addClass("selected");
|
||||
self.$target.closest(".o_editable").trigger("content_changed");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -368,9 +368,11 @@
|
||||
</t>
|
||||
<t t-name="website.editor.dialog.font-icons.icons">
|
||||
<t t-foreach="iconsParser" t-as="data">
|
||||
<span t-foreach="data.icons" t-as="icon"
|
||||
t-attf-class="#{data.base} font-icons-icon #{icon}"
|
||||
t-att-data-id="icon"/>
|
||||
<span t-foreach="data.cssData" t-as="cssData"
|
||||
t-attf-class="#{data.base} font-icons-icon #{cssData[2]}"
|
||||
t-attf-data-alias=",#{cssData[3]},"
|
||||
t-att-title="cssData[3].join(', ')"
|
||||
t-att-data-id="cssData[2]"/>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-4 col-xs-12">
|
||||
<div class="panel panel-info">
|
||||
|
||||
<div class="panel-heading text-center">
|
||||
@@ -379,7 +379,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-4 col-xs-12">
|
||||
<div class="panel panel-primary">
|
||||
|
||||
<div class="panel-heading text-center">
|
||||
@@ -408,7 +408,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="col-md-4 col-xs-12">
|
||||
<div class="panel panel-info">
|
||||
|
||||
<div class="panel-heading text-center">
|
||||
@@ -519,7 +519,7 @@
|
||||
More than 500 happy customers.
|
||||
</h3>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-1 mt16 mb32">
|
||||
<div class="col-md-4 col-xs-12 col-md-offset-1 mt16 mb32">
|
||||
<blockquote>
|
||||
<p>
|
||||
Write a quote here from one of your customers. Quotes are a
|
||||
@@ -528,7 +528,7 @@
|
||||
<small>Author of this quote</small>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="col-md-4 col-md-offset-2 mt16 mb32">
|
||||
<div class="col-md-4 col-xs-12 col-md-offset-2 mt16 mb32">
|
||||
<blockquote>
|
||||
<p>
|
||||
Odoo provides essential platform for our project management.
|
||||
@@ -537,20 +537,23 @@
|
||||
<small>John Doe, CEO</small>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="col-md-2 col-md-offset-1">
|
||||
<img src="/website/static/src/img/openerp_logo.png" class="img img-responsive img-thumbnail" alt="OpenERP logo"/>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<img src="/website/static/src/img/openerp_logo.png" class="img img-responsive img-thumbnail" alt="OpenERP logo"/>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<img src="/website/static/src/img/openerp_logo.png" class="img img-responsive img-thumbnail" alt="OpenERP logo"/>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<img src="/website/static/src/img/openerp_logo.png" class="img img-responsive img-thumbnail" alt="OpenERP logo"/>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<img src="/website/static/src/img/openerp_logo.png" class="img img-responsive img-thumbnail" alt="OpenERP logo"/>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4 col-xs-6">
|
||||
<img src="/logo.png" class="img img-responsive img-thumbnail" alt="Logo"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
var content;
|
||||
_.find(website.editor.fontIcons, function (font) {
|
||||
return _.find(website.editor.getCssSelectors(font.parser), function (css) {
|
||||
if ($font.is(css[0].replace(/::?before$/, ''))) {
|
||||
if ($font.is(css[2])) {
|
||||
content = css[1].match(/content:\s*['"](.)['"]/)[1];
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user