123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /*
- *+------------------------------------------------------------------------+
- *| Licensed Materials - Property of IBM
- *| IBM Cognos Products: Viewer
- *| (C) Copyright IBM Corp. 2001, 2013
- *|
- *| US Government Users Restricted Rights - Use, duplication or
- *| disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *|
- *+------------------------------------------------------------------------+
- */
- dojo.provide("FaultDialog");
- dojo.declare("FaultDialog", IFaultDialog, {
- m_soapFault: null,
- m_errorMessage : null,
- m_oCV: null,
- constructor: function(oCV) {
- this.m_oCV = oCV;
- },
- show: function(soapFault) {
- this.m_soapFault = soapFault;
- this.m_oCV.m_resizeReady = true;
- this.renderInlineDialog();
- this.m_oCV.getViewerWidget().setErrorDlg( this );
- },
- handleUnknownHTMLResponse: function(responseText) {
- if (responseText) {
- var htmlWindow = window.open("","",'height=400,width=500');
- if(htmlWindow != null) {
- htmlWindow.document.write(responseText);
- }
- }
- },
- canRetryRequest: function() {
- var canRetry = true;
- var canRetryNode = XMLHelper_FindChildrenByTagName(this.m_soapFault, "allowRetry", true);
- if(canRetryNode.length > 0) {
- canRetry = ( XMLHelper_GetText(canRetryNode[0], false) === "true" );
- }
- return canRetry;
- },
- isWarningMessage: function() {
- return false;
- },
- getButtons: function() {
- var buttons = [{
- label: RV_RES.IDS_JS_OK,
- action: dojo.hitch( this, this.ok )
- }];
- if( this.canRetryRequest() ) {
- buttons.push({
- label: RV_RES.IDS_JS_RETRY,
- action: dojo.hitch( this, this.retry )
- });
- }
- return buttons;
- },
- renderInlineDialog: function() {
- var oPayload = {
- "type": this.isWarningMessage() ? "warning" : "error",
- "message": this.getErrorMessage(),
- "buttons": this.getButtons()
- };
- var details = this.getDetails();
- if (details && details.length>0) {
- oPayload.details = details;
- }
- this.m_oCV.getViewerWidget().fireEvent("com.ibm.bux.widget.notification", null, oPayload);
- },
- setErrorMessage: function(errorMessage) {
- this.m_errorMessage = errorMessage;
- },
- getErrorMessage: function() {
- if(this.m_errorMessage == null) {
- var errorMessageNodes = XMLHelper_FindChildrenByTagName(this.m_soapFault, "message", true);
- if(errorMessageNodes.length > 0) {
- var messageStringNode = XMLHelper_FindChildByTagName(errorMessageNodes[0], "messageString", false);
- this.checkAndSetErrorMessage( XMLHelper_GetText(messageStringNode, false) );
- }
- }
- return this.m_errorMessage;
- },
- checkAndSetErrorMessage: function( errMsg ) {
- this.m_detailMessageStartIndex = 1;
- if( errMsg.indexOf('RSV-BBP-0038') == 0 ) {
- errMsg = RV_RES.IDS_CONV_CANCELED_ERROR;
- this.m_detailMessageStartIndex = 0;
- }
- this.m_errorMessage = errMsg;
- },
- getDetails: function() {
- var detailsString = "";
- var errorMessageNodes = XMLHelper_FindChildrenByTagName(this.m_soapFault, "message", true);
- if(errorMessageNodes.length > 0)
- {
- if (typeof this.m_detailMessageStartIndex === "undefined" || this.m_detailMessageStartIndex===null) {
- this.m_detailMessageStartIndex = 1;
- }
- for(var messageIndex = this.m_detailMessageStartIndex; messageIndex < errorMessageNodes.length; ++messageIndex) {
- var messageStringNode = XMLHelper_FindChildByTagName(errorMessageNodes[messageIndex], "messageString", false);
- detailsString += XMLHelper_GetText(messageStringNode, false) + "\n";
- }
- }
- return detailsString;
- },
- retry: function() {
- var retryEntry = this.m_oCV.getRetryDispatcherEntry();
- this.hide();
- if (retryEntry) {
- retryEntry.retryRequest();
- }
- else {
- // if we don't have a dipstherEntry, the fault must of happened right away.
- // build and send a new request using the original form fields from the widget
- var originalFormFields = this.m_oCV.getViewerWidget().getOriginalFormFields();
- if (originalFormFields && (originalFormFields.get("b_action") == "cvx" || originalFormFields.get("b_action") == "cvx.high")) {
- originalFormFields.add("b_action", "cognosViewer");
- }
- this.m_oCV.executeAction("RetryRequest", originalFormFields);
- }
- },
- ok: function() {
- var retryEntry = this.m_oCV.getRetryDispatcherEntry();
- this.hide();
- if (retryEntry) {
- retryEntry.onCloseErrorDlg();
- }
- },
- hide: function() {
- this.m_oCV.getViewerWidget().fireEvent("com.ibm.bux.widget.notification", null, {remove:1});
- this.m_oCV.getViewerWidget().setErrorDlg(null);
- this.m_oCV.setRetryDispatcherEntry(null);
- }
- });
- function buxErrorPage_toggleErrorDetails(event, cvId, htmlNode) {
- // left mouse, enter or space bar
- if ((event.button == 0 && (event.keyCode == "0" || typeof event.keyCode == "undefined")) || event.keyCode == "32" || event.keyCode == "13") {
- var buxErrorPageDetailContentOuter = document.getElementById("buxErrorPageDetailContentOuter" + cvId);
- var buxErrorPageDetailsDiv = document.getElementById("buxErrorPageDetails" + cvId);
- var buxTitlePaneTitleDiv = document.getElementById("titlePaneTitle" + cvId);
- var bShowDetails = (buxErrorPageDetailsDiv.style.display == "none");
- dojo.removeClass(buxErrorPageDetailContentOuter, bShowDetails ? 'dijitTitlePaneContentOuterClosed' : 'dijitTitlePaneContentOuterOpen');
- dojo.addClass(buxErrorPageDetailContentOuter, bShowDetails ? 'dijitTitlePaneContentOuterOpen' : 'dijitTitlePaneContentOuterClosed');
- dojo.removeClass(buxTitlePaneTitleDiv, bShowDetails ? "dijitClose" : "dijitOpen");
- dojo.addClass(buxTitlePaneTitleDiv, bShowDetails ? "dijitOpen" : "dijitClose");
- buxErrorPageDetailsDiv.style.display = bShowDetails ? "" : "none";
- }
- }
|