Skip to content

Commit 527a473

Browse files
author
ssongliu
committed
feat: Add agent to menu hidden items
1 parent 607eae3 commit 527a473

3 files changed

Lines changed: 83 additions & 1 deletion

File tree

core/init/migration/migrate.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ func Init() {
2929
migrations.AddScriptSync,
3030
migrations.UpdateXpackHideMenuSort,
3131
migrations.AdjustXpackNode,
32+
migrations.UpdateAiAgentsMenu,
3233
})
3334
if err := m.Migrate(); err != nil {
3435
global.LOG.Error(err)

core/init/migration/migrations/init.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,3 +687,78 @@ var AdjustXpackNode = &gormigrate.Migration{
687687
return tx.Model(&model.Setting{}).Where("key = ?", "HideMenu").Update("value", string(updatedJSON)).Error
688688
},
689689
}
690+
691+
var UpdateAiAgentsMenu = &gormigrate.Migration{
692+
ID: "20260209-update-ai-agents-menu",
693+
Migrate: func(tx *gorm.DB) error {
694+
var menuJSON string
695+
if err := tx.Model(&model.Setting{}).Where("key = ?", "HideMenu").Pluck("value", &menuJSON).Error; err != nil {
696+
return err
697+
}
698+
if menuJSON == "" {
699+
menuJSON = helper.LoadMenus()
700+
}
701+
702+
var menus []dto.ShowMenu
703+
if err := json.Unmarshal([]byte(menuJSON), &menus); err != nil {
704+
return tx.Model(&model.Setting{}).
705+
Where("key = ?", "HideMenu").
706+
Update("value", helper.LoadMenus()).Error
707+
}
708+
709+
foundAI := false
710+
newItem := dto.ShowMenu{
711+
ID: "44",
712+
Disabled: false,
713+
Title: "aiTools.agents.agents",
714+
IsShow: true,
715+
Label: "Agents",
716+
Path: "/ai/agents/agent",
717+
Sort: 50,
718+
}
719+
720+
for i := range menus {
721+
if menus[i].Label != "AI-Menu" {
722+
continue
723+
}
724+
foundAI = true
725+
menus[i].IsShow = true
726+
727+
exists := false
728+
for j := range menus[i].Children {
729+
child := &menus[i].Children[j]
730+
if child.Label == newItem.Label {
731+
exists = true
732+
child.IsShow = true
733+
if child.Title == "" {
734+
child.Title = newItem.Title
735+
}
736+
if child.Sort == 0 {
737+
child.Sort = newItem.Sort
738+
}
739+
break
740+
}
741+
}
742+
743+
if !exists {
744+
menus[i].Children = append([]dto.ShowMenu{newItem}, menus[i].Children...)
745+
}
746+
break
747+
}
748+
749+
if !foundAI {
750+
return tx.Model(&model.Setting{}).
751+
Where("key = ?", "HideMenu").
752+
Update("value", helper.LoadMenus()).Error
753+
}
754+
755+
updatedJSON, err := json.Marshal(menus)
756+
if err != nil {
757+
return tx.Model(&model.Setting{}).
758+
Where("key = ?", "HideMenu").
759+
Update("value", helper.LoadMenus()).Error
760+
}
761+
762+
return tx.Model(&model.Setting{}).Where("key = ?", "HideMenu").Update("value", string(updatedJSON)).Error
763+
},
764+
}

frontend/src/views/setting/panel/hidemenu/index.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,13 @@
1717
{{ i18n.global.t(data.title) }}
1818
</span>
1919
<span class="flex justify-center w-[60px]">
20-
<el-switch v-if="!data.disabled" v-model="data.isShow" @change="onChangeShow(data)" />
20+
<el-switch
21+
v-if="!data.disabled"
22+
v-model="data.isShow"
23+
@change="onChangeShow(data)"
24+
@click.stop
25+
@mousedown.stop
26+
/>
2127
<span v-else>-</span>
2228
</span>
2329
<span

0 commit comments

Comments
 (0)