|
|
|
@ -5,31 +5,36 @@ |
|
|
|
<div |
|
|
|
v-for="banner in activeBanners" |
|
|
|
:key="banner.id" |
|
|
|
class="alert alert-danger border-danger banner-drop d-flex align-items-start shadow-sm border-start border-4" |
|
|
|
class="alert alert-danger border-danger banner-drop d-flex justify-content-between align-items-start shadow-sm small-banner" |
|
|
|
role="alert" |
|
|
|
@click="goToBannerPage" |
|
|
|
style="cursor: pointer" |
|
|
|
> |
|
|
|
<div class="flex-grow-1"> |
|
|
|
<h5 class="mb-1 fw-bold">{{ banner.title }}</h5> |
|
|
|
<p class="text-muted mb-1" style="font-size: 0.85rem;"> |
|
|
|
<div class="d-flex flex-row justify-content-between align-items-center flex-wrap"> |
|
|
|
<span class="me-3">{{ banner.text }}</span> |
|
|
|
<div class="text-end"> |
|
|
|
<a |
|
|
|
v-if="banner.link" |
|
|
|
:href="banner.link" |
|
|
|
class="alert-link d-block" |
|
|
|
target="_blank" |
|
|
|
rel="noopener" |
|
|
|
@click.stop |
|
|
|
> |
|
|
|
Mer info |
|
|
|
</a> |
|
|
|
<span class="badge bg-light text-dark mt-1 d-block">{{ banner.type }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="text-muted mt-1" style="font-size: 0.75rem;"> |
|
|
|
{{ formatDate(banner.updated) }} |
|
|
|
</p> |
|
|
|
<p class="mb-1">{{ banner.text }}</p> |
|
|
|
<a |
|
|
|
v-if="banner.link" |
|
|
|
:href="banner.link" |
|
|
|
class="alert-link d-block mt-2" |
|
|
|
target="_blank" |
|
|
|
rel="noopener" |
|
|
|
@click.stop |
|
|
|
> |
|
|
|
Mer info |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<button |
|
|
|
type="button" |
|
|
|
class="btn-close ms-3 mt-1" |
|
|
|
class="btn-close ms-3" |
|
|
|
aria-label="Close" |
|
|
|
@click.stop="banner.dismissed = true" |
|
|
|
></button> |
|
|
|
@ -39,6 +44,7 @@ |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script setup> |
|
|
|
import { ref, onMounted, computed } from 'vue' |
|
|
|
import { useRouter } from 'vue-router' |
|
|
|
@ -108,13 +114,18 @@ const goToBannerPage = (event) => { |
|
|
|
.alert-wrapper { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
gap: 1rem; |
|
|
|
gap: 0.5rem; |
|
|
|
} |
|
|
|
|
|
|
|
.small-banner { |
|
|
|
padding: 0.5rem 1rem; |
|
|
|
font-size: 0.9rem; |
|
|
|
} |
|
|
|
|
|
|
|
.banner-drop { |
|
|
|
animation: dropDown 0.6s ease-out forwards; |
|
|
|
opacity: 0; |
|
|
|
transform: translateY(-30px); |
|
|
|
transform: translateY(-20px); |
|
|
|
} |
|
|
|
|
|
|
|
@keyframes dropDown { |
|
|
|
|