mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
* add colors palette * add secondary menu component and style it * add box shadow to secondary menu * misc css, fixes for secondary menu * client: add equipment page with grouping, css: add some styles * add typography * more equipment * stable: fix linting * equipment: add styles (lots of general styles too) * remove duplicate google fonts loading * add dropdowns * design: white search input background, remove gray from items * start adding drawer and selected indicator * wip equipment * fix equipment * equipment: correctly bind new properties on items.gear.equipped * equipment: fix vue binding. version 2 * equipment: fix vue binding. version 3 * back to first fix for equip op, fix for sourcemaps, send http request when an item is equipped, load bootstrap-vue components where needed * checkboxes and radio buttons * correctly renders selected items in first postion during the first render * add search * general changes, constants part of app state, add popovers * add toggle switch, rename css * correct offset * upgrade deps * upgrade deps * drawer and lot of other work * update equipping mechanism * finish equipment * fix compilation and upgrade deps * use v-show in place of v-if to fix ui issues * v-show -> v-if * Start of guild syyles * fix linting in test/client * fix es6 compilation in test/client * fix babel compilation for tests * fix groupsUtilities mixin tests * More designs * Added public guild state * Added my guilds store * client: buttons * client: buttons: fix colors * Added join and leave * Began adding new guild form * Create form updates * Added search to local data * Added filtering * Added initial code for group create * Added more create checks * Added more guild routes * Added styles to guild page * Added more chat styles * Began porting over angular functions * Moved over group service functions * Added paging * Updated sidebar * Updated join/leave and minor text * Added new sidebar functions * Updated paging * Added some form updates * Added more translations and styles * Updated shrinkwrap * Removed features config * Lint cleanup * Added member modal * Added more member actions * Updated nav * Fixed filter toggling * Updated create guild * Added no guild page * Added sort select * Added more styles * Added update guild form * Removed extra css and other minor changes * Many css and syntax fixes * Fixed color and merge conflic * Removed paging from my guilds * Removed extra strings * Many requests updates * Small style fixes
108 lines
3.5 KiB
Vue
108 lines
3.5 KiB
Vue
<template lang="pug">
|
|
div
|
|
button.btn.btn-primary(b-btn, @click="$root.$emit('show::modal','members-modal')") {{ $t('viewMembers') }}
|
|
|
|
b-modal#members-modal(:title="$t('createGuild')")
|
|
ul(v-for='member in members', :key='member')
|
|
li(@click='clickMember') {{member}}
|
|
button(@click='removeMember(member)', v-once) {{$t('remove')}}
|
|
button(@click='quickReply(member)', v-once) {{$t('message')}}
|
|
button(@click='addManager(member)', v-once) {{$t('addManager')}}
|
|
button(@click='removeManager(member)', v-once) {{$t('addManager')}}
|
|
|
|
b-modal#remove-member(:title="$t('confirmRemoveMember')")
|
|
button(@click='confirmRemoveMember(member)', v-once) {{$t('remove')}}
|
|
|
|
b-modal#private-message(:title="$t('confirmRemoveMember')")
|
|
button(@click='confirmRemoveMember(member)', v-once) {{$t('remove')}}
|
|
</template>
|
|
|
|
<script>
|
|
import bModal from 'bootstrap-vue/lib/components/modal';
|
|
|
|
export default {
|
|
props: ['group'],
|
|
components: {
|
|
bModal,
|
|
},
|
|
data () {
|
|
return {
|
|
members: ['one', 'two'],
|
|
memberToRemove: '',
|
|
};
|
|
},
|
|
methods: {
|
|
getMembers () {
|
|
// We should get members here via store if they are not loaded
|
|
},
|
|
clickMember (uid, forceShow) {
|
|
let user = this.$store.state.user.data;
|
|
|
|
if (user._id === uid && !forceShow) {
|
|
if (this.$route.name === 'tasks') {
|
|
this.$route.router.go('options.profile.avatar');
|
|
return;
|
|
}
|
|
|
|
this.$route.router.go('tasks');
|
|
return;
|
|
}
|
|
|
|
// $root.$emit('show::modal','members-modal')
|
|
// We need the member information up top here, but then we pass it down to the modal controller
|
|
// down below. Better way of handling this?
|
|
// Members.selectMember(uid)
|
|
// .then(function () {
|
|
// $rootScope.openModal('member', {controller: 'MemberModalCtrl', windowClass: 'profile-modal', size: 'lg'});
|
|
// });
|
|
},
|
|
removeMember (member) {
|
|
this.memberToRemove = member;
|
|
this.$root.$emit('show::modal', 'remove-member');
|
|
},
|
|
confirmRemoveMember (confirmation) {
|
|
if (!confirmation) {
|
|
this.memberToRemove = '';
|
|
return;
|
|
}
|
|
// Groups.Group.removeMember(
|
|
// $scope.removeMemberData.group._id,
|
|
// $scope.removeMemberData.member._id,
|
|
// $scope.removeMemberData.message
|
|
// ).then(function (response) {
|
|
// if($scope.removeMemberData.isMember){
|
|
// _.pull($scope.removeMemberData.group.members, $scope.removeMemberData.member);
|
|
// }else{
|
|
// _.pull($scope.removeMemberData.group.invites, $scope.removeMemberData.member);
|
|
// }
|
|
//
|
|
// $scope.removeMemberData = undefined;
|
|
// });
|
|
},
|
|
quickReply (uid) {
|
|
this.memberToReply = uid;
|
|
this.$root.$emit('show::modal', 'private-message');
|
|
// Members.selectMember(uid)
|
|
// .then(function (response) {
|
|
// $rootScope.openModal('private-message', {controller: 'MemberModalCtrl'});
|
|
// });
|
|
},
|
|
addManager () {
|
|
// Groups.Group.addManager(this.group._id, this.group._newManager)
|
|
// .then(function (response) {
|
|
// this.group._newManager = '';
|
|
// this.group.managers = response.data.data.managers;
|
|
// });
|
|
},
|
|
removeManager (memberId) {
|
|
this.memberToReply = memberId;
|
|
// Groups.Group.removeManager(this.group._id, memberId)
|
|
// .then(function (response) {
|
|
// this.group._newManager = '';
|
|
// this.group.managers = response.data.data.managers;
|
|
// });
|
|
},
|
|
},
|
|
};
|
|
</script>
|