{"id":16307,"date":"2022-10-12T07:00:00","date_gmt":"2022-10-12T05:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=16307"},"modified":"2023-05-10T15:55:31","modified_gmt":"2023-05-10T13:55:31","slug":"wykorzystanie-angular-bootstrap-calendar-w-service-portalu","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/","title":{"rendered":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu"},"content":{"rendered":"\n<p>W ostatnich latach ServiceNow zyska\u0142 miano najlepszego narz\u0119dzia do zarz\u0105dzania procesami, us\u0142ugami oraz infrastruktur\u0105 w szeroko poj\u0119tym IT. Nazwany przez Forbes w 2018 roku najbardziej innowacyjn\u0105 firm\u0105, ServiceNow dzia\u0142a w modelu SaaS (software as a service), stale udoskonalaj\u0105c platform\u0119.<\/p>\n\n\n\n<p>Wyr\u00f3\u017cniaj\u0105c\u0105 funkcjonalno\u015bci\u0105 tej platformy jest modu\u0142 o nazwie <strong>Service Portal<\/strong>. Umo\u017cliwia on w znacznym stopniu dostosowanie oprogramowania do potrzeb klienta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Wprowadzenie<\/strong><\/h2>\n\n\n\n<p>Za pomoc\u0105 Service Portalu mo\u017cemy rozszerzy\u0107 lub nawet stworzy\u0107 od podstaw interfejs u\u017cytkownika, kt\u00f3ry b\u0119dzie wykorzystywa\u0142 inne funkcjonalno\u015bci ServiceNow. Modu\u0142 ten powsta\u0142 przy wykorzystaniu kilku znanych technologii.<\/p>\n\n\n\n<p>Jedn\u0105 z nich jest AngularJS \u2013 popularny front-endowy framework, pozwalaj\u0105cym w \u0142atwy spos\u00f3b tworzy\u0107 i utrzymywa\u0107 aplikacje internetowe ze z\u0142o\u017con\u0105 logik\u0105. Framework ten pozwala r\u00f3wnie\u017c na korzystanie z istniej\u0105cych, sprawdzonych ju\u017c rozwi\u0105za\u0144, co znacznie skraca czas implementacji niekt\u00f3rych element\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Angular Bootstrap Calendar<\/strong><\/h2>\n\n\n\n<p>Jako przyk\u0142ad mo\u017ce pos\u0142u\u017cy\u0107 widget Angular Bootstrap Calendar, kt\u00f3ry implementuje bardzo por\u0119czne <strong>rozwi\u0105zanie interfejsu kalendarza<\/strong>. Aby zainstalowa\u0107 ten widget musimy najpierw <a href=\"https:\/\/developer.servicenow.com\/connect.do#!\/share\/contents\/3031851_angular_bootstrap_calendar_widget?t=PRODUCT_DETAILS\" rel=\"nofollow\" >pobra\u0107 go ze strony<\/a>, a nast\u0119pnie doda\u0107 do naszej instancji ServiceNow.<\/p>\n\n\n\n<p>Kolejnym krokiem jest modyfikacja logiki, czego zadaniem jest dostosowanie kalendarza do potrzeb projektu. W tym celu nale\u017cy otworzy\u0107 w trybie edycji widget o nazwie angular_bootstrap_calendar w module Service Portal.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/?attachment_id=16308\"><img decoding=\"async\" width=\"1024\" height=\"177\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-1-1-1024x177.png\" alt=\"Angular Bootstrap Calendar w Service Portalu\" class=\"wp-image-16308\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-1-1-1024x177.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-1-1-300x52.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-1-1-768x133.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-1-1.png 1040w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ryc. 1 Angular Bootstrap Calendar w Service Portalu<\/figcaption><\/figure><\/div>\n\n\n\n<p>Jest to punkt wej\u015bcia dla logiki frontendowej, kt\u00f3r\u0105 da si\u0119 p\u00f3\u017aniej dostosowa\u0107 wedle naszych potrzeb.<\/p>\n\n\n\n<p>Opcji jest kilka. Mo\u017cemy u\u017cy\u0107 nazwy strony, aby otworzy\u0107 j\u0105 w pasku nawigacyjnym, u\u017cywaj\u0105c adresu URL: <br><em>https:\/\/instance_name.service-now.com\/sp?id=page_name<\/em><\/p>\n\n\n\n<p>Aby doda\u0107 lub zmodyfikowa\u0107 logik\u0119, mo\u017cemy skorzysta\u0107 z edytora stron Service Portal lub otworzy\u0107 Now Platform user interface, gdzie z kontenera przejdziemy do widgetu.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2.png\"><img decoding=\"async\" width=\"1024\" height=\"433\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2-1024x433.png\" alt=\"Page Content w Angular Bootstrap Calendar\" class=\"wp-image-16327\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2-1024x433.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2-300x127.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2-768x325.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-2-2.png 1324w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ryc. 2 Page Content w Angular Bootstrap Calendar<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Service Portal Widget<\/strong><\/h2>\n\n\n\n<p>Service Portal Widget sk\u0142ada si\u0119 z czterech element\u00f3w.<\/p>\n\n\n\n<p>Pierwszym z nich jest HTML, kt\u00f3ry zawiera powi\u0105zan\u0105 statyczn\u0105 logik\u0119. Poniewa\u017c ta cz\u0119\u015b\u0107 platformy szeroko wykorzystuje AngularJS, mo\u017cemy tutaj skorzysta\u0107 z dyrektyw frameworka.<\/p>\n\n\n\n<p>Kolejna cz\u0119\u015b\u0107 zawiera komponent CSS odpowiedzialny za form\u0119 prezentacji, wygl\u0105d strony. <\/p>\n\n\n\n<p>Je\u015bli chodzi o cz\u0119\u015b\u0107 skryptow\u0105 to mamy Client Script oraz Server Side:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Widget Scripts<\/strong><\/h3>\n\n\n\n<p>Zgodnie z nazwami, <strong>w sekcji Client Script umieszczamy logik\u0119 frontendow\u0105, natomiast Server Side Script zawiera operacje zwi\u0105zane z backendem.<\/strong> Client Script jest w zasadzie kontrolerem, kt\u00f3ry komunikuje si\u0119 z logik\u0105 umieszczon\u0105 w Server Side Script poprzez obiekt danych. Client Script jest pobierany w momencie \u0142adowania strony, ale mo\u017cemy go r\u00f3wnie\u017c od\u015bwie\u017cy\u0107 za pomoc\u0105 metody server.get, kt\u00f3ra pobiera dane z backendu. Z kolei Server Side ma dost\u0119p do wszystkich API ServiceNow Backendu, kt\u00f3re s\u0105 dost\u0119pne np. w Business Rules oraz Script Includes. Jest to pomocne zw\u0142aszcza przy pobieraniu danych z backendu za pomoc\u0105 GlideRecord API.<\/p>\n\n\n\n<p>Fakt, \u017ce wszystkie wcze\u015bniej wymienione komponenty, a tak\u017ce ca\u0142a platforma, jest zarz\u0105dzana w oparciu o JavaScript, sprawia, \u017ce jest ona \u0142atwa w utrzymaniu i dostosowywaniu do wymaga\u0144 danego u\u017cytkownika.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Wykorzystanie Bootstrap oraz AngularJS<\/strong><\/h2>\n\n\n\n<p>Widget opisany w artykule nosi nazw\u0119 test_angular_bootstrap_calendar i jak sama nazwa wskazuje w warstwie prezentacji wykorzystuje on znany framework o nazwie Bootstrap. Framework ten mo\u017cemy r\u00f3wnie\u017c u\u017cy\u0107 w wielu innych komponentach ServicePortalu.<\/p>\n\n\n\n<p>Podczas inspekcji kodu widgetu, mo\u017cna zauwa\u017cy\u0107, i\u017c zawiera on kolejny widget, wywo\u0142ywany przez dyrektyw\u0119 sp-widget podczas renderowania strony.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2.png\"><img decoding=\"async\" width=\"1024\" height=\"379\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2-1024x379.png\" alt=\"Inspekcja kodu widgetu\" class=\"wp-image-16330\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2-1024x379.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2-300x111.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2-768x285.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-3-2.png 1317w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ryc. 3 Inspekcja kodu widgetu<\/figcaption><\/figure><\/div>\n\n\n\n<p>Jak wida\u0107, bardzo \u0142atwo jest osadzi\u0107 inne widgety na stronie, co pozwala na tworzenie bardziej rozbudowanych narz\u0119dzi poprzez kompozycj\u0119 wielu widget\u00f3w. Drugi widget zawiera konfiguracj\u0119 paska nawigacyjnego kalendarza.<\/p>\n\n\n\n<p>Podczas inspekcji skryptu serwera g\u0142\u00f3wnego widgetu mo\u017cemy zobaczy\u0107 kod odpowiedzialny za pobieranie danych, kt\u00f3re p\u00f3\u017aniej b\u0119d\u0105 renderowane na stronie kalendarza.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-4.png\"><img decoding=\"async\" width=\"970\" height=\"554\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-4.png\" alt=\"Struktura danych na przyk\u0142adzie tablicy Events\" class=\"wp-image-16314\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-4.png 970w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-4-300x171.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-4-768x439.png 768w\" sizes=\"(max-width: 970px) 100vw, 970px\" \/><\/a><figcaption>Ryc. 4 Struktura danych na przyk\u0142adzie tablicy Events<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Pobieranie danych<\/strong><\/h3>\n\n\n\n<p>Jak wspomniano wcze\u015bniej GlideRecord s\u0142u\u017cy do pobierania danych z backendu. Mo\u017cemy wi\u0119c pobra\u0107 je z dowolnej tabeli np. time_sheet z aplikacji Project Management Module lub innej, stworzonej przez nas na w\u0142asne potrzeby.<\/p>\n\n\n\n<p>Aby jednak dane wy\u015bwietla\u0142y si\u0119 poprawnie, musimy zadba\u0107 o ich odpowiedni\u0105 struktur\u0119. Przyk\u0142ad widoczny jest na rysunku powy\u017cej pod tablic\u0105 o nazwie events. Zawiera list\u0119 zdarze\u0144, czyli element\u00f3w danego kalendarza. Ka\u017cdy z nich powinien posiada\u0107 w\u0142a\u015bciwo\u015bci takie jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>title,<\/li><li>color,<\/li><li>startsAt,<\/li><li>endsAt,<\/li><li>druggable,<\/li><li>resizable.<\/li><\/ul>\n\n\n\n<p>Niekt\u00f3re w\u0142a\u015bciwo\u015bci jak np. recursOn s\u0105 opcjonalne.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Rozszerzanie i modyfikacja logiki<\/strong><\/h2>\n\n\n\n<p>Podczas edytowania client script widzimy nast\u0119puj\u0105c\u0105 logik\u0119.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-5-1.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-5-1.png\" alt=\"Logika podczas edytowania Client script\" class=\"wp-image-16318\" width=\"696\" height=\"392\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-5-1.png 696w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-5-1-300x169.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-5-1-555x312.png 555w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><figcaption>Ryc. 5 Logika podczas edytowania Client script<\/figcaption><\/figure><\/div>\n\n\n\n<p>Skrypt mo\u017cemy rozszerza\u0107 lub zmienia\u0107 w zale\u017cno\u015bci od potrzeb. Powy\u017cszy kod jest odpowiedzialny za wywo\u0142anie modala ze szczeg\u00f3\u0142ami danego zdarzenia tzn. elementu w kalendarzu.<\/p>\n\n\n\n<p>Istnieje r\u00f3wnie\u017c cz\u0119\u015b\u0107 odpowiedzialna za formatowanie tekstu kalendarza zwi\u0105zanego z ka\u017cdym zdarzeniem. Ponadto, mo\u017cemy rozszerzy\u0107 t\u0105 logik\u0119, dodaj\u0105c w\u0142asne filtry, kt\u00f3re wska\u017c\u0105 wydarzenia dla danego u\u017cytkownika lub danego stanu.<\/p>\n\n\n\n<p>Aby to osi\u0105gn\u0105\u0107, musimy dostarczy\u0107 odpowiednie w\u0142a\u015bciwo\u015bci we wspomnianej wcze\u015bniej li\u015bcie zdarze\u0144. Powinni\u015bmy r\u00f3wnie\u017c zdefiniowa\u0107 dodatkow\u0105 funkcj\u0119 w kontrolerze i wywo\u0142a\u0107 j\u0105 po stronie HTML za pomoc\u0105 dyrektyw Angulara.<\/p>\n\n\n\n<p>Innym sposobem na rozszerzenie i modyfikacj\u0119 logiki jest wykorzystanie szablon\u00f3w Angulara. W widgecie znajdziemy je w sekcji related list. W tym przyk\u0142adzie jest to plik calendarControls.html, kt\u00f3ry zawiera cz\u0119\u015b\u0107 UI odpowiedzialn\u0105 za wyb\u00f3r r\u00f3\u017cnych opcji widoku kalendarza tj. dzie\u0144, tydzie\u0144, miesi\u0105c.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1.png\"><img decoding=\"async\" width=\"1024\" height=\"315\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1-1024x315.png\" alt=\"Wykorzystanie szablon\u00f3w Angulara do rozszerzania i modyfikowania logiki \" class=\"wp-image-16332\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1-1024x315.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1-300x92.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1-768x236.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/10\/Ryc.-6-1.png 1167w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Ryc. 6 Wykorzystanie szablon\u00f3w Angulara do rozszerzania i modyfikowania logiki<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Powy\u017cszy przyk\u0142ad prezentuje u\u017cycie komponentu Angular Bootstrap Calendar w Service Portalu. Jest to jednak jedynie jedno z wielu narz\u0119dzi dost\u0119pnych w module ServiceNow. Uzmys\u0142awia to jak elastycznym i \u0142atwym w konfiguracji jest Service Portal.<\/p>\n\n\n\n<p>Fakt, \u017ce wykorzystuje on takie frameworki jak AngularJS i Bootstrap sprawia, \u017ce staje si\u0119 idealnym narz\u0119dziem do tworzenia spersonalizowanych rozwi\u0105za\u0144. Dzi\u0119ki temu, \u017ce mamy mo\u017cliwo\u015b\u0107 korzystania z wtyczek, narz\u0119dzi i bibliotek, mo\u017cemy wdro\u017cy\u0107 wymagania klienta w stosunkowo kr\u00f3tkim czasie oraz rozbudowa\u0107 ServiceNow o nowe funkcjonalno\u015bci, kt\u00f3re nie s\u0105 na starcie dostarczane z platform\u0105.<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuje Ci\u0119 tematyka zwi\u0105zana z ServiceNow, polecamy inne artyku\u0142y naszych specjalist\u00f3w np.: <a href=\"https:\/\/sii.pl\/blog\/integracja-servicenow-z-active-directory-przy-uzyciu-ldap\/?category=development-na-miekko&amp;tag=active-directory,integracja,servicenow\" target=\"_blank\" rel=\"noreferrer noopener\" title=\"Integracja ServiceNow z Active Directory przy u\u017cyciu LDAP\">Integracja ServiceNow z Active Directory przy u\u017cyciu LDAP<\/a>.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;16307&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;5&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Wykorzystanie Angular Bootstrap Calendar w Service Portalu&quot;,&quot;width&quot;:&quot;159&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 159px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            5\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>W ostatnich latach ServiceNow zyska\u0142 miano najlepszego narz\u0119dzia do zarz\u0105dzania procesami, us\u0142ugami oraz infrastruktur\u0105 w szeroko poj\u0119tym IT. Nazwany przez &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/\">Continued<\/a><\/p>\n","protected":false},"author":462,"featured_media":19768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[1536,17,1100],"class_list":["post-16307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-angular-bootstrap-calendar","tag-angularjs","tag-servicenow"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Pawe\u0142\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"blogersii\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\" \/>\n\t\t<meta property=\"og:description\" content=\"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"733\" \/>\n\t\t<meta property=\"og:image:height\" content=\"456\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-10-12T05:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-05-10T13:55:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Sii.Polska\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#article\",\"name\":\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\",\"description\":\"Us\\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki\",\"inLanguage\":\"pl-PL\",\"headline\":\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\",\"author\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pawel\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\"},\"datePublished\":\"2022-10-12T05:00:00+02:00\",\"dateModified\":\"2023-05-10T13:55:31+02:00\",\"articleSection\":\"Development na twardo, Angular Bootstrap Calendar, AngularJS, ServiceNow\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#webpage\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#articleImage\",\"width\":733,\"height\":456}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sii.pl\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"name\":\"Development na twardo\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"position\":2,\"name\":\"Development na twardo\",\"item\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#listItem\",\"name\":\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#listItem\",\"position\":3,\"name\":\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/development-na-twardo\\\/#listItem\",\"name\":\"Development na twardo\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\",\"name\":\"Sii Polska\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/\",\"sameAs\":[\"https:\\\/\\\/www.instagram.com\\\/siipolska\\\/\",\"https:\\\/\\\/www.tiktok.com\\\/@siipolska\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCQ3UQ7RJPEYnAWC_rPE5Dxg\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/sii-polska\",\"https:\\\/\\\/clutch.co\\\/profile\\\/sii-poland\",\"https:\\\/\\\/www.crunchbase.com\\\/organization\\\/sii\",\"https:\\\/\\\/www.wikidata.org\\\/wiki\\\/Q16601096\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#webpage\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/\",\"name\":\"Wykorzystanie Angular Bootstrap Calendar w Service Portalu\",\"description\":\"Us\\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki\",\"inLanguage\":\"pl-PL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#breadcrumblist\"},\"author\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pawel\\\/#author\",\"creator\":\"https:\\\/\\\/sii.pl\\\/blog\\\/author\\\/pawel\\\/#author\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#mainImage\",\"width\":733,\"height\":456},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\\\/#mainImage\"},\"datePublished\":\"2022-10-12T05:00:00+02:00\",\"dateModified\":\"2023-05-10T13:55:31+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sii.pl\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/sii.pl\\\/blog\\\/\",\"name\":\"blogersii\",\"description\":\"Blog technologiczny Sii \\u2013 praktyczna wiedza od ekspert\\u00f3w\",\"inLanguage\":\"pl-PL\",\"publisher\":{\"@id\":\"https:\\\/\\\/sii.pl\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","canonical_url":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#article","name":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","inLanguage":"pl-PL","headline":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","author":{"@id":"https:\/\/sii.pl\/blog\/author\/pawel\/#author"},"publisher":{"@id":"https:\/\/sii.pl\/#organization"},"datePublished":"2022-10-12T05:00:00+02:00","dateModified":"2023-05-10T13:55:31+02:00","articleSection":"Development na twardo, Angular Bootstrap Calendar, AngularJS, ServiceNow","mainEntityOfPage":{"@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#webpage"},"isPartOf":{"@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#webpage"},"image":{"@type":"ImageObject","url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#articleImage","width":733,"height":456}},{"@type":"BreadcrumbList","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog#listItem","position":1,"name":"Home","item":"https:\/\/sii.pl\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","name":"Development na twardo"}},{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","position":2,"name":"Development na twardo","item":"https:\/\/sii.pl\/blog\/development-na-twardo\/","nextItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#listItem","name":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu"},"previousItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#listItem","position":3,"name":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","previousItem":{"@type":"ListItem","@id":"https:\/\/sii.pl\/blog\/development-na-twardo\/#listItem","name":"Development na twardo"}}]},{"@type":"Organization","@id":"https:\/\/sii.pl\/#organization","name":"Sii Polska","url":"https:\/\/sii.pl\/blog\/","sameAs":["https:\/\/www.instagram.com\/siipolska\/","https:\/\/www.tiktok.com\/@siipolska","https:\/\/www.youtube.com\/channel\/UCQ3UQ7RJPEYnAWC_rPE5Dxg","https:\/\/www.linkedin.com\/company\/sii-polska","https:\/\/clutch.co\/profile\/sii-poland","https:\/\/www.crunchbase.com\/organization\/sii","https:\/\/www.wikidata.org\/wiki\/Q16601096"]},{"@type":"WebPage","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#webpage","url":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/","name":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","inLanguage":"pl-PL","isPartOf":{"@id":"https:\/\/sii.pl\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#breadcrumblist"},"author":"https:\/\/sii.pl\/blog\/author\/pawel\/#author","creator":"https:\/\/sii.pl\/blog\/author\/pawel\/#author","image":{"@type":"ImageObject","url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg","@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#mainImage","width":733,"height":456},"primaryImageOfPage":{"@id":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/#mainImage"},"datePublished":"2022-10-12T05:00:00+02:00","dateModified":"2023-05-10T13:55:31+02:00"},{"@type":"WebSite","@id":"https:\/\/sii.pl\/blog\/#website","url":"https:\/\/sii.pl\/blog\/","name":"blogersii","description":"Blog technologiczny Sii \u2013 praktyczna wiedza od ekspert\u00f3w","inLanguage":"pl-PL","publisher":{"@id":"https:\/\/sii.pl\/#organization"}}]},"og:locale":"pl_PL","og:site_name":"blogersii","og:type":"article","og:title":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","og:description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","og:url":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/","og:image":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg","og:image:secure_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg","og:image:width":733,"og:image:height":456,"article:published_time":"2022-10-12T05:00:00+00:00","article:modified_time":"2023-05-10T13:55:31+00:00","article:publisher":"https:\/\/www.facebook.com\/Sii.Polska","twitter:card":"summary","twitter:title":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","twitter:description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","twitter:image":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg"},"aioseo_meta_data":{"post_id":"16307","title":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","description":"Us\u0142ugi w ServiceNow: wykorzystanie Angular Bootstrap Calendar w Service Portalu, om\u00f3wienie Service Portal Widgets oraz rozszerzania i modyfikacji logiki","keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":{"id":"#aioseo-article-64671fa975115","slug":"article","graphName":"Article","label":"Article","properties":{"type":"BlogPosting","name":"#post_title","headline":"#post_title","description":"#post_excerpt","image":"","keywords":"","author":{"name":"#author_name","url":"#author_url"},"dates":{"include":true,"datePublished":"","dateModified":""}}},"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"limit_modified_date":false,"created":"2022-10-10 14:10:07","updated":"2023-05-19 07:05:13","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/sii.pl\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/sii.pl\/blog\/development-na-twardo\/\" title=\"Development na twardo\">Development na twardo<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWykorzystanie Angular Bootstrap Calendar w Service Portalu\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/sii.pl\/blog"},{"label":"Development na twardo","link":"https:\/\/sii.pl\/blog\/development-na-twardo\/"},{"label":"Wykorzystanie Angular Bootstrap Calendar w Service Portalu","link":"https:\/\/sii.pl\/blog\/wykorzystanie-angular-bootstrap-calendar-w-service-portalu\/"}],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2022\/08\/Wykorzystanie-Angular-Bootstrap-Calendar-w-Service-Portalu.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/16307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/462"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=16307"}],"version-history":[{"count":3,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/16307\/revisions"}],"predecessor-version":[{"id":21592,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/16307\/revisions\/21592"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/19768"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=16307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=16307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=16307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}