diff options
Diffstat (limited to 'server/ui')
-rw-r--r-- | server/ui/controller/controller.go | 7 | ||||
-rw-r--r-- | server/ui/controller/feed.go | 16 |
2 files changed, 22 insertions, 1 deletions
diff --git a/server/ui/controller/controller.go b/server/ui/controller/controller.go index 22c9dce..4aa6085 100644 --- a/server/ui/controller/controller.go +++ b/server/ui/controller/controller.go @@ -8,6 +8,7 @@ import ( "github.com/miniflux/miniflux2/model" "github.com/miniflux/miniflux2/reader/feed" "github.com/miniflux/miniflux2/reader/opml" + "github.com/miniflux/miniflux2/scheduler" "github.com/miniflux/miniflux2/server/core" "github.com/miniflux/miniflux2/storage" ) @@ -22,8 +23,10 @@ func (t tplParams) Merge(d tplParams) tplParams { return t } +// Controller contains all HTTP handlers for the user interface. type Controller struct { store *storage.Storage + pool *scheduler.WorkerPool feedHandler *feed.Handler opmlHandler *opml.Handler } @@ -47,9 +50,11 @@ func (c *Controller) getCommonTemplateArgs(ctx *core.Context) (tplParams, error) return params, nil } -func NewController(store *storage.Storage, feedHandler *feed.Handler, opmlHandler *opml.Handler) *Controller { +// NewController returns a new Controller. +func NewController(store *storage.Storage, pool *scheduler.WorkerPool, feedHandler *feed.Handler, opmlHandler *opml.Handler) *Controller { return &Controller{ store: store, + pool: pool, feedHandler: feedHandler, opmlHandler: opmlHandler, } diff --git a/server/ui/controller/feed.go b/server/ui/controller/feed.go index dc55a11..7ed903e 100644 --- a/server/ui/controller/feed.go +++ b/server/ui/controller/feed.go @@ -13,6 +13,22 @@ import ( "github.com/miniflux/miniflux2/server/ui/form" ) +// RefreshAllFeeds refresh all feeds in the background. +func (c *Controller) RefreshAllFeeds(ctx *core.Context, request *core.Request, response *core.Response) { + user := ctx.LoggedUser() + jobs, err := c.store.NewBatch(c.store.CountFeeds(user.ID)) + if err != nil { + response.HTML().ServerError(err) + return + } + + go func() { + c.pool.Push(jobs) + }() + + response.Redirect(ctx.Route("feeds")) +} + // ShowFeedsPage shows the page with all subscriptions. func (c *Controller) ShowFeedsPage(ctx *core.Context, request *core.Request, response *core.Response) { user := ctx.LoggedUser() |