Advertisement
Guest User

Untitled

a guest
Sep 21st, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 145.37 KB | None | 0 0
  1. Obecnie:
  2. * Service desk refresh filter - filtruje div'a z jsonem w którym są dane o portalu
  3. <url-pattern>/servicedesk/customer/*</url-pattern>
  4. * Service desk model filter - obsługuje całego resta z którego korzysta portal klienta
  5. <url-pattern>/rest/servicedesk/1/customer/models</url-pattern>
  6. Filtrowanie jsona
  7. * Service desk search
  8. <url-pattern>/rest/servicedesk/search/1/search/request-type*</url-pattern>
  9. * Request visibility filter
  10. <url-pattern>/servicedesk/customer/portal/*/create/*</url-pattern>
  11. * Portal visibility
  12. <url-pattern>/servicedesk/customer/portal/*</url-pattern>
  13.  
  14. Visibility:
  15. * Request type - blokujemy tylko tworzenie requestów o danym typie, nie ruszamy utworzonych
  16. Wchodzenie po linku na tworzenie Requesta o konkretnym typie
  17. https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk/{serviceDeskId}/requesttype
  18. * Field - można blokować poniższego resta i na ekranie tworzenia należy blokować widoczność konkretnych pól
  19. https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/field
  20. * Portal - blokowanie po linku dostęp do portalu klienta, pytanie co z utworzonymi już requestami
  21. https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk
  22. * Options - blokowanie wyświetlania konkrenych opcji na ekranie tworzenia (tylko jQuery) ?
  23. * Requirements - blokowanie wyświetlania require na polu na ekranie tworzenia (tylko jQuery) ?
  24.  
  25. Customer portal strony i models rest:
  26. http://localhost:8080/sandbox/rest/servicedesk/search/1/search/request-type?query=s&resultLimit=5&_=1527676384165 - wyszukiwanie request type'ów
  27. W response dostajemy
  28. {
  29. "requestTypes": [{
  30. "id": 16,
  31. "cvId": 3,
  32. "icon": 10520,
  33. "issueType": 10101,
  34. "name": "Fix an account problem",
  35. "portalName": "Support",
  36. "description": "Having trouble accessing certain websites or systems? We'll help you out.",
  37. "searchScore": 0.0
  38. }]
  39. }
  40. 1.
  41. http://localhost:8080/sandbox/servicedesk/customer/portals - strona główna
  42. Elementy do blokowania:
  43. * popular portals
  44. * recent request types
  45. * wyszukiwarka
  46. http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
  47. {
  48. models: ["organisations", "announcement", "popularPortal", "recentRequestTypes"],
  49. options: {}
  50. }
  51. W response:
  52. {
  53. "organisations": {
  54. "organisations": [{
  55. "id": 1,
  56. "name": "Organizacja"
  57. }]
  58. },
  59. "announcement": {
  60. "header": "",
  61. "headerWiki": "",
  62. "message": "",
  63. "messageWiki": "",
  64. "canEditAnnouncement": true,
  65. "portalId": null
  66. },
  67. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
  68. }
  69.  
  70. lub
  71. {
  72. "popularPortals": [{
  73. "id": "1",
  74. "key": "sd",
  75. "name": "Service Desk",
  76. "description": "Welcome! You can raise a Service Desk request from the options provided.",
  77. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  78. }, {
  79. "id": "4",
  80. "key": "sd2",
  81. "name": "SERvice Desk 2",
  82. "description": "Welcome! You can raise a SERvice Desk 2 request from the options provided.",
  83. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
  84. }, {
  85. "id": "3",
  86. "key": "sup",
  87. "name": "Support",
  88. "description": "Welcome! You can raise a Support request from the options provided.",
  89. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
  90. }, {
  91. "id": "6",
  92. "key": "kluc",
  93. "name": "klucz",
  94. "description": "Welcome! You can raise a klucz request from the options provided.",
  95. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
  96. }],
  97. "recentRequestTypes": [{
  98. "id": 256,
  99. "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
  100. "cvId": 1,
  101. "icon": 10532,
  102. "name": "Bundled Fields Test",
  103. "portalName": "Service Desk",
  104. "description": ""
  105. }, {
  106. "id": 1,
  107. "key": "getithelp",
  108. "cvId": 1,
  109. "icon": 10527,
  110. "name": "IT help",
  111. "portalName": "Service Desk",
  112. "description": "Get general tech support, like help with the Wi-Fi or printing."
  113. }, {
  114. "id": 15,
  115. "key": "getithelp",
  116. "cvId": 3,
  117. "icon": 10527,
  118. "name": "Get IT help",
  119. "portalName": "Support",
  120. "description": "Get assistance for general IT problems and questions."
  121. }],
  122. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
  123. }
  124. JSON Payload:
  125. {
  126. "portals": [{
  127. "id": "1",
  128. "key": "sd",
  129. "name": "Service Desk",
  130. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  131. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  132. }, {
  133. "id": "3",
  134. "key": "sup",
  135. "name": "Support",
  136. "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
  137. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
  138. }, {
  139. "id": "4",
  140. "key": "sd2",
  141. "name": "SERvice Desk 2",
  142. "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
  143. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
  144. }, {
  145. "id": "6",
  146. "key": "kluc",
  147. "name": "klucz",
  148. "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
  149. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
  150. }],
  151. "helpCenterBranding": {
  152. "logoUrl": "",
  153. "logoId": ""
  154. },
  155. "portalWebFragments": {
  156. "headerPanels": [],
  157. "subheaderPanels": [],
  158. "footerPanels": [{
  159. "params": {},
  160. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  161. "name": "WebPanel: Links",
  162. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  163. }],
  164. "pagePanels": {}
  165. },
  166. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  167. "user": {
  168. "key": "admin",
  169. "userName": "admin",
  170. "avatars": {
  171. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  172. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  173. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  174. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  175. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  176. },
  177. "displayName": "Michał Sztuka",
  178. "email": "michal.sztuka@intenso.pl",
  179. "timezone": {
  180. "id": "JIRA",
  181. "regionKey": "JIRA",
  182. "city": "Belgrade",
  183. "gmtOffset": "(GMT+01:00)"
  184. },
  185. "language": {
  186. "key": "en_US",
  187. "displayName": "English (United States) [Default]"
  188. },
  189. "canChangePassword": true,
  190. "canUpdateUser": true,
  191. "allOpenRequestsCount": 46,
  192. "pendingApprovalsCount": 0,
  193. "approvalsCount": 0,
  194. "customMenuLinks": [],
  195. "notificationType": "html",
  196. "canAdministerJIRA": true,
  197. "agentForPortal": false
  198. },
  199. "sharedPortal": {
  200. "name": "Help Center",
  201. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  202. "kbs": {
  203. "kbEnabled": false
  204. }
  205. }
  206. }
  207. Konkretny Customer Portal:
  208. http://localhost:8080/sandbox/servicedesk/customer/portal/1
  209.  
  210. Elementy
  211. * wyszukiwarka
  212. * Grupy request type'ów
  213. * Request type'y
  214.  
  215. http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
  216. {
  217. "models": ["user", "organisations", "sharedPortal", "branding", "helpCenterBranding", "portal", "portalWebFragments"],
  218. "options": {
  219. "portalId": "1",
  220. "branding": {
  221. "id": "1"
  222. },
  223. "portal": {
  224. "id": "1",
  225. "expand": ["reqTypes", "reqGroups", "orderMapping", "kbs"]
  226. },
  227. "portalWebFragments": {
  228. "portalPage": "PORTAL"
  229. }
  230. }
  231. }
  232. Response
  233. {
  234. "helpCenterBranding": {
  235. "logoUrl": "",
  236. "logoId": ""
  237. },
  238. "portal": {
  239. "id": "1",
  240. "key": "sd",
  241. "projectId": 10100,
  242. "serviceDeskId": 1,
  243. "name": "Service Desk",
  244. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  245. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  246. "onlyPortal": false,
  247. "reqTypes": [{
  248. "id": "2",
  249. "key": "desktoplaptopsupport",
  250. "name": "Computer support",
  251. "descriptionHtml": "",
  252. "callToAction": "Computer support",
  253. "introHtml": "<p>If you have problems with your laptop, let us know here.<\/p>",
  254. "icon": 10510,
  255. "groups": [1]
  256. }, {
  257. "id": "238",
  258. "key": "230f44c8-0598-4e06-b644-fd57fec2b1cf",
  259. "name": "test2222",
  260. "descriptionHtml": "",
  261. "callToAction": "test2222",
  262. "introHtml": "",
  263. "icon": 10532,
  264. "groups": [1]
  265. }, {
  266. "id": "239",
  267. "key": "07470ac8-3366-4efe-bfd7-5d3b8b75e46d",
  268. "name": "test222",
  269. "descriptionHtml": "",
  270. "callToAction": "test222",
  271. "introHtml": "",
  272. "icon": 10532,
  273. "groups": [1]
  274. }, {
  275. "id": "255",
  276. "key": "8678f865-25df-4898-baa4-a8da3e97df3f",
  277. "name": "Hardware",
  278. "descriptionHtml": "",
  279. "callToAction": "Hardware",
  280. "introHtml": "",
  281. "icon": 10532,
  282. "groups": [1]
  283. }, {
  284. "id": "256",
  285. "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
  286. "name": "Bundled Fields Test",
  287. "descriptionHtml": "",
  288. "callToAction": "Bundled Fields Test",
  289. "introHtml": "",
  290. "icon": 10532,
  291. "groups": [1]
  292. }, {
  293. "id": "1",
  294. "key": "getithelp",
  295. "name": "IT help",
  296. "descriptionHtml": "",
  297. "callToAction": "IT help",
  298. "introHtml": "<p>Get general tech support, like help with the Wi-Fi or printing.<\/p>",
  299. "icon": 10527,
  300. "groups": [1]
  301. }, {
  302. "id": "3",
  303. "key": "purchaseunder100",
  304. "name": "Purchase under $100",
  305. "descriptionHtml": "",
  306. "callToAction": "Purchase under $100",
  307. "introHtml": "<p>Order something small, like a keyboard. If it's under $100, you don't need approval.<\/p>",
  308. "icon": 10512,
  309. "groups": [1]
  310. }, {
  311. "id": "4",
  312. "key": "employeeexit",
  313. "name": "Employee exit",
  314. "descriptionHtml": "",
  315. "callToAction": "Employee exit",
  316. "introHtml": "<p>Moving on to better things? Start your transition here.<\/p>",
  317. "icon": 10526,
  318. "groups": [1]
  319. }, {
  320. "id": "5",
  321. "key": "newemployee",
  322. "name": "New employee",
  323. "descriptionHtml": "",
  324. "callToAction": "New employee",
  325. "introHtml": "<p>Onboard a new hire.<\/p>",
  326. "icon": 10531,
  327. "groups": [1]
  328. }, {
  329. "id": "6",
  330. "key": "travelrequests",
  331. "name": "Travel request",
  332. "descriptionHtml": "",
  333. "callToAction": "Travel request",
  334. "introHtml": "<p>Got travel plans? Start the process here.<\/p>",
  335. "icon": 10515,
  336. "groups": [2]
  337. }, {
  338. "id": "7",
  339. "key": "purchaseover100",
  340. "name": "Purchase over $100",
  341. "descriptionHtml": "",
  342. "callToAction": "Purchase over $100",
  343. "introHtml": "<p>Order something big, like a new phone. Purchases over $100 require approval.<\/p>",
  344. "icon": 10536,
  345. "groups": [2]
  346. }],
  347. "reqGroups": [{
  348. "id": 1,
  349. "name": "General"
  350. }, {
  351. "id": 2,
  352. "name": "Need approval"
  353. }],
  354. "orderMapping": {
  355. "2": [6, 7],
  356. "1": [256, 255, 239, 238, 1, 2, 3, 4, 5, 31, 32]
  357. },
  358. "kbs": {
  359. "kbEnabled": false,
  360. "serviceDeskId": -1
  361. },
  362. "createPermission": true,
  363. "openRequestCount": 0,
  364. "announcement": {
  365. "header": "",
  366. "headerWiki": "",
  367. "message": "",
  368. "messageWiki": "",
  369. "canEditAnnouncement": true,
  370. "portalId": 1
  371. }
  372. },
  373. "portalWebFragments": {
  374. "headerPanels": [],
  375. "subheaderPanels": [],
  376. "footerPanels": [{
  377. "params": {},
  378. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  379. "name": "WebPanel: Links",
  380. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  381. }],
  382. "pagePanels": {}
  383. },
  384. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  385. "organisations": {
  386. "organisations": [{
  387. "id": 1,
  388. "name": "Organizacja"
  389. }]
  390. },
  391. "user": {
  392. "key": "admin",
  393. "userName": "admin",
  394. "avatars": {
  395. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  396. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  397. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  398. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  399. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  400. },
  401. "displayName": "Michał Sztuka",
  402. "email": "michal.sztuka@intenso.pl",
  403. "timezone": {
  404. "id": "JIRA",
  405. "regionKey": "JIRA",
  406. "city": "Belgrade",
  407. "gmtOffset": "(GMT+01:00)"
  408. },
  409. "language": {
  410. "key": "en_US",
  411. "displayName": "English (United States) [Default]"
  412. },
  413. "canChangePassword": true,
  414. "canUpdateUser": true,
  415. "allOpenRequestsCount": 46,
  416. "pendingApprovalsCount": 0,
  417. "approvalsCount": 0,
  418. "customMenuLinks": [],
  419. "notificationType": "html",
  420. "canAdministerJIRA": true,
  421. "agentForPortal": true
  422. },
  423. "sharedPortal": {
  424. "name": "Help Center",
  425. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  426. "kbs": {
  427. "kbEnabled": false
  428. }
  429. },
  430. "branding": {
  431. "id": "1",
  432. "key": "sd",
  433. "name": "Service Desk",
  434. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  435. }
  436. }
  437.  
  438. JSON payload:
  439. {
  440. "portals": [{
  441. "id": "1",
  442. "key": "sd",
  443. "name": "Service Desk",
  444. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  445. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  446. }, {
  447. "id": "3",
  448. "key": "sup",
  449. "name": "Support",
  450. "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
  451. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
  452. }, {
  453. "id": "4",
  454. "key": "sd2",
  455. "name": "SERvice Desk 2",
  456. "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
  457. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
  458. }, {
  459. "id": "6",
  460. "key": "kluc",
  461. "name": "klucz",
  462. "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
  463. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
  464. }],
  465. "helpCenterBranding": {
  466. "logoUrl": "",
  467. "logoId": ""
  468. },
  469. "portalWebFragments": {
  470. "headerPanels": [],
  471. "subheaderPanels": [],
  472. "footerPanels": [{
  473. "params": {},
  474. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  475. "name": "WebPanel: Links",
  476. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  477. }],
  478. "pagePanels": {}
  479. },
  480. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  481. "user": {
  482. "key": "admin",
  483. "userName": "admin",
  484. "avatars": {
  485. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  486. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  487. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  488. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  489. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  490. },
  491. "displayName": "Michał Sztuka",
  492. "email": "michal.sztuka@intenso.pl",
  493. "timezone": {
  494. "id": "JIRA",
  495. "regionKey": "JIRA",
  496. "city": "Belgrade",
  497. "gmtOffset": "(GMT+01:00)"
  498. },
  499. "language": {
  500. "key": "en_US",
  501. "displayName": "English (United States) [Default]"
  502. },
  503. "canChangePassword": true,
  504. "canUpdateUser": true,
  505. "allOpenRequestsCount": 46,
  506. "pendingApprovalsCount": 0,
  507. "approvalsCount": 0,
  508. "customMenuLinks": [],
  509. "notificationType": "html",
  510. "canAdministerJIRA": true,
  511. "agentForPortal": false
  512. },
  513. "sharedPortal": {
  514. "name": "Help Center",
  515. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  516. "kbs": {
  517. "kbEnabled": false
  518. }
  519. }
  520. }
  521.  
  522. http://localhost:8080/sandbox/servicedesk/customer/portal/1/create/6 - strona tworzenia requesta
  523.  
  524. Sam formularz
  525.  
  526. http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
  527. {
  528. "models": ["user", "organisations", "sharedPortal", "portal", "helpCenterBranding", "reqCreate", "portalWebFragments"],
  529. "options": {
  530. "portalId": "1",
  531. "portal": {
  532. "id": "1"
  533. },
  534. "reqCreate": {
  535. "id": "6"
  536. },
  537. "portalWebFragments": {
  538. "portalPage": "CREATE_REQUEST"
  539. }
  540. }
  541. }
  542. Response
  543. {
  544. "helpCenterBranding": {
  545. "logoUrl": "",
  546. "logoId": ""
  547. },
  548. "portal": {
  549. "id": "1",
  550. "key": "sd",
  551. "projectId": 10100,
  552. "serviceDeskId": 1,
  553. "name": "Service Desk",
  554. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  555. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  556. "onlyPortal": false,
  557. "createPermission": true,
  558. "openRequestCount": 0,
  559. "announcement": {
  560. "header": "",
  561. "headerWiki": "",
  562. "message": "",
  563. "messageWiki": "",
  564. "canEditAnnouncement": true,
  565. "portalId": 1
  566. }
  567. },
  568. "reqCreate": {
  569. "key": "travelrequests",
  570. "id": 6,
  571. "projectId": 10100,
  572. "form": {
  573. "key": "travelrequests",
  574. "name": "Travel request",
  575. "descriptionHtml": "",
  576. "callToAction": "Travel request",
  577. "intro": "<p>Got travel plans? Start the process here.<\/p>",
  578. "instructions": "",
  579. "icon": 10515
  580. },
  581. "fields": [{
  582. "fieldType": "reporter",
  583. "fieldId": "reporter",
  584. "fieldConfigId": "",
  585. "label": "Raise this request on behalf of",
  586. "description": "",
  587. "descriptionHtml": "",
  588. "required": true,
  589. "displayed": true,
  590. "defaultObject": {
  591. "id": "admin",
  592. "emailAddress": "michal.sztuka@intenso.pl",
  593. "displayName": "Michał Sztuka",
  594. "avatar": "http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall"
  595. },
  596. "defaultObjectAsJson": "{\"id\":\"admin\",\"emailAddress\":\"michal.sztuka@intenso.pl\",\"displayName\":\"Michał Sztuka\",\"avatar\":\"http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall\"}"
  597. }, {
  598. "fieldType": "text",
  599. "fieldId": "summary",
  600. "fieldConfigId": "",
  601. "label": "Summary",
  602. "description": "Tell us where you're going and for how long. For example, '3 day trip to New York'.",
  603. "descriptionHtml": "<p>Tell us where you're going and for how long. For example, '3 day trip to New York'.<\/p>",
  604. "required": true,
  605. "displayed": true
  606. }, {
  607. "fieldType": "textarea",
  608. "fieldId": "description",
  609. "fieldConfigId": "",
  610. "label": "Description",
  611. "description": "Give us some details of your plans, for example why you're going, the dates you're gone, and a rough budget.",
  612. "descriptionHtml": "<p>Give us some details of your plans, for example why you're going, the dates you're gone, and a rough budget.<\/p>",
  613. "required": true,
  614. "displayed": true
  615. }, {
  616. "fieldType": "multiuserpicker",
  617. "fieldId": "customfield_10106",
  618. "fieldConfigId": "10307",
  619. "label": "Approvers",
  620. "description": "",
  621. "descriptionHtml": "",
  622. "required": false,
  623. "displayed": true,
  624. "defaultList": [],
  625. "defaultListAsJson": "[]"
  626. }, {
  627. "fieldType": "select",
  628. "fieldId": "priority",
  629. "fieldConfigId": "10100",
  630. "label": "Priority",
  631. "description": "",
  632. "descriptionHtml": "",
  633. "required": false,
  634. "displayed": false,
  635. "values": [{
  636. "value": "1",
  637. "label": "Highest",
  638. "selected": false,
  639. "children": []
  640. }, {
  641. "value": "2",
  642. "label": "High",
  643. "selected": false,
  644. "children": []
  645. }, {
  646. "value": "3",
  647. "label": "Medium",
  648. "selected": true,
  649. "children": []
  650. }, {
  651. "value": "4",
  652. "label": "Low",
  653. "selected": false,
  654. "children": []
  655. }, {
  656. "value": "5",
  657. "label": "Lowest",
  658. "selected": false,
  659. "children": []
  660. }],
  661. "noneOptionRequired": false
  662. }, {
  663. "fieldType": "organisationpicker",
  664. "fieldId": "customfield_10103",
  665. "fieldConfigId": "10303",
  666. "label": "",
  667. "description": "",
  668. "descriptionHtml": "",
  669. "required": false,
  670. "displayed": true
  671. }],
  672. "userOrganisations": [{
  673. "id": 1,
  674. "name": "Organizacja"
  675. }],
  676. "canBrowseUsers": true,
  677. "requestCreateBaseUrl": "/sandbox/servicedesk/customer/portal/1/create/6",
  678. "calendarParams": {
  679. "firstDay": 0,
  680. "date": "2018-05-30T12:48:42+0200",
  681. "useISO8601WeekNumbers": false,
  682. "dateIfFormat": "%e/%b/%y",
  683. "dateTimeIfFormat": "%e/%b/%y %I:%M %p",
  684. "timeFormat": "12"
  685. },
  686. "kbs": {
  687. "kbEnabled": false,
  688. "serviceDeskId": -1
  689. },
  690. "canRaiseOnBehalf": true,
  691. "canSignupCustomers": true,
  692. "canCreateAttachments": true,
  693. "attachmentRequiredField": false,
  694. "welcomeGuideItemAlreadyCompleted": true,
  695. "hasGroups": true,
  696. "canSubmitWithEmailAddress": true
  697. },
  698. "portalWebFragments": {
  699. "headerPanels": [],
  700. "subheaderPanels": [],
  701. "footerPanels": [{
  702. "params": {},
  703. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  704. "name": "WebPanel: Links",
  705. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  706. }, {
  707. "params": {},
  708. "key": "com.intenso.jira.plugins.jsd-extender:jsd-extender-panel",
  709. "name": "WebPanel: Extender panel",
  710. "html": "<meta name=\"deviniti-projectId\" content=\"10100\"/>\n <div id=\"intensoExtenderJson\" style=\"display: none\">\n {&quot;form&quot;:[{&quot;id&quot;:903,&quot;fieldId&quot;:&quot;customfield_11601&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[{&quot;optionId&quot;:10806,&quot;optionName&quot;:&quot;Drukarka&quot;,&quot;disabled&quot;:false,&quot;relatedFields&quot;:[{&quot;id&quot;:958,&quot;fieldId&quot;:&quot;customfield_10515&quot;,&quot;isRequired&quot;:false,&quot;useDefaultValue&quot;:false,&quot;dynamicFormId&quot;:903,&quot;optionId&quot;:10806,&quot;requestTypesIds&quot;:[-1]}]},{&quot;optionId&quot;:10807,&quot;optionName&quot;:&quot;Lapciok&quot;,&quot;disabled&quot;:false,&quot;relatedFields&quot;:[{&quot;id&quot;:959,&quot;fieldId&quot;:&quot;customfield_11600&quot;,&quot;isRequired&quot;:false,&quot;useDefaultValue&quot;:false,&quot;dynamicFormId&quot;:903,&quot;optionId&quot;:10807,&quot;requestTypesIds&quot;:[-1]}]},{&quot;optionId&quot;:10808,&quot;optionName&quot;:&quot;Telefon&quot;,&quot;disabled&quot;:false}],&quot;field&quot;:{&quot;fieldId&quot;:&quot;customfield_11601&quot;,&quot;fieldName&quot;:&quot;Typ sprzętu&quot;,&quot;type&quot;:&quot;Select List (single choice)&quot;}},{&quot;id&quot;:957,&quot;fieldId&quot;:&quot;priority&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[{&quot;optionId&quot;:1,&quot;optionName&quot;:&quot;Highest&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:2,&quot;optionName&quot;:&quot;High&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:3,&quot;optionName&quot;:&quot;Medium&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:4,&quot;optionName&quot;:&quot;Low&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:5,&quot;optionName&quot;:&quot;Lowest&quot;,&quot;disabled&quot;:false}],&quot;field&quot;:{&quot;fieldId&quot;:&quot;priority&quot;,&quot;fieldName&quot;:&quot;Priority&quot;}},{&quot;id&quot;:956,&quot;fieldId&quot;:&quot;customfield_11500&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[],&quot;field&quot;:{&quot;fieldId&quot;:&quot;customfield_11500&quot;,&quot;fieldName&quot;:&quot;dsa&quot;,&quot;type&quot;:&quot;Select List (cascading)&quot;}}],&quot;removeNone&quot;:[],&quot;requirement&quot;:[],&quot;user&quot;:{&quot;userDisplayName&quot;:&quot;Michał Sztuka&quot;,&quot;avatarUrl&quot;:&quot;http://localhost:8080/sandbox/secure/useravatar?size\\u003dxsmall\\u0026avatarId\\u003d10350&quot;,&quot;username&quot;:&quot;admin&quot;}}\n <\/div>\n <div id=\"intensoExtenderDynamicRequiredField\" style=\"display: none\">\n Please provide a valid value for field &#39;fieldName&#39;\n <\/div>\n"
  711. }, {
  712. "params": {},
  713. "key": "com.intenso.jira.plugins.jsd-extender:bundled-fields-cp-create-panel",
  714. "name": "WebPanel: Bundled fields create",
  715. "html": "<div id=\"jsd-bundled-fields-request-create\" style=\"display:none;\">\n {\"fields\":[{\"contextId\":11100,\"customFieldId\":\"10900\",\"customFieldName\":\"Bundled Fields Test\",\"isCFRequired\":false},{\"contextId\":11800,\"customFieldId\":\"11400\",\"customFieldName\":\"tete\",\"isCFRequired\":false}]}\n<\/div>\n<script type=\"text/javascript\">\n\n\tAJS.$(function() {\n window.JSD_BUNDLED_FIELDS.startCreateObserve(document.getElementById(\"content\"))\n\t});\n\n<\/script>\n"
  716. }],
  717. "pagePanels": {
  718. "fieldPanels": []
  719. }
  720. },
  721. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  722. "organisations": {
  723. "organisations": [{
  724. "id": 1,
  725. "name": "Organizacja"
  726. }]
  727. },
  728. "user": {
  729. "key": "admin",
  730. "userName": "admin",
  731. "avatars": {
  732. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  733. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  734. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  735. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  736. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  737. },
  738. "displayName": "Michał Sztuka",
  739. "email": "michal.sztuka@intenso.pl",
  740. "timezone": {
  741. "id": "JIRA",
  742. "regionKey": "JIRA",
  743. "city": "Belgrade",
  744. "gmtOffset": "(GMT+01:00)"
  745. },
  746. "language": {
  747. "key": "en_US",
  748. "displayName": "English (United States) [Default]"
  749. },
  750. "canChangePassword": true,
  751. "canUpdateUser": true,
  752. "allOpenRequestsCount": 46,
  753. "pendingApprovalsCount": 0,
  754. "approvalsCount": 0,
  755. "customMenuLinks": [],
  756. "notificationType": "html",
  757. "canAdministerJIRA": true,
  758. "agentForPortal": true
  759. },
  760. "sharedPortal": {
  761. "name": "Help Center",
  762. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  763. "kbs": {
  764. "kbEnabled": false
  765. }
  766. }
  767. }
  768.  
  769. JSON payload:
  770. {
  771. "portals": [{
  772. "id": "1",
  773. "key": "sd",
  774. "name": "Service Desk",
  775. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  776. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  777. }, {
  778. "id": "3",
  779. "key": "sup",
  780. "name": "Support",
  781. "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
  782. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
  783. }, {
  784. "id": "4",
  785. "key": "sd2",
  786. "name": "SERvice Desk 2",
  787. "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
  788. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
  789. }, {
  790. "id": "6",
  791. "key": "kluc",
  792. "name": "klucz",
  793. "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
  794. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
  795. }],
  796. "helpCenterBranding": {
  797. "logoUrl": "",
  798. "logoId": ""
  799. },
  800. "portalWebFragments": {
  801. "headerPanels": [],
  802. "subheaderPanels": [],
  803. "footerPanels": [{
  804. "params": {},
  805. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  806. "name": "WebPanel: Links",
  807. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  808. }],
  809. "pagePanels": {}
  810. },
  811. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  812. "user": {
  813. "key": "admin",
  814. "userName": "admin",
  815. "avatars": {
  816. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  817. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  818. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  819. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  820. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  821. },
  822. "displayName": "Michał Sztuka",
  823. "email": "michal.sztuka@intenso.pl",
  824. "timezone": {
  825. "id": "JIRA",
  826. "regionKey": "JIRA",
  827. "city": "Belgrade",
  828. "gmtOffset": "(GMT+01:00)"
  829. },
  830. "language": {
  831. "key": "en_US",
  832. "displayName": "English (United States) [Default]"
  833. },
  834. "canChangePassword": true,
  835. "canUpdateUser": true,
  836. "allOpenRequestsCount": 46,
  837. "pendingApprovalsCount": 0,
  838. "approvalsCount": 0,
  839. "customMenuLinks": [],
  840. "notificationType": "html",
  841. "canAdministerJIRA": true,
  842. "agentForPortal": false
  843. },
  844. "sharedPortal": {
  845. "name": "Help Center",
  846. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  847. "kbs": {
  848. "kbEnabled": false
  849. }
  850. }
  851. }
  852.  
  853. http://localhost:8080/sandbox/servicedesk/customer/user/requests?status=open&reporter=all - strona my requests
  854.  
  855. http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
  856. {
  857. "models": ["user", "organisations", "sharedPortal", "helpCenterBranding", "announcement", "allReqFilter", "portalWebFragments", "organisations"],
  858. "options": {
  859. "portalId": 1,
  860. "allReqFilter": {
  861. "reporter": "all",
  862. "status": "open",
  863. "portalId": "",
  864. "requestTypeId": "",
  865. "filter": "",
  866. "selectedPage": 1
  867. },
  868. "portalWebFragments": {
  869. "portalPage": "MY_REQUESTS"
  870. }
  871. }
  872. }
  873. Response
  874. {
  875. "helpCenterBranding": {
  876. "logoUrl": "",
  877. "logoId": ""
  878. },
  879. "allReqFilter": {
  880. "reporterFilter": "all",
  881. "status": "open",
  882. "portalId": "",
  883. "requestTypeId": "",
  884. "filter": "",
  885. "selectedPage": 1,
  886. "resultsPerPage": 20,
  887. "totalResults": 52,
  888. "totalPages": 3,
  889. "requests": [{
  890. "key": "SD-80",
  891. "requestIcon": 10532,
  892. "requestTypeName": "Bundled Fields Test",
  893. "summary": "sdas",
  894. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  895. "portalName": "Service Desk",
  896. "status": "In Progress",
  897. "reporterDisplayName": "Michał Sztuka",
  898. "new": false
  899. }, {
  900. "key": "SD-82",
  901. "requestIcon": 10532,
  902. "requestTypeName": "Bundled Fields Test",
  903. "summary": "sd",
  904. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  905. "portalName": "Service Desk",
  906. "status": "Waiting for support",
  907. "reporterDisplayName": "Michał Sztuka",
  908. "new": true
  909. }, {
  910. "key": "SD-81",
  911. "requestIcon": 10532,
  912. "requestTypeName": "Bundled Fields Test",
  913. "summary": "xasd",
  914. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  915. "portalName": "Service Desk",
  916. "status": "Waiting for support",
  917. "reporterDisplayName": "Michał Sztuka",
  918. "new": true
  919. }, {
  920. "key": "SD-79",
  921. "requestIcon": 10532,
  922. "requestTypeName": "Bundled Fields Test",
  923. "summary": "asd",
  924. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  925. "portalName": "Service Desk",
  926. "status": "Waiting for support",
  927. "reporterDisplayName": "Michał Sztuka",
  928. "new": true
  929. }, {
  930. "key": "SD-78",
  931. "requestIcon": 10532,
  932. "requestTypeName": "Bundled Fields Test",
  933. "summary": "test bundled",
  934. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  935. "portalName": "Service Desk",
  936. "status": "Waiting for support",
  937. "reporterDisplayName": "Michał Sztuka",
  938. "new": true
  939. }, {
  940. "key": "SD-77",
  941. "requestIcon": 10532,
  942. "requestTypeName": "Bundled Fields Test",
  943. "summary": "Test bundled",
  944. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  945. "portalName": "Service Desk",
  946. "status": "Waiting for support",
  947. "reporterDisplayName": "Michał Sztuka",
  948. "new": true
  949. }, {
  950. "key": "SD-76",
  951. "requestIcon": 10532,
  952. "requestTypeName": "Bundled Fields Test",
  953. "summary": "test",
  954. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  955. "portalName": "Service Desk",
  956. "status": "Waiting for support",
  957. "reporterDisplayName": "Michał Sztuka",
  958. "new": true
  959. }, {
  960. "key": "SD-75",
  961. "requestIcon": 10527,
  962. "requestTypeName": "IT help",
  963. "summary": "df",
  964. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  965. "portalName": "Service Desk",
  966. "status": "Waiting for support",
  967. "reporterDisplayName": "Michał Sztuka",
  968. "new": true
  969. }, {
  970. "key": "SD-74",
  971. "requestIcon": 10527,
  972. "requestTypeName": "IT help",
  973. "summary": "test issue links",
  974. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  975. "portalName": "Service Desk",
  976. "status": "Waiting for support",
  977. "reporterDisplayName": "Michał Sztuka",
  978. "new": true
  979. }, {
  980. "key": "SUPPORT-254",
  981. "requestIcon": 10527,
  982. "requestTypeName": "Get IT help",
  983. "summary": "dasd",
  984. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
  985. "portalName": "Support",
  986. "status": "Waiting for support",
  987. "reporterDisplayName": "Michał Sztuka",
  988. "new": true
  989. }, {
  990. "key": "SUPPORT-253",
  991. "requestIcon": 10527,
  992. "requestTypeName": "Get IT help",
  993. "summary": "das",
  994. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
  995. "portalName": "Support",
  996. "status": "Waiting for support",
  997. "reporterDisplayName": "Michał Sztuka",
  998. "new": true
  999. }, {
  1000. "key": "SD-71",
  1001. "requestIcon": 10527,
  1002. "requestTypeName": "IT help",
  1003. "summary": "tees",
  1004. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1005. "portalName": "Service Desk",
  1006. "status": "Waiting for support",
  1007. "reporterDisplayName": "Michał Sztuka",
  1008. "new": true
  1009. }, {
  1010. "key": "SD-69",
  1011. "requestIcon": 10527,
  1012. "requestTypeName": "IT help",
  1013. "summary": "test",
  1014. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1015. "portalName": "Service Desk",
  1016. "status": "Waiting for support",
  1017. "reporterDisplayName": "Zwykły Janusz",
  1018. "new": true
  1019. }, {
  1020. "key": "SD-51",
  1021. "requestIcon": 10527,
  1022. "requestTypeName": "IT help",
  1023. "summary": "asd",
  1024. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1025. "portalName": "Service Desk",
  1026. "status": "Waiting for support",
  1027. "reporterDisplayName": "Michał Sztuka",
  1028. "new": true
  1029. }, {
  1030. "key": "SD-50",
  1031. "requestIcon": 10527,
  1032. "requestTypeName": "IT help",
  1033. "summary": "asda",
  1034. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1035. "portalName": "Service Desk",
  1036. "status": "Waiting for support",
  1037. "reporterDisplayName": "Zwykły Janusz",
  1038. "new": true
  1039. }, {
  1040. "key": "SD-49",
  1041. "requestIcon": 10527,
  1042. "requestTypeName": "IT help",
  1043. "summary": "asd",
  1044. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1045. "portalName": "Service Desk",
  1046. "status": "Waiting for support",
  1047. "reporterDisplayName": "Zwykły Janusz",
  1048. "new": true
  1049. }, {
  1050. "key": "SD-48",
  1051. "requestIcon": 10527,
  1052. "requestTypeName": "IT help",
  1053. "summary": "asd",
  1054. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1055. "portalName": "Service Desk",
  1056. "status": "Waiting for support",
  1057. "reporterDisplayName": "Zwykły Janusz",
  1058. "new": true
  1059. }, {
  1060. "key": "SD-47",
  1061. "requestIcon": 10527,
  1062. "requestTypeName": "IT help",
  1063. "summary": "asd",
  1064. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1065. "portalName": "Service Desk",
  1066. "status": "Waiting for support",
  1067. "reporterDisplayName": "Zwykły Janusz",
  1068. "new": true
  1069. }, {
  1070. "key": "SD-46",
  1071. "requestIcon": 10527,
  1072. "requestTypeName": "IT help",
  1073. "summary": "e",
  1074. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1075. "portalName": "Service Desk",
  1076. "status": "Waiting for support",
  1077. "reporterDisplayName": "Zwykły Janusz",
  1078. "new": true
  1079. }, {
  1080. "key": "SD-45",
  1081. "requestIcon": 10527,
  1082. "requestTypeName": "IT help",
  1083. "summary": "asd",
  1084. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1085. "portalName": "Service Desk",
  1086. "status": "Waiting for support",
  1087. "reporterDisplayName": "Michał Sztuka",
  1088. "new": true
  1089. }],
  1090. "portalRequestTypes": [{
  1091. "id": "4",
  1092. "name": "SERvice Desk 2",
  1093. "requestTypes": [{
  1094. "value": "240",
  1095. "displayValue": "IT help",
  1096. "requestTypeIcon": 10527
  1097. }]
  1098. }, {
  1099. "id": "3",
  1100. "name": "Support",
  1101. "requestTypes": [{
  1102. "value": "15",
  1103. "displayValue": "Get IT help",
  1104. "requestTypeIcon": 10527
  1105. }]
  1106. }, {
  1107. "id": "6",
  1108. "name": "klucz",
  1109. "requestTypes": [{
  1110. "value": "247",
  1111. "displayValue": "IT help",
  1112. "requestTypeIcon": 10527
  1113. }]
  1114. }, {
  1115. "id": "1",
  1116. "name": "Service Desk",
  1117. "requestTypes": [{
  1118. "value": "1",
  1119. "displayValue": "IT help",
  1120. "requestTypeIcon": 10527
  1121. }, {
  1122. "value": "2",
  1123. "displayValue": "Computer support",
  1124. "requestTypeIcon": 10510
  1125. }, {
  1126. "value": "256",
  1127. "displayValue": "Bundled Fields Test",
  1128. "requestTypeIcon": 10532
  1129. }, {
  1130. "value": "6",
  1131. "displayValue": "Travel request",
  1132. "requestTypeIcon": 10515
  1133. }]
  1134. }]
  1135. },
  1136. "portalWebFragments": {
  1137. "headerPanels": [],
  1138. "subheaderPanels": [{
  1139. "params": {},
  1140. "key": "com.intenso.jira.plugins.jsd-extender:sla-on-requests-list",
  1141. "name": "WebPanel: SLA on requests list",
  1142. "html": "<div id='intensoSlaJson' data-title='<th>Time to resolution<\/th><th>Time to first response<\/th>' data='{\"SD-80\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 22/May/18 3:43 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: Monday 4:32 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Entered Status: Waiting for customer / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1d 4h<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-82\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: Yesterday 9:48 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-11h 6m<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: Monday 9:48 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Comment: For Customers / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1d 11h<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-81\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: Yesterday 9:48 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-11h 7m<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: Monday 9:48 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Resolution: Set / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1d 11h<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-79\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 17/May/18 1:31 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 3d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 1:31 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Entered Status: Waiting for customer / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-78\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 17/May/18 1:10 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 3d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 1:10 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Comment: For Customers / Entered Status: Waiting for customer / Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-77\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 17/May/18 1:08 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 3d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 1:08 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Comment: For Customers / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-76\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 17/May/18 1:07 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 3d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 1:07 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Comment: For Customers / Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-75\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 1:24 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 15/May/18 1:24 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Comment: For Customers / Resolution: Set / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-2w<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-74\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 16/May/18 10:06 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 15/May/18 10:06 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Entered Status: Waiting for customer / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-2w<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SUPPORT-254\":\"<td style=\\\"text-align:center\\\">N/A<\\/td><td style=\\\"text-align:center\\\">N/A<\\/td>\",\"SUPPORT-253\":\"<td style=\\\"text-align:center\\\">N/A<\\/td><td style=\\\"text-align:center\\\">N/A<\\/td>\",\"SD-71\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 02/May/18 9:26 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-3w 4d<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 01/May/18 9:26 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Comment: For Customers / Resolution: Set / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-69\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 02/May/18 9:00 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 01/May/18 9:00 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Comment: For Customers / Resolution: Set / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-51\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 2:22 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 2:22 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Resolution: Set / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-50\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 2:03 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 2:03 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Resolution: Set / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-49\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 2:03 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 2:03 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Resolution: Set / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-48\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 2:00 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 2:00 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Comment: For Customers / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-47\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 2:00 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 2:00 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Comment: For Customers / Entered Status: Waiting for customer<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-46\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 1:57 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 1:57 PM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set / Entered Status: Waiting for customer / Comment: For Customers<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\",\"SD-45\":\"<td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 24/Apr/18 11:34 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td><td><div class=\\\"sla-tag-example-wrapper\\\"><div class=\\\"sla-tag sla-tag-ongoing sla-tag-breached js-tooltip\\\" data-html=\\\"true\\\" title=\\\"<div>Due: 23/Apr/18 11:34 AM +02:00 Europe/Belgrade<\\/div><div>Matches: All remaining issues<\\/div><div>Runs until: Entered Status: Waiting for customer / Comment: For Customers / Resolution: Set<\\/div>\\\"><div style=\\\"mso-number-format: \\\\@;\\\">-1mo<\\/div><span class=\\\"aui-icon aui-icon-small aui-iconfont-time sla-status-icon\\\"><\\/span><\\/div><\\/div><\\/td>\"}'><\/div><script>\n (function () {\n\n jQuery(document).ready(function () {\n let slaAdded = false;\n\n function applySlaOnRequestList() {\n if (jQuery(\".aui.cv-requests-list\").length > 0 && slaAdded === false) {\n slaAdded = true;\n clearInterval(slaIntervalId);\n let table = jQuery(\".aui.cv-requests-list\");\n let intensoSLAJson = jQuery(\"#intensoSlaJson\");\n if (intensoSLAJson.length > 0) {\n table.find(\"thead\").find(\"tr\").append(intensoSLAJson.attr(\"data-title\"));\n let json = JSON.parse(intensoSLAJson.attr(\"data\"));\n let trs = table.find(\"tbody\").find(\"tr\");\n jQuery.each(trs, function () {\n let key = jQuery(this).find(\".cv-reference-cell\").text();\n jQuery(this).append(json[key]);\n });\n }\n }\n };\n\n let slaIntervalId = setInterval(function () {\n applySlaOnRequestList()\n }, 50);\n })\n })()\n<\/script>"
  1143. }, {
  1144. "params": {},
  1145. "key": "com.intenso.jira.plugins.jsd-extender:my-requests-export",
  1146. "name": "WebPanel: Export my requests",
  1147. "html": "\n\n<a href=\"#dwarfers\" aria-owns=\"dwarfers\" aria-haspopup=\"true\" class=\"aui-button aui-style-default aui-dropdown2-trigger\"\n style=\"float: right\">\n <span class=\"aui-icon aui-icon-small aui-iconfont-export\">export<\/span>\n Export\n<\/a>\n\n<div id=\"dwarfers\" class=\"aui-style-default aui-dropdown2\">\n <ul class=\"aui-list-truncate\">\n <li>\n <a id=\"export-all-requests-link\"\n href=\"#\"\n onclick=\"exportAllRequests()\">CSV(All requests)<\/a>\n <\/li>\n <li>\n <a id=\"export-current-requests-link\"\n href=\"#\"\n onclick=\"exportCurrentRequests()\">CSV(Current requests)<\/a>\n <\/li>\n <\/ul>\n<\/div>\n\n<iframe id=\"export-my-requests-link-iframe\" style=\"display:none;\"><\/iframe>\n\n<script>\n function exportAllRequests() {\n document.getElementById(\"export-my-requests-link-iframe\").src = AJS.contextPath() +\"/rest/sp4jsd/1.0/myrequests/export\";\n }\n\n function exportCurrentRequests() {\n document.getElementById(\"export-my-requests-link-iframe\").src = AJS.contextPath() + \"/rest/sp4jsd/1.0/myrequests/export\" + location.search;\n }\n<\/script>"
  1148. }],
  1149. "footerPanels": [{
  1150. "params": {},
  1151. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  1152. "name": "WebPanel: Links",
  1153. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  1154. }],
  1155. "pagePanels": {}
  1156. },
  1157. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  1158. "organisations": {
  1159. "organisations": [{
  1160. "id": 1,
  1161. "name": "Organizacja"
  1162. }]
  1163. },
  1164. "user": {
  1165. "key": "admin",
  1166. "userName": "admin",
  1167. "avatars": {
  1168. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  1169. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  1170. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  1171. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  1172. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  1173. },
  1174. "displayName": "Michał Sztuka",
  1175. "email": "michal.sztuka@intenso.pl",
  1176. "timezone": {
  1177. "id": "JIRA",
  1178. "regionKey": "JIRA",
  1179. "city": "Belgrade",
  1180. "gmtOffset": "(GMT+01:00)"
  1181. },
  1182. "language": {
  1183. "key": "en_US",
  1184. "displayName": "English (United States) [Default]"
  1185. },
  1186. "canChangePassword": true,
  1187. "canUpdateUser": true,
  1188. "allOpenRequestsCount": 46,
  1189. "pendingApprovalsCount": 0,
  1190. "approvalsCount": 0,
  1191. "customMenuLinks": [],
  1192. "notificationType": "html",
  1193. "canAdministerJIRA": true,
  1194. "agentForPortal": true
  1195. },
  1196. "sharedPortal": {
  1197. "name": "Help Center",
  1198. "description": "<p>Welcome to the help center - we&#39;re here to help! Raise a request from the options provided.<\/p>",
  1199. "kbs": {
  1200. "kbEnabled": false
  1201. }
  1202. },
  1203. "announcement": {
  1204. "header": "",
  1205. "headerWiki": "",
  1206. "message": "",
  1207. "messageWiki": "",
  1208. "canEditAnnouncement": true,
  1209. "portalId": null
  1210. }
  1211. }
  1212.  
  1213. JSON payload:
  1214. {
  1215. "helpCenterBranding": {
  1216. "logoUrl": "",
  1217. "logoId": ""
  1218. },
  1219. "allReqFilter": {
  1220. "reporterFilter": "all",
  1221. "status": "open",
  1222. "portalId": "",
  1223. "requestTypeId": "",
  1224. "selectedPage": 1,
  1225. "resultsPerPage": 20,
  1226. "totalResults": 52,
  1227. "totalPages": 3,
  1228. "requests": [{
  1229. "key": "SD-80",
  1230. "requestIcon": 10532,
  1231. "requestTypeName": "Bundled Fields Test",
  1232. "summary": "sdas",
  1233. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1234. "portalName": "Service Desk",
  1235. "status": "In Progress",
  1236. "reporterDisplayName": "Michał Sztuka",
  1237. "new": false
  1238. }, {
  1239. "key": "SD-82",
  1240. "requestIcon": 10532,
  1241. "requestTypeName": "Bundled Fields Test",
  1242. "summary": "sd",
  1243. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1244. "portalName": "Service Desk",
  1245. "status": "Waiting for support",
  1246. "reporterDisplayName": "Michał Sztuka",
  1247. "new": true
  1248. }, {
  1249. "key": "SD-81",
  1250. "requestIcon": 10532,
  1251. "requestTypeName": "Bundled Fields Test",
  1252. "summary": "xasd",
  1253. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1254. "portalName": "Service Desk",
  1255. "status": "Waiting for support",
  1256. "reporterDisplayName": "Michał Sztuka",
  1257. "new": true
  1258. }, {
  1259. "key": "SD-79",
  1260. "requestIcon": 10532,
  1261. "requestTypeName": "Bundled Fields Test",
  1262. "summary": "asd",
  1263. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1264. "portalName": "Service Desk",
  1265. "status": "Waiting for support",
  1266. "reporterDisplayName": "Michał Sztuka",
  1267. "new": true
  1268. }, {
  1269. "key": "SD-78",
  1270. "requestIcon": 10532,
  1271. "requestTypeName": "Bundled Fields Test",
  1272. "summary": "test bundled",
  1273. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1274. "portalName": "Service Desk",
  1275. "status": "Waiting for support",
  1276. "reporterDisplayName": "Michał Sztuka",
  1277. "new": true
  1278. }, {
  1279. "key": "SD-77",
  1280. "requestIcon": 10532,
  1281. "requestTypeName": "Bundled Fields Test",
  1282. "summary": "Test bundled",
  1283. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1284. "portalName": "Service Desk",
  1285. "status": "Waiting for support",
  1286. "reporterDisplayName": "Michał Sztuka",
  1287. "new": true
  1288. }, {
  1289. "key": "SD-76",
  1290. "requestIcon": 10532,
  1291. "requestTypeName": "Bundled Fields Test",
  1292. "summary": "test",
  1293. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1294. "portalName": "Service Desk",
  1295. "status": "Waiting for support",
  1296. "reporterDisplayName": "Michał Sztuka",
  1297. "new": true
  1298. }, {
  1299. "key": "SD-75",
  1300. "requestIcon": 10527,
  1301. "requestTypeName": "IT help",
  1302. "summary": "df",
  1303. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1304. "portalName": "Service Desk",
  1305. "status": "Waiting for support",
  1306. "reporterDisplayName": "Michał Sztuka",
  1307. "new": true
  1308. }, {
  1309. "key": "SD-74",
  1310. "requestIcon": 10527,
  1311. "requestTypeName": "IT help",
  1312. "summary": "test issue links",
  1313. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1314. "portalName": "Service Desk",
  1315. "status": "Waiting for support",
  1316. "reporterDisplayName": "Michał Sztuka",
  1317. "new": true
  1318. }, {
  1319. "key": "SUPPORT-254",
  1320. "requestIcon": 10527,
  1321. "requestTypeName": "Get IT help",
  1322. "summary": "dasd",
  1323. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
  1324. "portalName": "Support",
  1325. "status": "Waiting for support",
  1326. "reporterDisplayName": "Michał Sztuka",
  1327. "new": true
  1328. }, {
  1329. "key": "SUPPORT-253",
  1330. "requestIcon": 10527,
  1331. "requestTypeName": "Get IT help",
  1332. "summary": "das",
  1333. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
  1334. "portalName": "Support",
  1335. "status": "Waiting for support",
  1336. "reporterDisplayName": "Michał Sztuka",
  1337. "new": true
  1338. }, {
  1339. "key": "SD-71",
  1340. "requestIcon": 10527,
  1341. "requestTypeName": "IT help",
  1342. "summary": "tees",
  1343. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1344. "portalName": "Service Desk",
  1345. "status": "Waiting for support",
  1346. "reporterDisplayName": "Michał Sztuka",
  1347. "new": true
  1348. }, {
  1349. "key": "SD-69",
  1350. "requestIcon": 10527,
  1351. "requestTypeName": "IT help",
  1352. "summary": "test",
  1353. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1354. "portalName": "Service Desk",
  1355. "status": "Waiting for support",
  1356. "reporterDisplayName": "Zwykły Janusz",
  1357. "new": true
  1358. }, {
  1359. "key": "SD-51",
  1360. "requestIcon": 10527,
  1361. "requestTypeName": "IT help",
  1362. "summary": "asd",
  1363. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1364. "portalName": "Service Desk",
  1365. "status": "Waiting for support",
  1366. "reporterDisplayName": "Michał Sztuka",
  1367. "new": true
  1368. }, {
  1369. "key": "SD-50",
  1370. "requestIcon": 10527,
  1371. "requestTypeName": "IT help",
  1372. "summary": "asda",
  1373. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1374. "portalName": "Service Desk",
  1375. "status": "Waiting for support",
  1376. "reporterDisplayName": "Zwykły Janusz",
  1377. "new": true
  1378. }, {
  1379. "key": "SD-49",
  1380. "requestIcon": 10527,
  1381. "requestTypeName": "IT help",
  1382. "summary": "asd",
  1383. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1384. "portalName": "Service Desk",
  1385. "status": "Waiting for support",
  1386. "reporterDisplayName": "Zwykły Janusz",
  1387. "new": true
  1388. }, {
  1389. "key": "SD-48",
  1390. "requestIcon": 10527,
  1391. "requestTypeName": "IT help",
  1392. "summary": "asd",
  1393. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1394. "portalName": "Service Desk",
  1395. "status": "Waiting for support",
  1396. "reporterDisplayName": "Zwykły Janusz",
  1397. "new": true
  1398. }, {
  1399. "key": "SD-47",
  1400. "requestIcon": 10527,
  1401. "requestTypeName": "IT help",
  1402. "summary": "asd",
  1403. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1404. "portalName": "Service Desk",
  1405. "status": "Waiting for support",
  1406. "reporterDisplayName": "Zwykły Janusz",
  1407. "new": true
  1408. }, {
  1409. "key": "SD-46",
  1410. "requestIcon": 10527,
  1411. "requestTypeName": "IT help",
  1412. "summary": "e",
  1413. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1414. "portalName": "Service Desk",
  1415. "status": "Waiting for support",
  1416. "reporterDisplayName": "Zwykły Janusz",
  1417. "new": true
  1418. }, {
  1419. "key": "SD-45",
  1420. "requestIcon": 10527,
  1421. "requestTypeName": "IT help",
  1422. "summary": "asd",
  1423. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1424. "portalName": "Service Desk",
  1425. "status": "Waiting for support",
  1426. "reporterDisplayName": "Michał Sztuka",
  1427. "new": true
  1428. }],
  1429. "portalRequestTypes": [{
  1430. "id": "4",
  1431. "name": "SERvice Desk 2",
  1432. "requestTypes": [{
  1433. "value": "240",
  1434. "displayValue": "IT help",
  1435. "requestTypeIcon": 10527
  1436. }]
  1437. }, {
  1438. "id": "3",
  1439. "name": "Support",
  1440. "requestTypes": [{
  1441. "value": "15",
  1442. "displayValue": "Get IT help",
  1443. "requestTypeIcon": 10527
  1444. }]
  1445. }, {
  1446. "id": "6",
  1447. "name": "klucz",
  1448. "requestTypes": [{
  1449. "value": "247",
  1450. "displayValue": "IT help",
  1451. "requestTypeIcon": 10527
  1452. }]
  1453. }, {
  1454. "id": "1",
  1455. "name": "Service Desk",
  1456. "requestTypes": [{
  1457. "value": "1",
  1458. "displayValue": "IT help",
  1459. "requestTypeIcon": 10527
  1460. }, {
  1461. "value": "2",
  1462. "displayValue": "Computer support",
  1463. "requestTypeIcon": 10510
  1464. }, {
  1465. "value": "256",
  1466. "displayValue": "Bundled Fields Test",
  1467. "requestTypeIcon": 10532
  1468. }, {
  1469. "value": "6",
  1470. "displayValue": "Travel request",
  1471. "requestTypeIcon": 10515
  1472. }]
  1473. }]
  1474. },
  1475. "portalWebFragments": {
  1476. "headerPanels": [],
  1477. "subheaderPanels": [{
  1478. "params": {},
  1479. "key": "com.intenso.jira.plugins.jsd-extender:sla-on-requests-list",
  1480. "name": "WebPanel: SLA on requests list",
  1481. "html": "<script>\n (function () {\n\n jQuery(document).ready(function () {\n let slaAdded = false;\n\n function applySlaOnRequestList() {\n if (jQuery(\".aui.cv-requests-list\").length > 0 && slaAdded === false) {\n slaAdded = true;\n clearInterval(slaIntervalId);\n let table = jQuery(\".aui.cv-requests-list\");\n let intensoSLAJson = jQuery(\"#intensoSlaJson\");\n if (intensoSLAJson.length > 0) {\n table.find(\"thead\").find(\"tr\").append(intensoSLAJson.attr(\"data-title\"));\n let json = JSON.parse(intensoSLAJson.attr(\"data\"));\n let trs = table.find(\"tbody\").find(\"tr\");\n jQuery.each(trs, function () {\n let key = jQuery(this).find(\".cv-reference-cell\").text();\n jQuery(this).append(json[key]);\n });\n }\n }\n };\n\n let slaIntervalId = setInterval(function () {\n applySlaOnRequestList()\n }, 50);\n })\n })()\n<\/script>"
  1482. }, {
  1483. "params": {},
  1484. "key": "com.intenso.jira.plugins.jsd-extender:my-requests-export",
  1485. "name": "WebPanel: Export my requests",
  1486. "html": "\n\n<a href=\"#dwarfers\" aria-owns=\"dwarfers\" aria-haspopup=\"true\" class=\"aui-button aui-style-default aui-dropdown2-trigger\"\n style=\"float: right\">\n <span class=\"aui-icon aui-icon-small aui-iconfont-export\">export<\/span>\n Export\n<\/a>\n\n<div id=\"dwarfers\" class=\"aui-style-default aui-dropdown2\">\n <ul class=\"aui-list-truncate\">\n <li>\n <a id=\"export-all-requests-link\"\n href=\"#\"\n onclick=\"exportAllRequests()\">CSV(All requests)<\/a>\n <\/li>\n <li>\n <a id=\"export-current-requests-link\"\n href=\"#\"\n onclick=\"exportCurrentRequests()\">CSV(Current requests)<\/a>\n <\/li>\n <\/ul>\n<\/div>\n\n<iframe id=\"export-my-requests-link-iframe\" style=\"display:none;\"><\/iframe>\n\n<script>\n function exportAllRequests() {\n document.getElementById(\"export-my-requests-link-iframe\").src = AJS.contextPath() +\"/rest/sp4jsd/1.0/myrequests/export\";\n }\n\n function exportCurrentRequests() {\n document.getElementById(\"export-my-requests-link-iframe\").src = AJS.contextPath() + \"/rest/sp4jsd/1.0/myrequests/export\" + location.search;\n }\n<\/script>"
  1487. }],
  1488. "footerPanels": [{
  1489. "params": {},
  1490. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  1491. "name": "WebPanel: Links",
  1492. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');…
  1493.  
  1494.  
  1495.  
  1496. RefinedWiki :
  1497.  
  1498. http://localhost:8080/sandbox/plugins/servlet/desk - główna strona
  1499.  
  1500. Models:
  1501. users, organizations, recentRequestTypes, portalWebFragments, popularPortals, sharedPortal, portals
  1502.  
  1503. Name
  1504.  
  1505.  
  1506. Request
  1507. {
  1508. "models": ["portals"],
  1509. "options": {}
  1510. }
  1511. Response
  1512. {
  1513. "portals": [{
  1514. "id": "1",
  1515. "key": "sd",
  1516. "name": "Service Desk",
  1517. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  1518. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  1519. }, {
  1520. "id": "3",
  1521. "key": "sup",
  1522. "name": "Support",
  1523. "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
  1524. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
  1525. }, {
  1526. "id": "4",
  1527. "key": "sd2",
  1528. "name": "SERvice Desk 2",
  1529. "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
  1530. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
  1531. }, {
  1532. "id": "6",
  1533. "key": "kluc",
  1534. "name": "klucz",
  1535. "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
  1536. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
  1537. }],
  1538. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
  1539. }
  1540. {"models":["portal"],"options":{"portalId":"1","portal":{"id":"1","expand":["reqTypes","reqGroups","orderMapping"]}}}
  1541. Name
  1542.  
  1543. {
  1544. "portal": {
  1545. "id": "1",
  1546. "key": "sd",
  1547. "projectId": 10100,
  1548. "serviceDeskId": 1,
  1549. "name": "Service Desk",
  1550. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  1551. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1552. "onlyPortal": false,
  1553. "reqTypes": [{
  1554. "id": "2",
  1555. "key": "desktoplaptopsupport",
  1556. "name": "Computer support",
  1557. "descriptionHtml": "",
  1558. "callToAction": "Computer support",
  1559. "introHtml": "<p>If you have problems with your laptop, let us know here.<\/p>",
  1560. "icon": 10510,
  1561. "groups": [1]
  1562. }, {
  1563. "id": "238",
  1564. "key": "230f44c8-0598-4e06-b644-fd57fec2b1cf",
  1565. "name": "test2222",
  1566. "descriptionHtml": "",
  1567. "callToAction": "test2222",
  1568. "introHtml": "",
  1569. "icon": 10532,
  1570. "groups": [1]
  1571. }, {
  1572. "id": "239",
  1573. "key": "07470ac8-3366-4efe-bfd7-5d3b8b75e46d",
  1574. "name": "test222",
  1575. "descriptionHtml": "",
  1576. "callToAction": "test222",
  1577. "introHtml": "",
  1578. "icon": 10532,
  1579. "groups": [1]
  1580. }, {
  1581. "id": "255",
  1582. "key": "8678f865-25df-4898-baa4-a8da3e97df3f",
  1583. "name": "Hardware",
  1584. "descriptionHtml": "",
  1585. "callToAction": "Hardware",
  1586. "introHtml": "",
  1587. "icon": 10532,
  1588. "groups": [1]
  1589. }, {
  1590. "id": "256",
  1591. "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
  1592. "name": "Bundled Fields Test",
  1593. "descriptionHtml": "",
  1594. "callToAction": "Bundled Fields Test",
  1595. "introHtml": "",
  1596. "icon": 10532,
  1597. "groups": [1]
  1598. }, {
  1599. "id": "1",
  1600. "key": "getithelp",
  1601. "name": "IT help",
  1602. "descriptionHtml": "",
  1603. "callToAction": "IT help",
  1604. "introHtml": "<p>Get general tech support, like help with the Wi-Fi or printing.<\/p>",
  1605. "icon": 10527,
  1606. "groups": [1]
  1607. }, {
  1608. "id": "3",
  1609. "key": "purchaseunder100",
  1610. "name": "Purchase under $100",
  1611. "descriptionHtml": "",
  1612. "callToAction": "Purchase under $100",
  1613. "introHtml": "<p>Order something small, like a keyboard. If it's under $100, you don't need approval.<\/p>",
  1614. "icon": 10512,
  1615. "groups": [1]
  1616. }, {
  1617. "id": "4",
  1618. "key": "employeeexit",
  1619. "name": "Employee exit",
  1620. "descriptionHtml": "",
  1621. "callToAction": "Employee exit",
  1622. "introHtml": "<p>Moving on to better things? Start your transition here.<\/p>",
  1623. "icon": 10526,
  1624. "groups": [1]
  1625. }, {
  1626. "id": "5",
  1627. "key": "newemployee",
  1628. "name": "New employee",
  1629. "descriptionHtml": "",
  1630. "callToAction": "New employee",
  1631. "introHtml": "<p>Onboard a new hire.<\/p>",
  1632. "icon": 10531,
  1633. "groups": [1]
  1634. }, {
  1635. "id": "6",
  1636. "key": "travelrequests",
  1637. "name": "Travel request",
  1638. "descriptionHtml": "",
  1639. "callToAction": "Travel request",
  1640. "introHtml": "<p>Got travel plans? Start the process here.<\/p>",
  1641. "icon": 10515,
  1642. "groups": [2]
  1643. }, {
  1644. "id": "7",
  1645. "key": "purchaseover100",
  1646. "name": "Purchase over $100",
  1647. "descriptionHtml": "",
  1648. "callToAction": "Purchase over $100",
  1649. "introHtml": "<p>Order something big, like a new phone. Purchases over $100 require approval.<\/p>",
  1650. "icon": 10536,
  1651. "groups": [2]
  1652. }],
  1653. "reqGroups": [{
  1654. "id": 1,
  1655. "name": "General"
  1656. }, {
  1657. "id": 2,
  1658. "name": "Need approval"
  1659. }],
  1660. "orderMapping": {
  1661. "2": [6, 7],
  1662. "1": [256, 255, 239, 238, 1, 2, 3, 4, 5, 31, 32]
  1663. },
  1664. "createPermission": true,
  1665. "openRequestCount": 0,
  1666. "announcement": {
  1667. "header": "",
  1668. "headerWiki": "",
  1669. "message": "",
  1670. "messageWiki": "",
  1671. "canEditAnnouncement": true,
  1672. "portalId": 1
  1673. }
  1674. },
  1675. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
  1676. }
  1677. Search jest ten sam
  1678. http://localhost:8080/sandbox/plugins/servlet/desk/portal/1/create/256 - konkretne zgłoszenie
  1679. przy konkretnym zgłoszeniu pobierane jest http://localhost:8080/sandbox/servicedesk/customer/portal/1/create/256
  1680. {
  1681. "helpCenterBranding": {
  1682. "logoUrl": "",
  1683. "logoId": ""
  1684. },
  1685. "portal": {
  1686. "id": "1",
  1687. "key": "sd",
  1688. "projectId": 10100,
  1689. "serviceDeskId": 1,
  1690. "name": "Service Desk",
  1691. "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
  1692. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
  1693. "onlyPortal": false,
  1694. "createPermission": true,
  1695. "openRequestCount": 0,
  1696. "announcement": {
  1697. "header": "",
  1698. "headerWiki": "",
  1699. "message": "",
  1700. "messageWiki": "",
  1701. "canEditAnnouncement": true,
  1702. "portalId": 1
  1703. }
  1704. },
  1705. "reqCreate": {
  1706. "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
  1707. "id": 256,
  1708. "projectId": 10100,
  1709. "form": {
  1710. "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
  1711. "name": "Bundled Fields Test",
  1712. "descriptionHtml": "",
  1713. "callToAction": "Bundled Fields Test",
  1714. "intro": "",
  1715. "instructions": "",
  1716. "icon": 10532
  1717. },
  1718. "fields": [{
  1719. "fieldType": "reporter",
  1720. "fieldId": "reporter",
  1721. "fieldConfigId": "",
  1722. "label": "Raise this request on behalf of",
  1723. "description": "",
  1724. "descriptionHtml": "",
  1725. "required": true,
  1726. "displayed": true,
  1727. "defaultObject": {
  1728. "id": "admin",
  1729. "emailAddress": "michal.sztuka@intenso.pl",
  1730. "displayName": "Michał Sztuka",
  1731. "avatar": "http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall"
  1732. },
  1733. "defaultObjectAsJson": "{\"id\":\"admin\",\"emailAddress\":\"michal.sztuka@intenso.pl\",\"displayName\":\"Michał Sztuka\",\"avatar\":\"http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall\"}"
  1734. }, {
  1735. "fieldType": "text",
  1736. "fieldId": "summary",
  1737. "fieldConfigId": "",
  1738. "label": "Summary",
  1739. "description": "",
  1740. "descriptionHtml": "",
  1741. "required": true,
  1742. "displayed": true
  1743. }, {
  1744. "fieldType": "organisationpicker",
  1745. "fieldId": "customfield_10103",
  1746. "fieldConfigId": "10303",
  1747. "label": "",
  1748. "description": "",
  1749. "descriptionHtml": "",
  1750. "required": false,
  1751. "displayed": true
  1752. }],
  1753. "userOrganisations": [{
  1754. "id": 1,
  1755. "name": "Organizacja"
  1756. }],
  1757. "canBrowseUsers": true,
  1758. "requestCreateBaseUrl": "/sandbox/servicedesk/customer/portal/1/create/256",
  1759. "calendarParams": {
  1760. "firstDay": 0,
  1761. "date": "2018-05-30T13:59:56+0200",
  1762. "useISO8601WeekNumbers": false,
  1763. "dateIfFormat": "%e/%b/%y",
  1764. "dateTimeIfFormat": "%e/%b/%y %I:%M %p",
  1765. "timeFormat": "12"
  1766. },
  1767. "kbs": {
  1768. "kbEnabled": false,
  1769. "serviceDeskId": -1
  1770. },
  1771. "canRaiseOnBehalf": true,
  1772. "canSignupCustomers": true,
  1773. "canCreateAttachments": true,
  1774. "attachmentRequiredField": false,
  1775. "welcomeGuideItemAlreadyCompleted": true,
  1776. "hasGroups": true,
  1777. "canSubmitWithEmailAddress": true
  1778. },
  1779. "portalWebFragments": {
  1780. "headerPanels": [],
  1781. "subheaderPanels": [],
  1782. "footerPanels": [{
  1783. "params": {},
  1784. "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
  1785. "name": "WebPanel: Links",
  1786. "html": "\n<script>\n\n var JSDExtender = {};\n\n JSDExtender.LoadIntensoLinks = function() {\n if(jQuery(\"#intensoLinksRawHtml\").length === 0) {\n JSDExtender.PutEmptyLinks();\n jQuery.get(JSDExtender.GetPathForLinksApi() , function (data) {\n if(data) {\n jQuery(\".intensoLinks\").remove();\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(data);\n jQuery('#intensoLinksRawHtml').attr('data',data);\n JSDExtender.ApplyLinks();\n }\n });\n }\n };\n\n JSDExtender.PutEmptyLinks = function() {\n jQuery(\".intensoLinks\").remove();\n jQuery(\".intensoLinksAriaOwn\").remove();\n jQuery(\"body\").append(\"<div id=\\'intensoLinksRawHtml\\' class=\\'cv-json-fragment\\'><\/div>\");\n };\n\n JSDExtender.ApplyLinks = function() {\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(jQuery(\".intensoLinks:visible\").length === 0) {\n var htmlToInserted = jQuery(\"#intensoLinksRawHtml\").attr('data');\n jQuery('.aui-header-secondary').find('ul.aui-nav').prepend(htmlToInserted);\n }\n\n jQuery(\".languageLink\").click(function() {\n var currentUrl = window.location.href;\n var toUrl = window.location.href;\n jQuery.ajax ({\n url: contextPath + \"/rest/sp4jsd/1.0/jsdextender/lang?lang=\"+jQuery(this).attr('langCode'),\n type: \"POST\",\n dataType: \"json\",\n contentType: \"application/json; charset=utf-8\",\n success: function(){\n if((currentUrl.indexOf('#') > -1) && (!JSDExtender.isIe9()))\n toUrl=toUrl.replace(\"#\",\"\");\n if(currentUrl.indexOf(\"?changeLang=true\") === -1)\n toUrl = toUrl + \"?changeLang=true\";\n window.location.href=toUrl;\n if(JSDExtender.isIe9())\n window.location.reload();\n }\n });\n });\n };\n\n JSDExtender.isInRequestView=function(){\n var url = window.location.href;\n return url.search('/servicedesk/customer/user/requests')>-1?true:false;\n }\n\n JSDExtender.GetRequestTypeId = function() {\n var url = window.location.href;\n if(url.search('/create/')>-1){\n var pathUrl = url.substr(url.lastIndexOf('/create/')+8);\n var pathArray = pathUrl.split('/');\n if(pathArray.length>0){\n return pathArray[0];\n }\n }\n else return \"\"\n };\n\n JSDExtender.getIssueKey = function() {\n var url = window.location.href;\n\n var regex = /portal\\/\\d+\\/[a-zA-Z]+-\\d+$/;\n if(regex.test(url)){\n var splittedUrl =\turl.split('/');\n if(splittedUrl.length > 1){\n return splittedUrl[splittedUrl.length-1];\n }\n }\n return \"\"\n };\n\n\n\n JSDExtender.GetProjectId = function() {\n var url = window.location.href;\n var partUrl = url.substr(url.lastIndexOf('/customer') + 1);\n var pathArray = partUrl.split('?')[0].split( '/' );\n if(partUrl.indexOf('#') > -1){\n if(isNaN(pathArray[1])){\n return \"\";\n }\n return pathArray[1];\n } else {\n if(isNaN(pathArray[2])){\n return \"\";\n }\n return pathArray[2];\n }\n };\n\n JSDExtender.GetPathForLinksApi = function(){\n var projectId = JSDExtender.GetProjectId();\n var requestTypeId = JSDExtender.GetRequestTypeId();\n var contextPath = jQuery.parseJSON(jQuery(\"#envJson\").text()).contextPath;\n if(JSDExtender.isInRequestView()){\n return contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/requestsview\" ;\n }\n var path = contextPath+\"/rest/sp4jsd/1.0/jsdextender/availableLinks/\" ;\n if(projectId!==''){\n path+=\"projectId/\"+projectId+\"/\";\n if(requestTypeId!==\"\"){\n path+=\"requestType/\"+requestTypeId;\n }\n if(JSDExtender.getIssueKey()!==''){\n path+=\"requestTypeKey/\"+ JSDExtender.getIssueKey();\n }\n }\n return path;\n };\n\n\n JSDExtender.isSafari = function() {\n var userAgent = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';\n var vendor = 'navigator' in window && 'vendor' in navigator && navigator.vendor.toLowerCase() || '';\n return /safari/i.test(userAgent) && /apple computer/i.test(vendor);\n };\n\n JSDExtender.isFirefox = function() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n };\n\n JSDExtender.isIe = function() {\n return (navigator.userAgent.indexOf(\"MSIE\") != -1 ) || (!!document.documentMode == true );\n };\n\n JSDExtender.isIe9 = function() {\n return (navigator.userAgent.indexOf(\"MSIE 9\") != -1 );\n };\n\n JSDExtender.LoadAfterChangeLanguage = function() {\n jQuery(\"#intensoSharedJson\").remove();\n jQuery(\"#intensoOtherJson\").remove();\n jQuery(\"#intensoLinksRawHtml\").remove();\n };\n\n\n\n jQuery(document).ready(function(){\n\n\n JSDExtender.LoadAfterChangeLanguage();\n JSDExtender.LoadIntensoLinks();\n /*\n JSDExtender.ApplyOrder();\n */\n\n /*\n SP-1033\n Problem with datepicker\n https://jira.atlassian.com/browse/JSD-4455\n */\n (function startObservation() {\n\n var observer = new MutationObserver(\n function(mutations) {\n mutationObserverCallback(mutations);\n }),\n config = {\n childList: true\n };\n\n observer.observe(jQuery('body')[0], config);\n })();\n\n function mutationObserverCallback(mutations) {\n for(var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var addedNodes = mutation.addedNodes;\n if(typeof addedNodes != 'undefined') {\n for(var j = 0; j < addedNodes.length; j++) {\n var node = addedNodes[j];\n var classesList = node.classList;\n if(jQuery.inArray( \"calendar\", classesList) != -1) {\n var outerHTML = node.outerHTML;\n if(outerHTML.indexOf(\"left: 0px\") != -1)\n jQuery(node).hide();\n }\n }\n }\n }\n }\n });\n\n<\/script>\n"
  1787. }, {
  1788. "params": {},
  1789. "key": "com.intenso.jira.plugins.jsd-extender:jsd-extender-panel",
  1790. "name": "WebPanel: Extender panel",
  1791. "html": "<meta name=\"deviniti-projectId\" content=\"10100\"/>\n <div id=\"intensoExtenderJson\" style=\"display: none\">\n {&quot;form&quot;:[{&quot;id&quot;:903,&quot;fieldId&quot;:&quot;customfield_11601&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[{&quot;optionId&quot;:10806,&quot;optionName&quot;:&quot;Drukarka&quot;,&quot;disabled&quot;:false,&quot;relatedFields&quot;:[{&quot;id&quot;:958,&quot;fieldId&quot;:&quot;customfield_10515&quot;,&quot;isRequired&quot;:false,&quot;useDefaultValue&quot;:false,&quot;dynamicFormId&quot;:903,&quot;optionId&quot;:10806,&quot;requestTypesIds&quot;:[-1]}]},{&quot;optionId&quot;:10807,&quot;optionName&quot;:&quot;Lapciok&quot;,&quot;disabled&quot;:false,&quot;relatedFields&quot;:[{&quot;id&quot;:959,&quot;fieldId&quot;:&quot;customfield_11600&quot;,&quot;isRequired&quot;:false,&quot;useDefaultValue&quot;:false,&quot;dynamicFormId&quot;:903,&quot;optionId&quot;:10807,&quot;requestTypesIds&quot;:[-1]}]},{&quot;optionId&quot;:10808,&quot;optionName&quot;:&quot;Telefon&quot;,&quot;disabled&quot;:false}],&quot;field&quot;:{&quot;fieldId&quot;:&quot;customfield_11601&quot;,&quot;fieldName&quot;:&quot;Typ sprzętu&quot;,&quot;type&quot;:&quot;Select List (single choice)&quot;}},{&quot;id&quot;:957,&quot;fieldId&quot;:&quot;priority&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[{&quot;optionId&quot;:1,&quot;optionName&quot;:&quot;Highest&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:2,&quot;optionName&quot;:&quot;High&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:3,&quot;optionName&quot;:&quot;Medium&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:4,&quot;optionName&quot;:&quot;Low&quot;,&quot;disabled&quot;:false},{&quot;optionId&quot;:5,&quot;optionName&quot;:&quot;Lowest&quot;,&quot;disabled&quot;:false}],&quot;field&quot;:{&quot;fieldId&quot;:&quot;priority&quot;,&quot;fieldName&quot;:&quot;Priority&quot;}},{&quot;id&quot;:956,&quot;fieldId&quot;:&quot;customfield_11500&quot;,&quot;isEnabled&quot;:true,&quot;projectId&quot;:10100,&quot;serviceDeskId&quot;:1,&quot;useGlobal&quot;:false,&quot;options&quot;:[],&quot;field&quot;:{&quot;fieldId&quot;:&quot;customfield_11500&quot;,&quot;fieldName&quot;:&quot;dsa&quot;,&quot;type&quot;:&quot;Select List (cascading)&quot;}}],&quot;removeNone&quot;:[],&quot;requirement&quot;:[],&quot;user&quot;:{&quot;userDisplayName&quot;:&quot;Michał Sztuka&quot;,&quot;avatarUrl&quot;:&quot;http://localhost:8080/sandbox/secure/useravatar?size\\u003dxsmall\\u0026avatarId\\u003d10350&quot;,&quot;username&quot;:&quot;admin&quot;}}\n <\/div>\n <div id=\"intensoExtenderDynamicRequiredField\" style=\"display: none\">\n Please provide a valid value for field &#39;fieldName&#39;\n <\/div>\n"
  1792. }, {
  1793. "params": {},
  1794. "key": "com.intenso.jira.plugins.jsd-extender:bundled-fields-cp-create-panel",
  1795. "name": "WebPanel: Bundled fields create",
  1796. "html": "<div id=\"jsd-bundled-fields-request-create\" style=\"display:none;\">\n {\"fields\":[{\"contextId\":11100,\"customFieldId\":\"10900\",\"customFieldName\":\"Bundled Fields Test\",\"isCFRequired\":false},{\"contextId\":11800,\"customFieldId\":\"11400\",\"customFieldName\":\"tete\",\"isCFRequired\":false}]}\n<\/div>\n<script type=\"text/javascript\">\n\n\tAJS.$(function() {\n window.JSD_BUNDLED_FIELDS.startCreateObserve(document.getElementById(\"content\"))\n\t});\n\n<\/script>\n"
  1797. }],
  1798. "pagePanels": {
  1799. "fieldPanels": []
  1800. }
  1801. },
  1802. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  1803. "user": {
  1804. "key": "admin",
  1805. "userName": "admin",
  1806. "avatars": {
  1807. "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
  1808. "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
  1809. "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
  1810. "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
  1811. "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
  1812. },
  1813. "displayName": "Michał Sztuka",
  1814. "email": "michal.sztuka@intenso.pl",
  1815. "timezone": {
  1816. "id": "JIRA",
  1817. "regionKey": "JIRA",
  1818. "city": "Belgrade",
  1819. "gmtOffset": "(GMT+01:00)"
  1820. },
  1821. "language": {
  1822. "key": "en_US",
  1823. "displayName": "English (United States) [Default]"
  1824. },
  1825. "canChangePassword": true,
  1826. "canUpdateUser": true,
  1827. "allOpenRequestsCount": 46,
  1828. "pendingApprovalsCount": 0,
  1829. "approvalsCount": 0,
  1830. "customMenuLinks": [],
  1831. "notificationType": "html",
  1832. "canAdministerJIRA": true,
  1833. "agentForPortal": true
  1834. },
  1835. "branding": {
  1836. "id": "1",
  1837. "key": "sd",
  1838. "name": "Service Desk",
  1839. "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
  1840. }
  1841. } {
  1842. "headless": false,
  1843. "tourEnabled": false,
  1844. "wacLink": "http://www.atlassian.com/software/jira/service-desk",
  1845. "serviceDeskVersion": "3.9.1",
  1846. "contextPath": "/sandbox",
  1847. "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
  1848. "baseUrl": "http://localhost:8080/sandbox/servicedesk/customer",
  1849. "relativeBaseUrl": "/sandbox/servicedesk/customer",
  1850. "customerLoginEnabled": true,
  1851. "maxAttachmentSize": "10485760",
  1852. "gravatarEnabled": true,
  1853. "onDemand": false,
  1854. "disabledFeatures": [],
  1855. "enabledDarkFeatures": ["com.atlassian.jira.agile.darkfeature.editable.detailsview", "nps.survey.inline.dialog", "com.atlassian.jira.agile.darkfeature.edit.closed.sprint.enabled", "jira.plugin.devstatus.phasetwo", "jira.frother.reporter.field", "atlassian.rest.xsrf.legacy.enabled", "jira.issue.status.lozenge", "com.atlassian.jira.config.BIG_PIPE", "com.atlassian.jira.projects.issuenavigator", "com.atlassian.jira.config.PDL", "jira.plugin.devstatus.phasetwo.enabled", "atlassian.aui.raphael.disabled", "app-switcher.new", "frother.assignee.field", "com.atlassian.jira.projects.ProjectCentricNavigation.Switch", "sd.internal.base.off.thread.on.completion.events.enabled", "jira.onboarding.cyoa", "com.atlassian.jira.agile.darkfeature.kanplan.enabled", "sd.slavalue.record.updated.date.enabled", "com.atlassian.jira.config.ProjectConfig.MENU", "com.atlassian.jira.projects.sidebar.DEFER_RESOURCES", "com.atlassian.jira.agile.darkfeature.kanplan.epics.and.versions.enabled", "com.atlassian.jira.agile.darkfeature.sprint.goal.enabled", "jira.zdu.admin-updates-ui", "jira.zdu.jmx-monitoring", "sd.sla.improved.rendering.enabled", "sd.canned.responses.enabled", "sd.new.settings.sidebar.location.disabled", "jira.zdu.cluster-upgrade-state", "com.atlassian.jira.agile.darkfeature.splitissue", "com.atlassian.jira.config.CoreFeatures.LICENSE_ROLES_ENABLED", "com.atlassian.feedback.feedback-button-move-to-header-enable", "jira.export.csv.enabled"],
  1856. "calendarDateData": {
  1857. "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  1858. "monthsShort": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
  1859. "weekdaysShort": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  1860. "weekdays": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
  1861. }
  1862. }
  1863.  
  1864.  
  1865. Obecnie:
  1866.  
  1867. Request type- nie działa w wyszukiwaniu, nie działa w recent
  1868. Field działa
  1869. Portal - nie działa w popular, nie działa w recentRequestTypes, nie działa w wyszukiwarce, po linku się nie wejdzie, ale da się przejść czyli portal pewnie tez nie jest blokowany
  1870. Options działa
  1871. Requirement działa ale nie widać gwiazdki przy polu
  1872. SLA nie działa na tabelce, ale tutaj musielibyśmy jakoś w jQuery dodawać do tabelki wpisy
  1873.  
  1874. Architektura
  1875. Resource'y (endpointy), Typy visibility, Komu blokujemy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement