правки
This commit is contained in:
@@ -14,7 +14,7 @@ type MainMenu struct{}
|
|||||||
const msgAbout = `
|
const msgAbout = `
|
||||||
<i>Главное меню</i>
|
<i>Главное меню</i>
|
||||||
|
|
||||||
<pre>
|
<blockquote>
|
||||||
За что отвечает каждая кнопка в этом окне:
|
За что отвечает каждая кнопка в этом окне:
|
||||||
|
|
||||||
<b>• Рабочее пространство</b> — Одно можно использовать для своих проектов, а другое, например, для проектов, где вы являетесь закупщиком.
|
<b>• Рабочее пространство</b> — Одно можно использовать для своих проектов, а другое, например, для проектов, где вы являетесь закупщиком.
|
||||||
@@ -26,7 +26,7 @@ const msgAbout = `
|
|||||||
<b>• Веб-платформа</b> — Используйте функционал нашего сервиса на все 100%: планируйте размещения, просматривайте аналитику, следите за показателями проектов.
|
<b>• Веб-платформа</b> — Используйте функционал нашего сервиса на все 100%: планируйте размещения, просматривайте аналитику, следите за показателями проектов.
|
||||||
|
|
||||||
<b>• Помощь</b> — Изучите инструкции, как пользоваться нашим сервисом или напишите в поддержку, если возникли какие-то вопросы.
|
<b>• Помощь</b> — Изучите инструкции, как пользоваться нашим сервисом или напишите в поддержку, если возникли какие-то вопросы.
|
||||||
</pre>
|
</blockquote>
|
||||||
|
|
||||||
Чтобы делать закупы, добавьте канал и креатив:
|
Чтобы делать закупы, добавьте канал и креатив:
|
||||||
<b>/addchannel</b> — новый канал
|
<b>/addchannel</b> — новый канал
|
||||||
|
|||||||
@@ -252,6 +252,7 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
|
|||||||
s.Enter(b, bot.EditMessage)
|
s.Enter(b, bot.EditMessage)
|
||||||
|
|
||||||
case "back":
|
case "back":
|
||||||
|
// Сохраняем текущее состояние перед возвратом назад
|
||||||
b.SetState(&SelectChannelsForPurchase{
|
b.SetState(&SelectChannelsForPurchase{
|
||||||
ProjectID: s.ProjectID,
|
ProjectID: s.ProjectID,
|
||||||
ProjectTitle: s.ProjectTitle,
|
ProjectTitle: s.ProjectTitle,
|
||||||
@@ -260,6 +261,7 @@ func (s *PurchaseOptionalDetails) HandleCallback(b *bot.Bot, u *echotron.Update)
|
|||||||
Channels: s.Channels,
|
Channels: s.Channels,
|
||||||
Duplicates: []string{},
|
Duplicates: []string{},
|
||||||
ParsingErrors: []ParseError{},
|
ParsingErrors: []ParseError{},
|
||||||
|
OptionalDetailsState: s, // Сохраняем текущее состояние
|
||||||
BackState: s.BackState,
|
BackState: s.BackState,
|
||||||
}, bot.EditMessage)
|
}, bot.EditMessage)
|
||||||
case "next":
|
case "next":
|
||||||
@@ -2234,6 +2236,12 @@ func (s *PurchaseOptionalDetails) createPurchase(b *bot.Bot, jwt string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Очищаем сохранённое состояние после успешного создания
|
||||||
|
// Находим SelectChannelsForPurchase в BackState и очищаем его OptionalDetailsState
|
||||||
|
if selectState, ok := s.BackState.(*SelectChannelsForPurchase); ok {
|
||||||
|
selectState.OptionalDetailsState = nil
|
||||||
|
}
|
||||||
|
|
||||||
b.SetState(&Placements{
|
b.SetState(&Placements{
|
||||||
ProjectID: s.ProjectID,
|
ProjectID: s.ProjectID,
|
||||||
ProjectTitle: s.ProjectTitle,
|
ProjectTitle: s.ProjectTitle,
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ type SelectChannelsForPurchase struct {
|
|||||||
InvalidUsernames []string
|
InvalidUsernames []string
|
||||||
Duplicates []string // дубликаты каналов
|
Duplicates []string // дубликаты каналов
|
||||||
ParsingErrors []ParseError // ошибки парсинга с предложениями
|
ParsingErrors []ParseError // ошибки парсинга с предложениями
|
||||||
|
OptionalDetailsState *PurchaseOptionalDetails // сохранённое состояние деталей
|
||||||
BackState bot.State
|
BackState bot.State
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,14 +217,23 @@ func (s *SelectChannelsForPurchase) HandleCallback(b *bot.Bot, u *echotron.Updat
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Каналы уже резолвлены в HandleMessage, переходим к следующему шагу
|
// Каналы уже резолвлены в HandleMessage, переходим к следующему шагу
|
||||||
b.SetState(&PurchaseOptionalDetails{
|
// Если есть сохранённое состояние - используем его, иначе создаём новое
|
||||||
|
var optionalDetails *PurchaseOptionalDetails
|
||||||
|
if s.OptionalDetailsState != nil {
|
||||||
|
optionalDetails = s.OptionalDetailsState
|
||||||
|
// Обновляем каналы на случай если они изменились
|
||||||
|
optionalDetails.Channels = s.Channels
|
||||||
|
} else {
|
||||||
|
optionalDetails = &PurchaseOptionalDetails{
|
||||||
ProjectID: s.ProjectID,
|
ProjectID: s.ProjectID,
|
||||||
ProjectTitle: s.ProjectTitle,
|
ProjectTitle: s.ProjectTitle,
|
||||||
CreativeID: s.CreativeID,
|
CreativeID: s.CreativeID,
|
||||||
CreativeTitle: s.CreativeTitle,
|
CreativeTitle: s.CreativeTitle,
|
||||||
Channels: s.Channels,
|
Channels: s.Channels,
|
||||||
BackState: s.BackState,
|
BackState: s,
|
||||||
}, bot.EditMessage)
|
}
|
||||||
|
}
|
||||||
|
b.SetState(optionalDetails, bot.EditMessage)
|
||||||
|
|
||||||
case "back_to_select":
|
case "back_to_select":
|
||||||
s.Enter(b, bot.EditMessage)
|
s.Enter(b, bot.EditMessage)
|
||||||
|
|||||||
Reference in New Issue
Block a user