HTML |
---|
<link rel="stylesheet" type="text/css" href="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/stylesheets/EWC/eventsDashboardStylesheet.css" />
<script type="text/javascript" src="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/js/ewc/eventsDashboardScript.js"></script>
<style><!-- REBRAND STYLING -->
<style>
.wiki-content #announcementcontainer {
background-color: #f3f1eb !important;
}
.wiki-content #announcementcontainer .announcementcard .ev-cards-outer-containercard-subtitle {
color: background-image: url("https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/images/EWC+2020/gradient-vertical.jpg");
background-size: cover;
background-repeat: no-repeat;
}
#announcements-wrapper > span.conf-macro {
height: 100%;
}
#additional-filters-button {
width: 280px;
}
.zran-event {
display: none;
}
@media only screen and (max-width: 480px) {
.events-search-main {
flex-direction: column;
align-items: center;
height: 75px;
flex-wrap: nowrap;
justify-content: flex-start;
padding-bottom: 0px;
overflow: hidden;
}
black !important;
}
.wiki-content #announcementcontainer .announcementcard .card-description {
color: black !important;
}
.wiki-content #announcementcontainer .announcementcard a {
color: black !important;
border: none !important;
border-bottom: 1px solid black !important;
padding: 0 !important;
width: auto !important;
}
.wiki-content .ev-cards-section .ev-cards-section-title {
color: black !important;
}
.change-slide-button {
border: none !important;
}
div#my-watchlist-container {
background: #f2b006 !important;
}
div#all-events {
background: #006920 !important;
}
h2#Dashboard-AllEvents {
color: white !important;
}
.active, .cdot:hover {
background-color: #1c662e !important;
}
.wiki-content .ev-search-container {
paddingbackground-bottomcolor: #6797f3 45px!important;
}
}
</style>
<script>
// New Version of Format Date (Asynchronous)
async function formatDate2(d)
.wiki-content #events-searchbar {
background: #113867 !important;
border: 1px solid #113867 !important;
}
.countryFilterContainer {
constborder: monthNames1px = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var hh = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var dd = "am";
var h = hh;
if (h >= 12) {
h = hh-12;
dd = "pm";
}
if (h == 0) {
h = 12;
}
m = m<10?"0"+m:m;
s = s<10?"0"+s:s;
var strTime = h+":"+m+" "+dd
return strTime + " on " + monthNames[d.getMonth()] + " " + d.getDate();
// return dayNames[d.getDay()] + ", " + monthNames[d.getMonth()] + " " + d.getDate() + " " + d.getFullYear() + ", " + strTime;
}
</script> |
Custom section |
---|
ContainerID | announcementcontainer |
---|
Class | ev-banner-container |
---|
|
ConfiForms Form Definition |
---|
additionalFormAdmins | confluence-administrators |
---|
formSuperUsers | confluence-administrators |
---|
closeButtonLabel | Cancel |
---|
formName | eventsdashboardannouncements |
---|
saveButtonLabel | Create/Save |
---|
registrationFormTitle | New Announcement |
---|
|
Create/SaveeventsdashboardannouncementsCancelconfluence-administratorsNew AnnouncementINLINEtitletruetrue
subtitletruetrue
imagetruetrue
cardLinktruetrue
descriptiontruetrue
cardButtonTexttruetrue
titleTitleTitle must be between 1-70 characters long(length must be 1-70 chars)texttrue^.{1,70}$
subtitleSubtitletexttrue
imageImageimage/*filetruetrue
cardLinkCard Linkfalse[events=Event|mentor=Mentor|resources=Resource|]text
descriptionDescriptionDescription must be less than 244 characters.false[events=Event|mentor=Mentor|resources=Resource|]textareatrue^.{1,250}
cardButtonTextButton Texttexttrue
!cardLink:[empty]Reset valuecardLink
!cardLink:[empty]linkStyle=inactivelinkSet valuetruecardLink
Custom section |
---|
CustomCSS | flex-direction: column; width: 100%; max-width: 100%; |
---|
ContainerID | announcements-wrapper |
---|
Class | ev-banner |
---|
|
ConfiForms PlainView |
---|
formName | eventsdashboardannouncements |
---|
|
<div class="announcementcard fade">
<div class="imgalign">
<img class="announcement-image" src="/download/attachments/81517767/[entry.image.asAttachment]"></img>
</div>
<div class="text-encompasser">
<div class="change-slide-buttons-container">
<div class="change-slide-button" onclick="plusSlides(-1)"><img src="/download/attachments/81517767/chev-left.png?api=v2" /></div>
<div class="change-slide-button" onclick="plusSlides(1)"><img src="/download/attachments/81517767/chev-right.png?api=v2" /></div>
</div>
<div class="text-container ev-banner-title">
<p class="card-title">[entry.title] </p>
</div>
<div class="text-container">
<font class="card-subtitle">[entry.subtitle] </font>
</div>
<div class="text-container">
<font class="card-description">[entry.description] </font>
</div>
<div class="announcement-links-container">
<a class="buttonHref" href="[entry.cardLink]" rel="nofollow" target="_blank" onclick="handleEventCardClick(this);" data-cardtype="announcement" data-cardurl="[entry.cardLink]" data-entryid="[entry.id]" data-cardtitle="[entry.title]">
[entry.cardButtonText]
</a>
</div>
</div>
</div> |
Custom section |
---|
|
HTML |
---|
<div class="filtersContainer events-search-main">
<div id="events-search-container">
<img src="/download/attachments/81517767/searchicon.png?api=v2" />
<input id="events-searchbar" type="text" autocomplete="off" placeholder="SEARCH FOR A SPECIFIC EVENT" />
</div>
<div class="countryFilterContainer">
<div id="country-placeholder">Country</div>
<ul id="countryFilter">
</ul>
</div>
<div class="dateFilterContainer">
<div class="dateFilter">
<p class="dateInputContainer"><input type="text" placeholder="Start Date" id="startdate"></p> <span>↔</span> <p class="dateInputContainer"><input type="text" placeholder="End Date" id="enddate"></p>
</div>
</div>
<div class="resetFilterContainer">
<a id="resetFilter">Clear All Filters</a>
</div>
</div>
<div id="additional-filters-button" style="display: none;">
<img src="/download/attachments/81517767/addfilters.png?api=v2" />
<span>Additional Filters</span>
</div> |
Custom section |
---|
CustomCSS | flex-direction: column; |
---|
ContainerID | event-search-result-cards |
---|
Class | ev-cards-section |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">Search Results</h2> |
Custom section |
---|
|
HTML |
---|
<div class="ev-cards-outer-container">
<div id="ev-cards-main-view"> |
...
CustomCSS | display:none; |
---|
ContainerID | my-events-scrolly |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
HTML |
---|
<h2 class="ev-cards-section-title">My Events</h2> |
...
Class | scrolling-ev-cards-wrapper |
---|
...
filter | ownedBy:[entry._user] |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate asc |
---|
...
Class | ev-cards-section ev-cards-section-scrollable |
---|
HTML |
---|
<h2 class="ev-cards-section-title">Upcoming Events</h2> |
...
Class | scrolling-ev-cards-wrapper |
---|
...
filter | endDate:>=[now] AND publish:true |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate asc |
---|
...
ContainerID | my-watchlist-container |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
HTML |
---|
<h2 class="ev-cards-section-title">My Watchlist</h2> |
...
Class | scrolling-ev-cards-wrapper |
---|
HTML |
---|
<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"></div> |
...
Class | ev-cards-section ev-cards-section-scrollable |
---|
HTML |
---|
<h2 class="ev-cards-section-title">Past Events</h2> |
...
Class | scrolling-ev-cards-wrapper |
---|
...
filter | endDate:<[now] AND publish:true |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate desc |
---|
solid #113867 !important;
}
.countryFilterContainer #country-placeholder {
background: #113867 !important;
}
#startdate, #enddate {
background: #113867 !important;
border: 1px solid #113867 !important;
}
.dateFilter {
color: #113867 !important;
}
.wiki-content .ev-cards-outer-container {
padding: 0px !important;
}
.eventcard {
border: 1px solid #113867 !important;
}
div#my-watchlist-container {
background: #f2b006 !important;
}
div#all-events {
background: #006920 !important;
}
h2#CopyofDashboardRebrand-AllEvents {
color: white !important;
}
#my-watchlist-container #no-watchlist-yet-message {
background-color: #113867 !important;
}
</style> |
HTML |
---|
<link rel="stylesheet" type="text/css" href="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/stylesheets/ESG/eventsDashboardStylesheet.css" />
<script type="text/javascript" src="https://gsvlabs-confluence-files.s3-us-west-2.amazonaws.com/js/esg/eventsDashboardScript.js?v=1"></script>
<style>
.wiki-content .ev-banner-container .ev-banner-title .card-title {
background-image: unset !important;
-webkit-background-clip: unset !important;
background-clip: unset !important;
color: black !important;
}
.countryFilterContainer #country-placeholder {
height: 45px;
min-height: 45px;
margin: 0px;
text-align: left;
width: calc(100% - 40px);
justify-content: space-between;
color: rgba(255, 255, 255, 0.69);
padding: 0px 20px;
cursor: text;
position: relative;
align-items: center;
background: #1f1f1f;
border: none;
}
.countryFilterContainer {
justify-content: center !important;
}
.countryFilterContainer #country-clear-button {
position: absolute;
right: 0px;
}
.attendees {
display: none;
}
@media screen and (max-width: 640px) {
.filtersContainer {
justify-content: center;
}
}
</style> |
HTML |
---|
<style>
.wiki-content .ev-cards-outer-container {
background-image: none;
background-size: cover;
background-repeat: no-repeat;
background-color: #f3f1eb;
}
#announcements-wrapper > span.conf-macro {
height: 100%;
}
#additional-filters-button {
width: 280px;
}
.zran-event {
display: none;
}
@media only screen and (max-width: 480px) {
.events-search-main {
flex-direction: column;
align-items: center;
height: 75px;
flex-wrap: nowrap;
justify-content: flex-start;
padding-bottom: 0px;
overflow: hidden;
}
.wiki-content .ev-search-container {
padding-bottom: 45px;
}
.countryFilterContainer {
height: 49px !important;
min-height: 49px;
}
.countryFilterContainer #country-placeholder {
font-size: 14px;
}
}
</style>
<script>
// New Version of Format Date (Asynchronous)
async function formatDate2(d) {
const monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var hh = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
var dd = "am";
var h = hh;
if (h >= 12) {
h = hh-12;
dd = "pm";
}
if (h == 0) {
h = 12;
}
m = m<10?"0"+m:m;
s = s<10?"0"+s:s;
var strTime = h+":"+m+" "+dd
return strTime + " on " + monthNames[d.getMonth()] + " " + d.getDate();
// return dayNames[d.getDay()] + ", " + monthNames[d.getMonth()] + " " + d.getDate() + " " + d.getFullYear() + ", " + strTime;
}
</script> |
Custom section |
---|
ContainerID | announcementcontainer |
---|
Class | ev-banner-container |
---|
|
Show If |
---|
group | confluence-administrators,judging-administrators |
---|
|
Custom section |
---|
CustomCSS | height:none; justify-content:flex-end; |
---|
| Custom button |
---|
Type | custom-button |
---|
FontColor | #000000 |
---|
Text | Create / Edit Announcements |
---|
Url | /display/EV/Events+Dashboard+Announcements |
---|
|
|
|
Custom section |
---|
CustomCSS | flex-direction: column; width: 100%; max-width: 100%; |
---|
ContainerID | announcements-wrapper |
---|
Class | ev-banner |
---|
|
ConfiForms PlainView |
---|
pageTitle | Events Dashboard Announcements |
---|
formName | eventsdashboardannouncements |
---|
sort | created DESC |
---|
| <div class="announcementcard fade">
<div class="imgalign">
<img class="announcement-image" src="/download/attachments/95587037/[entry.image.asAttachment]"></img>
</div>
<div class="text-encompasser">
<div class="change-slide-buttons-container">
<div class="change-slide-button" onclick="plusSlides(-1)"><img src="/download/attachments/81517767/chev-left.png?api=v2" /></div>
<div class="change-slide-button" onclick="plusSlides(1)"><img src="/download/attachments/81517767/chev-right.png?api=v2" /></div>
</div>
<div class="text-container ev-banner-title">
<p class="card-title">[entry.title] </p>
</div>
<div class="text-container">
<font class="card-subtitle">[entry.subtitle] </font>
</div>
<div class="text-container">
<font class="card-description">[entry.description] </font>
</div>
<div class="announcement-links-container">
<a class="buttonHref" href="[entry.cardLink]" rel="nofollow" target="_blank" onclick="handleEventCardClick(this);" data-cardtype="announcement" data-cardurl="[entry.cardLink]" data-entryid="[entry.id]" data-cardtitle="[entry.title]">
[entry.cardButtonText]
</a>
</div>
</div>
</div> |
|
|
Custom section |
---|
|
HTML |
---|
<div class="filtersContainer events-search-main">
<div id="events-search-container">
<img src="/download/attachments/81517767/searchicon.png?api=v2" />
<input id="events-searchbar" type="text" autocomplete="off" placeholder="SEARCH FOR A SPECIFIC EVENT" />
</div>
<div class="countryFilterContainer">
<input type='text' id='country-placeholder' placeholder='Country' onkeyup='handleCountrySearch(this, event)' />
<ul id="countryFilter">
</ul>
<div id='country-clear-button' style="display:none;"><img src="/download/attachments/81517767/closeicon.png?api=v2" onclick="event.stopPropagation();clearFilter('countryFilter')" /></div>
</div>
<div class="dateFilterContainer">
<div class="dateFilter">
<p class="dateInputContainer"><input type="text" placeholder="Start Date" id="startdate" autocomplete="prevent-autofill-dialog"></p> <span>↔</span> <p class="dateInputContainer"><input type="text" placeholder="End Date" id="enddate"></p>
</div>
</div>
<div class="resetFilterContainer">
<a id="resetFilter">Clear All Filters</a>
</div>
</div>
<div id="additional-filters-button" style="display: none;">
<img src="/download/attachments/81517767/addfilters.png?api=v2" />
<span>Additional Filters</span>
</div> |
|
Custom section |
---|
CustomCSS | flex-direction: column; |
---|
ContainerID | event-search-result-cards |
---|
Class | ev-cards-section |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">Search Results</h2> |
|
HTML |
---|
<div class="ev-cards-outer-container">
<div id="ev-cards-main-view"> |
Custom section |
---|
CustomCSS | display:none; |
---|
ContainerID | my-events-scrolly |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">My Events</h2> |
Custom section |
---|
Class | scrolling-ev-cards-wrapper |
---|
|
ConfiForms CleanView |
---|
filter | ownedBy:[entry._user] |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate asc |
---|
|
|
|
|
Custom section |
---|
ContainerID | upcoming-events-section |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">Upcoming Events</h2> |
Custom section |
---|
Class | scrolling-ev-cards-wrapper |
---|
|
ConfiForms CleanView |
---|
filter | endDate.convertDate("", "UTC"):>=[now] AND publish:true |
---|
messageToShowWhenEmpty | No upcoming events. Check back later! |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate asc |
---|
|
|
|
|
Custom section |
---|
ContainerID | my-watchlist-container |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">My Watchlist</h2> |
Custom section |
---|
Class | scrolling-ev-cards-wrapper |
---|
|
HTML |
---|
<div class="conf-macro output-block fullSite" data-hasbody="true" data-macro-name="confiform-cleanview"></div> |
|
|
Custom section |
---|
ContainerID | past-events-section |
---|
Class | ev-cards-section ev-cards-section-scrollable |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title">Past Events</h2> |
Custom section |
---|
Class | scrolling-ev-cards-wrapper |
---|
|
ConfiForms CleanView |
---|
filter | endDate.convertDate("", "UTC"):<[now] AND publish:true |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate desc |
---|
|
|
|
|
Custom section |
---|
CustomCSS | flex-direction: column; |
---|
ContainerID | all-events |
---|
Class | ev-cards-section |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">All Events</h2> |
ConfiForms CleanView |
---|
filter | publish:true |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate ASC |
---|
|
|
|
Show If |
---|
group | confluence-administrators,judging-administrators |
---|
|
Custom section |
---|
CustomCSS | flex-direction: column; |
---|
ContainerID | unpublished-events |
---|
Class | ev-cards-section |
---|
|
HTML |
---|
<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">Unpublished Events</h2> |
ConfiForms CleanView |
---|
filter | publish:false |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate ASC |
---|
|
|
|
|
HTML |
---|
<style>
#unpublished-events .conf-macro.output-block[data-macro-name=confiform-cleanview] {
padding: 0px 35px;
display: grid;
grid-template-columns: repeat(auto-fill, 280px);
grid-gap: 20px;
height: auto !important;
justify-content: space-evenly;
}
</style> |
HTML |
---|
<script>
const getMinutesUntilEventStart = (startDate) => {
let nowDate = new Date();
let eventStartDate = new Date(startDate);
let diffMilliseconds = eventStartDate.getTime() - nowDate.getTime();
let diffMinutes = (diffMilliseconds / 60000);
return diffMinutes;
}
const getMinutesUntilEventEnd = (endDate) => {
let nowDate = new Date();
let eventEndDate = new Date(endDate);
let diffMilliseconds = eventEndDate.getTime() - nowDate.getTime();
let diffMinutes = (diffMilliseconds / 60000);
return diffMinutes;
}
const showPastWatchIndicators = () => {
let pastEvents = document.getElementById('scroll-section-3');
let pastCards = Array.from(pastEvents.getElementsByClassName('eventcard'));
for (let i = 0; i < pastCards.length; i++) {
let currCard = pastCards[i];
// Check if event was offline
if (currCard.dataset.offline == "true") {
continue
}
let liveEl = document.createElement("div");
liveEl.classList.add('watch-indicator');
liveEl.innerHTML = "<img class='watch-indicator-icon' src='/download/attachments/81517767/playicon.png?api=v2' /> RECORDED";
currCard.insertAdjacentElement('afterbegin', liveEl);
}
let allEvents = document.getElementById('all-events');
let allCards = Array.from(allEvents.getElementsByClassName('eventcard'));
for (let i = 0; i < allCards.length; i++) {
let currCard = allCards[i];
let currCardEnd = currCard.dataset.enddate;
let minsTilEnd = getMinutesUntilEventEnd(currCardEnd);
if (minsTilEnd < 0) {
// Check if event was offline
if (currCard.dataset.offline == "true") {
continue
}
let liveEl = document.createElement("div");
liveEl.classList.add('watch-indicator');
liveEl.innerHTML = "<img class='watch-indicator-icon' src='/download/attachments/81517767/playicon.png?api=v2' /> RECORDED";
currCard.insertAdjacentElement('afterbegin', liveEl);
} else {
// Live now or upcoming (show live indicator if minsTilStart <= 0)
let currCardStart = currCard.dataset.startdate;
let minsTilStart = getMinutesUntilEventStart(currCardStart);
if (minsTilStart <= 0) {
// Check if event is offline
if (currCard.dataset.offline == "true") {
continue;
}
let liveEl = document.createElement("div");
liveEl.classList.add('live-circle');
liveEl.innerText = "LIVE";
currCard.insertAdjacentElement('afterbegin', liveEl);
}
}
}
}
window.addEventListener('load', () => {
let upcomingEvents = document.getElementById('upcoming-events-section');
let upcomingCards = Array.from(upcomingEvents.getElementsByClassName('eventcard'));
if (upcomingCards.length < 1) {
document.getElementById("upcoming-events-section").classList.add("display-none");
} else {
document.getElementById("upcoming-events-section").classList.remove("display-none");
}
for (let i = 0; i < upcomingCards.length; i++) {
let currCard = upcomingCards[i];
let currCardStart = currCard.dataset.startdate;
let minsTilStart = getMinutesUntilEventStart(currCardStart);
if (minsTilStart <= 0) {
// Check if event is offline
if (currCard.dataset.offline == "true") {
continue;
}
let liveEl = document.createElement("div");
liveEl.classList.add('live-circle');
liveEl.innerText = "LIVE";
currCard.insertAdjacentElement('afterbegin', liveEl);
}
}
//if (AJS.params.remoteUser == "alex@gsvlabs.com") {
showPastWatchIndicators()
//}
});
</script>
<style>
.live-circle {
font-size: 13px;
padding: 3px 18px;
text-transform: uppercase;
font-weight: bold;
background-color: #cc1f1f;
color: white;
position: absolute;
z-index: 2;
margin: 8px 8px;
box-shadow: 1px 1px 5px #00000054;
}
</style>
<style>
.watch-indicator {
font-size: 12px;
padding: 3px 10px;
text-transform: uppercase;
font-weight: bold;
background-color: #036bc4;
color: white;
position: absolute;
z-index: 2;
margin: 8px 8px;
box-shadow: 1px 1px 5px #00000054;
border-radius: 3px;
display: flex;
justify-content: center;
align-items: center;
}
.watch-indicator-icon {
display: block;
width: 14px !important;
height: 14px !important;
margin-right: 6px;
padding-bottom: 2px;
}
</style> |
HTML |
---|
<style>
.wiki-content #announcementcontainer .announcementcard a {
color: black !important;
border: none;
border-bottom: 1px solid black !important;
padding: 0;
width: auto;
}
</style> |
...
CustomCSS | flex-direction: column; |
---|
ContainerID | all-events |
---|
Class | ev-cards-section |
---|
HTML |
---|
<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">All Events</h2> |
...
filter | publish:true |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate ASC |
---|
...
group | confluence-administrators,judging-administrators |
---|
...
CustomCSS | flex-direction: column; |
---|
ContainerID | all-events |
---|
Class | ev-cards-section |
---|
HTML |
---|
<h2 class="ev-cards-section-title" style="margin-bottom: 60px;">Unpublished Events</h2> |
...
filter | publish:false |
---|
pageTitle | Create Event |
---|
formName | createEvent |
---|
sort | startDate ASC |
---|
HTML |
---|
<script>
const replaceDates = () => {
let upcomingEventsSection = document.getElementById("scroll-section-1");
let upcomingEventsCards = Array.from(upcomingEventsSection.getElementsByClassName("eventcard"));
for (let i = 0; i < upcomingEventsCards.length; i++) {
let card = upcomingEventsCards[i];
let UTCdate = parseInt(card.dataset.startdate);
console.log("Start Date:", UTCdate);
let localDateStr = new Date(UTCdate).toLocaleString();
console.log("localDateStr:", localDate);
let localDate = new Date(localDateStr);
console.log("localDate:", localDate);
formatDate2(localDate).then(datetimeStr => {
console.log("datetimeStr:", datetimeStr)
datetimeStr = datetimeStr.split(" on ");
let timeStr = datetimeStr[0];
let dateStr = datetimeStr[1];
card.getElementsByClassName("formattedDatetime")[0].innerText = timeStr;
card.getElementsByClassName("formattedDate")[0].innerText = dateStr;
});
};
}
window.addEventListener('DOMContentLoaded', () => {
replaceDates();
});
<script> |