Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query history and typeahead. Fix for wrapping in timepicker editor #185

Merged
merged 1 commit into from
Jun 21, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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