bot changes
This commit is contained in:
@@ -13,9 +13,10 @@ import (
|
||||
const projectsPerPage = 6
|
||||
|
||||
type MyProjects struct {
|
||||
CurrentPage int
|
||||
WorkspaceID string
|
||||
BackState bot.State
|
||||
CurrentPage int
|
||||
WorkspaceID string
|
||||
BackState bot.State
|
||||
OpenPurchases bool
|
||||
}
|
||||
|
||||
func (s *MyProjects) Enter(b *bot.Bot, mode bot.RenderMode) {
|
||||
@@ -58,32 +59,46 @@ func (s *MyProjects) renderProjects(b *bot.Bot, mode bot.RenderMode, jwt string)
|
||||
|
||||
var text string
|
||||
var buttons [][]echotron.InlineKeyboardButton
|
||||
|
||||
if len(page.Items) == 0 {
|
||||
text = `<b>Мои проекты</b>
|
||||
|
||||
У вас пока нет подключенных каналов.
|
||||
navTitle := "Главное меню › Мои проекты"
|
||||
headerTitle := "Мои проекты"
|
||||
emptyStateText := `У вас пока нет подключенных каналов.
|
||||
|
||||
<i>Что дает подключение канала:</i>
|
||||
▸ Управление типом приглашений (публичные/с одобрением)
|
||||
▸ Автоматическая отправка креативов в канал
|
||||
▸ Интеграция с планом закупов
|
||||
▸ Статистика и аналитика подписчиков
|
||||
▸ Настройка уведомлений
|
||||
▸ Управление типом приглашений (публичные/с одобрением)
|
||||
▸ Автоматическая отправка креативов в канал
|
||||
▸ Интеграция с планом закупов
|
||||
▸ Статистика и аналитика подписчиков
|
||||
▸ Настройка уведомлений
|
||||
|
||||
<i>Начните с добавления первого проекта ↓</i>`
|
||||
Начните с добавления первого проекта`
|
||||
nonEmptyText := "Управление вашими Telegram-каналами.\n\nВыберите канал"
|
||||
if s.OpenPurchases {
|
||||
navTitle = "Главное меню › Закупы"
|
||||
headerTitle = "Закупы"
|
||||
nonEmptyText = "Выберите проект для просмотра закупов"
|
||||
}
|
||||
|
||||
if len(page.Items) == 0 {
|
||||
text = fmt.Sprintf(`<i>%s</i>
|
||||
|
||||
<b>%s</b>
|
||||
|
||||
%s`, navTitle, headerTitle, emptyStateText)
|
||||
} else {
|
||||
pageInfo := ""
|
||||
if page.Pages > 1 {
|
||||
pageInfo = fmt.Sprintf("\n<i>Страница %d из %d</i>", page.Page, page.Pages)
|
||||
pageInfo = fmt.Sprintf(" <i>(стр. %d/%d)</i>", page.Page, page.Pages)
|
||||
}
|
||||
|
||||
text = fmt.Sprintf(`<b>Мои проекты</b>
|
||||
text = fmt.Sprintf(`<i>%s</i>
|
||||
|
||||
Управление вашими Telegram-каналами.%s
|
||||
<b>%s</b>%s
|
||||
|
||||
<i>Выберите канал 👇 </i>`,
|
||||
pageInfo)
|
||||
%s`,
|
||||
navTitle,
|
||||
headerTitle,
|
||||
pageInfo,
|
||||
nonEmptyText)
|
||||
}
|
||||
|
||||
// Создаем слоты для проектов
|
||||
@@ -216,11 +231,20 @@ func (s *MyProjects) HandleCallback(b *bot.Bot, u *echotron.Update) {
|
||||
return
|
||||
}
|
||||
|
||||
b.SetState(&ProjectDetails{
|
||||
Project: project,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
BackState: &MyProjects{WorkspaceID: s.WorkspaceID},
|
||||
}, bot.NewMessage)
|
||||
if s.OpenPurchases {
|
||||
b.SetState(&Purchases{
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
ProjectID: project.ID,
|
||||
ProjectTitle: project.Title,
|
||||
BackState: &MyProjects{WorkspaceID: s.WorkspaceID, OpenPurchases: true},
|
||||
}, bot.NewMessage)
|
||||
} else {
|
||||
b.SetState(&ProjectDetails{
|
||||
Project: project,
|
||||
WorkspaceID: s.WorkspaceID,
|
||||
BackState: &MyProjects{WorkspaceID: s.WorkspaceID},
|
||||
}, bot.NewMessage)
|
||||
}
|
||||
}
|
||||
|
||||
case strings.HasPrefix(data, "workspace:"):
|
||||
|
||||
Reference in New Issue
Block a user