Added limit to dashboard list panel and search

This commit is contained in:
Torkel Ödegaard 2015-02-05 11:10:56 +01:00
parent b6d5f49c0f
commit 8e1b753664
6 changed files with 34 additions and 5 deletions

View File

@ -33,6 +33,11 @@ func setIsStarredFlagOnSearchResults(c *middleware.Context, hits []*m.DashboardS
func Search(c *middleware.Context) {
queryText := c.Query("q")
starred := c.Query("starred")
limit := c.QueryInt("limit")
if limit == 0 {
limit = 200
}
result := m.SearchResult{
Dashboards: []*m.DashboardSearchHit{},
@ -58,6 +63,7 @@ func Search(c *middleware.Context) {
Title: matches[3],
Tag: matches[2],
UserId: c.UserId,
Limit: limit,
IsStarred: starred == "1",
AccountId: c.AccountId,
}

View File

@ -25,6 +25,7 @@ type SearchDashboardsQuery struct {
Tag string
AccountId int64
UserId int64
Limit int
IsStarred bool
Result []*DashboardSearchHit

View File

@ -2,6 +2,7 @@ package sqlstore
import (
"bytes"
"fmt"
"github.com/go-xorm/xorm"
"github.com/grafana/grafana/pkg/bus"
@ -116,6 +117,8 @@ func SearchDashboards(query *m.SearchDashboardsQuery) error {
params = append(params, query.Tag)
}
sql.WriteString(fmt.Sprintf(" LIMIT %d", query.Limit))
var res []DashboardSearchProjection
err := x.Sql(sql.String(), params...).Find(&res)
if err != nil {

View File

@ -19,18 +19,18 @@
<div class="section">
<div class="tight-form">
<ul class="tight-form-list">
<li class="tight-form-item" style="width: 160px">
<li class="tight-form-item" style="width: 150px">
<strong>Dashboard source</strong>
</li>
<li>
<select type="text" ng-model="sourceName" class="input-small tight-form-input" ng-options="f for f in datasources">
<select type="text" ng-model="sourceName" class="input-medium tight-form-input" ng-options="f for f in datasources">
</select>
</li>
<li class="tight-form-item" style="width: 160px">
<li class="tight-form-item">
<strong>Destination</strong>
</li>
<li>
<select type="text" ng-model="destName" class="input-small tight-form-input" ng-options="f for f in datasources">
<select type="text" ng-model="destName" class="input-medium tight-form-input" ng-options="f for f in datasources">
</select>
</li>
<li>

View File

@ -39,3 +39,19 @@
</div>
</div>
<div class="editor-row">
<div class="section" style="margin-bottom: 20px">
<div class="tight-form">
<ul class="tight-form-list">
<li class="tight-form-item" style="width: 110px">
<strong>Limit number to</strong>
</li>
<li>
<input class="input-small tight-form-input" type="number" ng-model="panel.limit" ng-model-onblur ng-change="get_data">
</li>
</ul>
<div class="clearfix"></div>
</div>
</div>
</div>

View File

@ -31,6 +31,7 @@ function (angular, app, _, config, PanelMeta) {
var defaults = {
mode: 'starred',
query: '',
limit: 10,
tag: '',
};
@ -51,7 +52,9 @@ function (angular, app, _, config, PanelMeta) {
};
$scope.get_data = function() {
var params = {};
var params = {
limit: $scope.panel.limit
};
if ($scope.panel.mode === 'starred') {
params.starred = 1;
} else {