mirror of
https://github.com/mrusme/neonmodem.git
synced 2025-02-02 15:07:59 -05:00
Implemented forum listing/filtering
This commit is contained in:
parent
2858e68615
commit
6983f90225
@ -4,7 +4,9 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/mrusme/gobbs/models/forum"
|
||||||
"github.com/mrusme/gobbs/models/post"
|
"github.com/mrusme/gobbs/models/post"
|
||||||
"github.com/mrusme/gobbs/models/reply"
|
"github.com/mrusme/gobbs/models/reply"
|
||||||
"github.com/mrusme/gobbs/ui/ctx"
|
"github.com/mrusme/gobbs/ui/ctx"
|
||||||
@ -21,6 +23,33 @@ func New(c *ctx.Ctx) (*Aggregator, error) {
|
|||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *Aggregator) ListForums() ([]forum.Forum, []error) {
|
||||||
|
var errs []error = make([]error, len(a.ctx.Systems))
|
||||||
|
var forums []forum.Forum
|
||||||
|
|
||||||
|
for idx, sys := range a.ctx.Systems {
|
||||||
|
if curSysIDX := a.ctx.GetCurrentSystem(); curSysIDX != -1 {
|
||||||
|
if idx != curSysIDX {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sysForums, err := (*sys).ListForums()
|
||||||
|
if err != nil {
|
||||||
|
errs[idx] = err
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
forums = append(forums, sysForums...)
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.SliceStable(forums, func(i, j int) bool {
|
||||||
|
return strings.Compare(forums[i].Name, forums[j].Name) == 1
|
||||||
|
})
|
||||||
|
|
||||||
|
return forums, errs
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func (a *Aggregator) ListPosts() ([]post.Post, []error) {
|
func (a *Aggregator) ListPosts() ([]post.Post, []error) {
|
||||||
var errs []error = make([]error, len(a.ctx.Systems))
|
var errs []error = make([]error, len(a.ctx.Systems))
|
||||||
var posts []post.Post
|
var posts []post.Post
|
||||||
@ -37,7 +66,13 @@ func (a *Aggregator) ListPosts() ([]post.Post, []error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for idx, sys := range a.ctx.Systems {
|
for idx, sys := range a.ctx.Systems {
|
||||||
sysPosts, err := (*sys).ListPosts()
|
if curSysIDX := a.ctx.GetCurrentSystem(); curSysIDX != -1 {
|
||||||
|
if idx != curSysIDX {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sysPosts, err := (*sys).ListPosts(a.ctx.GetCurrentForum().ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errs[idx] = err
|
errs[idx] = err
|
||||||
continue
|
continue
|
||||||
|
@ -92,6 +92,7 @@ func loadSystems(c *ctx.Ctx) []error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c.AddSystem(&sys)
|
c.AddSystem(&sys)
|
||||||
|
c.Logger.Debugf("setting system ID to %d", c.NumSystems()-1)
|
||||||
sys.SetID(c.NumSystems() - 1)
|
sys.SetID(c.NumSystems() - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,4 +3,18 @@ package forum
|
|||||||
type Forum struct {
|
type Forum struct {
|
||||||
ID string
|
ID string
|
||||||
Name string
|
Name string
|
||||||
|
|
||||||
|
SysIDX int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (forum Forum) FilterValue() string {
|
||||||
|
return forum.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (forum Forum) Title() string {
|
||||||
|
return forum.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (forum Forum) Description() string {
|
||||||
|
return forum.ID
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/mrusme/gobbs/models/forum"
|
||||||
"github.com/mrusme/gobbs/models/post"
|
"github.com/mrusme/gobbs/models/post"
|
||||||
"github.com/mrusme/gobbs/models/reply"
|
"github.com/mrusme/gobbs/models/reply"
|
||||||
"github.com/mrusme/gobbs/system/adapter"
|
"github.com/mrusme/gobbs/system/adapter"
|
||||||
@ -65,7 +66,11 @@ func (sys *System) Connect(sysURL string) error {
|
|||||||
return errors.New("This system can't be connected to")
|
return errors.New("This system can't be connected to")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sys *System) ListPosts() ([]post.Post, error) {
|
func (sys *System) ListForums() ([]forum.Forum, error) {
|
||||||
|
return []forum.Forum{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sys *System) ListPosts(forumID string) ([]post.Post, error) {
|
||||||
return []post.Post{}, nil
|
return []post.Post{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -82,6 +83,8 @@ type TopicsService interface {
|
|||||||
) (*SingleTopicResponse, error)
|
) (*SingleTopicResponse, error)
|
||||||
ListLatest(
|
ListLatest(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
|
categorySlug string,
|
||||||
|
categoryID int,
|
||||||
) (*LatestTopicsResponse, error)
|
) (*LatestTopicsResponse, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,8 +115,15 @@ func (a *TopicServiceHandler) Show(
|
|||||||
// List
|
// List
|
||||||
func (a *TopicServiceHandler) ListLatest(
|
func (a *TopicServiceHandler) ListLatest(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
|
categorySlug string,
|
||||||
|
categoryID int,
|
||||||
) (*LatestTopicsResponse, error) {
|
) (*LatestTopicsResponse, error) {
|
||||||
uri := "/latest.json"
|
var uri string
|
||||||
|
if categoryID == -1 {
|
||||||
|
uri = "/latest.json"
|
||||||
|
} else {
|
||||||
|
uri = fmt.Sprintf("/c/%s/%d.json", categorySlug, categoryID)
|
||||||
|
}
|
||||||
|
|
||||||
req, err := a.client.NewRequest(ctx, http.MethodGet, uri, nil)
|
req, err := a.client.NewRequest(ctx, http.MethodGet, uri, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -115,13 +115,51 @@ func (sys *System) Load() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sys *System) ListPosts() ([]post.Post, error) {
|
func (sys *System) ListForums() ([]forum.Forum, error) {
|
||||||
|
var models []forum.Forum
|
||||||
|
|
||||||
|
cats, err := sys.client.Categories.List(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
return []forum.Forum{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, cat := range cats.CategoryList.Categories {
|
||||||
|
models = append(models, forum.Forum{
|
||||||
|
ID: strconv.Itoa(cat.ID),
|
||||||
|
Name: cat.Name,
|
||||||
|
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return models, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sys *System) ListPosts(forumID string) ([]post.Post, error) {
|
||||||
|
var catSlug string = ""
|
||||||
|
var catID int = -1
|
||||||
|
var err error
|
||||||
|
|
||||||
cats, err := sys.client.Categories.List(context.Background())
|
cats, err := sys.client.Categories.List(context.Background())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []post.Post{}, err
|
return []post.Post{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
items, err := sys.client.Topics.ListLatest(context.Background())
|
if forumID != "" {
|
||||||
|
catID, err = strconv.Atoi(forumID)
|
||||||
|
if err != nil {
|
||||||
|
return []post.Post{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, cat := range cats.CategoryList.Categories {
|
||||||
|
if cat.ID == catID {
|
||||||
|
catSlug = cat.Slug
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
items, err := sys.client.Topics.ListLatest(context.Background(), catSlug, catID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []post.Post{}, err
|
return []post.Post{}, err
|
||||||
}
|
}
|
||||||
@ -181,6 +219,8 @@ func (sys *System) ListPosts() ([]post.Post, error) {
|
|||||||
Forum: forum.Forum{
|
Forum: forum.Forum{
|
||||||
ID: strconv.Itoa(i.CategoryID),
|
ID: strconv.Itoa(i.CategoryID),
|
||||||
Name: forumName,
|
Name: forumName,
|
||||||
|
|
||||||
|
SysIDX: sys.ID,
|
||||||
},
|
},
|
||||||
|
|
||||||
SysIDX: sys.ID,
|
SysIDX: sys.ID,
|
||||||
|
@ -82,8 +82,59 @@ func (sys *System) Load() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sys *System) ListPosts() ([]post.Post, error) {
|
func (sys *System) ListForums() ([]forum.Forum, error) {
|
||||||
stories, err := sys.client.TopStories(context.Background())
|
return []forum.Forum{
|
||||||
|
{
|
||||||
|
ID: "top",
|
||||||
|
Name: "Top HN Stories",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "best",
|
||||||
|
Name: "Best HN Stories",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "new",
|
||||||
|
Name: "New HN Stories",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "ask",
|
||||||
|
Name: "Ask HN",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "show",
|
||||||
|
Name: "Show HN",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "jobs",
|
||||||
|
Name: "Jobs HN",
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sys *System) ListPosts(forumID string) ([]post.Post, error) {
|
||||||
|
var stories []int
|
||||||
|
var err error
|
||||||
|
|
||||||
|
switch forumID {
|
||||||
|
case "top":
|
||||||
|
stories, err = sys.client.TopStories(context.Background())
|
||||||
|
case "best":
|
||||||
|
stories, err = sys.client.BestStories(context.Background())
|
||||||
|
case "ask":
|
||||||
|
stories, err = sys.client.AskStories(context.Background())
|
||||||
|
case "show":
|
||||||
|
stories, err = sys.client.ShowStories(context.Background())
|
||||||
|
case "jobs":
|
||||||
|
stories, err = sys.client.JobStories(context.Background())
|
||||||
|
default:
|
||||||
|
stories, err = sys.client.NewStories(context.Background())
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return []post.Post{}, err
|
return []post.Post{}, err
|
||||||
}
|
}
|
||||||
@ -142,6 +193,8 @@ func (sys *System) ListPosts() ([]post.Post, error) {
|
|||||||
Forum: forum.Forum{
|
Forum: forum.Forum{
|
||||||
ID: "new",
|
ID: "new",
|
||||||
Name: "New",
|
Name: "New",
|
||||||
|
|
||||||
|
SysIDX: sys.ID,
|
||||||
},
|
},
|
||||||
|
|
||||||
Replies: replies,
|
Replies: replies,
|
||||||
|
@ -2,6 +2,7 @@ package lemmy
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -113,7 +114,31 @@ func (sys *System) Load() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sys *System) ListPosts() ([]post.Post, error) {
|
func (sys *System) ListForums() ([]forum.Forum, error) {
|
||||||
|
resp, err := sys.client.Communities(context.Background(), types.ListCommunities{
|
||||||
|
Type: types.NewOptional(types.ListingSubscribed),
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return []forum.Forum{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
var models []forum.Forum
|
||||||
|
for _, i := range resp.Communities {
|
||||||
|
sys.logger.Debugf("FORUM:")
|
||||||
|
b, _ := json.Marshal(i)
|
||||||
|
sys.logger.Debug(string(b))
|
||||||
|
models = append(models, forum.Forum{
|
||||||
|
ID: strconv.Itoa(i.CommunitySafe.ID),
|
||||||
|
Name: i.CommunitySafe.Name,
|
||||||
|
|
||||||
|
SysIDX: sys.ID,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
return models, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sys *System) ListPosts(forumID string) ([]post.Post, error) {
|
||||||
resp, err := sys.client.Posts(context.Background(), types.GetPosts{
|
resp, err := sys.client.Posts(context.Background(), types.GetPosts{
|
||||||
Type: types.NewOptional(types.ListingSubscribed),
|
Type: types.NewOptional(types.ListingSubscribed),
|
||||||
Sort: types.NewOptional(types.New),
|
Sort: types.NewOptional(types.New),
|
||||||
@ -163,6 +188,8 @@ func (sys *System) ListPosts() ([]post.Post, error) {
|
|||||||
Forum: forum.Forum{
|
Forum: forum.Forum{
|
||||||
ID: strconv.Itoa(i.Post.CommunityID),
|
ID: strconv.Itoa(i.Post.CommunityID),
|
||||||
Name: i.Community.Name,
|
Name: i.Community.Name,
|
||||||
|
|
||||||
|
SysIDX: sys.ID,
|
||||||
},
|
},
|
||||||
|
|
||||||
SysIDX: sys.ID,
|
SysIDX: sys.ID,
|
||||||
|
@ -3,6 +3,7 @@ package system
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
|
"github.com/mrusme/gobbs/models/forum"
|
||||||
"github.com/mrusme/gobbs/models/post"
|
"github.com/mrusme/gobbs/models/post"
|
||||||
"github.com/mrusme/gobbs/models/reply"
|
"github.com/mrusme/gobbs/models/reply"
|
||||||
"github.com/mrusme/gobbs/system/adapter"
|
"github.com/mrusme/gobbs/system/adapter"
|
||||||
@ -28,7 +29,8 @@ type System interface {
|
|||||||
Connect(sysURL string) error
|
Connect(sysURL string) error
|
||||||
Load() error
|
Load() error
|
||||||
|
|
||||||
ListPosts() ([]post.Post, error)
|
ListForums() ([]forum.Forum, error)
|
||||||
|
ListPosts(forumID string) ([]post.Post, error)
|
||||||
LoadPost(p *post.Post) error
|
LoadPost(p *post.Post) error
|
||||||
CreatePost(p *post.Post) error
|
CreatePost(p *post.Post) error
|
||||||
CreateReply(r *reply.Reply) error
|
CreateReply(r *reply.Reply) error
|
||||||
|
@ -2,6 +2,7 @@ package ctx
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/mrusme/gobbs/config"
|
"github.com/mrusme/gobbs/config"
|
||||||
|
"github.com/mrusme/gobbs/models/forum"
|
||||||
"github.com/mrusme/gobbs/system"
|
"github.com/mrusme/gobbs/system"
|
||||||
"github.com/mrusme/gobbs/ui/theme"
|
"github.com/mrusme/gobbs/ui/theme"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@ -17,7 +18,7 @@ type Ctx struct {
|
|||||||
Theme *theme.Theme
|
Theme *theme.Theme
|
||||||
|
|
||||||
currentSystem int
|
currentSystem int
|
||||||
currentForum string
|
currentForum forum.Forum
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(
|
func New(
|
||||||
@ -33,7 +34,7 @@ func New(
|
|||||||
Theme: theme.New(cfg),
|
Theme: theme.New(cfg),
|
||||||
|
|
||||||
currentSystem: -1,
|
currentSystem: -1,
|
||||||
currentForum: "",
|
currentForum: forum.Forum{},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,10 +55,10 @@ func (c *Ctx) GetCurrentSystem() int {
|
|||||||
return c.currentSystem
|
return c.currentSystem
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Ctx) SetCurrentForum(id string) {
|
func (c *Ctx) SetCurrentForum(f forum.Forum) {
|
||||||
c.currentForum = id
|
c.currentForum = f
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Ctx) GetCurrentForum() string {
|
func (c *Ctx) GetCurrentForum() forum.Forum {
|
||||||
return c.currentForum
|
return c.currentForum
|
||||||
}
|
}
|
||||||
|
@ -77,8 +77,14 @@ func (m Model) View() string {
|
|||||||
currentSystem = (*m.ctx.Systems[curSysIdx]).Title()
|
currentSystem = (*m.ctx.Systems[curSysIdx]).Title()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
curForum := m.ctx.GetCurrentForum()
|
||||||
|
var currentForum string = "All"
|
||||||
|
if curForum.ID != "" {
|
||||||
|
currentForum = curForum.Title()
|
||||||
|
}
|
||||||
|
|
||||||
systemSelector := selector.Render(fmt.Sprintf("⏷ %s", currentSystem))
|
systemSelector := selector.Render(fmt.Sprintf("⏷ %s", currentSystem))
|
||||||
forumSelector := selector.Render("⏷ All")
|
forumSelector := selector.Render(fmt.Sprintf("⏷ %s", currentForum))
|
||||||
|
|
||||||
selectorColumn := lipgloss.JoinVertical(lipgloss.Center,
|
selectorColumn := lipgloss.JoinVertical(lipgloss.Center,
|
||||||
lipgloss.JoinHorizontal(lipgloss.Bottom, "System: \n "+
|
lipgloss.JoinHorizontal(lipgloss.Bottom, "System: \n "+
|
||||||
|
43
ui/ui.go
43
ui/ui.go
@ -5,6 +5,7 @@ import (
|
|||||||
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/mrusme/gobbs/aggregator"
|
||||||
"github.com/mrusme/gobbs/models/forum"
|
"github.com/mrusme/gobbs/models/forum"
|
||||||
"github.com/mrusme/gobbs/system"
|
"github.com/mrusme/gobbs/system"
|
||||||
"github.com/mrusme/gobbs/ui/cmd"
|
"github.com/mrusme/gobbs/ui/cmd"
|
||||||
@ -54,6 +55,8 @@ type Model struct {
|
|||||||
wm *windowmanager.WM
|
wm *windowmanager.WM
|
||||||
ctx *ctx.Ctx
|
ctx *ctx.Ctx
|
||||||
|
|
||||||
|
a *aggregator.Aggregator
|
||||||
|
|
||||||
viewcache string
|
viewcache string
|
||||||
viewcacheID string
|
viewcacheID string
|
||||||
renderOnlyFocused bool
|
renderOnlyFocused bool
|
||||||
@ -73,6 +76,8 @@ func NewModel(c *ctx.Ctx) Model {
|
|||||||
m.header = header.NewModel(m.ctx)
|
m.header = header.NewModel(m.ctx)
|
||||||
m.views = append(m.views, posts.NewModel(m.ctx))
|
m.views = append(m.views, posts.NewModel(m.ctx))
|
||||||
|
|
||||||
|
m.a, _ = aggregator.New(m.ctx)
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,6 +135,39 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
)
|
)
|
||||||
return m, tea.Batch(ccmds...)
|
return m, tea.Batch(ccmds...)
|
||||||
|
|
||||||
|
case key.Matches(msg, m.keymap.ForumSelect):
|
||||||
|
var listItems []list.Item
|
||||||
|
|
||||||
|
all := forum.Forum{ID: "", Name: "All", SysIDX: -1}
|
||||||
|
listItems = append(listItems, all)
|
||||||
|
|
||||||
|
forums, errs := m.a.ListForums()
|
||||||
|
if len(errs) > 0 {
|
||||||
|
// TODO: Handle errors
|
||||||
|
}
|
||||||
|
for _, f := range forums {
|
||||||
|
m.ctx.Logger.Debugf("Adding forum to list: %s ID %d\n", f.Title(), f.SysIDX)
|
||||||
|
listItems = append(listItems, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
ccmds := m.wm.Open(
|
||||||
|
popuplist.WIN_ID,
|
||||||
|
popuplist.NewModel(m.ctx),
|
||||||
|
[4]int{
|
||||||
|
int(m.ctx.Content[1] / 2),
|
||||||
|
int(m.ctx.Content[1] / 4),
|
||||||
|
int(m.ctx.Content[1] / 2),
|
||||||
|
int(m.ctx.Content[1] / 4),
|
||||||
|
},
|
||||||
|
cmd.New(
|
||||||
|
cmd.WinOpen,
|
||||||
|
popuplist.WIN_ID,
|
||||||
|
cmd.Arg{Name: "selectionID", Value: "forum"},
|
||||||
|
cmd.Arg{Name: "items", Value: listItems},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
return m, tea.Batch(ccmds...)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if m.wm.GetNumberOpen() > 0 {
|
if m.wm.GetNumberOpen() > 0 {
|
||||||
cmd := m.wm.Update(m.wm.Focused(), msg)
|
cmd := m.wm.Update(m.wm.Focused(), msg)
|
||||||
@ -198,9 +236,12 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
|||||||
case "system":
|
case "system":
|
||||||
selected := msg.GetArg("selected").(system.System)
|
selected := msg.GetArg("selected").(system.System)
|
||||||
m.ctx.SetCurrentSystem(selected.GetID())
|
m.ctx.SetCurrentSystem(selected.GetID())
|
||||||
|
m.ctx.SetCurrentForum(forum.Forum{})
|
||||||
case "forum":
|
case "forum":
|
||||||
selected := msg.GetArg("selected").(forum.Forum)
|
selected := msg.GetArg("selected").(forum.Forum)
|
||||||
m.ctx.SetCurrentForum(selected.ID)
|
m.ctx.Logger.Debugf("selecting system ID %d\n", selected.SysIDX)
|
||||||
|
m.ctx.SetCurrentSystem(selected.SysIDX)
|
||||||
|
m.ctx.SetCurrentForum(selected)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user