Quiz And Survey Master (Formerly Quiz Master Next) - Version 7.3.14

Version Description

(April 5, 2022) = * Bug: Fixed issue with paragraph question type * Bug: Fixed issue with qmn_register_my_templates hook * Bug: Fixed issue with %CATEGORY_POINTS_X% template variable * Bug: Fixed issue with question numbers in email * Bug: Fixed issue with elementor popup * Bug: Issue fixed with touch devices * Feature: Added option to set default number of answers * Feature: Added option to search questions from question bank * Enhancement: Made UI improvements in polar question

Download this release

Release Info

Developer expresstech
Plugin Icon 128x128 Quiz And Survey Master (Formerly Quiz Master Next)
Version 7.3.14
Comparing to
See all releases

Code changes from version 7.3.13 to 7.3.14

css/common-rtl.css CHANGED
@@ -315,6 +315,7 @@ footer.qsm-popup__footer button.qsm-popup-secondary-button:hover {
315
  bottom: auto;
316
  transform: none;
317
  margin-bottom: 30px;
 
318
  }
319
 
320
  .question-type-polar-s {
315
  bottom: auto;
316
  transform: none;
317
  margin-bottom: 30px;
318
+ float: right;
319
  }
320
 
321
  .question-type-polar-s {
css/common.css CHANGED
@@ -308,6 +308,7 @@ footer.qsm-popup__footer button.qsm-popup-secondary-button:hover{
308
  bottom: auto;
309
  transform: none;
310
  margin-bottom: 30px;
 
311
  }
312
  .question-type-polar-s{
313
  height: auto !important;
308
  bottom: auto;
309
  transform: none;
310
  margin-bottom: 30px;
311
+ float: left;
312
  }
313
  .question-type-polar-s{
314
  height: auto !important;
css/qsm-admin-contact.css CHANGED
@@ -7,9 +7,16 @@
7
 
8
  .contact-form-field {
9
  padding: 25px 10px 10px;
10
- margin: 15px 15px;
11
- background: #f1f1f1;
12
- border: 1px solid #dfd4d4;
 
 
 
 
 
 
 
13
  }
14
 
15
  .contact-form-field.new {
7
 
8
  .contact-form-field {
9
  padding: 25px 10px 10px;
10
+ margin: 15px 15px;
11
+ background: #f1f1f1;
12
+ border: 1px solid #dfd4d4;
13
+ position: relative;
14
+ }
15
+ .contact-form-field span.dashicons-move {
16
+ position: absolute;
17
+ right: 8px;
18
+ top: 6px;
19
+ cursor: pointer;
20
  }
21
 
22
  .contact-form-field.new {
css/qsm-admin-question-rtl.css CHANGED
@@ -159,10 +159,10 @@
159
 
160
  .question,
161
  .question-bank-question {
162
- padding: 15px 10px;
163
  background-color: #F3F3F3;
164
  border: 1px solid #cbcbcb;
165
- margin: 15px 10px 0;
166
  }
167
 
168
  .question a {
@@ -217,19 +217,37 @@
217
  clear: both;
218
  }
219
 
220
- .qsm-select-all-label {
221
- margin-left: 5px;
222
  position: relative;
223
  top: 5px;
224
  vertical-align: top;
225
  }
226
 
 
 
 
 
 
 
 
227
  #qsm-import-selected-question {
228
- margin-left: 30px;
 
 
 
 
 
 
 
 
 
 
229
  }
230
 
231
- #qsm-delete-selected-question {
232
- margin-left: 10px;
 
233
  }
234
 
235
  .question-bank-question div {
@@ -391,6 +409,7 @@ div#correct_answer_info_area {
391
  border: 0;
392
  color: #00449e;
393
  text-decoration: none;
 
394
  }
395
 
396
  .qsm-popup__header .qsm-popup__close:before {
@@ -604,9 +623,7 @@ a.import-button.button.disable_import::before {
604
  }
605
 
606
  #question-bank-cat {
607
- float: left;
608
- margin-bottom: 20px;
609
- margin-left: 10px;
610
  }
611
 
612
  .ui-state-highlight {
159
 
160
  .question,
161
  .question-bank-question {
162
+ padding: 10px;
163
  background-color: #F3F3F3;
164
  border: 1px solid #cbcbcb;
165
+ margin: 10px 0;
166
  }
167
 
168
  .question a {
217
  clear: both;
218
  }
219
 
220
+ .qsm-question-bank-select .qsm-select-all-label {
221
+ margin-left: 15px;
222
  position: relative;
223
  top: 5px;
224
  vertical-align: top;
225
  }
226
 
227
+ .qsm-question-bank-select{
228
+ margin-bottom: 15px;
229
+ display: flex;
230
+ justify-content: space-between;
231
+ align-items: center;
232
+ }
233
+
234
  #qsm-import-selected-question {
235
+ margin-right: 10px;
236
+ }
237
+
238
+ #question-bank-search-form{
239
+ float: right;
240
+ }
241
+
242
+ .qsm-question-bank-header .qsm-popup__close {
243
+ position: absolute;
244
+ left: 10px;
245
+ top: 25px;
246
  }
247
 
248
+ .qsm-question-bank-header {
249
+ border-bottom: 2px solid #e3e3e3ad;
250
+ padding-bottom: 15px;
251
  }
252
 
253
  .question-bank-question div {
409
  border: 0;
410
  color: #00449e;
411
  text-decoration: none;
412
+ cursor: pointer;
413
  }
414
 
415
  .qsm-popup__header .qsm-popup__close:before {
623
  }
624
 
625
  #question-bank-cat {
626
+ width: 150px;
 
 
627
  }
628
 
629
  .ui-state-highlight {
css/qsm-admin-question.css CHANGED
@@ -187,10 +187,10 @@
187
 
188
  .question,
189
  .question-bank-question {
190
- padding: 15px 10px;
191
  background-color: #F3F3F3;
192
  border: 1px solid #cbcbcb;
193
- margin: 15px 10px 0;
194
  }
195
 
196
  .question a {
@@ -245,19 +245,37 @@
245
  clear: both;
246
  }
247
 
248
- .qsm-select-all-label {
249
- margin-right: 5px;
250
  position: relative;
251
  top: 5px;
252
  vertical-align: top;
253
  }
254
 
 
 
 
 
 
 
 
255
  #qsm-import-selected-question {
256
- margin-right: 30px;
257
  }
258
 
259
- #qsm-delete-selected-question {
260
- margin-right: 10px;
 
 
 
 
 
 
 
 
 
 
 
261
  }
262
 
263
  .question-bank-question div {
@@ -419,6 +437,7 @@ div#correct_answer_info_area {
419
  border: 0;
420
  color: #00449e;
421
  text-decoration: none;
 
422
  }
423
 
424
  .qsm-popup__header .qsm-popup__close:before {
@@ -632,9 +651,7 @@ a.import-button.button.disable_import::before {
632
  }
633
 
634
  #question-bank-cat {
635
- float: right;
636
- margin-bottom: 20px;
637
- margin-right: 10px;
638
  }
639
 
640
  .ui-state-highlight {
187
 
188
  .question,
189
  .question-bank-question {
190
+ padding: 10px;
191
  background-color: #F3F3F3;
192
  border: 1px solid #cbcbcb;
193
+ margin: 10px 0;
194
  }
195
 
196
  .question a {
245
  clear: both;
246
  }
247
 
248
+ .qsm-question-bank-select .qsm-select-all-label {
249
+ margin-right: 15px;
250
  position: relative;
251
  top: 5px;
252
  vertical-align: top;
253
  }
254
 
255
+ .qsm-question-bank-select{
256
+ margin-bottom: 15px;
257
+ display: flex;
258
+ justify-content: space-between;
259
+ align-items: center;
260
+ }
261
+
262
  #qsm-import-selected-question {
263
+ margin-left: 10px;
264
  }
265
 
266
+ #question-bank-search-form{
267
+ float: left;
268
+ }
269
+
270
+ .qsm-question-bank-header .qsm-popup__close {
271
+ position: absolute;
272
+ right: 10px;
273
+ top: 25px;
274
+ }
275
+
276
+ .qsm-question-bank-header {
277
+ border-bottom: 2px solid #e3e3e3ad;
278
+ padding-bottom: 15px;
279
  }
280
 
281
  .question-bank-question div {
437
  border: 0;
438
  color: #00449e;
439
  text-decoration: none;
440
+ cursor: pointer;
441
  }
442
 
443
  .qsm-popup__header .qsm-popup__close:before {
651
  }
652
 
653
  #question-bank-cat {
654
+ width: 150px;
 
 
655
  }
656
 
657
  .ui-state-highlight {
js/micromodal.min.js CHANGED
@@ -14,7 +14,7 @@ e.length&&e[0].focus()}}},{key:"maintainFocus",value:function(e){var o=this.getF
14
  if(this.modal.contains(document.activeElement)){var t=o.indexOf(document.activeElement)
15
  e.shiftKey&&0===t&&(o[o.length-1].focus(),e.preventDefault()),e.shiftKey||t!==o.length-1||(o[0].focus(),e.preventDefault())}else o[0].focus()}}]),n}(),a=null,r=function(e,o){var t=[]
16
  return e.forEach(function(e){var i=e.attributes[o].value
17
- void 0===t[i]&&(t[i]=[]),t[i].push(e)}),t},s=function(e){if(!document.getElementById(e))return console.warn("MicroModal v0.3.1: ❗Seems like you have missed %c'"+e+"'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","ID somewhere in your code. Refer example below to resolve it."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<div class="modal" id="'+e+'"></div>'),!1},l=function(e){if(e.length<=0)return console.warn("MicroModal v0.3.1: ❗Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<a href="#" data-micromodal-trigger="my-modal"></a>'),!1},c=function(e,o){if(l(e),!o)return!0
18
  for(var t in o)s(t)
19
  return!0}
20
  return{init:function(e){var o=Object.assign({},{openTrigger:"data-micromodal-trigger"},e),i=[].concat(t(document.querySelectorAll("["+o.openTrigger+"]"))),a=r(i,o.openTrigger)
14
  if(this.modal.contains(document.activeElement)){var t=o.indexOf(document.activeElement)
15
  e.shiftKey&&0===t&&(o[o.length-1].focus(),e.preventDefault()),e.shiftKey||t!==o.length-1||(o[0].focus(),e.preventDefault())}else o[0].focus()}}]),n}(),a=null,r=function(e,o){var t=[]
16
  return e.forEach(function(e){var i=e.attributes[o].value
17
+ void 0===t[i]&&(t[i]=[]),t[i].push(e)}),t},s=function(e){if(!document.getElementById(e))return console.warn("MicroModal v0.3.1: ❗Seems like you have missed %c'"+e+"'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","ID somewhere in your code. Refer example below to resolve it."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<div class="modal" id="'+e+'"></div>'),!1},l=function(e){if(e.length<=0)return console.warn("MicroModal v0.3.1: ❗Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<a href="javascript:void(0)" data-micromodal-trigger="my-modal"></a>'),!1},c=function(e,o){if(l(e),!o)return!0
18
  for(var t in o)s(t)
19
  return!0}
20
  return{init:function(e){var o=Object.assign({},{openTrigger:"data-micromodal-trigger"},e),i=[].concat(t(document.querySelectorAll("["+o.openTrigger+"]"))),a=r(i,o.openTrigger)
js/qsm-admin.js CHANGED
@@ -1056,7 +1056,7 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1056
  },
1057
  addField : function( fieldArray ) {
1058
  var new_label = fieldArray.label.replace(/"/g, "'");
1059
- var contactField = $( '<div class="contact-form-field new">' +
1060
  '<div class="contact-form-group">' +
1061
  '<label class="contact-form-label">Field Type</label>' +
1062
  '<select class="contact-form-control wide type-control">' +
@@ -1086,8 +1086,8 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1086
  '<input type="checkbox" class="required-control">' +
1087
  '</div>' +
1088
  '<div class="contact-form-group">' +
1089
- '<a href="#" class="delete-field">Delete</a> | ' +
1090
- '<a href="#" class="copy-field">Duplicate</a>' +
1091
  '</div>' +
1092
  '</div>'
1093
  );
@@ -1227,20 +1227,20 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1227
  }
1228
  });
1229
  $( '.save-contact' ).on( 'click', function() {
1230
- QSMContact.save();
1231
  });
1232
  $( '.contact-form' ).on( 'click', '.delete-field', function( event ) {
1233
- event.preventDefault();
1234
- QSMContact.deleteField( $( this ) );
1235
  });
1236
  $( '.contact-form' ).on( 'click', '.copy-field', function( event ) {
1237
- event.preventDefault();
1238
- QSMContact.duplicateField( $( this ) );
1239
  });
1240
  $( '.contact-form' ).sortable({
1241
- cursor: 'move',
1242
- opacity: 60,
1243
- placeholder: "ui-state-highlight"
1244
  });
1245
  });
1246
  }
@@ -1492,14 +1492,15 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1492
  data: {
1493
  'quizID': 0,
1494
  'page': $('#question_back_page_number').length > 0 ? parseInt($('#question_back_page_number').val()) + 1 : 1,
1495
- 'category': $('#question-bank-cat').val()
 
1496
  },
1497
  success: QSMQuestion.questionBankLoadSuccess
1498
  });
1499
  },
1500
- questionBankLoadSuccess: function (questions) {
1501
- var pagination = questions.pagination;
1502
- var questions = questions.questions;
1503
  if ($('.qb-load-more-wrapper').length > 0) {
1504
  $('.qb-load-more-wrapper').remove();
1505
  } else {
@@ -1511,30 +1512,32 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1511
  if (pagination.total_pages > pagination.current_page) {
1512
  var pagination_html = '<div class="qb-load-more-wrapper" style="text-align: center;margin: 20px 0 10px 0;"><input type="hidden" id="question_back_page_number" value="' + pagination.current_page + '"/>';
1513
  pagination_html += '<input type="hidden" id="question_back_total_pages" value="' + pagination.total_pages + '"/>';
1514
- pagination_html += '<a href="#" class="button button-primary qb-load-more-question">Load More Questions</a></div>';
1515
  $('#question-bank').append(pagination_html);
1516
  }
1517
- if (pagination.current_page == 1 && qsmQuestionSettings.categories.length > 0) {
1518
- var category_arr = qsmQuestionSettings.categories;
1519
- $cat_html = '<select name="question-bank-cat" id="question-bank-cat">';
1520
- $cat_html += '<option value="">All Questions</option>';
1521
- $.each(category_arr, function (index, value) {
1522
- if (value.category !== '') {
1523
- if (typeof value.cat_id !== 'undefined' && value.cat_id !== '') {
1524
- $cat_html += '<option value="' + value.cat_id + '">' + value.category + ' Questions</option>';
1525
- } else {
1526
- $cat_html += '<option value="' + value.category + '">' + value.category + ' Questions</option>';
1527
- }
1528
- }
1529
- });
1530
- $cat_html += '</select>';
1531
- $('#question-bank').prepend($cat_html);
1532
- $('#question-bank-cat').val(pagination.category);
1533
- }
1534
  if (pagination.current_page == 1) {
1535
- $('#question-bank').prepend('<button class="button button-primary" id="qsm-import-selected-question">Import All Selected Questions</button>');
1536
- $('#question-bank').prepend('<button class="button button-default" id="qsm-delete-selected-question">Delete Selected Question from Bank</button>');
1537
- $('#question-bank').prepend('<label class="qsm-select-all-label"><input type="checkbox" id="qsm_select_all_question" /> Select All Question</button>');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1538
  }
1539
  },
1540
  addQuestionToQuestionBank: function (question) {
@@ -1703,6 +1706,7 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1703
  items: '.question',
1704
  opacity: 70,
1705
  cursor: 'move',
 
1706
  placeholder: "ui-state-highlight",
1707
  connectWith: '.page',
1708
  stop: function (evt, ui) {
@@ -1717,12 +1721,17 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
1717
  setTimeout(QSMQuestion.removeNew, 250);
1718
  },
1719
  addNewQuestion: function (model) {
 
 
1720
  QSMAdmin.displayAlert('Question created!', 'success');
1721
  QSMQuestion.addQuestionToPage(model);
1722
  QSMQuestion.openEditPopup(model.id, $('.question[data-question-id=' + model.id + ']').find('.edit-question-button'));
1723
  QSMQuestion.countTotal();
1724
- if ($('#answers').find('.answers-single').length == 0) {
1725
- $('#new-answer-button').trigger('click');
 
 
 
1726
  }
1727
  },
1728
  addQuestionToPage: function (model) {
@@ -2260,6 +2269,12 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
2260
  QSMQuestion.loadQuestionBank('change');
2261
  });
2262
 
 
 
 
 
 
 
2263
  $('.questions').on('click', '.edit-question-button', function (event) {
2264
  event.preventDefault();
2265
  $('.qsm-category-filter').trigger('keyup');
@@ -2559,7 +2574,7 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
2559
  }
2560
  }
2561
 
2562
-
2563
  $('.qsm_hide_for_other').hide();
2564
  if ($('.qsm_show_question_type_' + question_val).length > 0) {
2565
  $('.qsm_show_question_type_' + question_val).show();
@@ -2680,6 +2695,7 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
2680
  $('.questions').sortable({
2681
  opacity: 70,
2682
  cursor: 'move',
 
2683
  placeholder: "ui-state-highlight",
2684
  stop: function (evt, ui) {
2685
  $('.questions > .page').each(function () {
@@ -2696,6 +2712,7 @@ if (jQuery('body').hasClass('admin_page_mlw_quiz_options')){
2696
  });
2697
  $('.page').sortable({
2698
  items: '.question',
 
2699
  opacity: 70,
2700
  cursor: 'move',
2701
  placeholder: "ui-state-highlight",
1056
  },
1057
  addField : function( fieldArray ) {
1058
  var new_label = fieldArray.label.replace(/"/g, "'");
1059
+ var contactField = $( '<div class="contact-form-field new"><span class="dashicons dashicons-move"></span>' +
1060
  '<div class="contact-form-group">' +
1061
  '<label class="contact-form-label">Field Type</label>' +
1062
  '<select class="contact-form-control wide type-control">' +
1086
  '<input type="checkbox" class="required-control">' +
1087
  '</div>' +
1088
  '<div class="contact-form-group">' +
1089
+ '<a href="javascript:void(0)" class="delete-field">Delete</a> | ' +
1090
+ '<a href="javascript:void(0)" class="copy-field">Duplicate</a>' +
1091
  '</div>' +
1092
  '</div>'
1093
  );
1227
  }
1228
  });
1229
  $( '.save-contact' ).on( 'click', function() {
1230
+ QSMContact.save();
1231
  });
1232
  $( '.contact-form' ).on( 'click', '.delete-field', function( event ) {
1233
+ event.preventDefault();
1234
+ QSMContact.deleteField( $( this ) );
1235
  });
1236
  $( '.contact-form' ).on( 'click', '.copy-field', function( event ) {
1237
+ event.preventDefault();
1238
+ QSMContact.duplicateField( $( this ) );
1239
  });
1240
  $( '.contact-form' ).sortable({
1241
+ opacity: 70,
1242
+ cursor: 'grabbing',
1243
+ handle: 'span.dashicons-move'
1244
  });
1245
  });
1246
  }
1492
  data: {
1493
  'quizID': 0,
1494
  'page': $('#question_back_page_number').length > 0 ? parseInt($('#question_back_page_number').val()) + 1 : 1,
1495
+ 'category': $('#question-bank-cat').val(),
1496
+ 'search': $('#question-bank-search-input').val()
1497
  },
1498
  success: QSMQuestion.questionBankLoadSuccess
1499
  });
1500
  },
1501
+ questionBankLoadSuccess: function (response) {
1502
+ var pagination = response.pagination;
1503
+ var questions = response.questions;
1504
  if ($('.qb-load-more-wrapper').length > 0) {
1505
  $('.qb-load-more-wrapper').remove();
1506
  } else {
1512
  if (pagination.total_pages > pagination.current_page) {
1513
  var pagination_html = '<div class="qb-load-more-wrapper" style="text-align: center;margin: 20px 0 10px 0;"><input type="hidden" id="question_back_page_number" value="' + pagination.current_page + '"/>';
1514
  pagination_html += '<input type="hidden" id="question_back_total_pages" value="' + pagination.total_pages + '"/>';
1515
+ pagination_html += '<a href="javascript:void(0)" class="button button-primary qb-load-more-question">Load More Questions</a></div>';
1516
  $('#question-bank').append(pagination_html);
1517
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1518
  if (pagination.current_page == 1) {
1519
+ if ($('#question-bank-search-form').length == 0) {
1520
+ $('.qsm-question-bank-search').append('<form action="" method="post" id="question-bank-search-form"><input type="search" name="search" value="' + response.search + '" id="question-bank-search-input" placeholder="Search questions"></form>');
1521
+ if ( qsmQuestionSettings.categories.length > 0) {
1522
+ var category_arr = qsmQuestionSettings.categories;
1523
+ $cat_html = '<select name="question-bank-cat" id="question-bank-cat">';
1524
+ $cat_html += '<option value="">All Categories</option>';
1525
+ $.each(category_arr, function (index, value) {
1526
+ if (value.category !== '') {
1527
+ if (typeof value.cat_id !== 'undefined' && value.cat_id !== '') {
1528
+ $cat_html += '<option value="' + value.cat_id + '">' + value.category + ' Questions</option>';
1529
+ } else {
1530
+ $cat_html += '<option value="' + value.category + '">' + value.category + ' Questions</option>';
1531
+ }
1532
+ }
1533
+ });
1534
+ $cat_html += '</select>';
1535
+ $('.qsm-question-bank-search').append($cat_html);
1536
+ $('#question-bank-cat').val(pagination.category);
1537
+ }
1538
+ $('.qsm-question-bank-search').append('<button class="button button-primary" id="qsm-import-selected-question">Add Selected Questions</button>');
1539
+ }
1540
+ $('#question-bank').prepend('<div class="qsm-question-bank-select"><label class="qsm-select-all-label"><input type="checkbox" id="qsm_select_all_question" /> Select All Question</label><a href="javascript:void(0)" class="qsm-action-link-delete" id="qsm-delete-selected-question">Delete Selected Items from Question Bank</a>');
1541
  }
1542
  },
1543
  addQuestionToQuestionBank: function (question) {
1706
  items: '.question',
1707
  opacity: 70,
1708
  cursor: 'move',
1709
+ handle: 'span.dashicons-move',
1710
  placeholder: "ui-state-highlight",
1711
  connectWith: '.page',
1712
  stop: function (evt, ui) {
1721
  setTimeout(QSMQuestion.removeNew, 250);
1722
  },
1723
  addNewQuestion: function (model) {
1724
+ var default_answers = parseInt(qsmQuestionSettings.default_answers);
1725
+ var count = 0;
1726
  QSMAdmin.displayAlert('Question created!', 'success');
1727
  QSMQuestion.addQuestionToPage(model);
1728
  QSMQuestion.openEditPopup(model.id, $('.question[data-question-id=' + model.id + ']').find('.edit-question-button'));
1729
  QSMQuestion.countTotal();
1730
+ if ($('#answers').find('.answers-single').length < default_answers) {
1731
+ while(count < default_answers){
1732
+ $('#new-answer-button').trigger('click');
1733
+ count++;
1734
+ }
1735
  }
1736
  },
1737
  addQuestionToPage: function (model) {
2269
  QSMQuestion.loadQuestionBank('change');
2270
  });
2271
 
2272
+ //Show searched question
2273
+ $(document).on('submit', '#question-bank-search-form', function (event) {
2274
+ event.preventDefault();
2275
+ QSMQuestion.loadQuestionBank('change');
2276
+ });
2277
+
2278
  $('.questions').on('click', '.edit-question-button', function (event) {
2279
  event.preventDefault();
2280
  $('.qsm-category-filter').trigger('keyup');
2574
  }
2575
  }
2576
 
2577
+
2578
  $('.qsm_hide_for_other').hide();
2579
  if ($('.qsm_show_question_type_' + question_val).length > 0) {
2580
  $('.qsm_show_question_type_' + question_val).show();
2695
  $('.questions').sortable({
2696
  opacity: 70,
2697
  cursor: 'move',
2698
+ handle: 'span.dashicons-move',
2699
  placeholder: "ui-state-highlight",
2700
  stop: function (evt, ui) {
2701
  $('.questions > .page').each(function () {
2712
  });
2713
  $('.page').sortable({
2714
  items: '.question',
2715
+ handle: 'span.dashicons-move',
2716
  opacity: 70,
2717
  cursor: 'move',
2718
  placeholder: "ui-state-highlight",
js/qsm-common.js CHANGED
@@ -14,11 +14,11 @@
14
  let polarQuestions = jQuery('.question-type-polar-s');
15
  if(polarQuestions.length >0){
16
  qsmPolarSlider('answer', polarQuestions);
17
- }
18
  });
19
 
20
  function qsmPolarSlider(page , polarQuestions){
21
- polarQuestions.each( function(){
22
  let polarQuestion= jQuery(this).find('.slider-main-wrapper div');
23
  let questionID = polarQuestion.attr('id').replace('slider-','');
24
  qsmPolarSliderEach(polarQuestion,questionID,page);
@@ -28,13 +28,13 @@
28
  return jQuery(this).height();
29
  }).get();
30
  let maxHeight = Math.max.apply(null, heightArray);
31
- jQuery('.mlw-qmn-question-result-'+questionID).height(maxHeight);
32
  } else {
33
  let heightArray = jQuery(".question-section-id-"+questionID+" .question-type-polar-s >> div").map(function() {
34
  return jQuery(this).height();
35
  }).get();
36
  let maxHeight = Math.max.apply(null,heightArray);
37
-
38
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').height(maxHeight);
39
  }
40
  });
@@ -57,10 +57,10 @@
57
  let value;
58
  if ('answer'=== page || 'admin' === page){
59
  value = parseInt( polarQuestion.attr("data-answer_value") );
60
- } else {
61
  value = parseInt((max-min)/2) + min ;
62
  }
63
-
64
  polarQuestion.slider({
65
  max: max,
66
  min: min,
@@ -75,12 +75,12 @@
75
  else{
76
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
77
  '.ui-slider-handle').text( ui.value );
78
- }
79
  },
80
  change: function ( event, ui ){
81
  if('answer'!== page || 'admin' !== page){
82
  qsmPolarSliderQuestionChange(ui,questionID, answer1, answer2, value , isReverse );
83
-
84
  }
85
  },
86
  create: function (event, ui){
@@ -98,7 +98,7 @@
98
  jQuery(this).find('a').hide();
99
  }
100
  }
101
-
102
  });
103
  }
104
 
@@ -106,7 +106,7 @@
106
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
107
  '.qmn_polar').val(ui.value);
108
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
109
- '.ui-slider-handle').text(ui.value);
110
  let lowerMidClass = '.left-polar-title';
111
  let upperMidClass = '.right-polar-title';
112
  if (isReverse){
@@ -142,7 +142,7 @@
142
  }
143
 
144
  function qsmPolarSliderQuestionCreate(questionID){
145
-
146
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
147
  '.left-polar-title').css('font-weight', '400');
148
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
14
  let polarQuestions = jQuery('.question-type-polar-s');
15
  if(polarQuestions.length >0){
16
  qsmPolarSlider('answer', polarQuestions);
17
+ }
18
  });
19
 
20
  function qsmPolarSlider(page , polarQuestions){
21
+ polarQuestions.each( function(){
22
  let polarQuestion= jQuery(this).find('.slider-main-wrapper div');
23
  let questionID = polarQuestion.attr('id').replace('slider-','');
24
  qsmPolarSliderEach(polarQuestion,questionID,page);
28
  return jQuery(this).height();
29
  }).get();
30
  let maxHeight = Math.max.apply(null, heightArray);
31
+ jQuery('.mlw-qmn-question-result-'+questionID).height(maxHeight);
32
  } else {
33
  let heightArray = jQuery(".question-section-id-"+questionID+" .question-type-polar-s >> div").map(function() {
34
  return jQuery(this).height();
35
  }).get();
36
  let maxHeight = Math.max.apply(null,heightArray);
37
+
38
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').height(maxHeight);
39
  }
40
  });
57
  let value;
58
  if ('answer'=== page || 'admin' === page){
59
  value = parseInt( polarQuestion.attr("data-answer_value") );
60
+ } else {
61
  value = parseInt((max-min)/2) + min ;
62
  }
63
+
64
  polarQuestion.slider({
65
  max: max,
66
  min: min,
75
  else{
76
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
77
  '.ui-slider-handle').text( ui.value );
78
+ }
79
  },
80
  change: function ( event, ui ){
81
  if('answer'!== page || 'admin' !== page){
82
  qsmPolarSliderQuestionChange(ui,questionID, answer1, answer2, value , isReverse );
83
+
84
  }
85
  },
86
  create: function (event, ui){
98
  jQuery(this).find('a').hide();
99
  }
100
  }
101
+
102
  });
103
  }
104
 
106
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
107
  '.qmn_polar').val(ui.value);
108
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
109
+ '.ui-slider-handle').text(ui.value);
110
  let lowerMidClass = '.left-polar-title';
111
  let upperMidClass = '.right-polar-title';
112
  if (isReverse){
142
  }
143
 
144
  function qsmPolarSliderQuestionCreate(questionID){
145
+
146
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
147
  '.left-polar-title').css('font-weight', '400');
148
  jQuery('.question-section-id-'+questionID+' .question-type-polar-s').find(
js/qsm-quiz.js CHANGED
@@ -73,7 +73,7 @@ var QSMPageTimer;
73
  // ...else, we must be using the questions per page option.
74
  } else {
75
  if (qmn_quiz_data[quizID].hasOwnProperty('pagination') && qmn_quiz_data[quizID].first_page) {
76
- $('#quizForm' + quizID).closest('.qmn_quiz_container').find('.mlw_next').on('click', function (event) {
77
  event.preventDefault();
78
  if (qmn_quiz_data[quizID].hasOwnProperty('advanced_timer')) {
79
  var start_timer = parseInt(qmn_quiz_data[quizID].advanced_timer.start_timer_page);
@@ -331,8 +331,7 @@ var QSMPageTimer;
331
  jQuery(document).trigger('qsm_init_progressbar_after', [quizID, qmn_quiz_data]);
332
  }
333
  QSM.goToPage(quizID, 1);
334
-
335
- $quizForm.find('.qsm-pagination .qsm-next').on('click', function (event) {
336
  jQuery(document).trigger('qsm_next_button_click_before', [quizID]);
337
  event.preventDefault();
338
  QSM.nextPage(quizID);
@@ -342,7 +341,7 @@ var QSMPageTimer;
342
  }
343
  jQuery(document).trigger('qsm_next_button_click_after', [quizID]);
344
  });
345
- $quizForm.find('.qsm-pagination .qsm-previous').on('click', function (event) {
346
  jQuery(document).trigger('qsm_previous_button_click_before', [quizID]);
347
  event.preventDefault();
348
  QSM.prevPage(quizID);
@@ -684,7 +683,7 @@ function qmnDoInit() {
684
  // Call main initialization.
685
  qsminstance = QSM.init();
686
 
687
- jQuery(".qsm-quiz-container").on("click", ".mlw_next", function () {
688
  if (quizType == 'paginated') {
689
  timer_ms = jQuery("input[name='timer_ms']").val();
690
  if (timer_ms == 0) {
@@ -1207,11 +1206,11 @@ function qmnInitPagination(quiz_id) {
1207
  .append('<input type="hidden" value="' + qmn_total_pages + '" name="total_pages" class="total_pages_hidden" />')
1208
  .append('<input type="hidden" value="' + qmn_section_total + '" name="total_sections" class="total_sections_hidden" />')
1209
  .append('<input type="hidden" value="0" name="previous_amount" class="previous_amount_hidden" />')
1210
- .append('<a class="qmn_btn mlw_qmn_quiz_link mlw_previous" href="#">' + qmn_quiz_data[quiz_id].pagination.previous_text + '</a>')
1211
  .append('<span class="qmn_page_message"></span>')
1212
  .append('<div class="qmn_page_counter_message"></div>')
1213
  .append('<div class="qsm-progress-bar" id="qsm_progress_bar_' + quiz_id + '" style="display:none;"><div class="progressbar-text"></div></div>')
1214
- .append('<a class="qmn_btn mlw_qmn_quiz_link mlw_next" href="#">' + qmn_quiz_data[quiz_id].pagination.next_text + '</a>');
1215
 
1216
  if ('1' == qmn_quiz_data[quiz_id].progress_bar) {
1217
  jQuery(document).trigger('qsm_init_progressbar_before', [quiz_id, qmn_quiz_data]);
@@ -1246,7 +1245,7 @@ function qmnInitPagination(quiz_id) {
1246
  jQuery(document).trigger('qsm_init_progressbar_after', [quiz_id, qmn_quiz_data]);
1247
  }
1248
 
1249
- jQuery(".mlw_next").unbind().click(function (event) {
1250
  event.preventDefault();
1251
  var quiz_id = +jQuery(this).closest('.qmn_quiz_container').find('.qmn_quiz_id').val();
1252
  jQuery(document).trigger('qsm_auto_next_button_click_before', [quiz_id]);
@@ -1256,7 +1255,7 @@ function qmnInitPagination(quiz_id) {
1256
  jQuery(document).trigger('qsm_next_button_click_after', [quiz_id]);
1257
  });
1258
 
1259
- jQuery(".mlw_previous").unbind().click(function (event) {
1260
  event.preventDefault();
1261
  var quiz_id = +jQuery(this).closest('.qmn_quiz_container').find('.qmn_quiz_id').val();
1262
  qmnPrevSlide(qmn_quiz_data[quiz_id].pagination.amount, 1, '#quizForm' + quiz_id);
73
  // ...else, we must be using the questions per page option.
74
  } else {
75
  if (qmn_quiz_data[quizID].hasOwnProperty('pagination') && qmn_quiz_data[quizID].first_page) {
76
+ $(document).on('click', '.qmn_quiz_container'+ quizID + ' .mlw_next', function (event) {
77
  event.preventDefault();
78
  if (qmn_quiz_data[quizID].hasOwnProperty('advanced_timer')) {
79
  var start_timer = parseInt(qmn_quiz_data[quizID].advanced_timer.start_timer_page);
331
  jQuery(document).trigger('qsm_init_progressbar_after', [quizID, qmn_quiz_data]);
332
  }
333
  QSM.goToPage(quizID, 1);
334
+ jQuery(document).on('click', '.qsm-quiz-container-' + quizID + ' .qsm-pagination .qsm-next', function (event) {
 
335
  jQuery(document).trigger('qsm_next_button_click_before', [quizID]);
336
  event.preventDefault();
337
  QSM.nextPage(quizID);
341
  }
342
  jQuery(document).trigger('qsm_next_button_click_after', [quizID]);
343
  });
344
+ jQuery(document).on('click', '.qsm-quiz-container-' + quizID + ' .qsm-pagination .qsm-previous', function (event) {
345
  jQuery(document).trigger('qsm_previous_button_click_before', [quizID]);
346
  event.preventDefault();
347
  QSM.prevPage(quizID);
683
  // Call main initialization.
684
  qsminstance = QSM.init();
685
 
686
+ jQuery(document).on("click", ".qsm-quiz-container .mlw_next", function () {
687
  if (quizType == 'paginated') {
688
  timer_ms = jQuery("input[name='timer_ms']").val();
689
  if (timer_ms == 0) {
1206
  .append('<input type="hidden" value="' + qmn_total_pages + '" name="total_pages" class="total_pages_hidden" />')
1207
  .append('<input type="hidden" value="' + qmn_section_total + '" name="total_sections" class="total_sections_hidden" />')
1208
  .append('<input type="hidden" value="0" name="previous_amount" class="previous_amount_hidden" />')
1209
+ .append('<a class="qmn_btn mlw_qmn_quiz_link mlw_previous" href="javascript:void(0)">' + qmn_quiz_data[quiz_id].pagination.previous_text + '</a>')
1210
  .append('<span class="qmn_page_message"></span>')
1211
  .append('<div class="qmn_page_counter_message"></div>')
1212
  .append('<div class="qsm-progress-bar" id="qsm_progress_bar_' + quiz_id + '" style="display:none;"><div class="progressbar-text"></div></div>')
1213
+ .append('<a class="qmn_btn mlw_qmn_quiz_link mlw_next" href="javascript:void(0)">' + qmn_quiz_data[quiz_id].pagination.next_text + '</a>');
1214
 
1215
  if ('1' == qmn_quiz_data[quiz_id].progress_bar) {
1216
  jQuery(document).trigger('qsm_init_progressbar_before', [quiz_id, qmn_quiz_data]);
1245
  jQuery(document).trigger('qsm_init_progressbar_after', [quiz_id, qmn_quiz_data]);
1246
  }
1247
 
1248
+ jQuery(document).on( "click", ".qsm-quiz-container-" + quiz_id + " .mlw_next", function (event) {
1249
  event.preventDefault();
1250
  var quiz_id = +jQuery(this).closest('.qmn_quiz_container').find('.qmn_quiz_id').val();
1251
  jQuery(document).trigger('qsm_auto_next_button_click_before', [quiz_id]);
1255
  jQuery(document).trigger('qsm_next_button_click_after', [quiz_id]);
1256
  });
1257
 
1258
+ jQuery(document).on( "click", ".qsm-quiz-container-" + quiz_id + " .mlw_previous", function (event) {
1259
  event.preventDefault();
1260
  var quiz_id = +jQuery(this).closest('.qmn_quiz_container').find('.qmn_quiz_id').val();
1261
  qmnPrevSlide(qmn_quiz_data[quiz_id].pagination.amount, 1, '#quizForm' + quiz_id);
mlw_quizmaster2.php CHANGED
@@ -2,14 +2,14 @@
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
- * Version: 7.3.13
6
  * Author: ExpressTech
7
  * Author URI: https://quizandsurveymaster.com/
8
  * Plugin URI: https://expresstech.io/
9
  * Text Domain: quiz-master-next
10
  *
11
  * @author QSM Team
12
- * @version 7.3.13
13
  * @package QSM
14
  */
15
 
@@ -44,7 +44,7 @@ class MLWQuizMasterNext {
44
  * @var string
45
  * @since 4.0.0
46
  */
47
- public $version = '7.3.13';
48
 
49
  /**
50
  * QSM Alert Manager Object
@@ -295,7 +295,7 @@ class MLWQuizMasterNext {
295
  wp_enqueue_style( 'qsm_common_style', QSM_PLUGIN_CSS_URL . '/common.css', array(), $this->version );
296
  wp_style_add_data( 'qsm_common_style', 'rtl', 'replace' );
297
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
298
- wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
299
  wp_enqueue_script( 'jquery-ui-slider' );
300
  wp_enqueue_script( 'jquery-ui-slider-rtl-js', QSM_PLUGIN_JS_URL . '/jquery.ui.slider-rtl.js', array( 'jquery-ui-core', 'jquery-ui-mouse', 'jquery-ui-slider' ), $this->version, true );
301
  wp_enqueue_style( 'jquery-ui-slider-rtl-css', QSM_PLUGIN_CSS_URL . '/jquery.ui.slider-rtl.css', array(), $this->version );
@@ -327,7 +327,7 @@ class MLWQuizMasterNext {
327
  case 'emails':
328
  case 'results-pages':
329
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
330
- wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
331
  wp_enqueue_editor();
332
  wp_enqueue_media();
333
  break;
@@ -347,20 +347,20 @@ class MLWQuizMasterNext {
347
  wp_enqueue_script( 'jquery-effects-blind' );
348
  wp_enqueue_script( 'jquery-effects-explode' );
349
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
350
- wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
351
  break;
352
  default:
353
  wp_enqueue_style( 'qsm_admin_question_css', QSM_PLUGIN_CSS_URL . '/qsm-admin-question.css', array(), $this->version );
354
  wp_style_add_data( 'qsm_admin_question_css', 'rtl', 'replace' );
355
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
356
- wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
357
  wp_enqueue_editor();
358
  wp_enqueue_media();
359
  break;
360
  }
361
  }
362
  // load admin JS after all dependencies are loaded
363
- wp_enqueue_script( 'qsm_admin_js', plugins_url( 'js/qsm-admin.js', __FILE__ ), array( 'jquery', 'backbone', 'underscore', 'wp-util', 'jquery-ui-sortable' ), $this->version, true );
364
  wp_enqueue_script( 'micromodal_script', plugins_url( 'js/micromodal.min.js', __FILE__ ), array( 'jquery', 'qsm_admin_js' ), $this->version, true );
365
 
366
  }
@@ -558,8 +558,8 @@ class MLWQuizMasterNext {
558
  ?>
559
  </p>
560
  <p class="category-action">
561
- <a href="#" class="button cancel-multiple-category"><?php esc_html_e( 'Cancel', 'quiz-master-next' ); ?></a>
562
- &nbsp;&nbsp;&nbsp;<a href="#" class="button button-primary enable-multiple-category"><?php esc_html_e( 'Update Database', 'quiz-master-next' ); ?></a>
563
  </p>
564
  </div>
565
  <?php
@@ -596,3 +596,48 @@ function qsm_edit_quiz_admin_option() {
596
  }
597
 
598
  add_action( 'admin_bar_menu', 'qsm_edit_quiz_admin_option', 999 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  /**
3
  * Plugin Name: Quiz And Survey Master
4
  * Description: Easily and quickly add quizzes and surveys to your website.
5
+ * Version: 7.3.14
6
  * Author: ExpressTech
7
  * Author URI: https://quizandsurveymaster.com/
8
  * Plugin URI: https://expresstech.io/
9
  * Text Domain: quiz-master-next
10
  *
11
  * @author QSM Team
12
+ * @version 7.3.14
13
  * @package QSM
14
  */
15
 
44
  * @var string
45
  * @since 4.0.0
46
  */
47
+ public $version = '7.3.14';
48
 
49
  /**
50
  * QSM Alert Manager Object
295
  wp_enqueue_style( 'qsm_common_style', QSM_PLUGIN_CSS_URL . '/common.css', array(), $this->version );
296
  wp_style_add_data( 'qsm_common_style', 'rtl', 'replace' );
297
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
298
+ wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
299
  wp_enqueue_script( 'jquery-ui-slider' );
300
  wp_enqueue_script( 'jquery-ui-slider-rtl-js', QSM_PLUGIN_JS_URL . '/jquery.ui.slider-rtl.js', array( 'jquery-ui-core', 'jquery-ui-mouse', 'jquery-ui-slider' ), $this->version, true );
301
  wp_enqueue_style( 'jquery-ui-slider-rtl-css', QSM_PLUGIN_CSS_URL . '/jquery.ui.slider-rtl.css', array(), $this->version );
327
  case 'emails':
328
  case 'results-pages':
329
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
330
+ wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
331
  wp_enqueue_editor();
332
  wp_enqueue_media();
333
  break;
347
  wp_enqueue_script( 'jquery-effects-blind' );
348
  wp_enqueue_script( 'jquery-effects-explode' );
349
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
350
+ wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
351
  break;
352
  default:
353
  wp_enqueue_style( 'qsm_admin_question_css', QSM_PLUGIN_CSS_URL . '/qsm-admin-question.css', array(), $this->version );
354
  wp_style_add_data( 'qsm_admin_question_css', 'rtl', 'replace' );
355
  wp_enqueue_script( 'math_jax', QSM_PLUGIN_JS_URL . '/mathjax/tex-mml-chtml.js', false, '3.2.0', true );
356
+ wp_add_inline_script( 'math_jax', self::$default_MathJax_script, 'before' );
357
  wp_enqueue_editor();
358
  wp_enqueue_media();
359
  break;
360
  }
361
  }
362
  // load admin JS after all dependencies are loaded
363
+ wp_enqueue_script( 'qsm_admin_js', plugins_url( 'js/qsm-admin.js', __FILE__ ), array( 'jquery', 'backbone', 'underscore', 'wp-util', 'jquery-ui-sortable', 'jquery-touch-punch' ), $this->version, true );
364
  wp_enqueue_script( 'micromodal_script', plugins_url( 'js/micromodal.min.js', __FILE__ ), array( 'jquery', 'qsm_admin_js' ), $this->version, true );
365
 
366
  }
558
  ?>
559
  </p>
560
  <p class="category-action">
561
+ <a href="javascrip:void(0)" class="button cancel-multiple-category"><?php esc_html_e( 'Cancel', 'quiz-master-next' ); ?></a>
562
+ &nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" class="button button-primary enable-multiple-category"><?php esc_html_e( 'Update Database', 'quiz-master-next' ); ?></a>
563
  </p>
564
  </div>
565
  <?php
596
  }
597
 
598
  add_action( 'admin_bar_menu', 'qsm_edit_quiz_admin_option', 999 );
599
+
600
+ /**
601
+ * Add inline QSM template
602
+ *
603
+ * @return void
604
+ * @since 7.3.14
605
+ */
606
+ function qsm_add_inline_tmpl( $handle, $id, $tmpl ) {
607
+ // Collect input data
608
+ static $data = array();
609
+ $data[ $handle ][ $id ] = $tmpl;
610
+
611
+ // Append template for relevant script handle
612
+ add_filter(
613
+ 'script_loader_tag',
614
+ function( $tag, $hndl ) use ( &$data, $id ) {
615
+ // Nothing to do if no match
616
+ if ( ! isset( $data[ $hndl ][ $id ] ) ) {
617
+ return $tag;
618
+ }
619
+
620
+ // Script tag replacement aka wp_add_inline_script()
621
+ if ( false !== stripos( $data[ $hndl ][ $id ], '</script>' ) ) {
622
+ $data[ $hndl ][ $id ] = trim(
623
+ preg_replace(
624
+ '#<script[^>]*>(.*)</script>#is',
625
+ '$1',
626
+ $data[ $hndl ][ $id ]
627
+ )
628
+ );
629
+ }
630
+
631
+ // Append template
632
+ $tag .= sprintf(
633
+ "<script type='text/template' id='%s'>\n%s\n</script>" . PHP_EOL,
634
+ esc_attr( $id ),
635
+ $data[ $hndl ][ $id ]
636
+ );
637
+
638
+ return $tag;
639
+ },
640
+ 10,
641
+ 3
642
+ );
643
+ }
package-lock.json ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ {
2
+ "name": "quiz-master-next",
3
+ "lockfileVersion": 2,
4
+ "requires": true,
5
+ "packages": {}
6
+ }
php/admin/admin-dashboard.php CHANGED
@@ -114,7 +114,7 @@ function qsm_generate_dashboard_page() {
114
  <img src="<?php echo esc_url( QSM_PLUGIN_URL . '/assets/icon-128x128.png' ); ?>" alt="Welcome Logo">
115
  <p class="current_version"><?php echo esc_attr( $mlwQuizMasterNext->version ); ?></p>
116
  </div>
117
- <a class="qsm-welcome-panel-dismiss" href="#"
118
  aria-label="Dismiss the welcome panel"><?php esc_html_e( 'Dismiss', 'quiz-master-next' ); ?></a>
119
  <div class="welcome-panel-content">
120
  <h2><?php esc_html_e( 'Welcome to Quiz And Survey Master!', 'quiz-master-next' ); ?></h2>
@@ -123,7 +123,7 @@ function qsm_generate_dashboard_page() {
123
  <div class="welcome-panel-column">
124
  <h3><?php esc_html_e( 'Get Started', 'quiz-master-next' ); ?></h3>
125
  <a class="button button-primary button-hero load-quiz-wizard hide-if-no-customize"
126
- href="#"><?php esc_html_e( 'Create New Quiz/Survey', 'quiz-master-next' ); ?></a>
127
  <p class="hide-if-no-customize">
128
  or, <a
129
  href="admin.php?page=mlw_quiz_list"><?php esc_html_e( 'Edit previously created quizzes', 'quiz-master-next' ); ?></a>
@@ -462,7 +462,7 @@ function qsm_dashboard_recent_taken_quiz( $widget_id ) {
462
  <p class="row-actions-c">
463
  <a
464
  href="admin.php?page=qsm_quiz_result_details&result_id=<?php echo esc_attr( $single_result_arr['result_id'] ); ?>">View</a>
465
- | <a href="#" data-result_id="<?php echo esc_attr( $single_result_arr['result_id'] ); ?>"
466
  class="trash rtq-delete-result">Delete</a>
467
  </p>
468
  </div>
114
  <img src="<?php echo esc_url( QSM_PLUGIN_URL . '/assets/icon-128x128.png' ); ?>" alt="Welcome Logo">
115
  <p class="current_version"><?php echo esc_attr( $mlwQuizMasterNext->version ); ?></p>
116
  </div>
117
+ <a class="qsm-welcome-panel-dismiss" href="javascript:void(0)"
118
  aria-label="Dismiss the welcome panel"><?php esc_html_e( 'Dismiss', 'quiz-master-next' ); ?></a>
119
  <div class="welcome-panel-content">
120
  <h2><?php esc_html_e( 'Welcome to Quiz And Survey Master!', 'quiz-master-next' ); ?></h2>
123
  <div class="welcome-panel-column">
124
  <h3><?php esc_html_e( 'Get Started', 'quiz-master-next' ); ?></h3>
125
  <a class="button button-primary button-hero load-quiz-wizard hide-if-no-customize"
126
+ href="javascript:void(0)"><?php esc_html_e( 'Create New Quiz/Survey', 'quiz-master-next' ); ?></a>
127
  <p class="hide-if-no-customize">
128
  or, <a
129
  href="admin.php?page=mlw_quiz_list"><?php esc_html_e( 'Edit previously created quizzes', 'quiz-master-next' ); ?></a>
462
  <p class="row-actions-c">
463
  <a
464
  href="admin.php?page=qsm_quiz_result_details&result_id=<?php echo esc_attr( $single_result_arr['result_id'] ); ?>">View</a>
465
+ | <a href="javascript:void(0)" data-result_id="<?php echo esc_attr( $single_result_arr['result_id'] ); ?>"
466
  class="trash rtq-delete-result">Delete</a>
467
  </p>
468
  </div>
php/admin/functions.php CHANGED
@@ -478,7 +478,7 @@ function qsm_create_new_quiz_wizard() {
478
  </div>
479
  <ul style="display: none;" class="qsm-new_menu_tab_items">
480
  <li class="qsm-new_menu_tab_li active" data-show="quiz_settings">
481
- <a href="#">
482
  <div class="nav-item-label">
483
  <span class="nav-item-label-icon dashicons dashicons-admin-generic "></span>
484
  <div class="nav-item-label-content">
@@ -489,7 +489,7 @@ function qsm_create_new_quiz_wizard() {
489
  </a>
490
  </li>
491
  <li class="qsm-new_menu_tab_li" data-show="select_themes">
492
- <a href="#">
493
  <div class="nav-item-label">
494
  <span class="nav-item-label-icon dashicons dashicons-layout"></span>
495
  <div class="nav-item-label-content">
@@ -500,7 +500,7 @@ function qsm_create_new_quiz_wizard() {
500
  </a>
501
  </li>
502
  <li class="qsm-new_menu_tab_li" data-show="addons_list">
503
- <a href="#">
504
  <div class="nav-item-label">
505
  <span class="nav-item-label-icon dashicons dashicons-welcome-add-page"></span>
506
  <div class="nav-item-label-content">
@@ -593,11 +593,11 @@ function qsm_create_new_quiz_wizard() {
593
  <div class="theme-browser rendered">
594
  <div class="themes wp-clearfix">
595
  <ul class="theme-sub-menu">
596
- <li class="active"><a data-show="downloaded_theme"
597
- href="#"><?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a></li>
598
  <?php if ( ! empty( $themes_data ) ) { ?>
599
- <li><a data-show="browse_themes"
600
- href="#"><?php esc_html_e( 'Explore Marketplace', 'quiz-master-next' ); ?></a></li>
601
  <?php } ?>
602
  </ul>
603
  <div class="theme-wrap" id="downloaded_theme">
@@ -883,8 +883,7 @@ function qsm_get_installed_theme( $saved_quiz_theme, $wizard_theme_list = '' ) {
883
  ?>
884
  <?php } ?>
885
  <?php if ( $saved_quiz_theme === $theme_id ) { ?>
886
- <a class="button button-primary qsm-customize-color-settings"
887
- href="#"><?php esc_html_e( 'Customize', 'quiz-master-next' ); ?></a>
888
  <?php } ?>
889
  </div>
890
  </div>
478
  </div>
479
  <ul style="display: none;" class="qsm-new_menu_tab_items">
480
  <li class="qsm-new_menu_tab_li active" data-show="quiz_settings">
481
+ <a href="javascript:void(0)">
482
  <div class="nav-item-label">
483
  <span class="nav-item-label-icon dashicons dashicons-admin-generic "></span>
484
  <div class="nav-item-label-content">
489
  </a>
490
  </li>
491
  <li class="qsm-new_menu_tab_li" data-show="select_themes">
492
+ <a href="javascript:void(0)">
493
  <div class="nav-item-label">
494
  <span class="nav-item-label-icon dashicons dashicons-layout"></span>
495
  <div class="nav-item-label-content">
500
  </a>
501
  </li>
502
  <li class="qsm-new_menu_tab_li" data-show="addons_list">
503
+ <a href="javascript:void(0)">
504
  <div class="nav-item-label">
505
  <span class="nav-item-label-icon dashicons dashicons-welcome-add-page"></span>
506
  <div class="nav-item-label-content">
593
  <div class="theme-browser rendered">
594
  <div class="themes wp-clearfix">
595
  <ul class="theme-sub-menu">
596
+ <li class="active">
597
+ <a data-show="downloaded_theme" href="javascript:void(0)"><?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a></li>
598
  <?php if ( ! empty( $themes_data ) ) { ?>
599
+ <li>
600
+ <a data-show="browse_themes" href="javascript:void(0)"><?php esc_html_e( 'Explore Marketplace', 'quiz-master-next' ); ?></a></li>
601
  <?php } ?>
602
  </ul>
603
  <div class="theme-wrap" id="downloaded_theme">
883
  ?>
884
  <?php } ?>
885
  <?php if ( $saved_quiz_theme === $theme_id ) { ?>
886
+ <a class="button button-primary qsm-customize-color-settings" href="javascript:void(0)"><?php esc_html_e( 'Customize', 'quiz-master-next' ); ?></a>
 
887
  <?php } ?>
888
  </div>
889
  </div>
php/admin/options-page-email-tab.php CHANGED
@@ -46,8 +46,7 @@ function qsm_options_emails_tab_content() {
46
  <section class="qsm-quiz-email-tab" style="margin-top: 15px;">
47
  <button class="save-emails button-primary"><?php esc_html_e( 'Save Emails', 'quiz-master-next' ); ?></button>
48
  <button class="add-new-email button"><?php esc_html_e( 'Add New Email', 'quiz-master-next' ); ?></button>
49
- <a style="float: right;" class="qsm-show-all-variable-text"
50
- href="#"><?php esc_html_e( 'Insert Template Variables', 'quiz-master-next' ); ?> <span
51
  class="dashicons dashicons-upload"></span></a>
52
  <a style="margin: 0 10px; float: right;" href="https://quizandsurveymaster.com/docs/v7/emails-tab/" target="_blank"
53
  rel="noopener"><?php esc_html_e( 'View Documentation', 'quiz-master-next' ); ?></a>
46
  <section class="qsm-quiz-email-tab" style="margin-top: 15px;">
47
  <button class="save-emails button-primary"><?php esc_html_e( 'Save Emails', 'quiz-master-next' ); ?></button>
48
  <button class="add-new-email button"><?php esc_html_e( 'Add New Email', 'quiz-master-next' ); ?></button>
49
+ <a style="float: right;" class="qsm-show-all-variable-text" href="javascript:void(0)"><?php esc_html_e( 'Insert Template Variables', 'quiz-master-next' ); ?> <span
 
50
  class="dashicons dashicons-upload"></span></a>
51
  <a style="margin: 0 10px; float: right;" href="https://quizandsurveymaster.com/docs/v7/emails-tab/" target="_blank"
52
  rel="noopener"><?php esc_html_e( 'View Documentation', 'quiz-master-next' ); ?></a>
php/admin/options-page-questions-tab.php CHANGED
@@ -51,13 +51,14 @@ function qsm_options_questions_tab_content() {
51
  }
52
  }
53
 
54
- $quiz_id = isset( $_GET['quiz_id'] ) ? intval( $_GET['quiz_id'] ) : 0;
55
- $user_id = get_current_user_id();
56
- $form_type = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_options', 'form_type' );
57
  $quiz_system = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_options', 'system' );
58
- $pages = $mlwQuizMasterNext->pluginHelper->get_quiz_setting( 'pages', array() );
59
- $db_qpages = $mlwQuizMasterNext->pluginHelper->get_quiz_setting( 'qpages', array() );
60
- $qpages = array();
 
61
  if ( ! empty( $pages ) ) {
62
  $defaultQPage = array(
63
  'id' => 1,
@@ -103,6 +104,7 @@ function qsm_options_questions_tab_content() {
103
  'question_bank_nonce' => wp_create_nonce( 'delete_question_question_bank_nonce' ),
104
  'single_question_nonce' => wp_create_nonce( 'delete_question_from_database' ),
105
  'rest_user_nonce' => wp_create_nonce( 'wp_rest_nonce_' . $quiz_id . '_' . get_current_user_id() ),
 
106
  );
107
  wp_localize_script( 'qsm_admin_js', 'qsmQuestionSettings', $json_data );
108
 
@@ -168,9 +170,10 @@ function qsm_options_questions_tab_content() {
168
  <div class="qsm-popup qsm-popup-slide qsm-popup-bank" id="modal-2" aria-hidden="true">
169
  <div class="qsm-popup__overlay" tabindex="-1" data-micromodal-close>
170
  <div class="qsm-popup__container" role="dialog" aria-modal="true" aria-labelledby="modal-1-title">
171
- <header class="qsm-popup__header">
172
  <h2 class="qsm-popup__title" id="modal-2-title">
173
- <?php esc_html_e( 'Add Question From Question Bank', 'quiz-master-next' ); ?></h2>
 
174
  <a class="qsm-popup__close" aria-label="Close modal" data-micromodal-close></a>
175
  </header>
176
  <main class="qsm-popup__content" id="modal-2-content">
@@ -207,7 +210,7 @@ function qsm_options_questions_tab_content() {
207
  value=""
208
  placeholder="<?php esc_attr_e( 'Type your question here', 'quiz-master-next' ); ?>">
209
  </div>
210
- <a href="#" class="qsm-show-question-desc-box button button-default"><span
211
  class="dashicons dashicons-plus-alt2"></span>
212
  <?php esc_html_e( 'Add Description', 'quiz-master-next' ); ?></a>
213
  <div class="qsm-row" style="display: none;">
@@ -313,14 +316,14 @@ function qsm_options_questions_tab_content() {
313
 
314
  </div>
315
  <div class="new-answer-button">
316
- <a href="#" class="button" id="new-answer-button"><span
317
  class="dashicons dashicons-plus"></span>
318
  <?php esc_html_e( 'Add New Answer!', 'quiz-master-next' ); ?></a>
319
  </div>
320
  <?php do_action('qsm_after_options'); ?>
321
  </div>
322
  <hr style="margin-bottom:25px;">
323
- <a href="#" class="qsm-show-correct-info-box button button-default"><span
324
  class="dashicons dashicons-plus-alt2"></span>
325
  <?php esc_html_e( 'Add Correct Answer Info', 'quiz-master-next' ); ?></a>
326
  <div class="qsm-row" style="display: none;">
@@ -505,14 +508,14 @@ function qsm_options_questions_tab_content() {
505
  <div id="featureImagediv" class="postbox">
506
  <h2 class="hndle ui-sortable-handle">
507
  <span><?php esc_html_e( 'Feature Image', 'quiz-master-next' ); ?></span>
508
- <a class="qsm-question-doc" href="#" target="_blank"
509
  title="View Documentation"><span
510
  class="dashicons dashicons-media-document"></span></a>
511
  </h2>
512
  <div class="inside">
513
  <?php
514
- echo '<a href="#" class="qsm-feature-image-upl">' . esc_html__( 'Upload Image', 'quiz-master-next' ) . '</a>
515
- <a href="#" class="qsm-feature-image-rmv" style="display:none">' . esc_html__( 'Remove Image', 'quiz-master-next' ) . '</a>'
516
  . '<input type="hidden" name="qsm-feature-image-id" class="qsm-feature-image-id" value="">'
517
  . '<input type="hidden" name="qsm-feature-image-src" class="qsm-feature-image-src" value="">';
518
 
@@ -1051,13 +1054,13 @@ function qsm_options_questions_tab_template() {
1051
  <script type="text/template" id="tmpl-page">
1052
  <div class="page page-new" data-page-id="{{data.id }}">
1053
  <div class="page-header">
1054
- <div><span class="dashicons dashicons-move"></span> <a href="#" class="edit-page-button" title="Edit Page"><span class="dashicons dashicons-admin-generic"></span></a> <span class="page-number"></span></div>
1055
- <div><a href="#" class="delete-page-button" title="Delete Page"><span class="dashicons dashicons-trash"></span></a></div>
1056
  </div>
1057
  <div class="page-footer">
1058
  <div class="page-header-buttons">
1059
- <a href="#" class="new-question-button button"><span class="dashicons dashicons-plus"></span> <?php esc_html_e( 'Create New Question', 'quiz-master-next' ); ?></a>
1060
- <a href="#" class="add-question-bank-button button"><span class="dashicons dashicons-plus"></span> <?php esc_html_e( 'Add Question From Question Bank', 'quiz-master-next' ); ?></a>
1061
  </div>
1062
  </div>
1063
  </div>
@@ -1068,9 +1071,9 @@ function qsm_options_questions_tab_template() {
1068
  <div class="question question-new" data-question-id="{{data.id }}">
1069
  <div class="question-content">
1070
  <div><span class="dashicons dashicons-move"></span></div>
1071
- <div><a href="#" title="Edit Question" class="edit-question-button"><span class="dashicons dashicons-edit"></span></a></div>
1072
- <div><a href="#" title="Clone Question" class="duplicate-question-button"><span class="dashicons dashicons-admin-page"></span></a></div>
1073
- <div><a href="#" title="Delete Question" class="delete-question-button" data-question-iid="{{data.id }}"><span class="dashicons dashicons-trash"></span></a></div>
1074
  <div class="question-content-text">{{{data.question}}}</div>
1075
  <div class="question-category"><# if ( 0 !== data.category.length ) { #> <?php esc_html_e( 'Category:', 'quiz-master-next' ); ?> {{data.category}} <# } #></div>
1076
  </div>
@@ -1084,7 +1087,7 @@ function qsm_options_questions_tab_template() {
1084
  <input type="checkbox" name="qsm-question-checkbox[]" class="qsm-question-checkbox" />
1085
  </div>
1086
  <div><p>{{{data.question}}}</p><p style="font-size: 12px;color: gray;font-style: italic;"><b>Quiz Name:</b> {{data.quiz_name}} <# if ( data.category != '' ) { #> <b>Category:</b> {{data.category}} <# } #></p></div>
1087
- <div><a href="#" class="import-button button"><?php esc_html_e( 'Add Question', 'quiz-master-next' ); ?></a></div>
1088
  </div>
1089
  </script>
1090
 
@@ -1098,13 +1101,13 @@ function qsm_options_questions_tab_template() {
1098
  <!-- View for single answer -->
1099
  <script type="text/template" id="tmpl-single-answer">
1100
  <div class="answers-single">
1101
- <div><a href="#" class="delete-answer-button"><span class="dashicons dashicons-trash"></span></a></div>
1102
  <div class="answer-text-div">
1103
  <# if ( 'rich' == data.answerType ) { #>
1104
  <textarea id="answer-{{data.question_id}}-{{data.count}}"></textarea>
1105
  <# } else if ( 'image' == data.answerType ) { #>
1106
  <input type="text" class="answer-text" id="featured_image_textbox" value="{{data.answer}}" placeholder="Insert image URL"/>
1107
- <a href="#" id="set_featured_image"><span class="dashicons dashicons-insert"></span></a>
1108
  <input type="text" class="answer-caption" id="featured_image_caption" value="{{data.caption}}" placeholder="Image Caption"/>
1109
  <# } else { #>
1110
  <input type="text" class="answer-text" value="{{data.answer}}" placeholder="Your answer"/>
51
  }
52
  }
53
 
54
+ $quiz_id = isset( $_GET['quiz_id'] ) ? intval( $_GET['quiz_id'] ) : 0;
55
+ $user_id = get_current_user_id();
56
+ $form_type = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_options', 'form_type' );
57
  $quiz_system = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_options', 'system' );
58
+ $default_answers = $mlwQuizMasterNext->pluginHelper->get_section_setting( 'quiz_options', 'default_answers' );
59
+ $pages = $mlwQuizMasterNext->pluginHelper->get_quiz_setting( 'pages', array() );
60
+ $db_qpages = $mlwQuizMasterNext->pluginHelper->get_quiz_setting( 'qpages', array() );
61
+ $qpages = array();
62
  if ( ! empty( $pages ) ) {
63
  $defaultQPage = array(
64
  'id' => 1,
104
  'question_bank_nonce' => wp_create_nonce( 'delete_question_question_bank_nonce' ),
105
  'single_question_nonce' => wp_create_nonce( 'delete_question_from_database' ),
106
  'rest_user_nonce' => wp_create_nonce( 'wp_rest_nonce_' . $quiz_id . '_' . get_current_user_id() ),
107
+ 'default_answers' => $default_answers,
108
  );
109
  wp_localize_script( 'qsm_admin_js', 'qsmQuestionSettings', $json_data );
110
 
170
  <div class="qsm-popup qsm-popup-slide qsm-popup-bank" id="modal-2" aria-hidden="true">
171
  <div class="qsm-popup__overlay" tabindex="-1" data-micromodal-close>
172
  <div class="qsm-popup__container" role="dialog" aria-modal="true" aria-labelledby="modal-1-title">
173
+ <header class="qsm-popup__header qsm-question-bank-header">
174
  <h2 class="qsm-popup__title" id="modal-2-title">
175
+ <?php esc_html_e( 'Question Bank', 'quiz-master-next' ); ?></h2>
176
+ <div class="qsm-question-bank-search"></div>
177
  <a class="qsm-popup__close" aria-label="Close modal" data-micromodal-close></a>
178
  </header>
179
  <main class="qsm-popup__content" id="modal-2-content">
210
  value=""
211
  placeholder="<?php esc_attr_e( 'Type your question here', 'quiz-master-next' ); ?>">
212
  </div>
213
+ <a href="javascript:void(0)" class="qsm-show-question-desc-box button button-default"><span
214
  class="dashicons dashicons-plus-alt2"></span>
215
  <?php esc_html_e( 'Add Description', 'quiz-master-next' ); ?></a>
216
  <div class="qsm-row" style="display: none;">
316
 
317
  </div>
318
  <div class="new-answer-button">
319
+ <a href="javascript:void(0)" class="button" id="new-answer-button"><span
320
  class="dashicons dashicons-plus"></span>
321
  <?php esc_html_e( 'Add New Answer!', 'quiz-master-next' ); ?></a>
322
  </div>
323
  <?php do_action('qsm_after_options'); ?>
324
  </div>
325
  <hr style="margin-bottom:25px;">
326
+ <a href="javascript:void(0)" class="qsm-show-correct-info-box button button-default"><span
327
  class="dashicons dashicons-plus-alt2"></span>
328
  <?php esc_html_e( 'Add Correct Answer Info', 'quiz-master-next' ); ?></a>
329
  <div class="qsm-row" style="display: none;">
508
  <div id="featureImagediv" class="postbox">
509
  <h2 class="hndle ui-sortable-handle">
510
  <span><?php esc_html_e( 'Feature Image', 'quiz-master-next' ); ?></span>
511
+ <a class="qsm-question-doc" href="javascript:void(0)" rel="noopener" target="_blank"
512
  title="View Documentation"><span
513
  class="dashicons dashicons-media-document"></span></a>
514
  </h2>
515
  <div class="inside">
516
  <?php
517
+ echo '<a href="javascript:void(0)" class="qsm-feature-image-upl">' . esc_html__( 'Upload Image', 'quiz-master-next' ) . '</a>
518
+ <a href="javascript:void(0)" class="qsm-feature-image-rmv" style="display:none">' . esc_html__( 'Remove Image', 'quiz-master-next' ) . '</a>'
519
  . '<input type="hidden" name="qsm-feature-image-id" class="qsm-feature-image-id" value="">'
520
  . '<input type="hidden" name="qsm-feature-image-src" class="qsm-feature-image-src" value="">';
521
 
1054
  <script type="text/template" id="tmpl-page">
1055
  <div class="page page-new" data-page-id="{{data.id }}">
1056
  <div class="page-header">
1057
+ <div><span class="dashicons dashicons-move"></span> <a href="javascript:void(0)" class="edit-page-button" title="Edit Page"><span class="dashicons dashicons-admin-generic"></span></a> <span class="page-number"></span></div>
1058
+ <div><a href="javascript:void(0)" class="delete-page-button" title="Delete Page"><span class="dashicons dashicons-trash"></span></a></div>
1059
  </div>
1060
  <div class="page-footer">
1061
  <div class="page-header-buttons">
1062
+ <a href="javascript:void(0)" class="new-question-button button"><span class="dashicons dashicons-plus"></span> <?php esc_html_e( 'Create New Question', 'quiz-master-next' ); ?></a>
1063
+ <a href="javascript:void(0)" class="add-question-bank-button button"><span class="dashicons dashicons-plus"></span> <?php esc_html_e( 'Add Question From Question Bank', 'quiz-master-next' ); ?></a>
1064
  </div>
1065
  </div>
1066
  </div>
1071
  <div class="question question-new" data-question-id="{{data.id }}">
1072
  <div class="question-content">
1073
  <div><span class="dashicons dashicons-move"></span></div>
1074
+ <div><a href="javascript:void(0)" title="Edit Question" class="edit-question-button"><span class="dashicons dashicons-edit"></span></a></div>
1075
+ <div><a href="javascript:void(0)" title="Clone Question" class="duplicate-question-button"><span class="dashicons dashicons-admin-page"></span></a></div>
1076
+ <div><a href="javascript:void(0)" title="Delete Question" class="delete-question-button" data-question-iid="{{data.id }}"><span class="dashicons dashicons-trash"></span></a></div>
1077
  <div class="question-content-text">{{{data.question}}}</div>
1078
  <div class="question-category"><# if ( 0 !== data.category.length ) { #> <?php esc_html_e( 'Category:', 'quiz-master-next' ); ?> {{data.category}} <# } #></div>
1079
  </div>
1087
  <input type="checkbox" name="qsm-question-checkbox[]" class="qsm-question-checkbox" />
1088
  </div>
1089
  <div><p>{{{data.question}}}</p><p style="font-size: 12px;color: gray;font-style: italic;"><b>Quiz Name:</b> {{data.quiz_name}} <# if ( data.category != '' ) { #> <b>Category:</b> {{data.category}} <# } #></p></div>
1090
+ <div><a href="javascript:void(0)" class="import-button button"><?php esc_html_e( 'Add Question', 'quiz-master-next' ); ?></a></div>
1091
  </div>
1092
  </script>
1093
 
1101
  <!-- View for single answer -->
1102
  <script type="text/template" id="tmpl-single-answer">
1103
  <div class="answers-single">
1104
+ <div><a href="javascript:void(0)" class="delete-answer-button"><span class="dashicons dashicons-trash"></span></a></div>
1105
  <div class="answer-text-div">
1106
  <# if ( 'rich' == data.answerType ) { #>
1107
  <textarea id="answer-{{data.question_id}}-{{data.count}}"></textarea>
1108
  <# } else if ( 'image' == data.answerType ) { #>
1109
  <input type="text" class="answer-text" id="featured_image_textbox" value="{{data.answer}}" placeholder="Insert image URL"/>
1110
+ <a href="javascript:void(0)" id="set_featured_image"><span class="dashicons dashicons-insert"></span></a>
1111
  <input type="text" class="answer-caption" id="featured_image_caption" value="{{data.caption}}" placeholder="Image Caption"/>
1112
  <# } else { #>
1113
  <input type="text" class="answer-text" value="{{data.answer}}" placeholder="Your answer"/>
php/admin/options-page-results-page-tab.php CHANGED
@@ -43,7 +43,7 @@ function qsm_options_results_tab_content() {
43
  <button class="save-pages button-primary"><?php esc_html_e( 'Save Results Pages', 'quiz-master-next' ); ?></button>
44
  <button class="add-new-page button"><?php esc_html_e( 'Add New Results Page', 'quiz-master-next' ); ?></button>
45
  <a style="float: right;" class="qsm-show-all-variable-text"
46
- href="#"><?php esc_html_e( 'Insert Template Variables', 'quiz-master-next' ); ?> <span
47
  class="dashicons dashicons-upload"></span></a>
48
  <a style="margin: 0 10px; float: right;" href="https://quizandsurveymaster.com/docs/v7/results-pages-tab/"
49
  target="_blank" rel="noopener">View Documentation</a>
43
  <button class="save-pages button-primary"><?php esc_html_e( 'Save Results Pages', 'quiz-master-next' ); ?></button>
44
  <button class="add-new-page button"><?php esc_html_e( 'Add New Results Page', 'quiz-master-next' ); ?></button>
45
  <a style="float: right;" class="qsm-show-all-variable-text"
46
+ href="javascript:void(0)"><?php esc_html_e( 'Insert Template Variables', 'quiz-master-next' ); ?> <span
47
  class="dashicons dashicons-upload"></span></a>
48
  <a style="margin: 0 10px; float: right;" href="https://quizandsurveymaster.com/docs/v7/results-pages-tab/"
49
  target="_blank" rel="noopener">View Documentation</a>
php/admin/options-page-style-tab.php CHANGED
@@ -62,16 +62,16 @@ function qsm_options_styling_tab_content() {
62
  <div class="qsm-sub-tab-menu" style="display: inline-block;width: 100%;">
63
  <ul class="subsubsub">
64
  <li>
65
- <a href="#" data-id="qsm_themes" class="current quiz_style_tab">
66
  <?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a> |
67
  </li>
68
  <li>
69
- <a href="#" data-id="custom_css" class="quiz_style_tab">
70
  <?php esc_html_e( 'Custom CSS', 'quiz-master-next' ); ?>
71
  </a> |
72
  </li>
73
  <li>
74
- <a href="#" data-id="legacy" class="quiz_style_tab">
75
  <?php esc_html_e( 'Legacy', 'quiz-master-next' ); ?>
76
  </a>
77
  </li>
@@ -146,11 +146,11 @@ function qsm_options_styling_tab_content() {
146
  <div class="wp-filter hide-if-no-js">
147
  <ul class="filter-links">
148
  <li>
149
- <a href="#" class="current" data-id="theme-browser"><?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a>
150
  </li>
151
  <li>
152
  <?php if ( $saved_quiz_theme ) { ?>
153
- <a href="#" data-id="theme-featured-image"><?php esc_html_e( 'Featured Image', 'quiz-master-next' ); ?></a>
154
  <?php } ?>
155
  </li>
156
  <?php do_action( 'qsm_add_filter_menu' ); ?>
62
  <div class="qsm-sub-tab-menu" style="display: inline-block;width: 100%;">
63
  <ul class="subsubsub">
64
  <li>
65
+ <a href="javascript:void(0)" data-id="qsm_themes" class="current quiz_style_tab">
66
  <?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a> |
67
  </li>
68
  <li>
69
+ <a href="javascript:void(0)" data-id="custom_css" class="quiz_style_tab">
70
  <?php esc_html_e( 'Custom CSS', 'quiz-master-next' ); ?>
71
  </a> |
72
  </li>
73
  <li>
74
+ <a href="javascript:void(0)" data-id="legacy" class="quiz_style_tab">
75
  <?php esc_html_e( 'Legacy', 'quiz-master-next' ); ?>
76
  </a>
77
  </li>
146
  <div class="wp-filter hide-if-no-js">
147
  <ul class="filter-links">
148
  <li>
149
+ <a href="javascript:void(0)" class="current" data-id="theme-browser"><?php esc_html_e( 'Themes', 'quiz-master-next' ); ?></a>
150
  </li>
151
  <li>
152
  <?php if ( $saved_quiz_theme ) { ?>
153
+ <a href="javascript:void(0)" data-id="theme-featured-image"><?php esc_html_e( 'Featured Image', 'quiz-master-next' ); ?></a>
154
  <?php } ?>
155
  </li>
156
  <?php do_action( 'qsm_add_filter_menu' ); ?>
php/admin/options-page-text-tab.php CHANGED
@@ -99,7 +99,7 @@ function mlw_options_text_tab_content() {
99
  ?>
100
  </div>
101
  <div style="display: none;" class="qsm-all-variable-wrap">
102
- <a class="qsm-show-all-variable-text" href="#"><?php esc_html_e( 'Show all Variables', 'quiz-master-next' ); ?></a>
103
  </div>
104
  </div>
105
  </div>
99
  ?>
100
  </div>
101
  <div style="display: none;" class="qsm-all-variable-wrap">
102
+ <a class="qsm-show-all-variable-text" href="javascript:void(0)"><?php esc_html_e( 'Show all Variables', 'quiz-master-next' ); ?></a>
103
  </div>
104
  </div>
105
  </div>
php/admin/quiz-options-page.php CHANGED
@@ -109,7 +109,7 @@ function qsm_generate_quiz_options() {
109
  <input type="submit" class="button button-primary" value="<?php esc_attr_e( 'Publish Quiz', 'quiz-master-next' ); ?>" />
110
  </form>
111
  <?php endif; ?>
112
- <a href="#" title="Edit Name" class="edit-quiz-name">
113
  <span class="dashicons dashicons-edit"></span>
114
  </a>
115
  <a class="button button-default qsm-btn-quiz-edit" rel="noopener" target="_blank" href="<?php echo esc_url( $post_permalink ); ?>">
109
  <input type="submit" class="button button-primary" value="<?php esc_attr_e( 'Publish Quiz', 'quiz-master-next' ); ?>" />
110
  </form>
111
  <?php endif; ?>
112
+ <a href="javascript:void(0)" title="Edit Name" class="edit-quiz-name">
113
  <span class="dashicons dashicons-edit"></span>
114
  </a>
115
  <a class="button button-default qsm-btn-quiz-edit" rel="noopener" target="_blank" href="<?php echo esc_url( $post_permalink ); ?>">
php/admin/quizzes-page.php CHANGED
@@ -225,7 +225,7 @@ function qsm_generate_quizzes_surveys_page() {
225
  <div class="wrap qsm-quizes-page">
226
  <h1>
227
  <?php esc_html_e( 'Quizzes/Surveys', 'quiz-master-next' ); ?>
228
- <a id="new_quiz_button" href="#" class="add-new-h2"><?php esc_html_e( 'Add New', 'quiz-master-next' ); ?></a>
229
  </h1>
230
  <?php $mlwQuizMasterNext->alertManager->showAlerts(); ?>
231
  <?php
@@ -266,7 +266,7 @@ function qsm_generate_quizzes_surveys_page() {
266
  href="<?php echo esc_url( admin_url() . 'admin.php?page=qmn_addons&tab=export-and-import' ); ?>"
267
  target="_blank" rel="noopener"><?php esc_html_e( 'Import & Export', 'quiz-master-next' ); ?></a>
268
  <?php } else { ?>
269
- <a id="show_import_export_popup" href="#" style="position: relative;top: 0px;"
270
  class="add-new-h2 button-primary"><?php esc_html_e( 'Import & Export', 'quiz-master-next' ); ?></a>
271
  <?php } ?>
272
  </p>
@@ -385,14 +385,14 @@ function qsm_generate_quizzes_surveys_page() {
385
  </a>
386
  <div class="row-actions">
387
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_options&&quiz_id=<?php echo esc_attr( $single_arr['id'] ); ?>"><?php esc_html_e( 'Edit', 'quiz-master-next' ); ?></a> |
388
- <a class="qsm-action-link qsm-action-link-duplicate" href="#"><?php esc_html_e( 'Duplicate', 'quiz-master-next' ); ?></a> |
389
- <a class="qsm-action-link qsm-action-link-delete" href="#"><?php esc_html_e( 'Delete', 'quiz-master-next' ); ?></a> |
390
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_results&quiz_id=<?php echo esc_attr( $single_arr['id'] ); ?>"><?php esc_html_e( 'View Results', 'quiz-master-next' ); ?></a> |
391
  <a class="qsm-action-link" target="_blank" rel="noopener" href="<?php echo esc_url( $single_arr['link'] ); ?>"><?php esc_html_e( 'Preview', 'quiz-master-next' ); ?></a>
392
  </div>
393
  </td>
394
  <td>
395
- <a href="#" class="qsm-list-shortcode-view">
396
  <span class="dashicons dashicons-welcome-view-site"></span>
397
  </a>
398
  <div class="sc-content sc-embed">[qsm quiz=<?php echo esc_attr( $single_arr['id'] ); ?>]</div>
@@ -403,7 +403,7 @@ function qsm_generate_quizzes_surveys_page() {
403
  <?php echo esc_html( $single_arr['views'] ); ?>
404
  <div class="row-actions">
405
  <a class="qsm-action-link qsm-action-link-reset"
406
- href="#"><?php esc_html_e( 'Reset', 'quiz-master-next' ); ?></a>
407
  </div>
408
  </td>
409
  <td class="comments column-comments" style="text-align: left;">
@@ -735,7 +735,7 @@ function qsm_generate_quizzes_surveys_page_template() {
735
  <span class="dashicons dashicons-format-chat"></span>
736
  <h2><?php esc_html_e( 'You do not have any quizzes or surveys yet', 'quiz-master-next' ); ?></h2>
737
  <div class="buttons">
738
- <a class="button button-primary button-hero qsm-wizard-noquiz" href="#"><?php esc_html_e( 'Create New Quiz/Survey', 'quiz-master-next' ); ?></a>
739
  <a class="button button-secondary button-hero" href="https://quizandsurveymaster.com/docs/" target="_blank"><span class="dashicons dashicons-admin-page"></span> <?php esc_html_e( 'Read Documentation', 'quiz-master-next' ); ?></a>
740
  </div>
741
  <h3><?php esc_html_e( 'or watch the below video to get started', 'quiz-master-next' ); ?></h3>
@@ -750,8 +750,8 @@ function qsm_generate_quizzes_surveys_page_template() {
750
  <div class="row-actions">
751
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_options&&quiz_id={{ data.id }}"><?php esc_html_e( 'Edit', 'quiz-master-next' ); ?></a> |
752
  <a class="qsm-action-link" href="post.php?post={{ data.postID }}&action=edit"><?php esc_html_e( 'Post Settings', 'quiz-master-next' ); ?></a> |
753
- <a class="qsm-action-link qsm-action-link-duplicate" href="#"><?php esc_html_e( 'Duplicate', 'quiz-master-next' ); ?></a> |
754
- <a class="qsm-action-link qsm-action-link-delete" href="#"><?php esc_html_e( 'Delete', 'quiz-master-next' ); ?></a> |
755
  <a class="qsm-action-link" target="_blank" href="{{ data.link }}"><?php esc_html_e( 'Preview', 'quiz-master-next' ); ?></a>
756
  </div>
757
  </td>
@@ -764,7 +764,7 @@ function qsm_generate_quizzes_surveys_page_template() {
764
  <td>
765
  {{ data.views }}/{{ data.taken }}
766
  <div class="row-actions">
767
- <a class="qsm-action-link qsm-action-link-reset" href="#"><?php esc_html_e( 'Reset', 'quiz-master-next' ); ?></a> |
768
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_results&&quiz_id={{ data.id }}"><?php esc_html_e( 'Results', 'quiz-master-next' ); ?></a>
769
  </div>
770
  </td>
225
  <div class="wrap qsm-quizes-page">
226
  <h1>
227
  <?php esc_html_e( 'Quizzes/Surveys', 'quiz-master-next' ); ?>
228
+ <a id="new_quiz_button" href="javascript:void(0)" class="add-new-h2"><?php esc_html_e( 'Add New', 'quiz-master-next' ); ?></a>
229
  </h1>
230
  <?php $mlwQuizMasterNext->alertManager->showAlerts(); ?>
231
  <?php
266
  href="<?php echo esc_url( admin_url() . 'admin.php?page=qmn_addons&tab=export-and-import' ); ?>"
267
  target="_blank" rel="noopener"><?php esc_html_e( 'Import & Export', 'quiz-master-next' ); ?></a>
268
  <?php } else { ?>
269
+ <a id="show_import_export_popup" href="javascript:void(0)" style="position: relative;top: 0px;"
270
  class="add-new-h2 button-primary"><?php esc_html_e( 'Import & Export', 'quiz-master-next' ); ?></a>
271
  <?php } ?>
272
  </p>
385
  </a>
386
  <div class="row-actions">
387
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_options&&quiz_id=<?php echo esc_attr( $single_arr['id'] ); ?>"><?php esc_html_e( 'Edit', 'quiz-master-next' ); ?></a> |
388
+ <a class="qsm-action-link qsm-action-link-duplicate" href="javascript:void(0)"><?php esc_html_e( 'Duplicate', 'quiz-master-next' ); ?></a> |
389
+ <a class="qsm-action-link qsm-action-link-delete" href="javascript:void(0)"><?php esc_html_e( 'Delete', 'quiz-master-next' ); ?></a> |
390
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_results&quiz_id=<?php echo esc_attr( $single_arr['id'] ); ?>"><?php esc_html_e( 'View Results', 'quiz-master-next' ); ?></a> |
391
  <a class="qsm-action-link" target="_blank" rel="noopener" href="<?php echo esc_url( $single_arr['link'] ); ?>"><?php esc_html_e( 'Preview', 'quiz-master-next' ); ?></a>
392
  </div>
393
  </td>
394
  <td>
395
+ <a href="javascript:void(0)" class="qsm-list-shortcode-view">
396
  <span class="dashicons dashicons-welcome-view-site"></span>
397
  </a>
398
  <div class="sc-content sc-embed">[qsm quiz=<?php echo esc_attr( $single_arr['id'] ); ?>]</div>
403
  <?php echo esc_html( $single_arr['views'] ); ?>
404
  <div class="row-actions">
405
  <a class="qsm-action-link qsm-action-link-reset"
406
+ href="javascript:void(0)"><?php esc_html_e( 'Reset', 'quiz-master-next' ); ?></a>
407
  </div>
408
  </td>
409
  <td class="comments column-comments" style="text-align: left;">
735
  <span class="dashicons dashicons-format-chat"></span>
736
  <h2><?php esc_html_e( 'You do not have any quizzes or surveys yet', 'quiz-master-next' ); ?></h2>
737
  <div class="buttons">
738
+ <a class="button button-primary button-hero qsm-wizard-noquiz" href="javascript:void(0)"><?php esc_html_e( 'Create New Quiz/Survey', 'quiz-master-next' ); ?></a>
739
  <a class="button button-secondary button-hero" href="https://quizandsurveymaster.com/docs/" target="_blank"><span class="dashicons dashicons-admin-page"></span> <?php esc_html_e( 'Read Documentation', 'quiz-master-next' ); ?></a>
740
  </div>
741
  <h3><?php esc_html_e( 'or watch the below video to get started', 'quiz-master-next' ); ?></h3>
750
  <div class="row-actions">
751
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_options&&quiz_id={{ data.id }}"><?php esc_html_e( 'Edit', 'quiz-master-next' ); ?></a> |
752
  <a class="qsm-action-link" href="post.php?post={{ data.postID }}&action=edit"><?php esc_html_e( 'Post Settings', 'quiz-master-next' ); ?></a> |
753
+ <a class="qsm-action-link qsm-action-link-duplicate" href="javascript:void(0)"><?php esc_html_e( 'Duplicate', 'quiz-master-next' ); ?></a> |
754
+ <a class="qsm-action-link qsm-action-link-delete" href="javascript:void(0)"><?php esc_html_e( 'Delete', 'quiz-master-next' ); ?></a> |
755
  <a class="qsm-action-link" target="_blank" href="{{ data.link }}"><?php esc_html_e( 'Preview', 'quiz-master-next' ); ?></a>
756
  </div>
757
  </td>
764
  <td>
765
  {{ data.views }}/{{ data.taken }}
766
  <div class="row-actions">
767
+ <a class="qsm-action-link qsm-action-link-reset" href="javascript:void(0)"><?php esc_html_e( 'Reset', 'quiz-master-next' ); ?></a> |
768
  <a class="qsm-action-link" href="admin.php?page=mlw_quiz_results&&quiz_id={{ data.id }}"><?php esc_html_e( 'Results', 'quiz-master-next' ); ?></a>
769
  </div>
770
  </td>
php/admin/settings-page.php CHANGED
@@ -134,6 +134,7 @@ class QMNGlobalSettingsPage {
134
  'scheduled_time_end' => '',
135
  'not_allow_after_expired_time' => 0,
136
  'preferred_date_format' => 'F j, Y',
 
137
  );
138
  }
139
 
@@ -148,6 +149,7 @@ class QMNGlobalSettingsPage {
148
  add_settings_section( 'qmn-global-section', __( 'Quiz Settings', 'quiz-master-next' ), array( $this, 'global_section' ), 'qsm_default_global_option' );
149
  add_settings_field( 'quiz-type', __( 'Quiz Type', 'quiz-master-next' ), array( $this, 'qsm_global_quiz_type' ), 'qsm_default_global_option', 'qmn-global-section' );
150
  add_settings_field( 'grading-system', __( 'Grading System', 'quiz-master-next' ), array( $this, 'qsm_global_grading_system' ), 'qsm_default_global_option', 'qmn-global-section' );
 
151
  add_settings_field( 'allow-score-round-off', __( 'Allow Score Round-off', 'quiz-master-next' ), array( $this, 'qsm_global_score_roundoff' ), 'qsm_default_global_option', 'qmn-global-section' );
152
  add_settings_field( 'show-progress-bar', __( 'Show progress bar', 'quiz-master-next' ), array( $this, 'qsm_global_show_progress_bar' ), 'qsm_default_global_option', 'qmn-global-section' );
153
  add_settings_field( 'require-user-login', __( 'Require User Login', 'quiz-master-next' ), array( $this, 'qsm_global_require_user_login' ), 'qsm_default_global_option', 'qmn-global-section' );
@@ -228,7 +230,7 @@ class QMNGlobalSettingsPage {
228
  ?>
229
  </p>
230
  <p class="category-action">
231
- <a href="#" class="button button-primary enable-multiple-category"><?php esc_html_e( 'Update Database', 'quiz-master-next' ); ?></a>
232
  </p>
233
  </div>
234
  <?php
@@ -1223,6 +1225,18 @@ class QMNGlobalSettingsPage {
1223
  echo '<span class="qsm-opt-desc">Set your preferred date format.</span>';
1224
  }
1225
 
 
 
 
 
 
 
 
 
 
 
 
 
1226
 
1227
  }
1228
 
134
  'scheduled_time_end' => '',
135
  'not_allow_after_expired_time' => 0,
136
  'preferred_date_format' => 'F j, Y',
137
+ 'default_answers' => 1,
138
  );
139
  }
140
 
149
  add_settings_section( 'qmn-global-section', __( 'Quiz Settings', 'quiz-master-next' ), array( $this, 'global_section' ), 'qsm_default_global_option' );
150
  add_settings_field( 'quiz-type', __( 'Quiz Type', 'quiz-master-next' ), array( $this, 'qsm_global_quiz_type' ), 'qsm_default_global_option', 'qmn-global-section' );
151
  add_settings_field( 'grading-system', __( 'Grading System', 'quiz-master-next' ), array( $this, 'qsm_global_grading_system' ), 'qsm_default_global_option', 'qmn-global-section' );
152
+ add_settings_field( 'default_answers', __( 'Default Number of Answers', 'quiz-master-next' ), array( $this, 'default_answers' ), 'qsm_default_global_option', 'qmn-global-section' );
153
  add_settings_field( 'allow-score-round-off', __( 'Allow Score Round-off', 'quiz-master-next' ), array( $this, 'qsm_global_score_roundoff' ), 'qsm_default_global_option', 'qmn-global-section' );
154
  add_settings_field( 'show-progress-bar', __( 'Show progress bar', 'quiz-master-next' ), array( $this, 'qsm_global_show_progress_bar' ), 'qsm_default_global_option', 'qmn-global-section' );
155
  add_settings_field( 'require-user-login', __( 'Require User Login', 'quiz-master-next' ), array( $this, 'qsm_global_require_user_login' ), 'qsm_default_global_option', 'qmn-global-section' );
230
  ?>
231
  </p>
232
  <p class="category-action">
233
+ <a href="javascript:void(0)" class="button button-primary enable-multiple-category"><?php esc_html_e( 'Update Database', 'quiz-master-next' ); ?></a>
234
  </p>
235
  </div>
236
  <?php
1225
  echo '<span class="qsm-opt-desc">Set your preferred date format.</span>';
1226
  }
1227
 
1228
+ /**
1229
+ * Generates quiz global field for default answers field
1230
+ *
1231
+ * @since x.x.x
1232
+ * @return void
1233
+ */
1234
+ public function default_answers(){
1235
+ global $globalQuizsetting;
1236
+ $default_answers = ( isset( $globalQuizsetting['default_answers'] ) ? $globalQuizsetting['default_answers'] : 1 );
1237
+ echo '<input type="number" id="default_answers" name="qsm-quiz-settings[default_answers]" value="' . esc_attr( $default_answers ) . '" min="1">';
1238
+ echo '<span class="qsm-opt-desc">Adds number of answer fields.</span>';
1239
+ }
1240
 
1241
  }
1242
 
php/admin/tools-page.php CHANGED
@@ -225,7 +225,7 @@ function qsm_audit_box() {
225
  <td><?php echo esc_html( $audit->action_user ); ?></td>
226
  <td>
227
  <?php if ( ! empty( $audit->form_data ) ) { ?>
228
- <a href="#" class="qsm_audit_data" data-auditid="<?php echo esc_html( $audit->form_data ); ?>"><?php echo esc_html( $audit->action ); ?></a>
229
  <?php
230
  } else {
231
  echo esc_html( $audit->action );
225
  <td><?php echo esc_html( $audit->action_user ); ?></td>
226
  <td>
227
  <?php if ( ! empty( $audit->form_data ) ) { ?>
228
+ <a href="javascript:void(0)" class="qsm_audit_data" data-auditid="<?php echo esc_html( $audit->form_data ); ?>"><?php echo esc_html( $audit->action ); ?></a>
229
  <?php
230
  } else {
231
  echo esc_html( $audit->action );
php/classes/class-qmn-quiz-manager.php CHANGED
@@ -385,14 +385,14 @@ class QMNQuizManager {
385
  $registered_template = $mlwQuizMasterNext->pluginHelper->get_quiz_templates( $qmn_quiz_options->theme_selected );
386
  // Check direct file first, then check templates folder in plugin, then check templates file in theme.
387
  // If all fails, then load custom styling instead.
388
- if ( $registered_template && file_exists( $registered_template['path'] ) ) {
389
- wp_enqueue_style( 'qmn_quiz_template', $registered_template['path'], array(), $mlwQuizMasterNext->version );
390
  } elseif ( $registered_template && file_exists( plugin_dir_path( __FILE__ ) . '../../templates/' . $registered_template['path'] ) ) {
391
  wp_enqueue_style( 'qmn_quiz_template', plugins_url( '../../templates/' . $registered_template['path'], __FILE__ ), array(), $mlwQuizMasterNext->version );
392
- } elseif ( $registered_template && file_exists( get_theme_file_path( '/templates/' . $registered_template['path'] ) ) ) {
393
  wp_enqueue_style( 'qmn_quiz_template', get_stylesheet_directory_uri() . '/templates/' . $registered_template['path'], array(), $mlwQuizMasterNext->version );
394
  } else {
395
- echo "<style type='text/css'>" . wp_kses_post( htmlspecialchars_decode( $qmn_quiz_options->quiz_stye ) ) . '</style>';
396
  }
397
  }
398
  wp_enqueue_style( 'qmn_quiz_animation_style', QSM_PLUGIN_CSS_URL . '/animate.css', array(), $mlwQuizMasterNext->version );
@@ -802,7 +802,7 @@ class QMNQuizManager {
802
  // $saved_quiz_theme = $mlwQuizMasterNext->quiz_settings->get_setting('quiz_new_theme');
803
  $saved_quiz_theme = $mlwQuizMasterNext->theme_settings->get_active_quiz_theme_path( $options->quiz_id );
804
  $randomness_class = 0 === intval( $options->randomness_order ) ? '' : 'random';
805
- ?><div class='qsm-quiz-container qmn_quiz_container mlw_qmn_quiz <?php echo esc_attr( $auto_pagination_class ); ?> quiz_theme_<?php echo esc_attr( $saved_quiz_theme . ' ' . $randomness_class ); ?> '>
806
  <?php
807
  // Get quiz post based on quiz id
808
  $args = array(
@@ -1097,24 +1097,16 @@ class QMNQuizManager {
1097
  *
1098
  * @since 7.3.5
1099
  */
1100
- add_action(
1101
- 'wp_footer',
1102
- function () use ( $options ) {
1103
- ?>
1104
- <!-- View for pagination -->
1105
- <script type="text/template" id="tmpl-qsm-pagination-<?php echo esc_attr( $options->quiz_id ); ?>">
1106
- <div class="qsm-pagination qmn_pagination border margin-bottom">
1107
- <a class="qsm-btn qsm-previous qmn_btn mlw_qmn_quiz_link mlw_previous" href="#"><?php echo esc_html( $options->previous_button_text ); ?></a>
1108
  <span class="qmn_page_message"></span>
1109
  <div class="qmn_page_counter_message"></div>
1110
  <div class="qsm-progress-bar" style="display:none;"><div class="progressbar-text"></div></div>
1111
- <a class="qsm-btn qsm-next qmn_btn mlw_qmn_quiz_link mlw_next" href="#"><?php echo esc_html( $options->next_button_text ); ?></a>
1112
- <input type='submit' class='qsm-btn qsm-submit-btn qmn_btn' value='<?php echo esc_attr( $options->submit_button_text ); ?>' />
1113
- </div>
1114
- </script>
1115
- <?php
1116
- }
1117
- );
1118
  ?>
1119
  <input type="hidden" name="qmn_question_list" value="<?php echo esc_attr( $question_list ); ?>" />
1120
  <?php
385
  $registered_template = $mlwQuizMasterNext->pluginHelper->get_quiz_templates( $qmn_quiz_options->theme_selected );
386
  // Check direct file first, then check templates folder in plugin, then check templates file in theme.
387
  // If all fails, then load custom styling instead.
388
+ if ( $registered_template && file_exists( ABSPATH . $registered_template['path'] ) ) {
389
+ wp_enqueue_style( 'qmn_quiz_template', site_url( $registered_template['path'] ), array(), $mlwQuizMasterNext->version );
390
  } elseif ( $registered_template && file_exists( plugin_dir_path( __FILE__ ) . '../../templates/' . $registered_template['path'] ) ) {
391
  wp_enqueue_style( 'qmn_quiz_template', plugins_url( '../../templates/' . $registered_template['path'], __FILE__ ), array(), $mlwQuizMasterNext->version );
392
+ } elseif ( $registered_template && file_exists( get_theme_file_path( '/templates/' . $registered_template['path'] ) ) ) {
393
  wp_enqueue_style( 'qmn_quiz_template', get_stylesheet_directory_uri() . '/templates/' . $registered_template['path'], array(), $mlwQuizMasterNext->version );
394
  } else {
395
+ echo "<style type='text/css' id='qmn_quiz_template-css'>" . wp_kses_post( htmlspecialchars_decode( $qmn_quiz_options->quiz_stye ) ) . '</style>';
396
  }
397
  }
398
  wp_enqueue_style( 'qmn_quiz_animation_style', QSM_PLUGIN_CSS_URL . '/animate.css', array(), $mlwQuizMasterNext->version );
802
  // $saved_quiz_theme = $mlwQuizMasterNext->quiz_settings->get_setting('quiz_new_theme');
803
  $saved_quiz_theme = $mlwQuizMasterNext->theme_settings->get_active_quiz_theme_path( $options->quiz_id );
804
  $randomness_class = 0 === intval( $options->randomness_order ) ? '' : 'random';
805
+ ?><div class='qsm-quiz-container qsm-quiz-container-<?php echo esc_attr($quiz_data['quiz_id']); ?> qmn_quiz_container mlw_qmn_quiz <?php echo esc_attr( $auto_pagination_class ); ?> quiz_theme_<?php echo esc_attr( $saved_quiz_theme . ' ' . $randomness_class ); ?> '>
806
  <?php
807
  // Get quiz post based on quiz id
808
  $args = array(
1097
  *
1098
  * @since 7.3.5
1099
  */
1100
+
1101
+ $tmpl_pagination = '<div class="qsm-pagination qmn_pagination border margin-bottom">
1102
+ <a class="qsm-btn qsm-previous qmn_btn mlw_qmn_quiz_link mlw_previous" href="javascript:void(0)">' . esc_html( $options->previous_button_text ) . '</a>
 
 
 
 
 
1103
  <span class="qmn_page_message"></span>
1104
  <div class="qmn_page_counter_message"></div>
1105
  <div class="qsm-progress-bar" style="display:none;"><div class="progressbar-text"></div></div>
1106
+ <a class="qsm-btn qsm-next qmn_btn mlw_qmn_quiz_link mlw_next" href="javascript:void(0)">' . esc_html( $options->next_button_text ) . '</a>
1107
+ <input type="submit" class="qsm-btn qsm-submit-btn qmn_btn" value=' . esc_attr( $options->submit_button_text ) . ' />
1108
+ </div>';
1109
+ qsm_add_inline_tmpl( 'qsm_quiz', 'tmpl-qsm-pagination-' . esc_attr( $options->quiz_id ), $tmpl_pagination );
 
 
 
1110
  ?>
1111
  <input type="hidden" name="qmn_question_list" value="<?php echo esc_attr( $question_list ); ?>" />
1112
  <?php
php/classes/class-qsm-contact-manager.php CHANGED
@@ -129,6 +129,8 @@ class QSM_Contact_Manager {
129
  if ( 'phone' === $fields[ $i ]['use'] && 'true' === $fields[ $i ]["required"] || true === $fields[ $i ]["required"] ) {
130
  $class = 'mlwPhoneNumber mlwRequiredNumber qsm_required_text';
131
  }
 
 
132
  ?>
133
  <span class='mlw_qmn_question qsm_question'><?php echo esc_attr( $fields[ $i ]['label'] ); ?></span>
134
  <input <?php if ( $contact_disable_autofill ) { echo "autocomplete='off'"; } ?> type='<?php echo esc_attr( 'phone' === $fields[ $i ]['use'] ? 'text' : 'text' ); ?>' <?php if ( 'phone' === $fields[ $i ]['use'] ) { ?> onkeydown="return event.keyCode !== 69 " <?php } ?> class='<?php echo esc_attr( $class ); ?>' name='contact_field_<?php echo esc_attr( $i ); ?>' value='<?php if ( empty($contact_disable_autofill) ) {echo esc_attr( $value );} ?>' placeholder="<?php echo esc_attr( wp_strip_all_tags( $fields[ $i ]['label'] ) ); ?>" />
129
  if ( 'phone' === $fields[ $i ]['use'] && 'true' === $fields[ $i ]["required"] || true === $fields[ $i ]["required"] ) {
130
  $class = 'mlwPhoneNumber mlwRequiredNumber qsm_required_text';
131
  }
132
+ // Filer Value
133
+ $value = apply_filters('qsm_contact_text_filed_value',$value,$fields[ $i ]['use']);
134
  ?>
135
  <span class='mlw_qmn_question qsm_question'><?php echo esc_attr( $fields[ $i ]['label'] ); ?></span>
136
  <input <?php if ( $contact_disable_autofill ) { echo "autocomplete='off'"; } ?> type='<?php echo esc_attr( 'phone' === $fields[ $i ]['use'] ? 'text' : 'text' ); ?>' <?php if ( 'phone' === $fields[ $i ]['use'] ) { ?> onkeydown="return event.keyCode !== 69 " <?php } ?> class='<?php echo esc_attr( $class ); ?>' name='contact_field_<?php echo esc_attr( $i ); ?>' value='<?php if ( empty($contact_disable_autofill) ) {echo esc_attr( $value );} ?>' placeholder="<?php echo esc_attr( wp_strip_all_tags( $fields[ $i ]['label'] ) ); ?>" />
php/classes/class-qsm-emails.php CHANGED
@@ -152,7 +152,8 @@ class QSM_Emails {
152
  public static function send_results_email( $response_data, $to, $subject, $content, $reply_to ) {
153
 
154
  global $mlwQuizMasterNext;
155
-
 
156
  // Sets up our to email addresses.
157
  $user_email = sanitize_email( $response_data['user_email'] );
158
  $count = 0;
152
  public static function send_results_email( $response_data, $to, $subject, $content, $reply_to ) {
153
 
154
  global $mlwQuizMasterNext;
155
+ global $qmn_total_questions;
156
+ $qmn_total_questions = 0;
157
  // Sets up our to email addresses.
158
  $user_email = sanitize_email( $response_data['user_email'] );
159
  $count = 0;
php/classes/class-qsm-fields.php CHANGED
@@ -509,7 +509,7 @@ class QSM_Fields {
509
  ?>
510
  <tr valign="top">
511
  <th scope="row" class="qsm-opt-tr">
512
- <a href="#" id="<?php echo esc_attr( $field["id"] ); ?>"><?php echo esc_attr( $field["label"] ); ?></a>
513
  <?php if ( isset($field['tooltip']) && '' !== $field['tooltip'] ) { ?>
514
  <span class="dashicons dashicons-editor-help qsm-tooltips-icon">
515
  <span class="qsm-tooltips"><?php echo wp_kses_post( $field['tooltip'] ); ?></span>
509
  ?>
510
  <tr valign="top">
511
  <th scope="row" class="qsm-opt-tr">
512
+ <a href="javascript:void(0)" id="<?php echo esc_attr( $field["id"] ); ?>"><?php echo esc_attr( $field["label"] ); ?></a>
513
  <?php if ( isset($field['tooltip']) && '' !== $field['tooltip'] ) { ?>
514
  <span class="dashicons dashicons-editor-help qsm-tooltips-icon">
515
  <span class="qsm-tooltips"><?php echo wp_kses_post( $field['tooltip'] ); ?></span>
php/classes/class-qsm-install.php CHANGED
@@ -91,6 +91,17 @@ class QSM_Install {
91
  );
92
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
93
 
 
 
 
 
 
 
 
 
 
 
 
94
  // Registers Rounding setting
95
  $field_array = array(
96
  'id' => 'score_roundoff',
@@ -738,6 +749,7 @@ class QSM_Install {
738
  'help' => __( 'Overrides global settings for preferred date format', 'quiz-master-next' ),
739
  );
740
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
 
741
  do_action( 'qsm_extra_setting_fields' );
742
  // Setting for animation
743
  $field_array = array(
91
  );
92
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
93
 
94
+ // Registers default number of answers field
95
+ $field_array = array(
96
+ 'id' => 'default_answers',
97
+ 'label' => __( 'Default Number of Answers', 'quiz-master-next' ),
98
+ 'type' => 'number',
99
+ 'options' => array(),
100
+ 'default' => 1,
101
+ 'help' => __( 'Adds number of answer fields', 'quiz-master-next' ),
102
+ );
103
+ $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
104
+
105
  // Registers Rounding setting
106
  $field_array = array(
107
  'id' => 'score_roundoff',
749
  'help' => __( 'Overrides global settings for preferred date format', 'quiz-master-next' ),
750
  );
751
  $mlwQuizMasterNext->pluginHelper->register_quiz_setting( $field_array, 'quiz_options' );
752
+
753
  do_action( 'qsm_extra_setting_fields' );
754
  // Setting for animation
755
  $field_array = array(
php/classes/class-qsm-questions.php CHANGED
@@ -391,7 +391,7 @@ class QSM_Questions {
391
  public static function sanitize_answers( $answers, $settings ) {
392
 
393
  foreach ( $answers as $key => $answer ) {
394
- if ( 'rich' == $settings['answerEditor'] ) {
395
  $answer[0] = wp_kses_post( $answer[0] );
396
  } else {
397
  $answer[0] = sanitize_text_field( $answer[0] );
391
  public static function sanitize_answers( $answers, $settings ) {
392
 
393
  foreach ( $answers as $key => $answer ) {
394
+ if ( isset( $settings['answerEditor'] ) && 'rich' == $settings['answerEditor'] ) {
395
  $answer[0] = wp_kses_post( $answer[0] );
396
  } else {
397
  $answer[0] = sanitize_text_field( $answer[0] );
php/classes/class-qsm-settings.php CHANGED
@@ -221,6 +221,7 @@ class QSM_Quiz_Settings {
221
  $setDefaultvalue['scheduled_time_end'] = $globalQuizsetting['scheduled_time_end'];
222
  $setDefaultvalue['not_allow_after_expired_time'] = $globalQuizsetting['not_allow_after_expired_time'];
223
  $setDefaultvalue['preferred_date_format'] = $globalQuizsetting['preferred_date_format'];
 
224
  // Try to serialize the value.
225
  return $this->save_quiz_settings( $setting, $setDefaultvalue );
226
  }
221
  $setDefaultvalue['scheduled_time_end'] = $globalQuizsetting['scheduled_time_end'];
222
  $setDefaultvalue['not_allow_after_expired_time'] = $globalQuizsetting['not_allow_after_expired_time'];
223
  $setDefaultvalue['preferred_date_format'] = $globalQuizsetting['preferred_date_format'];
224
+ $setDefaultvalue['default_answers'] = $globalQuizsetting['default_answers'];
225
  // Try to serialize the value.
226
  return $this->save_quiz_settings( $setting, $setDefaultvalue );
227
  }
php/classes/question-types/class-question-review.php CHANGED
@@ -47,11 +47,7 @@ abstract class QSM_Question_Review {
47
  }
48
 
49
  public function decode_response_from_text_field( $data ) {
50
- if ( 'text_area' === $this->input_field ) {
51
- return trim( preg_replace( '/\s\s+/', ' ', str_replace( "\n", ' ', htmlspecialchars_decode( $data, ENT_QUOTES ) ) ) );
52
- } else {
53
- return trim( htmlspecialchars_decode( $data, ENT_QUOTES ) );
54
- }
55
  }
56
 
57
 
47
  }
48
 
49
  public function decode_response_from_text_field( $data ) {
50
+ return trim( htmlspecialchars_decode( $data, ENT_QUOTES ) );
 
 
 
 
51
  }
52
 
53
 
php/question-types/qsm-question-title.php CHANGED
@@ -15,7 +15,7 @@ function qsm_question_title_func( $question, $question_type = '', $new_question_
15
  $qmn_quiz_options = $mlwQuizMasterNext->quiz_settings->get_quiz_options();
16
  $deselect_answer = '';
17
  if ( isset( $qmn_quiz_options->enable_deselect_option ) && 1 == $qmn_quiz_options->enable_deselect_option && ( 'multiple_choice' === $question_type || 'horizontal_multiple_choice' === $question_type ) ) {
18
- $deselect_answer = '<a href="#" class="qsm-deselect-answer">'.__( 'Deselect Answer', 'quiz-master-next' ).'</a>';
19
  }
20
 
21
  if ( $question_id ) {
15
  $qmn_quiz_options = $mlwQuizMasterNext->quiz_settings->get_quiz_options();
16
  $deselect_answer = '';
17
  if ( isset( $qmn_quiz_options->enable_deselect_option ) && 1 == $qmn_quiz_options->enable_deselect_option && ( 'multiple_choice' === $question_type || 'horizontal_multiple_choice' === $question_type ) ) {
18
+ $deselect_answer = '<a href="javascript:void(0)" class="qsm-deselect-answer">'.__( 'Deselect Answer', 'quiz-master-next' ).'</a>';
19
  }
20
 
21
  if ( $question_id ) {
php/rest-api.php CHANGED
@@ -142,7 +142,7 @@ function qsm_register_rest_routes() {
142
  'permission_callback' => '__return_true',
143
  )
144
  );
145
-
146
 
147
  }
148
 
@@ -156,23 +156,28 @@ function qsm_rest_get_bank_questions( WP_REST_Request $request ) {
156
  if ( is_user_logged_in() ) {
157
  global $wpdb;
158
  $category = isset( $_REQUEST['category'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['category'] ) ) : '';
 
159
  $enabled = get_option( 'qsm_multiple_category_enabled' );
160
-
161
  $migrated = false;
162
  if ( $enabled && 'cancelled' !== $enabled ) {
163
  $migrated = true;
164
  }
165
-
166
  if ( ! empty( $category ) ) {
167
  if ( $migrated && is_numeric( $category ) ) {
168
- $query = $wpdb->prepare( "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_question_terms WHERE term_id = %d", $category );
 
 
 
 
 
 
 
169
  } else {
170
- $query = $wpdb->prepare( "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND category = %s", $category );
171
  }
172
  } else {
173
- $query = "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank=0";
174
  }
175
-
176
  $total_count_query = $wpdb->get_row( $query, 'ARRAY_A' );
177
  $total_count = isset( $total_count_query['total_question'] ) ? $total_count_query['total_question'] : 0;
178
 
@@ -197,23 +202,24 @@ function qsm_rest_get_bank_questions( WP_REST_Request $request ) {
197
  $question_ids = array_unique( $question_ids );
198
  $query_result = [];
199
  foreach ( $question_ids as $question_id ) {
200
- $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND question_id = %d ORDER BY question_order ASC LIMIT %d, %d", $question_id, $offset, $limit );
201
  $question_data = $wpdb->get_row( $query, 'ARRAY_A' );
202
  if ( ! is_null($question_data) ) {
203
  $query_result[] = $question_data;
204
- }
205
- }
206
  $questions = $query_result;
207
  } else {
208
- $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND category = %s ORDER BY question_order ASC LIMIT %d, %d", $category, $offset, $limit );
209
  $questions = $wpdb->get_results( $query, 'ARRAY_A' );
210
  }
211
  } else {
212
- $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 ORDER BY question_order ASC LIMIT %d, %d", $offset, $limit );
213
  $questions = $wpdb->get_results( $query, 'ARRAY_A' );
214
  }
215
 
216
  $question_array = array();
 
217
  $question_array['pagination'] = array(
218
  'total_pages' => $total_pages,
219
  'current_page' => $pageno,
@@ -238,7 +244,7 @@ function qsm_rest_get_bank_questions( WP_REST_Request $request ) {
238
  if ( empty( $settings['question_title'] ) && empty( $question['question_name'] ) ) {
239
  continue;
240
  }
241
-
242
  $question['settings'] = $settings;
243
  $question_data = array(
244
  'id' => $question['question_id'],
@@ -480,7 +486,7 @@ function qsm_rest_get_question( WP_REST_Request $request ) {
480
  $current_user = wp_get_current_user();
481
  if ( 0 !== $current_user ) {
482
  $question = QSM_Questions::load_question( $request['id'] );
483
- $categorysArray = QSM_Questions::get_question_categories($question['question_id']);
484
  if ( ! empty( $question ) ) {
485
  $question['page'] = isset( $question['page'] ) ? $question['page'] : 0;
486
  $question = array(
@@ -532,7 +538,7 @@ function qsm_rest_get_questions( WP_REST_Request $request ) {
532
  $quiz_name = $wpdb->get_row( $wpdb->prepare( "SELECT quiz_name FROM {$wpdb->prefix}mlw_quizzes WHERE quiz_id = %d", $question['quiz_id'] ), ARRAY_A );
533
  $question['page'] = isset( $question['page'] ) ? $question['page'] : 0;
534
  $categorysArray = QSM_Questions::get_question_categories($question['question_id']);
535
-
536
  $question_data = array(
537
  'id' => $question['question_id'],
538
  'quizID' => $question['quiz_id'],
@@ -734,7 +740,7 @@ function qsm_verify_rest_user_nonce( $id, $user_id, $rest_nonce ) {
734
 
735
  /**
736
  * Get the quizzes list
737
- *
738
  * @since 7.3.6
739
  * @return array
740
  */
@@ -746,11 +752,11 @@ function qsm_get_quizzes_list( ) {
746
  'value' => '',
747
  );
748
  if ( $quizzes ) {
749
- foreach ( $quizzes as $quiz ) {
750
  $qsm_quiz_list[] = array(
751
  'label' => $quiz->quiz_name,
752
  'value' => $quiz->quiz_id,
753
- );
754
  }
755
  }
756
  return $qsm_quiz_list;
142
  'permission_callback' => '__return_true',
143
  )
144
  );
145
+
146
 
147
  }
148
 
156
  if ( is_user_logged_in() ) {
157
  global $wpdb;
158
  $category = isset( $_REQUEST['category'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['category'] ) ) : '';
159
+ $search = isset( $_REQUEST['search'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['search'] ) ) : '';
160
  $enabled = get_option( 'qsm_multiple_category_enabled' );
 
161
  $migrated = false;
162
  if ( $enabled && 'cancelled' !== $enabled ) {
163
  $migrated = true;
164
  }
 
165
  if ( ! empty( $category ) ) {
166
  if ( $migrated && is_numeric( $category ) ) {
167
+ $query = $wpdb->prepare( "SELECT DISTINCT question_id FROM {$wpdb->prefix}mlw_question_terms WHERE term_id = %d", $category );
168
+ $term_ids = $wpdb->get_results( $query, 'ARRAY_A' );
169
+ $question_ids = [];
170
+ foreach ( $term_ids as $term_id ) {
171
+ $question_ids[] = esc_sql( intval( $term_id['question_id'] ) );
172
+ }
173
+ $question_ids = array_unique( $question_ids );
174
+ $query = $wpdb->prepare( "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND question_id IN (%s) AND question_settings LIKE %s", implode(',', $question_ids), $search );
175
  } else {
176
+ $query = $wpdb->prepare( "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND category = %s AND question_settings LIKE %s", $category, '%' . $search . '%' );
177
  }
178
  } else {
179
+ $query = $wpdb->prepare( "SELECT COUNT(question_id) as total_question FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank=0 AND question_settings LIKE %s", '%' . $search . '%' );
180
  }
 
181
  $total_count_query = $wpdb->get_row( $query, 'ARRAY_A' );
182
  $total_count = isset( $total_count_query['total_question'] ) ? $total_count_query['total_question'] : 0;
183
 
202
  $question_ids = array_unique( $question_ids );
203
  $query_result = [];
204
  foreach ( $question_ids as $question_id ) {
205
+ $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND question_id = %d AND question_settings LIKE %s ORDER BY question_order ASC LIMIT %d, %d", $question_id, '%' . $search . '%', $offset, $limit );
206
  $question_data = $wpdb->get_row( $query, 'ARRAY_A' );
207
  if ( ! is_null($question_data) ) {
208
  $query_result[] = $question_data;
209
+ }
210
+ }
211
  $questions = $query_result;
212
  } else {
213
+ $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND category = %s AND question_settings LIKE %s ORDER BY question_order ASC LIMIT %d, %d", $category, '%' . $search . '%', $offset, $limit );
214
  $questions = $wpdb->get_results( $query, 'ARRAY_A' );
215
  }
216
  } else {
217
+ $query = $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}mlw_questions WHERE deleted = 0 AND deleted_question_bank = 0 AND question_settings LIKE %s ORDER BY question_order ASC LIMIT %d, %d", '%' . $search . '%', $offset, $limit );
218
  $questions = $wpdb->get_results( $query, 'ARRAY_A' );
219
  }
220
 
221
  $question_array = array();
222
+ $question_array['search'] = $search;
223
  $question_array['pagination'] = array(
224
  'total_pages' => $total_pages,
225
  'current_page' => $pageno,
244
  if ( empty( $settings['question_title'] ) && empty( $question['question_name'] ) ) {
245
  continue;
246
  }
247
+
248
  $question['settings'] = $settings;
249
  $question_data = array(
250
  'id' => $question['question_id'],
486
  $current_user = wp_get_current_user();
487
  if ( 0 !== $current_user ) {
488
  $question = QSM_Questions::load_question( $request['id'] );
489
+ $categorysArray = QSM_Questions::get_question_categories($question['question_id']);
490
  if ( ! empty( $question ) ) {
491
  $question['page'] = isset( $question['page'] ) ? $question['page'] : 0;
492
  $question = array(
538
  $quiz_name = $wpdb->get_row( $wpdb->prepare( "SELECT quiz_name FROM {$wpdb->prefix}mlw_quizzes WHERE quiz_id = %d", $question['quiz_id'] ), ARRAY_A );
539
  $question['page'] = isset( $question['page'] ) ? $question['page'] : 0;
540
  $categorysArray = QSM_Questions::get_question_categories($question['question_id']);
541
+
542
  $question_data = array(
543
  'id' => $question['question_id'],
544
  'quizID' => $question['quiz_id'],
740
 
741
  /**
742
  * Get the quizzes list
743
+ *
744
  * @since 7.3.6
745
  * @return array
746
  */
752
  'value' => '',
753
  );
754
  if ( $quizzes ) {
755
+ foreach ( $quizzes as $quiz ) {
756
  $qsm_quiz_list[] = array(
757
  'label' => $quiz->quiz_name,
758
  'value' => $quiz->quiz_id,
759
+ );
760
  }
761
  }
762
  return $qsm_quiz_list;
php/template-variables.php CHANGED
@@ -589,7 +589,7 @@ function qmn_variable_category_points( $content, $mlw_quiz_array ) {
589
  foreach ( $mlw_quiz_array['question_answers_array'] as $answer ) {
590
  if ( is_array( $answer['multicategories'] ) ) {
591
  foreach ( $answer['multicategories'] as $category ) {
592
- $category_name_object = get_term_by( 'ID', $category, 'qsm_category' );
593
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
594
  $total_questions += 1;
595
  $return_points += $answer['points'];
@@ -626,7 +626,7 @@ function qmn_variable_average_category_points( $content, $mlw_quiz_array ) {
626
  foreach ( $mlw_quiz_array['question_answers_array'] as $answer ) {
627
  if ( is_array( $answer['multicategories'] ) ) {
628
  foreach ( $answer['multicategories'] as $category ) {
629
- $category_name_object = get_term_by( 'ID', $category, 'qsm_category' );
630
  $category_name_of_question = ( ! empty( $category_name_object->name ) ? $category_name_object->name : '' );
631
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
632
  $total_questions += 1;
@@ -676,7 +676,7 @@ function qmn_variable_category_score( $content, $mlw_quiz_array ) {
676
  if ( $category_data['migrated'] ) {
677
  if ( is_array( $answer['multicategories'] ) ) {
678
  foreach ( $answer['multicategories'] as $category ) {
679
- $category_name_object = get_term_by( 'ID', $category, 'qsm_category' );
680
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
681
  $total_questions += 1;
682
  if ( 'correct' == $answer['correct'] ) {
@@ -1127,7 +1127,7 @@ function qsm_questions_answers_shortcode_to_text( $mlw_quiz_array, $qmn_question
1127
  $question_with_answer_text .= "$open_span_tag" . trim( htmlspecialchars_decode( $answer[1], ENT_QUOTES ) ) . '</span>';
1128
  }
1129
  } else {
1130
- $question_with_answer_text .= '<span class="qsm-user-answer-text">' . htmlspecialchars_decode( $answer[1], ENT_QUOTES ) . '</span>';
1131
  }
1132
  }
1133
  }
@@ -1369,7 +1369,7 @@ function qsm_varibale_question_title_func( $question, $question_type = '', $new_
1369
  $qmn_quiz_options = $mlwQuizMasterNext->quiz_settings->get_quiz_options();
1370
  $deselect_answer = '';
1371
  if ( isset( $qmn_quiz_options->enable_deselect_option ) && 1 == $qmn_quiz_options->enable_deselect_option && ( 'multiple_choice' === $question_type || 'horizontal_multiple_choice' === $question_type ) ) {
1372
- $deselect_answer = '<a href="#" class="qsm-deselect-answer">Deselect Answer</a>';
1373
  }
1374
 
1375
  $question_numbering = '';
589
  foreach ( $mlw_quiz_array['question_answers_array'] as $answer ) {
590
  if ( is_array( $answer['multicategories'] ) ) {
591
  foreach ( $answer['multicategories'] as $category ) {
592
+ $category_name_object = get_term_by( 'id', $category, 'qsm_category' );
593
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
594
  $total_questions += 1;
595
  $return_points += $answer['points'];
626
  foreach ( $mlw_quiz_array['question_answers_array'] as $answer ) {
627
  if ( is_array( $answer['multicategories'] ) ) {
628
  foreach ( $answer['multicategories'] as $category ) {
629
+ $category_name_object = get_term_by( 'id', $category, 'qsm_category' );
630
  $category_name_of_question = ( ! empty( $category_name_object->name ) ? $category_name_object->name : '' );
631
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
632
  $total_questions += 1;
676
  if ( $category_data['migrated'] ) {
677
  if ( is_array( $answer['multicategories'] ) ) {
678
  foreach ( $answer['multicategories'] as $category ) {
679
+ $category_name_object = get_term_by( 'id', $category, 'qsm_category' );
680
  if ( $category_name_object->name == $category_name && '11' !== $answer['question_type'] ) {
681
  $total_questions += 1;
682
  if ( 'correct' == $answer['correct'] ) {
1127
  $question_with_answer_text .= "$open_span_tag" . trim( htmlspecialchars_decode( $answer[1], ENT_QUOTES ) ) . '</span>';
1128
  }
1129
  } else {
1130
+ $question_with_answer_text .= '<span class="qsm-user-answer-text">' . preg_replace( "/[\n\r]+/", "", nl2br( htmlspecialchars_decode( $answer[1], ENT_QUOTES ) ) ) . '</span>';
1131
  }
1132
  }
1133
  }
1369
  $qmn_quiz_options = $mlwQuizMasterNext->quiz_settings->get_quiz_options();
1370
  $deselect_answer = '';
1371
  if ( isset( $qmn_quiz_options->enable_deselect_option ) && 1 == $qmn_quiz_options->enable_deselect_option && ( 'multiple_choice' === $question_type || 'horizontal_multiple_choice' === $question_type ) ) {
1372
+ $deselect_answer = '<a href="javascript:void(0)" class="qsm-deselect-answer">Deselect Answer</a>';
1373
  }
1374
 
1375
  $question_numbering = '';
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: quizsurvey,expresstech
3
  Tags: quiz, survey, lead, test, score, exam, questionnaire, question,wordpress quiz plugin
4
  Requires at least: 4.9
5
- Tested up to: 5.9
6
  Requires PHP: 5.4
7
- Stable tag: 7.3.13
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,6 +12,8 @@ Easily create exams, generate leads, surveys and any type of quiz with our popul
12
 
13
  == Description ==
14
 
 
 
15
  = Demoes! =
16
  * [Sample Quiz](https://quizandsurveymaster.com/quiz/sample-quiz/?utm_source=readme&utm_medium=plugin&utm_content=sample-quiz&utm_campaign=qsm_plugin)
17
  * [Sample Survey](https://quizandsurveymaster.com/quiz/sample-survey/?utm_source=readme&utm_medium=plugin&utm_content=sample-survey&utm_campaign=qsm_plugin)
@@ -104,7 +106,7 @@ Quiz And Survey Master is fully functional and is packed with tons of features t
104
 
105
  If you like this plugin, consider exploring our other themes and plugins:
106
 
107
- 🧱 [Gutena] (https://wordpress.org/themes/gutena/) - Block Based Theme for WordPress includes over 50 free block patterns with new patterns added every week.
108
 
109
  ☰ [Responsive Menu](https://wordpress.org/plugins/responsive-menu/) - Best WordPress Menu Builder Plugin to create awesome and interactive mobile & desktop menus for WordPress websites.
110
 
@@ -162,6 +164,17 @@ This is usually a theme conflict. You can [checkout out our common conflict solu
162
  18. Database
163
 
164
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
165
  = 7.3.13 (March 14, 2022) =
166
  * Bug: Fixed issue with comments field UI
167
  * Bug: Fixed issue with support Link
2
  Contributors: quizsurvey,expresstech
3
  Tags: quiz, survey, lead, test, score, exam, questionnaire, question,wordpress quiz plugin
4
  Requires at least: 4.9
5
+ Tested up to: 6.0
6
  Requires PHP: 5.4
7
+ Stable tag: 7.3.14
8
  License: GPLv2
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ Try Demo ➡️ [Get a personal sandbox demo with QSM](https://instawp.io/plugins/quiz-master-next)
16
+
17
  = Demoes! =
18
  * [Sample Quiz](https://quizandsurveymaster.com/quiz/sample-quiz/?utm_source=readme&utm_medium=plugin&utm_content=sample-quiz&utm_campaign=qsm_plugin)
19
  * [Sample Survey](https://quizandsurveymaster.com/quiz/sample-survey/?utm_source=readme&utm_medium=plugin&utm_content=sample-survey&utm_campaign=qsm_plugin)
106
 
107
  If you like this plugin, consider exploring our other themes and plugins:
108
 
109
+ 🧱 [Gutena](https://wordpress.org/themes/gutena/) - Block Based Theme for WordPress includes over 50 free block patterns with new patterns added every week.
110
 
111
  ☰ [Responsive Menu](https://wordpress.org/plugins/responsive-menu/) - Best WordPress Menu Builder Plugin to create awesome and interactive mobile & desktop menus for WordPress websites.
112
 
164
  18. Database
165
 
166
  == Changelog ==
167
+ = 7.3.14 (April 5, 2022) =
168
+ * Bug: Fixed issue with paragraph question type
169
+ * Bug: Fixed issue with qmn_register_my_templates hook
170
+ * Bug: Fixed issue with %CATEGORY_POINTS_X% template variable
171
+ * Bug: Fixed issue with question numbers in email
172
+ * Bug: Fixed issue with elementor popup
173
+ * Bug: Issue fixed with touch devices
174
+ * Feature: Added option to set default number of answers
175
+ * Feature: Added option to search questions from question bank
176
+ * Enhancement: Made UI improvements in polar question
177
+
178
  = 7.3.13 (March 14, 2022) =
179
  * Bug: Fixed issue with comments field UI
180
  * Bug: Fixed issue with support Link
tests/_support/_generated/AcceptanceTesterActions.php CHANGED
@@ -12,7 +12,7 @@ trait AcceptanceTesterActions
12
  */
13
  abstract protected function getScenario();
14
 
15
-
16
  /**
17
  * [!] Method is generated. Documentation taken from corresponding module.
18
  *
@@ -37,7 +37,7 @@ trait AcceptanceTesterActions
37
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loginAsAdmin', func_get_args()));
38
  }
39
 
40
-
41
  /**
42
  * [!] Method is generated. Documentation taken from corresponding module.
43
  *
@@ -66,7 +66,7 @@ trait AcceptanceTesterActions
66
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loginAs', func_get_args()));
67
  }
68
 
69
-
70
  /**
71
  * [!] Method is generated. Documentation taken from corresponding module.
72
  *
@@ -88,7 +88,7 @@ trait AcceptanceTesterActions
88
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookiesWithPattern', func_get_args()));
89
  }
90
 
91
-
92
  /**
93
  * [!] Method is generated. Documentation taken from corresponding module.
94
  *
@@ -108,7 +108,7 @@ trait AcceptanceTesterActions
108
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForJqueryAjax', func_get_args()));
109
  }
110
 
111
-
112
  /**
113
  * [!] Method is generated. Documentation taken from corresponding module.
114
  *
@@ -126,7 +126,7 @@ trait AcceptanceTesterActions
126
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFullUrl', func_get_args()));
127
  }
128
 
129
-
130
  /**
131
  * [!] Method is generated. Documentation taken from corresponding module.
132
  *
@@ -153,7 +153,7 @@ trait AcceptanceTesterActions
153
  return $this->getScenario()->runStep(new \Codeception\Step\Action('deactivatePlugin', func_get_args()));
154
  }
155
 
156
-
157
  /**
158
  * [!] Method is generated. Documentation taken from corresponding module.
159
  *
@@ -180,7 +180,7 @@ trait AcceptanceTesterActions
180
  return $this->getScenario()->runStep(new \Codeception\Step\Action('activatePlugin', func_get_args()));
181
  }
182
 
183
-
184
  /**
185
  * [!] Method is generated. Documentation taken from corresponding module.
186
  *
@@ -193,7 +193,7 @@ trait AcceptanceTesterActions
193
  return $this->getScenario()->runStep(new \Codeception\Step\Action('debugWebDriverLogs', func_get_args()));
194
  }
195
 
196
-
197
  /**
198
  * [!] Method is generated. Documentation taken from corresponding module.
199
  *
@@ -221,7 +221,7 @@ trait AcceptanceTesterActions
221
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args()));
222
  }
223
 
224
-
225
  /**
226
  * [!] Method is generated. Documentation taken from corresponding module.
227
  *
@@ -243,7 +243,7 @@ trait AcceptanceTesterActions
243
  return $this->getScenario()->runStep(new \Codeception\Step\Action('makeScreenshot', func_get_args()));
244
  }
245
 
246
-
247
  /**
248
  * [!] Method is generated. Documentation taken from corresponding module.
249
  *
@@ -265,7 +265,7 @@ trait AcceptanceTesterActions
265
  return $this->getScenario()->runStep(new \Codeception\Step\Action('makeHtmlSnapshot', func_get_args()));
266
  }
267
 
268
-
269
  /**
270
  * [!] Method is generated. Documentation taken from corresponding module.
271
  *
@@ -285,7 +285,7 @@ trait AcceptanceTesterActions
285
  return $this->getScenario()->runStep(new \Codeception\Step\Action('resizeWindow', func_get_args()));
286
  }
287
 
288
-
289
  /**
290
  * [!] Method is generated. Documentation taken from corresponding module.
291
  *
@@ -328,7 +328,7 @@ trait AcceptanceTesterActions
328
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args()));
329
  }
330
 
331
-
332
  /**
333
  * [!] Method is generated. Documentation taken from corresponding module.
334
  *
@@ -361,7 +361,7 @@ trait AcceptanceTesterActions
361
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args()));
362
  }
363
 
364
-
365
  /**
366
  * [!] Method is generated. Documentation taken from corresponding module.
367
  *
@@ -385,7 +385,7 @@ trait AcceptanceTesterActions
385
  return $this->getScenario()->runStep(new \Codeception\Step\Action('setCookie', func_get_args()));
386
  }
387
 
388
-
389
  /**
390
  * [!] Method is generated. Documentation taken from corresponding module.
391
  *
@@ -402,7 +402,7 @@ trait AcceptanceTesterActions
402
  return $this->getScenario()->runStep(new \Codeception\Step\Action('resetCookie', func_get_args()));
403
  }
404
 
405
-
406
  /**
407
  * [!] Method is generated. Documentation taken from corresponding module.
408
  *
@@ -419,7 +419,7 @@ trait AcceptanceTesterActions
419
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookie', func_get_args()));
420
  }
421
 
422
-
423
  /**
424
  * [!] Method is generated. Documentation taken from corresponding module.
425
  *
@@ -434,7 +434,7 @@ trait AcceptanceTesterActions
434
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabPageSource', func_get_args()));
435
  }
436
 
437
-
438
  /**
439
  * [!] Method is generated. Documentation taken from corresponding module.
440
  *
@@ -452,7 +452,7 @@ trait AcceptanceTesterActions
452
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args()));
453
  }
454
 
455
-
456
  /**
457
  * [!] Method is generated. Documentation taken from corresponding module.
458
  *
@@ -473,7 +473,7 @@ trait AcceptanceTesterActions
473
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args()));
474
  }
475
 
476
-
477
  /**
478
  * [!] Method is generated. Documentation taken from corresponding module.
479
  *
@@ -550,7 +550,7 @@ trait AcceptanceTesterActions
550
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args()));
551
  }
552
 
553
-
554
  /**
555
  * [!] Method is generated. Documentation taken from corresponding module.
556
  *
@@ -623,7 +623,7 @@ trait AcceptanceTesterActions
623
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args()));
624
  }
625
 
626
-
627
  /**
628
  * [!] Method is generated. Documentation taken from corresponding module.
629
  *
@@ -660,7 +660,7 @@ trait AcceptanceTesterActions
660
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInSource', func_get_args()));
661
  }
662
 
663
-
664
  /**
665
  * [!] Method is generated. Documentation taken from corresponding module.
666
  *
@@ -697,7 +697,7 @@ trait AcceptanceTesterActions
697
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInSource', func_get_args()));
698
  }
699
 
700
-
701
  /**
702
  * [!] Method is generated. Documentation taken from corresponding module.
703
  *
@@ -732,7 +732,7 @@ trait AcceptanceTesterActions
732
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPageSource', func_get_args()));
733
  }
734
 
735
-
736
  /**
737
  * [!] Method is generated. Documentation taken from corresponding module.
738
  *
@@ -757,7 +757,7 @@ trait AcceptanceTesterActions
757
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInPageSource', func_get_args()));
758
  }
759
 
760
-
761
  /**
762
  * [!] Method is generated. Documentation taken from corresponding module.
763
  *
@@ -796,7 +796,7 @@ trait AcceptanceTesterActions
796
  return $this->getScenario()->runStep(new \Codeception\Step\Action('click', func_get_args()));
797
  }
798
 
799
-
800
  /**
801
  * [!] Method is generated. Documentation taken from corresponding module.
802
  *
@@ -839,7 +839,7 @@ trait AcceptanceTesterActions
839
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args()));
840
  }
841
 
842
-
843
  /**
844
  * [!] Method is generated. Documentation taken from corresponding module.
845
  *
@@ -882,7 +882,7 @@ trait AcceptanceTesterActions
882
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args()));
883
  }
884
 
885
-
886
  /**
887
  * [!] Method is generated. Documentation taken from corresponding module.
888
  *
@@ -925,7 +925,7 @@ trait AcceptanceTesterActions
925
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args()));
926
  }
927
 
928
-
929
  /**
930
  * [!] Method is generated. Documentation taken from corresponding module.
931
  *
@@ -966,7 +966,7 @@ trait AcceptanceTesterActions
966
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args()));
967
  }
968
 
969
-
970
  /**
971
  * [!] Method is generated. Documentation taken from corresponding module.
972
  *
@@ -1005,7 +1005,7 @@ trait AcceptanceTesterActions
1005
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args()));
1006
  }
1007
 
1008
-
1009
  /**
1010
  * [!] Method is generated. Documentation taken from corresponding module.
1011
  *
@@ -1042,7 +1042,7 @@ trait AcceptanceTesterActions
1042
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args()));
1043
  }
1044
 
1045
-
1046
  /**
1047
  * [!] Method is generated. Documentation taken from corresponding module.
1048
  *
@@ -1083,7 +1083,7 @@ trait AcceptanceTesterActions
1083
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args()));
1084
  }
1085
 
1086
-
1087
  /**
1088
  * [!] Method is generated. Documentation taken from corresponding module.
1089
  *
@@ -1122,7 +1122,7 @@ trait AcceptanceTesterActions
1122
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args()));
1123
  }
1124
 
1125
-
1126
  /**
1127
  * [!] Method is generated. Documentation taken from corresponding module.
1128
  *
@@ -1145,7 +1145,7 @@ trait AcceptanceTesterActions
1145
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args()));
1146
  }
1147
 
1148
-
1149
  /**
1150
  * [!] Method is generated. Documentation taken from corresponding module.
1151
  *
@@ -1186,7 +1186,7 @@ trait AcceptanceTesterActions
1186
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args()));
1187
  }
1188
 
1189
-
1190
  /**
1191
  * [!] Method is generated. Documentation taken from corresponding module.
1192
  *
@@ -1225,7 +1225,7 @@ trait AcceptanceTesterActions
1225
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args()));
1226
  }
1227
 
1228
-
1229
  /**
1230
  * [!] Method is generated. Documentation taken from corresponding module.
1231
  *
@@ -1276,7 +1276,7 @@ trait AcceptanceTesterActions
1276
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args()));
1277
  }
1278
 
1279
-
1280
  /**
1281
  * [!] Method is generated. Documentation taken from corresponding module.
1282
  *
@@ -1327,7 +1327,7 @@ trait AcceptanceTesterActions
1327
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args()));
1328
  }
1329
 
1330
-
1331
  /**
1332
  * [!] Method is generated. Documentation taken from corresponding module.
1333
  *
@@ -1464,7 +1464,7 @@ trait AcceptanceTesterActions
1464
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInFormFields', func_get_args()));
1465
  }
1466
 
1467
-
1468
  /**
1469
  * [!] Method is generated. Documentation taken from corresponding module.
1470
  *
@@ -1561,7 +1561,7 @@ trait AcceptanceTesterActions
1561
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInFormFields', func_get_args()));
1562
  }
1563
 
1564
-
1565
  /**
1566
  * [!] Method is generated. Documentation taken from corresponding module.
1567
  *
@@ -1600,7 +1600,7 @@ trait AcceptanceTesterActions
1600
  return $this->getScenario()->runStep(new \Codeception\Step\Action('selectOption', func_get_args()));
1601
  }
1602
 
1603
-
1604
  /**
1605
  * [!] Method is generated. Documentation taken from corresponding module.
1606
  *
@@ -1614,7 +1614,7 @@ trait AcceptanceTesterActions
1614
  return $this->getScenario()->runStep(new \Codeception\Step\Action('unselectOption', func_get_args()));
1615
  }
1616
 
1617
-
1618
  /**
1619
  * [!] Method is generated. Documentation taken from corresponding module.
1620
  *
@@ -1633,7 +1633,7 @@ trait AcceptanceTesterActions
1633
  return $this->getScenario()->runStep(new \Codeception\Step\Action('checkOption', func_get_args()));
1634
  }
1635
 
1636
-
1637
  /**
1638
  * [!] Method is generated. Documentation taken from corresponding module.
1639
  *
@@ -1652,7 +1652,7 @@ trait AcceptanceTesterActions
1652
  return $this->getScenario()->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args()));
1653
  }
1654
 
1655
-
1656
  /**
1657
  * [!] Method is generated. Documentation taken from corresponding module.
1658
  *
@@ -1673,7 +1673,7 @@ trait AcceptanceTesterActions
1673
  return $this->getScenario()->runStep(new \Codeception\Step\Action('fillField', func_get_args()));
1674
  }
1675
 
1676
-
1677
  /**
1678
  * [!] Method is generated. Documentation taken from corresponding module.
1679
  *
@@ -1691,7 +1691,7 @@ trait AcceptanceTesterActions
1691
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clearField', func_get_args()));
1692
  }
1693
 
1694
-
1695
  /**
1696
  * [!] Method is generated. Documentation taken from corresponding module.
1697
  *
@@ -1712,7 +1712,7 @@ trait AcceptanceTesterActions
1712
  return $this->getScenario()->runStep(new \Codeception\Step\Action('attachFile', func_get_args()));
1713
  }
1714
 
1715
-
1716
  /**
1717
  * [!] Method is generated. Documentation taken from corresponding module.
1718
  *
@@ -1737,7 +1737,7 @@ trait AcceptanceTesterActions
1737
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args()));
1738
  }
1739
 
1740
-
1741
  /**
1742
  * [!] Method is generated. Documentation taken from corresponding module.
1743
  *
@@ -1761,7 +1761,7 @@ trait AcceptanceTesterActions
1761
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args()));
1762
  }
1763
 
1764
-
1765
  /**
1766
  * [!] Method is generated. Documentation taken from corresponding module.
1767
  *
@@ -1786,7 +1786,7 @@ trait AcceptanceTesterActions
1786
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args()));
1787
  }
1788
 
1789
-
1790
  /**
1791
  * [!] Method is generated. Documentation taken from corresponding module.
1792
  *
@@ -1818,7 +1818,7 @@ trait AcceptanceTesterActions
1818
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabMultiple', func_get_args()));
1819
  }
1820
 
1821
-
1822
  /**
1823
  * [!] Method is generated. Documentation taken from corresponding module.
1824
  *
@@ -1873,7 +1873,7 @@ trait AcceptanceTesterActions
1873
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args()));
1874
  }
1875
 
1876
-
1877
  /**
1878
  * [!] Method is generated. Documentation taken from corresponding module.
1879
  *
@@ -1920,7 +1920,7 @@ trait AcceptanceTesterActions
1920
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args()));
1921
  }
1922
 
1923
-
1924
  /**
1925
  * [!] Method is generated. Documentation taken from corresponding module.
1926
  *
@@ -1959,7 +1959,7 @@ trait AcceptanceTesterActions
1959
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElementInDOM', func_get_args()));
1960
  }
1961
 
1962
-
1963
  /**
1964
  * [!] Method is generated. Documentation taken from corresponding module.
1965
  *
@@ -1986,7 +1986,7 @@ trait AcceptanceTesterActions
1986
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElementInDOM', func_get_args()));
1987
  }
1988
 
1989
-
1990
  /**
1991
  * [!] Method is generated. Documentation taken from corresponding module.
1992
  *
@@ -2025,7 +2025,7 @@ trait AcceptanceTesterActions
2025
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args()));
2026
  }
2027
 
2028
-
2029
  /**
2030
  * [!] Method is generated. Documentation taken from corresponding module.
2031
  *
@@ -2046,7 +2046,7 @@ trait AcceptanceTesterActions
2046
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElementsInDOM', func_get_args()));
2047
  }
2048
 
2049
-
2050
  /**
2051
  * [!] Method is generated. Documentation taken from corresponding module.
2052
  *
@@ -2089,7 +2089,7 @@ trait AcceptanceTesterActions
2089
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args()));
2090
  }
2091
 
2092
-
2093
  /**
2094
  * [!] Method is generated. Documentation taken from corresponding module.
2095
  *
@@ -2132,7 +2132,7 @@ trait AcceptanceTesterActions
2132
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args()));
2133
  }
2134
 
2135
-
2136
  /**
2137
  * [!] Method is generated. Documentation taken from corresponding module.
2138
  *
@@ -2173,7 +2173,7 @@ trait AcceptanceTesterActions
2173
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args()));
2174
  }
2175
 
2176
-
2177
  /**
2178
  * [!] Method is generated. Documentation taken from corresponding module.
2179
  *
@@ -2202,7 +2202,7 @@ trait AcceptanceTesterActions
2202
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args()));
2203
  }
2204
 
2205
-
2206
  /**
2207
  * [!] Method is generated. Documentation taken from corresponding module.
2208
  *
@@ -2215,7 +2215,7 @@ trait AcceptanceTesterActions
2215
  return $this->getScenario()->runStep(new \Codeception\Step\Action('acceptPopup', func_get_args()));
2216
  }
2217
 
2218
-
2219
  /**
2220
  * [!] Method is generated. Documentation taken from corresponding module.
2221
  *
@@ -2226,7 +2226,7 @@ trait AcceptanceTesterActions
2226
  return $this->getScenario()->runStep(new \Codeception\Step\Action('cancelPopup', func_get_args()));
2227
  }
2228
 
2229
-
2230
  /**
2231
  * [!] Method is generated. Documentation taken from corresponding module.
2232
  *
@@ -2257,7 +2257,7 @@ trait AcceptanceTesterActions
2257
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPopup', func_get_args()));
2258
  }
2259
 
2260
-
2261
  /**
2262
  * [!] Method is generated. Documentation taken from corresponding module.
2263
  *
@@ -2288,7 +2288,7 @@ trait AcceptanceTesterActions
2288
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInPopup', func_get_args()));
2289
  }
2290
 
2291
-
2292
  /**
2293
  * [!] Method is generated. Documentation taken from corresponding module.
2294
  *
@@ -2303,7 +2303,7 @@ trait AcceptanceTesterActions
2303
  return $this->getScenario()->runStep(new \Codeception\Step\Action('typeInPopup', func_get_args()));
2304
  }
2305
 
2306
-
2307
  /**
2308
  * [!] Method is generated. Documentation taken from corresponding module.
2309
  *
@@ -2314,7 +2314,7 @@ trait AcceptanceTesterActions
2314
  return $this->getScenario()->runStep(new \Codeception\Step\Action('reloadPage', func_get_args()));
2315
  }
2316
 
2317
-
2318
  /**
2319
  * [!] Method is generated. Documentation taken from corresponding module.
2320
  *
@@ -2325,7 +2325,7 @@ trait AcceptanceTesterActions
2325
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveBack', func_get_args()));
2326
  }
2327
 
2328
-
2329
  /**
2330
  * [!] Method is generated. Documentation taken from corresponding module.
2331
  *
@@ -2336,7 +2336,7 @@ trait AcceptanceTesterActions
2336
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveForward', func_get_args()));
2337
  }
2338
 
2339
-
2340
  /**
2341
  * [!] Method is generated. Documentation taken from corresponding module.
2342
  *
@@ -2503,7 +2503,7 @@ trait AcceptanceTesterActions
2503
  return $this->getScenario()->runStep(new \Codeception\Step\Action('submitForm', func_get_args()));
2504
  }
2505
 
2506
-
2507
  /**
2508
  * [!] Method is generated. Documentation taken from corresponding module.
2509
  *
@@ -2530,7 +2530,7 @@ trait AcceptanceTesterActions
2530
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementChange', func_get_args()));
2531
  }
2532
 
2533
-
2534
  /**
2535
  * [!] Method is generated. Documentation taken from corresponding module.
2536
  *
@@ -2553,7 +2553,7 @@ trait AcceptanceTesterActions
2553
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElement', func_get_args()));
2554
  }
2555
 
2556
-
2557
  /**
2558
  * [!] Method is generated. Documentation taken from corresponding module.
2559
  *
@@ -2576,7 +2576,7 @@ trait AcceptanceTesterActions
2576
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementVisible', func_get_args()));
2577
  }
2578
 
2579
-
2580
  /**
2581
  * [!] Method is generated. Documentation taken from corresponding module.
2582
  *
@@ -2598,7 +2598,7 @@ trait AcceptanceTesterActions
2598
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementNotVisible', func_get_args()));
2599
  }
2600
 
2601
-
2602
  /**
2603
  * [!] Method is generated. Documentation taken from corresponding module.
2604
  *
@@ -2621,7 +2621,7 @@ trait AcceptanceTesterActions
2621
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementClickable', func_get_args()));
2622
  }
2623
 
2624
-
2625
  /**
2626
  * [!] Method is generated. Documentation taken from corresponding module.
2627
  *
@@ -2648,7 +2648,7 @@ trait AcceptanceTesterActions
2648
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForText', func_get_args()));
2649
  }
2650
 
2651
-
2652
  /**
2653
  * [!] Method is generated. Documentation taken from corresponding module.
2654
  *
@@ -2662,7 +2662,7 @@ trait AcceptanceTesterActions
2662
  return $this->getScenario()->runStep(new \Codeception\Step\Action('wait', func_get_args()));
2663
  }
2664
 
2665
-
2666
  /**
2667
  * [!] Method is generated. Documentation taken from corresponding module.
2668
  *
@@ -2687,7 +2687,7 @@ trait AcceptanceTesterActions
2687
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeInSelenium', func_get_args()));
2688
  }
2689
 
2690
-
2691
  /**
2692
  * [!] Method is generated. Documentation taken from corresponding module.
2693
  *
@@ -2731,7 +2731,7 @@ trait AcceptanceTesterActions
2731
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToWindow', func_get_args()));
2732
  }
2733
 
2734
-
2735
  /**
2736
  * [!] Method is generated. Documentation taken from corresponding module.
2737
  *
@@ -2761,7 +2761,7 @@ trait AcceptanceTesterActions
2761
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToIFrame', func_get_args()));
2762
  }
2763
 
2764
-
2765
  /**
2766
  * [!] Method is generated. Documentation taken from corresponding module.
2767
  *
@@ -2783,7 +2783,7 @@ trait AcceptanceTesterActions
2783
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForJS', func_get_args()));
2784
  }
2785
 
2786
-
2787
  /**
2788
  * [!] Method is generated. Documentation taken from corresponding module.
2789
  *
@@ -2809,7 +2809,7 @@ trait AcceptanceTesterActions
2809
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeJS', func_get_args()));
2810
  }
2811
 
2812
-
2813
  /**
2814
  * [!] Method is generated. Documentation taken from corresponding module.
2815
  *
@@ -2835,7 +2835,7 @@ trait AcceptanceTesterActions
2835
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeAsyncJS', func_get_args()));
2836
  }
2837
 
2838
-
2839
  /**
2840
  * [!] Method is generated. Documentation taken from corresponding module.
2841
  *
@@ -2846,7 +2846,7 @@ trait AcceptanceTesterActions
2846
  return $this->getScenario()->runStep(new \Codeception\Step\Action('maximizeWindow', func_get_args()));
2847
  }
2848
 
2849
-
2850
  /**
2851
  * [!] Method is generated. Documentation taken from corresponding module.
2852
  *
@@ -2866,7 +2866,7 @@ trait AcceptanceTesterActions
2866
  return $this->getScenario()->runStep(new \Codeception\Step\Action('dragAndDrop', func_get_args()));
2867
  }
2868
 
2869
-
2870
  /**
2871
  * [!] Method is generated. Documentation taken from corresponding module.
2872
  *
@@ -2895,7 +2895,7 @@ trait AcceptanceTesterActions
2895
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveMouseOver', func_get_args()));
2896
  }
2897
 
2898
-
2899
  /**
2900
  * [!] Method is generated. Documentation taken from corresponding module.
2901
  *
@@ -2924,7 +2924,7 @@ trait AcceptanceTesterActions
2924
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clickWithLeftButton', func_get_args()));
2925
  }
2926
 
2927
-
2928
  /**
2929
  * [!] Method is generated. Documentation taken from corresponding module.
2930
  *
@@ -2953,7 +2953,7 @@ trait AcceptanceTesterActions
2953
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clickWithRightButton', func_get_args()));
2954
  }
2955
 
2956
-
2957
  /**
2958
  * [!] Method is generated. Documentation taken from corresponding module.
2959
  *
@@ -2967,7 +2967,7 @@ trait AcceptanceTesterActions
2967
  return $this->getScenario()->runStep(new \Codeception\Step\Action('doubleClick', func_get_args()));
2968
  }
2969
 
2970
-
2971
  /**
2972
  * [!] Method is generated. Documentation taken from corresponding module.
2973
  *
@@ -2996,7 +2996,7 @@ trait AcceptanceTesterActions
2996
  return $this->getScenario()->runStep(new \Codeception\Step\Action('pressKey', func_get_args()));
2997
  }
2998
 
2999
-
3000
  /**
3001
  * [!] Method is generated. Documentation taken from corresponding module.
3002
  *
@@ -3019,7 +3019,7 @@ trait AcceptanceTesterActions
3019
  return $this->getScenario()->runStep(new \Codeception\Step\Action('appendField', func_get_args()));
3020
  }
3021
 
3022
-
3023
  /**
3024
  * [!] Method is generated. Documentation taken from corresponding module.
3025
  *
@@ -3057,7 +3057,7 @@ trait AcceptanceTesterActions
3057
  return $this->getScenario()->runStep(new \Codeception\Step\Action('saveSessionSnapshot', func_get_args()));
3058
  }
3059
 
3060
-
3061
  /**
3062
  * [!] Method is generated. Documentation taken from corresponding module.
3063
  *
@@ -3074,7 +3074,7 @@ trait AcceptanceTesterActions
3074
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loadSessionSnapshot', func_get_args()));
3075
  }
3076
 
3077
-
3078
  /**
3079
  * [!] Method is generated. Documentation taken from corresponding module.
3080
  *
@@ -3090,7 +3090,7 @@ trait AcceptanceTesterActions
3090
  return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteSessionSnapshot', func_get_args()));
3091
  }
3092
 
3093
-
3094
  /**
3095
  * [!] Method is generated. Documentation taken from corresponding module.
3096
  *
@@ -3113,7 +3113,7 @@ trait AcceptanceTesterActions
3113
  return $this->getScenario()->runStep(new \Codeception\Step\Action('scrollTo', func_get_args()));
3114
  }
3115
 
3116
-
3117
  /**
3118
  * [!] Method is generated. Documentation taken from corresponding module.
3119
  *
@@ -3134,7 +3134,7 @@ trait AcceptanceTesterActions
3134
  return $this->getScenario()->runStep(new \Codeception\Step\Action('openNewTab', func_get_args()));
3135
  }
3136
 
3137
-
3138
  /**
3139
  * [!] Method is generated. Documentation taken from corresponding module.
3140
  *
@@ -3152,7 +3152,7 @@ trait AcceptanceTesterActions
3152
  return $this->getScenario()->runStep(new \Codeception\Step\Action('closeTab', func_get_args()));
3153
  }
3154
 
3155
-
3156
  /**
3157
  * [!] Method is generated. Documentation taken from corresponding module.
3158
  *
@@ -3176,7 +3176,7 @@ trait AcceptanceTesterActions
3176
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToNextTab', func_get_args()));
3177
  }
3178
 
3179
-
3180
  /**
3181
  * [!] Method is generated. Documentation taken from corresponding module.
3182
  *
@@ -3200,7 +3200,7 @@ trait AcceptanceTesterActions
3200
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToPreviousTab', func_get_args()));
3201
  }
3202
 
3203
-
3204
  /**
3205
  * [!] Method is generated. Documentation taken from corresponding module.
3206
  *
@@ -3251,7 +3251,7 @@ trait AcceptanceTesterActions
3251
  return $this->getScenario()->runStep(new \Codeception\Step\Action('performOn', func_get_args()));
3252
  }
3253
 
3254
-
3255
  /**
3256
  * [!] Method is generated. Documentation taken from corresponding module.
3257
  *
@@ -3271,7 +3271,7 @@ trait AcceptanceTesterActions
3271
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPluginsPage', func_get_args()));
3272
  }
3273
 
3274
-
3275
  /**
3276
  * [!] Method is generated. Documentation taken from corresponding module.
3277
  *
@@ -3291,7 +3291,7 @@ trait AcceptanceTesterActions
3291
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPagesPage', func_get_args()));
3292
  }
3293
 
3294
-
3295
  /**
3296
  * [!] Method is generated. Documentation taken from corresponding module.
3297
  *
@@ -3334,7 +3334,7 @@ trait AcceptanceTesterActions
3334
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginDeactivated', func_get_args()));
3335
  }
3336
 
3337
-
3338
  /**
3339
  * [!] Method is generated. Documentation taken from corresponding module.
3340
  *
@@ -3377,7 +3377,7 @@ trait AcceptanceTesterActions
3377
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginInstalled', func_get_args()));
3378
  }
3379
 
3380
-
3381
  /**
3382
  * [!] Method is generated. Documentation taken from corresponding module.
3383
  *
@@ -3420,7 +3420,7 @@ trait AcceptanceTesterActions
3420
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginActivated', func_get_args()));
3421
  }
3422
 
3423
-
3424
  /**
3425
  * [!] Method is generated. Documentation taken from corresponding module.
3426
  *
@@ -3463,7 +3463,7 @@ trait AcceptanceTesterActions
3463
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeePluginInstalled', func_get_args()));
3464
  }
3465
 
3466
-
3467
  /**
3468
  * [!] Method is generated. Documentation taken from corresponding module.
3469
  *
@@ -3508,7 +3508,7 @@ trait AcceptanceTesterActions
3508
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeErrorMessage', func_get_args()));
3509
  }
3510
 
3511
-
3512
  /**
3513
  * [!] Method is generated. Documentation taken from corresponding module.
3514
  *
@@ -3547,7 +3547,7 @@ trait AcceptanceTesterActions
3547
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeWpDiePage', func_get_args()));
3548
  }
3549
 
3550
-
3551
  /**
3552
  * [!] Method is generated. Documentation taken from corresponding module.
3553
  *
@@ -3592,7 +3592,7 @@ trait AcceptanceTesterActions
3592
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeMessage', func_get_args()));
3593
  }
3594
 
3595
-
3596
  /**
3597
  * [!] Method is generated. Documentation taken from corresponding module.
3598
  *
@@ -3615,7 +3615,7 @@ trait AcceptanceTesterActions
3615
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabWordPressTestCookie', func_get_args()));
3616
  }
3617
 
3618
-
3619
  /**
3620
  * [!] Method is generated. Documentation taken from corresponding module.
3621
  *
@@ -3638,7 +3638,7 @@ trait AcceptanceTesterActions
3638
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnAdminPage', func_get_args()));
3639
  }
3640
 
3641
-
3642
  /**
3643
  * [!] Method is generated. Documentation taken from corresponding module.
3644
  *
@@ -3658,7 +3658,7 @@ trait AcceptanceTesterActions
3658
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnAdminAjaxPage', func_get_args()));
3659
  }
3660
 
3661
-
3662
  /**
3663
  * [!] Method is generated. Documentation taken from corresponding module.
3664
  *
@@ -3677,7 +3677,7 @@ trait AcceptanceTesterActions
3677
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnCronPage', func_get_args()));
3678
  }
3679
 
3680
-
3681
  /**
3682
  * [!] Method is generated. Documentation taken from corresponding module.
3683
  *
12
  */
13
  abstract protected function getScenario();
14
 
15
+
16
  /**
17
  * [!] Method is generated. Documentation taken from corresponding module.
18
  *
37
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loginAsAdmin', func_get_args()));
38
  }
39
 
40
+
41
  /**
42
  * [!] Method is generated. Documentation taken from corresponding module.
43
  *
66
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loginAs', func_get_args()));
67
  }
68
 
69
+
70
  /**
71
  * [!] Method is generated. Documentation taken from corresponding module.
72
  *
88
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookiesWithPattern', func_get_args()));
89
  }
90
 
91
+
92
  /**
93
  * [!] Method is generated. Documentation taken from corresponding module.
94
  *
108
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForJqueryAjax', func_get_args()));
109
  }
110
 
111
+
112
  /**
113
  * [!] Method is generated. Documentation taken from corresponding module.
114
  *
126
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFullUrl', func_get_args()));
127
  }
128
 
129
+
130
  /**
131
  * [!] Method is generated. Documentation taken from corresponding module.
132
  *
153
  return $this->getScenario()->runStep(new \Codeception\Step\Action('deactivatePlugin', func_get_args()));
154
  }
155
 
156
+
157
  /**
158
  * [!] Method is generated. Documentation taken from corresponding module.
159
  *
180
  return $this->getScenario()->runStep(new \Codeception\Step\Action('activatePlugin', func_get_args()));
181
  }
182
 
183
+
184
  /**
185
  * [!] Method is generated. Documentation taken from corresponding module.
186
  *
193
  return $this->getScenario()->runStep(new \Codeception\Step\Action('debugWebDriverLogs', func_get_args()));
194
  }
195
 
196
+
197
  /**
198
  * [!] Method is generated. Documentation taken from corresponding module.
199
  *
221
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnSubdomain', func_get_args()));
222
  }
223
 
224
+
225
  /**
226
  * [!] Method is generated. Documentation taken from corresponding module.
227
  *
243
  return $this->getScenario()->runStep(new \Codeception\Step\Action('makeScreenshot', func_get_args()));
244
  }
245
 
246
+
247
  /**
248
  * [!] Method is generated. Documentation taken from corresponding module.
249
  *
265
  return $this->getScenario()->runStep(new \Codeception\Step\Action('makeHtmlSnapshot', func_get_args()));
266
  }
267
 
268
+
269
  /**
270
  * [!] Method is generated. Documentation taken from corresponding module.
271
  *
285
  return $this->getScenario()->runStep(new \Codeception\Step\Action('resizeWindow', func_get_args()));
286
  }
287
 
288
+
289
  /**
290
  * [!] Method is generated. Documentation taken from corresponding module.
291
  *
328
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCookie', func_get_args()));
329
  }
330
 
331
+
332
  /**
333
  * [!] Method is generated. Documentation taken from corresponding module.
334
  *
361
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCookie', func_get_args()));
362
  }
363
 
364
+
365
  /**
366
  * [!] Method is generated. Documentation taken from corresponding module.
367
  *
385
  return $this->getScenario()->runStep(new \Codeception\Step\Action('setCookie', func_get_args()));
386
  }
387
 
388
+
389
  /**
390
  * [!] Method is generated. Documentation taken from corresponding module.
391
  *
402
  return $this->getScenario()->runStep(new \Codeception\Step\Action('resetCookie', func_get_args()));
403
  }
404
 
405
+
406
  /**
407
  * [!] Method is generated. Documentation taken from corresponding module.
408
  *
419
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabCookie', func_get_args()));
420
  }
421
 
422
+
423
  /**
424
  * [!] Method is generated. Documentation taken from corresponding module.
425
  *
434
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabPageSource', func_get_args()));
435
  }
436
 
437
+
438
  /**
439
  * [!] Method is generated. Documentation taken from corresponding module.
440
  *
452
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnUrl', func_get_args()));
453
  }
454
 
455
+
456
  /**
457
  * [!] Method is generated. Documentation taken from corresponding module.
458
  *
473
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPage', func_get_args()));
474
  }
475
 
476
+
477
  /**
478
  * [!] Method is generated. Documentation taken from corresponding module.
479
  *
550
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('see', func_get_args()));
551
  }
552
 
553
+
554
  /**
555
  * [!] Method is generated. Documentation taken from corresponding module.
556
  *
623
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSee', func_get_args()));
624
  }
625
 
626
+
627
  /**
628
  * [!] Method is generated. Documentation taken from corresponding module.
629
  *
660
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInSource', func_get_args()));
661
  }
662
 
663
+
664
  /**
665
  * [!] Method is generated. Documentation taken from corresponding module.
666
  *
697
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInSource', func_get_args()));
698
  }
699
 
700
+
701
  /**
702
  * [!] Method is generated. Documentation taken from corresponding module.
703
  *
732
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPageSource', func_get_args()));
733
  }
734
 
735
+
736
  /**
737
  * [!] Method is generated. Documentation taken from corresponding module.
738
  *
757
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInPageSource', func_get_args()));
758
  }
759
 
760
+
761
  /**
762
  * [!] Method is generated. Documentation taken from corresponding module.
763
  *
796
  return $this->getScenario()->runStep(new \Codeception\Step\Action('click', func_get_args()));
797
  }
798
 
799
+
800
  /**
801
  * [!] Method is generated. Documentation taken from corresponding module.
802
  *
839
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeLink', func_get_args()));
840
  }
841
 
842
+
843
  /**
844
  * [!] Method is generated. Documentation taken from corresponding module.
845
  *
882
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeLink', func_get_args()));
883
  }
884
 
885
+
886
  /**
887
  * [!] Method is generated. Documentation taken from corresponding module.
888
  *
925
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInCurrentUrl', func_get_args()));
926
  }
927
 
928
+
929
  /**
930
  * [!] Method is generated. Documentation taken from corresponding module.
931
  *
966
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlEquals', func_get_args()));
967
  }
968
 
969
+
970
  /**
971
  * [!] Method is generated. Documentation taken from corresponding module.
972
  *
1005
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCurrentUrlMatches', func_get_args()));
1006
  }
1007
 
1008
+
1009
  /**
1010
  * [!] Method is generated. Documentation taken from corresponding module.
1011
  *
1042
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInCurrentUrl', func_get_args()));
1043
  }
1044
 
1045
+
1046
  /**
1047
  * [!] Method is generated. Documentation taken from corresponding module.
1048
  *
1083
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlEquals', func_get_args()));
1084
  }
1085
 
1086
+
1087
  /**
1088
  * [!] Method is generated. Documentation taken from corresponding module.
1089
  *
1122
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCurrentUrlMatches', func_get_args()));
1123
  }
1124
 
1125
+
1126
  /**
1127
  * [!] Method is generated. Documentation taken from corresponding module.
1128
  *
1145
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabFromCurrentUrl', func_get_args()));
1146
  }
1147
 
1148
+
1149
  /**
1150
  * [!] Method is generated. Documentation taken from corresponding module.
1151
  *
1186
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeCheckboxIsChecked', func_get_args()));
1187
  }
1188
 
1189
+
1190
  /**
1191
  * [!] Method is generated. Documentation taken from corresponding module.
1192
  *
1225
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeCheckboxIsChecked', func_get_args()));
1226
  }
1227
 
1228
+
1229
  /**
1230
  * [!] Method is generated. Documentation taken from corresponding module.
1231
  *
1276
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInField', func_get_args()));
1277
  }
1278
 
1279
+
1280
  /**
1281
  * [!] Method is generated. Documentation taken from corresponding module.
1282
  *
1327
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInField', func_get_args()));
1328
  }
1329
 
1330
+
1331
  /**
1332
  * [!] Method is generated. Documentation taken from corresponding module.
1333
  *
1464
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInFormFields', func_get_args()));
1465
  }
1466
 
1467
+
1468
  /**
1469
  * [!] Method is generated. Documentation taken from corresponding module.
1470
  *
1561
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInFormFields', func_get_args()));
1562
  }
1563
 
1564
+
1565
  /**
1566
  * [!] Method is generated. Documentation taken from corresponding module.
1567
  *
1600
  return $this->getScenario()->runStep(new \Codeception\Step\Action('selectOption', func_get_args()));
1601
  }
1602
 
1603
+
1604
  /**
1605
  * [!] Method is generated. Documentation taken from corresponding module.
1606
  *
1614
  return $this->getScenario()->runStep(new \Codeception\Step\Action('unselectOption', func_get_args()));
1615
  }
1616
 
1617
+
1618
  /**
1619
  * [!] Method is generated. Documentation taken from corresponding module.
1620
  *
1633
  return $this->getScenario()->runStep(new \Codeception\Step\Action('checkOption', func_get_args()));
1634
  }
1635
 
1636
+
1637
  /**
1638
  * [!] Method is generated. Documentation taken from corresponding module.
1639
  *
1652
  return $this->getScenario()->runStep(new \Codeception\Step\Action('uncheckOption', func_get_args()));
1653
  }
1654
 
1655
+
1656
  /**
1657
  * [!] Method is generated. Documentation taken from corresponding module.
1658
  *
1673
  return $this->getScenario()->runStep(new \Codeception\Step\Action('fillField', func_get_args()));
1674
  }
1675
 
1676
+
1677
  /**
1678
  * [!] Method is generated. Documentation taken from corresponding module.
1679
  *
1691
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clearField', func_get_args()));
1692
  }
1693
 
1694
+
1695
  /**
1696
  * [!] Method is generated. Documentation taken from corresponding module.
1697
  *
1712
  return $this->getScenario()->runStep(new \Codeception\Step\Action('attachFile', func_get_args()));
1713
  }
1714
 
1715
+
1716
  /**
1717
  * [!] Method is generated. Documentation taken from corresponding module.
1718
  *
1737
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabTextFrom', func_get_args()));
1738
  }
1739
 
1740
+
1741
  /**
1742
  * [!] Method is generated. Documentation taken from corresponding module.
1743
  *
1761
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabAttributeFrom', func_get_args()));
1762
  }
1763
 
1764
+
1765
  /**
1766
  * [!] Method is generated. Documentation taken from corresponding module.
1767
  *
1786
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabValueFrom', func_get_args()));
1787
  }
1788
 
1789
+
1790
  /**
1791
  * [!] Method is generated. Documentation taken from corresponding module.
1792
  *
1818
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabMultiple', func_get_args()));
1819
  }
1820
 
1821
+
1822
  /**
1823
  * [!] Method is generated. Documentation taken from corresponding module.
1824
  *
1873
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElement', func_get_args()));
1874
  }
1875
 
1876
+
1877
  /**
1878
  * [!] Method is generated. Documentation taken from corresponding module.
1879
  *
1920
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElement', func_get_args()));
1921
  }
1922
 
1923
+
1924
  /**
1925
  * [!] Method is generated. Documentation taken from corresponding module.
1926
  *
1959
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeElementInDOM', func_get_args()));
1960
  }
1961
 
1962
+
1963
  /**
1964
  * [!] Method is generated. Documentation taken from corresponding module.
1965
  *
1986
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeElementInDOM', func_get_args()));
1987
  }
1988
 
1989
+
1990
  /**
1991
  * [!] Method is generated. Documentation taken from corresponding module.
1992
  *
2025
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElements', func_get_args()));
2026
  }
2027
 
2028
+
2029
  /**
2030
  * [!] Method is generated. Documentation taken from corresponding module.
2031
  *
2046
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeNumberOfElementsInDOM', func_get_args()));
2047
  }
2048
 
2049
+
2050
  /**
2051
  * [!] Method is generated. Documentation taken from corresponding module.
2052
  *
2089
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeOptionIsSelected', func_get_args()));
2090
  }
2091
 
2092
+
2093
  /**
2094
  * [!] Method is generated. Documentation taken from corresponding module.
2095
  *
2132
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeOptionIsSelected', func_get_args()));
2133
  }
2134
 
2135
+
2136
  /**
2137
  * [!] Method is generated. Documentation taken from corresponding module.
2138
  *
2173
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInTitle', func_get_args()));
2174
  }
2175
 
2176
+
2177
  /**
2178
  * [!] Method is generated. Documentation taken from corresponding module.
2179
  *
2202
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInTitle', func_get_args()));
2203
  }
2204
 
2205
+
2206
  /**
2207
  * [!] Method is generated. Documentation taken from corresponding module.
2208
  *
2215
  return $this->getScenario()->runStep(new \Codeception\Step\Action('acceptPopup', func_get_args()));
2216
  }
2217
 
2218
+
2219
  /**
2220
  * [!] Method is generated. Documentation taken from corresponding module.
2221
  *
2226
  return $this->getScenario()->runStep(new \Codeception\Step\Action('cancelPopup', func_get_args()));
2227
  }
2228
 
2229
+
2230
  /**
2231
  * [!] Method is generated. Documentation taken from corresponding module.
2232
  *
2257
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeInPopup', func_get_args()));
2258
  }
2259
 
2260
+
2261
  /**
2262
  * [!] Method is generated. Documentation taken from corresponding module.
2263
  *
2288
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeeInPopup', func_get_args()));
2289
  }
2290
 
2291
+
2292
  /**
2293
  * [!] Method is generated. Documentation taken from corresponding module.
2294
  *
2303
  return $this->getScenario()->runStep(new \Codeception\Step\Action('typeInPopup', func_get_args()));
2304
  }
2305
 
2306
+
2307
  /**
2308
  * [!] Method is generated. Documentation taken from corresponding module.
2309
  *
2314
  return $this->getScenario()->runStep(new \Codeception\Step\Action('reloadPage', func_get_args()));
2315
  }
2316
 
2317
+
2318
  /**
2319
  * [!] Method is generated. Documentation taken from corresponding module.
2320
  *
2325
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveBack', func_get_args()));
2326
  }
2327
 
2328
+
2329
  /**
2330
  * [!] Method is generated. Documentation taken from corresponding module.
2331
  *
2336
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveForward', func_get_args()));
2337
  }
2338
 
2339
+
2340
  /**
2341
  * [!] Method is generated. Documentation taken from corresponding module.
2342
  *
2503
  return $this->getScenario()->runStep(new \Codeception\Step\Action('submitForm', func_get_args()));
2504
  }
2505
 
2506
+
2507
  /**
2508
  * [!] Method is generated. Documentation taken from corresponding module.
2509
  *
2530
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementChange', func_get_args()));
2531
  }
2532
 
2533
+
2534
  /**
2535
  * [!] Method is generated. Documentation taken from corresponding module.
2536
  *
2553
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElement', func_get_args()));
2554
  }
2555
 
2556
+
2557
  /**
2558
  * [!] Method is generated. Documentation taken from corresponding module.
2559
  *
2576
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementVisible', func_get_args()));
2577
  }
2578
 
2579
+
2580
  /**
2581
  * [!] Method is generated. Documentation taken from corresponding module.
2582
  *
2598
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementNotVisible', func_get_args()));
2599
  }
2600
 
2601
+
2602
  /**
2603
  * [!] Method is generated. Documentation taken from corresponding module.
2604
  *
2621
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForElementClickable', func_get_args()));
2622
  }
2623
 
2624
+
2625
  /**
2626
  * [!] Method is generated. Documentation taken from corresponding module.
2627
  *
2648
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForText', func_get_args()));
2649
  }
2650
 
2651
+
2652
  /**
2653
  * [!] Method is generated. Documentation taken from corresponding module.
2654
  *
2662
  return $this->getScenario()->runStep(new \Codeception\Step\Action('wait', func_get_args()));
2663
  }
2664
 
2665
+
2666
  /**
2667
  * [!] Method is generated. Documentation taken from corresponding module.
2668
  *
2687
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeInSelenium', func_get_args()));
2688
  }
2689
 
2690
+
2691
  /**
2692
  * [!] Method is generated. Documentation taken from corresponding module.
2693
  *
2731
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToWindow', func_get_args()));
2732
  }
2733
 
2734
+
2735
  /**
2736
  * [!] Method is generated. Documentation taken from corresponding module.
2737
  *
2761
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToIFrame', func_get_args()));
2762
  }
2763
 
2764
+
2765
  /**
2766
  * [!] Method is generated. Documentation taken from corresponding module.
2767
  *
2783
  return $this->getScenario()->runStep(new \Codeception\Step\Action('waitForJS', func_get_args()));
2784
  }
2785
 
2786
+
2787
  /**
2788
  * [!] Method is generated. Documentation taken from corresponding module.
2789
  *
2809
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeJS', func_get_args()));
2810
  }
2811
 
2812
+
2813
  /**
2814
  * [!] Method is generated. Documentation taken from corresponding module.
2815
  *
2835
  return $this->getScenario()->runStep(new \Codeception\Step\Action('executeAsyncJS', func_get_args()));
2836
  }
2837
 
2838
+
2839
  /**
2840
  * [!] Method is generated. Documentation taken from corresponding module.
2841
  *
2846
  return $this->getScenario()->runStep(new \Codeception\Step\Action('maximizeWindow', func_get_args()));
2847
  }
2848
 
2849
+
2850
  /**
2851
  * [!] Method is generated. Documentation taken from corresponding module.
2852
  *
2866
  return $this->getScenario()->runStep(new \Codeception\Step\Action('dragAndDrop', func_get_args()));
2867
  }
2868
 
2869
+
2870
  /**
2871
  * [!] Method is generated. Documentation taken from corresponding module.
2872
  *
2895
  return $this->getScenario()->runStep(new \Codeception\Step\Action('moveMouseOver', func_get_args()));
2896
  }
2897
 
2898
+
2899
  /**
2900
  * [!] Method is generated. Documentation taken from corresponding module.
2901
  *
2924
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clickWithLeftButton', func_get_args()));
2925
  }
2926
 
2927
+
2928
  /**
2929
  * [!] Method is generated. Documentation taken from corresponding module.
2930
  *
2953
  return $this->getScenario()->runStep(new \Codeception\Step\Action('clickWithRightButton', func_get_args()));
2954
  }
2955
 
2956
+
2957
  /**
2958
  * [!] Method is generated. Documentation taken from corresponding module.
2959
  *
2967
  return $this->getScenario()->runStep(new \Codeception\Step\Action('doubleClick', func_get_args()));
2968
  }
2969
 
2970
+
2971
  /**
2972
  * [!] Method is generated. Documentation taken from corresponding module.
2973
  *
2996
  return $this->getScenario()->runStep(new \Codeception\Step\Action('pressKey', func_get_args()));
2997
  }
2998
 
2999
+
3000
  /**
3001
  * [!] Method is generated. Documentation taken from corresponding module.
3002
  *
3019
  return $this->getScenario()->runStep(new \Codeception\Step\Action('appendField', func_get_args()));
3020
  }
3021
 
3022
+
3023
  /**
3024
  * [!] Method is generated. Documentation taken from corresponding module.
3025
  *
3057
  return $this->getScenario()->runStep(new \Codeception\Step\Action('saveSessionSnapshot', func_get_args()));
3058
  }
3059
 
3060
+
3061
  /**
3062
  * [!] Method is generated. Documentation taken from corresponding module.
3063
  *
3074
  return $this->getScenario()->runStep(new \Codeception\Step\Action('loadSessionSnapshot', func_get_args()));
3075
  }
3076
 
3077
+
3078
  /**
3079
  * [!] Method is generated. Documentation taken from corresponding module.
3080
  *
3090
  return $this->getScenario()->runStep(new \Codeception\Step\Action('deleteSessionSnapshot', func_get_args()));
3091
  }
3092
 
3093
+
3094
  /**
3095
  * [!] Method is generated. Documentation taken from corresponding module.
3096
  *
3113
  return $this->getScenario()->runStep(new \Codeception\Step\Action('scrollTo', func_get_args()));
3114
  }
3115
 
3116
+
3117
  /**
3118
  * [!] Method is generated. Documentation taken from corresponding module.
3119
  *
3134
  return $this->getScenario()->runStep(new \Codeception\Step\Action('openNewTab', func_get_args()));
3135
  }
3136
 
3137
+
3138
  /**
3139
  * [!] Method is generated. Documentation taken from corresponding module.
3140
  *
3152
  return $this->getScenario()->runStep(new \Codeception\Step\Action('closeTab', func_get_args()));
3153
  }
3154
 
3155
+
3156
  /**
3157
  * [!] Method is generated. Documentation taken from corresponding module.
3158
  *
3176
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToNextTab', func_get_args()));
3177
  }
3178
 
3179
+
3180
  /**
3181
  * [!] Method is generated. Documentation taken from corresponding module.
3182
  *
3200
  return $this->getScenario()->runStep(new \Codeception\Step\Action('switchToPreviousTab', func_get_args()));
3201
  }
3202
 
3203
+
3204
  /**
3205
  * [!] Method is generated. Documentation taken from corresponding module.
3206
  *
3251
  return $this->getScenario()->runStep(new \Codeception\Step\Action('performOn', func_get_args()));
3252
  }
3253
 
3254
+
3255
  /**
3256
  * [!] Method is generated. Documentation taken from corresponding module.
3257
  *
3271
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPluginsPage', func_get_args()));
3272
  }
3273
 
3274
+
3275
  /**
3276
  * [!] Method is generated. Documentation taken from corresponding module.
3277
  *
3291
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnPagesPage', func_get_args()));
3292
  }
3293
 
3294
+
3295
  /**
3296
  * [!] Method is generated. Documentation taken from corresponding module.
3297
  *
3334
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginDeactivated', func_get_args()));
3335
  }
3336
 
3337
+
3338
  /**
3339
  * [!] Method is generated. Documentation taken from corresponding module.
3340
  *
3377
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginInstalled', func_get_args()));
3378
  }
3379
 
3380
+
3381
  /**
3382
  * [!] Method is generated. Documentation taken from corresponding module.
3383
  *
3420
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seePluginActivated', func_get_args()));
3421
  }
3422
 
3423
+
3424
  /**
3425
  * [!] Method is generated. Documentation taken from corresponding module.
3426
  *
3463
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('dontSeePluginInstalled', func_get_args()));
3464
  }
3465
 
3466
+
3467
  /**
3468
  * [!] Method is generated. Documentation taken from corresponding module.
3469
  *
3508
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeErrorMessage', func_get_args()));
3509
  }
3510
 
3511
+
3512
  /**
3513
  * [!] Method is generated. Documentation taken from corresponding module.
3514
  *
3547
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeWpDiePage', func_get_args()));
3548
  }
3549
 
3550
+
3551
  /**
3552
  * [!] Method is generated. Documentation taken from corresponding module.
3553
  *
3592
  return $this->getScenario()->runStep(new \Codeception\Step\ConditionalAssertion('seeMessage', func_get_args()));
3593
  }
3594
 
3595
+
3596
  /**
3597
  * [!] Method is generated. Documentation taken from corresponding module.
3598
  *
3615
  return $this->getScenario()->runStep(new \Codeception\Step\Action('grabWordPressTestCookie', func_get_args()));
3616
  }
3617
 
3618
+
3619
  /**
3620
  * [!] Method is generated. Documentation taken from corresponding module.
3621
  *
3638
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnAdminPage', func_get_args()));
3639
  }
3640
 
3641
+
3642
  /**
3643
  * [!] Method is generated. Documentation taken from corresponding module.
3644
  *
3658
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnAdminAjaxPage', func_get_args()));
3659
  }
3660
 
3661
+
3662
  /**
3663
  * [!] Method is generated. Documentation taken from corresponding module.
3664
  *
3677
  return $this->getScenario()->runStep(new \Codeception\Step\Condition('amOnCronPage', func_get_args()));
3678
  }
3679
 
3680
+
3681
  /**
3682
  * [!] Method is generated. Documentation taken from corresponding module.
3683
  *