mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
84e53cb40a
|
@ -63,7 +63,7 @@ struct OperationResult {
|
|||
OperationResult(std::shared_ptr<VPackBuffer<uint8_t>> buffer,
|
||||
std::shared_ptr<VPackCustomTypeHandler> handler,
|
||||
std::string const& message, int code, bool wasSynchronous,
|
||||
std::unordered_map<int, size_t> countErrorCodes)
|
||||
std::unordered_map<int, size_t> const& countErrorCodes)
|
||||
: buffer(buffer),
|
||||
customTypeHandler(handler),
|
||||
errorMessage(message),
|
||||
|
|
|
@ -1506,6 +1506,16 @@ OperationResult Transaction::modifyLocal(
|
|||
TRI_voc_cid_t cid = addCollectionAtRuntime(collectionName);
|
||||
TRI_document_collection_t* document = documentCollection(trxCollection(cid));
|
||||
|
||||
// First see whether or not we have to do synchronous replication:
|
||||
std::shared_ptr<std::vector<ServerID> const> followers;
|
||||
bool doingSynchronousReplication = false;
|
||||
if (ServerState::instance()->isDBServer()) {
|
||||
// Now replicate the same operation on all followers:
|
||||
auto const& followerInfo = document->followers();
|
||||
followers = followerInfo->get();
|
||||
doingSynchronousReplication = followers->size() > 0;
|
||||
}
|
||||
|
||||
// Update/replace are a read and a write, let's get the write lock already
|
||||
// for the read operation:
|
||||
int res = lock(trxCollection(cid), TRI_TRANSACTION_WRITE);
|
||||
|
@ -1536,7 +1546,7 @@ OperationResult Transaction::modifyLocal(
|
|||
|
||||
if (res == TRI_ERROR_ARANGO_CONFLICT) {
|
||||
// still return
|
||||
if (!options.silent && !isBabies) {
|
||||
if ((!options.silent || doingSynchronousReplication) && !isBabies) {
|
||||
std::string key = newVal.get(TRI_VOC_ATTRIBUTE_KEY).copyString();
|
||||
buildDocumentIdentity(resultBuilder, cid, key, actualRevision,
|
||||
VPackSlice(),
|
||||
|
@ -1549,7 +1559,7 @@ OperationResult Transaction::modifyLocal(
|
|||
|
||||
TRI_ASSERT(mptr.getDataPtr() != nullptr);
|
||||
|
||||
if (!options.silent) {
|
||||
if (!options.silent || doingSynchronousReplication) {
|
||||
std::string key = newVal.get(TRI_VOC_ATTRIBUTE_KEY).copyString();
|
||||
buildDocumentIdentity(resultBuilder, cid, key,
|
||||
mptr.revisionIdAsSlice(), actualRevision,
|
||||
|
@ -1560,10 +1570,11 @@ OperationResult Transaction::modifyLocal(
|
|||
};
|
||||
|
||||
res = TRI_ERROR_NO_ERROR;
|
||||
|
||||
if (newValue.isArray()) {
|
||||
bool multiCase = newValue.isArray();
|
||||
std::unordered_map<int, size_t> errorCounter;
|
||||
resultBuilder.openArray();
|
||||
if (multiCase) {
|
||||
{
|
||||
VPackArrayBuilder guard(&resultBuilder);
|
||||
VPackArrayIterator it(newValue);
|
||||
while (it.valid()) {
|
||||
res = workForOneDocument(it.value(), true);
|
||||
|
@ -1572,14 +1583,103 @@ OperationResult Transaction::modifyLocal(
|
|||
}
|
||||
++it;
|
||||
}
|
||||
resultBuilder.close();
|
||||
return OperationResult(resultBuilder.steal(), nullptr, "", TRI_ERROR_NO_ERROR,
|
||||
options.waitForSync, errorCounter);
|
||||
}
|
||||
res = TRI_ERROR_NO_ERROR;
|
||||
} else {
|
||||
res = workForOneDocument(newValue, false);
|
||||
return OperationResult(resultBuilder.steal(), nullptr, "", res,
|
||||
options.waitForSync);
|
||||
}
|
||||
|
||||
if (doingSynchronousReplication && res == TRI_ERROR_NO_ERROR) {
|
||||
// In the multi babies case res is always TRI_ERROR_NO_ERROR if we
|
||||
// get here, in the single document case, we do not try to replicate
|
||||
// in case of an error.
|
||||
|
||||
// Now replicate the good operations on all followers:
|
||||
auto cc = arangodb::ClusterComm::instance();
|
||||
|
||||
std::string path
|
||||
= "/_db/" +
|
||||
arangodb::basics::StringUtils::urlEncode(_vocbase->_name) +
|
||||
"/_api/document/" +
|
||||
arangodb::basics::StringUtils::urlEncode(document->_info.name())
|
||||
+ "?isRestore=true";
|
||||
|
||||
VPackBuilder payload;
|
||||
|
||||
auto doOneDoc = [&](VPackSlice doc, VPackSlice result) {
|
||||
VPackObjectBuilder guard(&payload);
|
||||
TRI_SanitizeObject(doc, payload);
|
||||
VPackSlice s = result.get(TRI_VOC_ATTRIBUTE_KEY);
|
||||
payload.add(TRI_VOC_ATTRIBUTE_KEY, s);
|
||||
s = result.get(TRI_VOC_ATTRIBUTE_REV);
|
||||
payload.add(TRI_VOC_ATTRIBUTE_REV, s);
|
||||
};
|
||||
|
||||
VPackSlice ourResult = resultBuilder.slice();
|
||||
if (multiCase) {
|
||||
VPackArrayBuilder guard(&payload);
|
||||
VPackArrayIterator itValue(newValue);
|
||||
VPackArrayIterator itResult(ourResult);
|
||||
while (itValue.valid() && itResult.valid()) {
|
||||
TRI_ASSERT((*itResult).isObject());
|
||||
if (!(*itResult).hasKey("error")) {
|
||||
doOneDoc(itValue.value(), itResult.value());
|
||||
}
|
||||
itValue.next();
|
||||
itResult.next();
|
||||
}
|
||||
} else {
|
||||
VPackArrayBuilder guard(&payload);
|
||||
doOneDoc(newValue, ourResult);
|
||||
}
|
||||
auto body = std::make_shared<std::string>();
|
||||
*body = payload.slice().toJson();
|
||||
|
||||
// Now prepare the requests:
|
||||
std::vector<ClusterCommRequest> requests;
|
||||
for (auto const& f : *followers) {
|
||||
requests.emplace_back("server:" + f,
|
||||
operation == TRI_VOC_DOCUMENT_OPERATION_REPLACE ?
|
||||
arangodb::GeneralRequest::RequestType::PUT :
|
||||
arangodb::GeneralRequest::RequestType::PATCH,
|
||||
path, body);
|
||||
}
|
||||
size_t nrDone = 0;
|
||||
size_t nrGood = cc->performRequests(requests, 15.0, nrDone,
|
||||
Logger::REPLICATION);
|
||||
if (nrGood < followers->size()) {
|
||||
// we drop all followers that were not successful:
|
||||
for (size_t i = 0; i < followers->size(); ++i) {
|
||||
bool replicationWorked
|
||||
= requests[i].done &&
|
||||
requests[i].result.status == CL_COMM_RECEIVED &&
|
||||
(requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::ACCEPTED &&
|
||||
requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::OK);
|
||||
if (replicationWorked) {
|
||||
bool found;
|
||||
requests[i].result.answer->header("x-arango-error-codes", found);
|
||||
replicationWorked = !found;
|
||||
}
|
||||
if (!replicationWorked) {
|
||||
auto const& followerInfo = document->followers();
|
||||
followerInfo->remove((*followers)[i]);
|
||||
LOG_TOPIC(ERR, Logger::REPLICATION)
|
||||
<< "modifyLocal: dropping follower "
|
||||
<< (*followers)[i] << " for shard " << collectionName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (doingSynchronousReplication && options.silent) {
|
||||
// We needed the results, but do not want to report:
|
||||
resultBuilder.clear();
|
||||
}
|
||||
|
||||
return OperationResult(resultBuilder.steal(), nullptr, "", res,
|
||||
options.waitForSync, errorCounter);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -1802,7 +1902,7 @@ OperationResult Transaction::removeLocal(std::string const& collectionName,
|
|||
(requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::ACCEPTED &&
|
||||
requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::CREATED);
|
||||
GeneralResponse::ResponseCode::OK);
|
||||
if (replicationWorked) {
|
||||
bool found;
|
||||
requests[i].result.answer->header("x-arango-error-codes", found);
|
||||
|
@ -1812,7 +1912,7 @@ OperationResult Transaction::removeLocal(std::string const& collectionName,
|
|||
auto const& followerInfo = document->followers();
|
||||
followerInfo->remove((*followers)[i]);
|
||||
LOG_TOPIC(ERR, Logger::REPLICATION)
|
||||
<< "insertLocal: dropping follower "
|
||||
<< "removeLocal: dropping follower "
|
||||
<< (*followers)[i] << " for shard " << collectionName;
|
||||
}
|
||||
}
|
||||
|
@ -1981,6 +2081,57 @@ OperationResult Transaction::truncateLocal(std::string const& collectionName,
|
|||
return OperationResult(ex.code());
|
||||
}
|
||||
|
||||
// Now see whether or not we have to do synchronous replication:
|
||||
if (ServerState::instance()->isDBServer()) {
|
||||
std::shared_ptr<std::vector<ServerID> const> followers;
|
||||
// Now replicate the same operation on all followers:
|
||||
auto const& followerInfo = document->followers();
|
||||
followers = followerInfo->get();
|
||||
if (followers->size() > 0) {
|
||||
|
||||
// Now replicate the good operations on all followers:
|
||||
auto cc = arangodb::ClusterComm::instance();
|
||||
|
||||
std::string path
|
||||
= "/_db/" +
|
||||
arangodb::basics::StringUtils::urlEncode(_vocbase->_name) +
|
||||
"/_api/collection/" + collectionName + "/truncate";
|
||||
|
||||
auto body = std::make_shared<std::string>();
|
||||
|
||||
// Now prepare the requests:
|
||||
std::vector<ClusterCommRequest> requests;
|
||||
for (auto const& f : *followers) {
|
||||
requests.emplace_back("server:" + f,
|
||||
arangodb::GeneralRequest::RequestType::PUT,
|
||||
path, body);
|
||||
}
|
||||
size_t nrDone = 0;
|
||||
size_t nrGood = cc->performRequests(requests, 15.0, nrDone,
|
||||
Logger::REPLICATION);
|
||||
if (nrGood < followers->size()) {
|
||||
// we drop all followers that were not successful:
|
||||
for (size_t i = 0; i < followers->size(); ++i) {
|
||||
bool replicationWorked
|
||||
= requests[i].done &&
|
||||
requests[i].result.status == CL_COMM_RECEIVED &&
|
||||
(requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::ACCEPTED &&
|
||||
requests[i].result.answer_code !=
|
||||
GeneralResponse::ResponseCode::OK);
|
||||
if (!replicationWorked) {
|
||||
auto const& followerInfo = document->followers();
|
||||
followerInfo->remove((*followers)[i]);
|
||||
LOG_TOPIC(ERR, Logger::REPLICATION)
|
||||
<< "truncateLocal: dropping follower "
|
||||
<< (*followers)[i] << " for shard " << collectionName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
res = unlock(trxCollection(cid), TRI_TRANSACTION_WRITE);
|
||||
|
||||
if (res != TRI_ERROR_NO_ERROR) {
|
||||
|
|
|
@ -8398,6 +8398,7 @@ function GraphViewerUI(container, adapterConfig, optWidth, optHeight, viewerConf
|
|||
},
|
||||
|
||||
createSVG = function () {
|
||||
console.log(height);
|
||||
return d3.select("#" + container.id + " #background")
|
||||
.append("svg")
|
||||
.attr("id", "graphViewerSVG")
|
||||
|
@ -8569,8 +8570,8 @@ function GraphViewerUI(container, adapterConfig, optWidth, optHeight, viewerConf
|
|||
|
||||
buttons.id = "modifiers";
|
||||
|
||||
title.appendChild(document.createTextNode("Graph Viewer"));
|
||||
title.className = "arangoHeader";
|
||||
//title.appendChild(document.createTextNode("Graph Viewer"));
|
||||
//title.className = "arangoHeader";
|
||||
|
||||
/*
|
||||
nodeShaperDropDown.id = "nodeshapermenu";
|
||||
|
@ -8584,7 +8585,7 @@ function GraphViewerUI(container, adapterConfig, optWidth, optHeight, viewerConf
|
|||
menubar.appendChild(configureLists.filter);
|
||||
menubar.appendChild(configureLists.node);
|
||||
transparentHeader.appendChild(buttons);
|
||||
transparentHeader.appendChild(title);
|
||||
//transparentHeader.appendChild(title);
|
||||
|
||||
adapterUI.addControlChangeGraph(function() {
|
||||
updateAttributeExamples();
|
||||
|
@ -16634,7 +16635,7 @@ var __fs__=require("fs");var __rcf__=__fs__.join(__fs__.home(),".arangosh.rc");i
|
|||
},
|
||||
|
||||
residentSize: {
|
||||
header: "Resident Size",
|
||||
header: "Memory",
|
||||
axes: {
|
||||
y: {
|
||||
labelsKMG2: false,
|
||||
|
@ -16720,7 +16721,7 @@ var __fs__=require("fs");var __rcf__=__fs__.join(__fs__.home(),".arangosh.rc");i
|
|||
|
||||
requests: {
|
||||
header: "Requests",
|
||||
labels: ["datetime", "REQUESTS"],
|
||||
labels: ["datetime", "Reads", "Writes"],
|
||||
stackedGraph: true,
|
||||
div: "requestsChart",
|
||||
axes: {
|
||||
|
@ -22644,16 +22645,23 @@ window.ArangoUsers = Backbone.Collection.extend({
|
|||
if (valueList.length > 1) {
|
||||
|
||||
// HTTP requests combine all types to one
|
||||
// 0: date, 1: GET", 2: "PUT", 3: "POST", 4: "DELETE", 5: "PATCH",
|
||||
// 6: "HEAD", 7: "OPTIONS", 8: "OTHER"
|
||||
//
|
||||
var read = 0, write = 0;
|
||||
if (valueList.length === 9) {
|
||||
var counter = 0, sum = 0;
|
||||
|
||||
_.each(valueList, function(value) {
|
||||
if (counter !== 0) {
|
||||
sum += value;
|
||||
}
|
||||
counter++;
|
||||
});
|
||||
valueList = [valueList[0], sum];
|
||||
read += valueList[1];
|
||||
read += valueList[6];
|
||||
read += valueList[7];
|
||||
read += valueList[8];
|
||||
|
||||
write += valueList[2];
|
||||
write += valueList[3];
|
||||
write += valueList[4];
|
||||
write += valueList[5];
|
||||
|
||||
valueList = [valueList[0], read, write];
|
||||
}
|
||||
|
||||
self.history[self.server][f].push(valueList);
|
||||
|
@ -25243,19 +25251,6 @@ window.ArangoUsers = Backbone.Collection.extend({
|
|||
if (navElement) {
|
||||
window.clearTimeout(timer);
|
||||
timer = null;
|
||||
|
||||
if (name === '_system') {
|
||||
// show "logs" button
|
||||
$('.logs-menu').css('visibility', 'visible');
|
||||
$('.logs-menu').css('display', 'inline');
|
||||
// show dbs menues
|
||||
$('#databaseNavi').css('display','inline');
|
||||
}
|
||||
else {
|
||||
// hide "logs" button
|
||||
$('.logs-menu').css('visibility', 'hidden');
|
||||
$('.logs-menu').css('display', 'none');
|
||||
}
|
||||
self.render();
|
||||
}
|
||||
}, 50);
|
||||
|
@ -25863,7 +25858,7 @@ window.ArangoUsers = Backbone.Collection.extend({
|
|||
|
||||
var height = arangoHelper.calculateCenterDivHeight();
|
||||
|
||||
this.ui = new GraphViewerUI($("#content")[0], adapterConfig, width, height, {
|
||||
this.ui = new GraphViewerUI($("#content")[0], adapterConfig, width, $('.centralRow').height() - 135, {
|
||||
nodeShaper: {
|
||||
label: "_key",
|
||||
color: {
|
||||
|
@ -30276,7 +30271,7 @@ window.ArangoUsers = Backbone.Collection.extend({
|
|||
"aqlEditor", "queryTable", "previewWrapper", "querySpotlight",
|
||||
"bindParamEditor", "toggleQueries1", "toggleQueries2",
|
||||
"saveCurrentQuery", "querySize", "executeQuery", "switchTypes",
|
||||
"explainQuery", "clearQuery", "importQuery", "exportQuery"
|
||||
"explainQuery", "importQuery", "exportQuery"
|
||||
];
|
||||
_.each(divs, function(div) {
|
||||
$("#" + div).toggle();
|
||||
|
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -585,7 +585,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dashboard-sub-bar"">Resident Size</div>
|
||||
<div class="dashboard-sub-bar"">Memory</div>
|
||||
</div>
|
||||
|
||||
<% tendency("Virtual Size in GB", "virtualSize", false); %>
|
||||
|
@ -728,6 +728,7 @@
|
|||
|
||||
<% if (name !== '_system') { %>
|
||||
<div class="tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6">
|
||||
<div class="fullBorderBox" style="border: 0;">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editDatabase" id="<%=name %>_edit-database" alt="Edit database" title="Edit database"></span>
|
||||
|
@ -737,6 +738,7 @@
|
|||
</div>
|
||||
<h5 class="collectionName" style="margin-left: 0; margin-right: 0;"><%=name %></h5>
|
||||
</div>
|
||||
</div>
|
||||
<%};%>
|
||||
|
||||
<%});%>
|
||||
|
@ -1197,17 +1199,18 @@ if (list.length > 0) {
|
|||
%>
|
||||
|
||||
<div class="tile tile-graph pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6" id="<%=graphName %>_tile">
|
||||
<div class="paddingBox">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editGraph" id="<%=graphName %>_settings" alt="Edit graph" title="Edit graph"></span>
|
||||
</div>
|
||||
<span class="icon_arangodb_edge5 tile-icon"></span>
|
||||
<span class="icon_arangodb_edge5 icon_arangodb_edge5-2 tile-icon"></span>
|
||||
<div class="tileBadge">
|
||||
</div>
|
||||
|
||||
<div class="tileBadge"></div>
|
||||
<h5 class="collectionName"><%=graphName %></h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%});%>
|
||||
</div>
|
||||
</div></script><script id="graphViewGroupByEntry.ejs" type="text/template"><div class="control-group">
|
||||
|
@ -1217,7 +1220,8 @@ if (list.length > 0) {
|
|||
<button id="remove_<%=type %>_<%=id%>" class="graphViewer-icon-button gv_internal_remove_line gv-icon-small delete" />
|
||||
</div>
|
||||
</div></script><script id="helpUsView.ejs" type="text/template"><div class="helpUs">
|
||||
<div class="_form_87"></div><script src="https://arangodb.activehosted.com/f/embed.php?id=87" type="text/javascript" charset="utf-8"></script><script id="indicesView.ejs" type="text/template"><div class="contentIn" id="indexHeaderContent">
|
||||
<iframe src="https://docs.google.com/forms/d/1vsIwy0mJSeToEnfo_jnBaQebewbcURL730IkZIrkyEE/viewform?embedded=true" scrolling="no" width="100%" height="1300px" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
|
||||
</div></script><script id="indicesView.ejs" type="text/template"><div class="contentIn" id="indexHeaderContent">
|
||||
<div id="indexEditView">
|
||||
<table id="collectionEditIndexTable" class="edit-index-table">
|
||||
<thead>
|
||||
|
@ -2300,11 +2304,9 @@ if (list.length > 0) {
|
|||
<% } %>
|
||||
</div></script><script id="navigationView.ejs" type="text/template"><ul class="navlist arango-collection-ul" id="arangoCollectionUl">
|
||||
<% if (isCluster) { %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="cluster-menu"><a id="cluster" class="tab" href="#cluster"><i class="fa fa-circle-o"></i>Cluster</a></li>
|
||||
<li class="nodes-menu"><a id="nodes" class="tab" href="#cNodes"><i class="fa fa-server"></i>Nodes</a></li>
|
||||
<% } else { %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="dashboard-menu"><a id="dashboard" class="tab" href="#dashboard"><i class="fa fa-dashboard"></i>Dashboard</a></li>
|
||||
<% } %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
|
@ -2329,7 +2331,7 @@ if (list.length > 0) {
|
|||
<li class="databases-menu"><a id="databases" class="tab" href="#databases"><i class="fa fa-database"></i>Databases</a></li>
|
||||
<% } %>
|
||||
<% if (!isCluster) { %>
|
||||
<li class="logs-menu"><a id="logs" class="tab" href="#manage"><i class="fa fa-file-text"></i>Logs</a></li>
|
||||
<li class="logs-menu"><a id="logs" class="tab" href="#logs"><i class="fa fa-file-text"></i>Logs</a></li>
|
||||
<% } %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="helpus-menu"><a id="helpus" class="tab" href="#helpus"><i class="fa fa-heart"></i>Help Us</a></li>
|
||||
|
@ -2344,12 +2346,10 @@ if (list.length > 0) {
|
|||
</li>
|
||||
|
||||
<% if (!isCluster) { %>
|
||||
<% if (currentDB.get('isSystem')) { %>
|
||||
<li class="dropdown-item">
|
||||
<a id="logs" class="tab" href="#logs">Logs</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
<li class="dropdown-item">
|
||||
<a id="userManagement" class="tab" href="#userManagement">User Management</a>
|
||||
|
@ -2592,7 +2592,7 @@ if (list.length > 0) {
|
|||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<div class="pull-right" style="position: absolute; top: 60px; right: 0;">
|
||||
<span id="querySpotlight" class="action"><i class="fa fa-search"></i></span>
|
||||
<div class="styled-select">
|
||||
<select id="querySize" class="query-size"/>
|
||||
|
@ -2963,4 +2963,4 @@ var cutByResolution = function (str) {
|
|||
</div>
|
||||
|
||||
<div id="workMonitorContent" class="innerContent">
|
||||
</div></script></head><body><nav class="navbar"><div class="primary"><div class="navlogo"><a class="logo big" href="#"><img class="arangodbLogo" src="img/arangodb_logo_big.png"></a> <a class="logo small" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"></a></div><div class="statmenu" id="statisticBar"></div><div class="navmenu" id="navigationBar"></div></div></nav><div class="bodyWrapper"><div class="centralRow"><div id="navbar2" class="navbarWrapper secondary"><div class="subnavmenu" id="subNavigationBar"></div></div><div class="resizecontainer contentWrapper"><div id="content" class="centralContent"></div><footer class="footer"><div id="footerBar"></div></footer></div></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="libs.js?version=1461257358510"></script><script src="app.js?version=1461257358510"></script></body></html>
|
||||
</div></script></head><body><nav class="navbar"><div class="primary"><div class="navlogo"><a class="logo big" href="#"><img class="arangodbLogo" src="img/arangodb_logo_big.png"></a> <a class="logo small" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"></a></div><div class="statmenu" id="statisticBar"></div><div class="navmenu" id="navigationBar"></div></div></nav><div class="bodyWrapper"><div class="centralRow"><div id="navbar2" class="navbarWrapper secondary"><div class="subnavmenu" id="subNavigationBar"></div></div><div class="resizecontainer contentWrapper"><div id="content" class="centralContent"></div><footer class="footer"><div id="footerBar"></div></footer></div></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="libs.js?version=1461321201201"></script><script src="app.js?version=1461321201201"></script></body></html>
|
Binary file not shown.
|
@ -635,7 +635,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dashboard-sub-bar"">Resident Size</div>
|
||||
<div class="dashboard-sub-bar"">Memory</div>
|
||||
</div>
|
||||
|
||||
<% tendency("Virtual Size in GB", "virtualSize", false); %>
|
||||
|
@ -783,6 +783,7 @@
|
|||
|
||||
<% if (name !== '_system') { %>
|
||||
<div class="tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6">
|
||||
<div class="fullBorderBox" style="border: 0;">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editDatabase" id="<%=name %>_edit-database" alt="Edit database" title="Edit database"></span>
|
||||
|
@ -792,6 +793,7 @@
|
|||
</div>
|
||||
<h5 class="collectionName" style="margin-left: 0; margin-right: 0;"><%=name %></h5>
|
||||
</div>
|
||||
</div>
|
||||
<%};%>
|
||||
|
||||
<%});%>
|
||||
|
@ -1295,17 +1297,18 @@ if (list.length > 0) {
|
|||
%>
|
||||
|
||||
<div class="tile tile-graph pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6" id="<%=graphName %>_tile">
|
||||
<div class="paddingBox">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editGraph" id="<%=graphName %>_settings" alt="Edit graph" title="Edit graph"></span>
|
||||
</div>
|
||||
<span class="icon_arangodb_edge5 tile-icon"></span>
|
||||
<span class="icon_arangodb_edge5 icon_arangodb_edge5-2 tile-icon"></span>
|
||||
<div class="tileBadge">
|
||||
</div>
|
||||
|
||||
<div class="tileBadge"></div>
|
||||
<h5 class="collectionName"><%=graphName %></h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%});%>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1325,7 +1328,7 @@ if (list.length > 0) {
|
|||
<script id="helpUsView.ejs" type="text/template">
|
||||
|
||||
<div class="helpUs">
|
||||
<div class="_form_87"></div><script src="https://arangodb.activehosted.com/f/embed.php?id=87" type="text/javascript" charset="utf-8"></script>
|
||||
<iframe src="https://docs.google.com/forms/d/1vsIwy0mJSeToEnfo_jnBaQebewbcURL730IkZIrkyEE/viewform?embedded=true" scrolling="no" width="100%" height="1300px" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
@ -2474,11 +2477,9 @@ if (list.length > 0) {
|
|||
<script id="navigationView.ejs" type="text/template">
|
||||
<ul class="navlist arango-collection-ul" id="arangoCollectionUl">
|
||||
<% if (isCluster) { %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="cluster-menu"><a id="cluster" class="tab" href="#cluster"><i class="fa fa-circle-o"></i>Cluster</a></li>
|
||||
<li class="nodes-menu"><a id="nodes" class="tab" href="#cNodes"><i class="fa fa-server"></i>Nodes</a></li>
|
||||
<% } else { %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="dashboard-menu"><a id="dashboard" class="tab" href="#dashboard"><i class="fa fa-dashboard"></i>Dashboard</a></li>
|
||||
<% } %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
|
@ -2503,7 +2504,7 @@ if (list.length > 0) {
|
|||
<li class="databases-menu"><a id="databases" class="tab" href="#databases"><i class="fa fa-database"></i>Databases</a></li>
|
||||
<% } %>
|
||||
<% if (!isCluster) { %>
|
||||
<li class="logs-menu"><a id="logs" class="tab" href="#manage"><i class="fa fa-file-text"></i>Logs</a></li>
|
||||
<li class="logs-menu"><a id="logs" class="tab" href="#logs"><i class="fa fa-file-text"></i>Logs</a></li>
|
||||
<% } %>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="helpus-menu"><a id="helpus" class="tab" href="#helpus"><i class="fa fa-heart"></i>Help Us</a></li>
|
||||
|
@ -2518,12 +2519,10 @@ if (list.length > 0) {
|
|||
</li>
|
||||
|
||||
<% if (!isCluster) { %>
|
||||
<% if (currentDB.get('isSystem')) { %>
|
||||
<li class="dropdown-item">
|
||||
<a id="logs" class="tab" href="#logs">Logs</a>
|
||||
</li>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
<li class="dropdown-item">
|
||||
<a id="userManagement" class="tab" href="#userManagement">User Management</a>
|
||||
|
@ -2810,7 +2809,7 @@ if (list.length > 0) {
|
|||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<div class="pull-right" style="position: absolute; top: 60px; right: 0;">
|
||||
<span id="querySpotlight" class="action"><i class="fa fa-search"></i></span>
|
||||
<div class="styled-select">
|
||||
<select id="querySize" class="query-size"/>
|
||||
|
@ -3289,8 +3288,8 @@ var cutByResolution = function (str) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script src="libs.js?version=1461257358510"></script>
|
||||
<script src="app.js?version=1461257358510"></script>
|
||||
<script src="libs.js?version=1461321201201"></script>
|
||||
<script src="app.js?version=1461321201201"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
<script src="libs.js?version=1461257358510"></script>
|
||||
<script src="app.js?version=1461257358510"></script>
|
||||
<script src="libs.js?version=1461321201201"></script>
|
||||
<script src="app.js?version=1461321201201"></script>
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -6,7 +6,6 @@ body {
|
|||
background: rgba(64, 74, 83, 0.04);
|
||||
color: #333;
|
||||
display: block;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
height: 100%;
|
||||
|
@ -27,7 +26,6 @@ input,
|
|||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-weight: 400; }
|
||||
|
||||
@font-face {
|
||||
|
@ -2092,6 +2090,17 @@ textarea,
|
|||
div.footer-right, div.footer-right p, ul.headerButtonList li, div .tile .iconSet span, div .bigtile .iconSet span, .search-field, .headerBar > div.headerButtonBar, .fixedDropdown button, .fixedDropdown .notificationItem i, .dashboard-sub-bar-menu, .dashboard-legend, .query-button, .arango-tab li, div.gv_colour_list, .docsThirdCol {
|
||||
float: right; }
|
||||
|
||||
body,
|
||||
input,
|
||||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url, button, .modal-body, .ui-tooltip, .dataNotReadyYet, .dashboard-sub-bar, .dashboard-sub-bar .dashboard-sub-bar-title, .dygraph-label.dygraph-title, .inputEditorWrapper .bindParamEditorWrapper table,
|
||||
.inputEditorWrapper .aqlEditorWrapper table, .inputEditorWrapper .bindParamEditorWrapper table td input,
|
||||
.inputEditorWrapper .aqlEditorWrapper table td input, .inputEditorWrapper .bindParamEditorWrapper table th,
|
||||
.inputEditorWrapper .aqlEditorWrapper table th, .inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar,
|
||||
.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar, .collectionTh, .collectionInfoTh2, .figuresHeader th, .graphLabel, .snippet-no-num {
|
||||
font-family: 'Roboto', sans-serif !important; }
|
||||
|
||||
.tileList:after, .resizecontainer:after, .headerBar > div.headerButtonBar:after, .detail-chart:after, .dashboard-sub-bar:after, .dashboard-medium-chart .dashboard-medium-chart-menu:after, .dashboard-medium-chart .dashboard-medium-chart-inner:after, .dashboard-tendency-container .dashboard-tendency-chart:after, .dashboard-bar-chart-container .dashboard-bar-chart:after, .dashboard-row:after, #distributionChartDiv:after, .lineChartDiv:after, .arango-tab:after, .pagination-line li:after, .document-info .document-info-container .document-inner-info-container .document-attribute:after {
|
||||
clear: both;
|
||||
content: '.';
|
||||
|
@ -2363,6 +2372,8 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navlist {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
top: 0;
|
||||
width: 150px; }
|
||||
.navlist > li {
|
||||
line-height: 30px; }
|
||||
|
@ -2392,11 +2403,10 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navlist li.divider {
|
||||
background-color: rgba(0, 0, 0, 0.2); }
|
||||
.navlist li.navbar-spacer {
|
||||
background-color: #fff;
|
||||
height: 1px;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
height: 2px;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
opacity: .5; }
|
||||
margin-top: 0; }
|
||||
.navlist .active {
|
||||
border-left: 2px solid #77cb99; }
|
||||
.navlist .active .tab {
|
||||
|
@ -2625,10 +2635,9 @@ button.disabled,
|
|||
#closeBtnInfoView {
|
||||
margin-left: 0 !important; }
|
||||
|
||||
button {
|
||||
font-family: 'Roboto', sans-serif !important; }
|
||||
button.btn-server {
|
||||
width: 120px; }
|
||||
|
||||
button.gv-zoom-btn {
|
||||
background-size: 14px 14px;
|
||||
height: 14px;
|
||||
|
@ -2680,6 +2689,7 @@ button {
|
|||
box-shadow: none;
|
||||
left: 13px;
|
||||
top: 25px; }
|
||||
|
||||
button.gv-icon-btn {
|
||||
-moz-border-radius: 0 !important;
|
||||
-webkit-border-radius: 0 !important;
|
||||
|
@ -2689,19 +2699,25 @@ button {
|
|||
width: 36px; }
|
||||
button.gv-icon-btn.active {
|
||||
background-color: #7dbc42; }
|
||||
|
||||
button.gv_dropdown_entry {
|
||||
height: 30px;
|
||||
margin: 4px 4px 4px 12px;
|
||||
width: 160px; }
|
||||
|
||||
button.gv_context_button {
|
||||
width: 65px; }
|
||||
|
||||
button.large-distance {
|
||||
margin-left: 12px; }
|
||||
|
||||
button.short-distance {
|
||||
margin-left: 6px; }
|
||||
|
||||
button.shutdown {
|
||||
margin-top: 6px;
|
||||
padding: 3px 14px; }
|
||||
|
||||
button.graphViewer-icon-button {
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
|
@ -2761,20 +2777,20 @@ a.headerButton {
|
|||
cursor: not-allowed; }
|
||||
|
||||
div.toolbox {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(140, 138, 137, 0.25);
|
||||
margin-right: 5px;
|
||||
margin-top: -3px;
|
||||
padding-bottom: 5px;
|
||||
padding-top: 5px;
|
||||
position: absolute; }
|
||||
position: absolute;
|
||||
top: -10px; }
|
||||
div.toolbox div.gv_action_button {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
background-color: #fff;
|
||||
color: #555;
|
||||
height: 30px;
|
||||
|
@ -3131,7 +3147,8 @@ div .tile {
|
|||
height: 100px; }
|
||||
|
||||
div .tile-graph h5 {
|
||||
margin: 0; }
|
||||
margin-left: 5px;
|
||||
margin-right: 5px; }
|
||||
|
||||
div .tile-graph .tile-icon:hover {
|
||||
cursor: pointer; }
|
||||
|
@ -5234,7 +5251,7 @@ div.centralContent {
|
|||
background-color: transparent;
|
||||
box-sizing: border-box;
|
||||
margin-top: 10px;
|
||||
padding-bottom: 5px;
|
||||
padding-bottom: 20px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 5px;
|
||||
|
@ -5455,10 +5472,10 @@ span.gv_caret {
|
|||
|
||||
input.search-input {
|
||||
border: 1px solid #fff;
|
||||
height: 15px;
|
||||
line-height: 17px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin-right: -4px;
|
||||
margin-top: 6px;
|
||||
margin-top: 3px;
|
||||
width: 120px; }
|
||||
|
||||
.search-field {
|
||||
|
@ -5469,7 +5486,7 @@ input.search-input {
|
|||
margin-left: -20px;
|
||||
opacity: .5;
|
||||
position: relative;
|
||||
top: -2px; }
|
||||
top: -3px; }
|
||||
.search-field .fa-search:hover {
|
||||
cursor: pointer;
|
||||
opacity: 1; }
|
||||
|
@ -5682,7 +5699,6 @@ div.headerBar {
|
|||
|
||||
.modal-body {
|
||||
color: #736b68;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
max-height: 410px; }
|
||||
|
@ -6141,7 +6157,6 @@ div.headerBar {
|
|||
border-radius: 3px !important;
|
||||
box-shadow: none !important;
|
||||
color: #fff !important;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 10pt !important;
|
||||
font-weight: 100 !important;
|
||||
z-index: 99999999; }
|
||||
|
@ -6254,7 +6269,6 @@ div.headerBar {
|
|||
|
||||
.dataNotReadyYet {
|
||||
color: #faa732;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
text-align: center; }
|
||||
|
@ -6263,7 +6277,6 @@ div.headerBar {
|
|||
background-color: #fff;
|
||||
box-sizing: border-box;
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
height: 50px;
|
||||
|
@ -6277,7 +6290,6 @@ div.headerBar {
|
|||
text-transform: uppercase; }
|
||||
.dashboard-sub-bar .dashboard-sub-bar-title {
|
||||
color: #000;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
opacity: .5;
|
||||
|
@ -6451,12 +6463,12 @@ div.headerBar {
|
|||
.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart {
|
||||
padding-top: 10px; }
|
||||
.dashboard-bar-chart-container .dashboard-bar-chart .dashboard-bar-chart-chart .nv-bar rect {
|
||||
fill-opacity: .8;
|
||||
stroke-opacity: .8;
|
||||
fill-opacity: .6;
|
||||
stroke-opacity: .6;
|
||||
stroke-width: .5px; }
|
||||
|
||||
.dashboard-legend .dashboard-legend-inner {
|
||||
padding: 0 5px 5px 0;
|
||||
padding: 10px 5px 5px 0;
|
||||
text-align: right; }
|
||||
.dashboard-legend .dashboard-legend-inner br {
|
||||
display: none; }
|
||||
|
@ -6511,6 +6523,9 @@ div.headerBar {
|
|||
#repl-progress .inner {
|
||||
margin-top: 0; }
|
||||
|
||||
.nvtooltip {
|
||||
display: none; }
|
||||
|
||||
#requests,
|
||||
#system,
|
||||
#replication {
|
||||
|
@ -6563,7 +6578,6 @@ div.headerBar {
|
|||
|
||||
.dygraph-label.dygraph-title {
|
||||
color: #000;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
text-align: left; }
|
||||
|
@ -7016,8 +7030,7 @@ toolbar {
|
|||
color: #c12dad; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table,
|
||||
.inputEditorWrapper .aqlEditorWrapper table {
|
||||
border-top: 0;
|
||||
font-family: 'Roboto', sans-serif; }
|
||||
border-top: 0; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table tbody,
|
||||
.inputEditorWrapper .aqlEditorWrapper table tbody {
|
||||
display: block;
|
||||
|
@ -7076,14 +7089,12 @@ toolbar {
|
|||
.inputEditorWrapper .aqlEditorWrapper table td input {
|
||||
clear: both;
|
||||
float: right;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 17px;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px;
|
||||
width: auto !important; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table th,
|
||||
.inputEditorWrapper .aqlEditorWrapper table th {
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-weight: 400;
|
||||
height: 34px;
|
||||
padding: 0;
|
||||
|
@ -7136,7 +7147,6 @@ toolbar {
|
|||
.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid rgba(140, 138, 137, 0.25);
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 34px; }
|
||||
.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar span,
|
||||
.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar span {
|
||||
|
@ -7194,6 +7204,16 @@ toolbar {
|
|||
padding-top: 0; }
|
||||
#queryManagementContent .arango-table {
|
||||
border: 0; }
|
||||
#queryManagementContent .arango-table tr th:nth-child(1) {
|
||||
width: 10%; }
|
||||
#queryManagementContent .arango-table tr th:nth-child(1) td {
|
||||
text-align: center; }
|
||||
#queryManagementContent .arango-table tr th:nth-child(2) {
|
||||
width: 50%; }
|
||||
#queryManagementContent .arango-table tr th:nth-child(3) {
|
||||
width: 20%; }
|
||||
#queryManagementContent .arango-table tr th:nth-child(4) {
|
||||
width: 20%; }
|
||||
|
||||
#clearQuery {
|
||||
display: none; }
|
||||
|
@ -7636,6 +7656,7 @@ textarea,
|
|||
display: none; }
|
||||
|
||||
#arangoLogTable {
|
||||
border-top: 0;
|
||||
min-height: 444px; }
|
||||
#arangoLogTable tbody tr {
|
||||
height: 40px; }
|
||||
|
@ -7680,10 +7701,10 @@ textarea,
|
|||
|
||||
div.gv_zoom_widget {
|
||||
height: 300px;
|
||||
left: 64px;
|
||||
left: 62px;
|
||||
opacity: .7;
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
top: 0;
|
||||
width: 40px;
|
||||
z-index: 1; }
|
||||
div.gv_zoom_widget div.gv_zoom_buttons_bg {
|
||||
|
@ -7732,7 +7753,7 @@ svg.graph-viewer {
|
|||
border-radius: 3px;
|
||||
left: 54px;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
top: -10px;
|
||||
z-index: 0; }
|
||||
svg.graph-viewer text {
|
||||
max-width: 90px;
|
||||
|
@ -7758,7 +7779,7 @@ div.gv-colour-list {
|
|||
position: absolute;
|
||||
right: 8px;
|
||||
text-align: right;
|
||||
top: 20px;
|
||||
top: 0;
|
||||
z-index: 1; }
|
||||
div.gv-colour-list li {
|
||||
float: none;
|
||||
|
@ -7794,7 +7815,6 @@ input.gv-radio-button {
|
|||
width: auto; }
|
||||
|
||||
.collectionTh {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
|
@ -7848,7 +7868,6 @@ input.gv-radio-button {
|
|||
min-height: 200px; }
|
||||
|
||||
.collectionInfoTh2 {
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
width: 150px; }
|
||||
|
@ -7865,7 +7884,6 @@ input.gv-radio-button {
|
|||
.figuresHeader {
|
||||
border-bottom: 1px solid #c2c2c2; }
|
||||
.figuresHeader th {
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important; }
|
||||
|
||||
#collectionIndexTable {
|
||||
|
@ -7960,8 +7978,6 @@ input.gv-radio-button {
|
|||
.dashboard-large-chart,
|
||||
.dashboard-medium-chart-outer:first-child {
|
||||
padding-right: 0 !important; }
|
||||
.dashboard-medium-chart {
|
||||
margin-bottom: 10px; }
|
||||
div.dropdownInner ul label {
|
||||
font-size: 13px; }
|
||||
.navlogo .big {
|
||||
|
@ -7984,6 +8000,11 @@ input.gv-radio-button {
|
|||
.arango-collection-ul .tab .fa {
|
||||
padding-left: 6px;
|
||||
padding-right: 20px; }
|
||||
.social-icons p {
|
||||
float: left;
|
||||
margin-left: -3px; }
|
||||
.social-icons p .fa {
|
||||
font-size: 16px; }
|
||||
.headerButtonBar {
|
||||
display: none; }
|
||||
div.bodyWrapper,
|
||||
|
@ -8309,7 +8330,6 @@ input.gv-radio-button {
|
|||
outline-style: none; }
|
||||
|
||||
.graphLabel {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
margin-top: -25px;
|
||||
|
@ -8752,6 +8772,12 @@ main {
|
|||
.subnavmenu #dbStatus {
|
||||
padding-right: 20px; }
|
||||
|
||||
.helpUs iframe {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 101px; }
|
||||
|
||||
.arangoDataTable {
|
||||
border-spacing: 0 0;
|
||||
position: relative;
|
||||
|
@ -8816,7 +8842,6 @@ table.arangoDataTable tr.odd {
|
|||
visibility: hidden; }
|
||||
|
||||
.snippet-no-num {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 1em;
|
||||
font-weight: 400;
|
||||
margin-bottom: 0; }
|
||||
|
|
Binary file not shown.
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- The icon can be used freely in both personal and commercial projects with no attribution required, but always appreciated.
|
||||
You may NOT sub-license, resell, rent, redistribute or otherwise transfer the icon without express written permission from iconmonstr.com -->
|
||||
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
|
||||
<path id="database-icon" d="M422.122,355.606v46.524C422.122,435.196,347.747,462,256,462c-91.747,0-166.122-26.804-166.122-59.869
|
||||
v-46.524c10.283,7.391,23.186,13.907,38.485,19.422C162.918,387.481,208.248,394.34,256,394.34
|
||||
c47.753,0,93.082-6.858,127.638-19.312C398.938,369.514,411.839,362.997,422.122,355.606z M383.638,277.788
|
||||
c-34.556,12.454-79.885,19.312-127.638,19.312c-47.752,0-93.082-6.858-127.638-19.312c-15.299-5.514-28.201-12.03-38.484-19.421
|
||||
v46.104c0,33.065,74.375,59.869,166.122,59.869c91.747,0,166.122-26.804,166.122-59.869v-46.104
|
||||
C411.839,265.758,398.938,272.274,383.638,277.788z M256,50c-91.747,0-166.122,26.805-166.122,59.87
|
||||
c0,33.066,74.375,59.871,166.122,59.871c91.747,0,166.122-26.805,166.122-59.871C422.122,76.805,347.747,50,256,50z
|
||||
M383.638,180.428C349.082,192.881,303.753,199.74,256,199.74c-47.752,0-93.082-6.859-127.638-19.312
|
||||
c-15.299-5.514-28.201-12.031-38.484-19.422v46.225c0,33.065,74.375,59.87,166.122,59.87c91.747,0,166.122-26.805,166.122-59.87
|
||||
v-46.224C411.839,168.397,398.938,174.914,383.638,180.428z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.7 KiB |
|
@ -87,7 +87,7 @@
|
|||
},
|
||||
|
||||
residentSize: {
|
||||
header: "Resident Size",
|
||||
header: "Memory",
|
||||
axes: {
|
||||
y: {
|
||||
labelsKMG2: false,
|
||||
|
@ -173,7 +173,7 @@
|
|||
|
||||
requests: {
|
||||
header: "Requests",
|
||||
labels: ["datetime", "REQUESTS"],
|
||||
labels: ["datetime", "Reads", "Writes"],
|
||||
stackedGraph: true,
|
||||
div: "requestsChart",
|
||||
axes: {
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dashboard-sub-bar"">Resident Size</div>
|
||||
<div class="dashboard-sub-bar"">Memory</div>
|
||||
</div>
|
||||
|
||||
<% tendency("Virtual Size in GB", "virtualSize", false); %>
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
|
||||
<% if (name !== '_system') { %>
|
||||
<div class="tile pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6">
|
||||
<div class="fullBorderBox" style="border: 0;">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editDatabase" id="<%=name %>_edit-database" alt="Edit database" title="Edit database"></span>
|
||||
|
@ -61,6 +62,7 @@
|
|||
</div>
|
||||
<h5 class="collectionName" style="margin-left: 0; margin-right: 0;"><%=name %></h5>
|
||||
</div>
|
||||
</div>
|
||||
<%};%>
|
||||
|
||||
<%});%>
|
||||
|
|
|
@ -52,17 +52,18 @@
|
|||
%>
|
||||
|
||||
<div class="tile tile-graph pure-u-1-1 pure-u-sm-1-2 pure-u-md-1-3 pure-u-lg-1-4 pure-u-xl-1-6" id="<%=graphName %>_tile">
|
||||
<div class="paddingBox">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span class="icon_arangodb_settings2 editGraph" id="<%=graphName %>_settings" alt="Edit graph" title="Edit graph"></span>
|
||||
</div>
|
||||
<span class="icon_arangodb_edge5 tile-icon"></span>
|
||||
<span class="icon_arangodb_edge5 icon_arangodb_edge5-2 tile-icon"></span>
|
||||
<div class="tileBadge">
|
||||
</div>
|
||||
|
||||
<div class="tileBadge"></div>
|
||||
<h5 class="collectionName"><%=graphName %></h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%});%>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script id="helpUsView.ejs" type="text/template">
|
||||
|
||||
<div class="helpUs">
|
||||
<div class="_form_87"></div><script src="https://arangodb.activehosted.com/f/embed.php?id=87" type="text/javascript" charset="utf-8"></script>
|
||||
<iframe src="https://docs.google.com/forms/d/1vsIwy0mJSeToEnfo_jnBaQebewbcURL730IkZIrkyEE/viewform?embedded=true" scrolling="no" width="100%" height="1300px" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<div class="pull-right" style="position: absolute; top: 60px; right: 0;">
|
||||
<span id="querySpotlight" class="action"><i class="fa fa-search"></i></span>
|
||||
<div class="styled-select">
|
||||
<select id="querySize" class="query-size"/>
|
||||
|
|
|
@ -385,16 +385,23 @@
|
|||
if (valueList.length > 1) {
|
||||
|
||||
// HTTP requests combine all types to one
|
||||
// 0: date, 1: GET", 2: "PUT", 3: "POST", 4: "DELETE", 5: "PATCH",
|
||||
// 6: "HEAD", 7: "OPTIONS", 8: "OTHER"
|
||||
//
|
||||
var read = 0, write = 0;
|
||||
if (valueList.length === 9) {
|
||||
var counter = 0, sum = 0;
|
||||
|
||||
_.each(valueList, function(value) {
|
||||
if (counter !== 0) {
|
||||
sum += value;
|
||||
}
|
||||
counter++;
|
||||
});
|
||||
valueList = [valueList[0], sum];
|
||||
read += valueList[1];
|
||||
read += valueList[6];
|
||||
read += valueList[7];
|
||||
read += valueList[8];
|
||||
|
||||
write += valueList[2];
|
||||
write += valueList[3];
|
||||
write += valueList[4];
|
||||
write += valueList[5];
|
||||
|
||||
valueList = [valueList[0], read, write];
|
||||
}
|
||||
|
||||
self.history[self.server][f].push(valueList);
|
||||
|
|
|
@ -224,7 +224,7 @@
|
|||
"aqlEditor", "queryTable", "previewWrapper", "querySpotlight",
|
||||
"bindParamEditor", "toggleQueries1", "toggleQueries2",
|
||||
"saveCurrentQuery", "querySize", "executeQuery", "switchTypes",
|
||||
"explainQuery", "clearQuery", "importQuery", "exportQuery"
|
||||
"explainQuery", "importQuery", "exportQuery"
|
||||
];
|
||||
_.each(divs, function(div) {
|
||||
$("#" + div).toggle();
|
||||
|
|
|
@ -6,6 +6,10 @@
|
|||
float: right;
|
||||
}
|
||||
|
||||
%font-family {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
}
|
||||
|
||||
%clear-float {
|
||||
&:after {
|
||||
clear: both;
|
||||
|
|
|
@ -3,11 +3,11 @@ html {
|
|||
}
|
||||
|
||||
body {
|
||||
@extend %font-family;
|
||||
//background: $c-lightgreen-2-bg !important;
|
||||
background: $c-bluegrey-bg;
|
||||
color: $c-body-color;
|
||||
display: block;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
height: 100%;
|
||||
|
|
|
@ -108,7 +108,7 @@ button.disabled,
|
|||
|
||||
|
||||
button {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
@extend %font-family;
|
||||
|
||||
&.btn-server {
|
||||
width: 120px;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.graphLabel {
|
||||
font-family: "Roboto", sans-serif;
|
||||
@extend %font-family;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
margin-top: -25px;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.collectionTh {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
@extend %font-family;
|
||||
font-size: 14px;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
|
@ -79,7 +79,7 @@
|
|||
}
|
||||
|
||||
.collectionInfoTh2 {
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
@extend %font-family;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
width: 150px;
|
||||
|
@ -99,7 +99,7 @@
|
|||
border-bottom: 1px solid $c-c2grey;
|
||||
|
||||
th {
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
@extend %font-family;
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,9 +51,9 @@
|
|||
}
|
||||
|
||||
.dygraph-label.dygraph-title {
|
||||
@extend %font-family;
|
||||
color: $c-black;
|
||||
font: {
|
||||
family: 'Roboto', sans-serif;
|
||||
size: 15px;
|
||||
weight: 400;
|
||||
}
|
||||
|
|
|
@ -99,7 +99,7 @@ table.arangoDataTable tr.odd {
|
|||
}
|
||||
|
||||
.snippet-no-num {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
@extend %font-family;
|
||||
font-size: 1em;
|
||||
font-weight: 400;
|
||||
margin-bottom: 0;
|
||||
|
|
|
@ -3,7 +3,7 @@ input,
|
|||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url {
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
@extend %font-family;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
input.search-input {
|
||||
@extend %inputs;
|
||||
border: 1px solid $c-white;
|
||||
height: 15px;
|
||||
line-height: 17px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin-right: -4px;
|
||||
margin-top: 6px;
|
||||
margin-top: 3px;
|
||||
width: 120px;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ input.search-input {
|
|||
margin-left: -20px;
|
||||
opacity: .5;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
top: -3px;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
.helpUs {
|
||||
|
||||
iframe {
|
||||
left: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 101px;
|
||||
}
|
||||
}
|
|
@ -62,6 +62,7 @@
|
|||
|
||||
//new log view - do not delete
|
||||
#arangoLogTable {
|
||||
border-top: 0;
|
||||
min-height: 444px;
|
||||
|
||||
tbody {
|
||||
|
|
|
@ -43,8 +43,8 @@
|
|||
}
|
||||
|
||||
.modal-body {
|
||||
@extend %font-family;
|
||||
color: $c-btn-inverse;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
max-height: 410px;
|
||||
|
|
|
@ -162,6 +162,8 @@ $navbar-size: 150px;
|
|||
.navlist {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
top: 0;
|
||||
width: $navbar-size;
|
||||
|
||||
> li {
|
||||
|
@ -213,11 +215,10 @@ $navbar-size: 150px;
|
|||
}
|
||||
|
||||
&.navbar-spacer {
|
||||
background-color: $c-white;
|
||||
height: 1px;
|
||||
background-color: rgba(0, 0, 0, .2);
|
||||
height: 2px;
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -41,20 +41,20 @@
|
|||
}
|
||||
|
||||
.dataNotReadyYet {
|
||||
@extend %font-family;
|
||||
color: $c-warning;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.dashboard-sub-bar {
|
||||
@extend %font-family;
|
||||
@extend %clear-float;
|
||||
@extend %pull-left;
|
||||
background-color: $c-white;
|
||||
box-sizing: border-box;
|
||||
color: rgba(0, 0, 0, .5);
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
height: 50px;
|
||||
|
@ -71,8 +71,8 @@
|
|||
|
||||
.dashboard-sub-bar-title {
|
||||
@extend %pull-left;
|
||||
@extend %font-family;
|
||||
color: $c-black;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
font-size: 11pt;
|
||||
font-weight: 600;
|
||||
opacity: .5;
|
||||
|
@ -368,8 +368,8 @@
|
|||
padding-top: 10px;
|
||||
|
||||
.nv-bar rect {
|
||||
fill-opacity: .8;
|
||||
stroke-opacity: .8;
|
||||
fill-opacity: .6;
|
||||
stroke-opacity: .6;
|
||||
stroke-width: .5px;
|
||||
}
|
||||
}
|
||||
|
@ -381,7 +381,7 @@
|
|||
@extend %pull-right;
|
||||
|
||||
.dashboard-legend-inner {
|
||||
padding: 0 5px 5px 0;
|
||||
padding: 10px 5px 5px 0;
|
||||
text-align: right;
|
||||
|
||||
br {
|
||||
|
@ -485,6 +485,10 @@
|
|||
}
|
||||
}
|
||||
|
||||
.nvtooltip {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#requests,
|
||||
#system,
|
||||
#replication {
|
||||
|
|
|
@ -52,8 +52,8 @@
|
|||
}
|
||||
|
||||
table {
|
||||
@extend %font-family;
|
||||
border-top: 0;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
|
||||
tbody {
|
||||
display: block;
|
||||
|
@ -124,10 +124,10 @@
|
|||
}
|
||||
|
||||
input {
|
||||
@extend %font-family;
|
||||
@extend %inputs;
|
||||
clear: both;
|
||||
float: right;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 17px;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px;
|
||||
|
@ -136,7 +136,7 @@
|
|||
}
|
||||
|
||||
th {
|
||||
font-family: 'Lato', sans-serif;
|
||||
@extend %font-family;
|
||||
font-weight: 400;
|
||||
height: 34px;
|
||||
padding: 0;
|
||||
|
@ -208,9 +208,9 @@
|
|||
background-color: $c-white;
|
||||
|
||||
.previewBar {
|
||||
@extend %font-family;
|
||||
background-color: $c-white;
|
||||
border-bottom: 1px solid $c-content-border;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 34px;
|
||||
|
||||
span {
|
||||
|
@ -303,6 +303,28 @@
|
|||
|
||||
.arango-table {
|
||||
border: 0;
|
||||
|
||||
tr {
|
||||
th:nth-child(1) {
|
||||
width: 10%;
|
||||
|
||||
td {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
th:nth-child(2) {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
th:nth-child(3) {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
th:nth-child(4) {
|
||||
width: 20%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -585,7 +585,7 @@ div.centralContent {
|
|||
box-sizing: border-box;
|
||||
margin-top: 10px;
|
||||
padding: {
|
||||
bottom: 5px;
|
||||
bottom: 20px;
|
||||
left: 5px;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
}
|
||||
|
||||
.dashboard-medium-chart {
|
||||
margin-bottom: 10px;
|
||||
//margin-bottom: 10px;
|
||||
}
|
||||
|
||||
// CONTENT DROPDOWNS
|
||||
|
@ -58,6 +58,17 @@
|
|||
}
|
||||
}
|
||||
|
||||
.social-icons {
|
||||
p {
|
||||
float: left;
|
||||
margin-left: -3px;
|
||||
|
||||
.fa {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//actions sub menu
|
||||
.headerButtonBar {
|
||||
display: none;
|
||||
|
|
|
@ -381,7 +381,8 @@ div {
|
|||
.tile-graph {
|
||||
|
||||
h5 {
|
||||
margin: 0;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.tile-icon:hover {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
.ui-tooltip {
|
||||
@extend %font-family;
|
||||
background-color: $c-positive !important;
|
||||
border: 0 !important;
|
||||
border-radius: 3px !important;
|
||||
box-shadow: none !important;
|
||||
color: $c-white !important;
|
||||
font-family: 'Roboto', sans-serif !important;
|
||||
font-size: 10pt !important;
|
||||
font-weight: 100 !important;
|
||||
z-index: 99999999;
|
||||
|
|
|
@ -88,6 +88,8 @@
|
|||
@import 'arangoTabbar';
|
||||
//Sub Navigation
|
||||
@import 'subNavbar';
|
||||
//Help View
|
||||
@import 'help';
|
||||
|
||||
// Data Tables, TODO: might all be superflous
|
||||
@import 'dataTables';
|
||||
|
|
Loading…
Reference in New Issue