PageRenderTime 41ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/components/core/jira.long.js

https://gitlab.com/src-run-scripts/systems-debug-user-info-page
JavaScript | 288 lines | 280 code | 5 blank | 3 comment | 68 complexity | fa9e8af3613aea76a887cd51a0480dd4 MD5 | raw file
  1. /**
  2. * Include the Jira Report Screen
  3. */
  4. ; /* module-key = 'com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector-embededjs', location = '/js/collector/bootstrap.js' */
  5. (function($) {
  6. $ = jQuery.noConflict(true);
  7. if (typeof window.jQuery === "undefined") {
  8. window.jQuery = $
  9. }
  10. if (typeof window.$ === "undefined") {
  11. window.$ = $
  12. }
  13. var ATL_JQ = function() {
  14. return $.apply($, arguments)
  15. };
  16. var css = ".atlwdg-blanket {background: black;height: 100%;left: 0;opacity: .5;position: fixed;top: 0;width: 100%;z-index: 1000000;}.atlwdg-popup {background: white;border: 1px solid #ccc;position: fixed;top: 0;right: 0;bottom: 0;left: 0;margin: auto;z-index: 10000011;border-radius: 5px;background-clip: padding-box;overflow: hidden;width: 810px;height: 0;max-height: calc(100% - 100px);}#atlwdg-frame {height: 100%;width: 100%;}.atlwdg-hidden {visibility: hidden;}.atlwdg-trigger {position: fixed;background: #205081;padding: 5px;border: 2px solid white;border-top: none;font-weight: bold;color: white !important;display: block;white-space: nowrap;text-decoration: none !important;font-family: Arial, Helvetica, sans-serif;font-size: 12px;-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);border-radius: 0 0 5px 5px;}.atlwdg-trigger.atlwdg-TOP {left: 45%;top: 0;}.atlwdg-trigger.atlwdg-RIGHT {left: 100%;top: 40%;-webkit-transform: rotate(90deg);-webkit-transform-origin: top left;-moz-transform: rotate(90deg);-moz-transform-origin: top left;-ms-transform: rotate(90deg);-ms-transform-origin: top left;transform: rotate(90deg);transform-origin: top left;}.atlwdg-trigger.atlwdg-SUBTLE {right: 0;bottom: 0;border: 1px solid #ccc;border-bottom: none;border-right: none;background-color: #f5f5f5;color: #444 !important;font-size: 11px;padding: 6px;-webkit-box-shadow: -1px -1px 2px rgba(0, 0, 0, 0.5);box-shadow: -1px -1px 2px rgba(0, 0, 0, 0.5);border-radius: 2px 0 0 0;}.atlwdg-loading {position: fixed;top: 0;right: 0;bottom: 0;left: 0;margin: auto;height: 40px;width: 40px;z-index: 1000001;border-radius: 5px;background-color: #fff;background-image: url('data:image/gif;base64,R0lGODlhEAAQAMQAAP///+7u7t3d3bu7u6qqqpmZmYiIiHd3d2ZmZlVVVURERDMzMyIiIhEREQARAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBwAQACwAAAAAEAAQAAAFdyAkQgGJJOWoQgIjBM8jkKsoPEzgyMGsCjPDw7ADpkQBxRDmSCRetpRA6Rj4kFBkgLC4IlUGhbNQIwXOYYWCXDufzYPDMaoKGBoKb886OjAKdgZAAgQkfCwzAgsDBAUCgl8jAQkHEAVkAoA1AgczlyIDczUDA2UhACH5BAUHABAALAAAAAAPABAAAAVjICSO0IGIATkqIiMKDaGKC8Q49jPMYsE0hQdrlABCGgvT45FKiRKQhWA0mPKGPAgBcTjsspBCAoH4gl+FmXNEUEBVAYHToJAVZK/XWoQQDAgBZioHaX8igigFKYYQVlkCjiMhACH5BAUHABAALAAAAAAQAA8AAAVgICSOUGGQqIiIChMESyo6CdQGdRqUENESI8FAdFgAFwqDISYwPB4CVSMnEhSej+FogNhtHyfRQFmIol5owmEta/fcKITB6y4choMBmk7yGgSAEAJ8JAVDgQFmKUCCZnwhACH5BAUHABAALAAAAAAQABAAAAViICSOYkGe4hFAiSImAwotB+si6Co2QxvjAYHIgBAqDoWCK2Bq6A40iA4yYMggNZKwGFgVCAQZotFwwJIF4QnxaC9IsZNgLtAJDKbraJCGzPVSIgEDXVNXA0JdgH6ChoCKKCEAIfkEBQcAEAAsAAAAABAADgAABUkgJI7QcZComIjPw6bs2kINLB5uW9Bo0gyQx8LkKgVHiccKVdyRlqjFSAApOKOtR810StVeU9RAmLqOxi0qRG3LptikAVQEh4UAACH5BAUHABAALAAAAAAQABAAAAVxICSO0DCQKBQQonGIh5AGB2sYkMHIqYAIN0EDRxoQZIaC6bAoMRSiwMAwCIwCggRkwRMJWKSAomBVCc5lUiGRUBjO6FSBwWggwijBooDCdiFfIlBRAlYBZQ0PWRANaSkED1oQYHgjDA8nM3kPfCmejiEAIfkEBQcAEAAsAAAAABAAEAAABWAgJI6QIJCoOIhFwabsSbiFAotGMEMKgZoB3cBUQIgURpFgmEI0EqjACYXwiYJBGAGBgGIDWsVicbiNEgSsGbKCIMCwA4IBCRgXt8bDACkvYQF6U1OADg8mDlaACQtwJCEAIfkEBQcAEAAsAAABABAADwAABV4gJEKCOAwiMa4Q2qIDwq4wiriBmItCCREHUsIwCgh2q8MiyEKODK7ZbHCoqqSjWGKI1d2kRp+RAWGyHg+DQUEmKliGx4HBKECIMwG61AgssAQPKA19EAxRKz4QCVIhACH5BAUHABAALAAAAAAQABAAAAVjICSOUBCQqHhCgiAOKyqcLVvEZOC2geGiK5NpQBAZCilgAYFMogo/J0lgqEpHgoO2+GIMUL6p4vFojhQNg8rxWLgYBQJCASkwEKLC17hYFJtRIwwBfRAJDk4ObwsidEkrWkkhACH5BAUHABAALAAAAQAQAA8AAAVcICSOUGAGAqmKpjis6vmuqSrUxQyPhDEEtpUOgmgYETCCcrB4OBWwQsGHEhQatVFhB/mNAojFVsQgBhgKpSHRTRxEhGwhoRg0CCXYAkKHHPZCZRAKUERZMAYGMCEAIfkEBQcAEAAsAAABABAADwAABV0gJI4kFJToGAilwKLCST6PUcrB8A70844CXenwILRkIoYyBRk4BQlHo3FIOQmvAEGBMpYSop/IgPBCFpCqIuEsIESHgkgoJxwQAjSzwb1DClwwgQhgAVVMIgVyKCEAIfkECQcAEAAsAAAAABAAEAAABWQgJI5kSQ6NYK7Dw6xr8hCw+ELC85hCIAq3Am0U6JUKjkHJNzIsFAqDqShQHRhY6bKqgvgGCZOSFDhAUiWCYQwJSxGHKqGAE/5EqIHBjOgyRQELCBB7EAQHfySDhGYQdDWGQyUhADs=');background-repeat: no-repeat;background-position: center center;}@media print {.atlwdg-trigger { display: none; }}";
  17. var cssIE = ".atlwdg-trigger {position: absolute;}.atlwdg-blanket {position: absolute;filter: alpha(opacity=50);width: 110%;}.atlwdg-popup {position: absolute;}.atlwdg-trigger.atlwdg-RIGHT {left: auto;right: 0;filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);}";
  18. ATL_JQ.isQuirksMode = function() {
  19. return document.compatMode != "CSS1Compat"
  20. };
  21. ATL_JQ.IssueDialog = function(options) {
  22. var $body = $("body"),
  23. that = this,
  24. showDialog = function() {
  25. that.show();
  26. return false
  27. };
  28. if (!options.baseUrl) {
  29. options.baseUrl = "https://issues.scribe.software"
  30. }
  31. this.options = options;
  32. this.frameUrl = options.baseUrl + "/rest/collectors/1.0/template/form/" + this.options.collectorId + "?os_authType=none";
  33. $("head").append("<style type='text/css'>" + css + "</style>");
  34. if (this.options.triggerPosition === "CUSTOM") {
  35. var oldTriggerFunction;
  36. if (this.options.triggerFunction) {
  37. try {
  38. oldTriggerFunction = eval("(" + this.options.triggerFunction + ")")
  39. } catch (ex) {}
  40. }
  41. $(function() {
  42. try {
  43. var newTriggerFunction;
  44. if (window.ATL_JQ_PAGE_PROPS && ((window.ATL_JQ_PAGE_PROPS.triggerFunction) || (window.ATL_JQ_PAGE_PROPS["cf33aa12"] && window.ATL_JQ_PAGE_PROPS["cf33aa12"].triggerFunction))) {
  45. newTriggerFunction = window.ATL_JQ_PAGE_PROPS.triggerFunction || window.ATL_JQ_PAGE_PROPS["cf33aa12"].triggerFunction
  46. } else {
  47. newTriggerFunction = oldTriggerFunction
  48. } if ($.isFunction(newTriggerFunction)) {
  49. newTriggerFunction(showDialog)
  50. }
  51. } catch (ex) {}
  52. })
  53. } else {
  54. if ($.isFunction(this.options.triggerPosition)) {
  55. try {
  56. this.options.triggerPosition(showDialog)
  57. } catch (ex) {}
  58. } else {
  59. if (this.options.triggerPosition && this.options.triggerText) {
  60. var triggerClass = "atlwdg-trigger atlwdg-" + this.options.triggerPosition;
  61. var $trigger = $("<a href='#' id='atlwdg-trigger'/>").addClass(triggerClass).text(this.options.triggerText);
  62. $body.append($trigger);
  63. $trigger.click(showDialog)
  64. }
  65. }
  66. }
  67. var $iframeContainer = $("<div id='atlwdg-container'/>").addClass("atlwdg-popup atlwdg-hidden");
  68. var $blanket = $("<div id='atlwdg-blanket' class='atlwdg-blanket'/>").hide();
  69. $body.append($blanket).append($iframeContainer);
  70. var browser = (function(userAgent) {
  71. userAgent = userAgent.toLowerCase();
  72. var match = /(msie) ([\w.]+)/.exec(userAgent) || [];
  73. return {
  74. isIE: (match[1]) ? true : false,
  75. version: match[2] || "0"
  76. }
  77. })(navigator.userAgent);
  78. if (browser.isIE && (ATL_JQ.isQuirksMode() || browser.version < 9)) {
  79. $("head").append("<style type='text/css'>" + cssIE + "</style>");
  80. var triggerAdjuster = function(e) {};
  81. if (this.options.triggerPosition === "TOP") {
  82. triggerAdjuster = function(e) {
  83. $("#atlwdg-trigger").css("top", $(window).scrollTop() + "px")
  84. }
  85. } else {
  86. if (this.options.triggerPosition === "RIGHT") {
  87. triggerAdjuster = function(e) {
  88. var $trigger = $("#atlwdg-trigger");
  89. $trigger.css("top", ($(window).height() / 2 - $trigger.outerWidth() / 2 + $(window).scrollTop()) + "px");
  90. if (!ATL_JQ.isQuirksMode() && browser.version === "8.0") {
  91. $trigger.css("right", -($trigger.outerHeight() - $trigger.outerWidth()) + "px")
  92. }
  93. }
  94. } else {
  95. if (this.options.triggerPosition === "SUBTLE") {
  96. var outerHeight = $trigger.outerHeight();
  97. triggerAdjuster = function(e) {
  98. var $window = $(window);
  99. $trigger.css("top", ($window.scrollTop() + $window.height() - outerHeight) + "px")
  100. }
  101. }
  102. }
  103. }
  104. $(window).bind("scroll resize", triggerAdjuster);
  105. triggerAdjuster()
  106. }
  107. };
  108. ATL_JQ.IssueDialog.prototype = {
  109. hideDialog: undefined,
  110. show: function() {
  111. var that = this,
  112. $iframeContainerElem = $("#atlwdg-container"),
  113. $body = $("body"),
  114. $iframeElem = $('<iframe id="atlwdg-frame" scrolling="no" frameborder="0" src="' + this.frameUrl + '"></iframe>'),
  115. $loadingImage = $('<div id="atlwdg-loading" class="atlwdg-loading"></div>');
  116. $iframeContainerElem.css("height", "600px");
  117. hideDialog = function(e) {
  118. if (e.keyCode === 27) {
  119. that.hide()
  120. }
  121. };
  122. $loadingImage.appendTo("body");
  123. $loadingImage.show();
  124. $body.css("overflow", "hidden").keydown(hideDialog);
  125. window.scroll(0, 0);
  126. var feedbackString = "";
  127. if (this.options.collectFeedback) {
  128. var feedback = this.options.collectFeedback();
  129. for (var prop in feedback) {
  130. if (feedback.hasOwnProperty(prop) && feedback[prop] !== undefined && feedback[prop] !== "" && typeof feedback[prop] === "string") {
  131. feedbackString += "*" + prop + "*: " + feedback[prop] + "\n"
  132. }
  133. }
  134. }
  135. var fieldValues = {};
  136. if (this.options.fieldValues && !$.isEmptyObject(this.options.fieldValues)) {
  137. $.extend(fieldValues, this.options.fieldValues)
  138. }
  139. $iframeElem.load(function() {
  140. var message = {
  141. feedbackString: feedbackString,
  142. fieldValues: fieldValues
  143. };
  144. $iframeElem[0].contentWindow.postMessage(JSON.stringify(message), that.options.baseUrl)
  145. });
  146. $iframeContainerElem.show();
  147. $iframeElem.load(function(e) {
  148. $loadingImage.remove();
  149. $iframeContainerElem.removeClass("atlwdg-hidden")
  150. });
  151. $(window).bind("message", function(e) {
  152. if (e.originalEvent.source === $iframeElem[0].contentWindow && e.originalEvent.data) {
  153. if (e.originalEvent.data === "cancelFeedbackDialog") {
  154. that.hide()
  155. } else {
  156. try {
  157. var data = JSON.parse(e.originalEvent.data);
  158. setDialogHeight(data.frameHeight)
  159. } catch (e) {}
  160. }
  161. }
  162. });
  163. var dummyElement = document.createElement("a");
  164. dummyElement.href = "https://issues.scribe.software";
  165. $iframeContainerElem.append($iframeElem);
  166. $("#atlwdg-blanket").show()
  167. },
  168. hide: function() {
  169. $("body").css("overflow", "auto").unbind("keydown", hideDialog);
  170. $("#atlwdg-container").addClass("atlwdg-hidden").hide().empty();
  171. $("#atlwdg-blanket").hide()
  172. }
  173. };
  174. var filterStrings = function(obj, recursingIn) {
  175. for (var key in obj) {
  176. if (!obj.hasOwnProperty(key)) {
  177. continue
  178. }
  179. var value = obj[key];
  180. if (recursingIn === undefined && $.isArray(value)) {
  181. filterStrings(value, key);
  182. continue
  183. }
  184. if (typeof value !== "string") {
  185. var paramName = recursingIn === undefined ? key : recursingIn + ":" + key;
  186. console.log("bootstrap.js:filterStrings ignoring key for value '" + paramName + "'; typeof must be string");
  187. delete obj[key]
  188. }
  189. }
  190. return obj
  191. };
  192. function setDialogHeight(height) {
  193. $("#atlwdg-container").css("height", height)
  194. }
  195. ATL_JQ(function() {
  196. if ("cf33aa12" == "" && typeof ATL_JQ_CONFIGS == "undefined") {
  197. return
  198. }
  199. var showTrigger = function(triggerConfig, collectorId) {
  200. if (!triggerConfig.enabled) {
  201. return
  202. }
  203. var collectFeedback = false;
  204. var defaultFieldValues = {};
  205. if (window.ATL_JQ_PAGE_PROPS) {
  206. defaultFieldValues = window.ATL_JQ_PAGE_PROPS.fieldValues;
  207. if (window.ATL_JQ_PAGE_PROPS.hasOwnProperty(collectorId)) {
  208. defaultFieldValues = window.ATL_JQ_PAGE_PROPS[collectorId].fieldValues
  209. }
  210. if ($.isFunction(defaultFieldValues)) {
  211. $.extend(defaultFieldValues, filterStrings(defaultFieldValues()))
  212. } else {
  213. if ($.isPlainObject(defaultFieldValues)) {
  214. $.extend(defaultFieldValues, filterStrings(defaultFieldValues))
  215. }
  216. }
  217. }
  218. if (triggerConfig.recordWebInfo) {
  219. var environmentProps = {
  220. Location: window.location.href,
  221. "User-Agent": navigator.userAgent,
  222. Referrer: document.referrer,
  223. "Screen Resolution": screen.width + " x " + screen.height
  224. };
  225. if (window.ATL_JQ_PAGE_PROPS) {
  226. var feedbackProps = window.ATL_JQ_PAGE_PROPS.environment;
  227. if (window.ATL_JQ_PAGE_PROPS.hasOwnProperty(collectorId)) {
  228. feedbackProps = window.ATL_JQ_PAGE_PROPS[collectorId].environment
  229. }
  230. if ($.isFunction(feedbackProps)) {
  231. $.extend(environmentProps, feedbackProps())
  232. } else {
  233. $.extend(environmentProps, feedbackProps)
  234. }
  235. }
  236. collectFeedback = function() {
  237. return environmentProps
  238. }
  239. }
  240. new ATL_JQ.IssueDialog({
  241. collectorId: collectorId,
  242. fieldValues: defaultFieldValues,
  243. collectFeedback: collectFeedback,
  244. triggerText: triggerConfig.triggerText,
  245. triggerPosition: triggerConfig.triggerPosition,
  246. triggerFunction: triggerConfig.triggerFunction,
  247. baseUrl: triggerConfig.baseUrl
  248. })
  249. };
  250. if (typeof ATL_JQ_CONFIGS != "undefined") {
  251. for (var id in ATL_JQ_CONFIGS) {
  252. var config = ATL_JQ_CONFIGS[id];
  253. delete ATL_JQ_CONFIGS[id];
  254. showTrigger(config, id)
  255. }
  256. } else {
  257. var baseUrl = "https://issues.scribe.software";
  258. $.ajax({
  259. url: baseUrl + "/rest/collectors/1.0/configuration/trigger/cf33aa12?os_authType=none",
  260. dataType: "jsonp",
  261. crossDomain: true,
  262. jsonpCallback: "trigger_cf33aa12",
  263. cache: true,
  264. success: function(result) {
  265. showTrigger(result, "cf33aa12")
  266. }
  267. })
  268. }
  269. });
  270. if ("cf33aa12" === "") {
  271. window.ATL_JQ = ATL_JQ
  272. }
  273. })(jQuery);;
  274. console.log($(window).ATL_JQ_PAGE_PROPS);
  275. window.ATL_JQ_PAGE_PROPS = {
  276. "triggerFunction": function(showCollectorDialog) {
  277. jQuery("#section_submit_bug").click(function(e) {
  278. e.preventDefault();
  279. console.log('handling click event');
  280. showCollectorDialog();
  281. });
  282. }
  283. };