Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
87afc4dd
Commit
87afc4dd
authored
Jul 22, 2013
by
Rashid Khan
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #255 from rashidkpc/master
renamed query service to querySrv, added query pinning
parents
9fedd270
6c62a9b8
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
123 additions
and
66 deletions
+123
-66
js/filters.js
+14
-0
js/services.js
+21
-4
panels/bettermap/module.js
+3
-3
panels/fields/module.js
+1
-1
panels/histogram/module.js
+8
-8
panels/hits/module.js
+9
-9
panels/map/module.js
+2
-2
panels/pie/module.js
+6
-5
panels/query/meta.html
+10
-4
panels/query/module.html
+22
-9
panels/query/module.js
+8
-3
panels/table/module.js
+5
-5
panels/trends/module.html
+3
-2
panels/trends/module.js
+11
-11
No files found.
js/filters.js
View file @
87afc4dd
...
...
@@ -7,4 +7,17 @@ angular.module('kibana.filters', [])
return
function
(
input
)
{
return
input
.
sort
();
};
}).
filter
(
'pinnedQuery'
,
function
(
querySrv
)
{
return
function
(
items
,
pinned
)
{
var
ret
=
_
.
filter
(
querySrv
.
ids
,
function
(
id
){
var
v
=
querySrv
.
list
[
id
];
if
(
!
_
.
isUndefined
(
v
.
pin
)
&&
v
.
pin
===
true
&&
pinned
===
true
)
{
return
true
;
}
if
((
_
.
isUndefined
(
v
.
pin
)
||
v
.
pin
===
false
)
&&
pinned
===
false
)
{
return
true
;
}
});
return
ret
;
};
});
\ No newline at end of file
js/services.js
View file @
87afc4dd
...
...
@@ -193,7 +193,7 @@ angular.module('kibana.services', [])
};
})
.
service
(
'query
'
,
function
(
dashboard
)
{
.
service
(
'query
Srv'
,
function
(
dashboard
,
ejsResource
)
{
// Create an object to hold our service state on the dashboard
dashboard
.
current
.
services
.
query
=
dashboard
.
current
.
services
.
query
||
{};
_
.
defaults
(
dashboard
.
current
.
services
.
query
,{
...
...
@@ -203,7 +203,9 @@ angular.module('kibana.services', [])
});
// For convenience
var
ejs
=
ejsResource
(
config
.
elasticsearch
);
var
_q
=
dashboard
.
current
.
services
.
query
;
this
.
colors
=
[
"#7EB26D"
,
"#EAB839"
,
"#6ED0E0"
,
"#EF843C"
,
"#E24D42"
,
"#1F78C1"
,
"#BA43A9"
,
"#705DA0"
,
//1
"#508642"
,
"#CCA300"
,
"#447EBC"
,
"#C15C17"
,
"#890F02"
,
"#0A437C"
,
"#6D1F62"
,
"#584477"
,
//2
...
...
@@ -243,6 +245,7 @@ angular.module('kibana.services', [])
query
:
'*'
,
alias
:
''
,
color
:
colorAt
(
_id
),
pin
:
false
,
id
:
_id
,
type
:
'lucene'
};
...
...
@@ -268,6 +271,20 @@ angular.module('kibana.services', [])
}
};
this
.
getEjsObj
=
function
(
id
)
{
return
self
.
toEjsObj
(
self
.
list
[
id
]);
};
this
.
toEjsObj
=
function
(
q
)
{
switch
(
q
.
type
)
{
case
'lucene'
:
return
ejs
.
QueryStringQuery
(
q
.
query
||
'*'
);
default
:
return
_
.
isUndefined
(
q
.
query
)
?
false
:
ejs
.
QueryStringQuery
(
q
.
query
||
'*'
);
}
};
this
.
findQuery
=
function
(
queryString
)
{
return
_
.
findWhere
(
self
.
list
,{
query
:
queryString
});
};
...
...
@@ -485,7 +502,7 @@ angular.module('kibana.services', [])
// Store a reference to this
var
self
=
this
;
var
filterSrv
,
query
;
var
filterSrv
,
query
Srv
;
this
.
current
=
{};
this
.
last
=
{};
...
...
@@ -574,11 +591,11 @@ angular.module('kibana.services', [])
self
.
current
=
_
.
clone
(
dashboard
);
// Ok, now that we've setup the current dashboard, we can inject our services
query
=
$injector
.
get
(
'query
'
);
query
Srv
=
$injector
.
get
(
'querySrv
'
);
filterSrv
=
$injector
.
get
(
'filterSrv'
);
// Make sure these re-init
query
.
init
();
query
Srv
.
init
();
filterSrv
.
init
();
if
(
dashboard
.
index
.
interval
!==
'none'
&&
filterSrv
.
idsByType
(
'time'
).
length
===
0
)
{
...
...
panels/bettermap/module.js
View file @
87afc4dd
...
...
@@ -20,7 +20,7 @@
'use strict'
;
angular
.
module
(
'kibana.bettermap'
,
[])
.
controller
(
'bettermap'
,
function
(
$scope
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'bettermap'
,
function
(
$scope
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -67,8 +67,8 @@ angular.module('kibana.bettermap', [])
var
_segment
=
_
.
isUndefined
(
segment
)
?
0
:
segment
;
var
boolQuery
=
$scope
.
ejs
.
BoolQuery
();
_
.
each
(
query
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
$scope
.
ejs
.
QueryStringQuery
((
q
.
query
||
'*'
)
));
_
.
each
(
query
Srv
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
querySrv
.
toEjsObj
(
q
));
});
var
request
=
$scope
.
ejs
.
Request
().
indices
(
dashboard
.
indices
[
_segment
])
...
...
panels/fields/module.js
View file @
87afc4dd
...
...
@@ -24,7 +24,7 @@
'use strict'
;
angular
.
module
(
'kibana.fields'
,
[])
.
controller
(
'fields'
,
function
(
$scope
,
eventBus
,
$timeout
,
dashboard
,
query
,
filterSrv
)
{
.
controller
(
'fields'
,
function
(
$scope
,
eventBus
,
$timeout
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
panels/histogram/module.js
View file @
87afc4dd
...
...
@@ -41,15 +41,15 @@
'use strict'
;
angular
.
module
(
'kibana.histogram'
,
[])
.
controller
(
'histogram'
,
function
(
$scope
,
eventBus
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'histogram'
,
function
(
$scope
,
eventBus
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
status
:
"Stable"
,
group
:
"default"
,
query
:
[
{
query
:
"*"
,
label
:
"Query"
}
],
mode
:
'count'
,
time_field
:
'@timestamp'
,
queries
:
[],
value_field
:
null
,
auto_int
:
true
,
resolution
:
100
,
...
...
@@ -73,7 +73,7 @@ angular.module('kibana.histogram', [])
$scope
.
init
=
function
()
{
$scope
.
quer
ies
=
query
;
$scope
.
quer
ySrv
=
querySrv
;
$scope
.
$on
(
'refresh'
,
function
(){
$scope
.
get_data
();
...
...
@@ -103,9 +103,9 @@ angular.module('kibana.histogram', [])
var
request
=
$scope
.
ejs
.
Request
().
indices
(
dashboard
.
indices
[
_segment
]);
// Build the query
_
.
each
(
$scope
.
queries
.
ids
,
function
(
id
)
{
_
.
each
(
querySrv
.
ids
,
function
(
id
)
{
var
query
=
$scope
.
ejs
.
FilteredQuery
(
$scope
.
ejs
.
QueryStringQuery
(
$scope
.
queries
.
list
[
id
].
query
||
'*'
),
querySrv
.
getEjsObj
(
id
),
filterSrv
.
getBoolFilter
(
filterSrv
.
ids
)
);
...
...
@@ -151,13 +151,13 @@ angular.module('kibana.histogram', [])
// Make sure we're still on the same query/queries
if
(
$scope
.
query_id
===
query_id
&&
_
.
intersection
(
facetIds
,
query
.
ids
).
length
===
query
.
ids
.
length
_
.
intersection
(
facetIds
,
query
Srv
.
ids
).
length
===
querySrv
.
ids
.
length
)
{
var
i
=
0
;
var
data
,
hits
;
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
v
=
results
.
facets
[
id
];
// Null values at each end of the time range ensure we see entire range
...
...
@@ -184,7 +184,7 @@ angular.module('kibana.histogram', [])
// Create the flot series object
var
series
=
{
data
:
{
info
:
$scope
.
queries
.
list
[
id
],
info
:
querySrv
.
list
[
id
],
data
:
data
,
hits
:
hits
},
...
...
panels/hits/module.js
View file @
87afc4dd
...
...
@@ -22,7 +22,7 @@
'use strict'
;
angular
.
module
(
'kibana.hits'
,
[])
.
controller
(
'hits'
,
function
(
$scope
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'hits'
,
function
(
$scope
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -62,9 +62,9 @@ angular.module('kibana.hits', [])
var
request
=
$scope
.
ejs
.
Request
().
indices
(
dashboard
.
indices
[
_segment
]);
// Build the question part of the query
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
_q
=
$scope
.
ejs
.
FilteredQuery
(
$scope
.
ejs
.
QueryStringQuery
(
query
.
list
[
id
].
query
||
'*'
),
querySrv
.
getEjsObj
(
id
),
filterSrv
.
getBoolFilter
(
filterSrv
.
ids
));
request
=
request
...
...
@@ -99,10 +99,10 @@ angular.module('kibana.hits', [])
// Make sure we're still on the same query/queries
if
(
$scope
.
query_id
===
query_id
&&
_
.
intersection
(
facetIds
,
query
.
ids
).
length
===
query
.
ids
.
length
_
.
intersection
(
facetIds
,
query
Srv
.
ids
).
length
===
querySrv
.
ids
.
length
)
{
var
i
=
0
;
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
v
=
results
.
facets
[
id
];
var
hits
=
_
.
isUndefined
(
$scope
.
data
[
i
])
||
_segment
===
0
?
v
.
count
:
$scope
.
data
[
i
].
hits
+
v
.
count
;
...
...
@@ -110,7 +110,7 @@ angular.module('kibana.hits', [])
// Create series
$scope
.
data
[
i
]
=
{
info
:
query
.
list
[
id
],
info
:
query
Srv
.
list
[
id
],
id
:
id
,
hits
:
hits
,
data
:
[[
i
,
hits
]]
...
...
@@ -144,7 +144,7 @@ angular.module('kibana.hits', [])
$scope
.
get_data
();
}
}).
directive
(
'hitsChart'
,
function
(
query
)
{
}).
directive
(
'hitsChart'
,
function
(
query
Srv
)
{
return
{
restrict
:
'A'
,
link
:
function
(
scope
,
elem
,
attrs
,
ctrl
)
{
...
...
@@ -195,7 +195,7 @@ angular.module('kibana.hits', [])
color
:
"#eee"
,
hoverable
:
true
,
},
colors
:
query
.
colors
colors
:
query
Srv
.
colors
});
}
if
(
scope
.
panel
.
chart
===
'pie'
)
{
...
...
@@ -227,7 +227,7 @@ angular.module('kibana.hits', [])
},
//grid: { hoverable: true, clickable: true },
grid
:
{
hoverable
:
true
,
clickable
:
true
},
colors
:
query
.
colors
colors
:
query
Srv
.
colors
});
}
...
...
panels/map/module.js
View file @
87afc4dd
...
...
@@ -28,7 +28,7 @@
'use strict'
;
angular
.
module
(
'kibana.map'
,
[])
.
controller
(
'map'
,
function
(
$scope
,
$rootScope
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'map'
,
function
(
$scope
,
$rootScope
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -62,7 +62,7 @@ angular.module('kibana.map', [])
request
=
$scope
.
ejs
.
Request
().
indices
(
dashboard
.
indices
);
var
boolQuery
=
$scope
.
ejs
.
BoolQuery
();
_
.
each
(
query
.
list
,
function
(
q
)
{
_
.
each
(
query
Srv
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
$scope
.
ejs
.
QueryStringQuery
(
q
.
query
||
'*'
));
});
...
...
panels/pie/module.js
View file @
87afc4dd
...
...
@@ -29,7 +29,7 @@
'use strict'
;
angular
.
module
(
'kibana.pie'
,
[])
.
controller
(
'pie'
,
function
(
$scope
,
$rootScope
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'pie'
,
function
(
$scope
,
$rootScope
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -89,8 +89,8 @@ angular.module('kibana.pie', [])
// This could probably be changed to a BoolFilter
var
boolQuery
=
$scope
.
ejs
.
BoolQuery
();
_
.
each
(
query
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
$scope
.
ejs
.
QueryStringQuery
(
q
.
query
||
'*'
));
_
.
each
(
query
Srv
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
querySrv
.
toEjsObj
(
q
));
});
var
results
;
...
...
@@ -162,7 +162,7 @@ angular.module('kibana.pie', [])
};
})
.
directive
(
'pie'
,
function
(
query
,
filterSrv
,
dashboard
)
{
.
directive
(
'pie'
,
function
(
query
Srv
,
filterSrv
,
dashboard
)
{
return
{
restrict
:
'A'
,
link
:
function
(
scope
,
elem
,
attrs
)
{
...
...
@@ -239,7 +239,7 @@ angular.module('kibana.pie', [])
clickable
:
true
},
legend
:
{
show
:
false
},
colors
:
query
.
colors
colors
:
query
Srv
.
colors
};
// Populate element
...
...
@@ -248,6 +248,7 @@ angular.module('kibana.pie', [])
scope
.
plot
=
$
.
plot
(
elem
,
scope
.
data
,
pie
);
});
}
}
function
tt
(
x
,
y
,
contents
)
{
...
...
panels/query/meta.html
View file @
87afc4dd
<div>
<div
class=
"panel-query-meta row-fluid"
style=
"width:170px"
>
<style>
.input-query-alias
{
margin-bottom
:
5px
!important
;
}
.panel-query-meta
.pin
{
text-decoration
:
underline
;
}
</style>
<a
class=
"close"
ng-click=
"render();dismiss();"
href=
""
>
×
</a>
<h6>
Query Alias
</h6>
<i
ng-click=
"toggle_pin(id);dismiss();"
class=
"small pointer icon-pushpin"
></i>
<span
class=
"strong small"
>
Query Alias
</span>
<form>
<input
class=
"input-medium input-query-alias"
type=
"text"
ng-model=
"quer
ies
.list[id].alias"
placeholder=
'Alias...'
/>
<input
class=
"input-medium input-query-alias"
type=
"text"
ng-model=
"quer
ySrv
.list[id].alias"
placeholder=
'Alias...'
/>
<div>
<i
ng-repeat=
"color in quer
ies.colors"
class=
"pointer"
ng-class=
"{'icon-circle-blank':queries.list[id].color == color,'icon-circle':queries.list[id].color != color}"
ng-style=
"{color:color}"
ng-click=
"queries
.list[id].color = color;render();"
>
</i>
<i
ng-repeat=
"color in quer
ySrv.colors"
class=
"pointer"
ng-class=
"{'icon-circle-blank':querySrv.list[id].color == color,'icon-circle':querySrv.list[id].color != color}"
ng-style=
"{color:color}"
ng-click=
"querySrv
.list[id].color = color;render();"
>
</i>
</div>
</form>
</div>
\ No newline at end of file
panels/query/module.html
View file @
87afc4dd
<kibana-panel
ng-controller=
'query'
ng-init=
"init()"
>
<kibana-panel
ng-controller=
'query'
ng-init=
"init()"
class=
"query-panel"
>
<style>
.short-query
{
display
:
inline-block
;
margin-
lef
t
:
10px
;
margin-
righ
t
:
10px
;
}
.begin-query
{
position
:
absolute
;
left
:
1
5
px
;
left
:
1
3
px
;
top
:
5px
;
}
.end-query
{
...
...
@@ -33,19 +33,31 @@
.form-search
:hover
.remove-query
{
opacity
:
1
;
}
.query-panel
.pins
{
text-decoration
:
underline
;
}
.query-panel
.pinned
{
margin-right
:
5px
;
}
</style>
<label
class=
"small"
>
{{panel.label}}
</label>
<div
ng-repeat=
"id in quer
ies.ids"
ng-class=
"{'short-query': queries
.ids.length>1}"
>
<form
class=
"form-search"
style=
"position:relative"
ng-submit=
"refresh()"
>
<div
ng-repeat=
"id in quer
ySrv.ids|pinnedQuery:false"
ng-class=
"{'short-query': querySrv
.ids.length>1}"
>
<form
class=
"form-search"
style=
"position:relative
;margin-bottom:5px;
"
ng-submit=
"refresh()"
>
<span
class=
"begin-query"
>
<i
class=
"icon-circle pointer"
data-unique=
"1"
bs-popover=
"'panels/query/meta.html'"
data-placement=
"right"
ng-style=
"{color: quer
ies
.list[id].color}"
></i>
<i
class=
"icon-remove-sign pointer remove-query"
ng-show=
"quer
ies.ids.length>1"
ng-click=
"queries
.remove(id);refresh()"
></i>
<i
class=
"icon-circle pointer"
data-unique=
"1"
bs-popover=
"'panels/query/meta.html'"
data-placement=
"right"
ng-style=
"{color: quer
ySrv
.list[id].color}"
></i>
<i
class=
"icon-remove-sign pointer remove-query"
ng-show=
"quer
ySrv.ids.length>1"
ng-click=
"querySrv
.remove(id);refresh()"
></i>
</span>
<input
class=
"search-query panel-query"
ng-class=
"{'input-block-level': quer
ies.ids.length==1,'last-query': $last,'has-remove': queries.ids.length>1}"
bs-typeahead=
"panel.history"
data-min-length=
0
data-items=
100
type=
"text"
ng-model=
"queries
.list[id].query"
/>
<input
class=
"search-query panel-query"
ng-class=
"{'input-block-level': quer
ySrv.ids.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
class=
"end-query"
>
<i
class=
"icon-search pointer"
ng-click=
"refresh()"
ng-show=
"$last"
></i>
<i
class=
"icon-plus pointer"
ng-click=
"quer
ies
.set({})"
ng-show=
"$last"
></i>
<i
class=
"icon-plus pointer"
ng-click=
"quer
ySrv
.set({})"
ng-show=
"$last"
></i>
</span>
</form>
</div>
<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"
><small
class=
"pins"
>
Pinned
</small>
<i
ng-class=
"{'icon-caret-right':panel.pinned,'icon-caret-left':!panel.pinned}"
></i></span>
<span
ng-show=
"panel.pinned"
class=
"pinned badge"
>
<i
class=
"icon-circle pointer"
ng-style=
"{color: querySrv.list[id].color}"
data-unique=
"1"
bs-popover=
"'panels/query/meta.html'"
></i><span
bs-tooltip=
"querySrv.list[id].query"
>
{{querySrv.list[id].alias || querySrv.list[id].query}}
</span>
</span>
</div>
</kibana-panel>
\ No newline at end of file
panels/query/module.js
View file @
87afc4dd
...
...
@@ -16,26 +16,27 @@
'use strict'
;
angular
.
module
(
'kibana.query'
,
[])
.
controller
(
'query'
,
function
(
$scope
,
query
,
$rootScope
)
{
.
controller
(
'query'
,
function
(
$scope
,
query
Srv
,
$rootScope
)
{
// Set and populate defaults
var
_d
=
{
status
:
"Experimental"
,
label
:
"Search"
,
query
:
"*"
,
pinned
:
true
,
group
:
"default"
,
history
:
[],
remember
:
10
// max: 100, angular strap can't take a variable for items param
};
_
.
defaults
(
$scope
.
panel
,
_d
);
$scope
.
quer
ies
=
query
;
$scope
.
quer
ySrv
=
querySrv
;
$scope
.
init
=
function
()
{
};
$scope
.
refresh
=
function
(
query
)
{
update_history
(
_
.
pluck
(
$scope
.
quer
ies
.
list
,
'query'
));
update_history
(
_
.
pluck
(
$scope
.
quer
ySrv
.
list
,
'query'
));
$rootScope
.
$broadcast
(
'refresh'
);
};
...
...
@@ -43,6 +44,10 @@ angular.module('kibana.query', [])
$rootScope
.
$broadcast
(
'render'
);
};
$scope
.
toggle_pin
=
function
(
id
)
{
querySrv
.
list
[
id
].
pin
=
querySrv
.
list
[
id
].
pin
?
false
:
true
;
};
var
update_history
=
function
(
query
)
{
if
(
$scope
.
panel
.
remember
>
0
)
{
$scope
.
panel
.
history
=
_
.
union
(
query
.
reverse
(),
$scope
.
panel
.
history
);
...
...
panels/table/module.js
View file @
87afc4dd
...
...
@@ -30,7 +30,7 @@
'use strict'
;
angular
.
module
(
'kibana.table'
,
[])
.
controller
(
'table'
,
function
(
$rootScope
,
$scope
,
eventBus
,
fields
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'table'
,
function
(
$rootScope
,
$scope
,
eventBus
,
fields
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -69,7 +69,7 @@ angular.module('kibana.table', [])
$scope
.
panel
.
fields
=
_
.
clone
(
fields
);
});
eventBus
.
register
(
$scope
,
'table_documents'
,
function
(
event
,
docs
)
{
query
.
list
[
query
.
ids
[
0
]].
query
=
docs
.
query
;
query
Srv
.
list
[
querySrv
.
ids
[
0
]].
query
=
docs
.
query
;
$scope
.
data
=
docs
.
docs
;
});
};
...
...
@@ -139,8 +139,8 @@ angular.module('kibana.table', [])
var
request
=
$scope
.
ejs
.
Request
().
indices
(
dashboard
.
indices
[
_segment
]);
var
boolQuery
=
$scope
.
ejs
.
BoolQuery
();
_
.
each
(
query
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
$scope
.
ejs
.
QueryStringQuery
(
q
.
query
||
'*'
));
_
.
each
(
query
Srv
.
list
,
function
(
q
)
{
boolQuery
=
boolQuery
.
should
(
querySrv
.
toEjsObj
(
q
));
});
request
=
request
.
query
(
...
...
@@ -250,7 +250,7 @@ angular.module('kibana.table', [])
});
eventBus
.
broadcast
(
$scope
.
$id
,
$scope
.
panel
.
group
,
"table_documents"
,
{
query
:
query
.
list
[
query
.
ids
[
0
]].
query
,
query
:
query
Srv
.
list
[
querySrv
.
ids
[
0
]].
query
,
docs
:
_
.
pluck
(
$scope
.
data
,
'_source'
),
index
:
$scope
.
index
});
...
...
panels/trends/module.html
View file @
87afc4dd
...
...
@@ -2,10 +2,10 @@
<div
ng-style=
"panel.style"
style=
"line-height:{{panel.style['font-size']}};display:inline-block;padding-right: 5px;"
ng-repeat=
"query in trends"
>
<i
class=
"icon-circle"
style=
"color:{{query.info.color}}"
></i>
<span
ng-class=
"{'text-success': query.hits.new >= query.hits.old, 'text-error': query.hits.old > query.hits.new}"
class=
'
strong'
>
<span
bs-tooltip=
"'Then: '+query.hits.old+', Now: '+query.hits.new"
ng-class=
"{'text-success': query.hits.new >= query.hits.old, 'text-error': query.hits.old > query.hits.new}"
class=
'pointer
strong'
>
<i
class=
'large'
ng-class=
"{'icon-caret-up': query.hits.new >= query.hits.old, 'icon-caret-down': query.hits.old > query.hits.new}"
></i>
{{query.percent}}%
</span>
<span
class=
"tiny
pointer light"
bs-tooltip=
"'Then: '+query.hits.old+', Now: '+query.hits.new
"
ng-show=
"query.info.alias != ''"
>
({{query.info.alias}})
</span>
<span
class=
"tiny
light
"
ng-show=
"query.info.alias != ''"
>
({{query.info.alias}})
</span>
<br
ng-show=
"panel.arrangement == 'vertical'"
>
</div>
</kibana-panel>
\ No newline at end of file
panels/trends/module.js
View file @
87afc4dd
...
...
@@ -22,7 +22,7 @@
'use strict'
;
angular
.
module
(
'kibana.trends'
,
[])
.
controller
(
'trends'
,
function
(
$scope
,
kbnIndex
,
query
,
dashboard
,
filterSrv
)
{
.
controller
(
'trends'
,
function
(
$scope
,
kbnIndex
,
query
Srv
,
dashboard
,
filterSrv
)
{
// Set and populate defaults
var
_d
=
{
...
...
@@ -78,9 +78,9 @@ angular.module('kibana.trends', [])
// Build the question part of the query
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
q
=
$scope
.
ejs
.
FilteredQuery
(
$scope
.
ejs
.
QueryStringQuery
(
query
.
list
[
id
].
query
||
'*'
),
querySrv
.
getEjsObj
(
id
),
filterSrv
.
getBoolFilter
(
_ids_without_time
).
must
(
$scope
.
ejs
.
RangeFilter
(
timeField
)
.
from
(
$scope
.
time
.
from
)
...
...
@@ -93,10 +93,11 @@ angular.module('kibana.trends', [])
).
size
(
0
);
});
// And again for the old time period
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
q
=
$scope
.
ejs
.
FilteredQuery
(
$scope
.
ejs
.
QueryStringQuery
(
query
.
list
[
id
].
query
||
'*'
),
querySrv
.
getEjsObj
(
id
),
filterSrv
.
getBoolFilter
(
_ids_without_time
).
must
(
$scope
.
ejs
.
RangeFilter
(
timeField
)
.
from
(
$scope
.
old_time
.
from
)
...
...
@@ -108,6 +109,7 @@ angular.module('kibana.trends', [])
).
size
(
0
);
});
// TODO: Spy for trend panel
//$scope.populate_modal(request);
...
...
@@ -121,8 +123,7 @@ angular.module('kibana.trends', [])
).
then
(
function
(
p
)
{
$scope
.
index
=
_
.
union
(
p
,
$scope
.
index
);
request
=
request
.
indices
(
$scope
.
index
[
_segment
]);
process_results
(
request
.
doSearch
());
process_results
(
request
.
doSearch
(),
_segment
,
query_id
);
});
}
else
{
process_results
(
request
.
indices
(
$scope
.
index
[
_segment
]).
doSearch
(),
_segment
,
query_id
);
...
...
@@ -133,7 +134,6 @@ angular.module('kibana.trends', [])
// Populate scope when we have results
var
process_results
=
function
(
results
,
_segment
,
query_id
)
{
results
.
then
(
function
(
results
)
{
$scope
.
panel
.
loading
=
false
;
if
(
_segment
===
0
)
{
$scope
.
hits
=
{};
...
...
@@ -152,10 +152,10 @@ angular.module('kibana.trends', [])
// Make sure we're still on the same query/queries
if
(
$scope
.
query_id
===
query_id
&&
_
.
intersection
(
facetIds
,
query
.
ids
).
length
===
query
.
ids
.
length
_
.
intersection
(
facetIds
,
query
Srv
.
ids
).
length
===
querySrv
.
ids
.
length
)
{
var
i
=
0
;
_
.
each
(
query
.
ids
,
function
(
id
)
{
_
.
each
(
query
Srv
.
ids
,
function
(
id
)
{
var
v
=
results
.
facets
[
id
];
var
n
=
results
.
facets
[
id
].
count
;
var
o
=
results
.
facets
[
'old_'
+
id
].
count
;
...
...
@@ -172,7 +172,7 @@ angular.module('kibana.trends', [])
'?'
:
Math
.
round
(
percentage
(
hits
.
old
,
hits
.
new
)
*
100
)
/
100
;
// Create series
$scope
.
data
[
i
]
=
{
info
:
query
.
list
[
id
],
info
:
query
Srv
.
list
[
id
],
hits
:
{
new
:
hits
.
new
,
old
:
hits
.
old
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment