first commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* @file js/classes/linkAction/AjaxRequest.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 AjaxRequest
|
||||
* @ingroup js_classes_linkAction
|
||||
*
|
||||
* @brief AJAX link action request.
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*
|
||||
* @extends $.pkp.classes.linkAction.LinkActionRequest
|
||||
*
|
||||
* @param {jQueryObject} $linkActionElement The element the link
|
||||
* action was attached to.
|
||||
* @param {{
|
||||
* requestType: string,
|
||||
* data: PlainObject
|
||||
* }} options Configuration of the link action
|
||||
* request.
|
||||
*/
|
||||
$.pkp.classes.linkAction.AjaxRequest =
|
||||
function($linkActionElement, options) {
|
||||
|
||||
this.parent($linkActionElement, options);
|
||||
};
|
||||
$.pkp.classes.Helper.inherits(
|
||||
$.pkp.classes.linkAction.AjaxRequest,
|
||||
$.pkp.classes.linkAction.LinkActionRequest);
|
||||
|
||||
|
||||
//
|
||||
// Public methods
|
||||
//
|
||||
/**
|
||||
* @inheritDoc
|
||||
*/
|
||||
$.pkp.classes.linkAction.AjaxRequest.prototype.activate =
|
||||
function(element, event) {
|
||||
|
||||
var returnValue = /** @type {boolean} */ (
|
||||
this.parent('activate', element, event)),
|
||||
options = this.getOptions(),
|
||||
responseHandler = $.pkp.classes.Helper.curry(
|
||||
this.handleResponse, this);
|
||||
switch (options.requestType) {
|
||||
case 'get':
|
||||
$.getJSON(options.url, options.data, responseHandler);
|
||||
break;
|
||||
|
||||
case 'post':
|
||||
$.post(options.url, options.data, responseHandler, 'json');
|
||||
break;
|
||||
}
|
||||
return returnValue;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Handle the AJAX response.
|
||||
* @param {Object} jsonData The data returned by the server.
|
||||
*/
|
||||
$.pkp.classes.linkAction.AjaxRequest.prototype.handleResponse =
|
||||
function(jsonData) {
|
||||
|
||||
var $linkActionHandler = this.getLinkActionElement().data('pkp.handler');
|
||||
$linkActionHandler.handleJson(jsonData);
|
||||
this.finish();
|
||||
};
|
||||
|
||||
|
||||
}(jQuery));
|
||||
Reference in New Issue
Block a user