|
|
@@ -327,20 +327,34 @@ func DeleteDashboard(cmd *m.DeleteDashboardCommand) error {
|
|
|
if dashboard.IsFolder {
|
|
|
deletes = append(deletes, "DELETE FROM dashboard_provisioning WHERE dashboard_id in (select id from dashboard where folder_id = ?)")
|
|
|
deletes = append(deletes, "DELETE FROM dashboard WHERE folder_id = ?")
|
|
|
- }
|
|
|
-
|
|
|
- for _, sql := range deletes {
|
|
|
- _, err := sess.Exec(sql, dashboard.Id)
|
|
|
|
|
|
+ dashIds := []struct {
|
|
|
+ Id int64
|
|
|
+ }{}
|
|
|
+ err := sess.SQL("select id from dashboard where folder_id = ?", dashboard.Id).Find(&dashIds)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
+
|
|
|
+ for _, id := range dashIds {
|
|
|
+ if err := deleteAlertDefinition(id.Id, sess); err != nil {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if err := deleteAlertDefinition(dashboard.Id, sess); err != nil {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+ for _, sql := range deletes {
|
|
|
+ _, err := sess.Exec(sql, dashboard.Id)
|
|
|
+
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return nil
|
|
|
})
|
|
|
}
|