Files
CHIEFSOFT\ameye df3a033196 first commit
2024-06-08 17:09:23 -04:00

100 lines
2.5 KiB
JavaScript

/**
* @defgroup js_controllers_grid_users_reviewer
*/
/**
* @file js/controllers/grid/users/reviewer/ReadReviewHandler.js
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2000-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class ReadReviewHandler
* @ingroup js_controllers_grid_users_reviewer
*
* @brief Handle the advanced reviewer search tab in the add reviewer modal.
*/
(function($) {
/**
* @constructor
*
* @extends $.pkp.controllers.form.AjaxFormHandler
*
* @param {jQueryObject} $form the wrapped page element.
* @param {Object} options handler options.
*/
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler =
function($form, options) {
this.parent($form, options);
this.reviewCompleted_ = options.reviewCompleted;
// bind a handler to make sure that a review file has been uploaded.
$form.find('[id^=\'submitFormButton-\']').click(this.callbackWrapper(
this.reviewFilesRequired_));
};
$.pkp.classes.Helper.inherits(
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler,
$.pkp.controllers.form.AjaxFormHandler);
//
// Private methods.
//
/**
* Is the review completed.
* @private
* @type {boolean}
*/
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler.
prototype.reviewCompleted_ = false;
/**
* Internal callback called on form submit to ensure there are
* some review files uploaded.
* @private
* @param {HTMLElement} submitButton The submit button.
* @param {Event} event The event that triggered the
* submit button.
* @return {boolean} true.
*/
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler.
prototype.reviewFilesRequired_ = function(submitButton, event) {
if (!this.reviewCompleted_ && $('#readReviewAttachmentsGridContainer').
find('tbody.empty:visible').length == 1) {
// There's nothing in the files grid; don't submit the form
this.showWarning_();
return false;
} else {
// There's something in the files grid;
this.hideWarning_();
}
return true;
};
/**
* Hide the "no files" warning.
* @private
*/
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler.
prototype.hideWarning_ = function() {
this.getHtmlElement().find('#noFilesWarning').hide(250);
};
/**
* Show the "no files" warning.
* @private
*/
$.pkp.controllers.grid.users.reviewer.ReadReviewHandler.
prototype.showWarning_ = function() {
this.getHtmlElement().find('#noFilesWarning').show(250);
};
}(jQuery));