web: try harder to fix editor

This commit is contained in:
Maximilian Hils 2015-05-01 20:45:27 +02:00
parent c780fc7bdf
commit bb965b8e34
2 changed files with 14 additions and 4 deletions

View File

@ -735,9 +735,15 @@ var EditorBase = React.createClass({displayName: "EditorBase",
onBlur: this._stop,
onKeyDown: this.onKeyDown,
onInput: this.onInput,
onPaste: this.onPaste,
dangerouslySetInnerHTML: html})
);
},
onPaste: function(e){
e.preventDefault();
var content = e.clipboardData.getData("text/plain");
document.execCommand("insertHTML", false, content);
},
onFocus: function (e) {
this.setState({editable: true}, function () {
React.findDOMNode(this).focus();
@ -775,7 +781,7 @@ var EditorBase = React.createClass({displayName: "EditorBase",
this.cancel();
break;
case utils.Key.ENTER:
if (this.props.submitOnEnter) {
if (this.props.submitOnEnter && !e.shiftKey) {
e.preventDefault();
this.stop();
}
@ -787,7 +793,6 @@ var EditorBase = React.createClass({displayName: "EditorBase",
onInput: function () {
var node = React.findDOMNode(this);
var content = this.props.nodeToContent(node);
node.innerHTML = this.props.contentToHtml(content);
this.props.onInput && this.props.onInput(content);
}
});

View File

@ -49,9 +49,15 @@ var EditorBase = React.createClass({
onBlur={this._stop}
onKeyDown={this.onKeyDown}
onInput={this.onInput}
onPaste={this.onPaste}
dangerouslySetInnerHTML={html}
/>;
},
onPaste: function(e){
e.preventDefault();
var content = e.clipboardData.getData("text/plain");
document.execCommand("insertHTML", false, content);
},
onFocus: function (e) {
this.setState({editable: true}, function () {
React.findDOMNode(this).focus();
@ -89,7 +95,7 @@ var EditorBase = React.createClass({
this.cancel();
break;
case utils.Key.ENTER:
if (this.props.submitOnEnter) {
if (this.props.submitOnEnter && !e.shiftKey) {
e.preventDefault();
this.stop();
}
@ -101,7 +107,6 @@ var EditorBase = React.createClass({
onInput: function () {
var node = React.findDOMNode(this);
var content = this.props.nodeToContent(node);
node.innerHTML = this.props.contentToHtml(content);
this.props.onInput && this.props.onInput(content);
}
});