mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 22:27:26 +01:00
* Added initial bailey api
* wip
* implement new panel header
* Fixed lint
* add ability to mark notification as seen
* add notification count, remove top badge from user and add ability to mark multiple notifications as seen
* add support dismissall and mark all as read
* do not dismiss actionable notif
* mark as seen when menu is opened instead of closed
* implement ordering, list of actionable notifications
* add groups messages and fix badges count
* add notifications for received cards
* send card received notification to target not sender
* rename notificaion field
* fix integration tests
* mark cards notifications as read and update tests
* add mystery items notifications
* add unallocated stats points notifications
* fix linting
* simplify code
* refactoring and fixes
* fix dropdown opening
* start splitting notifications into their own component
* add notifications for inbox messages
* fix unit tests
* fix default buttons styles
* add initial bailey support
* add title and tests to new stuff notification
* add notification if a group task needs more work
* add tests and fixes for marking a task as needing more work
* make sure user._v is updated
* remove console.log
* notification: hover status and margins
* start styling notifications, add separate files and basic functionalities
* fix tests
* start adding mystery items notification
* wip card notification
* fix cards text
* initial implementation inbox messages
* initial implementation group messages
* disable inbox notifications until mobile is ready
* wip group chat messages
* finish mystery and card notifications
* add bailey notification and fix a lot of stuff
* start adding guilds and parties invitations
* misc invitation fixes
* fix lint issues
* remove old code and add key to notifications
* fix tests
* remove unused code
* add link for public guilds invite
* starts to implement needs work notification design and feature
* fixes to needs work, add group task approved notification
* finish needs work feature
* lots of fixes
* implement quest notification
* bailey fixes and static page
* routing fixes
* fixes # this.$store.dispatch(guilds:join, {groupId: group.id, type: party});
* read notifications on click
* chat notifications
* fix tests for chat notifications
* fix chat notification test
* fix tests
* fix tests (again)
* try awaiting
* remove only
* more sleep
* add bailey tests
* fix icons alignment
* fix issue with multiple points notifications
* remove merge code
* fix rejecting guild invitation
* make remove area bigger
* fix error with notifications and add migration
* fix migration
* fix typos
* add cleanup migration too
* notifications empty state, new counter color, fix marking messages as seen in guilds
* fixes
* add image and install correct packages
* fix mongoose version
* update bailey
* typo
* make sure chat is marked as read after other requests
114 lines
2.3 KiB
Vue
114 lines
2.3 KiB
Vue
<template lang="pug">
|
|
.row(:class="{'small-version': smallVersion}")
|
|
template(v-if="quest.collect")
|
|
span.title(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('collect') + ':' }}
|
|
span.col-8
|
|
div(v-for="(collect, key) of quest.collect")
|
|
span {{ collect.count }} {{ getCollectText(collect) }}
|
|
|
|
template(v-if="quest.boss")
|
|
span.title(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('bossHP') + ':' }}
|
|
span.col-8 {{ quest.boss.hp }}
|
|
|
|
span.title(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('difficulty') + ':' }}
|
|
span.col-8
|
|
.svg-icon.inline(
|
|
v-for="star of stars()", v-html="icons[star]",
|
|
:class="smallVersion ? 'icon-12' : 'icon-16'",
|
|
)
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
@import '~client/assets/scss/colors.scss';
|
|
|
|
.title {
|
|
text-align: left;
|
|
font-weight: bold;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.col-8 {
|
|
text-align: left;
|
|
}
|
|
|
|
.col-8:not(:last-child) {
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.svg-icon {
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.small-version {
|
|
font-size: 12px;
|
|
line-height: 1.33;
|
|
|
|
.svg-icon {
|
|
margin-top: 1px;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script>
|
|
import svgStar from 'assets/svg/difficulty-star.svg';
|
|
import svgStarHalf from 'assets/svg/difficulty-star-half.svg';
|
|
import svgStarEmpty from 'assets/svg/difficulty-star-empty.svg';
|
|
|
|
export default {
|
|
props: {
|
|
quest: {
|
|
type: Object,
|
|
},
|
|
smallVersion: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
},
|
|
data () {
|
|
return {
|
|
icons: Object.freeze({
|
|
star: svgStar,
|
|
starHalf: svgStarHalf,
|
|
starEmpty: svgStarEmpty,
|
|
}),
|
|
};
|
|
},
|
|
computed: {
|
|
difficulty () {
|
|
if (this.quest.boss) {
|
|
return this.quest.boss.str;
|
|
}
|
|
|
|
return 1;
|
|
},
|
|
},
|
|
methods: {
|
|
stars () {
|
|
let result = [];
|
|
let difficulty = this.difficulty;
|
|
|
|
for (let i = 1; i <= 4; i++) {
|
|
let diff = difficulty - i;
|
|
|
|
if (diff >= 0) {
|
|
result.push('star');
|
|
} else if (diff <= -1) {
|
|
result.push('starEmpty');
|
|
} else {
|
|
result.push('starHalf');
|
|
}
|
|
}
|
|
|
|
return result;
|
|
},
|
|
getCollectText (collect) {
|
|
if (collect.text instanceof Function) {
|
|
return collect.text();
|
|
} else {
|
|
return collect.text;
|
|
}
|
|
},
|
|
},
|
|
};
|
|
</script>
|