Commit 8e1b7536 by Torkel Ödegaard

Added limit to dashboard list panel and search

parent b6d5f49c
...@@ -33,6 +33,11 @@ func setIsStarredFlagOnSearchResults(c *middleware.Context, hits []*m.DashboardS ...@@ -33,6 +33,11 @@ func setIsStarredFlagOnSearchResults(c *middleware.Context, hits []*m.DashboardS
func Search(c *middleware.Context) { func Search(c *middleware.Context) {
queryText := c.Query("q") queryText := c.Query("q")
starred := c.Query("starred") starred := c.Query("starred")
limit := c.QueryInt("limit")
if limit == 0 {
limit = 200
}
result := m.SearchResult{ result := m.SearchResult{
Dashboards: []*m.DashboardSearchHit{}, Dashboards: []*m.DashboardSearchHit{},
...@@ -58,6 +63,7 @@ func Search(c *middleware.Context) { ...@@ -58,6 +63,7 @@ func Search(c *middleware.Context) {
Title: matches[3], Title: matches[3],
Tag: matches[2], Tag: matches[2],
UserId: c.UserId, UserId: c.UserId,
Limit: limit,
IsStarred: starred == "1", IsStarred: starred == "1",
AccountId: c.AccountId, AccountId: c.AccountId,
} }
......
...@@ -25,6 +25,7 @@ type SearchDashboardsQuery struct { ...@@ -25,6 +25,7 @@ type SearchDashboardsQuery struct {
Tag string Tag string
AccountId int64 AccountId int64
UserId int64 UserId int64
Limit int
IsStarred bool IsStarred bool
Result []*DashboardSearchHit Result []*DashboardSearchHit
......
...@@ -2,6 +2,7 @@ package sqlstore ...@@ -2,6 +2,7 @@ package sqlstore
import ( import (
"bytes" "bytes"
"fmt"
"github.com/go-xorm/xorm" "github.com/go-xorm/xorm"
"github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/bus"
...@@ -116,6 +117,8 @@ func SearchDashboards(query *m.SearchDashboardsQuery) error { ...@@ -116,6 +117,8 @@ func SearchDashboards(query *m.SearchDashboardsQuery) error {
params = append(params, query.Tag) params = append(params, query.Tag)
} }
sql.WriteString(fmt.Sprintf(" LIMIT %d", query.Limit))
var res []DashboardSearchProjection var res []DashboardSearchProjection
err := x.Sql(sql.String(), params...).Find(&res) err := x.Sql(sql.String(), params...).Find(&res)
if err != nil { if err != nil {
......
...@@ -19,18 +19,18 @@ ...@@ -19,18 +19,18 @@
<div class="section"> <div class="section">
<div class="tight-form"> <div class="tight-form">
<ul class="tight-form-list"> <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> <strong>Dashboard source</strong>
</li> </li>
<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> </select>
</li> </li>
<li class="tight-form-item" style="width: 160px"> <li class="tight-form-item">
<strong>Destination</strong> <strong>Destination</strong>
</li> </li>
<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> </select>
</li> </li>
<li> <li>
......
...@@ -39,3 +39,19 @@ ...@@ -39,3 +39,19 @@
</div> </div>
</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>
...@@ -31,6 +31,7 @@ function (angular, app, _, config, PanelMeta) { ...@@ -31,6 +31,7 @@ function (angular, app, _, config, PanelMeta) {
var defaults = { var defaults = {
mode: 'starred', mode: 'starred',
query: '', query: '',
limit: 10,
tag: '', tag: '',
}; };
...@@ -51,7 +52,9 @@ function (angular, app, _, config, PanelMeta) { ...@@ -51,7 +52,9 @@ function (angular, app, _, config, PanelMeta) {
}; };
$scope.get_data = function() { $scope.get_data = function() {
var params = {}; var params = {
limit: $scope.panel.limit
};
if ($scope.panel.mode === 'starred') { if ($scope.panel.mode === 'starred') {
params.starred = 1; params.starred = 1;
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment