fixes and refactor

This commit is contained in:
Liyas Thomas
2021-05-14 05:50:17 +00:00
committed by GitHub
parent 2b8cda40a2
commit 8f09c82763
13 changed files with 107 additions and 87 deletions

View File

@@ -5,7 +5,7 @@
<SmartTab
:id="'team-collections'"
:label="'Team Collections'"
v-if="currentUser && currentUser.eaInvited"
v-if="currentUser && currentUser.eaInvited && !doc"
>
<ul>
<li>
@@ -40,6 +40,7 @@ import { currentUserInfo$ } from "~/helpers/teams/BackendUserInfo"
export default {
props: {
doc: Boolean,
show: Boolean,
},
subscriptions() {

View File

@@ -13,6 +13,7 @@
<CollectionsChooseType
:collectionsType="collectionsType"
:show="showTeamCollections"
:doc="doc"
@update-collection-type="updateCollectionType"
@update-selected-team="updateSelectedTeam"
/>
@@ -108,7 +109,8 @@
@edit-folder="editFolder($event)"
@edit-request="editRequest($event)"
@update-team-collections="updateTeamCollections"
@select-collection="$emit('use-collection', index)"
@select-collection="$emit('use-collection', collection)"
@unselect-collection="$emit('remove-collection', collection)"
@select-folder="
$emit('select-folder', {
folderName:
@@ -128,11 +130,10 @@
picked = $event.id
}
"
@unselect-collection="$emit('remove-collection', collection)"
@expand-collection="expandCollection"
@remove-collection="removeCollection"
@remove-request="removeRequest"
:picked="picked"
:picked="picked.toString()"
/>
</li>
</ul>

View File

@@ -12,7 +12,9 @@
<button class="icon" @click="toggleShowChildren">
<i class="material-icons" v-show="!showChildren && !isFiltered">arrow_right</i>
<i class="material-icons" v-show="showChildren || isFiltered">arrow_drop_down</i>
<i v-if="picked === collectionIndex" class="text-green-400 material-icons">check_circle</i>
<i v-if="picked === collectionIndex.toString()" class="text-green-400 material-icons"
>check_circle</i
>
<i v-else class="material-icons">folder</i>
<span>{{ collection.name }}</span>
</button>
@@ -92,7 +94,7 @@
})
"
@remove-request="removeRequest"
:picked="picked"
:picked="picked.toString()"
/>
</li>
</ul>

View File

@@ -99,7 +99,7 @@
"
@expand-collection="expandCollection"
@remove-request="removeRequest"
:picked="picked"
:picked="picked.toString()"
/>
</li>
</ul>
@@ -110,7 +110,7 @@
class="ml-8 border-l border-brdColor"
>
<CollectionsTeamsRequest
:request="JSON.parse(request.request)"
:request="request.request"
:collection-index="collectionIndex"
:folder-index="-1"
:folder-name="collection.name"

View File

@@ -93,7 +93,7 @@
class="flex ml-8 border-l border-brdColor"
>
<CollectionsTeamsRequest
:request="JSON.parse(request.request)"
:request="request.request"
:collection-index="collectionIndex"
:folder-index="folderIndex"
:folder-name="folder.name"

View File

@@ -4,10 +4,14 @@
<i class="material-icons">folder</i>
{{ collection.name || $t("none") }}
</h2>
<span class="folder" v-for="(folder, index) in collection.folders" :key="index">
<span
class="folder"
v-for="(folder, index) in collection.folders"
:key="`sub-collection-${index}`"
>
<DocsFolder :folder="folder" />
</span>
<div v-for="(request, index) in collection.requests" :key="index">
<div v-for="(request, index) in collection.requests" :key="`request-${index}`">
<DocsRequest :request="request" />
</div>
</div>

View File

@@ -165,6 +165,7 @@
<script>
import * as team_utils from "~/helpers/teams/utils"
import cloneDeep from "lodash/cloneDeep"
import TeamMemberAdapter from "~/helpers/teams/TeamMemberAdapter"
export default {
props: {
@@ -177,21 +178,19 @@ export default {
rename: null,
doneButton: '<i class="material-icons">done</i>',
members: [],
membersSubject: null,
membersSubscription: null,
newMembers: [],
membersAdapter: new TeamMemberAdapter(null),
}
},
mounted() {
this.membersAdapter.members$.subscribe((list) => {
console.log(list)
this.members = cloneDeep(list)
})
},
watch: {
editingteamID(teamID) {
team_utils.getLiveTeamMembersList(this.$apollo, teamID).then((subject) => {
this.membersSubject = subject
this.membersSubscription = this.membersSubject.subscribe((memberList) => {
console.log(memberList)
this.members = cloneDeep(memberList)
})
})
this.membersAdapter.changeTeamID(teamID)
},
},
computed: {

View File

@@ -32,13 +32,12 @@
class="icon"
@click="exitTeam"
v-close-popover
:disabled="!(team.myRole === 'OWNER' && team.ownersCount == 1)"
:disabled="team.myRole === 'OWNER' && team.ownersCount == 1"
>
<i class="material-icons">remove</i>
<div
v-tooltip.left="{
content:
team.myRole === 'OWNER' && team.ownersCount == 1 ? null : $t('disable_exit'),
content: team.myRole === 'OWNER' && team.ownersCount == 1 ? $t('disable_exit') : '',
}"
>
<span>{{ $t("exit") }}</span>

View File

@@ -1,5 +1,16 @@
<template>
<AppSection class="green" icon="history" :label="$t('teams')" ref="teams" no-legend>
<div class="flex flex-col">
<label>{{ $t("teams") }}</label>
<div v-if="fb.currentUser"></div>
<div v-else>
<label>{{ $t("login_with") }}</label>
<p>
<FirebaseLogin />
</p>
</div>
</div>
<TeamsAdd :show="showModalAdd" @hide-modal="displayModalAdd(false)" />
<TeamsEdit
:team="myTeams[0]"
@@ -53,6 +64,7 @@ ul {
<script>
import gql from "graphql-tag"
import { fb } from "~/helpers/fb"
export default {
data() {
@@ -64,6 +76,7 @@ export default {
editingteamID: "",
me: {},
myTeams: [],
fb,
}
},
apollo: {

View File

@@ -50,12 +50,8 @@ const wsLink = new WebSocketLink({
reconnect: true,
lazy: true,
connectionParams: () => {
if (authToken) {
return {}
} else {
return {
authorization: `Bearer ${authToken}`,
}
return {
authorization: `Bearer ${authToken}`,
}
},
},

View File

@@ -466,6 +466,8 @@ export default class TeamCollectionAdapter {
},
})
.subscribe(({ data }) => {
console.log("from adapter")
this.updateRequest({
id: data.teamRequestUpdated.id,
collectionID: data.teamRequestUpdated.collectionID,
@@ -526,7 +528,7 @@ export default class TeamCollectionAdapter {
id: el.id,
collectionID: collectionID,
title: el.title,
request: el.request,
request: JSON.parse(el.request),
}
})

View File

@@ -12,7 +12,6 @@ interface TeamsTeamMember {
}
export default class TeamMemberAdapter {
members$: BehaviorSubject<TeamsTeamMember[]>
private teamMemberAdded$: ZenObservable.Subscription | null
@@ -21,7 +20,7 @@ export default class TeamMemberAdapter {
constructor(private teamID: string | null) {
this.members$ = new BehaviorSubject<TeamsTeamMember[]>([])
this.teamMemberAdded$ = null
this.teamMemberUpdated$ = null
this.teamMemberRemoved$ = null
@@ -66,72 +65,76 @@ export default class TeamMemberAdapter {
variables: {
teamID: this.teamID,
},
});
})
this.members$.next(data.team.members)
}
private registerSubscriptions() {
this.teamMemberAdded$ = apolloClient.subscribe({
query: gql`
subscription TeamMemberAdded($teamID: String!) {
teamMemberAdded(teamID: $teamID) {
user {
uid
email
this.teamMemberAdded$ = apolloClient
.subscribe({
query: gql`
subscription TeamMemberAdded($teamID: String!) {
teamMemberAdded(teamID: $teamID) {
user {
uid
email
}
role
}
role
}
}
`,
variables: {
teamID: this.teamID
}
}).subscribe(({ data }) => {
this.members$.next([...this.members$.value, data.teamMemberAdded])
})
`,
variables: {
teamID: this.teamID,
},
})
.subscribe(({ data }) => {
this.members$.next([...this.members$.value, data.teamMemberAdded])
})
this.teamMemberRemoved$ = apolloClient.subscribe({
query: gql`
subscription TeamMemberRemoved($teamID: String!) {
teamMemberRemoved(teamID: $teamID)
}
`,
variables: {
teamID: this.teamID
}
}).subscribe(({ data }) => {
this.members$.next(
this.members$.value.filter(
el => el.user.uid !== data.teamMemberRemoved
this.teamMemberRemoved$ = apolloClient
.subscribe({
query: gql`
subscription TeamMemberRemoved($teamID: String!) {
teamMemberRemoved(teamID: $teamID)
}
`,
variables: {
teamID: this.teamID,
},
})
.subscribe(({ data }) => {
console.log(data)
this.members$.next(
this.members$.value.filter((el) => el.user.uid !== data.teamMemberRemoved)
)
)
})
})
this.teamMemberUpdated$ = apolloClient.subscribe({
query: gql`
subscription TeamMemberUpdated($teamID: String!) {
teamMemberUpdated(teamID: $teamID) {
user {
uid
email
this.teamMemberUpdated$ = apolloClient
.subscribe({
query: gql`
subscription TeamMemberUpdated($teamID: String!) {
teamMemberUpdated(teamID: $teamID) {
user {
uid
email
}
role
}
role
}
}
`,
variables: {
teamID: this.teamID
}
}).subscribe(({ data }) => {
const list = cloneDeep(this.members$.value)
const obj = list.find(
el => el.user.uid === data.teamMemberUpdated.user.uid
)
`,
variables: {
teamID: this.teamID,
},
})
.subscribe(({ data }) => {
const list = cloneDeep(this.members$.value)
const obj = list.find((el) => el.user.uid === data.teamMemberUpdated.user.uid)
if (!obj) return
if (!obj) return
Object.assign(obj, data.teamMemberUpdated)
})
Object.assign(obj, data.teamMemberUpdated)
})
}
}

View File

@@ -76,7 +76,7 @@
</div>
</div>
<div>
<span v-for="(collection, index) in this.items" :key="index">
<span v-for="(collection, index) in this.items" :key="`collection-${index}`">
<DocsCollection :collection="collection" />
</span>
</div>