mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Fix lint
This commit is contained in:
parent
ec1a24cbd3
commit
ff0b4b6867
@ -1,20 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div :class="[badges.length === 2 && 'hc-badges-dual']" class="hc-badges">
|
||||||
:class="[
|
<div v-for="badge in badges" :key="badge.key" class="hc-badge-container">
|
||||||
(badges.length === 2) && 'hc-badges-dual'
|
<hc-image :title="badge.key" :image-props="{ src: badge.icon }" class="hc-badge" />
|
||||||
]"
|
|
||||||
class="hc-badges"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-for="badge in badges"
|
|
||||||
:key="badge.key"
|
|
||||||
class="hc-badge-container"
|
|
||||||
>
|
|
||||||
<hc-image
|
|
||||||
:title="badge.key"
|
|
||||||
:image-props="{ src: badge.icon}"
|
|
||||||
class="hc-badge"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-tag>
|
<ds-tag>
|
||||||
<ds-icon
|
<ds-icon size="large" :name="icon" />
|
||||||
size="large"
|
|
||||||
:name="icon"
|
|
||||||
/>
|
|
||||||
{{ name }}
|
{{ name }}
|
||||||
</ds-tag>
|
</ds-tag>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,17 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="(comment.deleted || comment.disabled) && !isModerator">
|
<div v-if="(comment.deleted || comment.disabled) && !isModerator">
|
||||||
<ds-text
|
<ds-text style="padding-left: 40px; font-weight: bold;" color="soft">
|
||||||
style="padding-left: 40px; font-weight: bold;"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
<ds-icon name="ban" />
|
<ds-icon name="ban" />
|
||||||
{{ this.$t('comment.content.unavailable-placeholder') }}
|
{{ this.$t('comment.content.unavailable-placeholder') }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-else :class="{ comment: true, 'disabled-content': comment.deleted || comment.disabled }">
|
||||||
v-else
|
|
||||||
:class="{'comment': true, 'disabled-content': (comment.deleted || comment.disabled)}"
|
|
||||||
>
|
|
||||||
<ds-space margin-bottom="x-small">
|
<ds-space margin-bottom="x-small">
|
||||||
<hc-user :user="author" />
|
<hc-user :user="author" />
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -27,10 +21,7 @@
|
|||||||
<!-- eslint-disable vue/no-v-html -->
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<!-- TODO: replace editor content with tiptap render view -->
|
<!-- TODO: replace editor content with tiptap render view -->
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<div
|
<div style="padding-left: 40px;" v-html="comment.contentExcerpt" />
|
||||||
style="padding-left: 40px;"
|
|
||||||
v-html="comment.contentExcerpt"
|
|
||||||
/>
|
|
||||||
<!-- eslint-enable vue/no-v-html -->
|
<!-- eslint-enable vue/no-v-html -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,32 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<dropdown
|
<dropdown class="content-menu" :placement="placement" offset="5">
|
||||||
class="content-menu"
|
<template slot="default" slot-scope="{ toggleMenu }">
|
||||||
:placement="placement"
|
<slot name="button" :toggleMenu="toggleMenu">
|
||||||
offset="5"
|
<ds-button class="content-menu-trigger" size="small" ghost @click.prevent="toggleMenu">
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="default"
|
|
||||||
slot-scope="{toggleMenu}"
|
|
||||||
>
|
|
||||||
<slot
|
|
||||||
name="button"
|
|
||||||
:toggleMenu="toggleMenu"
|
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
class="content-menu-trigger"
|
|
||||||
size="small"
|
|
||||||
ghost
|
|
||||||
@click.prevent="toggleMenu"
|
|
||||||
>
|
|
||||||
<ds-icon name="ellipsis-v" />
|
<ds-icon name="ellipsis-v" />
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</slot>
|
</slot>
|
||||||
</template>
|
</template>
|
||||||
<div
|
<div slot="popover" slot-scope="{ toggleMenu }" class="content-menu-popover">
|
||||||
slot="popover"
|
|
||||||
slot-scope="{toggleMenu}"
|
|
||||||
class="content-menu-popover"
|
|
||||||
>
|
|
||||||
<ds-menu :routes="routes">
|
<ds-menu :routes="routes">
|
||||||
<ds-menu-item
|
<ds-menu-item
|
||||||
slot="menuitem"
|
slot="menuitem"
|
||||||
|
|||||||
@ -1,35 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-form
|
<ds-form ref="contributionForm" v-model="form" :schema="formSchema" @submit="submit">
|
||||||
ref="contributionForm"
|
|
||||||
v-model="form"
|
|
||||||
:schema="formSchema"
|
|
||||||
@submit="submit"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ errors }">
|
<template slot-scope="{ errors }">
|
||||||
<ds-card>
|
<ds-card>
|
||||||
<ds-input
|
<ds-input model="title" class="post-title" placeholder="Title" name="title" autofocus />
|
||||||
model="title"
|
|
||||||
class="post-title"
|
|
||||||
placeholder="Title"
|
|
||||||
name="title"
|
|
||||||
autofocus
|
|
||||||
/>
|
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<hc-editor
|
<hc-editor :users="users" :value="form.content" @input="updateEditorContent" />
|
||||||
:users="users"
|
|
||||||
:value="form.content"
|
|
||||||
@input="updateEditorContent"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<div
|
<div slot="footer" style="text-align: right">
|
||||||
slot="footer"
|
<ds-button :disabled="loading || disabled" ghost @click.prevent="$router.back()">
|
||||||
style="text-align: right"
|
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
:disabled="loading || disabled"
|
|
||||||
ghost
|
|
||||||
@click.prevent="$router.back()"
|
|
||||||
>
|
|
||||||
{{ $t('actions.cancel') }}
|
{{ $t('actions.cancel') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
<ds-button
|
<ds-button
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<span>
|
<span>
|
||||||
<no-ssr
|
<no-ssr placeholder="0" tag="span">
|
||||||
placeholder="0"
|
|
||||||
tag="span"
|
|
||||||
>
|
|
||||||
<count-to
|
<count-to
|
||||||
:start-val="lastEndVal || startVal"
|
:start-val="lastEndVal || startVal"
|
||||||
:end-val="endVal"
|
:end-val="endVal"
|
||||||
|
|||||||
@ -7,17 +7,8 @@
|
|||||||
trigger="manual"
|
trigger="manual"
|
||||||
:offset="offset"
|
:offset="offset"
|
||||||
>
|
>
|
||||||
<slot
|
<slot :toggleMenu="toggleMenu" :openMenu="openMenu" :closeMenu="closeMenu" :isOpen="isOpen" />
|
||||||
:toggleMenu="toggleMenu"
|
<div slot="popover" @mouseover="popoverMouseEnter" @mouseleave="popoveMouseLeave">
|
||||||
:openMenu="openMenu"
|
|
||||||
:closeMenu="closeMenu"
|
|
||||||
:isOpen="isOpen"
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
slot="popover"
|
|
||||||
@mouseover="popoverMouseEnter"
|
|
||||||
@mouseleave="popoveMouseLeave"
|
|
||||||
>
|
|
||||||
<slot
|
<slot
|
||||||
name="popover"
|
name="popover"
|
||||||
:toggleMenu="toggleMenu"
|
:toggleMenu="toggleMenu"
|
||||||
|
|||||||
@ -1,10 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="editor">
|
<div class="editor">
|
||||||
<div
|
<div v-show="showSuggestions" ref="suggestions" class="suggestion-list">
|
||||||
v-show="showSuggestions"
|
|
||||||
ref="suggestions"
|
|
||||||
class="suggestion-list"
|
|
||||||
>
|
|
||||||
<template v-if="hasResults">
|
<template v-if="hasResults">
|
||||||
<div
|
<div
|
||||||
v-for="(user, index) in filteredUsers"
|
v-for="(user, index) in filteredUsers"
|
||||||
@ -16,10 +12,7 @@
|
|||||||
@{{ user.slug }}
|
@{{ user.slug }}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div
|
<div v-else class="suggestion-list__item is-empty">
|
||||||
v-else
|
|
||||||
class="suggestion-list__item is-empty"
|
|
||||||
>
|
|
||||||
No users found
|
No users found
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -154,10 +147,7 @@
|
|||||||
</ds-button>
|
</ds-button>
|
||||||
</div>
|
</div>
|
||||||
</editor-floating-menu>
|
</editor-floating-menu>
|
||||||
<editor-content
|
<editor-content ref="editor" :editor="editor" />
|
||||||
ref="editor"
|
|
||||||
:editor="editor"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-space
|
<ds-space class="hc-empty" centered :margin="margin">
|
||||||
class="hc-empty"
|
|
||||||
centered
|
|
||||||
:margin="margin"
|
|
||||||
>
|
|
||||||
<ds-text>
|
<ds-text>
|
||||||
<img
|
<img
|
||||||
:src="iconPath"
|
:src="iconPath"
|
||||||
@ -11,12 +7,9 @@
|
|||||||
class="hc-empty-icon"
|
class="hc-empty-icon"
|
||||||
style="margin-bottom: 5px"
|
style="margin-bottom: 5px"
|
||||||
alt="Empty"
|
alt="Empty"
|
||||||
><br>
|
/>
|
||||||
<ds-text
|
<br />
|
||||||
v-show="message"
|
<ds-text v-show="message" class="hc-empty-message" color="softer">
|
||||||
class="hc-empty-message"
|
|
||||||
color="softer"
|
|
||||||
>
|
|
||||||
{{ message }}
|
{{ message }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-text>
|
</ds-text>
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<img
|
<img v-bind="imageProps" :src="imageSrc" />
|
||||||
v-bind="imageProps"
|
|
||||||
:src="imageSrc"
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@ -1,14 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-space
|
<ds-space margin-top="large" style="text-align: center">
|
||||||
margin-top="large"
|
<ds-button :loading="loading" icon="arrow-down" ghost @click="$emit('click')">
|
||||||
style="text-align: center"
|
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
:loading="loading"
|
|
||||||
icon="arrow-down"
|
|
||||||
ghost
|
|
||||||
@click="$emit('click')"
|
|
||||||
>
|
|
||||||
{{ $t('actions.loadMore') }}
|
{{ $t('actions.loadMore') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
|
|||||||
@ -1,29 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<dropdown
|
<dropdown ref="menu" :placement="placement" :offset="offset">
|
||||||
ref="menu"
|
|
||||||
:placement="placement"
|
|
||||||
:offset="offset"
|
|
||||||
>
|
|
||||||
<a
|
<a
|
||||||
slot="default"
|
slot="default"
|
||||||
slot-scope="{toggleMenu}"
|
slot-scope="{ toggleMenu }"
|
||||||
class="locale-menu"
|
class="locale-menu"
|
||||||
href="#"
|
href="#"
|
||||||
@click.prevent="toggleMenu()"
|
@click.prevent="toggleMenu()"
|
||||||
>
|
>
|
||||||
<ds-icon
|
<ds-icon style="margin-right: 2px;" name="globe" />
|
||||||
style="margin-right: 2px;"
|
{{ current.code.toUpperCase() }}
|
||||||
name="globe"
|
<ds-icon style="margin-left: 2px" size="xx-small" name="angle-down" />
|
||||||
/> {{ current.code.toUpperCase() }}
|
|
||||||
<ds-icon
|
|
||||||
style="margin-left: 2px"
|
|
||||||
size="xx-small"
|
|
||||||
name="angle-down"
|
|
||||||
/>
|
|
||||||
</a>
|
</a>
|
||||||
<ds-menu
|
<ds-menu
|
||||||
slot="popover"
|
slot="popover"
|
||||||
slot-scope="{toggleMenu}"
|
slot-scope="{ toggleMenu }"
|
||||||
class="locale-menu-popover"
|
class="locale-menu-popover"
|
||||||
:matcher="matcher"
|
:matcher="matcher"
|
||||||
:routes="routes"
|
:routes="routes"
|
||||||
|
|||||||
@ -1,15 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-modal
|
<ds-modal :title="title" :is-open="isOpen" @cancel="cancel">
|
||||||
:title="title"
|
|
||||||
:is-open="isOpen"
|
|
||||||
@cancel="cancel"
|
|
||||||
>
|
|
||||||
<transition name="ds-transition-fade">
|
<transition name="ds-transition-fade">
|
||||||
<ds-flex
|
<ds-flex v-if="success" class="hc-modal-success" centered>
|
||||||
v-if="success"
|
|
||||||
class="hc-modal-success"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<sweetalert-icon icon="success" />
|
<sweetalert-icon icon="success" />
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
</transition>
|
</transition>
|
||||||
@ -17,24 +9,12 @@
|
|||||||
<!-- eslint-disable-next-line vue/no-v-html -->
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<p v-html="message" />
|
<p v-html="message" />
|
||||||
|
|
||||||
<template
|
<template slot="footer">
|
||||||
slot="footer"
|
<ds-button class="cancel" icon="close" @click="cancel">
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
class="cancel"
|
|
||||||
icon="close"
|
|
||||||
@click="cancel"
|
|
||||||
>
|
|
||||||
{{ $t('post.delete.cancel') }}
|
{{ $t('post.delete.cancel') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
|
|
||||||
<ds-button
|
<ds-button danger class="confirm" icon="trash" :loading="loading" @click="confirm">
|
||||||
danger
|
|
||||||
class="confirm"
|
|
||||||
icon="trash"
|
|
||||||
:loading="loading"
|
|
||||||
@click="confirm"
|
|
||||||
>
|
|
||||||
{{ $t('post.delete.submit') }}
|
{{ $t('post.delete.submit') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,26 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-modal
|
<ds-modal :title="title" :is-open="isOpen" @cancel="cancel">
|
||||||
:title="title"
|
|
||||||
:is-open="isOpen"
|
|
||||||
@cancel="cancel"
|
|
||||||
>
|
|
||||||
<!-- eslint-disable-next-line vue/no-v-html -->
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<p v-html="message" />
|
<p v-html="message" />
|
||||||
|
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<ds-button
|
<ds-button class="cancel" @click="cancel">
|
||||||
class="cancel"
|
|
||||||
@click="cancel"
|
|
||||||
>
|
|
||||||
{{ $t('disable.cancel') }}
|
{{ $t('disable.cancel') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
|
|
||||||
<ds-button
|
<ds-button danger class="confirm" icon="exclamation-circle" @click="confirm">
|
||||||
danger
|
|
||||||
class="confirm"
|
|
||||||
icon="exclamation-circle"
|
|
||||||
@click="confirm"
|
|
||||||
>
|
|
||||||
{{ $t('disable.submit') }}
|
{{ $t('disable.submit') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,15 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-modal
|
<ds-modal :title="title" :is-open="isOpen" @cancel="cancel">
|
||||||
:title="title"
|
|
||||||
:is-open="isOpen"
|
|
||||||
@cancel="cancel"
|
|
||||||
>
|
|
||||||
<transition name="ds-transition-fade">
|
<transition name="ds-transition-fade">
|
||||||
<ds-flex
|
<ds-flex v-if="success" class="hc-modal-success" centered>
|
||||||
v-if="success"
|
|
||||||
class="hc-modal-success"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<sweetalert-icon icon="success" />
|
<sweetalert-icon icon="success" />
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
</transition>
|
</transition>
|
||||||
@ -17,14 +9,8 @@
|
|||||||
<!-- eslint-disable-next-line vue/no-v-html -->
|
<!-- eslint-disable-next-line vue/no-v-html -->
|
||||||
<p v-html="message" />
|
<p v-html="message" />
|
||||||
|
|
||||||
<template
|
<template slot="footer">
|
||||||
slot="footer"
|
<ds-button class="cancel" icon="close" @click="cancel">
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
class="cancel"
|
|
||||||
icon="close"
|
|
||||||
@click="cancel"
|
|
||||||
>
|
|
||||||
{{ $t('report.cancel') }}
|
{{ $t('report.cancel') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
|
|
||||||
|
|||||||
@ -27,11 +27,7 @@
|
|||||||
/>
|
/>
|
||||||
<password-strength :password="formData.newPassword" />
|
<password-strength :password="formData.newPassword" />
|
||||||
<ds-space margin-top="base">
|
<ds-space margin-top="base">
|
||||||
<ds-button
|
<ds-button :loading="loading" :disabled="disabled" primary>
|
||||||
:loading="loading"
|
|
||||||
:disabled="disabled"
|
|
||||||
primary
|
|
||||||
>
|
|
||||||
{{ $t('settings.security.change-password.button') }}
|
{{ $t('settings.security.change-password.button') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
|
|||||||
@ -1,16 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="password-strength-meter">
|
<div class="password-strength-meter">
|
||||||
<div
|
<div class="password-strength-meter-inner" :class="'strength-' + strength" />
|
||||||
class="password-strength-meter-inner"
|
|
||||||
:class="'strength-' + strength"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<p class="help">
|
<p class="help">
|
||||||
<span
|
<span v-if="pass" :class="{ insecure: !isSecure }">
|
||||||
v-if="pass"
|
|
||||||
:class="{ insecure: !isSecure }"
|
|
||||||
>
|
|
||||||
{{ $t('settings.security.change-password.passwordSecurity') }}:
|
{{ $t('settings.security.change-password.passwordSecurity') }}:
|
||||||
<strong>{{ $t(`settings.security.change-password.passwordStrength${strength}`) }}</strong>
|
<strong>{{ $t(`settings.security.change-password.passwordStrength${strength}`) }}</strong>
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card
|
<ds-card :image="post.image" :class="{ 'post-card': true, 'disabled-content': post.disabled }">
|
||||||
:image="post.image"
|
|
||||||
:class="{'post-card': true, 'disabled-content': post.disabled}"
|
|
||||||
>
|
|
||||||
<!-- Post Link Target -->
|
<!-- Post Link Target -->
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
class="post-link"
|
class="post-link"
|
||||||
@ -14,30 +11,20 @@
|
|||||||
<!-- Username, Image & Date of Post -->
|
<!-- Username, Image & Date of Post -->
|
||||||
<div>
|
<div>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<hc-user
|
<hc-user :user="post.author" :trunc="35" :date-time="post.createdAt" />
|
||||||
:user="post.author"
|
|
||||||
:trunc="35"
|
|
||||||
:date-time="post.createdAt"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<hc-ribbon :text="$t('post.name')" />
|
<hc-ribbon :text="$t('post.name')" />
|
||||||
</div>
|
</div>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<!-- Post Title -->
|
<!-- Post Title -->
|
||||||
<ds-heading
|
<ds-heading tag="h3" no-margin>
|
||||||
tag="h3"
|
|
||||||
no-margin
|
|
||||||
>
|
|
||||||
{{ post.title }}
|
{{ post.title }}
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<!-- Post Content Excerpt -->
|
<!-- Post Content Excerpt -->
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<!-- TODO: replace editor content with tiptap render view -->
|
<!-- TODO: replace editor content with tiptap render view -->
|
||||||
<div
|
<div class="hc-editor-content" v-html="excerpt" />
|
||||||
class="hc-editor-content"
|
|
||||||
v-html="excerpt"
|
|
||||||
/>
|
|
||||||
<!-- eslint-enable vue/no-v-html -->
|
<!-- eslint-enable vue/no-v-html -->
|
||||||
<!-- Footer o the Post -->
|
<!-- Footer o the Post -->
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
@ -46,29 +33,25 @@
|
|||||||
<hc-category
|
<hc-category
|
||||||
v-for="category in post.categories"
|
v-for="category in post.categories"
|
||||||
:key="category.id"
|
:key="category.id"
|
||||||
v-tooltip="{content: category.name, placement: 'bottom-start', delay: { show: 500 }}"
|
v-tooltip="{ content: category.name, placement: 'bottom-start', delay: { show: 500 } }"
|
||||||
:icon="category.icon"
|
:icon="category.icon"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<div style="display: inline-block; float: right">
|
<div style="display: inline-block; float: right">
|
||||||
<!-- Shouts Count -->
|
<!-- Shouts Count -->
|
||||||
<span :style="{ opacity: post.shoutedCount ? 1 : .5 }">
|
<span :style="{ opacity: post.shoutedCount ? 1 : 0.5 }">
|
||||||
<ds-icon name="bullhorn" />
|
<ds-icon name="bullhorn" />
|
||||||
<small>{{ post.shoutedCount }}</small>
|
<small>{{ post.shoutedCount }}</small>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!-- Comments Count -->
|
<!-- Comments Count -->
|
||||||
<span :style="{ opacity: post.commentsCount ? 1 : .5 }">
|
<span :style="{ opacity: post.commentsCount ? 1 : 0.5 }">
|
||||||
<ds-icon name="comments" />
|
<ds-icon name="comments" />
|
||||||
<small>{{ post.commentsCount }}</small>
|
<small>{{ post.commentsCount }}</small>
|
||||||
</span>
|
</span>
|
||||||
<!-- Menu -->
|
<!-- Menu -->
|
||||||
<content-menu
|
<content-menu resource-type="contribution" :resource="post" :is-owner="isAuthor" />
|
||||||
resource-type="contribution"
|
|
||||||
:resource="post"
|
|
||||||
:is-owner="isAuthor"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -5,16 +5,12 @@
|
|||||||
role="search"
|
role="search"
|
||||||
:class="{
|
:class="{
|
||||||
'is-active': isActive,
|
'is-active': isActive,
|
||||||
'is-open': isOpen
|
'is-open': isOpen,
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<a
|
<a v-if="isActive" class="search-clear-btn" @click="clear">
|
||||||
v-if="isActive"
|
|
||||||
class="search-clear-btn"
|
|
||||||
@click="clear"
|
|
||||||
>
|
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
<ds-select
|
<ds-select
|
||||||
@ -42,42 +38,31 @@
|
|||||||
@input.native="handleInput"
|
@input.native="handleInput"
|
||||||
@click.capture.native="isOpen = true"
|
@click.capture.native="isOpen = true"
|
||||||
>
|
>
|
||||||
<template
|
<template slot="option" slot-scope="{ option }">
|
||||||
slot="option"
|
|
||||||
slot-scope="{option}"
|
|
||||||
>
|
|
||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item class="search-option-label">
|
<ds-flex-item class="search-option-label">
|
||||||
<ds-text>
|
<ds-text>
|
||||||
{{ option.label | truncate(70) }}
|
{{ option.label | truncate(70) }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item
|
<ds-flex-item class="search-option-meta" width="280px">
|
||||||
class="search-option-meta"
|
|
||||||
width="280px"
|
|
||||||
>
|
|
||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item>
|
<ds-flex-item>
|
||||||
<ds-text
|
<ds-text size="small" color="softer" class="search-meta">
|
||||||
size="small"
|
|
||||||
color="softer"
|
|
||||||
class="search-meta"
|
|
||||||
>
|
|
||||||
<span style="text-align: right;">
|
<span style="text-align: right;">
|
||||||
<b>{{ option.commentsCount }}</b> <ds-icon name="comments" />
|
<b>{{ option.commentsCount }}</b>
|
||||||
|
<ds-icon name="comments" />
|
||||||
</span>
|
</span>
|
||||||
<span style="width: 36px; display: inline-block; text-align: right;">
|
<span style="width: 36px; display: inline-block; text-align: right;">
|
||||||
<b>{{ option.shoutedCount }}</b> <ds-icon name="bullhorn" />
|
<b>{{ option.shoutedCount }}</b>
|
||||||
|
<ds-icon name="bullhorn" />
|
||||||
</span>
|
</span>
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item>
|
<ds-flex-item>
|
||||||
<ds-text
|
<ds-text size="small" color="softer" align="right">
|
||||||
size="small"
|
{{ option.author.name | truncate(32) }} -
|
||||||
color="softer"
|
{{ option.createdAt | dateTime('dd.MM.yyyy') }}
|
||||||
align="right"
|
|
||||||
>
|
|
||||||
{{ option.author.name | truncate(32) }} - {{ option.createdAt | dateTime('dd.MM.yyyy') }}
|
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-space
|
<ds-space margin="large" style="text-align: center">
|
||||||
margin="large"
|
|
||||||
style="text-align: center"
|
|
||||||
>
|
|
||||||
<ds-button
|
<ds-button
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@ -13,16 +10,9 @@
|
|||||||
@click="toggle"
|
@click="toggle"
|
||||||
/>
|
/>
|
||||||
<ds-space margin-bottom="xx-small" />
|
<ds-space margin-bottom="xx-small" />
|
||||||
<ds-text
|
<ds-text color="soft" class="shout-button-text">
|
||||||
color="soft"
|
<ds-heading style="display: inline" tag="h3">{{ shoutedCount }}x</ds-heading>
|
||||||
class="shout-button-text"
|
{{ $t('shoutButton.shouted') }}
|
||||||
>
|
|
||||||
<ds-heading
|
|
||||||
style="display: inline"
|
|
||||||
tag="h3"
|
|
||||||
>
|
|
||||||
{{ shoutedCount }}x
|
|
||||||
</ds-heading> {{ $t('shoutButton.shouted') }}
|
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -3,36 +3,16 @@
|
|||||||
<div
|
<div
|
||||||
style="display: inline-block; float: left; margin-right: 4px; height: 100%; vertical-align: middle;"
|
style="display: inline-block; float: left; margin-right: 4px; height: 100%; vertical-align: middle;"
|
||||||
>
|
>
|
||||||
<ds-avatar
|
<ds-avatar style="display: inline-block; vertical-align: middle;" size="small" />
|
||||||
style="display: inline-block; vertical-align: middle;"
|
|
||||||
size="small"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block; height: 100%; vertical-align: middle;">
|
<div style="display: inline-block; height: 100%; vertical-align: middle;">
|
||||||
<b
|
<b class="username" style="vertical-align: middle;">{{ $t('profile.userAnonym') }}</b>
|
||||||
class="username"
|
|
||||||
style="vertical-align: middle;"
|
|
||||||
>{{ $t('profile.userAnonym') }}</b>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<dropdown
|
<dropdown v-else :class="{ 'disabled-content': user.disabled }" placement="top-start" offset="0">
|
||||||
v-else
|
<template slot="default" slot-scope="{ openMenu, closeMenu, isOpen }">
|
||||||
:class="{'disabled-content': user.disabled}"
|
<nuxt-link :to="userLink" :class="['user', isOpen && 'active']">
|
||||||
placement="top-start"
|
<div @mouseover="openMenu(true)" @mouseleave="closeMenu(true)">
|
||||||
offset="0"
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="default"
|
|
||||||
slot-scope="{openMenu, closeMenu, isOpen}"
|
|
||||||
>
|
|
||||||
<nuxt-link
|
|
||||||
:to="userLink"
|
|
||||||
:class="['user', isOpen && 'active']"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
@mouseover="openMenu(true)"
|
|
||||||
@mouseleave="closeMenu(true)"
|
|
||||||
>
|
|
||||||
<div
|
<div
|
||||||
style="display: inline-block; float: left; margin-right: 4px; height: 100%; vertical-align: middle;"
|
style="display: inline-block; float: left; margin-right: 4px; height: 100%; vertical-align: middle;"
|
||||||
>
|
>
|
||||||
@ -44,21 +24,11 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: inline-block; height: 100%; vertical-align: middle;">
|
<div style="display: inline-block; height: 100%; vertical-align: middle;">
|
||||||
<b
|
<b class="username" style="vertical-align: middle;">{{ userName | truncate(18) }}</b>
|
||||||
class="username"
|
|
||||||
style="vertical-align: middle;"
|
|
||||||
>{{ userName | truncate(18) }}</b>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Time -->
|
<!-- Time -->
|
||||||
<div
|
<div v-if="dateTime" style="display: inline;">
|
||||||
v-if="dateTime"
|
<ds-text align="left" size="small" color="soft">
|
||||||
style="display: inline;"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
align="left"
|
|
||||||
size="small"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
<ds-icon name="clock" />
|
<ds-icon name="clock" />
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<hc-relative-date-time :date-time="dateTime" />
|
<hc-relative-date-time :date-time="dateTime" />
|
||||||
@ -70,10 +40,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template slot="popover">
|
<template slot="popover">
|
||||||
<div style="min-width: 250px">
|
<div style="min-width: 250px">
|
||||||
<hc-badges
|
<hc-badges v-if="user.badges && user.badges.length" :badges="user.badges" />
|
||||||
v-if="user.badges && user.badges.length"
|
|
||||||
:badges="user.badges"
|
|
||||||
/>
|
|
||||||
<ds-text
|
<ds-text
|
||||||
v-if="user.location"
|
v-if="user.location"
|
||||||
align="center"
|
align="center"
|
||||||
@ -88,11 +55,7 @@
|
|||||||
<ds-flex style="margin-top: -10px">
|
<ds-flex style="margin-top: -10px">
|
||||||
<ds-flex-item class="ds-tab-nav-item">
|
<ds-flex-item class="ds-tab-nav-item">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="fanCount" :label="$t('profile.followers')" size="x-large" />
|
||||||
:count="fanCount"
|
|
||||||
:label="$t('profile.followers')"
|
|
||||||
size="x-large"
|
|
||||||
/>
|
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item class="ds-tab-nav-item ds-tab-nav-item-active">
|
<ds-flex-item class="ds-tab-nav-item ds-tab-nav-item-active">
|
||||||
@ -112,20 +75,16 @@
|
|||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
<ds-flex
|
<ds-flex v-if="!itsMe" gutter="x-small" style="margin-bottom: 0;">
|
||||||
v-if="!itsMe"
|
<ds-flex-item :width="{ base: 3 }">
|
||||||
gutter="x-small"
|
|
||||||
style="margin-bottom: 0;"
|
|
||||||
>
|
|
||||||
<ds-flex-item :width="{base: 3}">
|
|
||||||
<hc-follow-button
|
<hc-follow-button
|
||||||
:follow-id="user.id"
|
:follow-id="user.id"
|
||||||
:is-followed="user.followedByCurrentUser"
|
:is-followed="user.followedByCurrentUser"
|
||||||
@optimistic="follow => user.followedByCurrentUser = follow"
|
@optimistic="follow => (user.followedByCurrentUser = follow)"
|
||||||
@update="follow => user.followedByCurrentUser = follow"
|
@update="follow => (user.followedByCurrentUser = follow)"
|
||||||
/>
|
/>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{base: 1}">
|
<ds-flex-item :width="{ base: 1 }">
|
||||||
<ds-button fullwidth>
|
<ds-button fullwidth>
|
||||||
<ds-icon name="user-times" />
|
<ds-icon name="user-times" />
|
||||||
</ds-button>
|
</ds-button>
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-form
|
<ds-form v-model="form" @submit="handleSubmit">
|
||||||
v-model="form"
|
|
||||||
@submit="handleSubmit"
|
|
||||||
>
|
|
||||||
<template slot-scope="{ errors }">
|
<template slot-scope="{ errors }">
|
||||||
<ds-card>
|
<ds-card>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
@ -17,22 +14,12 @@
|
|||||||
<ds-flex :gutter="{ base: 'small', md: 'small', sm: 'x-large', xs: 'x-large' }">
|
<ds-flex :gutter="{ base: 'small', md: 'small', sm: 'x-large', xs: 'x-large' }">
|
||||||
<ds-flex-item :width="{ base: '0%', md: '50%', sm: '0%', xs: '0%' }" />
|
<ds-flex-item :width="{ base: '0%', md: '50%', sm: '0%', xs: '0%' }" />
|
||||||
<ds-flex-item :width="{ base: '40%', md: '20%', sm: '30%', xs: '30%' }">
|
<ds-flex-item :width="{ base: '40%', md: '20%', sm: '30%', xs: '30%' }">
|
||||||
<ds-button
|
<ds-button :disabled="disabled" ghost class="cancelBtn" @click.prevent="clear">
|
||||||
:disabled="disabled"
|
|
||||||
ghost
|
|
||||||
class="cancelBtn"
|
|
||||||
@click.prevent="clear"
|
|
||||||
>
|
|
||||||
{{ $t('actions.cancel') }}
|
{{ $t('actions.cancel') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '40%', md: '20%', sm: '40%', xs: '40%' }">
|
<ds-flex-item :width="{ base: '40%', md: '20%', sm: '40%', xs: '40%' }">
|
||||||
<ds-button
|
<ds-button type="submit" :loading="loading" :disabled="disabled || errors" primary>
|
||||||
type="submit"
|
|
||||||
:loading="loading"
|
|
||||||
:disabled="disabled || errors"
|
|
||||||
primary
|
|
||||||
>
|
|
||||||
{{ $t('post.comment.submit') }}
|
{{ $t('post.comment.submit') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -9,26 +9,17 @@
|
|||||||
color="primary"
|
color="primary"
|
||||||
size="small"
|
size="small"
|
||||||
round
|
round
|
||||||
>{{ comments.length }}</ds-tag> Comments
|
>
|
||||||
|
{{ comments.length }}
|
||||||
|
</ds-tag>
|
||||||
|
Comments
|
||||||
</span>
|
</span>
|
||||||
</h3>
|
</h3>
|
||||||
<ds-space margin-bottom="large" />
|
<ds-space margin-bottom="large" />
|
||||||
<div
|
<div v-if="comments && comments.length" id="comments" class="comments">
|
||||||
v-if="comments && comments.length"
|
<comment v-for="comment in comments" :key="comment.id" :comment="comment" />
|
||||||
id="comments"
|
|
||||||
class="comments"
|
|
||||||
>
|
|
||||||
<comment
|
|
||||||
v-for="comment in comments"
|
|
||||||
:key="comment.id"
|
|
||||||
:comment="comment"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<hc-empty
|
<hc-empty v-else name="empty" icon="messages" />
|
||||||
v-else
|
|
||||||
name="empty"
|
|
||||||
icon="messages"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@ -1,18 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-space
|
<ds-space :class="{ notification: true, read: notification.read }" margin-bottom="x-small">
|
||||||
:class="{'notification': true, 'read': notification.read}"
|
|
||||||
margin-bottom="x-small"
|
|
||||||
>
|
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<ds-space margin-bottom="x-small">
|
<ds-space margin-bottom="x-small">
|
||||||
<hc-user
|
<hc-user :user="post.author" :date-time="post.createdAt" :trunc="35" />
|
||||||
:user="post.author"
|
|
||||||
:date-time="post.createdAt"
|
|
||||||
:trunc="35"
|
|
||||||
/>
|
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-text color="soft">
|
<ds-text color="soft">
|
||||||
{{ $t("notifications.menu.mentioned") }}
|
{{ $t('notifications.menu.mentioned') }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<ds-space margin-bottom="x-small" />
|
<ds-space margin-bottom="x-small" />
|
||||||
@ -22,16 +15,11 @@
|
|||||||
@click.native="$emit('read')"
|
@click.native="$emit('read')"
|
||||||
>
|
>
|
||||||
<ds-space margin-bottom="x-small">
|
<ds-space margin-bottom="x-small">
|
||||||
<ds-card
|
<ds-card :header="post.title" :image="post.image" hover space="x-small">
|
||||||
:header="post.title"
|
|
||||||
:image="post.image"
|
|
||||||
hover
|
|
||||||
space="x-small"
|
|
||||||
>
|
|
||||||
<ds-space margin-bottom="x-small" />
|
<ds-space margin-bottom="x-small" />
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<div v-html="excerpt" />
|
<div v-html="excerpt" />
|
||||||
<!-- eslint-enable vue/no-v-html -->
|
<!-- eslint-enable vue/no-v-html -->
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|||||||
@ -1,36 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-button
|
<ds-button v-if="totalNotifications <= 0" class="notifications-menu" disabled icon="bell">
|
||||||
v-if="totalNotifications <= 0"
|
|
||||||
class="notifications-menu"
|
|
||||||
disabled
|
|
||||||
icon="bell"
|
|
||||||
>
|
|
||||||
{{ totalNotifications }}
|
{{ totalNotifications }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
<dropdown
|
<dropdown v-else class="notifications-menu">
|
||||||
v-else
|
<template slot="default" slot-scope="{ toggleMenu }">
|
||||||
class="notifications-menu"
|
<ds-button primary icon="bell" @click.prevent="toggleMenu">
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="default"
|
|
||||||
slot-scope="{toggleMenu}"
|
|
||||||
>
|
|
||||||
<ds-button
|
|
||||||
primary
|
|
||||||
icon="bell"
|
|
||||||
@click.prevent="toggleMenu"
|
|
||||||
>
|
|
||||||
{{ totalNotifications }}
|
{{ totalNotifications }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template slot="popover">
|
||||||
slot="popover"
|
|
||||||
>
|
|
||||||
<div class="notifications-menu-popover">
|
<div class="notifications-menu-popover">
|
||||||
<notification-list
|
<notification-list :notifications="notifications" @markAsRead="markAsRead" />
|
||||||
:notifications="notifications"
|
|
||||||
@markAsRead="markAsRead"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</dropdown>
|
</dropdown>
|
||||||
|
|||||||
@ -3,11 +3,7 @@
|
|||||||
<div class="main-navigation">
|
<div class="main-navigation">
|
||||||
<ds-container class="main-navigation-container">
|
<ds-container class="main-navigation-container">
|
||||||
<div class="main-navigation-left">
|
<div class="main-navigation-left">
|
||||||
<a
|
<a v-router-link style="display: inline-flex" href="/">
|
||||||
v-router-link
|
|
||||||
style="display: inline-flex"
|
|
||||||
href="/"
|
|
||||||
>
|
|
||||||
<ds-logo />
|
<ds-logo />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -24,11 +20,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="main-navigation-right">
|
<div class="main-navigation-right">
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<locale-switch
|
<locale-switch class="topbar-locale-switch" placement="bottom" offset="23" />
|
||||||
class="topbar-locale-switch"
|
|
||||||
placement="bottom"
|
|
||||||
offset="23"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<template v-if="isLoggedIn">
|
<template v-if="isLoggedIn">
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
@ -36,47 +28,32 @@
|
|||||||
</no-ssr>
|
</no-ssr>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<dropdown class="avatar-menu">
|
<dropdown class="avatar-menu">
|
||||||
<template
|
<template slot="default" slot-scope="{ toggleMenu }">
|
||||||
slot="default"
|
|
||||||
slot-scope="{toggleMenu}"
|
|
||||||
>
|
|
||||||
<a
|
<a
|
||||||
class="avatar-menu-trigger"
|
class="avatar-menu-trigger"
|
||||||
:href="$router.resolve({name: 'profile-id-slug', params: {id: user.id, slug: user.slug}}).href"
|
:href="
|
||||||
|
$router.resolve({
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: { id: user.id, slug: user.slug },
|
||||||
|
}).href
|
||||||
|
"
|
||||||
@click.prevent="toggleMenu"
|
@click.prevent="toggleMenu"
|
||||||
>
|
>
|
||||||
<ds-avatar
|
<ds-avatar :image="user.avatar" :name="user.name" size="small" />
|
||||||
:image="user.avatar"
|
<ds-icon size="xx-small" name="angle-down" />
|
||||||
:name="user.name"
|
|
||||||
size="small"
|
|
||||||
/>
|
|
||||||
<ds-icon
|
|
||||||
size="xx-small"
|
|
||||||
name="angle-down"
|
|
||||||
/>
|
|
||||||
</a>
|
</a>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template slot="popover" slot-scope="{ closeMenu }">
|
||||||
slot="popover"
|
|
||||||
slot-scope="{closeMenu}"
|
|
||||||
>
|
|
||||||
<div class="avatar-menu-popover">
|
<div class="avatar-menu-popover">
|
||||||
{{ $t('login.hello') }}
|
{{ $t('login.hello') }}
|
||||||
<b>{{ userName }}</b>
|
<b>{{ userName }}</b>
|
||||||
<template v-if="user.role !== 'user'">
|
<template v-if="user.role !== 'user'">
|
||||||
<ds-text
|
<ds-text color="softer" size="small" style="margin-bottom: 0">
|
||||||
color="softer"
|
|
||||||
size="small"
|
|
||||||
style="margin-bottom: 0"
|
|
||||||
>
|
|
||||||
{{ user.role | camelCase }}
|
{{ user.role | camelCase }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</template>
|
</template>
|
||||||
<hr>
|
<hr />
|
||||||
<ds-menu
|
<ds-menu :routes="routes" :matcher="matcher">
|
||||||
:routes="routes"
|
|
||||||
:matcher="matcher"
|
|
||||||
>
|
|
||||||
<ds-menu-item
|
<ds-menu-item
|
||||||
slot="menuitem"
|
slot="menuitem"
|
||||||
slot-scope="item"
|
slot-scope="item"
|
||||||
@ -88,11 +65,8 @@
|
|||||||
{{ item.route.name }}
|
{{ item.route.name }}
|
||||||
</ds-menu-item>
|
</ds-menu-item>
|
||||||
</ds-menu>
|
</ds-menu>
|
||||||
<hr>
|
<hr />
|
||||||
<nuxt-link
|
<nuxt-link class="logout-link" :to="{ name: 'logout' }">
|
||||||
class="logout-link"
|
|
||||||
:to="{ name: 'logout'}"
|
|
||||||
>
|
|
||||||
<ds-icon name="sign-out" />
|
<ds-icon name="sign-out" />
|
||||||
{{ $t('login.logout') }}
|
{{ $t('login.logout') }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
|
|||||||
@ -32,8 +32,8 @@ module.exports = {
|
|||||||
locales: require('./locales'),
|
locales: require('./locales'),
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
** Headers of the page
|
** Headers of the page
|
||||||
*/
|
*/
|
||||||
head: {
|
head: {
|
||||||
title: 'Human Connection',
|
title: 'Human Connection',
|
||||||
titleTemplate: '%s - Human Connection',
|
titleTemplate: '%s - Human Connection',
|
||||||
@ -46,8 +46,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Customize the progress-bar color
|
** Customize the progress-bar color
|
||||||
*/
|
*/
|
||||||
loading: {
|
loading: {
|
||||||
color: '#86b31e',
|
color: '#86b31e',
|
||||||
height: '2px',
|
height: '2px',
|
||||||
@ -55,20 +55,20 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Global CSS
|
** Global CSS
|
||||||
*/
|
*/
|
||||||
css: ['~assets/styles/main.scss'],
|
css: ['~assets/styles/main.scss'],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Global processed styles
|
** Global processed styles
|
||||||
*/
|
*/
|
||||||
styleResources: {
|
styleResources: {
|
||||||
scss: styleguideStyles,
|
scss: styleguideStyles,
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Plugins to load before mounting the App
|
** Plugins to load before mounting the App
|
||||||
*/
|
*/
|
||||||
plugins: [
|
plugins: [
|
||||||
{
|
{
|
||||||
src: `~/plugins/styleguide${process.env.STYLEGUIDE_DEV ? '-dev' : ''}.js`,
|
src: `~/plugins/styleguide${process.env.STYLEGUIDE_DEV ? '-dev' : ''}.js`,
|
||||||
@ -93,8 +93,8 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Nuxt.js modules
|
** Nuxt.js modules
|
||||||
*/
|
*/
|
||||||
modules: [
|
modules: [
|
||||||
['@nuxtjs/dotenv', { only: envWhitelist }],
|
['@nuxtjs/dotenv', { only: envWhitelist }],
|
||||||
['nuxt-env', { keys: envWhitelist }],
|
['nuxt-env', { keys: envWhitelist }],
|
||||||
@ -105,8 +105,8 @@ module.exports = {
|
|||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Axios module configuration
|
** Axios module configuration
|
||||||
*/
|
*/
|
||||||
axios: {
|
axios: {
|
||||||
// See https://github.com/nuxt-community/axios-module#options
|
// See https://github.com/nuxt-community/axios-module#options
|
||||||
debug: dev,
|
debug: dev,
|
||||||
@ -181,12 +181,12 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Build configuration
|
** Build configuration
|
||||||
*/
|
*/
|
||||||
build: {
|
build: {
|
||||||
/*
|
/*
|
||||||
** You can extend webpack config here
|
** You can extend webpack config here
|
||||||
*/
|
*/
|
||||||
extend(config, ctx) {
|
extend(config, ctx) {
|
||||||
if (process.env.STYLEGUIDE_DEV) {
|
if (process.env.STYLEGUIDE_DEV) {
|
||||||
const path = require('path')
|
const path = require('path')
|
||||||
|
|||||||
@ -5,16 +5,10 @@
|
|||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-flex gutter="small">
|
<ds-flex gutter="small">
|
||||||
<ds-flex-item :width="{ base: '100%', md: '200px' }">
|
<ds-flex-item :width="{ base: '100%', md: '200px' }">
|
||||||
<ds-menu
|
<ds-menu :routes="routes" :is-exact="() => true" />
|
||||||
:routes="routes"
|
|
||||||
:is-exact="() => true"
|
|
||||||
/>
|
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
||||||
<transition
|
<transition name="slide-up" appear>
|
||||||
name="slide-up"
|
|
||||||
appear
|
|
||||||
>
|
|
||||||
<nuxt-child />
|
<nuxt-child />
|
||||||
</transition>
|
</transition>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -1,14 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.categories.name')">
|
<ds-card :header="$t('admin.categories.name')">
|
||||||
<ds-table
|
<ds-table :data="Category" :fields="fields" condensed>
|
||||||
:data="Category"
|
<template slot="icon" slot-scope="scope">
|
||||||
:fields="fields"
|
|
||||||
condensed
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="icon"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
<ds-icon :name="scope.row.icon" />
|
<ds-icon :name="scope.row.icon" />
|
||||||
</template>
|
</template>
|
||||||
</ds-table>
|
</ds-table>
|
||||||
|
|||||||
@ -5,34 +5,18 @@
|
|||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="0" :label="$t('admin.dashboard.users')" size="x-large" uppercase>
|
||||||
:count="0"
|
|
||||||
:label="$t('admin.dashboard.users')"
|
|
||||||
size="x-large"
|
|
||||||
uppercase
|
|
||||||
>
|
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countUsers || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countUsers || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="0" :label="$t('admin.dashboard.posts')" size="x-large" uppercase>
|
||||||
:count="0"
|
|
||||||
:label="$t('admin.dashboard.posts')"
|
|
||||||
size="x-large"
|
|
||||||
uppercase
|
|
||||||
>
|
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countPosts || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countPosts || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -46,10 +30,7 @@
|
|||||||
uppercase
|
uppercase
|
||||||
>
|
>
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countComments || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countComments || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -63,10 +44,7 @@
|
|||||||
uppercase
|
uppercase
|
||||||
>
|
>
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countNotifications || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countNotifications || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -80,10 +58,7 @@
|
|||||||
uppercase
|
uppercase
|
||||||
>
|
>
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countOrganizations || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countOrganizations || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -97,61 +72,34 @@
|
|||||||
uppercase
|
uppercase
|
||||||
>
|
>
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countProjects || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countProjects || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="0" :label="$t('admin.dashboard.invites')" size="x-large" uppercase>
|
||||||
:count="0"
|
|
||||||
:label="$t('admin.dashboard.invites')"
|
|
||||||
size="x-large"
|
|
||||||
uppercase
|
|
||||||
>
|
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countInvites || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countInvites || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="0" :label="$t('admin.dashboard.follows')" size="x-large" uppercase>
|
||||||
:count="0"
|
|
||||||
:label="$t('admin.dashboard.follows')"
|
|
||||||
size="x-large"
|
|
||||||
uppercase
|
|
||||||
>
|
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countFollows || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countFollows || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
<ds-flex-item :width="{ base: '100%', sm: '50%', md: '33%' }">
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-number
|
<ds-number :count="0" :label="$t('admin.dashboard.shouts')" size="x-large" uppercase>
|
||||||
:count="0"
|
|
||||||
:label="$t('admin.dashboard.shouts')"
|
|
||||||
size="x-large"
|
|
||||||
uppercase
|
|
||||||
>
|
|
||||||
<no-ssr slot="count">
|
<no-ssr slot="count">
|
||||||
<hc-count-to
|
<hc-count-to :start-val="0" :end-val="statistics.countShouts || 0" />
|
||||||
:start-val="0"
|
|
||||||
:end-val="statistics.countShouts || 0"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.notifications.name')">
|
<ds-card :header="$t('admin.notifications.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.organizations.name')">
|
<ds-card :header="$t('admin.organizations.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.pages.name')">
|
<ds-card :header="$t('admin.pages.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.settings.name')">
|
<ds-card :header="$t('admin.settings.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.tags.name')">
|
<ds-card :header="$t('admin.tags.name')">
|
||||||
<ds-table
|
<ds-table :data="Tag" :fields="fields" condensed>
|
||||||
:data="Tag"
|
<template slot="id" slot-scope="scope">
|
||||||
:fields="fields"
|
|
||||||
condensed
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="id"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
{{ scope.index + 1 }}
|
{{ scope.index + 1 }}
|
||||||
</template>
|
</template>
|
||||||
</ds-table>
|
</ds-table>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('admin.users.name')">
|
<ds-card :header="$t('admin.users.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<ds-flex
|
<ds-flex v-if="Post && Post.length" :width="{ base: '100%' }" gutter="base">
|
||||||
v-if="Post && Post.length"
|
|
||||||
:width="{ base: '100%' }"
|
|
||||||
gutter="base"
|
|
||||||
>
|
|
||||||
<ds-flex-item
|
<ds-flex-item
|
||||||
v-for="post in uniq(Post)"
|
v-for="post in uniq(Post)"
|
||||||
:key="post.id"
|
:key="post.id"
|
||||||
@ -15,7 +11,7 @@
|
|||||||
</ds-flex>
|
</ds-flex>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<ds-button
|
<ds-button
|
||||||
v-tooltip="{content: 'Create a new Post', placement: 'left', delay: { show: 500 }}"
|
v-tooltip="{ content: 'Create a new Post', placement: 'left', delay: { show: 500 } }"
|
||||||
:path="{ name: 'post-create' }"
|
:path="{ name: 'post-create' }"
|
||||||
class="post-add-button"
|
class="post-add-button"
|
||||||
icon="plus"
|
icon="plus"
|
||||||
@ -23,11 +19,7 @@
|
|||||||
primary
|
primary
|
||||||
/>
|
/>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<hc-load-more
|
<hc-load-more v-if="true" :loading="$apollo.loading" @click="showMoreContributions" />
|
||||||
v-if="true"
|
|
||||||
:loading="$apollo.loading"
|
|
||||||
@click="showMoreContributions"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<transition
|
<transition name="fade" appear>
|
||||||
name="fade"
|
<ds-container v-if="ready" width="small">
|
||||||
appear
|
|
||||||
>
|
|
||||||
<ds-container
|
|
||||||
v-if="ready"
|
|
||||||
width="small"
|
|
||||||
>
|
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>{{ $t('quotes.african.quote') }}</p>
|
<p>{{ $t('quotes.african.quote') }}</p>
|
||||||
@ -15,41 +9,25 @@
|
|||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-card class="login-card">
|
<ds-card class="login-card">
|
||||||
<ds-flex gutter="small">
|
<ds-flex gutter="small">
|
||||||
<ds-flex-item
|
<ds-flex-item :width="{ base: '100%', sm: '50%' }" centered>
|
||||||
:width="{ base: '100%', sm: '50%' }"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<locale-switch
|
<locale-switch class="login-locale-switch" offset="5" />
|
||||||
class="login-locale-switch"
|
|
||||||
offset="5"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<ds-space
|
<ds-space margin-top="small" margin-bottom="xxx-small" centered>
|
||||||
margin-top="small"
|
|
||||||
margin-bottom="xxx-small"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<img
|
<img
|
||||||
class="login-image"
|
class="login-image"
|
||||||
alt="Human Connection"
|
alt="Human Connection"
|
||||||
src="/img/sign-up/humanconnection.svg"
|
src="/img/sign-up/humanconnection.svg"
|
||||||
>
|
/>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item
|
<ds-flex-item :width="{ base: '100%', sm: '50%' }" centered>
|
||||||
:width="{ base: '100%', sm: '50%' }"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-text size="small">
|
<ds-text size="small">
|
||||||
{{ $t('login.copy') }}
|
{{ $t('login.copy') }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<form
|
<form :disabled="pending" @submit.prevent="onSubmit">
|
||||||
:disabled="pending"
|
|
||||||
@submit.prevent="onSubmit"
|
|
||||||
>
|
|
||||||
<ds-input
|
<ds-input
|
||||||
v-model="form.email"
|
v-model="form.email"
|
||||||
:disabled="pending"
|
:disabled="pending"
|
||||||
@ -82,7 +60,9 @@
|
|||||||
:href="$t('login.moreInfoURL')"
|
:href="$t('login.moreInfoURL')"
|
||||||
:title="$t('login.moreInfoHint')"
|
:title="$t('login.moreInfoHint')"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>{{ $t('login.moreInfo') }}</a>
|
>
|
||||||
|
{{ $t('login.moreInfo') }}
|
||||||
|
</a>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</form>
|
</form>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -1,32 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-container width="small">
|
<ds-container width="small">
|
||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item
|
<ds-flex-item :width="{ base: '100%' }" centered>
|
||||||
:width="{ base: '100%' }"
|
<ds-space style="text-align: center;" margin-top="large" margin-bottom="xxx-small" centered>
|
||||||
centered
|
<img style="width: 200px;" src="/img/sign-up/onourjourney.png" alt="Human Connection" />
|
||||||
>
|
|
||||||
<ds-space
|
|
||||||
style="text-align: center;"
|
|
||||||
margin-top="large"
|
|
||||||
margin-bottom="xxx-small"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
style="width: 200px;"
|
|
||||||
src="/img/sign-up/onourjourney.png"
|
|
||||||
alt="Human Connection"
|
|
||||||
>
|
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-space
|
<ds-space style="text-align: center;" margin-top="small" margin-bottom="xxx-small" centered>
|
||||||
style="text-align: center;"
|
<ds-heading tag="h3" soft>
|
||||||
margin-top="small"
|
|
||||||
margin-bottom="xxx-small"
|
|
||||||
centered
|
|
||||||
>
|
|
||||||
<ds-heading
|
|
||||||
tag="h3"
|
|
||||||
soft
|
|
||||||
>
|
|
||||||
Logging out...
|
Logging out...
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
|
|||||||
@ -8,10 +8,7 @@
|
|||||||
<ds-menu :routes="routes" />
|
<ds-menu :routes="routes" />
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
||||||
<transition
|
<transition name="slide-up" appear>
|
||||||
name="slide-up"
|
|
||||||
appear
|
|
||||||
>
|
|
||||||
<nuxt-child />
|
<nuxt-child />
|
||||||
</transition>
|
</transition>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -3,56 +3,48 @@
|
|||||||
<ds-heading tag="h3">
|
<ds-heading tag="h3">
|
||||||
{{ $t('moderation.reports.name') }}
|
{{ $t('moderation.reports.name') }}
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-table
|
<ds-table v-if="Report && Report.length" :data="Report" :fields="fields" condensed>
|
||||||
v-if="Report && Report.length"
|
<template slot="name" slot-scope="scope">
|
||||||
:data="Report"
|
|
||||||
:fields="fields"
|
|
||||||
condensed
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
slot="name"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
<div v-if="scope.row.type === 'Post'">
|
<div v-if="scope.row.type === 'Post'">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{ name: 'post-id-slug', params: { id: scope.row.post.id, slug: scope.row.post.slug } }"
|
:to="{
|
||||||
|
name: 'post-id-slug',
|
||||||
|
params: { id: scope.row.post.id, slug: scope.row.post.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.post.title | truncate(50) }}</b>
|
<b>{{ scope.row.post.title | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<br>
|
<br />
|
||||||
<ds-text
|
<ds-text size="small" color="soft">
|
||||||
size="small"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
{{ scope.row.post.author.name }}
|
{{ scope.row.post.author.name }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</div>
|
</div>
|
||||||
<div v-else-if="scope.row.type === 'Comment'">
|
<div v-else-if="scope.row.type === 'Comment'">
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{ name: 'post-id-slug', params: { id: scope.row.comment.post.id, slug: scope.row.comment.post.slug } }"
|
:to="{
|
||||||
|
name: 'post-id-slug',
|
||||||
|
params: { id: scope.row.comment.post.id, slug: scope.row.comment.post.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.comment.contentExcerpt | truncate(50) }}</b>
|
<b>{{ scope.row.comment.contentExcerpt | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<br>
|
<br />
|
||||||
<ds-text
|
<ds-text size="small" color="soft">
|
||||||
size="small"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
{{ scope.row.comment.author.name }}
|
{{ scope.row.comment.author.name }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{ name: 'profile-id-slug', params: { id: scope.row.user.id, slug: scope.row.user.slug } }"
|
:to="{
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: { id: scope.row.user.id, slug: scope.row.user.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.user.name | truncate(50) }}</b>
|
<b>{{ scope.row.user.name | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template slot="type" slot-scope="scope">
|
||||||
slot="type"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
<ds-text color="soft">
|
<ds-text color="soft">
|
||||||
<ds-icon
|
<ds-icon
|
||||||
v-if="scope.row.type === 'Post'"
|
v-if="scope.row.type === 'Post'"
|
||||||
@ -71,45 +63,50 @@
|
|||||||
/>
|
/>
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template slot="submitter" slot-scope="scope">
|
||||||
slot="submitter"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
:to="{ name: 'profile-id-slug', params: { id: scope.row.submitter.id, slug: scope.row.submitter.slug } }"
|
:to="{
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: { id: scope.row.submitter.id, slug: scope.row.submitter.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
{{ scope.row.submitter.name }}
|
{{ scope.row.submitter.name }}
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</template>
|
</template>
|
||||||
<template
|
<template slot="disabledBy" slot-scope="scope">
|
||||||
slot="disabledBy"
|
|
||||||
slot-scope="scope"
|
|
||||||
>
|
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
v-if="scope.row.type === 'Post' && scope.row.post.disabledBy"
|
v-if="scope.row.type === 'Post' && scope.row.post.disabledBy"
|
||||||
:to="{ name: 'profile-id-slug', params: { id: scope.row.post.disabledBy.id, slug: scope.row.post.disabledBy.slug } }"
|
:to="{
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: { id: scope.row.post.disabledBy.id, slug: scope.row.post.disabledBy.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.post.disabledBy.name | truncate(50) }}</b>
|
<b>{{ scope.row.post.disabledBy.name | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
v-else-if="scope.row.type === 'Comment' && scope.row.comment.disabledBy"
|
v-else-if="scope.row.type === 'Comment' && scope.row.comment.disabledBy"
|
||||||
:to="{ name: 'profile-id-slug', params: { id: scope.row.comment.disabledBy.id, slug: scope.row.comment.disabledBy.slug } }"
|
:to="{
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: {
|
||||||
|
id: scope.row.comment.disabledBy.id,
|
||||||
|
slug: scope.row.comment.disabledBy.slug,
|
||||||
|
},
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.comment.disabledBy.name | truncate(50) }}</b>
|
<b>{{ scope.row.comment.disabledBy.name | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
<nuxt-link
|
<nuxt-link
|
||||||
v-else-if="scope.row.type === 'User' && scope.row.user.disabledBy"
|
v-else-if="scope.row.type === 'User' && scope.row.user.disabledBy"
|
||||||
:to="{ name: 'profile-id-slug', params: { id: scope.row.user.disabledBy.id, slug: scope.row.user.disabledBy.slug } }"
|
:to="{
|
||||||
|
name: 'profile-id-slug',
|
||||||
|
params: { id: scope.row.user.disabledBy.id, slug: scope.row.user.disabledBy.slug },
|
||||||
|
}"
|
||||||
>
|
>
|
||||||
<b>{{ scope.row.user.disabledBy.name | truncate(50) }}</b>
|
<b>{{ scope.row.user.disabledBy.name | truncate(50) }}</b>
|
||||||
</nuxt-link>
|
</nuxt-link>
|
||||||
</template>
|
</template>
|
||||||
</ds-table>
|
</ds-table>
|
||||||
<hc-empty
|
<hc-empty v-else icon="alert" :message="$t('moderation.reports.empty')" />
|
||||||
v-else
|
|
||||||
icon="alert"
|
|
||||||
:message="$t('moderation.reports.empty')"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -2,18 +2,12 @@
|
|||||||
<div>
|
<div>
|
||||||
<ds-flex gutter="small">
|
<ds-flex gutter="small">
|
||||||
<ds-flex-item :width="{ base: '100%', sm: 2, md: 2, lg: 1 }">
|
<ds-flex-item :width="{ base: '100%', sm: 2, md: 2, lg: 1 }">
|
||||||
<transition
|
<transition name="slide-up" appear>
|
||||||
name="slide-up"
|
|
||||||
appear
|
|
||||||
>
|
|
||||||
<nuxt-child />
|
<nuxt-child />
|
||||||
</transition>
|
</transition>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '200px' }">
|
<ds-flex-item :width="{ base: '200px' }">
|
||||||
<ds-menu
|
<ds-menu :routes="routes" class="post-side-navigation" />
|
||||||
:routes="routes"
|
|
||||||
class="post-side-navigation"
|
|
||||||
/>
|
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,18 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<transition
|
<transition name="fade" appear>
|
||||||
name="fade"
|
|
||||||
appear
|
|
||||||
>
|
|
||||||
<ds-card
|
<ds-card
|
||||||
v-if="post && ready"
|
v-if="post && ready"
|
||||||
:image="post.image"
|
:image="post.image"
|
||||||
:class="{'post-card': true, 'disabled-content': post.disabled}"
|
:class="{ 'post-card': true, 'disabled-content': post.disabled }"
|
||||||
>
|
>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<hc-user
|
<hc-user :user="post.author" :date-time="post.createdAt" />
|
||||||
:user="post.author"
|
|
||||||
:date-time="post.createdAt"
|
|
||||||
/>
|
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<content-menu
|
<content-menu
|
||||||
placement="bottom-end"
|
placement="bottom-end"
|
||||||
@ -22,20 +16,14 @@
|
|||||||
/>
|
/>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<ds-heading
|
<ds-heading tag="h3" no-margin>
|
||||||
tag="h3"
|
|
||||||
no-margin
|
|
||||||
>
|
|
||||||
{{ post.title }}
|
{{ post.title }}
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<!-- Content -->
|
<!-- Content -->
|
||||||
<!-- eslint-disable vue/no-v-html -->
|
<!-- eslint-disable vue/no-v-html -->
|
||||||
<!-- TODO: replace editor content with tiptap render view -->
|
<!-- TODO: replace editor content with tiptap render view -->
|
||||||
<div
|
<div class="content hc-editor-content" v-html="post.content" />
|
||||||
class="content hc-editor-content"
|
|
||||||
v-html="post.content"
|
|
||||||
/>
|
|
||||||
<!-- eslint-enable vue/no-v-html -->
|
<!-- eslint-enable vue/no-v-html -->
|
||||||
<ds-space margin="xx-large" />
|
<ds-space margin="xx-large" />
|
||||||
<!-- Categories -->
|
<!-- Categories -->
|
||||||
@ -44,23 +32,16 @@
|
|||||||
<hc-category
|
<hc-category
|
||||||
v-for="category in post.categories"
|
v-for="category in post.categories"
|
||||||
:key="category.id"
|
:key="category.id"
|
||||||
v-tooltip="{content: category.name, placement: 'top-start', delay: { show: 300 }}"
|
v-tooltip="{ content: category.name, placement: 'top-start', delay: { show: 300 } }"
|
||||||
:icon="category.icon"
|
:icon="category.icon"
|
||||||
:name="category.name"
|
:name="category.name"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<ds-space margin-bottom="small" />
|
<ds-space margin-bottom="small" />
|
||||||
<!-- Tags -->
|
<!-- Tags -->
|
||||||
<div
|
<div v-if="post.tags && post.tags.length" class="tags">
|
||||||
v-if="post.tags && post.tags.length"
|
|
||||||
class="tags"
|
|
||||||
>
|
|
||||||
<ds-space margin="xx-small" />
|
<ds-space margin="xx-small" />
|
||||||
<hc-tag
|
<hc-tag v-for="tag in post.tags" :key="tag.id" :name="tag.name" />
|
||||||
v-for="tag in post.tags"
|
|
||||||
:key="tag.id"
|
|
||||||
:name="tag.name"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- Shout Button -->
|
<!-- Shout Button -->
|
||||||
<hc-shout-button
|
<hc-shout-button
|
||||||
|
|||||||
@ -5,36 +5,38 @@
|
|||||||
</h2>
|
</h2>
|
||||||
<p>Hier findest du weitere infos zum Thema.</p>
|
<p>Hier findest du weitere infos zum Thema.</p>
|
||||||
<ds-space />
|
<ds-space />
|
||||||
<h3><ds-icon name="compass" /> Themenkategorien</h3>
|
<h3>
|
||||||
|
<ds-icon name="compass" />
|
||||||
|
Themenkategorien
|
||||||
|
</h3>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<ds-icon
|
<ds-icon
|
||||||
v-for="category in post.categories"
|
v-for="category in post.categories"
|
||||||
:key="category.id"
|
:key="category.id"
|
||||||
v-tooltip="{content: category.name, placement: 'top-start', delay: { show: 300 }}"
|
v-tooltip="{ content: category.name, placement: 'top-start', delay: { show: 300 } }"
|
||||||
:name="category.icon"
|
:name="category.icon"
|
||||||
size="large"
|
size="large"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!--<ds-tag
|
<!--<ds-tag
|
||||||
v-for="category in post.categories"
|
v-for="category in post.categories"
|
||||||
:key="category.id"><ds-icon :name="category.icon" /> {{ category.name }}</ds-tag>-->
|
:key="category.id"><ds-icon :name="category.icon" /> {{ category.name }}</ds-tag>-->
|
||||||
</div>
|
</div>
|
||||||
<template v-if="post.tags && post.tags.length">
|
<template v-if="post.tags && post.tags.length">
|
||||||
<h3><ds-icon name="tags" /> Schlagwörter</h3>
|
<h3>
|
||||||
|
<ds-icon name="tags" />
|
||||||
|
Schlagwörter
|
||||||
|
</h3>
|
||||||
<div class="tags">
|
<div class="tags">
|
||||||
<ds-tag
|
<ds-tag v-for="tag in post.tags" :key="tag.id">
|
||||||
v-for="tag in post.tags"
|
<ds-icon name="tag" />
|
||||||
:key="tag.id"
|
{{ tag.name }}
|
||||||
>
|
|
||||||
<ds-icon name="tag" /> {{ tag.name }}
|
|
||||||
</ds-tag>
|
</ds-tag>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<h3>Verwandte Beiträge</h3>
|
<h3>Verwandte Beiträge</h3>
|
||||||
<ds-section style="margin: 0 -1.5rem; padding: 1.5rem;">
|
<ds-section style="margin: 0 -1.5rem; padding: 1.5rem;">
|
||||||
<ds-flex
|
<ds-flex v-if="post.relatedContributions && post.relatedContributions.length" gutter="small">
|
||||||
v-if="post.relatedContributions && post.relatedContributions.length"
|
|
||||||
gutter="small"
|
|
||||||
>
|
|
||||||
<ds-flex-item
|
<ds-flex-item
|
||||||
v-for="relatedPost in post.relatedContributions"
|
v-for="relatedPost in post.relatedContributions"
|
||||||
:key="relatedPost.id"
|
:key="relatedPost.id"
|
||||||
@ -43,12 +45,7 @@
|
|||||||
<hc-post-card :post="relatedPost" />
|
<hc-post-card :post="relatedPost" />
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
<hc-empty
|
<hc-empty v-else margin="large" icon="file" message="No related Posts" />
|
||||||
v-else
|
|
||||||
margin="large"
|
|
||||||
icon="file"
|
|
||||||
message="No related Posts"
|
|
||||||
/>
|
|
||||||
</ds-section>
|
</ds-section>
|
||||||
<ds-space margin-bottom="large" />
|
<ds-space margin-bottom="large" />
|
||||||
</ds-card>
|
</ds-card>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card header="Werde aktiv!">
|
<ds-card header="Werde aktiv!">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-flex
|
<ds-flex :width="{ base: '100%' }" gutter="base">
|
||||||
:width="{ base: '100%' }"
|
|
||||||
gutter="base"
|
|
||||||
>
|
|
||||||
<ds-flex-item :width="{ base: '100%', md: 3 }">
|
<ds-flex-item :width="{ base: '100%', md: 3 }">
|
||||||
<hc-contribution-form />
|
<hc-contribution-form />
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-flex
|
<ds-flex :width="{ base: '100%' }" gutter="base">
|
||||||
:width="{ base: '100%' }"
|
|
||||||
gutter="base"
|
|
||||||
>
|
|
||||||
<ds-flex-item :width="{ base: '100%', md: 3 }">
|
<ds-flex-item :width="{ base: '100%', md: 3 }">
|
||||||
<hc-contribution-form :contribution="contribution" />
|
<hc-contribution-form :contribution="contribution" />
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -4,20 +4,13 @@
|
|||||||
<p>PROFILE IMAGE</p>
|
<p>PROFILE IMAGE</p>
|
||||||
</ds-card>
|
</ds-card>
|
||||||
<ds-space />
|
<ds-space />
|
||||||
<ds-flex
|
<ds-flex v-if="user" :width="{ base: '100%' }" gutter="base">
|
||||||
v-if="user"
|
|
||||||
:width="{ base: '100%' }"
|
|
||||||
gutter="base"
|
|
||||||
>
|
|
||||||
<ds-flex-item :width="{ base: '100%', sm: 2, md: 2, lg: 1 }">
|
<ds-flex-item :width="{ base: '100%', sm: 2, md: 2, lg: 1 }">
|
||||||
<ds-card
|
<ds-card
|
||||||
:class="{'disabled-content': user.disabled}"
|
:class="{ 'disabled-content': user.disabled }"
|
||||||
style="position: relative; height: auto;"
|
style="position: relative; height: auto;"
|
||||||
>
|
>
|
||||||
<hc-upload
|
<hc-upload v-if="myProfile" :user="user" />
|
||||||
v-if="myProfile"
|
|
||||||
:user="user"
|
|
||||||
/>
|
|
||||||
<ds-avatar
|
<ds-avatar
|
||||||
v-else
|
v-else
|
||||||
:image="user.avatar"
|
:image="user.avatar"
|
||||||
@ -35,54 +28,32 @@
|
|||||||
/>
|
/>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
<ds-space margin="small">
|
<ds-space margin="small">
|
||||||
<ds-heading
|
<ds-heading tag="h3" align="center" no-margin>
|
||||||
tag="h3"
|
|
||||||
align="center"
|
|
||||||
no-margin
|
|
||||||
>
|
|
||||||
{{ userName }}
|
{{ userName }}
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-text
|
<ds-text v-if="user.location" align="center" color="soft" size="small">
|
||||||
v-if="user.location"
|
|
||||||
align="center"
|
|
||||||
color="soft"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
<ds-icon name="map-marker" />
|
<ds-icon name="map-marker" />
|
||||||
{{ user.location.name }}
|
{{ user.location.name }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
<ds-text
|
<ds-text align="center" color="soft" size="small">
|
||||||
align="center"
|
|
||||||
color="soft"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
{{ $t('profile.memberSince') }} {{ user.createdAt | date('MMMM yyyy') }}
|
{{ $t('profile.memberSince') }} {{ user.createdAt | date('MMMM yyyy') }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-space
|
<ds-space v-if="user.badges && user.badges.length" margin="x-small">
|
||||||
v-if="user.badges && user.badges.length"
|
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<hc-badges :badges="user.badges" />
|
<hc-badges :badges="user.badges" />
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-flex>
|
<ds-flex>
|
||||||
<ds-flex-item>
|
<ds-flex-item>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<ds-number :label="$t('profile.followers')">
|
<ds-number :label="$t('profile.followers')">
|
||||||
<hc-count-to
|
<hc-count-to slot="count" :end-val="followedByCount" />
|
||||||
slot="count"
|
|
||||||
:end-val="followedByCount"
|
|
||||||
/>
|
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item>
|
<ds-flex-item>
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<ds-number :label="$t('profile.following')">
|
<ds-number :label="$t('profile.following')">
|
||||||
<hc-count-to
|
<hc-count-to slot="count" :end-val="Number(user.followingCount) || 0" />
|
||||||
slot="count"
|
|
||||||
:end-val="Number(user.followingCount) || 0"
|
|
||||||
/>
|
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
@ -92,140 +63,74 @@
|
|||||||
v-if="!myProfile"
|
v-if="!myProfile"
|
||||||
:follow-id="user.id"
|
:follow-id="user.id"
|
||||||
:is-followed="user.followedByCurrentUser"
|
:is-followed="user.followedByCurrentUser"
|
||||||
@optimistic="follow => user.followedByCurrentUser = follow"
|
@optimistic="follow => (user.followedByCurrentUser = follow)"
|
||||||
@update="follow => fetchUser()"
|
@update="follow => fetchUser()"
|
||||||
/>
|
/>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<template v-if="user.about">
|
<template v-if="user.about">
|
||||||
<hr>
|
<hr />
|
||||||
<ds-space
|
<ds-space margin-top="small" margin-bottom="small">
|
||||||
margin-top="small"
|
<ds-text color="soft" size="small">
|
||||||
margin-bottom="small"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
color="soft"
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
{{ user.about }}
|
{{ user.about }}
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</template>
|
</template>
|
||||||
</ds-card>
|
</ds-card>
|
||||||
<ds-space />
|
<ds-space />
|
||||||
<ds-heading
|
<ds-heading tag="h3" soft style="text-align: center; margin-bottom: 10px;">
|
||||||
tag="h3"
|
|
||||||
soft
|
|
||||||
style="text-align: center; margin-bottom: 10px;"
|
|
||||||
>
|
|
||||||
Netzwerk
|
Netzwerk
|
||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-card style="position: relative; height: auto;">
|
<ds-card style="position: relative; height: auto;">
|
||||||
<ds-space
|
<ds-space v-if="user.following && user.following.length" margin="x-small">
|
||||||
v-if="user.following && user.following.length"
|
<ds-text tag="h5" color="soft">Wem folgt {{ userName | truncate(15) }}?</ds-text>
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
tag="h5"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
Wem folgt {{ userName | truncate(15) }}?
|
|
||||||
</ds-text>
|
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<template v-if="user.following && user.following.length">
|
<template v-if="user.following && user.following.length">
|
||||||
<ds-space
|
<ds-space v-for="follow in uniq(user.following)" :key="follow.id" margin="x-small">
|
||||||
v-for="follow in uniq(user.following)"
|
|
||||||
:key="follow.id"
|
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<!-- TODO: find better solution for rendering errors -->
|
<!-- TODO: find better solution for rendering errors -->
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<user
|
<user :user="follow" :trunc="15" />
|
||||||
:user="follow"
|
|
||||||
:trunc="15"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-space
|
<ds-space v-if="user.followingCount - user.following.length" margin="small">
|
||||||
v-if="user.followingCount - user.following.length"
|
<ds-text size="small" color="softer">
|
||||||
margin="small"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
size="small"
|
|
||||||
color="softer"
|
|
||||||
>
|
|
||||||
und {{ user.followingCount - user.following.length }} weitere
|
und {{ user.followingCount - user.following.length }} weitere
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<p style="text-align: center; opacity: .5;">
|
<p style="text-align: center; opacity: .5;">{{ userName }} folgt niemandem</p>
|
||||||
{{ userName }} folgt niemandem
|
|
||||||
</p>
|
|
||||||
</template>
|
</template>
|
||||||
</ds-card>
|
</ds-card>
|
||||||
<ds-space />
|
<ds-space />
|
||||||
<ds-card style="position: relative; height: auto;">
|
<ds-card style="position: relative; height: auto;">
|
||||||
<ds-space
|
<ds-space v-if="user.followedBy && user.followedBy.length" margin="x-small">
|
||||||
v-if="user.followedBy && user.followedBy.length"
|
<ds-text tag="h5" color="soft">Wer folgt {{ userName | truncate(15) }}?</ds-text>
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
tag="h5"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
Wer folgt {{ userName | truncate(15) }}?
|
|
||||||
</ds-text>
|
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<template v-if="user.followedBy && user.followedBy.length">
|
<template v-if="user.followedBy && user.followedBy.length">
|
||||||
<ds-space
|
<ds-space v-for="follow in uniq(user.followedBy)" :key="follow.id" margin="x-small">
|
||||||
v-for="follow in uniq(user.followedBy)"
|
|
||||||
:key="follow.id"
|
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<!-- TODO: find better solution for rendering errors -->
|
<!-- TODO: find better solution for rendering errors -->
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<user
|
<user :user="follow" :trunc="15" />
|
||||||
:user="follow"
|
|
||||||
:trunc="15"
|
|
||||||
/>
|
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
<ds-space
|
<ds-space v-if="user.followedByCount - user.followedBy.length" margin="small">
|
||||||
v-if="user.followedByCount - user.followedBy.length"
|
<ds-text size="small" color="softer">
|
||||||
margin="small"
|
|
||||||
>
|
|
||||||
<ds-text
|
|
||||||
size="small"
|
|
||||||
color="softer"
|
|
||||||
>
|
|
||||||
und {{ user.followedByCount - user.followedBy.length }} weitere
|
und {{ user.followedByCount - user.followedBy.length }} weitere
|
||||||
</ds-text>
|
</ds-text>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<p style="text-align: center; opacity: .5;">
|
<p style="text-align: center; opacity: .5;">niemand folgt {{ userName }}</p>
|
||||||
niemand folgt {{ userName }}
|
|
||||||
</p>
|
|
||||||
</template>
|
</template>
|
||||||
</ds-card>
|
</ds-card>
|
||||||
<ds-space
|
<ds-space v-if="user.socialMedia && user.socialMedia.length" margin="large">
|
||||||
v-if="user.socialMedia && user.socialMedia.length"
|
|
||||||
margin="large"
|
|
||||||
>
|
|
||||||
<ds-card style="position: relative; height: auto;">
|
<ds-card style="position: relative; height: auto;">
|
||||||
<ds-space margin="x-small">
|
<ds-space margin="x-small">
|
||||||
<ds-text
|
<ds-text tag="h5" color="soft">
|
||||||
tag="h5"
|
|
||||||
color="soft"
|
|
||||||
>
|
|
||||||
{{ $t('profile.socialMedia') }} {{ user.name | truncate(15) }}?
|
{{ $t('profile.socialMedia') }} {{ user.name | truncate(15) }}?
|
||||||
</ds-text>
|
</ds-text>
|
||||||
<template>
|
<template>
|
||||||
<ds-space
|
<ds-space v-for="link in socialMediaLinks" :key="link.username" margin="x-small">
|
||||||
v-for="link in socialMediaLinks"
|
|
||||||
:key="link.username"
|
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<a :href="link.url">
|
<a :href="link.url">
|
||||||
<ds-avatar :image="link.favicon" />
|
<ds-avatar :image="link.favicon" />
|
||||||
{{ 'link.username' }}
|
{{ 'link.username' }}
|
||||||
@ -237,10 +142,7 @@
|
|||||||
</ds-space>
|
</ds-space>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', sm: 3, md: 5, lg: 3 }">
|
<ds-flex-item :width="{ base: '100%', sm: 3, md: 5, lg: 3 }">
|
||||||
<ds-flex
|
<ds-flex :width="{ base: '100%' }" gutter="small">
|
||||||
:width="{ base: '100%' }"
|
|
||||||
gutter="small"
|
|
||||||
>
|
|
||||||
<ds-flex-item class="profile-top-navigation">
|
<ds-flex-item class="profile-top-navigation">
|
||||||
<ds-card class="ds-tab-nav">
|
<ds-card class="ds-tab-nav">
|
||||||
<ds-flex>
|
<ds-flex>
|
||||||
@ -249,10 +151,7 @@
|
|||||||
<!-- TODO: find better solution for rendering errors -->
|
<!-- TODO: find better solution for rendering errors -->
|
||||||
<no-ssr>
|
<no-ssr>
|
||||||
<ds-number :label="$t('common.post', null, user.contributionsCount)">
|
<ds-number :label="$t('common.post', null, user.contributionsCount)">
|
||||||
<hc-count-to
|
<hc-count-to slot="count" :end-val="user.contributionsCount" />
|
||||||
slot="count"
|
|
||||||
:end-val="user.contributionsCount"
|
|
||||||
/>
|
|
||||||
</ds-number>
|
</ds-number>
|
||||||
</no-ssr>
|
</no-ssr>
|
||||||
</ds-space>
|
</ds-space>
|
||||||
@ -285,7 +184,7 @@
|
|||||||
<ds-flex-item style="text-align: center">
|
<ds-flex-item style="text-align: center">
|
||||||
<ds-button
|
<ds-button
|
||||||
v-if="myProfile"
|
v-if="myProfile"
|
||||||
v-tooltip="{content: 'Create a new Post', placement: 'left', delay: { show: 500 }}"
|
v-tooltip="{ content: 'Create a new Post', placement: 'left', delay: { show: 500 } }"
|
||||||
:path="{ name: 'post-create' }"
|
:path="{ name: 'post-create' }"
|
||||||
class="profile-post-add-button"
|
class="profile-post-add-button"
|
||||||
icon="plus"
|
icon="plus"
|
||||||
@ -304,18 +203,11 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<ds-flex-item :width="{ base: '100%' }">
|
<ds-flex-item :width="{ base: '100%' }">
|
||||||
<hc-empty
|
<hc-empty margin="xx-large" icon="file" />
|
||||||
margin="xx-large"
|
|
||||||
icon="file"
|
|
||||||
/>
|
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</template>
|
</template>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
<hc-load-more
|
<hc-load-more v-if="hasMore" :loading="$apollo.loading" @click="showMoreContributions" />
|
||||||
v-if="hasMore"
|
|
||||||
:loading="$apollo.loading"
|
|
||||||
@click="showMoreContributions"
|
|
||||||
/>
|
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
</ds-flex>
|
</ds-flex>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -5,16 +5,10 @@
|
|||||||
</ds-heading>
|
</ds-heading>
|
||||||
<ds-flex gutter="small">
|
<ds-flex gutter="small">
|
||||||
<ds-flex-item :width="{ base: '100%', md: '200px' }">
|
<ds-flex-item :width="{ base: '100%', md: '200px' }">
|
||||||
<ds-menu
|
<ds-menu :routes="routes" :is-exact="() => true" />
|
||||||
:routes="routes"
|
|
||||||
:is-exact="() => true"
|
|
||||||
/>
|
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
<ds-flex-item :width="{ base: '100%', md: 1 }">
|
||||||
<transition
|
<transition name="slide-up" appear>
|
||||||
name="slide-up"
|
|
||||||
appear
|
|
||||||
>
|
|
||||||
<nuxt-child />
|
<nuxt-child />
|
||||||
</transition>
|
</transition>
|
||||||
</ds-flex-item>
|
</ds-flex-item>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.download.name')">
|
<ds-card :header="$t('settings.download.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.delete.name')">
|
<ds-card :header="$t('settings.delete.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-form
|
<ds-form v-model="form" @submit="submit">
|
||||||
v-model="form"
|
|
||||||
@submit="submit"
|
|
||||||
>
|
|
||||||
<ds-card :header="$t('settings.data.name')">
|
<ds-card :header="$t('settings.data.name')">
|
||||||
<ds-input
|
<ds-input
|
||||||
id="name"
|
id="name"
|
||||||
@ -32,13 +29,7 @@
|
|||||||
:placeholder="$t('settings.data.labelBio')"
|
:placeholder="$t('settings.data.labelBio')"
|
||||||
/>
|
/>
|
||||||
<template slot="footer">
|
<template slot="footer">
|
||||||
<ds-button
|
<ds-button style="float: right;" icon="check" type="submit" :loading="loadingData" primary>
|
||||||
style="float: right;"
|
|
||||||
icon="check"
|
|
||||||
type="submit"
|
|
||||||
:loading="loadingData"
|
|
||||||
primary
|
|
||||||
>
|
|
||||||
{{ $t('actions.save') }}
|
{{ $t('actions.save') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.invites.name')">
|
<ds-card :header="$t('settings.invites.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.languages.name')">
|
<ds-card :header="$t('settings.languages.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.organizations.name')">
|
<ds-card :header="$t('settings.organizations.name')">
|
||||||
<hc-empty
|
<hc-empty icon="tasks" message="Coming Soon…" />
|
||||||
icon="tasks"
|
|
||||||
message="Coming Soon…"
|
|
||||||
/>
|
|
||||||
</ds-card>
|
</ds-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -1,19 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<ds-card :header="$t('settings.social-media.name')">
|
<ds-card :header="$t('settings.social-media.name')">
|
||||||
<ds-space
|
<ds-space v-if="socialMediaLinks" margin-top="base" margin="x-small">
|
||||||
v-if="socialMediaLinks"
|
|
||||||
margin-top="base"
|
|
||||||
margin="x-small"
|
|
||||||
>
|
|
||||||
<ds-list>
|
<ds-list>
|
||||||
<ds-list-item
|
<ds-list-item v-for="link in socialMediaLinks" :key="link.id">
|
||||||
v-for="link in socialMediaLinks"
|
<a :href="link.url" target="_blank">
|
||||||
:key="link.id"
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
:href="link.url"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
<hc-image
|
<hc-image
|
||||||
:image-props="{ src: link.favicon }"
|
:image-props="{ src: link.favicon }"
|
||||||
alt="Social Media link"
|
alt="Social Media link"
|
||||||
@ -23,15 +13,10 @@
|
|||||||
{{ link.url }}
|
{{ link.url }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<span class="layout-leave-active">|</span>
|
<span class="layout-leave-active">|</span>
|
||||||
<ds-icon
|
|
||||||
name="edit"
|
<ds-icon name="edit" class="layout-leave-active" />
|
||||||
class="layout-leave-active"
|
<a name="delete" @click="handleDeleteSocialMedia(link)">
|
||||||
/>
|
|
||||||
<a
|
|
||||||
name="delete"
|
|
||||||
@click="handleDeleteSocialMedia(link)"
|
|
||||||
>
|
|
||||||
<ds-icon name="trash" />
|
<ds-icon name="trash" />
|
||||||
</a>
|
</a>
|
||||||
</ds-list-item>
|
</ds-list-item>
|
||||||
@ -43,15 +28,12 @@
|
|||||||
v-model="value"
|
v-model="value"
|
||||||
:placeholder="$t('settings.social-media.placeholder')"
|
:placeholder="$t('settings.social-media.placeholder')"
|
||||||
name="social-media"
|
name="social-media"
|
||||||
:schema="{type: 'url'}"
|
:schema="{ type: 'url' }"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<ds-space margin-top="base">
|
<ds-space margin-top="base">
|
||||||
<div>
|
<div>
|
||||||
<ds-button
|
<ds-button primary @click="handleAddSocialMedia">
|
||||||
primary
|
|
||||||
@click="handleAddSocialMedia"
|
|
||||||
>
|
|
||||||
{{ $t('settings.social-media.submit') }}
|
{{ $t('settings.social-media.submit') }}
|
||||||
</ds-button>
|
</ds-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user