fix: filter search records based on roles

This commit is contained in:
Jannat Patel
2025-12-10 11:17:21 +05:30
parent 552b5845ea
commit 7e3c5beaea
8 changed files with 81 additions and 47 deletions

View File

@@ -18,11 +18,17 @@
<div class="max-h-96 overflow-auto mb-2">
<div v-if="query.length" class="mt-5 space-y-5">
<CommandPaletteGroup :list="searchResults" />
<CommandPaletteGroup
:list="searchResults"
@navigateTo="navigateTo"
/>
</div>
<div v-else class="mt-5 space-y-5">
<CommandPaletteGroup :list="jumpToOptions" />
<CommandPaletteGroup
:list="jumpToOptions"
@navigateTo="navigateTo"
/>
</div>
</div>
@@ -61,7 +67,8 @@
</template>
<script setup lang="ts">
import { createResource, debounce, Dialog } from 'frappe-ui'
import { computed, inject, nextTick, onMounted, ref, watch } from 'vue'
import { nextTick, onMounted, ref, watch } from 'vue'
import { useRouter } from 'vue-router'
import {
BookOpen,
Briefcase,
@@ -72,7 +79,6 @@ import {
Search,
Users,
} from 'lucide-vue-next'
import { useRouter } from 'vue-router'
import CommandPaletteGroup from './CommandPaletteGroup.vue'
const show = defineModel<boolean>({ required: true, default: false })
@@ -146,6 +152,13 @@ watch(
{ immediate: true }
)
watch(show, () => {
if (!show.value) {
query.value = ''
searchResults.value = []
}
})
onMounted(() => {
addKeyboardShortcuts()
})

View File

@@ -8,6 +8,7 @@
v-for="item in result.items"
class="flex items-center justify-between p-2 rounded hover:bg-surface-gray-2 cursor-pointer"
:class="{ 'bg-surface-gray-2': item.isActive }"
@click="emit('navigateTo', item.route)"
>
<div class="flex items-center space-x-3">
<component
@@ -18,7 +19,7 @@
<div v-html="item.title"></div>
</div>
<div v-if="item.modified" class="text-ink-gray-5">
{{ item.modified }} {{ dayjs.unix(item.modified).fromNow(true) }}
{{ dayjs.unix(item.modified).fromNow(true) }}
</div>
</div>
</div>
@@ -26,9 +27,9 @@
</template>
<script lang="ts" setup>
import { inject } from 'vue'
import { dayjsLocal } from 'frappe-ui'
const dayjs = inject<any>('$dayjs')
const emit = defineEmits(['navigateTo'])
const props = defineProps<{
list: Array<{

View File

@@ -192,7 +192,6 @@ import PageModal from '@/components/Modals/PageModal.vue'
import { capture } from '@/telemetry'
import LMSLogo from '@/components/Icons/LMSLogo.vue'
import { useRouter } from 'vue-router'
import InviteIcon from '@/components/Icons/InviteIcon.vue'
import {
ref,
onMounted,
@@ -225,10 +224,10 @@ import {
minimize,
IntermediateStepModal,
} from 'frappe-ui/frappe'
import InviteIcon from './Icons/InviteIcon.vue'
import UserDropdown from '@/components/UserDropdown.vue'
import InviteIcon from '@/components/Icons/InviteIcon.vue'
import UserDropdown from '@/components/Sidebar/UserDropdown.vue'
import CollapseSidebar from '@/components/Icons/CollapseSidebar.vue'
import SidebarLink from '@/components/SidebarLink.vue'
import SidebarLink from '@/components/Sidebar/SidebarLink.vue'
import CommandPalette from '@/components/CommandPalette/CommandPalette.vue'
const { user } = sessionStore()

View File

@@ -48,7 +48,7 @@ const apps = createResource({
name: 'frappe',
logo: '/assets/lms/images/desk.png',
title: __('Desk'),
route: '/app',
route: '/desk/lms',
},
]
data.map((app) => {