Skip to content

Commit

Permalink
Merge pull request #185 from rashidkpc/master
Browse files Browse the repository at this point in the history
Query history and typeahead. Fix for wrapping in timepicker editor
  • Loading branch information
Rashid Khan committed Jun 21, 2013
2 parents 41ea74f + 3f6cf9b commit 4f1b33b
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 10 deletions.
2 changes: 1 addition & 1 deletion panels/derivequeries/module.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</tr>
<tr>
<td width="97%" style="padding-right:20px">
<input type="text" style="width:100%" ng-model="panel.query">
<input bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" style="width:100%" ng-model="panel.query">
</td>
<td ng-show="panel.fields.length > 0">
<select class="input-small" ng-model="panel.field" ng-options="f for f in panel.fields"></select>
Expand Down
16 changes: 14 additions & 2 deletions panels/derivequeries/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ angular.module('kibana.derivequeries', [])
spyable : true,
size : 5,
mode : 'terms only',
exclude : []
exclude : [],
history : [],
remember: 10 // max: 100, angular strap can't take a variable for items param
}
_.defaults($scope.panel,_d);

Expand All @@ -54,6 +56,7 @@ angular.module('kibana.derivequeries', [])
}

$scope.get_data = function() {
update_history($scope.panel.query);
// Make sure we have everything for the request to complete
if(_.isUndefined($scope.index) || _.isUndefined($scope.time))
return
Expand Down Expand Up @@ -128,6 +131,15 @@ angular.module('kibana.derivequeries', [])
eventBus.broadcast($scope.$id,$scope.panel.group,'query',_query)
}


var update_history = function(query) {
query = _.isArray(query) ? query : [query];
if($scope.panel.remember > 0) {
$scope.panel.history = _.union(query.reverse(),$scope.panel.history)
var _length = $scope.panel.history.length
if(_length > $scope.panel.remember) {
$scope.panel.history = $scope.panel.history.slice(0,$scope.panel.remember)
}
}
}

});
6 changes: 3 additions & 3 deletions panels/stringquery/module.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<td width="97%" style="padding-right:20px">
<span style="position:relative">
<i class="icon-remove-sign pointer" style="position:absolute;left:10px;top:3px" ng-show="panel.query.length > 0" ng-click="panel.query='';send_query(panel.query)"></i>
<input type="text" style="text-indent:20px;width:100%" ng-model="panel.query">
<input bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" style="text-indent:20px;width:100%" ng-model="panel.query">
</span>
</td>
<td style="margin-left:20px" width="1%">
Expand All @@ -21,7 +21,7 @@
<span ng-repeat="q in panel.query">
<span style="margin-bottom:0px;margin-right:5px;display:inline-block;position:relative">
<i class="icon-remove-sign pointer" style="position:absolute;left:10px;top:8px" ng-show="panel.query.length > 1" ng-click="remove_query($index);send_query(panel.query)"></i>
<input style="margin-bottom:5px; text-indent: 20px;" type="text" ng-model="panel.query[$index]" ng-model-onblur style="width:90%">
<input bs-typeahead="panel.history" data-min-length=0 data-items=100 style="margin-bottom:5px; text-indent: 20px;" type="text" ng-model="panel.query[$index]" ng-model-onblur style="width:90%">
<br>
</span>
</span>
Expand All @@ -37,7 +37,7 @@
<td width="99%">
<span style="position:relative">
<i class="icon-remove-sign pointer" style="position:absolute;left:10px;top:3px" ng-show="panel.query.length > 1" ng-click="remove_query($index);send_query(panel.query)"></i>
<input type="text" ng-model="panel.query[$index]" ng-model-onblur style="text-indent: 20px;width:100%">
<input bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" ng-model="panel.query[$index]" ng-model-onblur style="text-indent: 20px;width:100%">
</span>
</td>
<td width="1%" style="visibility:hidden"><button class="btn btn-info" type="submit"></button></td>
Expand Down
19 changes: 16 additions & 3 deletions panels/stringquery/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,24 @@ angular.module('kibana.stringquery', [])
group : "default",
multi : false,
multi_arrange: 'horizontal',
history : [],
remember: 10 // max: 100, angular strap can't take a variable for items param
}
_.defaults($scope.panel,_d);

$scope.init = function() {

// If we're in multi query mode, they all get wiped out if we receive a
// query. Query events must be exchanged as arrays.
eventBus.register($scope,'query',function(event,query) {
$scope.panel.query = query;
update_history(query);
});
}

$scope.send_query = function(query) {
var _query = _.isArray(query) ? query : [query]
eventBus.broadcast($scope.$id,$scope.panel.group,'query',_query)
var _query = _.isArray(query) ? query : [query];
update_history(_query);
eventBus.broadcast($scope.$id,$scope.panel.group,'query',_query);
}

$scope.add_query = function() {
Expand All @@ -65,4 +68,14 @@ angular.module('kibana.stringquery', [])
$scope.panel.query.splice(index,1);
}

var update_history = function(query) {
if($scope.panel.remember > 0) {
$scope.panel.history = _.union(query.reverse(),$scope.panel.history)
var _length = $scope.panel.history.length
if(_length > $scope.panel.remember) {
$scope.panel.history = $scope.panel.history.slice(0,$scope.panel.remember)
}
}
}

});
2 changes: 1 addition & 1 deletion panels/timepicker/editor.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ <h6>Failover Index <small>If index not found</small></h6>
</div>
<div class="row-fluid">
<h5>Relative mode <small>settings</small></h5>
<div class="span8">
<div class="span6">
<h6>Relative time options <small>comma seperated</small></h6>
<input type="text" array-join class="input-large" ng-model="panel.time_options">
</div>
Expand Down

0 comments on commit 4f1b33b

Please sign in to comment.