@@ -4,7 +4,7 @@ import { useRoute, useRouter } from 'vue-router'
44import { useI18n } from ' vue-i18n'
55import { Button } from ' @/components/ui/button'
66import { Badge } from ' @/components/ui/badge'
7- import { ArrowLeft , Github , ExternalLink , Star , Package , Code , Settings , Calendar , Tag , Trash2 , AlertTriangle } from ' lucide-vue-next'
7+ import { ArrowLeft , Github , ExternalLink , Star , Package , Code , Settings , Calendar , Tag , Trash2 , AlertTriangle , Edit } from ' lucide-vue-next'
88import DashboardLayout from ' @/components/DashboardLayout.vue'
99import { McpCatalogService } from ' @/services/mcpCatalogService'
1010import type { McpServer } from ' ../types'
@@ -18,6 +18,13 @@ import {
1818 AlertDialogHeader ,
1919 AlertDialogTitle ,
2020} from ' @/components/ui/alert-dialog'
21+ import {
22+ DropdownMenu ,
23+ DropdownMenuContent ,
24+ DropdownMenuItem ,
25+ DropdownMenuSeparator ,
26+ DropdownMenuTrigger ,
27+ } from ' @/components/ui/dropdown-menu'
2128
2229const { t } = useI18n ()
2330const route = useRoute ()
@@ -175,6 +182,12 @@ const deleteServer = async () => {
175182 }
176183}
177184
185+ // Placeholder function for edit functionality (not implemented yet)
186+ const handleEditServer = () => {
187+ // TODO: Implement edit functionality
188+ console .log (' Edit server functionality not implemented yet' )
189+ }
190+
178191const goBack = () => {
179192 router .push (' /admin/mcp-server-catalog' )
180193}
@@ -183,7 +196,7 @@ const goBack = () => {
183196<template >
184197 <DashboardLayout :title =" server ? t('mcpCatalog.edit.title', { name: server.name }) : t('mcpCatalog.edit.titleLoading')" >
185198 <div class =" space-y-6" >
186- <!-- Header with Back and Delete Buttons -->
199+ <!-- Header with Back and Manage Dropdown -->
187200 <div class =" flex items-center justify-between" >
188201 <Button
189202 variant =" outline"
@@ -193,15 +206,26 @@ const goBack = () => {
193206 {{ t('mcpCatalog.edit.backToCatalog') }}
194207 </Button >
195208
196- <Button
197- v-if =" server"
198- variant =" destructive"
199- @click =" showDeleteDialog = true"
200- class =" flex items-center gap-2"
201- >
202- <Trash2 class =" h-4 w-4" />
203- {{ t('mcpCatalog.edit.deleteButton') }}
204- </Button >
209+ <!-- Manage Server Dropdown -->
210+ <DropdownMenu v-if =" server" >
211+ <DropdownMenuTrigger asChild >
212+ <Button variant =" outline" :disabled =" isDeleting" >
213+ <Settings class =" h-4 w-4 mr-2" />
214+ {{ t('mcpCatalog.edit.actions.manageServer') }}
215+ </Button >
216+ </DropdownMenuTrigger >
217+ <DropdownMenuContent align =" end" >
218+ <DropdownMenuItem @click =" handleEditServer" >
219+ <Edit class =" h-4 w-4 mr-2" />
220+ {{ t('mcpCatalog.edit.actions.editServer') }}
221+ </DropdownMenuItem >
222+ <DropdownMenuSeparator />
223+ <DropdownMenuItem @click =" showDeleteDialog = true" class =" text-red-600 focus:text-red-600" >
224+ <Trash2 class =" h-4 w-4 mr-2" />
225+ {{ t('mcpCatalog.edit.actions.deleteServer') }}
226+ </DropdownMenuItem >
227+ </DropdownMenuContent >
228+ </DropdownMenu >
205229 </div >
206230
207231 <!-- Loading State -->
0 commit comments