Browse Source

improved paginate

tags/v1.21.12.1
yan 5 years ago
parent
commit
3d1a962b18
3 changed files with 16 additions and 16 deletions
  1. +7
    -7
      models/dataset.go
  2. +7
    -8
      routers/dataset/dataset.go
  3. +2
    -1
      templates/datasets/index.tmpl

+ 7
- 7
models/dataset.go View File

@@ -82,22 +82,22 @@ func SearchDatasetByCondition(opts *SearchDatasetOptions, cond builder.Cond) (Da
sess := x.NewSession()
defer sess.Close()

// count, err := sess.Where(cond).Count(new(DatasetList))
datasets := make(DatasetList, 0, opts.PageSize)

// if err != nil {
// return nil, 0, fmt.Errorf("Count: %v", err)
// }
count, err := sess.Where(cond).Count(new(Dataset))
if err != nil {
return nil, 0, fmt.Errorf("Count: %v", err)
}

repos := make(DatasetList, 0, opts.PageSize)
sess.Where(cond).OrderBy(opts.SearchOrderBy.String())
if opts.PageSize > 0 {
sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
}
if err = sess.Find(&repos); err != nil {
if err = sess.Find(&datasets); err != nil {
return nil, 0, fmt.Errorf("Dataset: %v", err)
}

return repos, 0, nil
return datasets, count, nil
}

type datasetMetaSearch struct {


+ 7
- 8
routers/dataset/dataset.go View File

@@ -67,7 +67,7 @@ func MyList(ctx *context.Context) {
orderBy = models.SearchOrderByRecentUpdated
}
keyword := strings.Trim(ctx.Query("q"), " ")
datasetSearchOptions := &models.SearchDatasetOptions{
opts := &models.SearchDatasetOptions{
Keyword: keyword,
IsPublic: true,
SearchOrderBy: orderBy,
@@ -77,20 +77,19 @@ func MyList(ctx *context.Context) {
},
}

if len(datasetSearchOptions.SearchOrderBy) == 0 {
datasetSearchOptions.SearchOrderBy = models.SearchOrderByAlphabetically
if len(opts.SearchOrderBy) == 0 {
opts.SearchOrderBy = models.SearchOrderByAlphabetically
}

datasets, count, err = models.SearchDataset(datasetSearchOptions)
datasets, count, err = models.SearchDataset(opts)
if err != nil {
ctx.ServerError("SearchDatasets", err)
return
}

// pager := context.NewPagination(int(count), opts.PageSize, page, 5)
// pager.SetDefaultParams(ctx)
// pager.AddParam(ctx, "topic", "TopicOnly")
// ctx.Data["Page"] = pager
pager := context.NewPagination(int(count), opts.PageSize, page, 5)
pager.SetDefaultParams(ctx)
ctx.Data["Page"] = pager

ctx.Data["datasets"] = datasets
ctx.Data["datasetsCount"] = count


+ 2
- 1
templates/datasets/index.tmpl View File

@@ -2,8 +2,9 @@
<div class="explore repositories">
<div class="ui container">
{{template "datasets/dataset_search" .}}
<div class="ui repository list">
<div class="ui list">
{{template "datasets/dataset_list" .}}
{{template "base/paginate" .}}
</div>
</div>
</div>

Loading…
Cancel
Save