diff --git a/client/commonFramework.js b/client/commonFramework.js index 2562410c0c..2c615d4f96 100644 --- a/client/commonFramework.js +++ b/client/commonFramework.js @@ -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,18 @@ function showCompletion() { ); var bonfireSolution = myCodeMirror.getValue(); var didCompleteWith = $('#completed-with').val() || null; + + $('#complete-courseware-dialog').modal('show'); $('#complete-courseware-dialog .modal-header').click(); + + $('#complete-courseware-dialog').keyup(function(e) { + // ctrl + enter + if (e.ctrlKey && e.keyCode === 13) { + $('#submit-challenge').click(); + } + }); + $('#submit-challenge').click(function(e) { e.preventDefault(); @@ -766,6 +783,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; diff --git a/server/views/coursewares/showBonfire.jade b/server/views/coursewares/showBonfire.jade index a068e99171..4272e65876 100644 --- a/server/views/coursewares/showBonfire.jade +++ b/server/views/coursewares/showBonfire.jade @@ -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   diff --git a/server/views/coursewares/showHTML.jade b/server/views/coursewares/showHTML.jade index 38248519aa..9dfc27690f 100644 --- a/server/views/coursewares/showHTML.jade +++ b/server/views/coursewares/showHTML.jade @@ -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 diff --git a/server/views/coursewares/showJS.jade b/server/views/coursewares/showJS.jade index d8ae56585a..c2e2e5723e 100644 --- a/server/views/coursewares/showJS.jade +++ b/server/views/coursewares/showJS.jade @@ -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