{"id":757,"date":"2025-04-01T22:12:30","date_gmt":"2025-04-01T19:12:30","guid":{"rendered":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/?page_id=757"},"modified":"2026-05-13T21:33:43","modified_gmt":"2026-05-13T18:33:43","slug":"toimintakalenteri-4","status":"publish","type":"page","link":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/","title":{"rendered":"Kalenteri"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-text fusion-text-1\"><h2 style=\"text-align: center;\">Tervetuloa<\/h2>\n<p style=\"text-align: center;\">Seurat kuunneltavissa my\u00f6s &#8221;Kuuntele l\u00e4hetyst\u00e4&#8221; linkin kautta.<\/p>\n<hr \/>\n<h2 style=\"text-align: left;\">Tulevat tapahtumat<\/h2>\n<\/div><div class=\"fusion-text fusion-text-2\"><table data=\"t\u00e4m\u00e4 on apin p\u00e4ivityspingausta varten\" class=\"intra\" data-id=\"168\" data-amount=\"1\" style=\"display:none;\"><\/table>\n\n<table class=\"toiminta\" id=\"eventTable\">\n    <tbody><\/tbody>\n<\/table>\n<style>\n    .row {\n        background: white;\n        border-radius: 3px;\n        box-shadow: 0 2px 5px rgba(0,0,0,0.1);\n        margin-bottom: 6px;\n    }\n    .row:nth-child(even) {\n        background: #f2f2f2; \/* vahan tummempi harmaa *\/\n    }\n    td {\n        padding-right: 0.5rem !important;\n        padding-left: 0.5rem !important;\n    }\n    .dateColumn {\n        max-width: 4rem !important;\n        min-width: 3rem !important;\n        width: 10% !important;\n        flex: 1 0 auto;\n    }\n    .timeColumn {\n        max-width: 4rem !important;\n        min-width: 3rem !important;\n        width: 10% !important;\n        flex: 1 0 auto;\n    }\n    .eventColumn {\n        white-space: normal !important;\n        flex: 2 1 auto;\n    }\n    .cellContent {\n        display: flex;\n        flex-direction: column;\n    }\n    \/* Media Query for Mobile Screens *\/\n    @media (max-width: 600px) { \/* Adjust breakpoint as needed *\/\n        td {\n            padding-right: 0.25rem !important;\n            padding-left: 0.25rem !important;\n        }\n        table {\n            margin-left: -1.5rem !important;\n            margin-right: -1.5rem !important;\n            width: 98vw !important;\n            max-width: 98vw !important;\n        }\n        .dateColumn,\n        .timeColumn,\n        .eventColumn,\n<\/style>\n<script>\n    const days = ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'];\n    function formatTime(event) {\n        console.log(event);\n        const startTime = event.start;\n        const date = new Date(startTime);\n        const dayOfWeek = days[date.getDay()];\n        const formattedDate = date.toLocaleDateString('fi-FI', { day: 'numeric', month: 'numeric' });\n        const formattedTime = date.toLocaleTimeString('fi-FI', { hour: '2-digit', minute: '2-digit' });\n        return {date: `${dayOfWeek} ${formattedDate}`, formattedTime: formattedTime};\n    }\n    function formatExtraInfo(event, cellEvent) {\n    \/\/ TARKISTUS: Varmista, ett\u00e4 work_turns on olemassa, ennen kuin jatkat.\n    if (!event.work_turns || typeof event.work_turns !== 'object') {\n        return; \/\/ Poistu funktiosta, jos ty\u00f6vuoroja ei ole m\u00e4\u00e4ritelty.\n    }\n\n    const obj = event.work_turns; \/\/ Nyt voimme turvallisesti k\u00e4ytt\u00e4\u00e4 'obj'\n    const puhujat = obj[\"Puhuja\"]?.join(\", \");\n\n    if (puhujat?.length > 0) {\n        \/\/ puhujat\n        const spanPuhujat = document.createElement('span');\n        spanPuhujat.textContent = puhujat;\n        let divExtraInfo = document.createElement('div');\n        divExtraInfo.classList.add('extraInfoDiv');\n        divExtraInfo.appendChild(spanPuhujat);\n        cellEvent.appendChild(divExtraInfo);\n    }\n\n    if (event.info) {\n        \/\/ julkinen lis\u00e4tieto\n        const spanInfo = document.createElement('span');\n        spanInfo.textContent = event.info;\n        let divExtraInfo = document.createElement('div');\n        divExtraInfo.classList.add('extraInfoDiv');\n        divExtraInfo.appendChild(spanInfo);\n        cellEvent.appendChild(divExtraInfo);\n    }\n\n    let isPyhakoulu = false;\n    for (const role in obj) { \/\/ Muutettu event.work_turns -> obj\n        if (role.startsWith('[Pyh\u00e4koulu]')) {\n            \/\/ pyh\u00e4koulun kyl\u00e4t\n            isPyhakoulu = true;\n            const clippedRole = role.replace('[Pyh\u00e4koulu]', '');\n            const spanKyla = document.createElement('span');\n            let kylanOpettaja = '';\n            if (obj.hasOwnProperty(role)) {\n                const people = obj[role];\n                if (people && people.length > 0) {\n                    kylanOpettaja = `${people.join(', ')}`;\n                }\n            }\n            spanKyla.textContent = `${clippedRole}: ${kylanOpettaja}`;\n            let divExtraInfo = document.createElement('div');\n            divExtraInfo.classList.add('extraInfoDiv');\n            divExtraInfo.appendChild(spanKyla);\n            cellEvent.appendChild(divExtraInfo);\n        }\n    }\n\n    if (!isPyhakoulu) {\n        \/\/ ty\u00f6vuorot\n        const values = Object.keys(obj)\n            .filter((key) => key !== \"Puhuja\") \/\/Puhujille oma k\u00e4sittely\n            .flatMap((key) => obj[key])\n            .filter((value) => value); \/\/ Poista tyhj\u00e4t arvot\n            \n        if (values?.length > 0) {\n            const span = document.createElement('span');\n            span.textContent += `${values.join(\", \")}`;\n            let divExtraInfo = document.createElement('div');\n            divExtraInfo.classList.add('extraInfoDiv');\n            divExtraInfo.appendChild(span);\n            cellEvent.appendChild(divExtraInfo);\n        }\n    }\n}\n    document.addEventListener('DOMContentLoaded', function() {\n    const apiUrl = 'https:\/\/d1idlmpl427mpk.cloudfront.net\/api\/parser\/168.json';\n\n    fetch(apiUrl)\n        .then(response => {\n            if (!response.ok) {\n                throw new Error('Verkkovastaus ei ollut kunnossa: ' + response.statusText);\n            }\n            return response.json();\n        })\n        .then(data => {\n            const tableBody = document.getElementById('eventTable').querySelector('tbody');\n            if (!tableBody) {\n                console.error('Taulun tbody-elementti\u00e4 ei l\u00f6ytynyt!');\n                return; \/\/ Lopetetaan suoritus, jos taulua ei l\u00f6ydy\n            }\n\n            data.events.forEach(event => {\n                const row = document.createElement('tr');\n                row.classList.add('row');\n\n                \/\/ Solu 1: P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\n                let cell1 = document.createElement('td');\n                const time = formatTime(event);\n                const strongDate = document.createElement('strong');\n                strongDate.textContent = time.date;\n                cell1.appendChild(strongDate);\n                cell1.classList.add('dateColumn');\n                row.appendChild(cell1);\n\n                \/\/ Solu 2: Kellonaika\n                let cell2 = document.createElement('td');\n                cell2.classList.add('timeColumn');\n                if (!event.whole_day && time.formattedTime !== '00:00') {\n                    const strong = document.createElement('strong');\n                    strong.textContent = time.formattedTime;\n                    cell2.appendChild(strong);\n                }\n                row.appendChild(cell2);\n\n                \/\/ Solu 3: Tapahtuman tiedot\n                let cellEvent = document.createElement('td');\n                cellEvent.classList.add('eventColumn');\n                const strong = document.createElement('strong');\n                if (event.place === 'Toimitalo') {\n                    strong.textContent = event.name;\n                } else {\n                    strong.textContent = `${event.name} ${event.place_formatted}`;\n                }\n                cellEvent.appendChild(strong);\n                \n                \/\/ Linkki\n                if (event.video_stream_available && event.video_stream_url != '') {\n                    let divLink = document.createElement('div');\n                    const link = document.createElement('a');\n                    link.href = event.video_stream_url;\n                    link.textContent = 'Kuuntele l\u00e4hetyst\u00e4';\n                    divLink.appendChild(link);\n                    cellEvent.appendChild(divLink);\n                }\n                \n                \/\/ Muut lis\u00e4tiedot\n                formatExtraInfo(event, cellEvent);\n                row.appendChild(cellEvent);\n\n                \/\/ Lis\u00e4t\u00e4\u00e4n valmis rivi tauluun\n                tableBody.appendChild(row);\n            });\n        })\n        .catch(error => {\n            console.error('Datan noutamisessa tapahtui virhe:', error);\n        });\n});\n<\/script>\n\n\n\n<\/div><div class=\"fusion-content-boxes content-boxes columns row fusion-columns-4 fusion-columns-total-4 fusion-content-boxes-1 content-boxes-icon-on-top content-left has-flex-alignment\" style=\"--awb-alignment:center;--awb-margin-bottom:30px;--awb-hover-accent-color:#a0ce4e;--awb-circle-hover-accent-color:#a0ce4e;\" data-animationOffset=\"top-into-view\"><div style=\"--awb-backgroundcolor:rgba(255,255,255,0);\" class=\"fusion-column content-box-column content-box-column content-box-column-1 col-lg-3 col-md-3 col-sm-3 fusion-content-box-hover content-box-column-first-in-row\"><div class=\"col content-box-wrapper content-wrapper link-area-link-icon link-type-text icon-hover-animation-fade\" data-animationOffset=\"top-into-view\"><div class=\"heading heading-with-icon icon-left\"><a class=\"heading-link\" href=\"https:\/\/leirille.fi\" target=\"_blank\" rel=\"noopener noreferrer\"><div aria-hidden=\"true\" class=\"image\"><img decoding=\"async\" src=\"http:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-content\/uploads\/sites\/128\/2026\/02\/leirille.png\" width=\"35\" height=\"22.65\" alt=\"\" \/><\/div><h2 class=\"content-box-heading fusion-responsive-typography-calculated\" style=\"--h2_typography-font-size:18px;--fontSize:18;line-height:1.5;\">leirille.fi<\/h2><\/a><\/div><\/div><\/div><div style=\"--awb-backgroundcolor:rgba(255,255,255,0);\" class=\"fusion-column content-box-column content-box-column content-box-column-2 col-lg-3 col-md-3 col-sm-3 fusion-content-box-hover \"><div class=\"col content-box-wrapper content-wrapper link-area-link-icon link-type-text icon-hover-animation-fade\" data-animationOffset=\"top-into-view\"><div class=\"heading heading-with-icon icon-left\"><a class=\"heading-link\" href=\"https:\/\/paivamies.fi\" target=\"_blank\" rel=\"noopener noreferrer\"><div aria-hidden=\"true\" class=\"image\"><img decoding=\"async\" src=\"http:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-content\/uploads\/sites\/128\/2026\/02\/pa\u0308iva\u0308mies.png\" width=\"35\" height=\"30.38\" alt=\"\" \/><\/div><h2 class=\"content-box-heading fusion-responsive-typography-calculated\" style=\"--h2_typography-font-size:18px;--fontSize:18;line-height:1.5;\">paivamies.fi<\/h2><\/a><\/div><\/div><\/div><div style=\"--awb-backgroundcolor:rgba(255,255,255,0);\" class=\"fusion-column content-box-column content-box-column content-box-column-3 col-lg-3 col-md-3 col-sm-3 fusion-content-box-hover \"><div class=\"col content-box-wrapper content-wrapper link-area-link-icon link-type-text icon-hover-animation-fade\" data-animationOffset=\"top-into-view\"><div class=\"heading heading-with-icon icon-left\"><a class=\"heading-link\" href=\"https:\/\/srk.fi\" target=\"_blank\" rel=\"noopener noreferrer\"><div aria-hidden=\"true\" class=\"image\"><img decoding=\"async\" src=\"http:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-content\/uploads\/sites\/128\/2026\/02\/srk_logo-1.jpg\" width=\"35\" height=\"35\" alt=\"\" \/><\/div><h2 class=\"content-box-heading fusion-responsive-typography-calculated\" style=\"--h2_typography-font-size:18px;--fontSize:18;line-height:1.5;\">srk.fi<\/h2><\/a><\/div><\/div><\/div><div style=\"--awb-backgroundcolor:rgba(255,255,255,0);\" class=\"fusion-column content-box-column content-box-column content-box-column-4 col-lg-3 col-md-3 col-sm-3 fusion-content-box-hover content-box-column-last content-box-column-last-in-row\"><div class=\"col content-box-wrapper content-wrapper link-area-link-icon link-type-text icon-hover-animation-fade\" data-animationOffset=\"top-into-view\"><div class=\"heading heading-with-icon icon-left\"><a class=\"heading-link\" href=\"https:\/\/kingdomofpeace.net\" target=\"_blank\" rel=\"noopener noreferrer\"><div aria-hidden=\"true\" class=\"image\"><img decoding=\"async\" src=\"http:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-content\/uploads\/sites\/128\/2026\/02\/kingdomofpeace.png\" width=\"35\" height=\"51.1\" alt=\"\" \/><\/div><h2 class=\"content-box-heading fusion-responsive-typography-calculated\" style=\"--h2_typography-font-size:18px;--fontSize:18;line-height:1.5;\">kingdomofpeace.net<\/h2><\/a><\/div><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><div class=\"fusion-clearfix\"><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":222,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-757","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/pages\/757","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/users\/222"}],"replies":[{"embeddable":true,"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/comments?post=757"}],"version-history":[{"count":26,"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/pages\/757\/revisions"}],"predecessor-version":[{"id":907,"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/pages\/757\/revisions\/907"}],"wp:attachment":[{"href":"https:\/\/paivitys.rauhanyhdistys.fi\/kiiminki\/wp-json\/wp\/v2\/media?parent=757"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}