This commit is contained in:
Matt Rider 2019-05-29 09:47:24 -03:00
parent ec1a24cbd3
commit ff0b4b6867
56 changed files with 316 additions and 985 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -1,8 +1,5 @@
<template> <template>
<img <img v-bind="imageProps" :src="imageSrc" />
v-bind="imageProps"
:src="imageSrc"
>
</template> </template>
<script> <script>

View File

@ -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>

View File

@ -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"

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>
&nbsp; &nbsp;
<!-- 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>

View File

@ -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"
>
&nbsp; &nbsp;
</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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -9,26 +9,17 @@
color="primary" color="primary"
size="small" size="small"
round round
>{{ comments.length }}</ds-tag>&nbsp; Comments >
{{ comments.length }}
</ds-tag>
&nbsp; 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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')

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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"
/>&nbsp; />
&nbsp;
<!--<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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>
&nbsp;&nbsp; &nbsp;&nbsp;
<span class="layout-leave-active">|</span> &nbsp;&nbsp; <span class="layout-leave-active">|</span>
<ds-icon &nbsp;&nbsp;
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>