aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/ui
diff options
context:
space:
mode:
Diffstat (limited to 'server/ui')
-rw-r--r--server/ui/controller/controller.go7
-rw-r--r--server/ui/controller/feed.go16
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()