Files
habitica/website/client/components/guilds/membersModal.vue
Keith Holliday 2e9bc2c31c New client guilds (#8736)
* 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
2017-06-02 14:55:02 -06:00

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>