mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of ssh://github.com/triAGENS/ArangoDB into devel
Conflicts: lib/BasicsC/process-utils.c
This commit is contained in:
commit
2044fc9c40
|
@ -29,6 +29,10 @@
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var actions = require("org/arangodb/actions");
|
var actions = require("org/arangodb/actions");
|
||||||
|
var cluster = require("org/arangodb/cluster");
|
||||||
|
var internal = require("internal");
|
||||||
|
var console = require("console");
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// --SECTION-- private functions
|
// --SECTION-- private functions
|
||||||
|
@ -662,7 +666,7 @@ actions.defineHttp({
|
||||||
});
|
});
|
||||||
|
|
||||||
actions.defineHttp({
|
actions.defineHttp({
|
||||||
url : "_admin/clusterHistory",
|
url : "_admin/history",
|
||||||
context : "admin",
|
context : "admin",
|
||||||
prefix : "false",
|
prefix : "false",
|
||||||
callback : function (req, res) {
|
callback : function (req, res) {
|
||||||
|
@ -670,26 +674,67 @@ actions.defineHttp({
|
||||||
actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0,
|
actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0,
|
||||||
"only POST requests are allowed");
|
"only POST requests are allowed");
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
if (!require("org/arangodb/cluster").isCoordinator()) {
|
|
||||||
actions.resultError(req, res, actions.HTTP_FORBIDDEN, 0,
|
|
||||||
"only allowed on coordinator");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!req.parameters.hasOwnProperty("DBserver")) {
|
|
||||||
actions.resultError(req, res, actions.HTTP_BAD,
|
|
||||||
"required parameter DBserver was not given");
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
var body = actions.getJsonBody(req, res);
|
var body = actions.getJsonBody(req, res);
|
||||||
if (body === undefined) {
|
if (body === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var DBserver = req.parameters.DBserver;
|
var DBserver = req.parameters.DBserver;
|
||||||
|
|
||||||
|
//build query
|
||||||
|
var startDate = body.startDate;
|
||||||
|
var endDate = body.endDate;
|
||||||
|
var figures = body.figures;
|
||||||
|
var filterString = "";
|
||||||
|
if (startDate) {
|
||||||
|
filterString += " filter u.time > " + startDate;
|
||||||
|
} else {
|
||||||
|
endDate = startDate;
|
||||||
|
}
|
||||||
|
if (endDate) {
|
||||||
|
filterString += " filter u.time < " + endDate;
|
||||||
|
}
|
||||||
|
if (cluster.isCoordinator() && !req.parameters.hasOwnProperty("DBserver")) {
|
||||||
|
filterString += " filter u.clusterId == '" + cluster.coordinatorId() +"'";
|
||||||
|
}
|
||||||
|
var returnValue = " return u";
|
||||||
|
if (figures) {
|
||||||
|
returnValue = " return {time : u.time, server : {uptime : u.server.uptime} ";
|
||||||
|
var groups = {};
|
||||||
|
figures.forEach(function(f) {
|
||||||
|
var g = f.split(".")[0];
|
||||||
|
if (!groups[g]) {
|
||||||
|
groups[g] = [];
|
||||||
|
}
|
||||||
|
groups[g].push(f.split(".")[1] + " : u." + f);
|
||||||
|
});
|
||||||
|
Object.keys(groups).forEach(function(key) {
|
||||||
|
returnValue += ", " + key + " : {" + groups[key] +"}";
|
||||||
|
});
|
||||||
|
returnValue += "}";
|
||||||
|
}
|
||||||
|
var myQueryVal = "FOR u in _statistics "+ filterString + " sort u.time" + returnValue;
|
||||||
|
|
||||||
|
if (!req.parameters.hasOwnProperty("DBserver")) {
|
||||||
|
var cursor = internal.AQL_QUERY(myQueryVal,
|
||||||
|
{},
|
||||||
|
{batchSize: 100000}
|
||||||
|
);
|
||||||
|
res.contentType = "application/json; charset=utf-8";
|
||||||
|
if (cursor instanceof Error) {
|
||||||
|
res.responseCode = actions.HTTP_BAD;
|
||||||
|
res.body = JSON.stringify( {"error":true,
|
||||||
|
"errorMessage": "an error occured"});
|
||||||
|
}
|
||||||
|
res.responseCode = actions.HTTP_OK;
|
||||||
|
res.body = JSON.stringify({result : cursor.docs});
|
||||||
|
} else {
|
||||||
|
var DBserver = req.parameters.DBserver;
|
||||||
var coord = { coordTransactionID: ArangoClusterInfo.uniqid() };
|
var coord = { coordTransactionID: ArangoClusterInfo.uniqid() };
|
||||||
var options = { coordTransactionID: coord.coordTransactionID, timeout:10 };
|
var options = { coordTransactionID: coord.coordTransactionID, timeout:10 };
|
||||||
var op = ArangoClusterComm.asyncRequest("POST","server:"+DBserver,"_system",
|
var op = ArangoClusterComm.asyncRequest("POST","server:"+DBserver,"_system",
|
||||||
"/_api/cursor",JSON.stringify(body),{},options);
|
"/_api/cursor",JSON.stringify({query: myQueryVal, batchSize: 100000}),{},options);
|
||||||
var r = ArangoClusterComm.wait(op);
|
var r = ArangoClusterComm.wait(op);
|
||||||
res.contentType = "application/json; charset=utf-8";
|
res.contentType = "application/json; charset=utf-8";
|
||||||
if (r.status === "RECEIVED") {
|
if (r.status === "RECEIVED") {
|
||||||
|
@ -714,6 +759,7 @@ actions.defineHttp({
|
||||||
"body": bodyobj} );
|
"body": bodyobj} );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
.disabledBtn {
|
|
||||||
opacity: 0.4 !important;
|
|
||||||
cursor: default !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#collectionPrev, #collectionNext{
|
#collectionPrev, #collectionNext{
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
@ -38,19 +33,6 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
#addDocumentLine {
|
|
||||||
padding-top: 7px;
|
|
||||||
padding-right: 0;
|
|
||||||
margin-right: -1px;
|
|
||||||
float: right;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
#addDocumentLine:hover,
|
|
||||||
#sourceView:hover {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
table.dataTable thead th {
|
table.dataTable thead th {
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,15 +114,6 @@
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modalTooltips span {
|
|
||||||
font-size: 20px;
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modalTooltips span:hover {
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infoTab, #collectionTab{
|
#infoTab, #collectionTab{
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
|
|
|
@ -212,51 +212,29 @@
|
||||||
window.arangoDocumentsStore.reset();
|
window.arangoDocumentsStore.reset();
|
||||||
},
|
},
|
||||||
getStatisticsHistory: function(params) {
|
getStatisticsHistory: function(params) {
|
||||||
var startDate = params.startDate;
|
var self = this;
|
||||||
var endDate = params.endDate;
|
var body = {
|
||||||
|
startDate : params.startDate,
|
||||||
|
endDate : params.endDate,
|
||||||
|
figures : params.figures
|
||||||
|
};
|
||||||
var server = params.server;
|
var server = params.server;
|
||||||
var url = "";
|
var url = "";
|
||||||
var figures = params.figures;
|
|
||||||
var self = this;
|
|
||||||
var filterString = "";
|
|
||||||
if (startDate) {
|
|
||||||
filterString += " filter u.time > " + startDate;
|
|
||||||
} else {
|
|
||||||
endDate = startDate;
|
|
||||||
}
|
|
||||||
if (endDate) {
|
|
||||||
filterString += " filter u.time < " + endDate;
|
|
||||||
}
|
|
||||||
var returnValue = " return u";
|
|
||||||
if (figures) {
|
|
||||||
returnValue = " return {time : u.time, server : {uptime : u.server.uptime} ";
|
|
||||||
var groups = {};
|
|
||||||
figures.forEach(function(f) {
|
|
||||||
var g = f.split(".")[0];
|
|
||||||
if (!groups[g]) {
|
|
||||||
groups[g] = [];
|
|
||||||
}
|
|
||||||
groups[g].push(f.split(".")[1] + " : u." + f);
|
|
||||||
});
|
|
||||||
Object.keys(groups).forEach(function(key) {
|
|
||||||
returnValue += ", " + key + " : {" + groups[key] +"}";
|
|
||||||
});
|
|
||||||
returnValue += "}";
|
|
||||||
}
|
|
||||||
var myQueryVal = "FOR u in _statistics "+ filterString + " sort u.time" + returnValue;
|
|
||||||
if (server) {
|
if (server) {
|
||||||
url = server.endpoint;
|
url = server.endpoint;
|
||||||
url += "/_admin/clusterHistory";
|
url += "/_admin/history";
|
||||||
|
if (server.isDBServer) {
|
||||||
url += "?DBserver=" + server.target;
|
url += "?DBserver=" + server.target;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
url = "/_api/cursor";
|
url = "/_admin/history";
|
||||||
}
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
cache: false,
|
cache: false,
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
async: false,
|
async: false,
|
||||||
url: url,
|
url: url,
|
||||||
data: JSON.stringify({query: myQueryVal, batchSize: 10000}),
|
data: JSON.stringify(body),
|
||||||
contentType: "application/json",
|
contentType: "application/json",
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
self.history = data.result;
|
self.history = data.result;
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<th>
|
<th>
|
||||||
<div>
|
<div>
|
||||||
<a class="modalTooltips" data-toggle="tooltip" data-placement="left" title="The maximal size of a journal or datafile (in MB). Must be at least 1.">
|
<a class="modalTooltips" data-toggle="tooltip" data-placement="left" title="The maximal size of a journal or datafile (in MB). Must be at least 1.">
|
||||||
<span rel="tooltip" class="arangoicon icon_arangodb_info" style="color:black"></span>
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<th>
|
<th>
|
||||||
<div>
|
<div>
|
||||||
<a class="modalTooltips" data-toggle="tooltip" data-placement="left" title="Synchronise to disk before returning from a create or update of a document.">
|
<a class="modalTooltips" data-toggle="tooltip" data-placement="left" title="Synchronise to disk before returning from a create or update of a document.">
|
||||||
<span class="arangoicon icon_arangodb_info" style="color:black"></span>
|
<span class="arangoicon icon_arangodb_info"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</th>
|
</th>
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
<th><input type="text" id="newCapSize" value=""/></th>
|
<th><input type="text" id="newCapSize" value=""/></th>
|
||||||
<th class="tooltipInfoTh">
|
<th class="tooltipInfoTh">
|
||||||
<div>
|
<div>
|
||||||
<a class="modalInfoTooltips" data-toggle="tooltip" data-placement="left" title="The maximal number of documents for the collection.">
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="The maximal number of documents for the collection.">
|
||||||
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<th><input type="text" id="newCapByteSize" value=""/></th>
|
<th><input type="text" id="newCapByteSize" value=""/></th>
|
||||||
<th class="tooltipInfoTh">
|
<th class="tooltipInfoTh">
|
||||||
<div>
|
<div>
|
||||||
<a class="modalInfoTooltips" data-toggle="tooltip" data-placement="left" title="The maximal size of the active document data in the collection.">
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="The maximal size of the active document data in the collection. (min = 16384)">
|
||||||
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -128,28 +128,51 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Fields:</th>
|
<th class="collectionTh">Fields:</th>
|
||||||
<th><input type="text" id="newGeoFields" value=""/></th>
|
<th><input type="text" id="newGeoFields" value=""/></th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="A list with one or two attribute paths."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="A list with one or two attribute paths.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Geo JSON:</th>
|
<th class="collectionTh">Geo JSON:</th>
|
||||||
<th>
|
<th>
|
||||||
<input id="newGeoJson" type="checkbox" name="newGeoJson" value="true">
|
<input id="newGeoJson" type="checkbox" name="newGeoJson" value="true">
|
||||||
</th>
|
</th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="If a geo-spatial index on a location is constructed and geoJson is true, then the order within the list is longitude followed by latitude."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="If a geo-spatial index on a location is constructed and geoJson is true, then the order within the list is longitude followed by latitude.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Constraint:</th>
|
<th class="collectionTh">Constraint:</th>
|
||||||
<th>
|
<th>
|
||||||
<input id="newGeoConstraint" type="checkbox" name="newGeoConstraint" value="true">
|
<input id="newGeoConstraint" type="checkbox" name="newGeoConstraint" value="true">
|
||||||
</th>
|
</th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="If constraint is true, then a geo-spatial constraint is created."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="If constraint is true, then a geo-spatial constraint is created.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Ignore Null:</th>
|
<th class="collectionTh">Ignore Null:</th>
|
||||||
<th>
|
<th>
|
||||||
<input id="newGeoIgnoreNull" type="checkbox" name="newGeoIgnoreNull" value="true">
|
<input id="newGeoIgnoreNull" type="checkbox" name="newGeoIgnoreNull" value="true">
|
||||||
</th>
|
</th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="If a geo-spatial constraint is created and ignoreNull is true, then documents with a null in location or at least one null in latitude or longitude are ignored."/>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="If a geo-spatial constraint is created and ignoreNull is true, then documents with a null in location or at least one null in latitude or longitude are ignored.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -160,14 +183,25 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Fields:</th>
|
<th class="collectionTh">Fields:</th>
|
||||||
<th><input type="text" id="newHashFields" value=""/></th>
|
<th><input type="text" id="newHashFields" value=""/></th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="A list of attribute paths."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="A list of attribute paths.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Unique:</th>
|
<th class="collectionTh">Unique:</th>
|
||||||
<th>
|
<th>
|
||||||
<input id="newHashUnique" type="checkbox" name="newHashUnique" value="true">
|
<input id="newHashUnique" type="checkbox" name="newHashUnique" value="true">
|
||||||
</th>
|
</th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="If true, then create a unique index."/>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="If true, then create a unique index.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
@ -177,12 +211,24 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Fields:</th>
|
<th class="collectionTh">Fields:</th>
|
||||||
<th><input type="text" id="newFulltextFields" value=""/></th>
|
<th><input type="text" id="newFulltextFields" value=""/></th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="A list of attribute names. Currently, the list is limited to exactly one attribute, so the value of fields should look like this for example: [ "text" ]."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title='A list of attribute names. Currently, the list is limited to exactly one attribute, so the value of fields should look like this for example: [ "text" ].'>
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Min. length:</th>
|
<th class="collectionTh">Min. length:</th>
|
||||||
<th><input type="text" id="newFulltextMinLength" value=""/></th>
|
<th><input type="text" id="newFulltextMinLength" value=""/></th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="Minimum character length of words to index. Will default to a server-defined value if unspecified. It is thus recommended to set this value explicitly when creating the index."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="Minimum character length of words to index. Will default to a server-defined value if unspecified. It is thus recommended to set this value explicitly when creating the index.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -193,14 +239,25 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Fields:</th>
|
<th class="collectionTh">Fields:</th>
|
||||||
<th><input type="text" id="newSkiplistFields" value=""/></th>
|
<th><input type="text" id="newSkiplistFields" value=""/></th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="A list of attribute paths."/></th>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="A list of attribute paths.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="collectionTh">Unique:</th>
|
<th class="collectionTh">Unique:</th>
|
||||||
<th>
|
<th>
|
||||||
<input id="newSkiplistUnique" type="checkbox" name="newSkiplistUnique" value="true">
|
<input id="newSkiplistUnique" type="checkbox" name="newSkiplistUnique" value="true">
|
||||||
</th>
|
</th>
|
||||||
<th><span class="icon_arangodb_info arangoicon" data-original-title="If true, then create a unique index."/>
|
<th class="tooltipInfoTh">
|
||||||
|
<div>
|
||||||
|
<a class="indexTooltip" data-toggle="tooltip" data-placement="left" title="If true, then create a unique index.">
|
||||||
|
<span rel="tooltip" class="arangoicon icon_arangodb_info"></span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -61,7 +61,6 @@
|
||||||
contentEl: '.contentDiv',
|
contentEl: '.contentDiv',
|
||||||
distributionChartDiv : "#distributionChartDiv",
|
distributionChartDiv : "#distributionChartDiv",
|
||||||
interval: 12000, // in milliseconds
|
interval: 12000, // in milliseconds
|
||||||
defaultRollPeriod : 1,
|
|
||||||
detailTemplate: templateEngine.createTemplate("lineChartDetailView.ejs"),
|
detailTemplate: templateEngine.createTemplate("lineChartDetailView.ejs"),
|
||||||
detailEl: '#modalPlaceholder',
|
detailEl: '#modalPlaceholder',
|
||||||
|
|
||||||
|
@ -411,7 +410,6 @@
|
||||||
dateWindow : [new Date().getTime() - 20 * 60 * 1000,new Date().getTime()],
|
dateWindow : [new Date().getTime() - 20 * 60 * 1000,new Date().getTime()],
|
||||||
colors: [this.colors[0]],
|
colors: [this.colors[0]],
|
||||||
xAxisLabelWidth : "60",
|
xAxisLabelWidth : "60",
|
||||||
rollPeriod: 3,
|
|
||||||
rightGap: 10,
|
rightGap: 10,
|
||||||
showRangeSelector: false,
|
showRangeSelector: false,
|
||||||
rangeSelectorHeight: 40,
|
rangeSelectorHeight: 40,
|
||||||
|
@ -487,6 +485,7 @@
|
||||||
var time = entry.time * 1000;
|
var time = entry.time * 1000;
|
||||||
var newUptime = entry.server.uptime;
|
var newUptime = entry.server.uptime;
|
||||||
if (self.uptime && newUptime < self.uptime) {
|
if (self.uptime && newUptime < self.uptime) {
|
||||||
|
|
||||||
var e = {time : (time-(newUptime+10)* 1000 ) /1000};
|
var e = {time : (time-(newUptime+10)* 1000 ) /1000};
|
||||||
self.description.get("figures").forEach(function(figure) {
|
self.description.get("figures").forEach(function(figure) {
|
||||||
if (!e[figure.group]) {
|
if (!e[figure.group]) {
|
||||||
|
@ -583,7 +582,7 @@
|
||||||
|
|
||||||
|
|
||||||
updateSeries : function(data) {
|
updateSeries : function(data) {
|
||||||
this.uptime = data.system.uptime;
|
this.uptime = data.server.uptime;
|
||||||
this.processSingleStatistic(data);
|
this.processSingleStatistic(data);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -14,3 +14,11 @@
|
||||||
.waitModalBackdrop {
|
.waitModalBackdrop {
|
||||||
opacity: 0.7 !important;
|
opacity: 0.7 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modalTooltips span {
|
||||||
|
font-size: 20px;
|
||||||
|
color: $c_btn_inverse;
|
||||||
|
&:hover {
|
||||||
|
color: $c_black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -4,4 +4,12 @@
|
||||||
white-space: normal !important;
|
white-space: normal !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.indexTooltip {
|
||||||
|
color: $c_btn_inverse;
|
||||||
|
&:hover {
|
||||||
|
color: $c_black;
|
||||||
|
}
|
||||||
|
span.arangoicon {
|
||||||
|
font-size: 18px !important;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1024,6 +1024,13 @@ select.filterSelect {
|
||||||
word-wrap: break-word !important;
|
word-wrap: break-word !important;
|
||||||
white-space: normal !important; }
|
white-space: normal !important; }
|
||||||
|
|
||||||
|
.indexTooltip {
|
||||||
|
color: #736b68; }
|
||||||
|
.indexTooltip:hover {
|
||||||
|
color: black; }
|
||||||
|
.indexTooltip span.arangoicon {
|
||||||
|
font-size: 18px !important; }
|
||||||
|
|
||||||
.dbselection {
|
.dbselection {
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
@ -1122,6 +1129,12 @@ select.filterSelect {
|
||||||
.waitModalBackdrop {
|
.waitModalBackdrop {
|
||||||
opacity: 0.7 !important; }
|
opacity: 0.7 !important; }
|
||||||
|
|
||||||
|
.modalTooltips span {
|
||||||
|
font-size: 20px;
|
||||||
|
color: #736b68; }
|
||||||
|
.modalTooltips span:hover {
|
||||||
|
color: black; }
|
||||||
|
|
||||||
div img.searchSubmitIcon {
|
div img.searchSubmitIcon {
|
||||||
height: 14px;
|
height: 14px;
|
||||||
margin-left: -18px;
|
margin-left: -18px;
|
||||||
|
|
|
@ -958,10 +958,22 @@ var dispatcherDisabled = function () {
|
||||||
return ArangoServerState.disableDispatcherFrontend();
|
return ArangoServerState.disableDispatcherFrontend();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief coordinatorId
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
var coordinatorId= function () {
|
||||||
|
if (! isCoordinator()) {
|
||||||
|
console.error("not a coordinator");
|
||||||
|
}
|
||||||
|
return ArangoServerState.id();
|
||||||
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// --SECTION-- MODULE EXPORTS
|
// --SECTION-- MODULE EXPORTS
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
exports.coordinatorId = coordinatorId;
|
||||||
exports.dispatcherDisabled = dispatcherDisabled;
|
exports.dispatcherDisabled = dispatcherDisabled;
|
||||||
exports.handlePlanChange = handlePlanChange;
|
exports.handlePlanChange = handlePlanChange;
|
||||||
exports.isCluster = isCluster;
|
exports.isCluster = isCluster;
|
||||||
|
|
Loading…
Reference in New Issue