Skip to content

Commit

Permalink
Query deactivation
Browse files Browse the repository at this point in the history
  • Loading branch information
Rashid Khan committed Oct 24, 2013
1 parent 8454a95 commit 34a2f0b
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/app/panels/query/meta.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@


<div class="pull-right">

<a class="btn btn-mini" ng-click="querySrv.list[id].enable=false;dashboard.refresh();dismiss();" class="pointer">Deactivate</a>
<a class="btn btn-mini" ng-class="{active:querySrv.list[id].pin}" ng-click="toggle_pin(id);dismiss();" class="pointer">Pin <i class="icon-pushpin"></i></a>
<input class="btn btn-mini" ng-click="dashboard.refresh();dismiss();" type="submit"/ value="Close">
</div>
Expand Down
9 changes: 6 additions & 3 deletions src/app/panels/query/module.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
<div ng-repeat="id in (unPinnedQueries = (querySrv.ids|pinnedQuery:false))" ng-class="{'short-query': unPinnedQueries.length>1}">
<form class="form-search" style="position:relative;margin-bottom:5px;" ng-submit="refresh()">
<span class="begin-query">
<i class="pointer" ng-class="queryIcon(querySrv.list[id].type)" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft" ng-style="{color: querySrv.list[id].color}"></i>
<i class="pointer" ng-class="queryIcon(querySrv.list[id].type)" ng-show="querySrv.list[id].enable" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft" ng-style="{color: querySrv.list[id].color}"></i>
<i class="pointer icon-circle-blank" ng-click="querySrv.list[id].enable=true;dashboard.refresh();" ng-hide="querySrv.list[id].enable" bs-tooltip="'Activate query'" ng-style="{color: querySrv.list[id].color}"></i>
<i class="icon-remove-sign pointer remove-query" ng-show="querySrv.ids.length > 1" ng-click="querySrv.remove(id);refresh()"></i>
</span>
<span>
<input class="search-query panel-query" ng-class="{ 'input-block-level': unPinnedQueries.length==1, 'last-query': $last, 'has-remove': querySrv.ids.length > 1 }" bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" ng-model="querySrv.list[id].query" />
<input class="search-query panel-query" ng-disabled="!querySrv.list[id].enable" ng-class="{ 'input-block-level': unPinnedQueries.length==1, 'last-query': $last, 'has-remove': querySrv.ids.length > 1 }" bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" ng-model="querySrv.list[id].query" />
</span>
<span class="end-query">
<i class="icon-search pointer" ng-click="refresh()" ng-show="$last"></i>
Expand All @@ -17,7 +18,9 @@
<div style="display:inline-block" ng-repeat="id in querySrv.ids|pinnedQuery:true">
<span class="pointer" ng-show="$first" ng-click="panel.pinned = !panel.pinned"><span class="pins">Pinned</span> <i ng-class="{'icon-caret-right':panel.pinned,'icon-caret-left':!panel.pinned}"></i></span>
<span ng-show="panel.pinned" class="badge pinned">
<i class="icon-circle pointer" ng-style="{color: querySrv.list[id].color}" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft"></i><span bs-tooltip="querySrv.list[id].query"> {{querySrv.list[id].alias || querySrv.list[id].query}}</span>
<i class="icon-circle pointer" ng-show="querySrv.list[id].enable" ng-style="{color: querySrv.list[id].color}" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft"></i>
<i class="pointer icon-circle-blank" bs-tooltip="'Activate query'" ng-click="querySrv.list[id].enable=true;dashboard.refresh();" ng-hide="querySrv.list[id].enable" ng-style="{color: querySrv.list[id].color}"></i>
<span bs-tooltip="querySrv.list[id].query"> {{querySrv.list[id].alias || querySrv.list[id].query}}</span>
</span>
</div>
<span style="display:inline-block" ng-show="unPinnedQueries.length == 0">
Expand Down
5 changes: 5 additions & 0 deletions src/app/panels/query/query.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
-moz-box-sizing: border-box; /* Firefox, other Gecko */
box-sizing: border-box; /* Opera/IE 8+ */
}

.query-disabled {
opacity: 0.3;
}

.form-search:hover .has-remove {
padding-left: 50px !important;
}
Expand Down
13 changes: 7 additions & 6 deletions src/app/services/querySrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@ function (angular, _, config, kbn) {
var _query = {
alias: '',
pin: false,
type: 'lucene'
type: 'lucene',
enable: true
};

// Defaults for specific query types
Expand Down Expand Up @@ -214,15 +215,15 @@ function (angular, _, config, kbn) {
switch(config.mode)
{
case 'all':
return self.ids;
return _.pluck(_.where(self.list,{enable:true}),'id');
case 'pinned':
return _.pluck(_.where(self.list,{pin:true}),'id');
return _.pluck(_.where(self.list,{pin:true,enable:true}),'id');
case 'unpinned':
return _.difference(self.ids,_.pluck(_.where(self.list,{pin:true}),'id'));
return _.difference(self.ids,_.pluck(_.where(self.list,{pin:true,enable:true}),'id'));

This comment has been minimized.

Copy link
@stubbetje

stubbetje Oct 25, 2013

@rashidkpc Queries that are disabled will turn up in "unpinned" queries because of this change
Can be fixed with:

return _.pluck(_.where(self.list,{pin:false, enable:true}),'id');

Or maybe beter

return _.intersection(self.ids,_.pluck(_.where(self.list,{pin:false,enable:true}),'id'));

Don't know which one should be preferred.
Also, see pull request #564, where this functionality was also proposed

case 'selected':
return _.intersection(self.ids,config.ids);
return _.intersection(_.pluck(_.where(self.list,{enable:true}),'id'),config.ids);

This comment has been minimized.

Copy link
@elhu

elhu Dec 19, 2013

I know it's a bit late, but I have a question regarding this commit: shouldn't deactivated query that have been explicitly selected in a panel stay active in this panel? That would be a great way to have add a single query to a specific panel without cluttering the rest of the dashboard with it, because as far as I know there is now easy way to do that.

default:
return self.ids;
return _.pluck(_.where(self.list,{enable:true}),'id');
}
};

Expand Down
2 changes: 1 addition & 1 deletion src/css/bootstrap.dark.min.css

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/vendor/bootstrap/less/bootswatch.dark.less
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,8 @@ textarea[disabled],
input[readonly],
select[readonly],
textarea[readonly] {
color: @white;
color: @gray;
background: @grayDarker;
}

.form-actions {
Expand Down

0 comments on commit 34a2f0b

Please sign in to comment.