Feedback updates and a fix pass the current query after updating a user invite
This commit is contained in:
parent
e1aa36426e
commit
5cf0e57eec
|
@ -28,6 +28,10 @@
|
||||||
let inviting = false
|
let inviting = false
|
||||||
let searchFocus = false
|
let searchFocus = false
|
||||||
|
|
||||||
|
// Initially filter entities without app access
|
||||||
|
// Show all when false
|
||||||
|
let filterByAppAccess = true
|
||||||
|
|
||||||
let appInvites = []
|
let appInvites = []
|
||||||
let filteredInvites = []
|
let filteredInvites = []
|
||||||
let filteredUsers = []
|
let filteredUsers = []
|
||||||
|
@ -58,7 +62,7 @@
|
||||||
appInvites = await getInvites()
|
appInvites = await getInvites()
|
||||||
|
|
||||||
//On Focus behaviour
|
//On Focus behaviour
|
||||||
if (searchFocus && !query) {
|
if (!filterByAppAccess && !query) {
|
||||||
filteredInvites =
|
filteredInvites =
|
||||||
appInvites.length > 100 ? appInvites.slice(0, 100) : [...appInvites]
|
appInvites.length > 100 ? appInvites.slice(0, 100) : [...appInvites]
|
||||||
return
|
return
|
||||||
|
@ -66,14 +70,17 @@
|
||||||
|
|
||||||
filteredInvites = appInvites.filter(invite => {
|
filteredInvites = appInvites.filter(invite => {
|
||||||
const inviteInfo = invite.info?.apps
|
const inviteInfo = invite.info?.apps
|
||||||
if ((!query || query == "") && inviteInfo && prodAppId) {
|
if (!query && inviteInfo && prodAppId) {
|
||||||
return Object.keys(inviteInfo).includes(prodAppId)
|
return Object.keys(inviteInfo).includes(prodAppId)
|
||||||
}
|
}
|
||||||
return invite.email.includes(query)
|
return invite.email.includes(query)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
$: searchFocus, prodAppId, filterInvites(query)
|
$: filterByAppAccess, prodAppId, filterInvites(query)
|
||||||
|
$: if (searchFocus === true) {
|
||||||
|
filterByAppAccess = false
|
||||||
|
}
|
||||||
|
|
||||||
const usersFetch = fetchData({
|
const usersFetch = fetchData({
|
||||||
API,
|
API,
|
||||||
|
@ -92,9 +99,9 @@
|
||||||
}
|
}
|
||||||
await usersFetch.update({
|
await usersFetch.update({
|
||||||
query: {
|
query: {
|
||||||
appId: query || searchFocus ? null : prodAppId,
|
appId: query || !filterByAppAccess ? null : prodAppId,
|
||||||
email: query,
|
email: query,
|
||||||
paginated: query || searchFocus ? null : false,
|
paginated: query || !filterByAppAccess ? null : false,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
await usersFetch.refresh()
|
await usersFetch.refresh()
|
||||||
|
@ -120,7 +127,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
const debouncedUpdateFetch = Utils.debounce(searchUsers, 250)
|
const debouncedUpdateFetch = Utils.debounce(searchUsers, 250)
|
||||||
$: debouncedUpdateFetch(query, $store.builderSidePanel, loaded, searchFocus)
|
$: debouncedUpdateFetch(
|
||||||
|
query,
|
||||||
|
$store.builderSidePanel,
|
||||||
|
loaded,
|
||||||
|
filterByAppAccess
|
||||||
|
)
|
||||||
|
|
||||||
const updateAppUser = async (user, role) => {
|
const updateAppUser = async (user, role) => {
|
||||||
if (!prodAppId) {
|
if (!prodAppId) {
|
||||||
|
@ -196,7 +208,7 @@
|
||||||
|
|
||||||
const searchGroups = (userGroups, query) => {
|
const searchGroups = (userGroups, query) => {
|
||||||
let filterGroups =
|
let filterGroups =
|
||||||
query?.length || searchFocus
|
query?.length || !filterByAppAccess
|
||||||
? userGroups
|
? userGroups
|
||||||
: getAppGroups(userGroups, prodAppId)
|
: getAppGroups(userGroups, prodAppId)
|
||||||
return filterGroups
|
return filterGroups
|
||||||
|
@ -228,7 +240,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adds the 'role' attribute and sets it to the current app.
|
// Adds the 'role' attribute and sets it to the current app.
|
||||||
$: enrichedGroups = getEnrichedGroups($groups, searchFocus)
|
$: enrichedGroups = getEnrichedGroups($groups, filterByAppAccess)
|
||||||
$: filteredGroups = searchGroups(enrichedGroups, query)
|
$: filteredGroups = searchGroups(enrichedGroups, query)
|
||||||
$: groupUsers = buildGroupUsers(filteredGroups, filteredUsers)
|
$: groupUsers = buildGroupUsers(filteredGroups, filteredUsers)
|
||||||
$: allUsers = [...filteredUsers, ...groupUsers]
|
$: allUsers = [...filteredUsers, ...groupUsers]
|
||||||
|
@ -240,7 +252,7 @@
|
||||||
specific roles for the app.
|
specific roles for the app.
|
||||||
*/
|
*/
|
||||||
const buildGroupUsers = (userGroups, filteredUsers) => {
|
const buildGroupUsers = (userGroups, filteredUsers) => {
|
||||||
if (query || searchFocus) {
|
if (query || !filterByAppAccess) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
// Must exclude users who have explicit privileges
|
// Must exclude users who have explicit privileges
|
||||||
|
@ -335,12 +347,12 @@
|
||||||
[prodAppId]: role,
|
[prodAppId]: role,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
await filterInvites()
|
await filterInvites(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onUninviteAppUser = async invite => {
|
const onUninviteAppUser = async invite => {
|
||||||
await uninviteAppUser(invite)
|
await uninviteAppUser(invite)
|
||||||
await filterInvites()
|
await filterInvites(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Purge only the app from the invite or recind the invite if only 1 app remains?
|
// Purge only the app from the invite or recind the invite if only 1 app remains?
|
||||||
|
@ -440,19 +452,20 @@
|
||||||
|
|
||||||
<span
|
<span
|
||||||
class="search-input-icon"
|
class="search-input-icon"
|
||||||
class:searching={query || searchFocus}
|
class:searching={query || !filterByAppAccess}
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
if (searchFocus) {
|
if (!filterByAppAccess) {
|
||||||
searchFocus = false
|
filterByAppAccess = true
|
||||||
}
|
}
|
||||||
if (!query) {
|
if (!query) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
query = null
|
query = null
|
||||||
userOnboardResponse = null
|
userOnboardResponse = null
|
||||||
|
filterByAppAccess = true
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<Icon name={searchFocus || query ? "Close" : "Search"} />
|
<Icon name={!filterByAppAccess || query ? "Close" : "Search"} />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue