feat: add browse-at-scale — date ranges, load more, month navigator
CLI: --month YYYY-MM, --from/--to date range, --limit override API: from/to query params for date range filtering Web: load more button for pagination, month nav (◂/▸) in stream view
This commit is contained in:
@@ -11,9 +11,13 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
lsTag string
|
||||
lsDate string
|
||||
lsAll bool
|
||||
lsTag string
|
||||
lsDate string
|
||||
lsMonth string
|
||||
lsFrom string
|
||||
lsTo string
|
||||
lsLimit int
|
||||
lsAll bool
|
||||
)
|
||||
|
||||
var lsCmd = &cobra.Command{
|
||||
@@ -25,6 +29,10 @@ var lsCmd = &cobra.Command{
|
||||
func init() {
|
||||
lsCmd.Flags().StringVar(&lsTag, "tag", "", "filter by tag")
|
||||
lsCmd.Flags().StringVar(&lsDate, "date", "", "filter by date (YYYY-MM-DD)")
|
||||
lsCmd.Flags().StringVar(&lsMonth, "month", "", "filter by month (YYYY-MM)")
|
||||
lsCmd.Flags().StringVar(&lsFrom, "from", "", "start date (YYYY-MM-DD)")
|
||||
lsCmd.Flags().StringVar(&lsTo, "to", "", "end date (YYYY-MM-DD)")
|
||||
lsCmd.Flags().IntVar(&lsLimit, "limit", 0, "max entities to show (default 50)")
|
||||
lsCmd.Flags().BoolVar(&lsAll, "all", false, "include deleted entities")
|
||||
}
|
||||
|
||||
@@ -41,9 +49,41 @@ func runLs(_ *cobra.Command, _ []string) error {
|
||||
if lsTag != "" {
|
||||
p.Tag = &lsTag
|
||||
}
|
||||
if lsLimit > 0 {
|
||||
p.Limit = lsLimit
|
||||
}
|
||||
|
||||
hasDateFilter := false
|
||||
if lsDate != "" {
|
||||
p.Date = &lsDate
|
||||
} else {
|
||||
hasDateFilter = true
|
||||
}
|
||||
if lsMonth != "" {
|
||||
t, err := time.Parse("2006-01", lsMonth)
|
||||
if err != nil {
|
||||
return fmt.Errorf("bad --month format, use YYYY-MM")
|
||||
}
|
||||
from := t.Format("2006-01-02")
|
||||
to := t.AddDate(0, 1, -1).Format("2006-01-02")
|
||||
p.From = &from
|
||||
p.To = &to
|
||||
hasDateFilter = true
|
||||
}
|
||||
if lsFrom != "" {
|
||||
if _, err := time.Parse("2006-01-02", lsFrom); err != nil {
|
||||
return fmt.Errorf("bad --from format, use YYYY-MM-DD")
|
||||
}
|
||||
p.From = &lsFrom
|
||||
hasDateFilter = true
|
||||
}
|
||||
if lsTo != "" {
|
||||
if _, err := time.Parse("2006-01-02", lsTo); err != nil {
|
||||
return fmt.Errorf("bad --to format, use YYYY-MM-DD")
|
||||
}
|
||||
p.To = &lsTo
|
||||
hasDateFilter = true
|
||||
}
|
||||
if !hasDateFilter {
|
||||
since := time.Now().UTC().Add(-48 * time.Hour)
|
||||
p.Since = &since
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user