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
f2e1859f
Commit
f2e1859f
authored
Jul 20, 2013
by
Rashid Khan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Linted shared and moved to js dir
parent
5a3028f7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
181 additions
and
142 deletions
+181
-142
js/app.js
+1
-1
js/shared.js
+180
-141
No files found.
js/app.js
View file @
f2e1859f
...
...
@@ -25,11 +25,11 @@ var labjs = $LAB
.
script
(
"common/lib/elastic.min.js"
)
.
script
(
"common/lib/elastic-angular-client.js"
).
wait
()
.
script
(
"common/lib/moment.js"
)
.
script
(
"common/lib/shared.js"
)
.
script
(
"common/lib/filesaver.js"
)
.
script
(
"common/lib/bootstrap.min.js"
)
.
script
(
'common/lib/datepicker.js'
)
.
script
(
'common/lib/timepicker.js'
).
wait
()
.
script
(
"js/shared.js"
)
.
script
(
"js/services.js"
)
.
script
(
"js/controllers.js"
)
.
script
(
"js/filters.js"
)
...
...
common/lib
/shared.js
→
js
/shared.js
View file @
f2e1859f
// Wrap this all up in a 'kbn' object so I don't have a billion globals
(
function
()
{
'use strict'
;
// Save a reference to this
var
self
=
this
;
...
...
@@ -8,102 +9,109 @@
var
wasKbn
=
self
.
kbn
;
// Create a safe refernce to the kbn object, for use below
var
kbn
=
function
(
obj
)
{
return
new
wrapper
(
obj
);
}
;
var
kbn
=
this
;
// Create a global object for accessing these functions
self
.
kbn
=
kbn
;
kbn
.
get_object_fields
=
function
(
obj
)
{
var
field_array
=
[];
obj
=
kbn
.
flatten_json
(
obj
.
_source
)
for
(
field
in
obj
)
{
obj
=
kbn
.
flatten_json
(
obj
.
_source
)
;
for
(
var
field
in
obj
)
{
field_array
.
push
(
field
);
}
return
field_array
.
sort
();
}
}
;
kbn
.
get_all_fields
=
function
(
data
)
{
var
fields
=
[];
_
.
each
(
data
,
function
(
hit
)
{
fields
=
_
.
uniq
(
fields
.
concat
(
_
.
keys
(
hit
)))
})
fields
=
_
.
uniq
(
fields
.
concat
(
_
.
keys
(
hit
)))
;
})
;
// Remove stupid angular key
fields
=
_
.
without
(
fields
,
'$$hashKey'
)
fields
=
_
.
without
(
fields
,
'$$hashKey'
)
;
return
fields
;
}
}
;
kbn
.
has_field
=
function
(
obj
,
field
)
{
var
obj_fields
=
get_object_fields
(
obj
);
var
obj_fields
=
kbn
.
get_object_fields
(
obj
);
if
(
_
.
inArray
(
obj_fields
,
field
)
<
0
)
{
return
false
;
}
else
{
return
true
;
}
}
}
;
kbn
.
get_related_fields
=
function
(
docs
,
field
)
{
var
field_array
=
[]
var
field_array
=
[]
;
_
.
each
(
docs
,
function
(
doc
)
{
var
keys
=
_
.
keys
(
doc
)
if
(
_
.
contains
(
keys
,
field
))
field_array
=
field_array
.
concat
(
keys
)
})
var
keys
=
_
.
keys
(
doc
);
if
(
_
.
contains
(
keys
,
field
))
{
field_array
=
field_array
.
concat
(
keys
);
}
});
var
counts
=
_
.
countBy
(
_
.
without
(
field_array
,
field
),
function
(
field
){
return
field
;});
return
counts
;
}
}
;
kbn
.
recurse_field_dots
=
function
(
object
,
field
)
{
var
value
=
null
;
if
(
typeof
object
[
field
]
!=
'undefined'
)
var
nested
;
if
(
typeof
object
[
field
]
!==
'undefined'
)
{
value
=
object
[
field
];
else
if
(
nested
=
field
.
match
(
/
(
.*
?)\.(
.*
)
/
))
if
(
typeof
object
[
nested
[
1
]]
!=
'undefined'
)
value
=
(
typeof
object
[
nested
[
1
]][
nested
[
2
]]
!=
'undefined'
)
?
object
[
nested
[
1
]][
nested
[
2
]]
:
recurse_field_dots
(
}
else
if
(
nested
=
field
.
match
(
/
(
.*
?)\.(
.*
)
/
))
{
if
(
typeof
object
[
nested
[
1
]]
!==
'undefined'
)
{
value
=
(
typeof
object
[
nested
[
1
]][
nested
[
2
]]
!==
'undefined'
)
?
object
[
nested
[
1
]][
nested
[
2
]]
:
kbn
.
recurse_field_dots
(
object
[
nested
[
1
]],
nested
[
2
]);
}
}
return
value
;
}
}
;
// Probably useless now, leaving for cases where you might not want
// a flat dot notated data structure
kbn
.
get_field_value
=
function
(
object
,
field
,
opt
)
{
var
value
=
kbn
.
recurse_field_dots
(
object
[
'_source'
]
,
field
);
var
value
=
kbn
.
recurse_field_dots
(
object
.
_source
,
field
);
if
(
value
===
null
)
return
''
if
(
_
.
isArray
(
value
))
if
(
opt
==
'raw'
)
{
if
(
value
===
null
)
{
return
''
;
}
if
(
_
.
isArray
(
value
))
{
if
(
opt
===
'raw'
)
{
return
value
;
}
else
{
var
complex
=
false
;
_
.
each
(
value
,
function
(
el
,
index
)
{
if
(
typeof
(
el
)
==
'object'
)
{
complex
=
true
;
}
})
if
(
complex
)
{
return
JSON
.
stringify
(
value
,
null
,
4
);
}
else
{
var
complex
=
false
;
_
.
each
(
value
,
function
(
el
,
index
)
{
if
(
typeof
(
el
)
===
'object'
)
{
complex
=
true
;
}
return
value
.
toString
();
});
if
(
complex
)
{
return
JSON
.
stringify
(
value
,
null
,
4
);
}
return
value
.
toString
();
}
if
(
typeof
value
===
'object'
&&
value
!=
null
)
}
if
(
typeof
value
===
'object'
&&
value
!==
null
)
{
// Leaving this out for now
//return opt == 'raw' ? value : JSON.stringify(value,null,4)
return
JSON
.
stringify
(
value
,
null
,
4
)
return
JSON
.
stringify
(
value
,
null
,
4
);
}
return
(
value
!=
null
)
?
value
.
toString
()
:
''
;
}
return
(
value
!=
=
null
)
?
value
.
toString
()
:
''
;
}
;
kbn
.
top_field_values
=
function
(
docs
,
field
,
count
)
{
var
counts
=
_
.
countBy
(
_
.
pluck
(
docs
,
field
),
function
(
field
){
return
_
.
isUndefined
(
field
)
?
''
:
field
;
});
return
_
.
pairs
(
counts
).
sort
(
function
(
a
,
b
)
{
return
a
[
1
]
-
b
[
1
]
}).
reverse
().
slice
(
0
,
count
)
}
return
a
[
1
]
-
b
[
1
]
;
}).
reverse
().
slice
(
0
,
count
)
;
}
;
/**
* Calculate a graph interval
...
...
@@ -115,78 +123,97 @@
*
*/
kbn
.
calculate_interval
=
function
(
from
,
to
,
size
,
user_interval
)
{
if
(
_
.
isObject
(
from
))
if
(
_
.
isObject
(
from
))
{
from
=
from
.
valueOf
();
if
(
_
.
isObject
(
to
))
}
if
(
_
.
isObject
(
to
))
{
to
=
to
.
valueOf
();
return
user_interval
==
0
?
kbn
.
round_interval
((
to
-
from
)
/
size
)
:
user_interval
;
}
}
return
user_interval
===
0
?
kbn
.
round_interval
((
to
-
from
)
/
size
)
:
user_interval
;
};
kbn
.
round_interval
=
function
(
interval
)
{
switch
(
true
)
{
// 0.5s
case
(
interval
<=
500
):
return
100
;
// 0.1s
// 5s
case
(
interval
<=
5000
):
return
1000
;
// 1s
// 7.5s
case
(
interval
<=
7500
):
return
5000
;
// 5s
// 15s
case
(
interval
<=
15000
):
return
10000
;
// 10s
// 45s
case
(
interval
<=
45000
):
return
30000
;
// 30s
// 3m
case
(
interval
<=
180000
):
return
60000
;
// 1m
// 9m
case
(
interval
<=
450000
):
return
300000
;
// 5m
// 20m
case
(
interval
<=
1200000
):
return
600000
;
// 10m
// 45m
case
(
interval
<=
2700000
):
return
1800000
;
// 30m
// 2h
case
(
interval
<=
7200000
):
return
3600000
;
// 1h
// 6h
case
(
interval
<=
21600000
):
return
10800000
;
// 3h
// 24h
case
(
interval
<=
86400000
):
return
43200000
;
// 12h
// 48h
case
(
interval
<=
172800000
):
return
86400000
;
// 24h
// 1w
case
(
interval
<=
604800000
):
return
86400000
;
// 24h
// 3w
case
(
interval
<=
1814400000
):
return
604800000
;
// 1w
// 2y
case
(
interval
<
3628800000
):
return
2592000000
;
// 30d
default
:
return
31536000000
;
// 1y
// 0.5s
case
(
interval
<=
500
):
return
100
;
// 0.1s
// 5s
case
(
interval
<=
5000
):
return
1000
;
// 1s
// 7.5s
case
(
interval
<=
7500
):
return
5000
;
// 5s
// 15s
case
(
interval
<=
15000
):
return
10000
;
// 10s
// 45s
case
(
interval
<=
45000
):
return
30000
;
// 30s
// 3m
case
(
interval
<=
180000
):
return
60000
;
// 1m
// 9m
case
(
interval
<=
450000
):
return
300000
;
// 5m
// 20m
case
(
interval
<=
1200000
):
return
600000
;
// 10m
// 45m
case
(
interval
<=
2700000
):
return
1800000
;
// 30m
// 2h
case
(
interval
<=
7200000
):
return
3600000
;
// 1h
// 6h
case
(
interval
<=
21600000
):
return
10800000
;
// 3h
// 24h
case
(
interval
<=
86400000
):
return
43200000
;
// 12h
// 48h
case
(
interval
<=
172800000
):
return
86400000
;
// 24h
// 1w
case
(
interval
<=
604800000
):
return
86400000
;
// 24h
// 3w
case
(
interval
<=
1814400000
):
return
604800000
;
// 1w
// 2y
case
(
interval
<
3628800000
):
return
2592000000
;
// 30d
default
:
return
31536000000
;
// 1y
}
}
}
;
kbn
.
secondsToHms
=
function
(
seconds
){
var
numyears
=
Math
.
floor
(
seconds
/
31536000
);
if
(
numyears
){
return
numyears
+
'y'
;
}
var
numdays
=
Math
.
floor
((
seconds
%
31536000
)
/
86400
);
if
(
numdays
){
return
numdays
+
'd'
;
}
var
numhours
=
Math
.
floor
(((
seconds
%
31536000
)
%
86400
)
/
3600
);
if
(
numhours
){
return
numhours
+
'h'
;
}
var
numminutes
=
Math
.
floor
((((
seconds
%
31536000
)
%
86400
)
%
3600
)
/
60
);
if
(
numminutes
){
return
numminutes
+
'm'
;
}
var
numseconds
=
(((
seconds
%
31536000
)
%
86400
)
%
3600
)
%
60
;
if
(
numseconds
){
return
numseconds
+
's'
;
}
return
'less then a second'
;
//'just now' //or other string you like;
}
var
numyears
=
Math
.
floor
(
seconds
/
31536000
);
if
(
numyears
){
return
numyears
+
'y'
;
}
var
numdays
=
Math
.
floor
((
seconds
%
31536000
)
/
86400
);
if
(
numdays
){
return
numdays
+
'd'
;
}
var
numhours
=
Math
.
floor
(((
seconds
%
31536000
)
%
86400
)
/
3600
);
if
(
numhours
){
return
numhours
+
'h'
;
}
var
numminutes
=
Math
.
floor
((((
seconds
%
31536000
)
%
86400
)
%
3600
)
/
60
);
if
(
numminutes
){
return
numminutes
+
'm'
;
}
var
numseconds
=
(((
seconds
%
31536000
)
%
86400
)
%
3600
)
%
60
;
if
(
numseconds
){
return
numseconds
+
's'
;
}
return
'less then a second'
;
//'just now' //or other string you like;
}
;
kbn
.
to_percent
=
function
(
number
,
outof
)
{
return
Math
.
round
((
number
/
outof
)
*
10000
)
/
100
+
"%"
;
}
}
;
kbn
.
addslashes
=
function
(
str
)
{
str
=
str
.
replace
(
/
\\
/g
,
'
\\\
\'
);
...
...
@@ -194,37 +221,46 @@
str
=
str
.
replace
(
/
\"
/g
,
'
\\
"'
);
str
=
str
.
replace
(
/
\0
/g
,
'
\\
0'
);
return
str
;
}
}
;
// histogram & trends
kbn
.
interval_to_seconds
=
function
(
string
)
{
var
matches
=
string
.
match
(
/
(\d
+
)([
Mwdhmsy
])
/
);
switch
(
matches
[
2
])
{
case
'y'
:
return
matches
[
1
]
*
31536000
;;
case
'M'
:
return
matches
[
1
]
*
2592000
;;
case
'w'
:
return
matches
[
1
]
*
604800
;;
case
'd'
:
return
matches
[
1
]
*
86400
;;
case
'h'
:
return
matches
[
1
]
*
3600
;;
case
'm'
:
return
matches
[
1
]
*
60
;;
case
's'
:
return
matches
[
1
];
case
'y'
:
return
matches
[
1
]
*
31536000
;
case
'M'
:
return
matches
[
1
]
*
2592000
;
case
'w'
:
return
matches
[
1
]
*
604800
;
case
'd'
:
return
matches
[
1
]
*
86400
;
case
'h'
:
return
matches
[
1
]
*
3600
;
case
'm'
:
return
matches
[
1
]
*
60
;
case
's'
:
return
matches
[
1
];
}
}
}
;
// This should go away, moment.js can do this
kbn
.
time_ago
=
function
(
string
)
{
return
new
Date
(
new
Date
().
getTime
()
-
(
kbn
.
interval_to_seconds
(
string
)
*
1000
))
}
return
new
Date
(
new
Date
().
getTime
()
-
(
kbn
.
interval_to_seconds
(
string
)
*
1000
))
;
}
;
// LOL. hahahahaha. DIE.
kbn
.
flatten_json
=
function
(
object
,
root
,
array
)
{
if
(
typeof
array
===
'undefined'
)
var
array
=
{};
if
(
typeof
root
===
'undefined'
)
var
root
=
''
;
if
(
typeof
array
===
'undefined'
)
{
array
=
{};
}
if
(
typeof
root
===
'undefined'
)
{
root
=
''
;
}
for
(
var
index
in
object
)
{
var
obj
=
object
[
index
]
var
rootname
=
root
.
length
==
0
?
index
:
root
+
'.'
+
index
;
if
(
typeof
obj
==
'object'
)
{
var
obj
=
object
[
index
]
;
var
rootname
=
root
.
length
==
=
0
?
index
:
root
+
'.'
+
index
;
if
(
typeof
obj
==
=
'object'
)
{
if
(
_
.
isArray
(
obj
))
{
if
(
obj
.
length
>
0
&&
typeof
obj
[
0
]
===
'object'
)
{
var
strval
=
''
;
...
...
@@ -242,14 +278,14 @@
array
[
rootname
]
=
typeof
obj
===
'undefined'
?
null
:
obj
;
}
}
else
{
kbn
.
flatten_json
(
obj
,
rootname
,
array
)
kbn
.
flatten_json
(
obj
,
rootname
,
array
)
;
}
}
else
{
array
[
rootname
]
=
typeof
obj
===
'undefined'
?
null
:
obj
;
}
}
return
kbn
.
sortObj
(
array
);
}
}
;
kbn
.
xmlEnt
=
function
(
value
)
{
if
(
_
.
isString
(
value
))
{
...
...
@@ -266,41 +302,44 @@
}
else
{
return
value
;
}
}
}
;
kbn
.
sortObj
=
function
(
arr
)
{
// Setup Arrays
var
sortedKeys
=
new
Array
()
;
var
sortedKeys
=
[]
;
var
sortedObj
=
{};
var
i
;
// Separate keys and sort them
for
(
var
i
in
arr
)
{
for
(
i
in
arr
)
{
sortedKeys
.
push
(
i
);
}
sortedKeys
.
sort
();
// Reconstruct sorted obj based on keys
for
(
var
i
in
sortedKeys
)
{
for
(
i
in
sortedKeys
)
{
sortedObj
[
sortedKeys
[
i
]]
=
arr
[
sortedKeys
[
i
]];
}
return
sortedObj
;
}
}
;
}).
call
(
this
);
/*
UNDERSCORE.js Mixins
*/
_
.
mixin
({
move
:
function
(
array
,
fromIndex
,
toIndex
)
{
array
.
splice
(
toIndex
,
0
,
array
.
splice
(
fromIndex
,
1
)[
0
]
);
return
array
;
}
move
:
function
(
array
,
fromIndex
,
toIndex
)
{
'use strict'
;
array
.
splice
(
toIndex
,
0
,
array
.
splice
(
fromIndex
,
1
)[
0
]
);
return
array
;
}
});
_
.
mixin
({
remove
:
function
(
array
,
index
)
{
array
.
splice
(
index
,
1
);
return
array
;
}
remove
:
function
(
array
,
index
)
{
'use strict'
;
array
.
splice
(
index
,
1
);
return
array
;
}
});
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