фиксы
This commit is contained in:
@@ -351,12 +351,11 @@ func (s *CreativeDetails) updateCreative(b *bot.Bot) {
|
||||
log.Info().Str("creative_id", s.CreativeID).Msg("Creative updated successfully")
|
||||
|
||||
// Возвращаемся назад
|
||||
s.CleanupMessages(b)
|
||||
if s.ViewMode && s.ViewBackTo != nil {
|
||||
// Если открыты из view mode, возвращаемся к просмотру
|
||||
b.SetState(s.ViewBackTo, bot.EditMessage)
|
||||
b.SetState(s.ViewBackTo, bot.NewMessage)
|
||||
} else if s.BackState != nil {
|
||||
// Иначе возвращаемся к BackState
|
||||
b.SetState(s.BackState, bot.EditMessage)
|
||||
b.SetState(s.BackState, bot.NewMessage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -372,7 +371,8 @@ func (s *CreativeDetails) deleteCreative(b *bot.Bot) {
|
||||
return
|
||||
}
|
||||
|
||||
s.CleanupMessages(b)
|
||||
if s.BackState != nil {
|
||||
b.SetState(s.BackState, bot.EditMessage)
|
||||
b.SetState(s.BackState, bot.NewMessage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +146,7 @@ func (e *CreativeEditorFields) CleanupMessages(b *bot.Bot) {
|
||||
b.DeleteMessage(b.ChatID, *e.ControlPanelMessageID)
|
||||
e.ControlPanelMessageID = nil
|
||||
}
|
||||
b.LastMessageID = 0
|
||||
}
|
||||
|
||||
const mediaGroupDebounce = 2 * time.Second
|
||||
|
||||
@@ -101,8 +101,9 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
|
||||
switch {
|
||||
case data == "back":
|
||||
s.CleanupMessages(b)
|
||||
if s.BackState != nil {
|
||||
b.SetState(s.BackState, bot.EditMessage)
|
||||
b.SetState(s.BackState, bot.NewMessage)
|
||||
}
|
||||
|
||||
case data == "rename":
|
||||
@@ -116,22 +117,22 @@ func (s *CreativeView) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
s.showActionPanel(b)
|
||||
|
||||
case data == "edit":
|
||||
// Переход к редактированию креатива
|
||||
s.CleanupMessages(b)
|
||||
b.SetState(&CreativeDetails{
|
||||
CreativeID: s.CreativeID,
|
||||
ProjectID: s.ProjectID,
|
||||
ViewMode: true, // Флаг, что мы открылись из view mode
|
||||
ViewBackTo: s, // Возврат к этому экрану после сохранения
|
||||
ViewMode: true,
|
||||
ViewBackTo: s,
|
||||
ProjectTitle: s.ProjectTitle,
|
||||
BackState: s.BackState,
|
||||
}, bot.EditMessage)
|
||||
}, bot.NewMessage)
|
||||
|
||||
case data == "toggle_tag":
|
||||
// Переключение тега (testing <-> production)
|
||||
s.toggleTag(b)
|
||||
|
||||
case data == "purchase_creative":
|
||||
// Переход к созданию закупа с предвыбором проекта и креатива
|
||||
s.CleanupMessages(b)
|
||||
creativeTitle := ""
|
||||
if s.Name != nil {
|
||||
creativeTitle = *s.Name
|
||||
|
||||
@@ -328,13 +328,25 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
|
||||
if strings.HasPrefix(u.CallbackQuery.Data, "type:") {
|
||||
value := strings.TrimPrefix(u.CallbackQuery.Data, "type:")
|
||||
// Нормализуем значение для БД
|
||||
var normalized string
|
||||
switch value {
|
||||
case "mutual_pr":
|
||||
s.PurchaseType = "взаимный пиар"
|
||||
normalized = "взаимный пиар"
|
||||
case "standard":
|
||||
s.PurchaseType = "стандарт"
|
||||
normalized = "стандарт"
|
||||
}
|
||||
if s.CurrentChannel != "" {
|
||||
s.PurchaseTypeByChannel[s.CurrentChannel] = normalized
|
||||
} else {
|
||||
s.PurchaseType = normalized
|
||||
}
|
||||
if s.ReturnMode != "" {
|
||||
s.InputMode = s.ReturnMode
|
||||
s.ReturnMode = ""
|
||||
} else {
|
||||
s.InputMode = ""
|
||||
}
|
||||
s.CurrentChannel = ""
|
||||
s.Enter(b, bot.EditMessage)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user