Heavily customized version of smokesignal - https://whtwnd.com/kayrozen.com/3lpwe4ymowg2t
at main 6.9 kB view raw
1 <div class="event-card"> 2 <a href="{{ base }}{{ event.site_url }}" class="event-card-link" hx-boost="true"></a> 3 4 <div class="event-card-content"> 5 <!-- Time and Date --> 6 {% if event.starts_at_human %} 7 <div class="event-time"> 8 <i class="fas fa-clock"></i> 9 <time class="dt-start" {% if event.starts_at_machine %}datetime="{{ event.starts_at_machine }}"{% endif %}> 10 {{ event.starts_at_human }} 11 </time> 12 </div> 13 {% endif %} 14 15 <!-- Event Title --> 16 <h3 class="event-title"> 17 <a href="{{ base }}{{ event.site_url }}" hx-boost="true"> 18 {% autoescape false %}{{ event.name }}{% endautoescape %} 19 </a> 20 </h3> 21 22 <!-- Event Tags --> 23 <div class="event-tags"> 24 <!-- Role Tag --> 25 {% if event.role %} 26 <span class="event-tag tag-{{ event.role }}"> 27 <i class=" 28 {%- if event.role == 'going' -%}fas fa-star 29 {%- elif event.role == 'interested' -%}fas fa-eye 30 {%- elif event.role == 'notgoing' -%}fas fa-ban 31 {%- elif event.role == 'organizer' -%}fas fa-calendar 32 {%- else -%}fas fa-question 33 {%- endif -%}"></i> 34 {%- if event.role == 'going' -%}{{ t("status-going") }} 35 {%- elif event.role == 'interested' -%}{{ t("status-interested") }} 36 {%- elif event.role == 'notgoing' -%}{{ t("status-not-going") }} 37 {%- elif event.role == 'organizer' -%}{{ t("status-organizer") }} 38 {%- else -%}{{ t("status-unknown") }} 39 {%- endif -%} 40 </span> 41 {% endif %} 42 43 <!-- Legacy Tag --> 44 {% if event.collection != "community.lexicon.calendar.event" %} 45 <span class="event-tag tag-legacy">{{ t("status-legacy") }}</span> 46 {% endif %} 47 48 <!-- Status Tag --> 49 {% if event.status == "planned" %} 50 <span class="event-tag tag-planned" title="{{ t('status-planned') }}"> 51 <i class="fas fa-calendar-days"></i> {{ t("status-planned") }} 52 </span> 53 {% elif event.status == "scheduled" %} 54 <span class="event-tag tag-scheduled" title="{{ t('status-scheduled') }}"> 55 <i class="fas fa-calendar-check"></i> {{ t("status-scheduled") }} 56 </span> 57 {% elif event.status == "rescheduled" %} 58 <span class="event-tag tag-rescheduled" title="{{ t('status-rescheduled') }}"> 59 <i class="fas fa-calendar-plus"></i> {{ t("status-rescheduled") }} 60 </span> 61 {% elif event.status == "cancelled" %} 62 <span class="event-tag tag-cancelled" title="{{ t('status-cancelled') }}"> 63 <i class="fas fa-calendar-xmark"></i> {{ t("status-cancelled") }} 64 </span> 65 {% elif event.status == "postponed" %} 66 <span class="event-tag tag-postponed" title="{{ t('status-postponed') }}"> 67 <i class="fas fa-calendar-minus"></i> {{ t("status-postponed") }} 68 </span> 69 {% endif %} 70 71 <!-- Mode Tag --> 72 {% if event.mode == "inperson" %} 73 <span class="event-tag tag-inperson"> 74 <i class="fas fa-users"></i> {{ t("mode-in-person") }} 75 </span> 76 {% elif event.mode == "virtual" %} 77 <span class="event-tag tag-virtual"> 78 <i class="fas fa-video"></i> {{ t("mode-virtual") }} 79 </span> 80 {% elif event.mode == "hybrid" %} 81 <span class="event-tag tag-hybrid"> 82 <i class="fas fa-globe"></i> {{ t("mode-hybrid") }} 83 </span> 84 {% endif %} 85 </div> 86 87 <!-- Organizer Info --> 88 {% if event.organizer_display_name %} 89 <div class="event-organizer"> 90 <div class="organizer-avatar"> 91 {{ event.organizer_display_name|first|upper }} 92 </div> 93 <span class="organizer-name"> 94 <a href="{{ base }}/{{ event.organizer_did }}" hx-boost="true" style="color: inherit; text-decoration: none;"> 95 {{ event.organizer_display_name }} 96 </a> 97 </span> 98 </div> 99 {% endif %} 100 101 <!-- Event Description Preview --> 102 {% if event.description_short %} 103 <div class="event-description"> 104 {% autoescape false %}{{ event.description_short }}{% endautoescape %} 105 </div> 106 {% endif %} 107 108 <!-- Location --> 109 {% if event.location %} 110 <div class="event-location" style="color: #aaa; font-size: 0.875rem; margin-bottom: 1rem;"> 111 <i class="fas fa-map-marker-alt" style="color: #7dd87f; margin-right: 0.5rem;"></i> 112 {{ event.location }} 113 </div> 114 {% endif %} 115 116 117 <!-- End Time --> 118 {% if event.ends_at_human %} 119 <div class="event-end-time" style="color: #888; font-size: 0.75rem; margin-bottom: 1rem;"> 120 <i class="fas fa-clock" style="margin-right: 0.25rem;"></i> 121 {{ t("ends-at", time=event.ends_at_human) }} 122 </div> 123 {% endif %} 124 125 <!-- Event Statistics --> 126 <div class="event-stats"> 127 <div class="stat" title="{{ t('event-count-going', count=event.count_going) }}"> 128 <i class="fas fa-star"></i> 129 <span>{{ event.count_going }}</span> 130 </div> 131 <div class="stat" title="{{ t('event-count-interested', count=event.count_interested) }}"> 132 <i class="fas fa-eye"></i> 133 <span>{{ event.count_interested }}</span> 134 </div> 135 <div class="stat" title="{{ t('event-count-not-going', count=event.count_not_going | default(0)) }}"> 136 <i class="fas fa-ban"></i> 137 <span>{{ event.count_not_going | default(0) }}</span> 138 </div> 139 </div> 140 141 <!-- Action Buttons --> 142 <div class="event-actions"> 143 <a href="{{ base }}{{ event.site_url }}" class="action-btn" hx-boost="true"> 144 <i class="fas fa-eye"></i> 145 {{ t("view-event") }} 146 </a> 147 </div> 148 </div> 149 </div>