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