You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.7 KiB
37 lines
1.7 KiB
6 years ago
|
(function($){
|
||
|
$(function(){
|
||
|
$('body').on('grav-editor-ready', function() {
|
||
|
var Instance = Grav.default.Forms.Fields.EditorField.Instance;
|
||
|
Instance.addButton({
|
||
|
yt: {
|
||
|
identifier: 'yt-video',
|
||
|
title: 'YouTube Video',
|
||
|
label: '<i class="fa fa-fw fa-youtube"></i>',
|
||
|
modes: ['gfm', 'markdown'],
|
||
|
action: function(_ref) {
|
||
|
var codemirror = _ref.codemirror, button = _ref.button, textarea = _ref.textarea;
|
||
|
button.on('click.editor.yt',function() {
|
||
|
var videoURL = prompt("Enter the YouTube Video URL. E.g. https://www.youtube.com/watch?v=vQ4qK36UenI");
|
||
|
|
||
|
if (videoURL) {
|
||
|
var text = '[plugin:yt](' + videoURL + ')';
|
||
|
|
||
|
//Add text to the editor
|
||
|
var pos = codemirror.getDoc().getCursor(true);
|
||
|
var posend = codemirror.getDoc().getCursor(false);
|
||
|
|
||
|
for (var i=pos.line; i<(posend.line+1);i++) {
|
||
|
codemirror.replaceRange(text+codemirror.getLine(i), { line: i, ch: 0 }, { line: i, ch: codemirror.getLine(i).length });
|
||
|
}
|
||
|
|
||
|
codemirror.setCursor({ line: posend.line, ch: codemirror.getLine(posend.line).length });
|
||
|
codemirror.focus();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
})(jQuery);
|