helpDocs.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. // Licensed Materials - Property of IBM
  2. // IBM Cognos Products: cclcore
  3. // (C) Copyright IBM Corp. 2005, 2013
  4. // US Government Users Restricted Rights – Use, duplication or disclosure restricted
  5. // by GSA ADP Schedule Contract with IBM Corp.
  6. var sDefaultLang = "en";
  7. var sDefaultFeaturesHelp = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=680,height=500";
  8. var sDefaultFeaturesQuickTours = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600";
  9. // A common API to fire up help documentation
  10. // @sProductLocale: the target product locale
  11. // @sStartupFile: the start up file
  12. // @sContext: the web context line
  13. // @sGateway: the gateway string
  14. function gotoHelp( sProductLocale, sStartupFile, sContext, sGateway )
  15. {
  16. var sURLStartToken = "../documentation/";
  17. if ( sGateway != null && sGateway != "" ) {
  18. sURLStartToken = sGateway + "/documentation/";
  19. }
  20. var sURLLangToken = sProductLocale;
  21. var sURLEndToken = "/" + sStartupFile;
  22. sURLEndToken += (sContext == "") ? ".html" : ".html?helpid=" + sContext;
  23. checkUrlExists (sURLStartToken,sURLLangToken,sURLEndToken,new Function ("url", "openHelp(url);"));
  24. }
  25. function openHelp (url)
  26. {
  27. helpWindow = window.open(url, "helpWindow", sDefaultFeaturesHelp);
  28. helpWindow.focus();
  29. }
  30. // A common API to fire up quick tours documentation
  31. // @sProductLocale: the target product locale
  32. // @sStartupFile: the start up file under tours folder
  33. // @sOptions: the options
  34. // Note: As WO-2163, the sStartupFile and sOptions arguments would be obsolete now.
  35. // For backward compatibility, just leave it as it was before.
  36. function gotoTours( sProductLocale, sStartupFile, sOptions )
  37. {
  38. var sURLStartToken = "../documentation/";
  39. var sURLLangToken = sProductLocale;
  40. var sURLEndToken = "/tours/" + "crntours.html?sStartupFile=" + sStartupFile;
  41. if ( sOptions != null && sOptions != "" ) {
  42. sURLEndToken += "&" + sOptions;
  43. }
  44. checkUrlExists (sURLStartToken,sURLLangToken,sURLEndToken,new Function ("url", "openTours(url);"));
  45. }
  46. function openTours (url)
  47. {
  48. var toursWindow = window.open(url, "toursWindow", sDefaultFeaturesQuickTours);
  49. toursWindow.focus();
  50. }
  51. // The following two APIs will help ReportStudio & CMM etc. for redirecting purpose.
  52. function initDocs()
  53. {
  54. var query = parseHash(window.location.href); // read URL for topic/section info
  55. var sLang = sDefaultLang;
  56. var sBook = "wig_cr_a"; // Drfault to "Get Started" documentation
  57. var sHelpID = "";
  58. var sCurrentTopic = "";
  59. var sStartupFile = ""; // when using crntours menu, pass the app info to highlight
  60. if( query['lang'] && (query['lang'] != "") ) {
  61. sLang = query['lang'];
  62. }
  63. if( query['book'] && (query['book'] != "") ) {
  64. sBook = query['book'];
  65. }
  66. if( query['helpid'] && (query['helpid'] != "") ) {
  67. sHelpID = query['helpid'];
  68. }
  69. if( query['sStartupFile'] && (query['sStartupFile'] != "") ) {
  70. sStartupFile = query['sStartupFile'];
  71. }
  72. var sCurrentTopicStartToken = "";
  73. var sCurrentTopicLangToken = sLang;
  74. var sCurrentTopicEndToken = "/" + sBook + ".html";
  75. if( sHelpID != "" ) {
  76. sCurrentTopicEndToken += "?helpid=" + sHelpID;
  77. }
  78. else if( sStartupFile != "" ) {
  79. sCurrentTopicEndToken += "?sStartupFile=" + sStartupFile;
  80. }
  81. // determine full path to html
  82. var sDirTopics = "";
  83. var sDirString = window.location.href.substring(0, window.location.href.indexOf('?') );
  84. var nPos = sDirString.lastIndexOf('/');
  85. sDirTopics = (nPos != -1) ? window.location.href.substring(0, nPos + 1) : "";
  86. sCurrentTopicStartToken = sDirTopics;
  87. checkUrlExists(sCurrentTopicStartToken, sCurrentTopicLangToken, sCurrentTopicEndToken, new Function ("url", "openDocs(url);"));
  88. }
  89. function openDocs (url)
  90. {
  91. window.location.href = url;
  92. }
  93. function parseHash(s)
  94. {
  95. var query = new Array();
  96. var nPos = s.indexOf("?");
  97. if (nPos != -1) {
  98. s = s.substring(nPos + 1, s.length);
  99. var sPair = "";
  100. while (s != "") {
  101. nPos = s.indexOf("&");
  102. if (nPos == -1) {
  103. sPair = s;
  104. s = "";
  105. }
  106. else {
  107. sPair = s.substring(0, nPos);
  108. s = s.substring(nPos + 1, s.length);
  109. }
  110. nPos = sPair.indexOf("=");
  111. if (nPos != -1) {
  112. query[sPair.substring(0, nPos)] = unescape(sPair.substring(nPos + 1, sPair.length));
  113. }
  114. }
  115. }
  116. return query;
  117. }
  118. function displayDefaultDocFolderNotExistingMessage()
  119. {
  120. var msg = "The documentation page for the default language '" + sDefaultLang + "' does not exist! Please contact your administrator for help.";
  121. alert(msg);
  122. }
  123. /*
  124. * The Function checks if the specified URL exists. If it exists then it runs the onSuccess function.
  125. * If it does not exist then it constructs the URL to the docs in the default language kit, if that exists
  126. * runs the onSuccess function.
  127. *
  128. * @URL is constructed from: URL = urlStartToken + urlSlangToken + urlEndToken;
  129. * @onSuccessOpen: Function that is run, on the event that the URL exists.
  130. *
  131. * @exception: If the default docs are not found, just display an English message to indicate
  132. * the documentation page for the specified language does not exist.
  133. * This should rarely occur.
  134. */
  135. function checkUrlExists (urlStartToken,urlSlangToken,urlEndToken,onSuccessOpen)
  136. {
  137. var url=urlStartToken + urlSlangToken + urlEndToken;
  138. xmlHttp = createXmlHttpObject();
  139. try {
  140. //On local machine in firefox: exception happens if uri doesnt exist.
  141. xmlHttp.open("GET",url,true);
  142. } catch (e) {
  143. if (urlSlangToken == sDefaultLang) {
  144. displayDefaultDocFolderNotExistingMessage();
  145. return;
  146. }
  147. checkUrlExists (urlStartToken,sDefaultLang,urlEndToken,onSuccessOpen);
  148. }
  149. xmlHttp.onreadystatechange = function () {
  150. if(xmlHttp.readyState == 4) {
  151. // Found
  152. if (xmlHttp.status == 200 || xmlHttp.status == 0) {
  153. if (onSuccessOpen == null) {
  154. return;
  155. }
  156. onSuccessOpen(url);
  157. }
  158. else {
  159. if(xmlHttp.status == 404) {
  160. if (urlSlangToken == sDefaultLang) {
  161. displayDefaultDocFolderNotExistingMessage();
  162. return;
  163. }
  164. checkUrlExists (urlStartToken,sDefaultLang,urlEndToken,onSuccessOpen);
  165. }
  166. else {
  167. alert("A http error occurs!");
  168. }
  169. }
  170. }
  171. }
  172. try {
  173. //On local machine in IE exception happens system resource not found.
  174. xmlHttp.send(null);
  175. }
  176. catch (e) {
  177. if (urlSlangToken == sDefaultLang) {
  178. displayDefaultDocFolderNotExistingMessage();
  179. return;
  180. }
  181. checkUrlExists (urlStartToken,sDefaultLang,urlEndToken,onSuccessOpen);
  182. }
  183. }
  184. function createXmlHttpObject()
  185. {
  186. var xmlHttp = false;
  187. // For IE
  188. if (window.ActiveXObject) {
  189. try {
  190. xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
  191. } catch (e) {
  192. xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
  193. }
  194. } else if(window.XMLHttpRequest) {
  195. //Non IE browsers that support XMLHttpRequest
  196. xmlHttp = new XMLHttpRequest();
  197. }
  198. return xmlHttp;
  199. }