Temporarily remove the 'popup' feature
This commit is contained in:
@ -3,7 +3,6 @@ window.common = (function(global) {
|
|||||||
Rx: { Subject, Observable },
|
Rx: { Subject, Observable },
|
||||||
CodeMirror,
|
CodeMirror,
|
||||||
emmetCodeMirror,
|
emmetCodeMirror,
|
||||||
Clipboard,
|
|
||||||
common = { init: [] }
|
common = { init: [] }
|
||||||
} = global;
|
} = global;
|
||||||
|
|
||||||
@ -37,120 +36,6 @@ window.common = (function(global) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
var clipboard = new Clipboard('.copy-btn', {
|
|
||||||
text: function(trigger) {
|
|
||||||
var type;
|
|
||||||
switch (common.challengeType) {
|
|
||||||
case common.challengeTypes.HTML:
|
|
||||||
type = 'html';
|
|
||||||
break;
|
|
||||||
case common.challengeTypes.JS:
|
|
||||||
case common.challengeTypes.BONFIRE:
|
|
||||||
type = 'js';
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
type = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var returnValue = '';
|
|
||||||
switch (trigger.id) {
|
|
||||||
case 'markdown':
|
|
||||||
returnValue = '```' + type + '\n' + editor.getSelection() + '\n```';
|
|
||||||
editor.replaceSelection(editor.getSelection());
|
|
||||||
return returnValue;
|
|
||||||
case 'plain':
|
|
||||||
returnValue = editor.getSelection();
|
|
||||||
editor.replaceSelection(editor.getSelection());
|
|
||||||
return returnValue;
|
|
||||||
case 'link':
|
|
||||||
default:
|
|
||||||
editor.replaceSelection(editor.getSelection());
|
|
||||||
return '[Challenge - ' + common.challengeName +
|
|
||||||
(common.username ? ' (' + common.username + '\'s solution)' : '')
|
|
||||||
+ '](' + String(window.location).replace(/\)/g, '%29') + ')';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
common.clipboard = clipboard;
|
|
||||||
|
|
||||||
var copyButton = `<a id="copy-btn-parent" href="/" data-toggle="popover" \
|
|
||||||
data-trigger="manual" data-content="<a class='copy-btn' id='link' href='/' \
|
|
||||||
data-toggle='popover' data-trigger='manual' \
|
|
||||||
title='Copy the link to this challenge'>Copy Link</a><br><a class='copy-btn' \
|
|
||||||
id='markdown' href='/' data-toggle='popover'\ data-trigger='manual' \
|
|
||||||
title='Copy the contents of code editor with Markdown syntax \
|
|
||||||
highlighting'>Copy as Pretty Code</a><br><a class='copy-btn' id='plain' \
|
|
||||||
href='/' data-toggle='popover' data-trigger='manual' title='Copy the \
|
|
||||||
contents of code editor'>Copy as Plain Code</a>"></a>`;
|
|
||||||
|
|
||||||
var left = -5, top = -5;
|
|
||||||
$(document).mousemove(function(event) {
|
|
||||||
left = event.pageX;
|
|
||||||
top = event.pageY;
|
|
||||||
});
|
|
||||||
|
|
||||||
function debounce(func, wait, immediate) {
|
|
||||||
var timeout;
|
|
||||||
return function() {
|
|
||||||
var context = this, args = arguments;
|
|
||||||
var later = function() {
|
|
||||||
timeout = null;
|
|
||||||
if (!immediate) {
|
|
||||||
func.apply(context, args);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var callNow = immediate && !timeout;
|
|
||||||
clearTimeout(timeout);
|
|
||||||
timeout = setTimeout(later, wait);
|
|
||||||
if (callNow) {
|
|
||||||
func.apply(context, args);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
var showPopover = debounce(function() {
|
|
||||||
if (editor.somethingSelected()) {
|
|
||||||
$('#copy-btn-parent').popover('show');
|
|
||||||
var editorOffset = $('#mainEditorPanel > form.code').offset(),
|
|
||||||
editorHeight = $('#mainEditorPanel > form.code').height(),
|
|
||||||
editorWidth = $('#mainEditorPanel > form.code').width(),
|
|
||||||
theHeight = $('.popover').height(),
|
|
||||||
theWidth = $('.popover').width();
|
|
||||||
if ((left < editorOffset.left
|
|
||||||
|| left > editorOffset.left + editorWidth - theWidth) || left === -5) {
|
|
||||||
left = (editorOffset.left + editorWidth) / 2;
|
|
||||||
}
|
|
||||||
if ((top < editorOffset.top
|
|
||||||
|| top > editorOffset.top + editorHeight - theHeight) || top === -5) {
|
|
||||||
top = (editorOffset.top + editorHeight) / 2;
|
|
||||||
}
|
|
||||||
$('.popover').css('left', (left + 10) + 'px');
|
|
||||||
$('.popover').css('top', (top - (theHeight / 2) - 7) + 'px');
|
|
||||||
}
|
|
||||||
}, 250);
|
|
||||||
|
|
||||||
if (
|
|
||||||
challengeType === challengeTypes.HTML ||
|
|
||||||
challengeType === challengeTypes.JS ||
|
|
||||||
challengeType === challengeTypes.BONFIRE
|
|
||||||
) {
|
|
||||||
|
|
||||||
$('body').append(copyButton);
|
|
||||||
$('#copy-btn-parent').popover({html: true});
|
|
||||||
|
|
||||||
CodeMirror.on(document, 'mousedown', function() {
|
|
||||||
$('#copy-btn-parent').popover('hide');
|
|
||||||
});
|
|
||||||
|
|
||||||
CodeMirror.on(document, 'mouseup', showPopover);
|
|
||||||
|
|
||||||
$(document).on('click', '.copy-btn', function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
$('#copy-btn-parent').popover('hide');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
editor.setSize('100%', 'auto');
|
editor.setSize('100%', 'auto');
|
||||||
|
|
||||||
common.editorExecute$ = new Subject();
|
common.editorExecute$ = new Subject();
|
||||||
@ -183,14 +68,6 @@ contents of code editor'>Copy as Plain Code</a>"></a>`;
|
|||||||
'Cmd-Enter': function() {
|
'Cmd-Enter': function() {
|
||||||
common.editorExecute$.onNext();
|
common.editorExecute$.onNext();
|
||||||
return false;
|
return false;
|
||||||
},
|
|
||||||
'Ctrl-A': function(cm) {
|
|
||||||
cm.execCommand('selectAll');
|
|
||||||
showPopover();
|
|
||||||
},
|
|
||||||
'Cmd-A': function(cm) {
|
|
||||||
cm.execCommand('selectAll');
|
|
||||||
showPopover();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -80,7 +80,6 @@ var paths = {
|
|||||||
vendorChallenges: [
|
vendorChallenges: [
|
||||||
'public/bower_components/jshint/dist/jshint.js',
|
'public/bower_components/jshint/dist/jshint.js',
|
||||||
'public/bower_components/chai/chai.js',
|
'public/bower_components/chai/chai.js',
|
||||||
'public/bower_components/clipboard/dist/clipboard.min.js',
|
|
||||||
'public/bower_components/CodeMirror/lib/codemirror.js',
|
'public/bower_components/CodeMirror/lib/codemirror.js',
|
||||||
'public/bower_components/CodeMirror/addon/edit/closebrackets.js',
|
'public/bower_components/CodeMirror/addon/edit/closebrackets.js',
|
||||||
'public/bower_components/CodeMirror/addon/edit/matchbrackets.js',
|
'public/bower_components/CodeMirror/addon/edit/matchbrackets.js',
|
||||||
|
Reference in New Issue
Block a user