add ctrl enter press to submit on modal
this adds the ability for a camper to press ctrl + enter to submit a challenge while the challenge completion modal is open
This commit is contained in:
@ -420,6 +420,13 @@ var testSuccess = function() {
|
||||
isInitRun = false;
|
||||
};
|
||||
|
||||
function ctrlEnterClickHandler(e) {
|
||||
// ctrl + enter
|
||||
if (e.ctrlKey && e.keyCode === 13) {
|
||||
$('#submit-challenge').click();
|
||||
}
|
||||
}
|
||||
|
||||
function showCompletion() {
|
||||
if (isInitRun) {
|
||||
isInitRun = false;
|
||||
@ -435,8 +442,11 @@ function showCompletion() {
|
||||
);
|
||||
var bonfireSolution = myCodeMirror.getValue();
|
||||
var didCompleteWith = $('#completed-with').val() || null;
|
||||
|
||||
|
||||
$('#complete-courseware-dialog').modal('show');
|
||||
$('#complete-courseware-dialog .modal-header').click();
|
||||
|
||||
$('#submit-challenge').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
@ -766,6 +776,17 @@ $('#submitButton').on('click', function() {
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
// init modal keybindings on open
|
||||
$('#complete-courseware-dialog').on('shown.bs.modal', function() {
|
||||
$('#complete-courseware-dialog').keyup(ctrlEnterClickHandler);
|
||||
});
|
||||
|
||||
// remove modal keybinds on close
|
||||
$('#complete-courseware-dialog').on('hidden.bs.modal', function() {
|
||||
$('#complete-courseware-dialog').unbind('keyup', ctrlEnterClickHandler);
|
||||
});
|
||||
|
||||
var $preview = $('#preview');
|
||||
isInitRun = true;
|
||||
|
||||
|
@ -141,8 +141,7 @@ block content
|
||||
.spacer
|
||||
.row
|
||||
if (user)
|
||||
#submit-challenge.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge
|
||||
|
||||
#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
||||
if (user.progressTimestamps.length > 2)
|
||||
a.btn.btn-lg.btn-block.btn-twitter(target="_blank", href="https://twitter.com/intent/tweet?text=I%20just%20#{verb}%20%40FreeCodeCamp%20#{name}&url=http%3A%2F%2Ffreecodecamp.com/challenges/#{dashedName}&hashtags=LearnToCode, JavaScript")
|
||||
i.fa.fa-twitter  
|
||||
|
@ -92,7 +92,7 @@ block content
|
||||
span.completion-icon.ion-checkmark-circled.text-primary
|
||||
.spacer
|
||||
if(user)
|
||||
#submit-challenge.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge
|
||||
#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
||||
else
|
||||
a.btn.btn-lg.btn-primary.btn-block(href='/challenges/next-challenge?id=' + challengeId) Go to my next challenge
|
||||
include ../partials/challenge-modals
|
||||
|
@ -88,7 +88,7 @@ block content
|
||||
.spacer
|
||||
.row
|
||||
if (user)
|
||||
#submit-challenge.btn.btn-lg.btn-primary.btn-block Submit and go to next challenge
|
||||
#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
||||
if (user.progressTimestamps.length > 2)
|
||||
a.btn.btn-lg.btn-block.btn-twitter(target="_blank", href="https://twitter.com/intent/tweet?text=I%20just%20#{verb}%20%40FreeCodeCamp%20#{name}&url=http%3A%2F%2Ffreecodecamp.com/challenges/#{dashedName}&hashtags=LearnToCode, JavaScript")
|
||||
i.fa.fa-twitter  
|
||||
|
@ -48,7 +48,7 @@
|
||||
(typeof username !== 'undefined' ?
|
||||
"<button id='" + data[i].id + "' class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost btn-upvote'>upvote</button>" :
|
||||
"<a href='/signup' class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost btn-upvote'>upvote</a>") +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>more info...</a>" +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>more info</a>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
"<div class='hidden-xs row media-stories'>" +
|
||||
@ -69,7 +69,7 @@
|
||||
(typeof username !== 'undefined' ?
|
||||
"<button id='" + data[i].id + "' class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost btn-upvote'>upvote</button>" :
|
||||
"<a href='/signin' class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost'>upvote</a>") +
|
||||
" · <a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost' href='/news/" + linkedName + "'>more info...</a> · " +
|
||||
" · <a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost' href='/news/" + linkedName + "'>more info</a> · " +
|
||||
rank + (rank > 1 ? " points" : " point") + " · posted " +
|
||||
moment(data[i].timePosted).fromNow() +
|
||||
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username + "</a> " +
|
||||
|
@ -84,7 +84,7 @@ script.
|
||||
"</div>" +
|
||||
"<div class='col-xs-12'>" +
|
||||
"<br>" +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>more info...</a>" +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>more info</a>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
@ -103,7 +103,7 @@ script.
|
||||
"</a>" +
|
||||
"</div>" +
|
||||
"<div class='story-byline col-xs-12 wrappable'>" +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost' href='/news/" + linkedName + "'>more info...</a> · " +
|
||||
"<a class='btn btn-no-shadow btn-primary btn-xs btn-primary-ghost' href='/news/" + linkedName + "'>more info</a> · " +
|
||||
rank + (rank > 1 ? " points" : " point") + " · posted " +
|
||||
moment(data[i].timePosted).fromNow() +
|
||||
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username +
|
||||
|
Reference in New Issue
Block a user