mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 21:57:22 +01:00
Sept 21 fixes (#9061)
* Fixed analytics when party is not defined: * Waited to set Stripe * Added popovers to danger zone * Added date format to next cron * Redirect user back to home for static * Removed old settings * Fixed show bailey * Fixed close button on inbox * Fixed sending blank message * Changed input to text area in inbox * Fixed deleting messages in inbox * Allowed user to delete other user message in inbox * Fixed joined date * Fixed count styling * Fixed display of pet and mount * Removed white box when using base_0 items * Fixed your profile to show when clicking from menu * Prevented user from pinning already purchased backgroud * Added user last log in * Added date refresh for yesterdailies modal * Updatd eyewear * Fixed start a quest button * Fixed styles on home page footer * Added checklist sorting * Added support for if card type is missing computed field * Fixed linting
This commit is contained in:
@@ -11,6 +11,8 @@
|
||||
// @TODO: Implement this after we fix username bug
|
||||
// .col-2.offset-1
|
||||
// button.btn.btn-secondary(@click='toggleClick()') +
|
||||
.col-4.offset-4
|
||||
.svg-icon.close(v-html="icons.svgClose", @click='close()')
|
||||
// .col-8.to-form(v-if='displayCreate')
|
||||
// strong To:
|
||||
// b-form-input
|
||||
@@ -39,7 +41,7 @@
|
||||
// @TODO: Implement new message header here when we fix the above
|
||||
|
||||
.new-message-row(v-if='selectedConversation')
|
||||
input(v-model='newMessage')
|
||||
textarea(v-model='newMessage')
|
||||
button.btn.btn-secondary(@click='sendPrivateMessage()') Send
|
||||
</template>
|
||||
|
||||
@@ -51,6 +53,11 @@
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
.close {
|
||||
margin-top: .5em;
|
||||
width: 15px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: .5em;
|
||||
}
|
||||
@@ -107,12 +114,16 @@
|
||||
width: 100%;
|
||||
padding: 1em;
|
||||
|
||||
input {
|
||||
textarea {
|
||||
height: 80%;
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
button {
|
||||
vertical-align: bottom;
|
||||
display: inline-block;
|
||||
box-shadow: none;
|
||||
margin-left: 1em;
|
||||
}
|
||||
@@ -155,6 +166,7 @@ import bFormInput from 'bootstrap-vue/lib/components/form-input';
|
||||
|
||||
import messageIcon from 'assets/svg/message.svg';
|
||||
import chatMessage from '../chat/chatMessages';
|
||||
import svgClose from 'assets/svg/close.svg';
|
||||
|
||||
export default {
|
||||
mixins: [styleHelper],
|
||||
@@ -167,6 +179,7 @@ export default {
|
||||
return {
|
||||
icons: Object.freeze({
|
||||
messageIcon,
|
||||
svgClose,
|
||||
}),
|
||||
displayCreate: true,
|
||||
selectedConversation: '',
|
||||
@@ -201,6 +214,7 @@ export default {
|
||||
timestamp: message.timestamp,
|
||||
user: message.user,
|
||||
uuid: message.uuid,
|
||||
id: message.id,
|
||||
};
|
||||
|
||||
if (message.sent) {
|
||||
@@ -256,6 +270,8 @@ export default {
|
||||
});
|
||||
},
|
||||
sendPrivateMessage () {
|
||||
if (!this.newMessage) return;
|
||||
|
||||
let convoFound = this.conversations.find((conversation) => {
|
||||
return conversation.key === this.selectedConversation;
|
||||
});
|
||||
@@ -284,6 +300,9 @@ export default {
|
||||
chatscroll.scrollTop = chatscroll.scrollHeight;
|
||||
});
|
||||
},
|
||||
close () {
|
||||
this.$root.$emit('hide::modal', 'inbox-modal');
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -47,7 +47,10 @@ div
|
||||
h2 {{ $t('info') }}
|
||||
div
|
||||
strong {{ $t('joined') }}:
|
||||
| {{user.auth.timestamps.created}}
|
||||
| {{userJoinedDate}}
|
||||
div
|
||||
strong {{ $t('lastLoggedIn') }}:
|
||||
| {{userLastLoggedIn}}
|
||||
div
|
||||
strong {{ $t('totalLogins') }}:
|
||||
span {{ $t('totalCheckins', {count: user.loginIncentives}) }}
|
||||
@@ -100,7 +103,7 @@ div
|
||||
h4.popover-content-title {{ achievement.title }}
|
||||
div.popover-content-text(v-html="achievement.text")
|
||||
.achievement(:class='achievement.icon + "2x"', v-if='achievement.earned')
|
||||
.counter.badge.badge-info.stack-count(v-if='achievement.optionalCount') {{achievement.optionalCount}}
|
||||
.counter.badge.badge-info.stack-count(v-if='achievement.optionalCount') {{achievement.optionalCount}}
|
||||
.achievement.achievement-unearned(class='achievement-unearned2x', v-if='!achievement.earned')
|
||||
hr.col-12
|
||||
.row
|
||||
@@ -126,7 +129,7 @@ div
|
||||
div(:class="`shop_${equippedItems.eyewear}`")
|
||||
h3 {{$t('eyewear')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: equippedItems.head}')
|
||||
.box(:class='{white: equippedItems.head && equippedItems.head.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${equippedItems.head}`")
|
||||
h3 {{$t('headGear')}}
|
||||
.col-4.item-wrapper
|
||||
@@ -138,7 +141,7 @@ div
|
||||
div(:class="`shop_${equippedItems.backAccessory}`")
|
||||
h3 {{$t('backAccess')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: equippedItems.armor}')
|
||||
.box(:class='{white: equippedItems.armor && equippedItems.armor.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${equippedItems.armor}`")
|
||||
h3 {{$t('armor')}}
|
||||
.col-4.item-wrapper
|
||||
@@ -146,12 +149,12 @@ div
|
||||
div(:class="`shop_${equippedItems.bodyAccessory}`")
|
||||
h3 {{$t('bodyAccess')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: equippedItems.weapon}')
|
||||
.box(:class='{white: equippedItems.weapon && equippedItems.weapon.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${equippedItems.weapon}`")
|
||||
h3 {{$t('mainHand')}}
|
||||
.col-4.item-wrapper
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: equippedItems.shield}')
|
||||
.box(:class='{white: equippedItems.shield && equippedItems.shield.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${equippedItems.shield}`")
|
||||
h3 {{$t('offHand')}}
|
||||
.col-6
|
||||
@@ -162,7 +165,7 @@ div
|
||||
div(:class="`shop_${costumeItems.eyewear}`")
|
||||
h3 {{$t('eyewear')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: costumeItems.head}')
|
||||
.box(:class='{white: costumeItems.head && costumeItems.head.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${costumeItems.head}`")
|
||||
h3 {{$t('headGear')}}
|
||||
.col-4.item-wrapper
|
||||
@@ -174,7 +177,7 @@ div
|
||||
div(:class="`shop_${costumeItems.backAccessory}`")
|
||||
h3 {{$t('backAccess')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: costumeItems.armor}')
|
||||
.box(:class='{white: costumeItems.armor && costumeItems.armor.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${costumeItems.armor}`")
|
||||
h3 {{$t('armor')}}
|
||||
.col-4.item-wrapper
|
||||
@@ -182,7 +185,7 @@ div
|
||||
div(:class="`shop_${costumeItems.bodyAccessory}`")
|
||||
h3 {{$t('bodyAccess')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: costumeItems.weapon}')
|
||||
.box(:class='{white: costumeItems.weapon && costumeItems.weapon.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${costumeItems.weapon}`")
|
||||
h3 {{$t('mainHand')}}
|
||||
.col-4.item-wrapper
|
||||
@@ -190,7 +193,7 @@ div
|
||||
div(:class="user.preferences.background")
|
||||
h3 {{$t('background')}}
|
||||
.col-4.item-wrapper
|
||||
.box(:class='{white: costumeItems.shield}')
|
||||
.box(:class='{white: costumeItems.shield && costumeItems.shield.indexOf("base_0") === -1}')
|
||||
div(:class="`shop_${costumeItems.shield}`")
|
||||
h3 {{$t('offHand')}}
|
||||
.row.pet-mount-row
|
||||
@@ -200,7 +203,7 @@ div
|
||||
.row.col-12
|
||||
.col-4
|
||||
.box(:class='{white: user.items.currentPet}')
|
||||
div(:class="user.items.currentPet")
|
||||
.pet(:class="`Pet-${user.items.currentPet}`")
|
||||
.col-8
|
||||
div
|
||||
| {{ formatAnimal(user.items.currentPet, 'pet') }}
|
||||
@@ -216,7 +219,7 @@ div
|
||||
.row.col-12
|
||||
.col-4
|
||||
.box(:class='{white: user.items.currentMount}')
|
||||
div(:class="user.items.currentMount")
|
||||
.mount(:class="`Mount-${user.items.currentMount}`")
|
||||
.col-8
|
||||
div
|
||||
| {{ formatAnimal(user.items.currentMount, 'mount') }}
|
||||
@@ -322,6 +325,10 @@ div
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
.pet, .mount {
|
||||
margin-top: -1.6em;
|
||||
}
|
||||
|
||||
.header {
|
||||
h1 {
|
||||
color: #4f2a93;
|
||||
@@ -399,9 +406,10 @@ div
|
||||
color: #fff;
|
||||
background-color: #ff944c;
|
||||
box-shadow: 0 1px 1px 0 rgba(26, 24, 29, 0.12);
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
border-radius: 50%;
|
||||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
border-radius: 2em;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
.achievement-icon {
|
||||
@@ -537,6 +545,7 @@ div
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import moment from 'moment';
|
||||
import axios from 'axios';
|
||||
import bModal from 'bootstrap-vue/lib/components/modal';
|
||||
import each from 'lodash/each';
|
||||
@@ -629,6 +638,12 @@ export default {
|
||||
userLoggedIn: 'user.data',
|
||||
flatGear: 'content.gear.flat',
|
||||
}),
|
||||
userJoinedDate () {
|
||||
return moment(this.user.auth.timestamps.created).format(this.userLoggedIn.preferences.dateFormat.toUpperCase());
|
||||
},
|
||||
userLastLoggedIn () {
|
||||
return moment(this.user.auth.timestamps.loggedin).format(this.userLoggedIn.preferences.dateFormat.toUpperCase());
|
||||
},
|
||||
equippedItems () {
|
||||
return this.user.items.gear.equipped;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user