Index: lams_central/web/includes/javascript/qb-question.js
===================================================================
diff -u -r32836dfda60fb8230659e2ecb5ed310719025d1c -rc04504bfdd9685850e15792838241a748f13560e
--- lams_central/web/includes/javascript/qb-question.js (.../qb-question.js) (revision 32836dfda60fb8230659e2ecb5ed310719025d1c)
+++ lams_central/web/includes/javascript/qb-question.js (.../qb-question.js) (revision c04504bfdd9685850e15792838241a748f13560e)
@@ -1,5 +1,10 @@
//in order to use this js file, define const VALIDATION_ERROR_LABEL and VALIDATION_ERRORS_LABEL
+// do not check for new version more often than every 2 seconds
+let newQuestionVersionCheckTime = new Date().getTime,
+ newQuestionVersionCheckThrottle = 2000;
+
+
$(document).ready(function(){
$("#question-settings-link").on('click', function() {
$('.question-tab:visible').fadeToggle("fast", function() {
@@ -11,14 +16,31 @@
//toggle Settings button class
$(this).toggleClass("btn-default btn-primary");
+ });
+
+ // trigger is-new-question-version check when changing certain data in a question
+ $('#assessmentQuestionForm').on('input', 'input, select, textarea', function(){
+ checkQuestionNewVersion(false);
+ }).on('change', function(){
+ checkQuestionNewVersion(true);
});
+ $('body').on('input paste', '[contenteditable]', function(){
+ checkQuestionNewVersion(false);
+ });
});
// submits whole question form in order to check if it changed enough to produce a new question version
-function checkQuestionNewVersion(){
+function checkQuestionNewVersion(quick){
if (isNewQuestion) {
return;
}
+
+ let currentTime = new Date().getTime();
+ if (!quick && currentTime - newQuestionVersionCheckTime < newQuestionVersionCheckThrottle) {
+ return;
+ }
+ newQuestionVersionCheckTime = currentTime;
+
let form = $('#assessmentQuestionForm'),
validator = form.data('validator');
if (!validator) {
@@ -44,7 +66,7 @@
// the controller produces true/false and is interpreted as JSON
let newVersion = responseText;
$('#saveButton').toggle(!newVersion);
- $('#saveAsButton').toggleClass('btn-default', !newVersion).toggleClass('btn-primary', newVersion);
+ $('#saveAsButton').toggle(newVersion).toggleClass('btn-primary', newVersion).toggleClass('btn-default', !newVersion);
}
//form validation handler. It's called when the form contains an error.
Index: lams_central/web/qb/authoring/addQuestionFooter.jsp
===================================================================
diff -u -r32836dfda60fb8230659e2ecb5ed310719025d1c -rc04504bfdd9685850e15792838241a748f13560e
--- lams_central/web/qb/authoring/addQuestionFooter.jsp (.../addQuestionFooter.jsp) (revision 32836dfda60fb8230659e2ecb5ed310719025d1c)
+++ lams_central/web/qb/authoring/addQuestionFooter.jsp (.../addQuestionFooter.jsp) (revision c04504bfdd9685850e15792838241a748f13560e)
@@ -38,7 +38,8 @@
-
+
Index: lams_central/web/qb/authoring/addQuestionHeader.jsp
===================================================================
diff -u -r32836dfda60fb8230659e2ecb5ed310719025d1c -rc04504bfdd9685850e15792838241a748f13560e
--- lams_central/web/qb/authoring/addQuestionHeader.jsp (.../addQuestionHeader.jsp) (revision 32836dfda60fb8230659e2ecb5ed310719025d1c)
+++ lams_central/web/qb/authoring/addQuestionHeader.jsp (.../addQuestionHeader.jsp) (revision c04504bfdd9685850e15792838241a748f13560e)
@@ -33,11 +33,6 @@
}
form.submit();
}
-
- $(document).ready(function(){
- // trigger is-new-question-version check when changing certain data in a question
- $('.number, input[name="optionCorrect"]').change(checkQuestionNewVersion);
- });
Index: lams_central/web/qb/authoring/addtruefalse.jsp
===================================================================
diff -u -re8dc64faa966126820cd9e5c99575cbbecb31d5f -rc04504bfdd9685850e15792838241a748f13560e
--- lams_central/web/qb/authoring/addtruefalse.jsp (.../addtruefalse.jsp) (revision e8dc64faa966126820cd9e5c99575cbbecb31d5f)
+++ lams_central/web/qb/authoring/addtruefalse.jsp (.../addtruefalse.jsp) (revision c04504bfdd9685850e15792838241a748f13560e)
@@ -29,8 +29,6 @@