Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- docway.Transfer.requestContentOperation = function(oObject, sCmd, sFormat, nPage, sPageModifier, oWindow)
- {
- //we used to "defer" the content operation here, and hit the UI to get tickets and an ajax payload.
- //now we do everything inline, because reentrant setTimeout blows everything up
- if (wsptIsNull(docway.TransferManager.getSharedControl()))
- {
- if (docway.TransferManager.MustHaveControl)
- {
- wspt.alertWarning("${transfer.js.operationdisallowed}");
- return;
- }
- oTransfer = new docway.BrowserTransfer();
- }
- else
- {
- oTransfer = new docway.Transfer();
- }
- //do all ticket-getting right here, because we need a centralized spot
- //to piggy-back onto the request
- var oRequestedOperation = {
- sCmd:sCmd
- ,sFormat:sFormat
- ,nPage:nPage
- ,sPageModifier:sPageModifier
- };
- var requestParams = {}
- Ext.applyIf(requestParams, oTransfer.prepareContentOperationHook(oObject, oRequestedOperation));
- Ext.applyIf(requestParams, oTransfer.prepareContentOperation(oObject, oRequestedOperation));
- //if (requestParams.keys.length === 0) return;
- //execute
- var url = wspt.getDhtmlClient().getDynamicResourceRoot() + 'raw/';
- var qs = wspt.getDhtmlClient().createQueryString();
- for (var key in requestParams)
- {
- qs.add(key, requestParams[key]);
- }
- var sJson = wspt.getDhtmlClient().executeSynchronousRequest('dwuiOverrideContentOperation', url, qs);
- if (wsptIsNull(sJson))
- {
- throw new Error('${transfer.js.getticketfailed}'); //where does this get caught
- }
- var oResponse = Ext.util.JSON.decode(sJson);
- //fix up oObject--which might need a full-blown ajax component stack to reproject
- oTransfer.executeContentOperation(oObject, oResponse, oWindow);
- };
- docway.Transfer.prototype.prepareContentOperationHook = function(oObject, op)
- //signal that content operation should be deferred, so the UI has a chance
- //to intercept and override how the operation happens
- //they can also modify the operation inline right here
- {
- //return request parameters to be added to query
- if (docway.CONTENTOPERATION_VIEW === op.sCmd)
- {
- //give UI a chance to override view operations
- op.sSystemID = oObject.getID();
- return op; //{ overrideRequest:true };
- }
- return null;
- };
- docway.Transfer.prototype.prepareContentOperation = function(oObject, op)
- {
- //all control-based transfer operations except CancelCheckout need a ticket
- if (docway.CONTENTOPERATION_CANCELCHECKOUT !== op.sCmd)
- {
- return { needTicket: true };
- }
- return null;
- }
- docway.BrowserTransfer.prototype.prepareContentOperation = function(oObject, op)
- {
- //which browser-based operations need a ticket?
- if (docway.CONTENTOPERATION_CANCELCHECKOUT !== op.sCmd)
- {
- return { needTicket: true };
- }
- return null;
- }
- docway.Transfer.prototype.executeContentOperation = function(oObject, oResponse, oWindow)
- {
- var op = oResponse.oActualOperation;
- var oTicket = oResponse.oTicket;
- try
- {
- switch (op.sCmd)
- {
- case docway.CONTENTOPERATION_VIEW:
- this.view(oObject, oTicket, oWindow);
- break;
- case docway.CONTENTOPERATION_VIEWRENDITION:
- this.viewRendition(oObject, oTicket, op.sFormat, op.nPage, op.sPageModifier, oWindow);
- break;
- case docway.CONTENTOPERATION_EDIT:
- this.edit(oObject, oTicket, oWindow);
- break;
- case docway.CONTENTOPERATION_EXPORT:
- this.exportContent(oObject, oWindow);
- break;
- case docway.CONTENTOPERATION_CHECKOUT:
- this.checkout(oObject, oTicket, oWindow);
- break;
- case docway.CONTENTOPERATION_CANCELCHECKOUT:
- this.cancelCheckout(oObject);
- break;
- default:
- throw new Error(wspt.formatString('${transfer.js.executecontentop}', [ op.sCmd ]));
- }
- }
- catch (e)
- {
- if(wspt.getDhtmlClient().getDisableExceptionLogging())
- {
- throw e;
- }
- wspt.alertError(wsptGetErrorMessage(e));
- }
- };
Add Comment
Please, Sign In to add comment