fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
editor: plugins/core - better selecton restore after undoing/redoing link edition...
[fnpeditor.git]
/
src
/
editor
/
plugins
/
core
/
core.js
diff --git
a/src/editor/plugins/core/core.js
b/src/editor/plugins/core/core.js
index
ade5d93
..
bbc27ac
100644
(file)
--- a/
src/editor/plugins/core/core.js
+++ b/
src/editor/plugins/core/core.js
@@
-79,7
+79,17
@@
var undoRedoAction = function(dir) {
icon: 'share-alt',
iconStyle: dir === 'undo' ? '-webkit-transform: scale(-1,1); transform: scale(-1, 1)' : '',
execute: function(callback, params) {
icon: 'share-alt',
iconStyle: dir === 'undo' ? '-webkit-transform: scale(-1,1); transform: scale(-1, 1)' : '',
execute: function(callback, params) {
+ var metadata = _.last(params.document[dir+'Stack']).metadata,
+ fragment = metadata && metadata.fragment;
params.document[dir]();
params.document[dir]();
+ if(fragment) {
+ if(!fragment.isValid()) {
+ fragment.restoreFromPaths();
+ }
+ if(fragment.isValid()) {
+ callback(fragment);
+ }
+ }
callback();
},
},
callback();
},
},
@@
-210,7
+220,8
@@
var createWrapTextAction = function(createParams) {
return newFragment;
}, {
metadata: {
return newFragment;
}, {
metadata: {
- description: createParams.unwrapDescription
+ description: createParams.unwrapDescription,
+ fragment: params.fragment
},
success: callback
});
},
success: callback
});
@@
-246,7
+257,8
@@
var createWrapTextAction = function(createParams) {
}
}, {
metadata: {
}
}, {
metadata: {
- description: createParams.wrapDescription
+ description: createParams.wrapDescription,
+ fragment: params.fragment
},
success: callback
});
},
success: callback
});
@@
-266,7
+278,11
@@
var createLinkFromSelection = function(callback, params) {
executeButtonText: gettext('Apply'),
cancelButtonText: gettext('Cancel'),
fields: [
executeButtonText: gettext('Apply'),
cancelButtonText: gettext('Cancel'),
fields: [
- {label: gettext('Link'), name: 'href', type: 'input'}
+ {label: gettext('Link'), name: 'href', type: 'input',
+ prePasteHandler: function(text) {
+ return params.fragment.document.getLinkForUrl(text);
+ }.bind(this)
+ }
]
}),
action = this;
]
}),
action = this;
@@
-284,7
+300,8
@@
var createLinkFromSelection = function(callback, params) {
return doc.createFragment(doc.CaretFragment, {node: span.contents()[0], offset:0});
}, {
metadata: {
return doc.createFragment(doc.CaretFragment, {node: span.contents()[0], offset:0});
}, {
metadata: {
- description: action.getState().description
+ description: action.getState().description,
+ fragment: params.fragment
},
success: callback
});
},
success: callback
});
@@
-312,7
+329,8
@@
var editLink = function(callback, params) {
return params.fragment;
}, {
metadata: {
return params.fragment;
}, {
metadata: {
- description: action.getState().description
+ description: action.getState().description,
+ fragment: params.fragment
},
success: callback
});
},
success: callback
});