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
2c852052
Commit
2c852052
authored
Sep 30, 2014
by
Torkel Ödegaard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SharePanelModal: working on share feature, #864
parent
2d866b92
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
21 deletions
+145
-21
.jsfmtrc
+21
-0
src/app/controllers/sharePanelCtrl.js
+46
-13
src/app/partials/dasheditor.html
+0
-1
src/app/partials/share-panel.html
+4
-3
src/config.sample.js
+4
-2
src/css/less/forms.less
+2
-0
src/test/specs/helpers.js
+8
-2
src/test/specs/sharePanelCtrl-specs.js
+59
-0
src/test/test-main.js
+1
-0
No files found.
.jsfmtrc
0 → 100644
View file @
2c852052
{
"preset" : "default",
"lineBreak" : {
"before" : {
"VariableDeclarationWithoutInit" : 0,
},
"after": {
"AssignmentOperator": -1,
"ArgumentListArrayExpression": ">=1"
}
},
"whiteSpace" : {
"before" : {
},
"after" : {
}
}
}
src/app/controllers/sharePanelCtrl.js
View file @
2c852052
...
...
@@ -11,31 +11,64 @@ function (angular, _) {
$scope
.
init
=
function
()
{
$scope
.
editor
=
{
index
:
0
};
$scope
.
forCurrent
=
true
;
$scope
.
toPanel
=
true
;
$scope
.
buildUrl
();
};
$scope
.
buildUrl
=
function
()
{
var
baseUrl
=
$location
.
absUrl
();
var
queryStart
=
baseUrl
.
indexOf
(
'?'
);
if
(
queryStart
!==
-
1
)
{
baseUrl
=
baseUrl
.
substring
(
0
,
queryStart
);
}
var
currentUrl
=
$location
.
absUrl
();
var
panelId
=
$scope
.
panel
.
id
;
var
range
=
timeSrv
.
timeRange
(
false
);
var
from
=
range
.
from
;
var
to
=
range
.
to
;
if
(
_
.
is
Date
(
from
))
{
from
=
from
.
getTim
e
();
var
params
=
$location
.
search
()
;
if
(
_
.
is
String
(
range
.
to
)
&&
range
.
to
.
indexOf
(
'now'
))
{
range
=
timeSrv
.
timeRang
e
();
}
if
(
_
.
isDate
(
to
))
{
to
=
to
.
getTime
();
params
.
from
=
range
.
from
;
params
.
to
=
range
.
to
;
if
(
_
.
isDate
(
params
.
from
))
{
params
.
from
=
params
.
from
.
getTime
();
}
if
(
_
.
isDate
(
params
.
to
))
{
params
.
to
=
params
.
to
.
getTime
();
}
if
(
!
$scope
.
forCurrent
)
{
delete
params
.
from
;
delete
params
.
to
;
}
$scope
.
shareUrl
=
currentUrl
+
"?panelId="
+
panelId
+
"&fullscreen"
;
$scope
.
shareUrl
+=
"&from="
+
from
;
$scope
.
shareUrl
+=
"&to="
+
to
;
if
(
$scope
.
toPanel
)
{
params
.
panelId
=
panelId
;
params
.
fullscreen
=
true
;
}
else
{
delete
params
.
panelId
;
delete
params
.
fullscreen
;
}
$scope
.
forCurrent
=
true
;
$scope
.
toPanel
=
true
;
var
paramsArray
=
[];
_
.
each
(
params
,
function
(
value
,
key
)
{
var
str
=
key
;
if
(
value
!==
true
)
{
str
+=
'='
+
encodeURIComponent
(
value
);
}
paramsArray
.
push
(
str
);
});
$scope
.
shareUrl
=
baseUrl
+
"?"
+
paramsArray
.
join
(
'&'
)
;
$timeout
(
function
()
{
var
input
=
$element
.
find
(
'[data-share-panel-url]'
);
input
.
focus
();
input
.
select
();
});
},
10
);
};
$scope
.
init
();
...
...
src/app/partials/dasheditor.html
View file @
2c852052
...
...
@@ -39,7 +39,6 @@
</bootstrap-tagsinput>
<tip>
Press enter to a add tag
</tip>
</div>
</div>
</div>
</div>
...
...
src/app/partials/share-panel.html
View file @
2c852052
...
...
@@ -15,13 +15,14 @@
</div>
<div
class=
"modal-body"
>
<div
class=
"editor-row"
>
<editor-opt-bool
name=
"currentTime"
text=
"Current time range"
model=
"forCurrent"
></editor-opt-bool>
<editor-opt-bool
name=
"toPanel"
text=
"To this panel only"
model=
"toPanel"
></editor-opt-bool>
<editor-opt-bool
name=
"currentTime"
text=
"Current time range"
model=
"forCurrent"
change=
"buildUrl()"
></editor-opt-bool>
<editor-opt-bool
name=
"toPanel"
text=
"To this panel only"
model=
"toPanel"
change=
"buildUrl()"
></editor-opt-bool>
</div>
<div
class=
"editor-row"
style=
"margin-top: 20px;"
>
<input
type=
"text"
data-share-panel-url
ng-model=
"shareUrl"
class=
"input input-fluid"
></input>
<input
type=
"text"
data-share-panel-url
class=
"input input-fluid"
ng-model=
'shareUrl'
></input>
</div>
</div>
...
...
src/config.sample.js
View file @
2c852052
...
...
@@ -2,8 +2,7 @@
// config.js is where you will find the core Grafana configuration. This file contains parameter that
// must be set before Grafana is run for the first time.
define
([
'settings'
],
function
(
Settings
)
{
define
([
'settings'
],
function
(
Settings
)
{
"use strict"
;
return
new
Settings
({
...
...
@@ -107,3 +106,6 @@ function (Settings) {
});
});
src/css/less/forms.less
View file @
2c852052
...
...
@@ -2,6 +2,8 @@ input[type=text].input-fluid {
width: 100%;
box-sizing: border-box;
padding: 14px;
-moz-box-sizing: border-box;
height: 100%;
}
input[type="checkbox"].cr1 {
...
...
src/test/specs/helpers.js
View file @
2c852052
...
...
@@ -8,6 +8,7 @@ define([
var
self
=
this
;
this
.
datasource
=
{};
this
.
$element
=
{};
this
.
annotationsSrv
=
{};
this
.
timeSrv
=
new
TimeSrvStub
();
this
.
templateSrv
=
new
TemplateSrvStub
();
...
...
@@ -16,18 +17,23 @@ define([
get
:
function
()
{
return
self
.
datasource
;
}
};
this
.
providePhase
=
function
()
{
this
.
providePhase
=
function
(
mocks
)
{
return
module
(
function
(
$provide
)
{
$provide
.
value
(
'datasourceSrv'
,
self
.
datasourceSrv
);
$provide
.
value
(
'annotationsSrv'
,
self
.
annotationsSrv
);
$provide
.
value
(
'timeSrv'
,
self
.
timeSrv
);
$provide
.
value
(
'templateSrv'
,
self
.
templateSrv
);
$provide
.
value
(
'$element'
,
self
.
$element
);
_
.
each
(
mocks
,
function
(
key
,
value
)
{
$provide
.
value
(
key
,
value
);
});
});
};
this
.
createControllerPhase
=
function
(
controllerName
)
{
return
inject
(
function
(
$controller
,
$rootScope
,
$q
)
{
return
inject
(
function
(
$controller
,
$rootScope
,
$q
,
$location
)
{
self
.
scope
=
$rootScope
.
$new
();
self
.
$location
=
$location
;
self
.
scope
.
panel
=
{};
self
.
scope
.
row
=
{
panels
:[]
};
self
.
scope
.
dashboard
=
{};
...
...
src/test/specs/sharePanelCtrl-specs.js
0 → 100644
View file @
2c852052
define
([
'./helpers'
,
'controllers/sharePanelCtrl'
],
function
(
helpers
)
{
'use strict'
;
describe
(
'SharePanelCtrl'
,
function
()
{
var
ctx
=
new
helpers
.
ControllerTestContext
();
beforeEach
(
module
(
'grafana.controllers'
));
beforeEach
(
ctx
.
providePhase
());
beforeEach
(
ctx
.
createControllerPhase
(
'SharePanelCtrl'
));
describe
(
'shareUrl with current time range and panel'
,
function
()
{
it
(
'should generate share url relative time'
,
function
()
{
ctx
.
$location
.
path
(
'/test'
);
ctx
.
scope
.
panel
=
{
id
:
22
};
ctx
.
timeSrv
.
time
=
{
from
:
'now-1h'
,
to
:
'now'
};
ctx
.
scope
.
buildUrl
();
expect
(
ctx
.
scope
.
shareUrl
).
to
.
be
(
'http://server/#/test?from=now-1h&to=now&panelId=22&fullscreen'
);
});
it
(
'should generate share url absolute time'
,
function
()
{
ctx
.
$location
.
path
(
'/test'
);
ctx
.
scope
.
panel
=
{
id
:
22
};
ctx
.
timeSrv
.
time
=
{
from
:
new
Date
(
2012
,
1
,
1
),
to
:
new
Date
(
2014
,
3
,
5
)
};
ctx
.
scope
.
buildUrl
();
expect
(
ctx
.
scope
.
shareUrl
).
to
.
be
(
'http://server/#/test?from=1328050800000&to=1396648800000&panelId=22&fullscreen'
);
});
it
(
'should generate share url with time as JSON strings'
,
function
()
{
ctx
.
$location
.
path
(
'/test'
);
ctx
.
scope
.
panel
=
{
id
:
22
};
ctx
.
timeSrv
.
time
=
{
from
:
new
Date
(
2012
,
1
,
1
).
toJSON
(),
to
:
new
Date
(
2014
,
3
,
5
).
toJSON
()
};
ctx
.
scope
.
buildUrl
();
expect
(
ctx
.
scope
.
shareUrl
).
to
.
be
(
'http://server/#/test?from=1328050800000&to=1396648800000&panelId=22&fullscreen'
);
});
it
(
'should remove panel id when toPanel is false'
,
function
()
{
ctx
.
$location
.
path
(
'/test'
);
ctx
.
scope
.
panel
=
{
id
:
22
};
ctx
.
scope
.
toPanel
=
false
;
ctx
.
timeSrv
.
time
=
{
from
:
'now-1h'
,
to
:
'now'
};
ctx
.
scope
.
buildUrl
();
expect
(
ctx
.
scope
.
shareUrl
).
to
.
be
(
'http://server/#/test?from=now-1h&to=now'
);
});
});
});
});
src/test/test-main.js
View file @
2c852052
...
...
@@ -131,6 +131,7 @@ require([
'specs/grafanaGraph-specs'
,
'specs/graph-tooltip-specs'
,
'specs/seriesOverridesCtrl-specs'
,
'specs/sharePanelCtrl-specs'
,
'specs/timeSrv-specs'
,
'specs/templateSrv-specs'
,
'specs/templateValuesSrv-specs'
,
...
...
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