messagedialog.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. // Licensed Materials - Property of IBM
  2. //
  3. // IBM Cognos Products: pps
  4. //
  5. // (C) Copyright IBM Corp. 2005, 2017
  6. //
  7. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  8. var MESSAGE_TYPE_INFO = 0;
  9. var MESSAGE_TYPE_SIMPLE = 1;
  10. var MESSAGE_TYPE_WARNING = 2;
  11. var MESSAGE_SIDE_PADDING = 40;
  12. var imagesLoaded = false;
  13. var infoImage = new Image();
  14. var warningImage = new Image();
  15. loadImages();
  16. function loadImages() {
  17. //pre-load images if they are available.
  18. if (topparent.getGlobal("virtualDirRoot")) {
  19. infoImage.src = topparent.getGlobal("virtualDirRoot") + "/ppwb/Icon/info.gif";
  20. warningImage.src = topparent.getGlobal("virtualDirRoot") + "/ppwb/Icon/warning.gif";
  21. imagesLoaded=true;
  22. }
  23. }
  24. var messageBlanket = null;
  25. function displayCommonMessage(text, type, button_texts, button_actions) {
  26. removeMessage();
  27. hideAllSelectBoxes();
  28. initBlanket();
  29. createMessage(text, type, button_texts, button_actions);
  30. positionMessage();
  31. }
  32. function initBlanket() {
  33. var windowWidth = document.body.offsetWidth;
  34. var windowHeight = document.body.offsetHeight;
  35. if (window.innerWidth) {
  36. windowWidth = window.innerWidth;
  37. windowHeight = window.innerHeight;
  38. }
  39. messageBlanket = document.createElement("DIV");
  40. messageBlanket.className = "commonMessageBlanket";
  41. messageBlanket.style.height = windowHeight - messageBlanket.offsetTop - 24;
  42. messageBlanket.style.width = windowWidth - 1;
  43. document.body.appendChild(messageBlanket);
  44. }
  45. function createMessage(text, type, button_texts, button_actions) {
  46. var message = document.createElement("DIV");
  47. message.className = "commonMessageContainer";
  48. message.id = "commonMessageInsert";
  49. /*********** Standard Message ************/
  50. var contentTable = document.createElement("TABLE");
  51. var contentTableBody = document.createElement("TBODY");
  52. contentTable.appendChild(contentTableBody);
  53. var contentRow = document.createElement("TR");
  54. contentTableBody.appendChild(contentRow);
  55. var textCell = document.createElement("TD");
  56. textCell.className = "commonMessageTextCell";
  57. if (type != MESSAGE_TYPE_SIMPLE) {
  58. var imgCell = document.createElement("TD");
  59. imgCell.className = "commonMessageImgCell";
  60. if (!imagesLoaded)
  61. loadImages();
  62. switch (type) {
  63. case MESSAGE_TYPE_INFO: insertIMGNode(imgCell, infoImage.src, "commonMessageImg", []); break;
  64. case MESSAGE_TYPE_WARNING: insertIMGNode(imgCell, warningImage.src, "commonMessageImg", []); break;
  65. }
  66. contentRow.appendChild(imgCell);
  67. }
  68. var texts = text.split("\n");
  69. for (var i = 0; i < texts.length; i++) {
  70. textCell.appendChild(document.createTextNode(texts[i]));
  71. textCell.appendChild(document.createElement("BR"));
  72. }
  73. contentRow.appendChild(textCell);
  74. message.appendChild(contentTable);
  75. /**************** OK/Cancel Buttons ************/
  76. if (button_texts.length) {
  77. var buttonDiv = document.createElement("DIV");
  78. buttonDiv.className = "commonMessageButtonDiv";
  79. for (var i = 0; i < button_texts.length; i++) {
  80. var button = document.createElement("SPAN");
  81. button.className = "commonMessageButtonSpan";
  82. button.appendChild(document.createTextNode(button_texts[i]));
  83. button.onclick = button_actions[i];
  84. button.onmouseover = new Function("this.className = 'commonMessageButtonSpanRollover';");
  85. button.onmouseout = new Function("this.className = 'commonMessageButtonSpan';");
  86. buttonDiv.appendChild(button);
  87. buttonDiv.appendChild(document.createTextNode(" "));
  88. }
  89. message.appendChild(buttonDiv);
  90. }
  91. messageBlanket.appendChild(message);
  92. }
  93. function positionMessage() {
  94. var windowWidth = document.body.offsetWidth;
  95. var windowHeight = document.body.offsetHeight;
  96. if (window.innerWidth) {
  97. windowWidth = window.innerWidth;
  98. windowHeight = window.innerHeight;
  99. }
  100. var message = document.getElementById("commonMessageInsert");
  101. if (message.offsetWidth > windowWidth - 2 * MESSAGE_SIDE_PADDING)
  102. message.style.width = windowWidth - 2 * MESSAGE_SIDE_PADDING;
  103. message.style.top = parseInt((windowHeight - message.offsetHeight)/2);
  104. message.style.left = parseInt((windowWidth - message.offsetWidth)/2);
  105. }
  106. function removeMessage() {
  107. showAllSelectBoxes();
  108. if (messageBlanket != null) {
  109. document.body.removeChild(messageBlanket);
  110. messageBlanket = null;
  111. }
  112. }
  113. function hideAllSelectBoxes() {
  114. hideAllElementsOfTag("select");
  115. if (topparent.getGlobal("MacGecko")) {
  116. //Specific elements to hide, so that the scroll bars don't stay visible on OSX
  117. hideElementById("sourceTreeDiv");
  118. }
  119. }
  120. function showAllSelectBoxes() {
  121. showAllElementsOfTag("select");
  122. if (topparent.getGlobal("MacGecko")) {
  123. //Specific elements to show for OSX
  124. showElementById("sourceTreeDiv");
  125. }
  126. }
  127. function hideAllElementsOfTag(tagName) {
  128. var elements = document.getElementsByTagName(tagName);
  129. for (var i = 0; i < elements.length; i++) {
  130. hideElement(elements[i], "tag" + elements[i].tagName + i);
  131. }
  132. }
  133. function hideElementById(id) {
  134. var element = document.getElementById(id);
  135. if (element)
  136. hideElement(element, "id" + element.id);
  137. }
  138. function showElementById(id) {
  139. var element = document.getElementById(id);
  140. if (element)
  141. showElement(element, "id" + element.id);
  142. }
  143. function hideElement(element, hideId) {
  144. //check for a previously create select imitator
  145. var imitator = document.getElementById("cMessageSelectImitator" + hideId);
  146. if (imitator)
  147. imitator.style.display = "";
  148. else {
  149. imitator = document.createElement("DIV");
  150. imitator.className = "commonMessageSelectImitator";
  151. imitator.id = "cMessageSelectImitator" + hideId;
  152. imitator.style.width = element.offsetWidth;
  153. // fix for FF/NS to prevent scroll-bars from appearing.
  154. if (navigator.appVersion.indexOf("MSIE")>0)
  155. imitator.style.height = element.offsetHeight;
  156. else
  157. imitator.style.height = element.offsetHeight - 3;
  158. element.parentNode.insertBefore(imitator, element);
  159. }
  160. element.setAttribute("oldStyle",element.style.display);
  161. element.style.display = "none";
  162. }
  163. function showAllElementsOfTag(tagName) {
  164. var elements = document.getElementsByTagName(tagName);
  165. for (var i = 0; i < elements.length; i++) {
  166. showElement(elements[i], "tag" + elements[i].tagName + i);
  167. }
  168. }
  169. function showElement(element, showId) {
  170. if (element.getAttribute("oldStyle") != null)
  171. element.style.display = element.getAttribute("oldStyle");
  172. var imitator = document.getElementById("cMessageSelectImitator" + showId);
  173. if (imitator)
  174. imitator.style.display = "none";
  175. }