Feature: Improve Dashboard UI (#630)

This commit is contained in:
Nithin David Thomas 2020-03-22 11:44:40 +05:30 committed by GitHub
parent 29bb2bff3a
commit fe70843fae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 111 additions and 51 deletions

View file

@ -18,6 +18,10 @@
font-size: $font-size-small; font-size: $font-size-small;
} }
.text-muted {
color: $color-gray;
}
a { a {
font-size: $font-size-small; font-size: $font-size-small;
} }

View file

@ -20,12 +20,12 @@
border-radius: $space-smaller; border-radius: $space-smaller;
margin-right: $space-normal; margin-right: $space-normal;
&:before { &::before {
line-height: 3.8rem; color: $medium-gray;
font-size: $font-size-default; font-size: $font-size-default;
line-height: 3.8rem;
padding-left: $space-slab; padding-left: $space-slab;
padding-right: $space-smaller; padding-right: $space-smaller;
color: $medium-gray;
} }
.multiselect { .multiselect {
@ -49,33 +49,32 @@
} }
.user--profile__meta { .user--profile__meta {
align-items: flex-start;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-start;
justify-content: center; justify-content: center;
margin-left: $space-slab; margin-left: $space-slab;
} }
.user--profile__button { .user--profile__button {
color: $color-woot;
font-size: $font-size-mini; font-size: $font-size-mini;
margin-top: $space-micro; margin-top: $space-micro;
cursor: pointer; padding: 0;
} }
} }
} }
.button.resolve--button { .button.resolve--button {
>.icon { >.icon {
padding-right: $space-small;
font-size: $font-size-default; font-size: $font-size-default;
padding-right: $space-small;
} }
.spinner { .spinner {
padding: 0 $space-one;
margin-right: $space-smaller; margin-right: $space-smaller;
padding: 0 $space-one;
&:before { &::before {
border-top-color: $color-white; border-top-color: $color-white;
} }
} }

View file

@ -43,6 +43,11 @@
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
width: 27rem; width: 27rem;
.small-icon {
font-size: $font-size-mini;
vertical-align: top;
}
} }
.conversation--meta { .conversation--meta {

View file

@ -83,18 +83,12 @@
flex-direction: column; flex-direction: column;
.load-more-conversations { .load-more-conversations {
color: $color-woot;
cursor: pointer;
font-size: $font-size-small; font-size: $font-size-small;
padding: $space-normal; padding: $space-normal;
width: 100%;
&:hover {
background: $color-background;
}
} }
.end-of-list-text { .end-of-list-text {
font-style: italic;
padding: $space-normal; padding: $space-normal;
} }

View file

@ -28,9 +28,16 @@
color: $color-gray; color: $color-gray;
font-size: $font-size-default; font-size: $font-size-default;
font-weight: $font-weight-medium; font-weight: $font-weight-medium;
.wrap,
.child-icon {
&:hover {
color: $color-woot;
}
}
} }
.active a { .active a .wrap {
color: $color-woot; color: $color-woot;
} }
} }
@ -100,7 +107,7 @@
margin-top: $space-medium; margin-top: $space-medium;
>span { >span {
margin-left: auto; margin-left: $space-one;
} }
} }
} }

View file

@ -21,7 +21,17 @@
} }
.tabs-title { .tabs-title {
@include margin($zero $space-one); @include margin($zero $space-slab);
.badge {
background: $color-background;
border-radius: $space-small;
color: $color-gray;
font-size: $font-size-micro;
font-weight: $font-weight-black;
margin-left: $space-smaller;
padding: $space-smaller;
}
&:first-child { &:first-child {
margin-left: 0; margin-left: 0;
@ -40,10 +50,13 @@
a { a {
@include position(relative, 1px null null null); @include position(relative, 1px null null null);
transition: all .15s $ease-in-out-cubic; align-items: center;
border-bottom: 2px solid transparent; border-bottom: 2px solid transparent;
color: $medium-gray; color: $medium-gray;
display: flex;
flex-direction: row;
font-size: $font-size-small; font-size: $font-size-small;
transition: all .15s $ease-in-out-cubic;
} }
&.is-active { &.is-active {
@ -51,5 +64,10 @@
border-bottom-color: $color-woot; border-bottom-color: $color-woot;
color: $color-woot; color: $color-woot;
} }
.badge {
background: $color-extra-light-blue;
color: $color-woot;
}
} }
} }

View file

@ -32,7 +32,7 @@
<div <div
v-if="!hasCurrentPageEndReached && !chatListLoading" v-if="!hasCurrentPageEndReached && !chatListLoading"
class="text-center load-more-conversations" class="clear button load-more-conversations"
@click="fetchConversations" @click="fetchConversations"
> >
{{ $t('CHAT_LIST.LOAD_MORE_CONVERSATIONS') }} {{ $t('CHAT_LIST.LOAD_MORE_CONVERSATIONS') }}

View file

@ -6,16 +6,19 @@
:class="computedClass" :class="computedClass"
> >
<a <a
class="sub-menu-title"
:class="getMenuItemClass" :class="getMenuItemClass"
data-tooltip data-tooltip
aria-haspopup="true" aria-haspopup="true"
:title="menuItem.toolTip" :title="menuItem.toolTip"
> >
<i :class="menuItem.icon" /> <div class="wrap">
{{ menuItem.label }} <i :class="menuItem.icon" />
{{ menuItem.label }}
</div>
<span <span
v-if="showItem(menuItem)" v-if="showItem(menuItem)"
class="ion-ios-plus-outline" class="child-icon ion-android-add-circle"
@click.prevent="newLinkClick" @click.prevent="newLinkClick"
/> />
</a> </a>
@ -28,12 +31,14 @@
:to="child.toState" :to="child.toState"
> >
<a href="#"> <a href="#">
<i <div class="wrap">
v-if="computedInboxClass(child)" <i
class="inbox-icon" v-if="computedInboxClass(child)"
:class="computedInboxClass(child)" class="inbox-icon"
></i> :class="computedInboxClass(child)"
{{ child.label }} ></i>
{{ child.label }}
</div>
</a> </a>
</router-link> </router-link>
</ul> </ul>
@ -115,3 +120,9 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.sub-menu-title {
display: flex;
justify-content: space-between;
}
</style>

View file

@ -80,7 +80,8 @@ export default {
} }
}} }}
> >
{`${this.name} (${this.getItemCount})`} {`${this.name}`}
<span class="badge">{this.getItemCount}</span>
</a> </a>
</li> </li>
); );

View file

@ -81,5 +81,6 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
text-align: center; text-align: center;
background-image: linear-gradient(to top, #4481eb 0%, #04befe 100%);
} }
</style> </style>

View file

@ -11,7 +11,6 @@
v-else v-else
:username="username" :username="username"
:class="thumbnailClass" :class="thumbnailClass"
background-color="#1f93ff"
color="white" color="white"
:size="avatarSize" :size="avatarSize"
/> />

View file

@ -116,7 +116,7 @@ export default {
} }
const key = `CHAT_LIST.ATTACHMENTS.${fileType}`; const key = `CHAT_LIST.ATTACHMENTS.${fileType}`;
return ` return `
<i class="${this.$t(`${key}.ICON`)}"></i> <i class="small-icon ${this.$t(`${key}.ICON`)}"></i>
${this.$t(`${key}.CONTENT`)} ${this.$t(`${key}.CONTENT`)}
`; `;
}, },

View file

@ -12,7 +12,7 @@
{{ chat.meta.sender.name }} {{ chat.meta.sender.name }}
</h3> </h3>
<button <button
class="user--profile__button" class="user--profile__button clear button small"
@click="$emit('contactPanelToggle')" @click="$emit('contactPanelToggle')"
> >
{{ viewProfileButtonLabel }} {{ viewProfileButtonLabel }}

View file

@ -1,34 +1,55 @@
{ {
"CHAT_LIST": { "CHAT_LIST": {
"LOADING": "Fetching conversations", "LOADING": "Fetching conversations",
"LOAD_MORE_CONVERSATIONS": "Load more conversations...", "LOAD_MORE_CONVERSATIONS": "Load more conversations",
"EOF": "You have reached the end of the list", "EOF": "All conversations loaded 🎉",
"LIST": { "LIST": {
"404": "There are no active conversations in this group." "404": "There are no active conversations in this group."
}, },
"TAB_HEADING": "Conversations", "TAB_HEADING": "Conversations",
"SEARCH": { "SEARCH": {
"INPUT": "Search for People, Chats, Saved Replies .." "INPUT": "Search for People, Chats, Saved Replies .."
}, },
"STATUS_TABS": [ "STATUS_TABS": [{
{ "NAME": "Open", "KEY": "openCount" }, "NAME": "Open",
{ "NAME": "Resolved", "KEY": "allConvCount" } "KEY": "openCount"
},
{
"NAME": "Resolved",
"KEY": "allConvCount"
}
], ],
"ASSIGNEE_TYPE_TABS": [ "ASSIGNEE_TYPE_TABS": [{
{ "NAME": "Mine", "KEY": "me", "COUNT_KEY": "mineCount" }, "NAME": "Mine",
{ "NAME": "Unassigned", "KEY": "unassigned", "COUNT_KEY": "unAssignedCount"}, "KEY": "me",
{ "NAME": "All", "KEY": "all", "COUNT_KEY": "allCount" } "COUNT_KEY": "mineCount"
},
{
"NAME": "Unassigned",
"KEY": "unassigned",
"COUNT_KEY": "unAssignedCount"
},
{
"NAME": "All",
"KEY": "all",
"COUNT_KEY": "allCount"
}
], ],
"CHAT_STATUS_ITEMS": [ "CHAT_STATUS_ITEMS": [{
{ "TEXT": "Open", "VALUE": "open" }, "TEXT": "Open",
{ "TEXT": "Resolved", "VALUE": "resolved" } "VALUE": "open"
},
{
"TEXT": "Resolved",
"VALUE": "resolved"
}
], ],
"ATTACHMENTS": { "ATTACHMENTS": {
"image": { "image": {
"ICON": "ion-camera", "ICON": "ion-image",
"CONTENT": "Picture message" "CONTENT": "Picture message"
}, },
"audio": { "audio": {