Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Obecnie:
- * Service desk refresh filter - filtruje div'a z jsonem w którym są dane o portalu
- <url-pattern>/servicedesk/customer/*</url-pattern>
- * Service desk model filter - obsługuje całego resta z którego korzysta portal klienta
- <url-pattern>/rest/servicedesk/1/customer/models</url-pattern>
- Filtrowanie jsona
- * Service desk search
- <url-pattern>/rest/servicedesk/search/1/search/request-type*</url-pattern>
- * Request visibility filter
- <url-pattern>/servicedesk/customer/portal/*/create/*</url-pattern>
- * Portal visibility
- <url-pattern>/servicedesk/customer/portal/*</url-pattern>
- Visibility:
- * Request type - blokujemy tylko tworzenie requestów o danym typie, nie ruszamy utworzonych
- Wchodzenie po linku na tworzenie Requesta o konkretnym typie
- https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk/{serviceDeskId}/requesttype
- * Field - można blokować poniższego resta i na ekranie tworzenia należy blokować widoczność konkretnych pól
- https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk/{serviceDeskId}/requesttype/{requestTypeId}/field
- * Portal - blokowanie po linku dostęp do portalu klienta, pytanie co z utworzonymi już requestami
- https://docs.atlassian.com/jira-servicedesk/REST/3.9.1/#servicedeskapi/servicedesk
- * Options - blokowanie wyświetlania konkrenych opcji na ekranie tworzenia (tylko jQuery) ?
- * Requirements - blokowanie wyświetlania require na polu na ekranie tworzenia (tylko jQuery) ?
- Customer portal strony i models rest:
- http://localhost:8080/sandbox/rest/servicedesk/search/1/search/request-type?query=s&resultLimit=5&_=1527676384165 - wyszukiwanie request type'ów
- W response dostajemy
- {
- "requestTypes": [{
- "id": 16,
- "cvId": 3,
- "icon": 10520,
- "issueType": 10101,
- "name": "Fix an account problem",
- "portalName": "Support",
- "description": "Having trouble accessing certain websites or systems? We'll help you out.",
- "searchScore": 0.0
- }]
- }
- 1.
- http://localhost:8080/sandbox/servicedesk/customer/portals - strona główna
- Elementy do blokowania:
- * popular portals
- * recent request types
- * wyszukiwarka
- http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
- {
- models: ["organisations", "announcement", "popularPortal", "recentRequestTypes"],
- options: {}
- }
- W response:
- {
- "organisations": {
- "organisations": [{
- "id": 1,
- "name": "Organizacja"
- }]
- },
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": null
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
- }
- lub
- {
- "popularPortals": [{
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "description": "Welcome! You can raise a Service Desk request from the options provided.",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }, {
- "id": "4",
- "key": "sd2",
- "name": "SERvice Desk 2",
- "description": "Welcome! You can raise a SERvice Desk 2 request from the options provided.",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
- }, {
- "id": "3",
- "key": "sup",
- "name": "Support",
- "description": "Welcome! You can raise a Support request from the options provided.",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
- }, {
- "id": "6",
- "key": "kluc",
- "name": "klucz",
- "description": "Welcome! You can raise a klucz request from the options provided.",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
- }],
- "recentRequestTypes": [{
- "id": 256,
- "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
- "cvId": 1,
- "icon": 10532,
- "name": "Bundled Fields Test",
- "portalName": "Service Desk",
- "description": ""
- }, {
- "id": 1,
- "key": "getithelp",
- "cvId": 1,
- "icon": 10527,
- "name": "IT help",
- "portalName": "Service Desk",
- "description": "Get general tech support, like help with the Wi-Fi or printing."
- }, {
- "id": 15,
- "key": "getithelp",
- "cvId": 3,
- "icon": 10527,
- "name": "Get IT help",
- "portalName": "Support",
- "description": "Get assistance for general IT problems and questions."
- }],
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
- }
- JSON Payload:
- {
- "portals": [{
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }, {
- "id": "3",
- "key": "sup",
- "name": "Support",
- "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
- }, {
- "id": "4",
- "key": "sd2",
- "name": "SERvice Desk 2",
- "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
- }, {
- "id": "6",
- "key": "kluc",
- "name": "klucz",
- "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
- }],
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }],
- "pagePanels": {}
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": false
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- }
- }
- Konkretny Customer Portal:
- http://localhost:8080/sandbox/servicedesk/customer/portal/1
- Elementy
- * wyszukiwarka
- * Grupy request type'ów
- * Request type'y
- http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
- {
- "models": ["user", "organisations", "sharedPortal", "branding", "helpCenterBranding", "portal", "portalWebFragments"],
- "options": {
- "portalId": "1",
- "branding": {
- "id": "1"
- },
- "portal": {
- "id": "1",
- "expand": ["reqTypes", "reqGroups", "orderMapping", "kbs"]
- },
- "portalWebFragments": {
- "portalPage": "PORTAL"
- }
- }
- }
- Response
- {
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portal": {
- "id": "1",
- "key": "sd",
- "projectId": 10100,
- "serviceDeskId": 1,
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "onlyPortal": false,
- "reqTypes": [{
- "id": "2",
- "key": "desktoplaptopsupport",
- "name": "Computer support",
- "descriptionHtml": "",
- "callToAction": "Computer support",
- "introHtml": "<p>If you have problems with your laptop, let us know here.<\/p>",
- "icon": 10510,
- "groups": [1]
- }, {
- "id": "238",
- "key": "230f44c8-0598-4e06-b644-fd57fec2b1cf",
- "name": "test2222",
- "descriptionHtml": "",
- "callToAction": "test2222",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "239",
- "key": "07470ac8-3366-4efe-bfd7-5d3b8b75e46d",
- "name": "test222",
- "descriptionHtml": "",
- "callToAction": "test222",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "255",
- "key": "8678f865-25df-4898-baa4-a8da3e97df3f",
- "name": "Hardware",
- "descriptionHtml": "",
- "callToAction": "Hardware",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "256",
- "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
- "name": "Bundled Fields Test",
- "descriptionHtml": "",
- "callToAction": "Bundled Fields Test",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "1",
- "key": "getithelp",
- "name": "IT help",
- "descriptionHtml": "",
- "callToAction": "IT help",
- "introHtml": "<p>Get general tech support, like help with the Wi-Fi or printing.<\/p>",
- "icon": 10527,
- "groups": [1]
- }, {
- "id": "3",
- "key": "purchaseunder100",
- "name": "Purchase under $100",
- "descriptionHtml": "",
- "callToAction": "Purchase under $100",
- "introHtml": "<p>Order something small, like a keyboard. If it's under $100, you don't need approval.<\/p>",
- "icon": 10512,
- "groups": [1]
- }, {
- "id": "4",
- "key": "employeeexit",
- "name": "Employee exit",
- "descriptionHtml": "",
- "callToAction": "Employee exit",
- "introHtml": "<p>Moving on to better things? Start your transition here.<\/p>",
- "icon": 10526,
- "groups": [1]
- }, {
- "id": "5",
- "key": "newemployee",
- "name": "New employee",
- "descriptionHtml": "",
- "callToAction": "New employee",
- "introHtml": "<p>Onboard a new hire.<\/p>",
- "icon": 10531,
- "groups": [1]
- }, {
- "id": "6",
- "key": "travelrequests",
- "name": "Travel request",
- "descriptionHtml": "",
- "callToAction": "Travel request",
- "introHtml": "<p>Got travel plans? Start the process here.<\/p>",
- "icon": 10515,
- "groups": [2]
- }, {
- "id": "7",
- "key": "purchaseover100",
- "name": "Purchase over $100",
- "descriptionHtml": "",
- "callToAction": "Purchase over $100",
- "introHtml": "<p>Order something big, like a new phone. Purchases over $100 require approval.<\/p>",
- "icon": 10536,
- "groups": [2]
- }],
- "reqGroups": [{
- "id": 1,
- "name": "General"
- }, {
- "id": 2,
- "name": "Need approval"
- }],
- "orderMapping": {
- "2": [6, 7],
- "1": [256, 255, 239, 238, 1, 2, 3, 4, 5, 31, 32]
- },
- "kbs": {
- "kbEnabled": false,
- "serviceDeskId": -1
- },
- "createPermission": true,
- "openRequestCount": 0,
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": 1
- }
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }],
- "pagePanels": {}
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "organisations": {
- "organisations": [{
- "id": 1,
- "name": "Organizacja"
- }]
- },
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": true
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- },
- "branding": {
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }
- }
- JSON payload:
- {
- "portals": [{
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }, {
- "id": "3",
- "key": "sup",
- "name": "Support",
- "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
- }, {
- "id": "4",
- "key": "sd2",
- "name": "SERvice Desk 2",
- "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
- }, {
- "id": "6",
- "key": "kluc",
- "name": "klucz",
- "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
- }],
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }],
- "pagePanels": {}
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": false
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- }
- }
- http://localhost:8080/sandbox/servicedesk/customer/portal/1/create/6 - strona tworzenia requesta
- Sam formularz
- http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
- {
- "models": ["user", "organisations", "sharedPortal", "portal", "helpCenterBranding", "reqCreate", "portalWebFragments"],
- "options": {
- "portalId": "1",
- "portal": {
- "id": "1"
- },
- "reqCreate": {
- "id": "6"
- },
- "portalWebFragments": {
- "portalPage": "CREATE_REQUEST"
- }
- }
- }
- Response
- {
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portal": {
- "id": "1",
- "key": "sd",
- "projectId": 10100,
- "serviceDeskId": 1,
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "onlyPortal": false,
- "createPermission": true,
- "openRequestCount": 0,
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": 1
- }
- },
- "reqCreate": {
- "key": "travelrequests",
- "id": 6,
- "projectId": 10100,
- "form": {
- "key": "travelrequests",
- "name": "Travel request",
- "descriptionHtml": "",
- "callToAction": "Travel request",
- "intro": "<p>Got travel plans? Start the process here.<\/p>",
- "instructions": "",
- "icon": 10515
- },
- "fields": [{
- "fieldType": "reporter",
- "fieldId": "reporter",
- "fieldConfigId": "",
- "label": "Raise this request on behalf of",
- "description": "",
- "descriptionHtml": "",
- "required": true,
- "displayed": true,
- "defaultObject": {
- "id": "admin",
- "emailAddress": "michal.sztuka@intenso.pl",
- "displayName": "Michał Sztuka",
- "avatar": "http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall"
- },
- "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\"}"
- }, {
- "fieldType": "text",
- "fieldId": "summary",
- "fieldConfigId": "",
- "label": "Summary",
- "description": "Tell us where you're going and for how long. For example, '3 day trip to New York'.",
- "descriptionHtml": "<p>Tell us where you're going and for how long. For example, '3 day trip to New York'.<\/p>",
- "required": true,
- "displayed": true
- }, {
- "fieldType": "textarea",
- "fieldId": "description",
- "fieldConfigId": "",
- "label": "Description",
- "description": "Give us some details of your plans, for example why you're going, the dates you're gone, and a rough budget.",
- "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>",
- "required": true,
- "displayed": true
- }, {
- "fieldType": "multiuserpicker",
- "fieldId": "customfield_10106",
- "fieldConfigId": "10307",
- "label": "Approvers",
- "description": "",
- "descriptionHtml": "",
- "required": false,
- "displayed": true,
- "defaultList": [],
- "defaultListAsJson": "[]"
- }, {
- "fieldType": "select",
- "fieldId": "priority",
- "fieldConfigId": "10100",
- "label": "Priority",
- "description": "",
- "descriptionHtml": "",
- "required": false,
- "displayed": false,
- "values": [{
- "value": "1",
- "label": "Highest",
- "selected": false,
- "children": []
- }, {
- "value": "2",
- "label": "High",
- "selected": false,
- "children": []
- }, {
- "value": "3",
- "label": "Medium",
- "selected": true,
- "children": []
- }, {
- "value": "4",
- "label": "Low",
- "selected": false,
- "children": []
- }, {
- "value": "5",
- "label": "Lowest",
- "selected": false,
- "children": []
- }],
- "noneOptionRequired": false
- }, {
- "fieldType": "organisationpicker",
- "fieldId": "customfield_10103",
- "fieldConfigId": "10303",
- "label": "",
- "description": "",
- "descriptionHtml": "",
- "required": false,
- "displayed": true
- }],
- "userOrganisations": [{
- "id": 1,
- "name": "Organizacja"
- }],
- "canBrowseUsers": true,
- "requestCreateBaseUrl": "/sandbox/servicedesk/customer/portal/1/create/6",
- "calendarParams": {
- "firstDay": 0,
- "date": "2018-05-30T12:48:42+0200",
- "useISO8601WeekNumbers": false,
- "dateIfFormat": "%e/%b/%y",
- "dateTimeIfFormat": "%e/%b/%y %I:%M %p",
- "timeFormat": "12"
- },
- "kbs": {
- "kbEnabled": false,
- "serviceDeskId": -1
- },
- "canRaiseOnBehalf": true,
- "canSignupCustomers": true,
- "canCreateAttachments": true,
- "attachmentRequiredField": false,
- "welcomeGuideItemAlreadyCompleted": true,
- "hasGroups": true,
- "canSubmitWithEmailAddress": true
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:jsd-extender-panel",
- "name": "WebPanel: Extender panel",
- "html": "<meta name=\"deviniti-projectId\" content=\"10100\"/>\n <div id=\"intensoExtenderJson\" style=\"display: none\">\n {"form":[{"id":903,"fieldId":"customfield_11601","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[{"optionId":10806,"optionName":"Drukarka","disabled":false,"relatedFields":[{"id":958,"fieldId":"customfield_10515","isRequired":false,"useDefaultValue":false,"dynamicFormId":903,"optionId":10806,"requestTypesIds":[-1]}]},{"optionId":10807,"optionName":"Lapciok","disabled":false,"relatedFields":[{"id":959,"fieldId":"customfield_11600","isRequired":false,"useDefaultValue":false,"dynamicFormId":903,"optionId":10807,"requestTypesIds":[-1]}]},{"optionId":10808,"optionName":"Telefon","disabled":false}],"field":{"fieldId":"customfield_11601","fieldName":"Typ sprzętu","type":"Select List (single choice)"}},{"id":957,"fieldId":"priority","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[{"optionId":1,"optionName":"Highest","disabled":false},{"optionId":2,"optionName":"High","disabled":false},{"optionId":3,"optionName":"Medium","disabled":false},{"optionId":4,"optionName":"Low","disabled":false},{"optionId":5,"optionName":"Lowest","disabled":false}],"field":{"fieldId":"priority","fieldName":"Priority"}},{"id":956,"fieldId":"customfield_11500","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[],"field":{"fieldId":"customfield_11500","fieldName":"dsa","type":"Select List (cascading)"}}],"removeNone":[],"requirement":[],"user":{"userDisplayName":"Michał Sztuka","avatarUrl":"http://localhost:8080/sandbox/secure/useravatar?size\\u003dxsmall\\u0026avatarId\\u003d10350","username":"admin"}}\n <\/div>\n <div id=\"intensoExtenderDynamicRequiredField\" style=\"display: none\">\n Please provide a valid value for field 'fieldName'\n <\/div>\n"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:bundled-fields-cp-create-panel",
- "name": "WebPanel: Bundled fields create",
- "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"
- }],
- "pagePanels": {
- "fieldPanels": []
- }
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "organisations": {
- "organisations": [{
- "id": 1,
- "name": "Organizacja"
- }]
- },
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": true
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- }
- }
- JSON payload:
- {
- "portals": [{
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }, {
- "id": "3",
- "key": "sup",
- "name": "Support",
- "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
- }, {
- "id": "4",
- "key": "sd2",
- "name": "SERvice Desk 2",
- "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
- }, {
- "id": "6",
- "key": "kluc",
- "name": "klucz",
- "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
- }],
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }],
- "pagePanels": {}
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": false
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- }
- }
- http://localhost:8080/sandbox/servicedesk/customer/user/requests?status=open&reporter=all - strona my requests
- http://localhost:8080/sandbox/rest/servicedesk/1/customer/models - w request payload podaje się jakie elementy chcemy dostać np.
- {
- "models": ["user", "organisations", "sharedPortal", "helpCenterBranding", "announcement", "allReqFilter", "portalWebFragments", "organisations"],
- "options": {
- "portalId": 1,
- "allReqFilter": {
- "reporter": "all",
- "status": "open",
- "portalId": "",
- "requestTypeId": "",
- "filter": "",
- "selectedPage": 1
- },
- "portalWebFragments": {
- "portalPage": "MY_REQUESTS"
- }
- }
- }
- Response
- {
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "allReqFilter": {
- "reporterFilter": "all",
- "status": "open",
- "portalId": "",
- "requestTypeId": "",
- "filter": "",
- "selectedPage": 1,
- "resultsPerPage": 20,
- "totalResults": 52,
- "totalPages": 3,
- "requests": [{
- "key": "SD-80",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "sdas",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "In Progress",
- "reporterDisplayName": "Michał Sztuka",
- "new": false
- }, {
- "key": "SD-82",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "sd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-81",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "xasd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-79",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-78",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "test bundled",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-77",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "Test bundled",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-76",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "test",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-75",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "df",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-74",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "test issue links",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SUPPORT-254",
- "requestIcon": 10527,
- "requestTypeName": "Get IT help",
- "summary": "dasd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
- "portalName": "Support",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SUPPORT-253",
- "requestIcon": 10527,
- "requestTypeName": "Get IT help",
- "summary": "das",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
- "portalName": "Support",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-71",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "tees",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-69",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "test",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-51",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-50",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asda",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-49",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-48",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-47",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-46",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "e",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-45",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }],
- "portalRequestTypes": [{
- "id": "4",
- "name": "SERvice Desk 2",
- "requestTypes": [{
- "value": "240",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "3",
- "name": "Support",
- "requestTypes": [{
- "value": "15",
- "displayValue": "Get IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "6",
- "name": "klucz",
- "requestTypes": [{
- "value": "247",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "1",
- "name": "Service Desk",
- "requestTypes": [{
- "value": "1",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }, {
- "value": "2",
- "displayValue": "Computer support",
- "requestTypeIcon": 10510
- }, {
- "value": "256",
- "displayValue": "Bundled Fields Test",
- "requestTypeIcon": 10532
- }, {
- "value": "6",
- "displayValue": "Travel request",
- "requestTypeIcon": 10515
- }]
- }]
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:sla-on-requests-list",
- "name": "WebPanel: SLA on requests list",
- "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>"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:my-requests-export",
- "name": "WebPanel: Export my requests",
- "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>"
- }],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }],
- "pagePanels": {}
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "organisations": {
- "organisations": [{
- "id": 1,
- "name": "Organizacja"
- }]
- },
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": true
- },
- "sharedPortal": {
- "name": "Help Center",
- "description": "<p>Welcome to the help center - we're here to help! Raise a request from the options provided.<\/p>",
- "kbs": {
- "kbEnabled": false
- }
- },
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": null
- }
- }
- JSON payload:
- {
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "allReqFilter": {
- "reporterFilter": "all",
- "status": "open",
- "portalId": "",
- "requestTypeId": "",
- "selectedPage": 1,
- "resultsPerPage": 20,
- "totalResults": 52,
- "totalPages": 3,
- "requests": [{
- "key": "SD-80",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "sdas",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "In Progress",
- "reporterDisplayName": "Michał Sztuka",
- "new": false
- }, {
- "key": "SD-82",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "sd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-81",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "xasd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-79",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-78",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "test bundled",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-77",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "Test bundled",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-76",
- "requestIcon": 10532,
- "requestTypeName": "Bundled Fields Test",
- "summary": "test",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-75",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "df",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-74",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "test issue links",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SUPPORT-254",
- "requestIcon": 10527,
- "requestTypeName": "Get IT help",
- "summary": "dasd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
- "portalName": "Support",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SUPPORT-253",
- "requestIcon": 10527,
- "requestTypeName": "Get IT help",
- "summary": "das",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3",
- "portalName": "Support",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-71",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "tees",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-69",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "test",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-51",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }, {
- "key": "SD-50",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asda",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-49",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-48",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-47",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-46",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "e",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Zwykły Janusz",
- "new": true
- }, {
- "key": "SD-45",
- "requestIcon": 10527,
- "requestTypeName": "IT help",
- "summary": "asd",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "portalName": "Service Desk",
- "status": "Waiting for support",
- "reporterDisplayName": "Michał Sztuka",
- "new": true
- }],
- "portalRequestTypes": [{
- "id": "4",
- "name": "SERvice Desk 2",
- "requestTypes": [{
- "value": "240",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "3",
- "name": "Support",
- "requestTypes": [{
- "value": "15",
- "displayValue": "Get IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "6",
- "name": "klucz",
- "requestTypes": [{
- "value": "247",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }]
- }, {
- "id": "1",
- "name": "Service Desk",
- "requestTypes": [{
- "value": "1",
- "displayValue": "IT help",
- "requestTypeIcon": 10527
- }, {
- "value": "2",
- "displayValue": "Computer support",
- "requestTypeIcon": 10510
- }, {
- "value": "256",
- "displayValue": "Bundled Fields Test",
- "requestTypeIcon": 10532
- }, {
- "value": "6",
- "displayValue": "Travel request",
- "requestTypeIcon": 10515
- }]
- }]
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:sla-on-requests-list",
- "name": "WebPanel: SLA on requests list",
- "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>"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:my-requests-export",
- "name": "WebPanel: Export my requests",
- "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>"
- }],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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');…
- RefinedWiki :
- http://localhost:8080/sandbox/plugins/servlet/desk - główna strona
- Models:
- users, organizations, recentRequestTypes, portalWebFragments, popularPortals, sharedPortal, portals
- Name
- Request
- {
- "models": ["portals"],
- "options": {}
- }
- Response
- {
- "portals": [{
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }, {
- "id": "3",
- "key": "sup",
- "name": "Support",
- "description": "<p>Welcome! You can raise a Support request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/3"
- }, {
- "id": "4",
- "key": "sd2",
- "name": "SERvice Desk 2",
- "description": "<p>Welcome! You can raise a SERvice Desk 2 request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/4"
- }, {
- "id": "6",
- "key": "kluc",
- "name": "klucz",
- "description": "<p>Welcome! You can raise a klucz request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/6"
- }],
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
- }
- {"models":["portal"],"options":{"portalId":"1","portal":{"id":"1","expand":["reqTypes","reqGroups","orderMapping"]}}}
- Name
- {
- "portal": {
- "id": "1",
- "key": "sd",
- "projectId": 10100,
- "serviceDeskId": 1,
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "onlyPortal": false,
- "reqTypes": [{
- "id": "2",
- "key": "desktoplaptopsupport",
- "name": "Computer support",
- "descriptionHtml": "",
- "callToAction": "Computer support",
- "introHtml": "<p>If you have problems with your laptop, let us know here.<\/p>",
- "icon": 10510,
- "groups": [1]
- }, {
- "id": "238",
- "key": "230f44c8-0598-4e06-b644-fd57fec2b1cf",
- "name": "test2222",
- "descriptionHtml": "",
- "callToAction": "test2222",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "239",
- "key": "07470ac8-3366-4efe-bfd7-5d3b8b75e46d",
- "name": "test222",
- "descriptionHtml": "",
- "callToAction": "test222",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "255",
- "key": "8678f865-25df-4898-baa4-a8da3e97df3f",
- "name": "Hardware",
- "descriptionHtml": "",
- "callToAction": "Hardware",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "256",
- "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
- "name": "Bundled Fields Test",
- "descriptionHtml": "",
- "callToAction": "Bundled Fields Test",
- "introHtml": "",
- "icon": 10532,
- "groups": [1]
- }, {
- "id": "1",
- "key": "getithelp",
- "name": "IT help",
- "descriptionHtml": "",
- "callToAction": "IT help",
- "introHtml": "<p>Get general tech support, like help with the Wi-Fi or printing.<\/p>",
- "icon": 10527,
- "groups": [1]
- }, {
- "id": "3",
- "key": "purchaseunder100",
- "name": "Purchase under $100",
- "descriptionHtml": "",
- "callToAction": "Purchase under $100",
- "introHtml": "<p>Order something small, like a keyboard. If it's under $100, you don't need approval.<\/p>",
- "icon": 10512,
- "groups": [1]
- }, {
- "id": "4",
- "key": "employeeexit",
- "name": "Employee exit",
- "descriptionHtml": "",
- "callToAction": "Employee exit",
- "introHtml": "<p>Moving on to better things? Start your transition here.<\/p>",
- "icon": 10526,
- "groups": [1]
- }, {
- "id": "5",
- "key": "newemployee",
- "name": "New employee",
- "descriptionHtml": "",
- "callToAction": "New employee",
- "introHtml": "<p>Onboard a new hire.<\/p>",
- "icon": 10531,
- "groups": [1]
- }, {
- "id": "6",
- "key": "travelrequests",
- "name": "Travel request",
- "descriptionHtml": "",
- "callToAction": "Travel request",
- "introHtml": "<p>Got travel plans? Start the process here.<\/p>",
- "icon": 10515,
- "groups": [2]
- }, {
- "id": "7",
- "key": "purchaseover100",
- "name": "Purchase over $100",
- "descriptionHtml": "",
- "callToAction": "Purchase over $100",
- "introHtml": "<p>Order something big, like a new phone. Purchases over $100 require approval.<\/p>",
- "icon": 10536,
- "groups": [2]
- }],
- "reqGroups": [{
- "id": 1,
- "name": "General"
- }, {
- "id": 2,
- "name": "Need approval"
- }],
- "orderMapping": {
- "2": [6, 7],
- "1": [256, 255, 239, 238, 1, 2, 3, 4, 5, 31, 32]
- },
- "createPermission": true,
- "openRequestCount": 0,
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": 1
- }
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin"
- }
- Search jest ten sam
- http://localhost:8080/sandbox/plugins/servlet/desk/portal/1/create/256 - konkretne zgłoszenie
- przy konkretnym zgłoszeniu pobierane jest http://localhost:8080/sandbox/servicedesk/customer/portal/1/create/256
- {
- "helpCenterBranding": {
- "logoUrl": "",
- "logoId": ""
- },
- "portal": {
- "id": "1",
- "key": "sd",
- "projectId": 10100,
- "serviceDeskId": 1,
- "name": "Service Desk",
- "description": "<p>Welcome! You can raise a Service Desk request from the options provided.<\/p>",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1",
- "onlyPortal": false,
- "createPermission": true,
- "openRequestCount": 0,
- "announcement": {
- "header": "",
- "headerWiki": "",
- "message": "",
- "messageWiki": "",
- "canEditAnnouncement": true,
- "portalId": 1
- }
- },
- "reqCreate": {
- "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
- "id": 256,
- "projectId": 10100,
- "form": {
- "key": "daf946b6-ab11-4a34-96b1-d238ccc29f4c",
- "name": "Bundled Fields Test",
- "descriptionHtml": "",
- "callToAction": "Bundled Fields Test",
- "intro": "",
- "instructions": "",
- "icon": 10532
- },
- "fields": [{
- "fieldType": "reporter",
- "fieldId": "reporter",
- "fieldConfigId": "",
- "label": "Raise this request on behalf of",
- "description": "",
- "descriptionHtml": "",
- "required": true,
- "displayed": true,
- "defaultObject": {
- "id": "admin",
- "emailAddress": "michal.sztuka@intenso.pl",
- "displayName": "Michał Sztuka",
- "avatar": "http://localhost:8080/sandbox/rest/servicedesk/1/servicedesk/customer/avatar/10350?size=xsmall"
- },
- "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\"}"
- }, {
- "fieldType": "text",
- "fieldId": "summary",
- "fieldConfigId": "",
- "label": "Summary",
- "description": "",
- "descriptionHtml": "",
- "required": true,
- "displayed": true
- }, {
- "fieldType": "organisationpicker",
- "fieldId": "customfield_10103",
- "fieldConfigId": "10303",
- "label": "",
- "description": "",
- "descriptionHtml": "",
- "required": false,
- "displayed": true
- }],
- "userOrganisations": [{
- "id": 1,
- "name": "Organizacja"
- }],
- "canBrowseUsers": true,
- "requestCreateBaseUrl": "/sandbox/servicedesk/customer/portal/1/create/256",
- "calendarParams": {
- "firstDay": 0,
- "date": "2018-05-30T13:59:56+0200",
- "useISO8601WeekNumbers": false,
- "dateIfFormat": "%e/%b/%y",
- "dateTimeIfFormat": "%e/%b/%y %I:%M %p",
- "timeFormat": "12"
- },
- "kbs": {
- "kbEnabled": false,
- "serviceDeskId": -1
- },
- "canRaiseOnBehalf": true,
- "canSignupCustomers": true,
- "canCreateAttachments": true,
- "attachmentRequiredField": false,
- "welcomeGuideItemAlreadyCompleted": true,
- "hasGroups": true,
- "canSubmitWithEmailAddress": true
- },
- "portalWebFragments": {
- "headerPanels": [],
- "subheaderPanels": [],
- "footerPanels": [{
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:links-panel",
- "name": "WebPanel: Links",
- "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"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:jsd-extender-panel",
- "name": "WebPanel: Extender panel",
- "html": "<meta name=\"deviniti-projectId\" content=\"10100\"/>\n <div id=\"intensoExtenderJson\" style=\"display: none\">\n {"form":[{"id":903,"fieldId":"customfield_11601","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[{"optionId":10806,"optionName":"Drukarka","disabled":false,"relatedFields":[{"id":958,"fieldId":"customfield_10515","isRequired":false,"useDefaultValue":false,"dynamicFormId":903,"optionId":10806,"requestTypesIds":[-1]}]},{"optionId":10807,"optionName":"Lapciok","disabled":false,"relatedFields":[{"id":959,"fieldId":"customfield_11600","isRequired":false,"useDefaultValue":false,"dynamicFormId":903,"optionId":10807,"requestTypesIds":[-1]}]},{"optionId":10808,"optionName":"Telefon","disabled":false}],"field":{"fieldId":"customfield_11601","fieldName":"Typ sprzętu","type":"Select List (single choice)"}},{"id":957,"fieldId":"priority","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[{"optionId":1,"optionName":"Highest","disabled":false},{"optionId":2,"optionName":"High","disabled":false},{"optionId":3,"optionName":"Medium","disabled":false},{"optionId":4,"optionName":"Low","disabled":false},{"optionId":5,"optionName":"Lowest","disabled":false}],"field":{"fieldId":"priority","fieldName":"Priority"}},{"id":956,"fieldId":"customfield_11500","isEnabled":true,"projectId":10100,"serviceDeskId":1,"useGlobal":false,"options":[],"field":{"fieldId":"customfield_11500","fieldName":"dsa","type":"Select List (cascading)"}}],"removeNone":[],"requirement":[],"user":{"userDisplayName":"Michał Sztuka","avatarUrl":"http://localhost:8080/sandbox/secure/useravatar?size\\u003dxsmall\\u0026avatarId\\u003d10350","username":"admin"}}\n <\/div>\n <div id=\"intensoExtenderDynamicRequiredField\" style=\"display: none\">\n Please provide a valid value for field 'fieldName'\n <\/div>\n"
- }, {
- "params": {},
- "key": "com.intenso.jira.plugins.jsd-extender:bundled-fields-cp-create-panel",
- "name": "WebPanel: Bundled fields create",
- "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"
- }],
- "pagePanels": {
- "fieldPanels": []
- }
- },
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "user": {
- "key": "admin",
- "userName": "admin",
- "avatars": {
- "xsmall": "http://localhost:8080/sandbox/secure/useravatar?size=xsmall&avatarId=10350",
- "small": "http://localhost:8080/sandbox/secure/useravatar?size=small&avatarId=10350",
- "medium": "http://localhost:8080/sandbox/secure/useravatar?size=medium&avatarId=10350",
- "large": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350",
- "xlarge": "http://localhost:8080/sandbox/secure/useravatar?avatarId=10350"
- },
- "displayName": "Michał Sztuka",
- "email": "michal.sztuka@intenso.pl",
- "timezone": {
- "id": "JIRA",
- "regionKey": "JIRA",
- "city": "Belgrade",
- "gmtOffset": "(GMT+01:00)"
- },
- "language": {
- "key": "en_US",
- "displayName": "English (United States) [Default]"
- },
- "canChangePassword": true,
- "canUpdateUser": true,
- "allOpenRequestsCount": 46,
- "pendingApprovalsCount": 0,
- "approvalsCount": 0,
- "customMenuLinks": [],
- "notificationType": "html",
- "canAdministerJIRA": true,
- "agentForPortal": true
- },
- "branding": {
- "id": "1",
- "key": "sd",
- "name": "Service Desk",
- "portalBaseUrl": "/sandbox/servicedesk/customer/portal/1"
- }
- } {
- "headless": false,
- "tourEnabled": false,
- "wacLink": "http://www.atlassian.com/software/jira/service-desk",
- "serviceDeskVersion": "3.9.1",
- "contextPath": "/sandbox",
- "xsrfToken": "B1TV-J8MF-0IU0-KBE3|4fd3466710cb90897ddae294ef748aa2282521ea|lin",
- "baseUrl": "http://localhost:8080/sandbox/servicedesk/customer",
- "relativeBaseUrl": "/sandbox/servicedesk/customer",
- "customerLoginEnabled": true,
- "maxAttachmentSize": "10485760",
- "gravatarEnabled": true,
- "onDemand": false,
- "disabledFeatures": [],
- "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"],
- "calendarDateData": {
- "months": ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
- "monthsShort": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
- "weekdaysShort": ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
- "weekdays": ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- }
- }
- Obecnie:
- Request type- nie działa w wyszukiwaniu, nie działa w recent
- Field działa
- 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
- Options działa
- Requirement działa ale nie widać gwiazdki przy polu
- SLA nie działa na tabelce, ale tutaj musielibyśmy jakoś w jQuery dodawać do tabelki wpisy
- Architektura
- Resource'y (endpointy), Typy visibility, Komu blokujemy
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement