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
588955c7
Commit
588955c7
authored
Mar 08, 2017
by
Daniel Lee
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'jifwin-load_on_Scroll'
parents
4f06202e
bd348a47
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
1 deletions
+30
-1
public/app/features/panel/metrics_panel_ctrl.ts
+2
-0
public/app/features/panel/panel_ctrl.ts
+13
-0
public/app/features/panel/panel_directive.ts
+15
-1
No files found.
public/app/features/panel/metrics_panel_ctrl.ts
View file @
588955c7
...
@@ -12,6 +12,7 @@ import * as dateMath from 'app/core/utils/datemath';
...
@@ -12,6 +12,7 @@ import * as dateMath from 'app/core/utils/datemath';
import
{
Subject
}
from
'vendor/npm/rxjs/Subject'
;
import
{
Subject
}
from
'vendor/npm/rxjs/Subject'
;
class
MetricsPanelCtrl
extends
PanelCtrl
{
class
MetricsPanelCtrl
extends
PanelCtrl
{
scope
:
any
;
loading
:
boolean
;
loading
:
boolean
;
datasource
:
any
;
datasource
:
any
;
datasourceName
:
any
;
datasourceName
:
any
;
...
@@ -40,6 +41,7 @@ class MetricsPanelCtrl extends PanelCtrl {
...
@@ -40,6 +41,7 @@ class MetricsPanelCtrl extends PanelCtrl {
this
.
datasourceSrv
=
$injector
.
get
(
'datasourceSrv'
);
this
.
datasourceSrv
=
$injector
.
get
(
'datasourceSrv'
);
this
.
timeSrv
=
$injector
.
get
(
'timeSrv'
);
this
.
timeSrv
=
$injector
.
get
(
'timeSrv'
);
this
.
templateSrv
=
$injector
.
get
(
'templateSrv'
);
this
.
templateSrv
=
$injector
.
get
(
'templateSrv'
);
this
.
scope
=
$scope
;
if
(
!
this
.
panel
.
targets
)
{
if
(
!
this
.
panel
.
targets
)
{
this
.
panel
.
targets
=
[{}];
this
.
panel
.
targets
=
[{}];
...
...
public/app/features/panel/panel_ctrl.ts
View file @
588955c7
...
@@ -35,6 +35,8 @@ export class PanelCtrl {
...
@@ -35,6 +35,8 @@ export class PanelCtrl {
containerHeight
:
any
;
containerHeight
:
any
;
events
:
Emitter
;
events
:
Emitter
;
timing
:
any
;
timing
:
any
;
skippedLastRefresh
:
boolean
;
isPanelVisible
:
any
;
constructor
(
$scope
,
$injector
)
{
constructor
(
$scope
,
$injector
)
{
this
.
$injector
=
$injector
;
this
.
$injector
=
$injector
;
...
@@ -74,7 +76,18 @@ export class PanelCtrl {
...
@@ -74,7 +76,18 @@ export class PanelCtrl {
profiler
.
renderingCompleted
(
this
.
panel
.
id
,
this
.
timing
);
profiler
.
renderingCompleted
(
this
.
panel
.
id
,
this
.
timing
);
}
}
private
isRenderingPng
()
{
return
window
.
location
.
href
.
indexOf
(
"/dashboard-solo/db"
)
>=
0
;
}
refresh
()
{
refresh
()
{
if
(
!
this
.
isPanelVisible
()
&&
!
this
.
isRenderingPng
()
&&
!
this
.
dashboard
.
snapshot
)
{
this
.
skippedLastRefresh
=
true
;
return
;
}
this
.
skippedLastRefresh
=
false
;
this
.
events
.
emit
(
'refresh'
,
null
);
this
.
events
.
emit
(
'refresh'
,
null
);
}
}
...
...
public/app/features/panel/panel_directive.ts
View file @
588955c7
...
@@ -57,7 +57,7 @@ var panelTemplate = `
...
@@ -57,7 +57,7 @@ var panelTemplate = `
</div>
</div>
`
;
`
;
module
.
directive
(
'grafanaPanel'
,
function
(
$rootScope
)
{
module
.
directive
(
'grafanaPanel'
,
function
(
$rootScope
,
$document
)
{
return
{
return
{
restrict
:
'E'
,
restrict
:
'E'
,
template
:
panelTemplate
,
template
:
panelTemplate
,
...
@@ -175,9 +175,23 @@ module.directive('grafanaPanel', function($rootScope) {
...
@@ -175,9 +175,23 @@ module.directive('grafanaPanel', function($rootScope) {
elem
.
on
(
'mouseenter'
,
mouseEnter
);
elem
.
on
(
'mouseenter'
,
mouseEnter
);
elem
.
on
(
'mouseleave'
,
mouseLeave
);
elem
.
on
(
'mouseleave'
,
mouseLeave
);
ctrl
.
isPanelVisible
=
function
()
{
var
position
=
panelContainer
[
0
].
getBoundingClientRect
();
return
(
0
<
position
.
top
)
&&
(
position
.
top
<
window
.
innerHeight
);
};
const
refreshOnScroll
=
_
.
debounce
(
function
()
{
if
(
ctrl
.
skippedLastRefresh
)
{
ctrl
.
refresh
();
}
},
250
);
$document
.
on
(
'scroll'
,
refreshOnScroll
);
scope
.
$on
(
'$destroy'
,
function
()
{
scope
.
$on
(
'$destroy'
,
function
()
{
elem
.
off
();
elem
.
off
();
cornerInfoElem
.
off
();
cornerInfoElem
.
off
();
$document
.
off
(
'scroll'
,
refreshOnScroll
);
if
(
infoDrop
)
{
if
(
infoDrop
)
{
infoDrop
.
destroy
();
infoDrop
.
destroy
();
...
...
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