mirror of https://gitee.com/bigwinds/arangodb
merging web interfaces
This commit is contained in:
parent
f0bb30c3f7
commit
4578b66441
|
@ -30,6 +30,7 @@
|
|||
"frontend/css/ansi.css",
|
||||
"frontend/css/highlightjs.css",
|
||||
"frontend/css/jsoneditor.css",
|
||||
"frontend/css/grids-responsive-min.css",
|
||||
"frontend/ttf/arangofont/style.css"
|
||||
]
|
||||
},
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -796,4 +796,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></script></head><body><nav class="navbar"><div class="resizecontainer"><div class="navlogo"><a class="logo" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"></a></div><div id="progressPlaceholderIcon"></div><div class="statmenu" id="statisticBar"></div><div class="usermenu" id="userBar" style="float:right"></div><div class="notificationmenu" id="notificationBar" style="float:right"></div><div class="navmenu" id="navigationBar"></div></div></nav><div class="centralRow resizecontainer"><div id="content" class="centralContent"></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="sharedLibs.js"></script><script src="cluster.js"></script></body></html>
|
||||
</div></script></head><body><div class="bodyWrapper"><nav class="navbar"><div class="primary"><div class="resizecontainer"><div class="navlogo"><a class="logo" href="#"><img class="arangodbLogo" src="img/DEVLOGO.png"></a></div><div id="progressPlaceholderIcon"></div><div class="statmenu" id="statisticBar"></div><div class="usermenu" id="userBar" style="float:right"></div><div class="notificationmenu" id="notificationBar" style="float:right"></div><div class="navmenu" id="navigationBar"></div></div></div><div class="secondary"><div class="resizecontainer"><div class="subnavmenu" id="subNavigationBar"></div></div></div></nav><div class="centralRow resizecontainer"><div id="content" class="centralContent"></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div></div><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="sharedLibs.js"></script><script src="cluster.js"></script></body></html>
|
Binary file not shown.
|
@ -886,10 +886,13 @@
|
|||
|
||||
</head>
|
||||
<body>
|
||||
<div class="bodyWrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="primary">
|
||||
<div class="resizecontainer">
|
||||
<div class="navlogo">
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"/></a>
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/DEVLOGO.png"/></a>
|
||||
</div>
|
||||
<div id="progressPlaceholderIcon"></div>
|
||||
<div class="statmenu" id="statisticBar">
|
||||
|
@ -901,6 +904,14 @@
|
|||
<div class="navmenu" id="navigationBar">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="secondary">
|
||||
<div class="resizecontainer">
|
||||
<div class="subnavmenu" id="subNavigationBar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<div class="centralRow resizecontainer">
|
||||
|
@ -918,6 +929,8 @@
|
|||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="resizecontainer" id="footerBar">
|
||||
</div>
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -4,7 +4,7 @@ input,
|
|||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400; }
|
||||
|
||||
@font-face {
|
||||
|
@ -2081,10 +2081,8 @@ textarea,
|
|||
cursor: pointer; }
|
||||
|
||||
.navbar, footer.footer {
|
||||
background-color: rgba(245, 248, 240, 0.95);
|
||||
color: #fff;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
z-index: 1000; }
|
||||
|
@ -2105,17 +2103,22 @@ a.danger.coordinator, a.danger.dbserver {
|
|||
fill: #be342e; }
|
||||
|
||||
.button-success {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
.button-success:hover, .button-success:focus {
|
||||
background-color: #788f3d; }
|
||||
|
||||
.button-info {
|
||||
background-color: #5bc0de; }
|
||||
.button-info:hover, .button-info:focus {
|
||||
background-color: #5bc0de; }
|
||||
|
||||
.addButton, a.success.coordinator, a.success.dbserver {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
.addButton:hover, a.success.coordinator:hover, a.success.dbserver:hover, .addButton:focus, a.success.coordinator:focus, a.success.dbserver:focus {
|
||||
color: #788f3d; }
|
||||
|
||||
a.success.coordinator, a.success.dbserver {
|
||||
fill: #8aa051; }
|
||||
fill: #7dbc42; }
|
||||
a.success.coordinator:hover, a.success.dbserver:hover, a.success.coordinator:focus, a.success.dbserver:focus {
|
||||
fill: #788f3d; }
|
||||
|
||||
|
@ -2154,8 +2157,8 @@ a.warning.coordinator, a.warning.dbserver {
|
|||
border: 1px solid #fff;
|
||||
color: #555; }
|
||||
.button-header:hover, a.headerButton:hover, a.button-gui:hover, .button-header:focus, a.headerButton:focus, a.button-gui:focus {
|
||||
background-color: #8aa051;
|
||||
border: 1px solid #8aa051;
|
||||
background-color: #7dbc42;
|
||||
border: 1px solid #7dbc42;
|
||||
color: #fff; }
|
||||
|
||||
.button-notification {
|
||||
|
@ -2262,10 +2265,16 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
|
||||
.navbar {
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
height: 44px;
|
||||
height: auto;
|
||||
margin-bottom: 3px;
|
||||
padding-top: 6px;
|
||||
top: 0; }
|
||||
.navbar > .primary {
|
||||
background-color: rgba(0, 0, 0, 0.7); }
|
||||
.navbar > .secondary {
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
border-bottom: 1px solid rgba(140, 138, 137, 0.25); }
|
||||
.navbar > .resizecontainer {
|
||||
background-color: #fff; }
|
||||
.navbar .no-left-margin {
|
||||
border: 0;
|
||||
margin-left: 0; }
|
||||
|
@ -2274,8 +2283,8 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navbar .arangodbLogo {
|
||||
height: auto;
|
||||
margin-left: -5px;
|
||||
margin-top: -1px;
|
||||
width: 40%; }
|
||||
margin-top: 6px;
|
||||
width: 200px; }
|
||||
.navbar .arango-collection-select {
|
||||
position: relative;
|
||||
right: -22px;
|
||||
|
@ -2304,7 +2313,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navlist {
|
||||
list-style: none; }
|
||||
.navlist > li {
|
||||
height: 39px; }
|
||||
line-height: 30px; }
|
||||
.navlist li {
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
|
@ -2324,36 +2333,33 @@ 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: #a0a0a0;
|
||||
background-color: #fff;
|
||||
height: 21px;
|
||||
margin-top: 9px;
|
||||
margin-top: 14px;
|
||||
opacity: .2;
|
||||
width: 1px; }
|
||||
.navlist li.navbar-spacer.big {
|
||||
margin-left: 15px;
|
||||
margin-right: 15px; }
|
||||
margin-right: 8px; }
|
||||
.navlist li.navbar-spacer.med {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px; }
|
||||
.navlist li.navbar-spacer:hover {
|
||||
background-color: #a0a0a0; }
|
||||
.navlist .active .tab {
|
||||
border-bottom: 2px solid #8aa051;
|
||||
padding-bottom: 4px; }
|
||||
.navlist > .active {
|
||||
background-color: transparent; }
|
||||
.navlist > .active a {
|
||||
color: #000; }
|
||||
.navlist > .active:hover {
|
||||
background-color: #fff; }
|
||||
.navlist > .active:hover a {
|
||||
color: #000; }
|
||||
opacity: .65; }
|
||||
.navlist .dropdown-item:hover,
|
||||
.navlist > li:hover {
|
||||
background-color: #fff;
|
||||
border-radius: 3px; }
|
||||
.navlist .dropdown-item:hover a,
|
||||
.navlist > li:hover a {
|
||||
color: #000; }
|
||||
color: #fff;
|
||||
opacity: .65;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-transition: opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); }
|
||||
.navlist .dropdown-item {
|
||||
margin-left: 0; }
|
||||
.navlist .dropdown-item a {
|
||||
|
@ -2365,14 +2371,15 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
color: #686766; }
|
||||
|
||||
.tab {
|
||||
color: #686766;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-size: 12pt;
|
||||
font-size: 10pt;
|
||||
font-weight: 100;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 9px; }
|
||||
padding-top: 9px;
|
||||
text-transform: uppercase; }
|
||||
.tab.userImg {
|
||||
padding-bottom: 5px; }
|
||||
|
||||
|
@ -2410,7 +2417,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.script-dropdown-menu .dropdown-item a:hover {
|
||||
color: #fff; }
|
||||
.script-dropdown-menu .dropdown-item:hover {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
|
||||
.gv-dropdown-menu {
|
||||
-moz-border-radius: 0;
|
||||
|
@ -2431,7 +2438,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
color: #fff;
|
||||
padding-left: 5px; }
|
||||
.gv-dropdown-menu li a:focus {
|
||||
background-color: #8aa051 !important;
|
||||
background-color: #7dbc42 !important;
|
||||
background-image: none; }
|
||||
|
||||
#arangoCollectionSelect {
|
||||
|
@ -2461,10 +2468,8 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
margin-left: 22px; }
|
||||
|
||||
.footer {
|
||||
bottom: 0;
|
||||
font-size: 14px;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
z-index: 1000; }
|
||||
|
@ -2499,7 +2504,7 @@ div.footer-left {
|
|||
padding: 0;
|
||||
width: 25px; }
|
||||
div.footer-left .social-icons p:hover {
|
||||
background: #8aa051;
|
||||
background: #7dbc42;
|
||||
cursor: pointer; }
|
||||
div.footer-left .social-icons p:hover i {
|
||||
color: #fff; }
|
||||
|
@ -2529,7 +2534,7 @@ div.footer-center {
|
|||
padding: 6px 2px;
|
||||
width: 20px; }
|
||||
div.footer-center i:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div.footer-center p {
|
||||
padding-top: 5px; }
|
||||
|
@ -2551,26 +2556,26 @@ div.footer-right {
|
|||
position: relative;
|
||||
top: -1px; }
|
||||
div.footer-right .isOnline {
|
||||
color: #8aa051 !important; }
|
||||
color: #7dbc42 !important; }
|
||||
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-danger, .button-warning, .button-inactive, .button-close, .button-header {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-info, .button-danger, .button-warning, .button-inactive, .button-close, .button-header {
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: 0;
|
||||
-moz-box-shadow: 0;
|
||||
box-shadow: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 300 !important; }
|
||||
font-weight: 400 !important; }
|
||||
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-danger, .button-warning, .button-inactive, .button-close {
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-info, .button-danger, .button-warning, .button-inactive, .button-close {
|
||||
border: 0;
|
||||
color: #fff;
|
||||
margin-left: 10px;
|
||||
padding: 5px 16px; }
|
||||
.button-neutral:focus, .button-primary:focus, .button-notification:focus, .button-success:focus, .button-danger:focus, .button-warning:focus, .button-inactive:focus, .button-close:focus {
|
||||
.button-neutral:focus, .button-primary:focus, .button-notification:focus, .button-success:focus, .button-info:focus, .button-danger:focus, .button-warning:focus, .button-inactive:focus, .button-close:focus {
|
||||
outline: none; }
|
||||
.button-neutral i, .button-primary i, .button-notification i, .button-success i, .button-danger i, .button-warning i, .button-inactive i, .button-close i {
|
||||
.button-neutral i, .button-primary i, .button-notification i, .button-success i, .button-info i, .button-danger i, .button-warning i, .button-inactive i, .button-close i {
|
||||
margin-left: -5px; }
|
||||
|
||||
.button-header {
|
||||
|
@ -2597,7 +2602,7 @@ button.disabled,
|
|||
margin-left: 0 !important; }
|
||||
|
||||
button {
|
||||
font-family: 'Open Sans', sans-serif !important; }
|
||||
font-family: 'Lato', sans-serif !important; }
|
||||
button.btn-server {
|
||||
width: 120px; }
|
||||
button.gv-zoom-btn {
|
||||
|
@ -2659,7 +2664,7 @@ button {
|
|||
height: 36px;
|
||||
width: 36px; }
|
||||
button.gv-icon-btn.active {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
button.gv_dropdown_entry {
|
||||
height: 30px;
|
||||
margin: 4px 4px 4px 12px;
|
||||
|
@ -2754,7 +2759,7 @@ div.toolbox {
|
|||
text-align: center;
|
||||
width: 30px; }
|
||||
div.toolbox div.gv_action_button.active {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div.toolbox div.gv_action_button:first-child {
|
||||
margin-top: 0; }
|
||||
|
@ -3032,7 +3037,7 @@ div .tile, div .bigtile {
|
|||
padding-top: 2px;
|
||||
z-index: 2; }
|
||||
div .tile .iconSet span:hover, div .bigtile .iconSet span:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div .tile .iconSet span.disabled, div .bigtile .iconSet span.disabled {
|
||||
cursor: default;
|
||||
|
@ -3074,7 +3079,7 @@ div .tile, div .bigtile {
|
|||
div .tile .tileBadge span .corneredBadge.loading, div .bigtile .tileBadge span .corneredBadge.loading {
|
||||
border-bottom-color: #ff8f35; }
|
||||
div .tile .tileBadge span .corneredBadge.loaded, div .bigtile .tileBadge span .corneredBadge.loaded {
|
||||
border-bottom-color: #8aa051; }
|
||||
border-bottom-color: #7dbc42; }
|
||||
div .tile .tileBadge span .corneredBadge.inProgress, div .bigtile .tileBadge span .corneredBadge.inProgress {
|
||||
border-bottom-color: #5bc0de; }
|
||||
div .tile .tileBadge span .corneredBadge.unloaded, div .bigtile .tileBadge span .corneredBadge.unloaded {
|
||||
|
@ -5128,7 +5133,7 @@ div .bigtile {
|
|||
|
||||
div.centralRow {
|
||||
margin-bottom: 40px;
|
||||
margin-top: 40px; }
|
||||
margin-top: 15px; }
|
||||
|
||||
div.centralContent {
|
||||
background-color: transparent;
|
||||
|
@ -5255,7 +5260,7 @@ div.dropdownInner {
|
|||
margin-left: 1px;
|
||||
margin-right: 6px; }
|
||||
div.dropdownInner ul li .fa.fa-check-circle-o, div.dropdownInner ul li .fa.fa-check-square-o, div.dropdownInner ul li .fa.fa-dot-circle-o {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
|
||||
div.queryline {
|
||||
color: #000;
|
||||
|
@ -5333,7 +5338,7 @@ div.input-append button.gv_example_toggle {
|
|||
padding-top: 12px;
|
||||
vertical-align: top; }
|
||||
div.input-append button.gv_example_toggle:hover {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
|
||||
.searchEqualsLabel {
|
||||
margin-left: 6px;
|
||||
|
@ -5390,8 +5395,6 @@ div.headerBar {
|
|||
color: #fff;
|
||||
font-size: 16px;
|
||||
height: 36px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 15px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: relative; }
|
||||
|
@ -5473,7 +5476,7 @@ div.headerBar {
|
|||
font-size: 10pt;
|
||||
margin-left: 10px; }
|
||||
.breadcrumb .activeBread {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
float: left;
|
||||
font-size: 11.5pt;
|
||||
font-weight: 100; }
|
||||
|
@ -5538,7 +5541,7 @@ div.headerBar {
|
|||
|
||||
.modal-body {
|
||||
color: #736b68;
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
max-height: 410px; }
|
||||
|
@ -5858,7 +5861,7 @@ a.dbserver.double {
|
|||
right: 60px; }
|
||||
|
||||
.cluster-connection-check-success {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
margin-left: 20px; }
|
||||
|
||||
.cluster-connection-check-fail {
|
||||
|
@ -6102,7 +6105,7 @@ div .tile, div .bigtile {
|
|||
padding-top: 2px;
|
||||
z-index: 2; }
|
||||
div .tile .iconSet span:hover, div .bigtile .iconSet span:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div .tile .iconSet span.disabled, div .bigtile .iconSet span.disabled {
|
||||
cursor: default;
|
||||
|
@ -6144,7 +6147,7 @@ div .tile, div .bigtile {
|
|||
div .tile .tileBadge span .corneredBadge.loading, div .bigtile .tileBadge span .corneredBadge.loading {
|
||||
border-bottom-color: #ff8f35; }
|
||||
div .tile .tileBadge span .corneredBadge.loaded, div .bigtile .tileBadge span .corneredBadge.loaded {
|
||||
border-bottom-color: #8aa051; }
|
||||
border-bottom-color: #7dbc42; }
|
||||
div .tile .tileBadge span .corneredBadge.inProgress, div .bigtile .tileBadge span .corneredBadge.inProgress {
|
||||
border-bottom-color: #5bc0de; }
|
||||
div .tile .tileBadge span .corneredBadge.unloaded, div .bigtile .tileBadge span .corneredBadge.unloaded {
|
||||
|
@ -6196,7 +6199,7 @@ div .bigtile {
|
|||
|
||||
.dataNotReadyYet {
|
||||
color: #faa732;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
text-align: center; }
|
||||
|
@ -8430,7 +8433,7 @@ div .bigtile {
|
|||
|
||||
div.centralRow {
|
||||
margin-bottom: 40px;
|
||||
margin-top: 40px; }
|
||||
margin-top: 15px; }
|
||||
|
||||
div.centralContent {
|
||||
background-color: transparent;
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -19925,7 +19925,7 @@ var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
|||
var editorCss = ".ace_editor {\
|
||||
position: relative;\
|
||||
overflow: hidden;\
|
||||
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\
|
||||
font-family: 'Lato', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\
|
||||
font-size: 12px;\
|
||||
line-height: normal;\
|
||||
direction: ltr;\
|
||||
|
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,3 +1,3 @@
|
|||
<script src="sharedLibs.js?version=1459264721189"></script>
|
||||
<script src="libs.js?version=1459264721189"></script>
|
||||
<script src="app.js?version=1459264721189"></script>
|
||||
<script src="sharedLibs.js?version=1459957393338"></script>
|
||||
<script src="libs.js?version=1459957393338"></script>
|
||||
<script src="app.js?version=1459957393338"></script>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/html"><head><meta charset="utf-8"><title>ArangoDB Web Interface</title><meta name="description" content="ArangoDB Admin Web Interface"><meta name="author" content="Heiko Kernbach, Michael Hackstein"><link href="css/style.css" rel="stylesheet"><link href="css/sass.css" rel="stylesheet"><link rel="shortcut icon" type="image/x-icon" href="favicon.ico"><script id="applicationDetailView.ejs" type="text/template"><div class="application-detail-view">
|
||||
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/html"><head><meta charset="utf-8"><title>ArangoDB Web Interface</title><meta name="description" content="ArangoDB Admin Web Interface"><meta name="author" content="Heiko Kernbach, Michael Hackstein"><link href="css/style.css" rel="stylesheet"><link href="css/sass.css" rel="stylesheet"><link rel="shortcut icon" type="image/x-icon" href="favicon.ico"><link href="https://fonts.googleapis.com/css?family=Lato:400,300,700" rel="stylesheet" type="text/css"><script id="applicationDetailView.ejs" type="text/template"><div class="application-detail-view">
|
||||
<div class="headerBar">
|
||||
<div class="headerButtonBar">
|
||||
<ul class="headerButtonList">
|
||||
|
@ -253,7 +253,67 @@
|
|||
</tr>
|
||||
<% }; %>
|
||||
</tbody>
|
||||
</table></script><script id="collectionsItemView.ejs" type="text/template"><div class="borderBox"></div>
|
||||
</table></script><script id="clusterView.ejs" type="text/template"><div id="clusterContent" class="innerContent">
|
||||
|
||||
<div class="pure-g cluster-values">
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterNodes" class="value">7</div>
|
||||
<div class="graphLabel">Nodes</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterRam" class="value">23%</div>
|
||||
<div class="graphLabel">RAM</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnections" class="value">33</div>
|
||||
<div class="graphLabel">Connections</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnectionsAvg" class="value">22</div>
|
||||
<div class="graphLabel">Connections AVG</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pure-g cluster-graphs">
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-24-24 pure-u-lg-12-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterData'></div>
|
||||
<div class="graphLabel">DATA</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterHttp'></div>
|
||||
<div class="graphLabel">HTTP</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterAverage'></div>
|
||||
<div class="graphLabel">TRANSFER SIZE</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div></script><script id="collectionsItemView.ejs" type="text/template"><div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
<span id="editCollection_<%=model.get('name')%>" class="icon_arangodb_settings2" alt="Edit collection properties" title="Edit collection properties"></span>
|
||||
<% if(model.get('status') === "loaded") { %>
|
||||
|
@ -694,7 +754,9 @@
|
|||
|
||||
<%});%>
|
||||
</div>
|
||||
</div></script><script id="dbSelectionView.ejs" type="text/template"><a href="#" class="tab" id="dbselection"></span><div class="dbselection">DB: <%=current%></div> <b class="caret"></b></a>
|
||||
</div></script><script id="dbSelectionView.ejs" type="text/template"><a href="#" class="tab" id="dbselection"></span><div class="dbselection"><span class="db-name">DB: </span> <%=current%><i class="fa fa-caret-square-o-down"></i></div>
|
||||
<!-- <b class="caret"></b> -->
|
||||
</a>
|
||||
<ul class="link-dropdown-menu" id="dbs_dropdown">
|
||||
<%
|
||||
if (list.length > 0) {
|
||||
|
@ -2260,14 +2322,19 @@ if (list.length > 0) {
|
|||
</div>
|
||||
<% } %>
|
||||
</div></script><script id="navigationView.ejs" type="text/template"><ul class="navlist arango-collection-ul" id="arangoCollectionUl">
|
||||
<li class="collections-menu"><a id="cluster" class="tab" href="#collections">Cluster</a></li>
|
||||
<li class="collections-menu"><a id="nodes" class="tab" href="#collections">Nodes</a></li>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li id="dbSelect" class="dropdown databases-menu"></li>
|
||||
<li class="collections-menu"><a id="collections" class="tab" href="#collections">Collections</a></li>
|
||||
<li class="demo-menu"><a id="demo" class="tab" href="#demo">Demo</a></li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">Queries</a></li>
|
||||
<li class="graph-menu"><a id="graph" class="tab" href="#graph">Graphs</a></li>
|
||||
<li class="applications-menu">
|
||||
<a id="applications" class="tab" href="#applications">Services</a>
|
||||
</li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">AQL Editor</a></li>
|
||||
<li class="users-menu"><a id="users" class="tab" href="#manage">Users</a></li>
|
||||
<li class="query-menu"><a id="settings" class="tab" href="#settings"><i class="fa fa-cog"></i></a></li>
|
||||
<!--
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="dropdown tools-menu" id="toolsDropdown">
|
||||
<a href="#" class="tab" id="tools">Tools <b class="caret"></b></a>
|
||||
|
@ -2312,6 +2379,7 @@ if (list.length > 0) {
|
|||
<li class="dropdown-item"><a href="https://www.arangodb.com" target="_blank">ArangoDB.com</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
|
||||
<select id="arangoCollectionSelect" class="arango-collection-select">
|
||||
|
@ -2483,17 +2551,12 @@ if (list.length > 0) {
|
|||
|
||||
</div>
|
||||
|
||||
</div></script><script id="queryView2.ejs" type="text/template"><div class="headerBar">
|
||||
<a class="arangoHeader">AQL Editor 2</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="queryContent" class="queryContent">
|
||||
</div></script><script id="queryView2.ejs" type="text/template"><div id="queryContent" class="queryContent">
|
||||
|
||||
<div class="arangoToolbar arangoToolbarTop">
|
||||
<div class="pull-left">
|
||||
<button id="toggleQueries1" class="button-success"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-success" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="toggleQueries1" class="button-primary"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-primary" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
|
@ -2532,7 +2595,7 @@ if (list.length > 0) {
|
|||
<button id="exportQuery" class="button-success query-button" style="display:none">Export Queries</button>
|
||||
<button id="importQuery" class="button-success query-button" style="display:none">Import Queries</button>
|
||||
<button id="executeQuery" class="button-success query-button">Execute</button>
|
||||
<button id="explainQuery" class="button-success query-button">Explain</button>
|
||||
<button id="explainQuery" class="button-info query-button">Explain</button>
|
||||
<button id="removeResults" class="button-close query-button" style="display: none">Remove results</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -2637,7 +2700,27 @@ if (list.length > 0) {
|
|||
style="background-color: #8aa051; margin-top: 9px;"
|
||||
/>
|
||||
</a>
|
||||
</div></script><script id="tableView.ejs" type="text/template"><%
|
||||
</div></script><script id="subNavigationView.ejs" type="text/template"><ul class="subMenuEntries left">
|
||||
<li class="subMenuEntry">
|
||||
<a class="health-info">HEALTH: </a>
|
||||
<a class="health-state">GOOD</a>
|
||||
<a class="health-icon">
|
||||
<i class="fa fa-check-circle"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="subMenuEntries right">
|
||||
<li class="subMenuEntry">
|
||||
<a>Slow Query History</a>
|
||||
</li>
|
||||
<li class="subMenuEntry">
|
||||
<a>Running Queries</a>
|
||||
</li>
|
||||
<li class="subMenuEntry active">
|
||||
<a>Editor</a>
|
||||
</li>
|
||||
</ul></script><script id="tableView.ejs" type="text/template"><%
|
||||
var escaped = function (value) {
|
||||
return value.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
|
||||
.replace(/"/g, """).replace(/'/g, "'");
|
||||
|
@ -2849,4 +2932,4 @@ var cutByResolution = function (str) {
|
|||
</div>
|
||||
|
||||
<div id="workMonitorContent" class="innerContent">
|
||||
</div></script></head><body><nav class="navbar"><div class="resizecontainer"><div class="navlogo"><a class="logo" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"></a></div><div id="progressPlaceholderIcon"></div><div class="statmenu" id="statisticBar"></div><div class="usermenu" id="userBar" style="float:right"></div><div class="notificationmenu" id="notificationBar" style="float:right"></div><div class="navmenu" id="navigationBar"></div></div></nav><div class="centralRow resizecontainer"><div id="content" class="centralContent"></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="sharedLibs.js?version=1459264721189"></script><script src="libs.js?version=1459264721189"></script><script src="app.js?version=1459264721189"></script></body></html>
|
||||
</div></script></head><body><div class="bodyWrapper"><nav class="navbar"><div class="primary"><div class="resizecontainer"><div class="navlogo"><a class="logo" href="#"><img class="arangodbLogo" src="img/DEVLOGO.png"></a></div><div id="progressPlaceholderIcon"></div><div class="statmenu" id="statisticBar"></div><div class="usermenu" id="userBar" style="float:right"></div><div class="notificationmenu" id="notificationBar" style="float:right"></div><div class="navmenu" id="navigationBar"></div></div></div><div class="secondary"><div class="resizecontainer"><div class="subnavmenu" id="subNavigationBar"></div></div></div></nav><div class="centralRow resizecontainer"><div id="content" class="centralContent"></div></div><div id="modalPlaceholder"></div><div id="progressPlaceholder" style="display:none"></div><div id="spotlightPlaceholder" style="display:none"></div></div><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><div class="arangoFrame" style=""><div class="outerDiv"><div class="innerDiv"></div></div></div><script src="sharedLibs.js?version=1459780611287"></script><script src="libs.js?version=1459780611287"></script><script src="app.js?version=1459780611287"></script></body></html>
|
Binary file not shown.
|
@ -10,8 +10,7 @@
|
|||
<link href="css/style.css" rel="stylesheet">
|
||||
<link href="css/sass.css" rel="stylesheet">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
|
||||
|
||||
<!-- obsolete file -->
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'>
|
||||
|
||||
<script id="applicationDetailView.ejs" type="text/template">
|
||||
<div class="application-detail-view">
|
||||
|
@ -288,6 +287,72 @@
|
|||
</table>
|
||||
</script>
|
||||
|
||||
<script id="clusterView.ejs" type="text/template">
|
||||
|
||||
<div id="clusterContent" class="innerContent">
|
||||
|
||||
<div class="pure-g cluster-values">
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterNodes" class="value">7</div>
|
||||
<div class="graphLabel">Nodes</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterRam" class="value">23%</div>
|
||||
<div class="graphLabel">RAM</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnections" class="value">33</div>
|
||||
<div class="graphLabel">Connections</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnectionsAvg" class="value">22</div>
|
||||
<div class="graphLabel">Connections AVG</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pure-g cluster-graphs">
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-24-24 pure-u-lg-12-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterData'></div>
|
||||
<div class="graphLabel">DATA</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterHttp'></div>
|
||||
<div class="graphLabel">HTTP</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterAverage'></div>
|
||||
<div class="graphLabel">TRANSFER SIZE</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
||||
<script id="collectionsItemView.ejs" type="text/template">
|
||||
<div class="borderBox"></div>
|
||||
<div class="iconSet">
|
||||
|
@ -749,7 +814,9 @@
|
|||
</script>
|
||||
|
||||
<script id="dbSelectionView.ejs" type="text/template">
|
||||
<a href="#" class="tab" id="dbselection"></span><div class="dbselection">DB: <%=current%></div> <b class="caret"></b></a>
|
||||
<a href="#" class="tab" id="dbselection"></span><div class="dbselection"><span class="db-name">DB: </span> <%=current%><i class="fa fa-caret-square-o-down"></i></div>
|
||||
<!-- <b class="caret"></b> -->
|
||||
</a>
|
||||
<ul class="link-dropdown-menu" id="dbs_dropdown">
|
||||
<%
|
||||
if (list.length > 0) {
|
||||
|
@ -2421,14 +2488,19 @@ if (list.length > 0) {
|
|||
|
||||
<script id="navigationView.ejs" type="text/template">
|
||||
<ul class="navlist arango-collection-ul" id="arangoCollectionUl">
|
||||
<li class="collections-menu"><a id="cluster" class="tab" href="#collections">Cluster</a></li>
|
||||
<li class="collections-menu"><a id="nodes" class="tab" href="#collections">Nodes</a></li>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li id="dbSelect" class="dropdown databases-menu"></li>
|
||||
<li class="collections-menu"><a id="collections" class="tab" href="#collections">Collections</a></li>
|
||||
<li class="demo-menu"><a id="demo" class="tab" href="#demo">Demo</a></li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">Queries</a></li>
|
||||
<li class="graph-menu"><a id="graph" class="tab" href="#graph">Graphs</a></li>
|
||||
<li class="applications-menu">
|
||||
<a id="applications" class="tab" href="#applications">Services</a>
|
||||
</li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">AQL Editor</a></li>
|
||||
<li class="users-menu"><a id="users" class="tab" href="#manage">Users</a></li>
|
||||
<li class="query-menu"><a id="settings" class="tab" href="#settings"><i class="fa fa-cog"></i></a></li>
|
||||
<!--
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="dropdown tools-menu" id="toolsDropdown">
|
||||
<a href="#" class="tab" id="tools">Tools <b class="caret"></b></a>
|
||||
|
@ -2473,6 +2545,7 @@ if (list.length > 0) {
|
|||
<li class="dropdown-item"><a href="https://www.arangodb.com" target="_blank">ArangoDB.com</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
|
||||
<select id="arangoCollectionSelect" class="arango-collection-select">
|
||||
|
@ -2675,17 +2748,12 @@ if (list.length > 0) {
|
|||
|
||||
<script id="queryView2.ejs" type="text/template">
|
||||
|
||||
<div class="headerBar">
|
||||
<a class="arangoHeader">AQL Editor 2</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="queryContent" class="queryContent">
|
||||
|
||||
<div class="arangoToolbar arangoToolbarTop">
|
||||
<div class="pull-left">
|
||||
<button id="toggleQueries1" class="button-success"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-success" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="toggleQueries1" class="button-primary"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-primary" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
|
@ -2724,7 +2792,7 @@ if (list.length > 0) {
|
|||
<button id="exportQuery" class="button-success query-button" style="display:none">Export Queries</button>
|
||||
<button id="importQuery" class="button-success query-button" style="display:none">Import Queries</button>
|
||||
<button id="executeQuery" class="button-success query-button">Execute</button>
|
||||
<button id="explainQuery" class="button-success query-button">Explain</button>
|
||||
<button id="explainQuery" class="button-info query-button">Explain</button>
|
||||
<button id="removeResults" class="button-close query-button" style="display: none">Remove results</button>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -2851,6 +2919,32 @@ if (list.length > 0) {
|
|||
</div>
|
||||
</script>
|
||||
|
||||
<script id="subNavigationView.ejs" type="text/template">
|
||||
|
||||
<ul class="subMenuEntries left">
|
||||
<li class="subMenuEntry">
|
||||
<a class="health-info">HEALTH: </a>
|
||||
<a class="health-state">GOOD</a>
|
||||
<a class="health-icon">
|
||||
<i class="fa fa-check-circle"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="subMenuEntries right">
|
||||
<li class="subMenuEntry">
|
||||
<a>Slow Query History</a>
|
||||
</li>
|
||||
<li class="subMenuEntry">
|
||||
<a>Running Queries</a>
|
||||
</li>
|
||||
<li class="subMenuEntry active">
|
||||
<a>Editor</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</script>
|
||||
|
||||
<script id="tableView.ejs" type="text/template">
|
||||
<%
|
||||
var escaped = function (value) {
|
||||
|
@ -3090,10 +3184,13 @@ var cutByResolution = function (str) {
|
|||
|
||||
</head>
|
||||
<body>
|
||||
<div class="bodyWrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="primary">
|
||||
<div class="resizecontainer">
|
||||
<div class="navlogo">
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"/></a>
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/DEVLOGO.png"/></a>
|
||||
</div>
|
||||
<div id="progressPlaceholderIcon"></div>
|
||||
<div class="statmenu" id="statisticBar">
|
||||
|
@ -3105,6 +3202,14 @@ var cutByResolution = function (str) {
|
|||
<div class="navmenu" id="navigationBar">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="secondary">
|
||||
<div class="resizecontainer">
|
||||
<div class="subnavmenu" id="subNavigationBar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<div class="centralRow resizecontainer">
|
||||
|
@ -3122,6 +3227,8 @@ var cutByResolution = function (str) {
|
|||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="resizecontainer" id="footerBar">
|
||||
</div>
|
||||
|
@ -3133,9 +3240,9 @@ var cutByResolution = function (str) {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script src="sharedLibs.js?version=1459264721189"></script>
|
||||
<script src="libs.js?version=1459264721189"></script>
|
||||
<script src="app.js?version=1459264721189"></script>
|
||||
<script src="sharedLibs.js?version=1459957393338"></script>
|
||||
<script src="libs.js?version=1459957393338"></script>
|
||||
<script src="app.js?version=1459957393338"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -1,20 +1,29 @@
|
|||
@charset "UTF-8";
|
||||
html {
|
||||
height: 100%; }
|
||||
|
||||
body {
|
||||
background: #f5f8f0 !important;
|
||||
background: none;
|
||||
color: #333;
|
||||
display: block;
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
height: 100%;
|
||||
line-height: 20px;
|
||||
margin: 0; }
|
||||
body > .bodyWrapper {
|
||||
background-image: linear-gradient(to bottom, #e9eae1 0%, #fafbfc 100%);
|
||||
height: 100%;
|
||||
margin: 0 auto -42px;
|
||||
min-height: 100%; }
|
||||
|
||||
body,
|
||||
input,
|
||||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400; }
|
||||
|
||||
@font-face {
|
||||
|
@ -2091,10 +2100,8 @@ textarea,
|
|||
cursor: pointer; }
|
||||
|
||||
.navbar, footer.footer {
|
||||
background-color: rgba(245, 248, 240, 0.95);
|
||||
color: #fff;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
z-index: 1000; }
|
||||
|
@ -2110,12 +2117,17 @@ textarea,
|
|||
color: #be342e; }
|
||||
|
||||
.button-success, .ajax-file-upload {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
.button-success:hover, .ajax-file-upload:hover, .button-success:focus, .ajax-file-upload:focus {
|
||||
background-color: #788f3d; }
|
||||
|
||||
.button-info {
|
||||
background-color: #5bc0de; }
|
||||
.button-info:hover, .button-info:focus {
|
||||
background-color: #5bc0de; }
|
||||
|
||||
.addButton, .contentTables td.dbThSecond span {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
.addButton:hover, .contentTables td.dbThSecond span:hover, .addButton:focus, .contentTables td.dbThSecond span:focus {
|
||||
color: #788f3d; }
|
||||
|
||||
|
@ -2144,8 +2156,8 @@ textarea,
|
|||
border: 1px solid #fff;
|
||||
color: #555; }
|
||||
.button-header:hover, a.headerButton:hover, a.button-gui:hover, .button-header:focus, a.headerButton:focus, a.button-gui:focus {
|
||||
background-color: #8aa051;
|
||||
border: 1px solid #8aa051;
|
||||
background-color: #7dbc42;
|
||||
border: 1px solid #7dbc42;
|
||||
color: #fff; }
|
||||
|
||||
.button-notification {
|
||||
|
@ -2249,10 +2261,16 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
|
||||
.navbar {
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
height: 44px;
|
||||
height: auto;
|
||||
margin-bottom: 3px;
|
||||
padding-top: 6px;
|
||||
top: 0; }
|
||||
.navbar > .primary {
|
||||
background-color: rgba(0, 0, 0, 0.7); }
|
||||
.navbar > .secondary {
|
||||
background-color: rgba(255, 255, 255, 0.85);
|
||||
border-bottom: 1px solid rgba(140, 138, 137, 0.25); }
|
||||
.navbar > .resizecontainer {
|
||||
background-color: #fff; }
|
||||
.navbar .no-left-margin {
|
||||
border: 0;
|
||||
margin-left: 0; }
|
||||
|
@ -2261,8 +2279,8 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navbar .arangodbLogo {
|
||||
height: auto;
|
||||
margin-left: -5px;
|
||||
margin-top: -1px;
|
||||
width: 40%; }
|
||||
margin-top: 6px;
|
||||
width: 200px; }
|
||||
.navbar .arango-collection-select {
|
||||
position: relative;
|
||||
right: -22px;
|
||||
|
@ -2291,7 +2309,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.navlist {
|
||||
list-style: none; }
|
||||
.navlist > li {
|
||||
height: 39px; }
|
||||
line-height: 30px; }
|
||||
.navlist li {
|
||||
border-left: 1px solid transparent;
|
||||
border-right: 1px solid transparent;
|
||||
|
@ -2311,36 +2329,33 @@ 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: #a0a0a0;
|
||||
background-color: #fff;
|
||||
height: 21px;
|
||||
margin-top: 9px;
|
||||
margin-top: 14px;
|
||||
opacity: .2;
|
||||
width: 1px; }
|
||||
.navlist li.navbar-spacer.big {
|
||||
margin-left: 15px;
|
||||
margin-right: 15px; }
|
||||
margin-right: 8px; }
|
||||
.navlist li.navbar-spacer.med {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px; }
|
||||
.navlist li.navbar-spacer:hover {
|
||||
background-color: #a0a0a0; }
|
||||
.navlist .active .tab {
|
||||
border-bottom: 2px solid #8aa051;
|
||||
padding-bottom: 4px; }
|
||||
.navlist > .active {
|
||||
background-color: transparent; }
|
||||
.navlist > .active a {
|
||||
color: #000; }
|
||||
.navlist > .active:hover {
|
||||
background-color: #fff; }
|
||||
.navlist > .active:hover a {
|
||||
color: #000; }
|
||||
opacity: .65; }
|
||||
.navlist .dropdown-item:hover,
|
||||
.navlist > li:hover {
|
||||
background-color: #fff;
|
||||
border-radius: 3px; }
|
||||
.navlist .dropdown-item:hover a,
|
||||
.navlist > li:hover a {
|
||||
color: #000; }
|
||||
color: #fff;
|
||||
opacity: .65;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-transition: opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
||||
transition: opacity 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); }
|
||||
.navlist .dropdown-item {
|
||||
margin-left: 0; }
|
||||
.navlist .dropdown-item a {
|
||||
|
@ -2352,14 +2367,15 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
color: #686766; }
|
||||
|
||||
.tab {
|
||||
color: #686766;
|
||||
color: #fff;
|
||||
display: block;
|
||||
font-size: 12pt;
|
||||
font-size: 10pt;
|
||||
font-weight: 100;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-top: 9px; }
|
||||
padding-top: 9px;
|
||||
text-transform: uppercase; }
|
||||
.tab.userImg {
|
||||
padding-bottom: 5px; }
|
||||
|
||||
|
@ -2397,7 +2413,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
.script-dropdown-menu .dropdown-item a:hover {
|
||||
color: #fff; }
|
||||
.script-dropdown-menu .dropdown-item:hover {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
|
||||
.gv-dropdown-menu {
|
||||
-moz-border-radius: 0;
|
||||
|
@ -2418,7 +2434,7 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
color: #fff;
|
||||
padding-left: 5px; }
|
||||
.gv-dropdown-menu li a:focus {
|
||||
background-color: #8aa051 !important;
|
||||
background-color: #7dbc42 !important;
|
||||
background-image: none; }
|
||||
|
||||
#arangoCollectionSelect {
|
||||
|
@ -2448,10 +2464,8 @@ div.queryline input, input.search-input, .modal-body .select2-choices input, .mo
|
|||
margin-left: 22px; }
|
||||
|
||||
.footer {
|
||||
bottom: 0;
|
||||
font-size: 14px;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
z-index: 1000; }
|
||||
|
@ -2486,7 +2500,7 @@ div.footer-left {
|
|||
padding: 0;
|
||||
width: 25px; }
|
||||
div.footer-left .social-icons p:hover {
|
||||
background: #8aa051;
|
||||
background: #7dbc42;
|
||||
cursor: pointer; }
|
||||
div.footer-left .social-icons p:hover i {
|
||||
color: #fff; }
|
||||
|
@ -2516,7 +2530,7 @@ div.footer-center {
|
|||
padding: 6px 2px;
|
||||
width: 20px; }
|
||||
div.footer-center i:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div.footer-center p {
|
||||
padding-top: 5px; }
|
||||
|
@ -2538,26 +2552,26 @@ div.footer-right {
|
|||
position: relative;
|
||||
top: -1px; }
|
||||
div.footer-right .isOnline {
|
||||
color: #8aa051 !important; }
|
||||
color: #7dbc42 !important; }
|
||||
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-danger, .button-warning, .button-inactive, .button-close, .ajax-file-upload-red, .ajax-file-upload, .button-header {
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-info, .button-danger, .button-warning, .button-inactive, .button-close, .ajax-file-upload-red, .ajax-file-upload, .button-header {
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
-webkit-box-shadow: 0;
|
||||
-moz-box-shadow: 0;
|
||||
box-shadow: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 300 !important; }
|
||||
font-weight: 400 !important; }
|
||||
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-danger, .button-warning, .button-inactive, .button-close, .ajax-file-upload-red, .ajax-file-upload {
|
||||
.button-neutral, .button-primary, .button-notification, .button-success, .button-info, .button-danger, .button-warning, .button-inactive, .button-close, .ajax-file-upload-red, .ajax-file-upload {
|
||||
border: 0;
|
||||
color: #fff;
|
||||
margin-left: 10px;
|
||||
padding: 5px 16px; }
|
||||
.button-neutral:focus, .button-primary:focus, .button-notification:focus, .button-success:focus, .button-danger:focus, .button-warning:focus, .button-inactive:focus, .button-close:focus, .ajax-file-upload-red:focus, .ajax-file-upload:focus {
|
||||
.button-neutral:focus, .button-primary:focus, .button-notification:focus, .button-success:focus, .button-info:focus, .button-danger:focus, .button-warning:focus, .button-inactive:focus, .button-close:focus, .ajax-file-upload-red:focus, .ajax-file-upload:focus {
|
||||
outline: none; }
|
||||
.button-neutral i, .button-primary i, .button-notification i, .button-success i, .button-danger i, .button-warning i, .button-inactive i, .button-close i, .ajax-file-upload-red i, .ajax-file-upload i {
|
||||
.button-neutral i, .button-primary i, .button-notification i, .button-success i, .button-info i, .button-danger i, .button-warning i, .button-inactive i, .button-close i, .ajax-file-upload-red i, .ajax-file-upload i {
|
||||
margin-left: -5px; }
|
||||
|
||||
.button-header {
|
||||
|
@ -2584,7 +2598,7 @@ button.disabled,
|
|||
margin-left: 0 !important; }
|
||||
|
||||
button {
|
||||
font-family: 'Open Sans', sans-serif !important; }
|
||||
font-family: 'Lato', sans-serif !important; }
|
||||
button.btn-server {
|
||||
width: 120px; }
|
||||
button.gv-zoom-btn {
|
||||
|
@ -2646,7 +2660,7 @@ button {
|
|||
height: 36px;
|
||||
width: 36px; }
|
||||
button.gv-icon-btn.active {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
button.gv_dropdown_entry {
|
||||
height: 30px;
|
||||
margin: 4px 4px 4px 12px;
|
||||
|
@ -2741,7 +2755,7 @@ div.toolbox {
|
|||
text-align: center;
|
||||
width: 30px; }
|
||||
div.toolbox div.gv_action_button.active {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div.toolbox div.gv_action_button:first-child {
|
||||
margin-top: 0; }
|
||||
|
@ -3019,7 +3033,7 @@ div .tile, div .bigtile {
|
|||
padding-top: 2px;
|
||||
z-index: 2; }
|
||||
div .tile .iconSet span:hover, div .bigtile .iconSet span:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
div .tile .iconSet span.disabled, div .bigtile .iconSet span.disabled {
|
||||
cursor: default;
|
||||
|
@ -3061,7 +3075,7 @@ div .tile, div .bigtile {
|
|||
div .tile .tileBadge span .corneredBadge.loading, div .bigtile .tileBadge span .corneredBadge.loading {
|
||||
border-bottom-color: #ff8f35; }
|
||||
div .tile .tileBadge span .corneredBadge.loaded, div .bigtile .tileBadge span .corneredBadge.loaded {
|
||||
border-bottom-color: #8aa051; }
|
||||
border-bottom-color: #7dbc42; }
|
||||
div .tile .tileBadge span .corneredBadge.inProgress, div .bigtile .tileBadge span .corneredBadge.inProgress {
|
||||
border-bottom-color: #5bc0de; }
|
||||
div .tile .tileBadge span .corneredBadge.unloaded, div .bigtile .tileBadge span .corneredBadge.unloaded {
|
||||
|
@ -5115,7 +5129,7 @@ div .bigtile {
|
|||
|
||||
div.centralRow {
|
||||
margin-bottom: 40px;
|
||||
margin-top: 40px; }
|
||||
margin-top: 15px; }
|
||||
|
||||
div.centralContent {
|
||||
background-color: transparent;
|
||||
|
@ -5242,7 +5256,7 @@ div.dropdownInner {
|
|||
margin-left: 1px;
|
||||
margin-right: 6px; }
|
||||
div.dropdownInner ul li .fa.fa-check-circle-o, div.dropdownInner ul li .fa.fa-check-square-o, div.dropdownInner ul li .fa.fa-dot-circle-o {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
|
||||
div.queryline {
|
||||
color: #000;
|
||||
|
@ -5320,7 +5334,7 @@ div.input-append button.gv_example_toggle {
|
|||
padding-top: 12px;
|
||||
vertical-align: top; }
|
||||
div.input-append button.gv_example_toggle:hover {
|
||||
background-color: #8aa051; }
|
||||
background-color: #7dbc42; }
|
||||
|
||||
.searchEqualsLabel {
|
||||
margin-left: 6px;
|
||||
|
@ -5377,8 +5391,6 @@ div.headerBar {
|
|||
color: #fff;
|
||||
font-size: 16px;
|
||||
height: 36px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 15px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: relative; }
|
||||
|
@ -5460,7 +5472,7 @@ div.headerBar {
|
|||
font-size: 10pt;
|
||||
margin-left: 10px; }
|
||||
.breadcrumb .activeBread {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
float: left;
|
||||
font-size: 11.5pt;
|
||||
font-weight: 100; }
|
||||
|
@ -5525,7 +5537,7 @@ div.headerBar {
|
|||
|
||||
.modal-body {
|
||||
color: #736b68;
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
max-height: 410px; }
|
||||
|
@ -5899,10 +5911,10 @@ div.headerBar {
|
|||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(140, 138, 137, 0.25);
|
||||
height: 25px;
|
||||
margin-top: 3px;
|
||||
margin-left: -10px;
|
||||
margin-top: 8px;
|
||||
position: relative;
|
||||
right: 3px;
|
||||
text-align: center;
|
||||
|
@ -5973,12 +5985,12 @@ div.headerBar {
|
|||
margin-top: -4px; }
|
||||
|
||||
.ui-tooltip {
|
||||
background-color: #8aa051 !important;
|
||||
background-color: #7dbc42 !important;
|
||||
border: 0 !important;
|
||||
border-radius: 3px !important;
|
||||
box-shadow: none !important;
|
||||
color: #fff !important;
|
||||
font-family: 'Open Sans',sans-serif !important;
|
||||
font-family: 'Lato',sans-serif !important;
|
||||
font-size: 10pt !important;
|
||||
font-weight: 100 !important;
|
||||
z-index: 99999999; }
|
||||
|
@ -6003,7 +6015,7 @@ div.headerBar {
|
|||
position: relative;
|
||||
top: 5px; }
|
||||
.arangoToolbar span.action:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
cursor: pointer; }
|
||||
|
@ -6019,7 +6031,7 @@ div.headerBar {
|
|||
margin-top: 5px; }
|
||||
.arangoToolbar .pull-right i.positive,
|
||||
.arangoToolbar .pull-left i.positive {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
.arangoToolbar .pull-right i.warning,
|
||||
.arangoToolbar .pull-left i.warning {
|
||||
color: #faa732; }
|
||||
|
@ -6044,13 +6056,7 @@ div.headerBar {
|
|||
.arangoToolbar .styled-select {
|
||||
width: auto; }
|
||||
|
||||
.arangoToolbarTop {
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px; }
|
||||
|
||||
.arangoToolbarBottom {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
clear: both; }
|
||||
.arangoToolbarBottom #executeQuery {
|
||||
margin-right: 5px; }
|
||||
|
@ -6064,6 +6070,13 @@ div.headerBar {
|
|||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap; }
|
||||
.dbselection .fa {
|
||||
color: #fff;
|
||||
opacity: .3; }
|
||||
.dbselection .fa-database {
|
||||
margin-right: 5px; }
|
||||
.dbselection .fa-caret-square-o-down {
|
||||
margin-left: 5px; }
|
||||
|
||||
.dashboard-full-width-chart .dashboard-full-width-chart-inner, .dashboard-large-chart .dashboard-large-chart-inner, .dashboard-small-chart .dashboard-small-chart-inner, .dashboard-medium-chart, .dashboard-tendency-container, .dashboard-bar-chart-container {
|
||||
border-left: 0 solid #000;
|
||||
|
@ -6084,7 +6097,7 @@ div.headerBar {
|
|||
|
||||
.dataNotReadyYet {
|
||||
color: #faa732;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
text-align: center; }
|
||||
|
@ -6344,7 +6357,7 @@ div.headerBar {
|
|||
|
||||
.dygraph-label.dygraph-title {
|
||||
color: #000;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-size: 15px;
|
||||
font-weight: 400;
|
||||
text-align: left; }
|
||||
|
@ -6484,7 +6497,7 @@ toolbar {
|
|||
padding-top: 1px;
|
||||
width: 15px; }
|
||||
.vars-editor-header i:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff;
|
||||
cursor: pointer; }
|
||||
|
||||
|
@ -6538,7 +6551,7 @@ toolbar {
|
|||
.styled-select select {
|
||||
background: #fff;
|
||||
border: 1px solid #c2c2c2 !important;
|
||||
border-radius: 3px !important;
|
||||
border-radius: 0 !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
height: 30px;
|
||||
|
@ -6581,8 +6594,8 @@ toolbar {
|
|||
resize: vertical;
|
||||
width: 100%; }
|
||||
.query-dropdown-right textarea:focus {
|
||||
border-color: #8aa051;
|
||||
box-shadow: 0 0 3px #8aa051;
|
||||
border-color: #7dbc42;
|
||||
box-shadow: 0 0 3px #7dbc42;
|
||||
outline: none; }
|
||||
|
||||
.query-modal-select {
|
||||
|
@ -6651,7 +6664,7 @@ toolbar {
|
|||
display: none;
|
||||
min-height: 360px; }
|
||||
.query-div .ace-tm .ace_comment {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
.query-div .icon_arangodb {
|
||||
cursor: pointer;
|
||||
margin-bottom: 5px; }
|
||||
|
@ -6716,7 +6729,7 @@ toolbar {
|
|||
width: 22px; }
|
||||
.editor-toolbar span:hover,
|
||||
.editor-toolbar .vars-editor-header i {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
.editor-toolbar a:hover,
|
||||
.editor-toolbar span:hover {
|
||||
|
@ -6755,6 +6768,7 @@ toolbar {
|
|||
cursor: copy; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper,
|
||||
.inputEditorWrapper .aqlEditorWrapper {
|
||||
background-color: #fff;
|
||||
overflow: hidden; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper .stringtype,
|
||||
.inputEditorWrapper .aqlEditorWrapper .stringtype {
|
||||
|
@ -6774,7 +6788,7 @@ toolbar {
|
|||
.inputEditorWrapper .bindParamEditorWrapper table,
|
||||
.inputEditorWrapper .aqlEditorWrapper table {
|
||||
border-top: 0;
|
||||
font: 13px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace; }
|
||||
font-family: 'Lato', sans-serif; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table tbody,
|
||||
.inputEditorWrapper .aqlEditorWrapper table tbody {
|
||||
display: block;
|
||||
|
@ -6791,7 +6805,7 @@ toolbar {
|
|||
background-color: transparent !important; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table tr.selected,
|
||||
.inputEditorWrapper .aqlEditorWrapper table tr.selected {
|
||||
background-color: #8aa051;
|
||||
background-color: rgba(125, 188, 66, 0.64);
|
||||
color: #fff; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table tr.selected .spanWrapper,
|
||||
.inputEditorWrapper .aqlEditorWrapper table tr.selected .spanWrapper {
|
||||
|
@ -6820,7 +6834,7 @@ toolbar {
|
|||
.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa,
|
||||
.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa {
|
||||
cursor: pointer;
|
||||
font-size: 18pt;
|
||||
font-size: 16pt;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-minus-circle,
|
||||
|
@ -6828,25 +6842,35 @@ toolbar {
|
|||
margin-left: 20px; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table td .spanWrapper .fa-play-circle-o,
|
||||
.inputEditorWrapper .aqlEditorWrapper table td .spanWrapper .fa-play-circle-o {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
.inputEditorWrapper .bindParamEditorWrapper table td input,
|
||||
.inputEditorWrapper .aqlEditorWrapper table td input {
|
||||
clear: both;
|
||||
float: right;
|
||||
font: 13px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace !important;
|
||||
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: 13px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-weight: 400;
|
||||
height: 34px;
|
||||
padding: 0;
|
||||
width: 50%; }
|
||||
.inputEditorWrapper .aqlEditorWrapper,
|
||||
.inputEditorWrapper .bindParamEditorWrapper {
|
||||
height: 100%; }
|
||||
.inputEditorWrapper .aqlEditorWrapper table thead tr th,
|
||||
.inputEditorWrapper .bindParamEditorWrapper table thead tr th {
|
||||
text-align: left; }
|
||||
.inputEditorWrapper .aqlEditorWrapper table thead tr th:first-child,
|
||||
.inputEditorWrapper .bindParamEditorWrapper table thead tr th:first-child {
|
||||
padding-left: 10px; }
|
||||
.inputEditorWrapper .aqlEditorWrapper table tbody input,
|
||||
.inputEditorWrapper .bindParamEditorWrapper table tbody input {
|
||||
width: 100% !important; }
|
||||
.inputEditorWrapper .aqlEditorWrapper .selectError,
|
||||
.inputEditorWrapper .bindParamEditorWrapper .selectError {
|
||||
background: #da4f49; }
|
||||
|
@ -6883,7 +6907,7 @@ toolbar {
|
|||
.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar {
|
||||
background-color: #fff;
|
||||
border-bottom: 1px solid rgba(140, 138, 137, 0.25);
|
||||
font: 13px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 34px; }
|
||||
.inputEditorWrapper .aqlEditorWrapper .previewWrapper .previewBar span,
|
||||
.inputEditorWrapper .bindParamEditorWrapper .previewWrapper .previewBar span {
|
||||
|
@ -6905,6 +6929,8 @@ toolbar {
|
|||
clear: both;
|
||||
margin-top: 0;
|
||||
width: 100%; }
|
||||
.queryContent .arangoToolbar .fa.fa-star, .queryContent .arangoToolbar .fa.fa-star-o {
|
||||
color: #ff0; }
|
||||
|
||||
.outputEditors {
|
||||
margin-bottom: 60px; }
|
||||
|
@ -6946,7 +6972,7 @@ toolbar {
|
|||
.innerContent {
|
||||
background-color: #fff;
|
||||
border: 1px solid rgba(140, 138, 137, 0.25);
|
||||
border-radius: 3px;
|
||||
border-radius: 2px;
|
||||
min-height: 200px;
|
||||
padding-top: 13px; }
|
||||
|
||||
|
@ -7044,7 +7070,7 @@ toolbar {
|
|||
.jsoneditor .menu button {
|
||||
border: 0 !important; }
|
||||
.jsoneditor .menu button:hover {
|
||||
background-color: #8aa051;
|
||||
background-color: #7dbc42;
|
||||
color: #fff; }
|
||||
.jsoneditor .search .frame {
|
||||
border: 0 !important;
|
||||
|
@ -7506,7 +7532,7 @@ input.gv-radio-button {
|
|||
width: auto; }
|
||||
|
||||
.collectionTh {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato Sans', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
|
@ -7560,7 +7586,7 @@ input.gv-radio-button {
|
|||
min-height: 200px; }
|
||||
|
||||
.collectionInfoTh2 {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
width: 150px; }
|
||||
|
@ -7577,7 +7603,7 @@ input.gv-radio-button {
|
|||
.figuresHeader {
|
||||
border-bottom: 1px solid #c2c2c2; }
|
||||
.figuresHeader th {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important; }
|
||||
|
||||
#collectionIndexTable {
|
||||
|
@ -7716,7 +7742,7 @@ input.gv-radio-button {
|
|||
font-size: 11pt;
|
||||
min-width: 55px; }
|
||||
.document-info .document-thin-font {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
font-family: droid sans mono, monospace, courier new, courier, sans-serif;
|
||||
font-size: 11pt; }
|
||||
.document-info .document-type-container div {
|
||||
|
@ -7785,7 +7811,7 @@ input.gv-radio-button {
|
|||
margin-top: 5px; }
|
||||
|
||||
#progressPlaceholderIcon {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
float: left;
|
||||
font-size: 22px;
|
||||
margin-left: 10px;
|
||||
|
@ -7926,6 +7952,40 @@ input.gv-radio-button {
|
|||
outline-color: transparent;
|
||||
outline-style: none; }
|
||||
|
||||
.graphLabel {
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 10pt;
|
||||
font-weight: 600;
|
||||
margin-top: -25px;
|
||||
opacity: .5;
|
||||
padding-bottom: 20px;
|
||||
text-align: center;
|
||||
text-transform: uppercase; }
|
||||
|
||||
.cluster-graphs > div .graphWrapper {
|
||||
border: 1px solid rgba(140, 138, 137, 0.25);
|
||||
margin-left: -1px;
|
||||
margin-top: -1px; }
|
||||
.cluster-graphs > div .graphWrapper .nv-controlsWrap {
|
||||
display: none; }
|
||||
.cluster-graphs > div .graphWrapper svg {
|
||||
height: 250px;
|
||||
margin-left: -17px; }
|
||||
|
||||
.cluster-values {
|
||||
margin-top: -13px; }
|
||||
.cluster-values > div .valueWrapper {
|
||||
border: 1px solid rgba(140, 138, 137, 0.25);
|
||||
margin-left: -1px;
|
||||
margin-top: -1px; }
|
||||
.cluster-values > div .valueWrapper .value {
|
||||
color: #7dbc42;
|
||||
font-size: 24pt;
|
||||
line-height: 150px;
|
||||
text-align: center; }
|
||||
.cluster-values > div .valueWrapper div:first-child {
|
||||
height: 150px; }
|
||||
|
||||
.application-detail-view section.info {
|
||||
float: left;
|
||||
padding: 13px 0 0; }
|
||||
|
@ -8084,7 +8144,7 @@ main {
|
|||
margin-left: -16px; }
|
||||
|
||||
.tests-result .pass {
|
||||
color: #8aa051; }
|
||||
color: #7dbc42; }
|
||||
|
||||
.tests-result .fail {
|
||||
color: #da4f49; }
|
||||
|
@ -8162,6 +8222,48 @@ main {
|
|||
height: 28px;
|
||||
margin-bottom: -1px; }
|
||||
|
||||
.subnavmenu {
|
||||
background-color: #fff;
|
||||
height: auto; }
|
||||
.subnavmenu ul {
|
||||
list-style: none;
|
||||
margin: 0; }
|
||||
.subnavmenu ul.left {
|
||||
float: left;
|
||||
width: 120px; }
|
||||
.subnavmenu ul.left li {
|
||||
float: left;
|
||||
padding: 0 10px 0 0; }
|
||||
.subnavmenu ul.right {
|
||||
float: right;
|
||||
width: 80%; }
|
||||
.subnavmenu ul.right li {
|
||||
float: right;
|
||||
padding: 0 0 0 40px; }
|
||||
.subnavmenu ul li {
|
||||
font-size: 9pt;
|
||||
line-height: 30px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px; }
|
||||
.subnavmenu ul li.active a {
|
||||
color: rgba(51, 51, 51, 0.6); }
|
||||
.subnavmenu ul li a {
|
||||
color: #000;
|
||||
text-transform: uppercase; }
|
||||
.subnavmenu .health-info,
|
||||
.subnavmenu .db-info,
|
||||
.subnavmenu .db-state,
|
||||
.subnavmenu .health-state {
|
||||
font-weight: 600; }
|
||||
.subnavmenu .health-info,
|
||||
.subnavmenu .db-info,
|
||||
.subnavmenu .db-icon {
|
||||
color: rgba(0, 0, 0, 0.64); }
|
||||
.subnavmenu .health-state {
|
||||
color: #7dbc42; }
|
||||
.subnavmenu .health-icon {
|
||||
color: #7dbc42; }
|
||||
|
||||
.arangoDataTable {
|
||||
border-spacing: 0 0;
|
||||
position: relative;
|
||||
|
@ -8191,7 +8293,7 @@ main {
|
|||
.arangoDataTable .dataTable .noPointer tr {
|
||||
cursor: default; }
|
||||
.arangoDataTable .selected-row {
|
||||
background-color: #8aa051 !important; }
|
||||
background-color: #7dbc42 !important; }
|
||||
.arangoDataTable .selected-row div {
|
||||
color: #fff !important; }
|
||||
.arangoDataTable .selected-row li {
|
||||
|
@ -8287,7 +8389,7 @@ table .sorting {
|
|||
.edit-index-table tfoot {
|
||||
border-top: 1px solid #f7f3f2; }
|
||||
.edit-index-table tfoot i {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
font-size: 19px;
|
||||
margin-left: 16px;
|
||||
margin-top: 5px; }
|
||||
|
@ -8316,7 +8418,7 @@ table .sorting {
|
|||
.index-button-bar {
|
||||
float: right; }
|
||||
.index-button-bar i {
|
||||
color: #8aa051;
|
||||
color: #7dbc42;
|
||||
font-size: 16pt;
|
||||
margin-right: 43px; }
|
||||
.index-button-bar i:hover {
|
||||
|
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.1 KiB |
File diff suppressed because one or more lines are too long
|
@ -1,9 +1,12 @@
|
|||
</head>
|
||||
<body>
|
||||
<div class="bodyWrapper">
|
||||
|
||||
<nav class="navbar">
|
||||
<div class="primary">
|
||||
<div class="resizecontainer">
|
||||
<div class="navlogo">
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/arangodb_logo_small.png"/></a>
|
||||
<a class="logo" href="#"><img class="arangodbLogo" src="img/DEVLOGO.png"/></a>
|
||||
</div>
|
||||
<div id="progressPlaceholderIcon"></div>
|
||||
<div class="statmenu" id="statisticBar">
|
||||
|
@ -15,6 +18,14 @@
|
|||
<div class="navmenu" id="navigationBar">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="secondary">
|
||||
<div class="resizecontainer">
|
||||
<div class="subnavmenu" id="subNavigationBar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<div class="centralRow resizecontainer">
|
||||
|
@ -32,6 +43,8 @@
|
|||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="footer">
|
||||
<div class="resizecontainer" id="footerBar">
|
||||
</div>
|
||||
|
|
|
@ -7,3 +7,4 @@
|
|||
<link href="css/style.css" rel="stylesheet">
|
||||
<link href="css/sass.css" rel="stylesheet">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
|
||||
<link href='https://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,38 @@
|
|||
/*global window, Backbone, console */
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
window.AutomaticRetryCollection = Backbone.Collection.extend({
|
||||
|
||||
_retryCount: 0,
|
||||
|
||||
|
||||
checkRetries: function() {
|
||||
var self = this;
|
||||
this.updateUrl();
|
||||
if (this._retryCount > 10) {
|
||||
window.setTimeout(function() {
|
||||
self._retryCount = 0;
|
||||
}, 10000);
|
||||
window.App.clusterUnreachable();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
successFullTry: function() {
|
||||
this._retryCount = 0;
|
||||
},
|
||||
|
||||
failureTry: function(retry, ignore, err) {
|
||||
if (err.status === 401) {
|
||||
window.App.requestAuth();
|
||||
} else {
|
||||
window.App.clusterPlan.rotateCoordinator();
|
||||
this._retryCount++;
|
||||
retry();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
|
@ -0,0 +1,31 @@
|
|||
/*global Backbone, window */
|
||||
window.ClusterStatisticsCollection = Backbone.Collection.extend({
|
||||
model: window.Statistics,
|
||||
|
||||
url: "/_admin/statistics",
|
||||
|
||||
updateUrl: function() {
|
||||
this.url = window.App.getNewRoute(this.host) + this.url;
|
||||
},
|
||||
|
||||
initialize: function(models, options) {
|
||||
this.host = options.host;
|
||||
window.App.registerForUpdate(this);
|
||||
},
|
||||
|
||||
// The callback has to be invokeable for each result individually
|
||||
// TODO RE-ADD Auth
|
||||
/*
|
||||
fetch: function(callback, errCB) {
|
||||
this.forEach(function (m) {
|
||||
m.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: function() {
|
||||
errCB(m);
|
||||
}
|
||||
}).done(function() {
|
||||
callback(m);
|
||||
});
|
||||
});
|
||||
}*/
|
||||
});
|
|
@ -0,0 +1,88 @@
|
|||
/*global window, Backbone, console */
|
||||
(function() {
|
||||
"use strict";
|
||||
window.ClusterCoordinators = window.AutomaticRetryCollection.extend({
|
||||
model: window.ClusterCoordinator,
|
||||
|
||||
url: "/_admin/aardvark/cluster/Coordinators",
|
||||
|
||||
updateUrl: function() {
|
||||
this.url = window.App.getNewRoute("Coordinators");
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
//window.App.registerForUpdate(this);
|
||||
},
|
||||
|
||||
statusClass: function(s) {
|
||||
switch (s) {
|
||||
case "ok":
|
||||
return "success";
|
||||
case "warning":
|
||||
return "warning";
|
||||
case "critical":
|
||||
return "danger";
|
||||
case "missing":
|
||||
return "inactive";
|
||||
default:
|
||||
return "danger";
|
||||
}
|
||||
},
|
||||
|
||||
getStatuses: function(cb, nextStep) {
|
||||
if(!this.checkRetries()) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.getStatuses.bind(self, cb, nextStep))
|
||||
}).done(function() {
|
||||
self.successFullTry();
|
||||
self.forEach(function(m) {
|
||||
cb(self.statusClass(m.get("status")), m.get("address"));
|
||||
});
|
||||
nextStep();
|
||||
});
|
||||
},
|
||||
|
||||
byAddress: function (res, callback) {
|
||||
if(!this.checkRetries()) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.byAddress.bind(self, res, callback))
|
||||
}).done(function() {
|
||||
self.successFullTry();
|
||||
res = res || {};
|
||||
self.forEach(function(m) {
|
||||
var addr = m.get("address");
|
||||
addr = addr.split(":")[0];
|
||||
res[addr] = res[addr] || {};
|
||||
res[addr].coords = res[addr].coords || [];
|
||||
res[addr].coords.push(m);
|
||||
});
|
||||
callback(res);
|
||||
});
|
||||
},
|
||||
|
||||
checkConnection: function(callback) {
|
||||
var self = this;
|
||||
if(!this.checkRetries()) {
|
||||
return;
|
||||
}
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.checkConnection.bind(self, callback))
|
||||
}).done(function() {
|
||||
self.successFullTry();
|
||||
callback();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
||||
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
/*global window, Backbone, _, console */
|
||||
(function() {
|
||||
|
||||
"use strict";
|
||||
|
||||
window.ClusterServers = window.AutomaticRetryCollection.extend({
|
||||
|
||||
model: window.ClusterServer,
|
||||
host: '',
|
||||
|
||||
url: "/_admin/aardvark/cluster/DBServers",
|
||||
|
||||
updateUrl: function() {
|
||||
//this.url = window.App.getNewRoute("DBServers");
|
||||
this.url = window.App.getNewRoute(this.host) + this.url;
|
||||
},
|
||||
|
||||
initialize: function(models, options) {
|
||||
this.host = options.host;
|
||||
window.App.registerForUpdate(this);
|
||||
},
|
||||
|
||||
statusClass: function(s) {
|
||||
switch (s) {
|
||||
case "ok":
|
||||
return "success";
|
||||
case "warning":
|
||||
return "warning";
|
||||
case "critical":
|
||||
return "danger";
|
||||
case "missing":
|
||||
return "inactive";
|
||||
default:
|
||||
return "danger";
|
||||
}
|
||||
},
|
||||
|
||||
getStatuses: function(cb) {
|
||||
if(!this.checkRetries()) {
|
||||
return;
|
||||
}
|
||||
var self = this,
|
||||
completed = function() {
|
||||
self.successFullTry();
|
||||
self._retryCount = 0;
|
||||
self.forEach(function(m) {
|
||||
cb(self.statusClass(m.get("status")), m.get("address"));
|
||||
});
|
||||
};
|
||||
// This is the first function called in
|
||||
// Each update loop
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.getStatuses.bind(self, cb))
|
||||
}).done(completed);
|
||||
},
|
||||
|
||||
byAddress: function (res, callback) {
|
||||
if(!this.checkRetries()) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.byAddress.bind(self, res, callback))
|
||||
}).done(function() {
|
||||
self.successFullTry();
|
||||
res = res || {};
|
||||
self.forEach(function(m) {
|
||||
var addr = m.get("address");
|
||||
addr = addr.split(":")[0];
|
||||
res[addr] = res[addr] || {};
|
||||
res[addr].dbs = res[addr].dbs || [];
|
||||
res[addr].dbs.push(m);
|
||||
});
|
||||
callback(res);
|
||||
});
|
||||
},
|
||||
|
||||
getList: function(callback) {
|
||||
throw "Do not use";
|
||||
/*
|
||||
var self = this;
|
||||
this.fetch({
|
||||
beforeSend: window.App.addAuth.bind(window.App),
|
||||
error: self.failureTry.bind(self, self.getList.bind(self, callback))
|
||||
}).done(function() {
|
||||
self.successFullTry();
|
||||
var res = [];
|
||||
_.each(self.where({role: "primary"}), function(m) {
|
||||
var e = {};
|
||||
e.primary = m.forList();
|
||||
if (m.get("secondary")) {
|
||||
e.secondary = self.get(m.get("secondary")).forList();
|
||||
}
|
||||
res.push(e);
|
||||
});
|
||||
callback(res);
|
||||
});
|
||||
*/
|
||||
},
|
||||
|
||||
getOverview: function() {
|
||||
throw "Do not use DbServer.getOverview";
|
||||
/*
|
||||
this.fetch({
|
||||
async: false,
|
||||
beforeSend: window.App.addAuth.bind(window.App)
|
||||
});
|
||||
var res = {
|
||||
plan: 0,
|
||||
having: 0,
|
||||
status: "ok"
|
||||
},
|
||||
self = this,
|
||||
updateStatus = function(to) {
|
||||
if (res.status === "critical") {
|
||||
return;
|
||||
}
|
||||
res.status = to;
|
||||
};
|
||||
_.each(this.where({role: "primary"}), function(m) {
|
||||
res.plan++;
|
||||
switch (m.get("status")) {
|
||||
case "ok":
|
||||
res.having++;
|
||||
break;
|
||||
case "warning":
|
||||
res.having++;
|
||||
updateStatus("warning");
|
||||
break;
|
||||
case "critical":
|
||||
var bkp = self.get(m.get("secondary"));
|
||||
if (!bkp || bkp.get("status") === "critical") {
|
||||
updateStatus("critical");
|
||||
} else {
|
||||
if (bkp.get("status") === "ok") {
|
||||
res.having++;
|
||||
updateStatus("warning");
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.debug("Undefined server state occurred. This is still in development");
|
||||
}
|
||||
});
|
||||
return res;
|
||||
*/
|
||||
}
|
||||
});
|
||||
|
||||
}());
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
/*jshint browser: true */
|
||||
/*jshint unused: false */
|
||||
/*global window, Backbone, $ */
|
||||
(function() {
|
||||
"use strict";
|
||||
window.CoordinatorCollection = Backbone.Collection.extend({
|
||||
model: window.Coordinator,
|
||||
|
||||
url: "/_admin/aardvark/cluster/Coordinators"
|
||||
|
||||
});
|
||||
}());
|
|
@ -0,0 +1,31 @@
|
|||
/*global window, Backbone */
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
window.ClusterCoordinator = Backbone.Model.extend({
|
||||
|
||||
defaults: {
|
||||
"name": "",
|
||||
"status": "ok",
|
||||
"address": "",
|
||||
"protocol": ""
|
||||
},
|
||||
|
||||
idAttribute: "name",
|
||||
/*
|
||||
url: "/_admin/aardvark/cluster/Coordinators";
|
||||
|
||||
updateUrl: function() {
|
||||
this.url = window.getNewRoute("Coordinators");
|
||||
},
|
||||
*/
|
||||
forList: function() {
|
||||
return {
|
||||
name: this.get("name"),
|
||||
status: this.get("status"),
|
||||
url: this.get("url")
|
||||
};
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
|
@ -0,0 +1,31 @@
|
|||
/*global window, Backbone */
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
window.ClusterServer = Backbone.Model.extend({
|
||||
defaults: {
|
||||
name: "",
|
||||
address: "",
|
||||
role: "",
|
||||
status: "ok"
|
||||
},
|
||||
|
||||
idAttribute: "name",
|
||||
/*
|
||||
url: "/_admin/aardvark/cluster/DBServers";
|
||||
|
||||
updateUrl: function() {
|
||||
this.url = window.getNewRoute("DBServers");
|
||||
},
|
||||
*/
|
||||
forList: function() {
|
||||
return {
|
||||
name: this.get("name"),
|
||||
address: this.get("address"),
|
||||
status: this.get("status")
|
||||
};
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
/*global window, Backbone */
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
window.Coordinator = Backbone.Model.extend({
|
||||
|
||||
defaults: {
|
||||
address: "",
|
||||
protocol: "",
|
||||
name: "",
|
||||
status: ""
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
|
@ -6,8 +6,13 @@
|
|||
"use strict";
|
||||
|
||||
window.Router = Backbone.Router.extend({
|
||||
|
||||
toUpdate: [],
|
||||
dbServers: [],
|
||||
isCluster: false,
|
||||
|
||||
routes: {
|
||||
"": "dashboard",
|
||||
"": "cluster",
|
||||
"dashboard": "dashboard",
|
||||
"collections": "collections",
|
||||
"new": "newCollection",
|
||||
|
@ -26,6 +31,7 @@
|
|||
"graph/:name": "showGraph",
|
||||
"userManagement": "userManagement",
|
||||
"userProfile": "userProfile",
|
||||
"cluster": "cluster",
|
||||
"logs": "logs",
|
||||
"test": "test"
|
||||
},
|
||||
|
@ -93,6 +99,19 @@
|
|||
|
||||
this.arangoCollectionsStore = new window.arangoCollections();
|
||||
this.arangoDocumentStore = new window.arangoDocument();
|
||||
|
||||
//Cluster
|
||||
this.coordinatorCollection = new window.ClusterCoordinators();
|
||||
this.coordinatorCollection.fetch({
|
||||
error: function() {
|
||||
self.isCluster = false;
|
||||
},
|
||||
success: function() {
|
||||
self.isCluster = true;
|
||||
self.fetchDBS();
|
||||
}
|
||||
});
|
||||
|
||||
arangoHelper.setDocumentStore(this.arangoDocumentStore);
|
||||
|
||||
this.arangoCollectionsStore.fetch();
|
||||
|
@ -130,6 +149,34 @@
|
|||
|
||||
},
|
||||
|
||||
cluster: function (initialized) {
|
||||
this.checkUser();
|
||||
if (!initialized) {
|
||||
this.waitForInit(this.cluster.bind(this));
|
||||
return;
|
||||
}
|
||||
this.clusterView = new window.ClusterView({
|
||||
coordinators: this.coordinatorCollection,
|
||||
dbServers: this.dbServers
|
||||
});
|
||||
this.clusterView.render();
|
||||
},
|
||||
|
||||
addAuth: function (xhr) {
|
||||
var u = this.clusterPlan.get("user");
|
||||
if (!u) {
|
||||
xhr.abort();
|
||||
if (!this.isCheckingUser) {
|
||||
this.requestAuth();
|
||||
}
|
||||
return;
|
||||
}
|
||||
var user = u.name;
|
||||
var pass = u.passwd;
|
||||
var token = user.concat(":", pass);
|
||||
xhr.setRequestHeader('Authorization', "Basic " + btoa(token));
|
||||
},
|
||||
|
||||
logs: function (initialized) {
|
||||
this.checkUser();
|
||||
if (!initialized) {
|
||||
|
@ -505,7 +552,32 @@
|
|||
});
|
||||
}
|
||||
this.userManagementView.render(true);
|
||||
},
|
||||
|
||||
fetchDBS: function() {
|
||||
var self = this;
|
||||
|
||||
this.coordinatorCollection.each(function(coordinator) {
|
||||
self.dbServers.push(
|
||||
new window.ClusterServers([], {
|
||||
host: coordinator.get('address')
|
||||
})
|
||||
);
|
||||
});
|
||||
_.each(this.dbServers, function(dbservers) {
|
||||
dbservers.fetch();
|
||||
});
|
||||
},
|
||||
|
||||
getNewRoute: function(host) {
|
||||
return "http://" + host;
|
||||
},
|
||||
|
||||
registerForUpdate: function(o) {
|
||||
this.toUpdate.push(o);
|
||||
o.updateUrl();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}());
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
<!-- obsolete file -->
|
|
@ -0,0 +1,65 @@
|
|||
<script id="clusterView.ejs" type="text/template">
|
||||
|
||||
<div id="clusterContent" class="innerContent">
|
||||
|
||||
<div class="pure-g cluster-values">
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterNodes" class="value">7</div>
|
||||
<div class="graphLabel">Nodes</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterRam" class="value">23%</div>
|
||||
<div class="graphLabel">RAM</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnections" class="value">33</div>
|
||||
<div class="graphLabel">Connections</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-2 pure-u-md-1-4">
|
||||
<div class="valueWrapper">
|
||||
<div id="clusterConnectionsAvg" class="value">22</div>
|
||||
<div class="graphLabel">Connections AVG</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="pure-g cluster-graphs">
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-24-24 pure-u-lg-12-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterData'></div>
|
||||
<div class="graphLabel">DATA</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterHttp'></div>
|
||||
<div class="graphLabel">HTTP</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pure-u-1-1 pure-u-md-12-24 pure-u-lg-6-24">
|
||||
<div class="graphWrapper">
|
||||
<div id='clusterAverage'></div>
|
||||
<div class="graphLabel">TRANSFER SIZE</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</script>
|
|
@ -1,5 +1,7 @@
|
|||
<script id="dbSelectionView.ejs" type="text/template">
|
||||
<a href="#" class="tab" id="dbselection"></span><div class="dbselection">DB: <%=current%></div> <b class="caret"></b></a>
|
||||
<a href="#" class="tab" id="dbselection"></span><div class="dbselection"><span class="db-name">DB: </span> <%=current%><i class="fa fa-caret-square-o-down"></i></div>
|
||||
<!-- <b class="caret"></b> -->
|
||||
</a>
|
||||
<ul class="link-dropdown-menu" id="dbs_dropdown">
|
||||
<%
|
||||
if (list.length > 0) {
|
||||
|
|
|
@ -1,13 +1,18 @@
|
|||
<script id="navigationView.ejs" type="text/template">
|
||||
<ul class="navlist arango-collection-ul" id="arangoCollectionUl">
|
||||
<li class="collections-menu"><a id="cluster" class="tab" href="#collections">Cluster</a></li>
|
||||
<li class="collections-menu"><a id="nodes" class="tab" href="#collections">Nodes</a></li>
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li id="dbSelect" class="dropdown databases-menu"></li>
|
||||
<li class="collections-menu"><a id="collections" class="tab" href="#collections">Collections</a></li>
|
||||
<li class="demo-menu"><a id="demo" class="tab" href="#demo">Demo</a></li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">Queries</a></li>
|
||||
<li class="graph-menu"><a id="graph" class="tab" href="#graph">Graphs</a></li>
|
||||
<li class="applications-menu">
|
||||
<a id="applications" class="tab" href="#applications">Services</a>
|
||||
</li>
|
||||
<li class="query-menu"><a id="query" class="tab" href="#query">AQL Editor</a></li>
|
||||
<li class="users-menu"><a id="users" class="tab" href="#manage">Users</a></li>
|
||||
<li class="query-menu"><a id="settings" class="tab" href="#settings"><i class="fa fa-cog"></i></a></li>
|
||||
<!--
|
||||
<li class="navbar-spacer big"></li>
|
||||
<li class="dropdown tools-menu" id="toolsDropdown">
|
||||
<a href="#" class="tab" id="tools">Tools <b class="caret"></b></a>
|
||||
|
@ -52,6 +57,7 @@
|
|||
<li class="dropdown-item"><a href="https://www.arangodb.com" target="_blank">ArangoDB.com</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
-->
|
||||
</ul>
|
||||
|
||||
<select id="arangoCollectionSelect" class="arango-collection-select">
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
<script id="queryView2.ejs" type="text/template">
|
||||
|
||||
<div class="headerBar">
|
||||
<a class="arangoHeader">AQL Editor 2</a>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="queryContent" class="queryContent">
|
||||
|
||||
<div class="arangoToolbar arangoToolbarTop">
|
||||
<div class="pull-left">
|
||||
<button id="toggleQueries1" class="button-success"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-success" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="toggleQueries1" class="button-primary"><i class="fa fa-star-o"></i>Queries</button>
|
||||
<button id="toggleQueries2" class="button-primary" style="display: none"><i class="fa fa-star"></i>Queries</button>
|
||||
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
|
||||
</div>
|
||||
|
||||
|
@ -49,7 +44,7 @@
|
|||
<button id="exportQuery" class="button-success query-button" style="display:none">Export Queries</button>
|
||||
<button id="importQuery" class="button-success query-button" style="display:none">Import Queries</button>
|
||||
<button id="executeQuery" class="button-success query-button">Execute</button>
|
||||
<button id="explainQuery" class="button-success query-button">Explain</button>
|
||||
<button id="explainQuery" class="button-info query-button">Explain</button>
|
||||
<button id="removeResults" class="button-close query-button" style="display: none">Remove results</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<script id="subNavigationView.ejs" type="text/template">
|
||||
|
||||
<ul class="subMenuEntries left">
|
||||
<li class="subMenuEntry">
|
||||
<a class="health-info">HEALTH: </a>
|
||||
<a class="health-state">GOOD</a>
|
||||
<a class="health-icon">
|
||||
<i class="fa fa-check-circle"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="subMenuEntries right">
|
||||
<li class="subMenuEntry">
|
||||
<a>Slow Query History</a>
|
||||
</li>
|
||||
<li class="subMenuEntry">
|
||||
<a>Running Queries</a>
|
||||
</li>
|
||||
<li class="subMenuEntry active">
|
||||
<a>Editor</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</script>
|
Binary file not shown.
|
@ -0,0 +1,513 @@
|
|||
/*jshint browser: true */
|
||||
/*jshint unused: false */
|
||||
/*global arangoHelper, Backbone, templateEngine, $, window, _, nv, d3 */
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
window.ClusterView = Backbone.View.extend({
|
||||
|
||||
el: '#content',
|
||||
template: templateEngine.createTemplate("clusterView.ejs"),
|
||||
|
||||
events: {
|
||||
},
|
||||
|
||||
historyInit: false,
|
||||
interval: 3000,
|
||||
maxValues: 100,
|
||||
knownServers: [],
|
||||
chartData: {},
|
||||
charts: {},
|
||||
nvcharts: [],
|
||||
startHistory: {},
|
||||
startHistoryAccumulated: {},
|
||||
|
||||
initialize: function () {
|
||||
var self = this;
|
||||
|
||||
if (window.App.isCluster) {
|
||||
this.dbServers = this.options.dbServers;
|
||||
this.coordinators = this.options.coordinators;
|
||||
this.updateServerTime();
|
||||
|
||||
//start polling with interval
|
||||
window.setInterval(function() {
|
||||
var callback = function(data) {
|
||||
self.rerenderValues(data);
|
||||
self.rerenderGraphs(data);
|
||||
};
|
||||
|
||||
// now fetch the statistics history
|
||||
self.getCoordStatHistory(callback);
|
||||
}, this.interval);
|
||||
}
|
||||
},
|
||||
|
||||
render: function () {
|
||||
this.$el.html(this.template.render({}));
|
||||
this.initValues();
|
||||
this.getServerStatistics();
|
||||
|
||||
this.initGraphs();
|
||||
},
|
||||
|
||||
updateServerTime: function() {
|
||||
this.serverTime = new Date().getTime();
|
||||
},
|
||||
|
||||
getServerStatistics: function() {
|
||||
var self = this;
|
||||
|
||||
this.data = undefined;
|
||||
|
||||
var coord = this.coordinators.first();
|
||||
|
||||
this.statCollectCoord = new window.ClusterStatisticsCollection([],
|
||||
{host: coord.get('address')}
|
||||
);
|
||||
this.statCollectDBS = new window.ClusterStatisticsCollection([],
|
||||
{host: coord.get('address')}
|
||||
);
|
||||
|
||||
// create statistics collector for DB servers
|
||||
var dbsmodels = [];
|
||||
_.each(this.dbServers, function(dbs) {
|
||||
dbs.each(function(model) {
|
||||
dbsmodels.push(model);
|
||||
});
|
||||
});
|
||||
|
||||
_.each(dbsmodels, function (dbserver) {
|
||||
if (dbserver.get("status") !== "ok") {
|
||||
return;
|
||||
}
|
||||
|
||||
if (self.knownServers.indexOf(dbserver.id) === -1) {
|
||||
self.knownServers.push(dbserver.id);
|
||||
}
|
||||
|
||||
var stat = new window.Statistics({name: dbserver.id});
|
||||
stat.url = coord.get("protocol") + "://"
|
||||
+ coord.get("address")
|
||||
+ "/_admin/clusterStatistics?DBserver="
|
||||
+ dbserver.get("name");
|
||||
|
||||
self.statCollectDBS.add(stat);
|
||||
});
|
||||
|
||||
// create statistics collector for coordinator
|
||||
this.coordinators.forEach(function (coordinator) {
|
||||
if (coordinator.get("status") !== "ok") {return;}
|
||||
|
||||
if (self.knownServers.indexOf(coordinator.id) === -1) {
|
||||
self.knownServers.push(coordinator.id);
|
||||
}
|
||||
|
||||
var stat = new window.Statistics({name: coordinator.id});
|
||||
|
||||
stat.url = coordinator.get("protocol") + "://"
|
||||
+ coordinator.get("address")
|
||||
+ "/_admin/statistics";
|
||||
|
||||
self.statCollectCoord.add(stat);
|
||||
});
|
||||
|
||||
// first load history callback
|
||||
var callback = function(data) {
|
||||
self.rerenderValues(data);
|
||||
self.rerenderGraphs(data);
|
||||
};
|
||||
|
||||
// now fetch the statistics history
|
||||
self.getCoordStatHistory(callback);
|
||||
|
||||
this.updateValues();
|
||||
},
|
||||
|
||||
rerenderValues: function(data) {
|
||||
//Connections
|
||||
this.renderValue('#clusterConnections', Math.round(data.clientConnectionsCurrent));
|
||||
this.renderValue('#clusterConnectionsAvg', Math.round(data.clientConnections15M));
|
||||
|
||||
//RAM
|
||||
var totalMem = data.physicalMemory;
|
||||
var usedMem = data.residentSizeCurrent;
|
||||
this.renderValue('#clusterRam', [usedMem, totalMem]);
|
||||
},
|
||||
|
||||
renderValue: function(id, value) {
|
||||
if (typeof value === 'number') {
|
||||
$(id).html(value);
|
||||
}
|
||||
else if ($.isArray(value)) {
|
||||
var a = value[0], b = value[1];
|
||||
|
||||
var percent = 1 / (b/a) * 100;
|
||||
$(id).html(percent.toFixed(1) + ' %');
|
||||
}
|
||||
},
|
||||
|
||||
updateValues: function() {
|
||||
this.renderValue('#clusterNodes', this.statCollectCoord.size());
|
||||
this.renderValue('#clusterRam', [1024, 4096]);
|
||||
},
|
||||
|
||||
initValues: function() {
|
||||
|
||||
var values = [
|
||||
"#clusterNodes",
|
||||
"#clusterRam",
|
||||
"#clusterConnections",
|
||||
"#clusterConnectionsAvg",
|
||||
];
|
||||
|
||||
_.each(values, function(id) {
|
||||
$(id).html('<i class="fa fa-spin fa-circle-o-notch" style="color: rgba(0, 0, 0, 0.64);"></i>');
|
||||
});
|
||||
},
|
||||
|
||||
graphData: {
|
||||
data: {
|
||||
sent: [],
|
||||
received: []
|
||||
},
|
||||
http: [],
|
||||
average: []
|
||||
},
|
||||
|
||||
checkArraySizes: function() {
|
||||
var self = this;
|
||||
|
||||
_.each(self.chartsOptions, function(val1, key1) {
|
||||
_.each(val1.options, function(val2, key2) {
|
||||
console.log(self.chartsOptions[key1].options[key2].values.length);
|
||||
if (val2.values.length === self.maxValues) {
|
||||
self.chartsOptions[key1].options[key2].values.shift();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
formatDataForGraph: function(data) {
|
||||
var self = this;
|
||||
|
||||
if (!self.historyInit) {
|
||||
_.each(data.times, function(time, key) {
|
||||
|
||||
//DATA
|
||||
self.chartsOptions[0].options[0].values.push({x:time, y: data.bytesSentPerSecond[key]});
|
||||
self.chartsOptions[0].options[1].values.push({x:time, y: data.bytesReceivedPerSecond[key]});
|
||||
|
||||
//HTTP
|
||||
self.chartsOptions[1].options[0].values.push({x:time, y: self.calcTotalHttp(data.http, key)});
|
||||
|
||||
//AVERAGE
|
||||
self.chartsOptions[2].options[0].values.push({x:time, y: data.avgRequestTime[key]});
|
||||
});
|
||||
self.historyInit = true;
|
||||
}
|
||||
else {
|
||||
self.checkArraySizes();
|
||||
|
||||
//DATA
|
||||
self.chartsOptions[0].options[0].values.push({
|
||||
x: data.times[data.times.length - 1],
|
||||
y: data.bytesSentPerSecond[data.bytesSentPerSecond.length - 1]
|
||||
});
|
||||
self.chartsOptions[0].options[1].values.push({
|
||||
x: data.times[data.times.length - 1],
|
||||
y: data.bytesReceivedPerSecond[data.bytesReceivedPerSecond.length - 1]
|
||||
});
|
||||
//HTTP
|
||||
self.chartsOptions[1].options[0].values.push({
|
||||
x: data.times[data.times.length - 1],
|
||||
y: self.calcTotalHttp(data.http, data.bytesSentPerSecond.length - 1)
|
||||
});
|
||||
//AVERAGE
|
||||
self.chartsOptions[2].options[0].values.push({
|
||||
x: data.times[data.times.length - 1],
|
||||
y: data.avgRequestTime[data.bytesSentPerSecond.length - 1]
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
chartsOptions: [
|
||||
{
|
||||
id: "#clusterData",
|
||||
count: 2,
|
||||
options: [
|
||||
{
|
||||
area: true,
|
||||
values: [],
|
||||
key: "Bytes out",
|
||||
color: 'rgb(23,190,207)',
|
||||
strokeWidth: 2,
|
||||
fillOpacity: 0.1
|
||||
},
|
||||
{
|
||||
area: true,
|
||||
values: [],
|
||||
key: "Bytes in",
|
||||
color: "rgb(188, 189, 34)",
|
||||
strokeWidth: 2,
|
||||
fillOpacity: 0.1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "#clusterHttp",
|
||||
options: [{
|
||||
area: true,
|
||||
values: [],
|
||||
key: "Bytes",
|
||||
color: "rgb(0, 166, 90)",
|
||||
fillOpacity: 0.1
|
||||
}]
|
||||
},
|
||||
{
|
||||
id: "#clusterAverage",
|
||||
data: [],
|
||||
options: [{
|
||||
area: true,
|
||||
values: [],
|
||||
key: "Bytes",
|
||||
color: "rgb(243, 156, 18)",
|
||||
fillOpacity: 0.1
|
||||
}]
|
||||
}
|
||||
],
|
||||
|
||||
initGraphs: function() {
|
||||
var self = this;
|
||||
|
||||
_.each(self.chartsOptions, function(c) {
|
||||
nv.addGraph(function() {
|
||||
self.charts[c.id] = nv.models.stackedAreaChart()
|
||||
.options({
|
||||
transitionDuration: 300,
|
||||
useInteractiveGuideline: true,
|
||||
showControls: false,
|
||||
noData: 'Fetching data...'
|
||||
});
|
||||
|
||||
self.charts[c.id].xAxis
|
||||
.axisLabel("")
|
||||
.tickFormat(function(d) {
|
||||
var x = new Date(d * 1000);
|
||||
return (x.getHours() < 10 ? '0' : '') + x.getHours() + ":" +
|
||||
(x.getMinutes() < 10 ? '0' : '') + x.getMinutes() + ":" +
|
||||
(x.getSeconds() < 10 ? '0' : '') + x.getSeconds();
|
||||
})
|
||||
.staggerLabels(false);
|
||||
|
||||
// TODO UPDATE SINGLE VALUES AFTER UPDATE
|
||||
self.charts[c.id].yAxis
|
||||
.axisLabel('')
|
||||
.tickFormat(function(d) { //TODO 1k bytes sizes
|
||||
if (d === null) {
|
||||
return 'N/A';
|
||||
}
|
||||
return d3.format(',.2f')(d);
|
||||
});
|
||||
|
||||
var data, lines = self.returnGraphOptions(c.id);
|
||||
if (lines.length > 0) {
|
||||
_.each(lines, function (val, key) {
|
||||
c.options[key].values = val;
|
||||
});
|
||||
}
|
||||
else {
|
||||
c.options[0].values = [];
|
||||
}
|
||||
data = c.options;
|
||||
|
||||
self.chartData[c.id] = d3.select(c.id).append('svg')
|
||||
.datum(data)
|
||||
.transition().duration(1000)
|
||||
.call(self.charts[c.id])
|
||||
.each('start', function() {
|
||||
window.setTimeout(function() {
|
||||
d3.selectAll(c.id + ' *').each(function() {
|
||||
if (this.__transition__) {
|
||||
this.__transition__.duration = 1;
|
||||
}
|
||||
});
|
||||
}, 0);
|
||||
});
|
||||
|
||||
nv.utils.windowResize(self.charts[c.id].update);
|
||||
self.nvcharts.push(self.charts[c.id]);
|
||||
|
||||
return self.charts[c.id];
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
returnGraphOptions: function(id) {
|
||||
var arr = [];
|
||||
if (id === '#clusterData') {
|
||||
//arr = [this.graphData.data.sent, this.graphData.data.received];
|
||||
arr = [
|
||||
this.chartsOptions[0].options[0].values,
|
||||
this.chartsOptions[0].options[1].values
|
||||
];
|
||||
}
|
||||
else if (id === '#clusterHttp') {
|
||||
arr = [this.chartsOptions[1].options[0].values];
|
||||
}
|
||||
else if (id === '#clusterAverage') {
|
||||
arr = [this.chartsOptions[2].options[0].values];
|
||||
}
|
||||
else {
|
||||
arr = [];
|
||||
}
|
||||
|
||||
return arr;
|
||||
},
|
||||
|
||||
rerenderGraphs: function(input) {
|
||||
var self = this, data, lines;
|
||||
this.formatDataForGraph(input);
|
||||
|
||||
_.each(self.chartsOptions, function(c) {
|
||||
lines = self.returnGraphOptions(c.id);
|
||||
|
||||
if (lines.length > 0) {
|
||||
_.each(lines, function (val, key) {
|
||||
c.options[key].values = val;
|
||||
});
|
||||
}
|
||||
else {
|
||||
c.options[0].values = [];
|
||||
}
|
||||
data = c.options;
|
||||
|
||||
//update nvd3 chart
|
||||
if (data[0].values.length > 0) {
|
||||
if (self.historyInit) {
|
||||
if (self.charts[c.id]) {
|
||||
self.charts[c.id].update();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
calcTotalHttp: function(object, pos) {
|
||||
var sum = 0;
|
||||
_.each(object, function(totalHttp) {
|
||||
sum += totalHttp[pos];
|
||||
});
|
||||
return sum;
|
||||
},
|
||||
|
||||
getCoordStatHistory: function(callback) {
|
||||
var self = this, promises = [], historyUrl;
|
||||
|
||||
var merged = {
|
||||
http: {}
|
||||
};
|
||||
|
||||
var getHistory = function(url) {
|
||||
return $.get(url, {count: self.statCollectCoord.size()}, null, 'json');
|
||||
};
|
||||
|
||||
var mergeHistory = function(data) {
|
||||
|
||||
|
||||
var onetime = ['times'];
|
||||
var values = [
|
||||
'physicalMemory',
|
||||
'residentSizeCurrent',
|
||||
'clientConnections15M',
|
||||
'clientConnectionsCurrent'
|
||||
];
|
||||
var http = [
|
||||
'optionsPerSecond',
|
||||
'putsPerSecond',
|
||||
'headsPerSecond',
|
||||
'postsPerSecond',
|
||||
'getsPerSecond',
|
||||
'deletesPerSecond',
|
||||
'othersPerSecond',
|
||||
'patchesPerSecond'
|
||||
];
|
||||
var arrays = [
|
||||
'bytesSentPerSecond',
|
||||
'bytesReceivedPerSecond',
|
||||
'avgRequestTime'
|
||||
];
|
||||
|
||||
var counter = 0, counter2;
|
||||
|
||||
_.each(data, function(stat) {
|
||||
if (typeof stat === 'object') {
|
||||
if (counter === 0) {
|
||||
//one time value
|
||||
_.each(onetime, function(value) {
|
||||
merged[value] = stat[value];
|
||||
});
|
||||
|
||||
//values
|
||||
_.each(values, function(value) {
|
||||
merged[value] = stat[value];
|
||||
});
|
||||
|
||||
//http requests arrays
|
||||
_.each(http, function(value) {
|
||||
merged.http[value] = stat[value];
|
||||
});
|
||||
|
||||
//arrays
|
||||
_.each(arrays, function(value) {
|
||||
merged[value] = stat[value];
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
//values
|
||||
_.each(values, function(value) {
|
||||
merged[value] = merged[value] + stat[value];
|
||||
});
|
||||
//http requests arrays
|
||||
_.each(http, function(value) {
|
||||
counter2 = 0;
|
||||
_.each(stat[value], function(x) {
|
||||
merged.http[value][counter] = merged.http[value][counter] + x;
|
||||
counter2++;
|
||||
});
|
||||
});
|
||||
_.each(arrays, function(value) {
|
||||
counter2 = 0;
|
||||
_.each(stat[value], function(x) {
|
||||
merged[value][counter] = merged[value][counter] + x;
|
||||
counter2++;
|
||||
});
|
||||
});
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
this.statCollectCoord.each(function(coord) {
|
||||
historyUrl = coord.url + '/short';
|
||||
promises.push(getHistory(historyUrl));
|
||||
});
|
||||
|
||||
$.when.apply($, promises).done(function() {
|
||||
//wait until all data is here
|
||||
var arr = [];
|
||||
_.each(promises, function(stat) {
|
||||
arr.push(stat.responseJSON);
|
||||
});
|
||||
mergeHistory(arr);
|
||||
callback(merged);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
}());
|
|
@ -42,6 +42,7 @@
|
|||
},
|
||||
|
||||
template: templateEngine.createTemplate("navigationView.ejs"),
|
||||
templateSub: templateEngine.createTemplate("subNavigationView.ejs"),
|
||||
|
||||
render: function () {
|
||||
var self = this;
|
||||
|
@ -49,6 +50,12 @@
|
|||
$(this.el).html(this.template.render({
|
||||
currentDB: this.currentDB
|
||||
}));
|
||||
|
||||
//HEIKO
|
||||
$("#subNavigationBar").html(this.templateSub.render({
|
||||
}));
|
||||
|
||||
//HEIKO REMOVE
|
||||
this.dbSelectionView.render($("#dbSelect"));
|
||||
this.notificationView.render($("#notificationBar"));
|
||||
|
||||
|
|
|
@ -793,11 +793,11 @@
|
|||
//init aql editor
|
||||
this.aqlEditor = ace.edit("aqlEditor");
|
||||
this.aqlEditor.getSession().setMode("ace/mode/aql");
|
||||
this.aqlEditor.setFontSize("13px");
|
||||
this.aqlEditor.setFontSize("10pt");
|
||||
|
||||
this.bindParamAceEditor = ace.edit("bindParamAceEditor");
|
||||
this.bindParamAceEditor.getSession().setMode("ace/mode/json");
|
||||
this.bindParamAceEditor.setFontSize("13px");
|
||||
this.bindParamAceEditor.setFontSize("10pt");
|
||||
|
||||
this.bindParamAceEditor.getSession().on('change', function() {
|
||||
try {
|
||||
|
|
|
@ -0,0 +1,586 @@
|
|||
/*global window, $, Backbone, templateEngine, alert, _, d3, Dygraph, document */
|
||||
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
window.ShowClusterView = Backbone.View.extend({
|
||||
detailEl: '#modalPlaceholder',
|
||||
el: "#content",
|
||||
defaultFrame: 20 * 60 * 1000,
|
||||
template: templateEngine.createTemplate("showCluster.ejs"),
|
||||
modal: templateEngine.createTemplate("waitModal.ejs"),
|
||||
detailTemplate: templateEngine.createTemplate("detailView.ejs"),
|
||||
|
||||
events: {
|
||||
"change #selectDB" : "updateCollections",
|
||||
"change #selectCol" : "updateShards",
|
||||
"click .dbserver.success" : "dashboard",
|
||||
"click .coordinator.success" : "dashboard"
|
||||
},
|
||||
|
||||
replaceSVGs: function() {
|
||||
$(".svgToReplace").each(function() {
|
||||
var img = $(this);
|
||||
var id = img.attr("id");
|
||||
var src = img.attr("src");
|
||||
$.get(src, function(d) {
|
||||
var svg = $(d).find("svg");
|
||||
svg.attr("id", id)
|
||||
.attr("class", "icon")
|
||||
.removeAttr("xmlns:a");
|
||||
img.replaceWith(svg);
|
||||
}, "xml");
|
||||
});
|
||||
},
|
||||
|
||||
updateServerTime: function() {
|
||||
this.serverTime = new Date().getTime();
|
||||
},
|
||||
|
||||
setShowAll: function() {
|
||||
this.graphShowAll = true;
|
||||
},
|
||||
|
||||
resetShowAll: function() {
|
||||
this.graphShowAll = false;
|
||||
this.renderLineChart();
|
||||
},
|
||||
|
||||
|
||||
initialize: function() {
|
||||
this.interval = 10000;
|
||||
this.isUpdating = false;
|
||||
this.timer = null;
|
||||
this.knownServers = [];
|
||||
this.graph = undefined;
|
||||
this.graphShowAll = false;
|
||||
this.updateServerTime();
|
||||
this.dygraphConfig = this.options.dygraphConfig;
|
||||
this.dbservers = new window.ClusterServers([], {
|
||||
interval: this.interval
|
||||
});
|
||||
this.coordinators = new window.ClusterCoordinators([], {
|
||||
interval: this.interval
|
||||
});
|
||||
this.documentStore = new window.arangoDocuments();
|
||||
this.statisticsDescription = new window.StatisticsDescription();
|
||||
this.statisticsDescription.fetch({
|
||||
async: false
|
||||
});
|
||||
this.dbs = new window.ClusterDatabases([], {
|
||||
interval: this.interval
|
||||
});
|
||||
this.cols = new window.ClusterCollections();
|
||||
this.shards = new window.ClusterShards();
|
||||
this.startUpdating();
|
||||
},
|
||||
|
||||
listByAddress: function(callback) {
|
||||
var byAddress = {};
|
||||
var self = this;
|
||||
this.dbservers.byAddress(byAddress, function(res) {
|
||||
self.coordinators.byAddress(res, callback);
|
||||
});
|
||||
},
|
||||
|
||||
updateCollections: function() {
|
||||
var self = this;
|
||||
var selCol = $("#selectCol");
|
||||
var dbName = $("#selectDB").find(":selected").attr("id");
|
||||
if (!dbName) {
|
||||
return;
|
||||
}
|
||||
var colName = selCol.find(":selected").attr("id");
|
||||
selCol.html("");
|
||||
this.cols.getList(dbName, function(list) {
|
||||
_.each(_.pluck(list, "name"), function(c) {
|
||||
selCol.append("<option id=\"" + c + "\">" + c + "</option>");
|
||||
});
|
||||
var colToSel = $("#" + colName, selCol);
|
||||
if (colToSel.length === 1) {
|
||||
colToSel.prop("selected", true);
|
||||
}
|
||||
self.updateShards();
|
||||
});
|
||||
},
|
||||
|
||||
updateShards: function() {
|
||||
var dbName = $("#selectDB").find(":selected").attr("id");
|
||||
var colName = $("#selectCol").find(":selected").attr("id");
|
||||
this.shards.getList(dbName, colName, function(list) {
|
||||
$(".shardCounter").html("0");
|
||||
_.each(list, function(s) {
|
||||
$("#" + s.server + "Shards").html(s.shards.length);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
updateServerStatus: function(nextStep) {
|
||||
var self = this;
|
||||
var callBack = function(cls, stat, serv) {
|
||||
var id = serv,
|
||||
type, icon;
|
||||
id = id.replace(/\./g,'-');
|
||||
id = id.replace(/\:/g,'_');
|
||||
icon = $("#id" + id);
|
||||
if (icon.length < 1) {
|
||||
// callback after view was unrendered
|
||||
return;
|
||||
}
|
||||
type = icon.attr("class").split(/\s+/)[1];
|
||||
icon.attr("class", cls + " " + type + " " + stat);
|
||||
if (cls === "coordinator") {
|
||||
if (stat === "success") {
|
||||
$(".button-gui", icon.closest(".tile")).toggleClass("button-gui-disabled", false);
|
||||
} else {
|
||||
$(".button-gui", icon.closest(".tile")).toggleClass("button-gui-disabled", true);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
this.coordinators.getStatuses(callBack.bind(this, "coordinator"), function() {
|
||||
self.dbservers.getStatuses(callBack.bind(self, "dbserver"));
|
||||
nextStep();
|
||||
});
|
||||
},
|
||||
|
||||
updateDBDetailList: function() {
|
||||
var self = this;
|
||||
var selDB = $("#selectDB");
|
||||
var dbName = selDB.find(":selected").attr("id");
|
||||
selDB.html("");
|
||||
this.dbs.getList(function(dbList) {
|
||||
_.each(_.pluck(dbList, "name"), function(c) {
|
||||
selDB.append("<option id=\"" + c + "\">" + c + "</option>");
|
||||
});
|
||||
var dbToSel = $("#" + dbName, selDB);
|
||||
if (dbToSel.length === 1) {
|
||||
dbToSel.prop("selected", true);
|
||||
}
|
||||
self.updateCollections();
|
||||
});
|
||||
},
|
||||
|
||||
rerender : function() {
|
||||
var self = this;
|
||||
this.updateServerStatus(function() {
|
||||
self.getServerStatistics(function() {
|
||||
self.updateServerTime();
|
||||
self.data = self.generatePieData();
|
||||
self.renderPieChart(self.data);
|
||||
self.renderLineChart();
|
||||
self.updateDBDetailList();
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
render: function() {
|
||||
this.knownServers = [];
|
||||
delete this.hist;
|
||||
var self = this;
|
||||
this.listByAddress(function(byAddress) {
|
||||
if (Object.keys(byAddress).length === 1) {
|
||||
self.type = "testPlan";
|
||||
} else {
|
||||
self.type = "other";
|
||||
}
|
||||
self.updateDBDetailList();
|
||||
self.dbs.getList(function(dbList) {
|
||||
$(self.el).html(self.template.render({
|
||||
dbs: _.pluck(dbList, "name"),
|
||||
byAddress: byAddress,
|
||||
type: self.type
|
||||
}));
|
||||
$(self.el).append(self.modal.render({}));
|
||||
self.replaceSVGs();
|
||||
/* this.loadHistory(); */
|
||||
self.getServerStatistics(function() {
|
||||
self.data = self.generatePieData();
|
||||
self.renderPieChart(self.data);
|
||||
self.renderLineChart();
|
||||
self.updateDBDetailList();
|
||||
self.startUpdating();
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
generatePieData: function() {
|
||||
var pieData = [];
|
||||
var self = this;
|
||||
|
||||
this.data.forEach(function(m) {
|
||||
pieData.push({key: m.get("name"), value: m.get("system").virtualSize,
|
||||
time: self.serverTime});
|
||||
});
|
||||
|
||||
return pieData;
|
||||
},
|
||||
|
||||
/*
|
||||
loadHistory : function() {
|
||||
this.hist = {};
|
||||
|
||||
var self = this;
|
||||
var coord = this.coordinators.findWhere({
|
||||
status: "ok"
|
||||
});
|
||||
|
||||
var endpoint = coord.get("protocol")
|
||||
+ "://"
|
||||
+ coord.get("address");
|
||||
|
||||
this.dbservers.forEach(function (dbserver) {
|
||||
if (dbserver.get("status") !== "ok") {return;}
|
||||
|
||||
if (self.knownServers.indexOf(dbserver.id) === -1) {
|
||||
self.knownServers.push(dbserver.id);
|
||||
}
|
||||
|
||||
var server = {
|
||||
raw: dbserver.get("address"),
|
||||
isDBServer: true,
|
||||
target: encodeURIComponent(dbserver.get("name")),
|
||||
endpoint: endpoint,
|
||||
addAuth: window.App.addAuth.bind(window.App)
|
||||
};
|
||||
});
|
||||
|
||||
this.coordinators.forEach(function (coordinator) {
|
||||
if (coordinator.get("status") !== "ok") {return;}
|
||||
|
||||
if (self.knownServers.indexOf(coordinator.id) === -1) {
|
||||
self.knownServers.push(coordinator.id);
|
||||
}
|
||||
|
||||
var server = {
|
||||
raw: coordinator.get("address"),
|
||||
isDBServer: false,
|
||||
target: encodeURIComponent(coordinator.get("name")),
|
||||
endpoint: coordinator.get("protocol") + "://" + coordinator.get("address"),
|
||||
addAuth: window.App.addAuth.bind(window.App)
|
||||
};
|
||||
});
|
||||
},
|
||||
*/
|
||||
|
||||
addStatisticsItem: function(name, time, requests, snap) {
|
||||
var self = this;
|
||||
|
||||
if (! self.hasOwnProperty('hist')) {
|
||||
self.hist = {};
|
||||
}
|
||||
|
||||
if (! self.hist.hasOwnProperty(name)) {
|
||||
self.hist[name] = [];
|
||||
}
|
||||
|
||||
var h = self.hist[name];
|
||||
var l = h.length;
|
||||
|
||||
if (0 === l) {
|
||||
h.push({
|
||||
time: time,
|
||||
snap: snap,
|
||||
requests: requests,
|
||||
requestsPerSecond: 0
|
||||
});
|
||||
}
|
||||
else {
|
||||
var lt = h[l - 1].time;
|
||||
var tt = h[l - 1].requests;
|
||||
|
||||
if (tt < requests) {
|
||||
var dt = time - lt;
|
||||
var ps = 0;
|
||||
|
||||
if (dt > 0) {
|
||||
ps = (requests - tt) / dt;
|
||||
}
|
||||
|
||||
h.push({
|
||||
time: time,
|
||||
snap: snap,
|
||||
requests: requests,
|
||||
requestsPerSecond: ps
|
||||
});
|
||||
}
|
||||
/*
|
||||
else {
|
||||
h.times.push({
|
||||
time: time,
|
||||
snap: snap,
|
||||
requests: requests,
|
||||
requestsPerSecond: 0
|
||||
});
|
||||
}
|
||||
*/
|
||||
}
|
||||
},
|
||||
|
||||
getServerStatistics: function(nextStep) {
|
||||
var self = this;
|
||||
var snap = Math.round(self.serverTime / 1000);
|
||||
|
||||
this.data = undefined;
|
||||
|
||||
var statCollect = new window.ClusterStatisticsCollection();
|
||||
var coord = this.coordinators.first();
|
||||
|
||||
// create statistics collector for DB servers
|
||||
this.dbservers.forEach(function (dbserver) {
|
||||
if (dbserver.get("status") !== "ok") {return;}
|
||||
|
||||
if (self.knownServers.indexOf(dbserver.id) === -1) {
|
||||
self.knownServers.push(dbserver.id);
|
||||
}
|
||||
|
||||
var stat = new window.Statistics({name: dbserver.id});
|
||||
|
||||
stat.url = coord.get("protocol") + "://"
|
||||
+ coord.get("address")
|
||||
+ "/_admin/clusterStatistics?DBserver="
|
||||
+ dbserver.get("name");
|
||||
|
||||
statCollect.add(stat);
|
||||
});
|
||||
|
||||
// create statistics collector for coordinator
|
||||
this.coordinators.forEach(function (coordinator) {
|
||||
if (coordinator.get("status") !== "ok") {return;}
|
||||
|
||||
if (self.knownServers.indexOf(coordinator.id) === -1) {
|
||||
self.knownServers.push(coordinator.id);
|
||||
}
|
||||
|
||||
var stat = new window.Statistics({name: coordinator.id});
|
||||
|
||||
stat.url = coordinator.get("protocol") + "://"
|
||||
+ coordinator.get("address")
|
||||
+ "/_admin/statistics";
|
||||
|
||||
statCollect.add(stat);
|
||||
});
|
||||
|
||||
var cbCounter = statCollect.size();
|
||||
|
||||
this.data = [];
|
||||
|
||||
var successCB = function(m) {
|
||||
cbCounter--;
|
||||
var time = m.get("time");
|
||||
var name = m.get("name");
|
||||
var requests = m.get("http").requestsTotal;
|
||||
|
||||
self.addStatisticsItem(name, time, requests, snap);
|
||||
self.data.push(m);
|
||||
if (cbCounter === 0) {
|
||||
nextStep();
|
||||
}
|
||||
};
|
||||
var errCB = function() {
|
||||
cbCounter--;
|
||||
if (cbCounter === 0) {
|
||||
nextStep();
|
||||
}
|
||||
};
|
||||
// now fetch the statistics
|
||||
statCollect.fetch(successCB, errCB);
|
||||
},
|
||||
|
||||
renderPieChart: function(dataset) {
|
||||
var w = $("#clusterGraphs svg").width();
|
||||
var h = $("#clusterGraphs svg").height();
|
||||
var radius = Math.min(w, h) / 2; //change 2 to 1.4. It's hilarious.
|
||||
// var color = d3.scale.category20();
|
||||
var color = this.dygraphConfig.colors;
|
||||
|
||||
var arc = d3.svg.arc() //each datapoint will create one later.
|
||||
.outerRadius(radius - 20)
|
||||
.innerRadius(0);
|
||||
var pie = d3.layout.pie()
|
||||
.sort(function (d) {
|
||||
return d.value;
|
||||
})
|
||||
.value(function (d) {
|
||||
return d.value;
|
||||
});
|
||||
d3.select("#clusterGraphs").select("svg").remove();
|
||||
var pieChartSvg = d3.select("#clusterGraphs").append("svg")
|
||||
// .attr("width", w)
|
||||
// .attr("height", h)
|
||||
.attr("class", "clusterChart")
|
||||
.append("g") //someone to transform. Groups data.
|
||||
.attr("transform", "translate(" + w / 2 + "," + ((h / 2) - 10) + ")");
|
||||
|
||||
var arc2 = d3.svg.arc()
|
||||
.outerRadius(radius-2)
|
||||
.innerRadius(radius-2);
|
||||
var slices = pieChartSvg.selectAll(".arc")
|
||||
.data(pie(dataset))
|
||||
.enter().append("g")
|
||||
.attr("class", "slice");
|
||||
slices.append("path")
|
||||
.attr("d", arc)
|
||||
.style("fill", function (item, i) {
|
||||
return color[i % color.length];
|
||||
})
|
||||
.style("stroke", function (item, i) {
|
||||
return color[i % color.length];
|
||||
});
|
||||
slices.append("text")
|
||||
.attr("transform", function(d) { return "translate(" + arc.centroid(d) + ")"; })
|
||||
// .attr("dy", "0.35em")
|
||||
.style("text-anchor", "middle")
|
||||
.text(function(d) {
|
||||
var v = d.data.value / 1024 / 1024 / 1024;
|
||||
return v.toFixed(2); });
|
||||
|
||||
slices.append("text")
|
||||
.attr("transform", function(d) { return "translate(" + arc2.centroid(d) + ")"; })
|
||||
// .attr("dy", "1em")
|
||||
.style("text-anchor", "middle")
|
||||
.text(function(d) { return d.data.key; });
|
||||
},
|
||||
|
||||
renderLineChart: function() {
|
||||
var self = this;
|
||||
|
||||
var interval = 60 * 20;
|
||||
var data = [];
|
||||
var hash = [];
|
||||
var t = Math.round(new Date().getTime() / 1000) - interval;
|
||||
var ks = self.knownServers;
|
||||
var f = function() {
|
||||
return null;
|
||||
};
|
||||
|
||||
var d, h, i, j, tt, snap;
|
||||
|
||||
for (i = 0; i < ks.length; ++i) {
|
||||
h = self.hist[ks[i]];
|
||||
|
||||
if (h) {
|
||||
for (j = 0; j < h.length; ++j) {
|
||||
snap = h[j].snap;
|
||||
|
||||
if (snap < t) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! hash.hasOwnProperty(snap)) {
|
||||
tt = new Date(snap * 1000);
|
||||
|
||||
d = hash[snap] = [ tt ].concat(ks.map(f));
|
||||
}
|
||||
else {
|
||||
d = hash[snap];
|
||||
}
|
||||
|
||||
d[i + 1] = h[j].requestsPerSecond;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
data = [];
|
||||
|
||||
Object.keys(hash).sort().forEach(function (m) {
|
||||
data.push(hash[m]);
|
||||
});
|
||||
|
||||
var options = this.dygraphConfig.getDefaultConfig('clusterRequestsPerSecond');
|
||||
options.labelsDiv = $("#lineGraphLegend")[0];
|
||||
options.labels = [ "datetime" ].concat(ks);
|
||||
|
||||
self.graph = new Dygraph(
|
||||
document.getElementById('lineGraph'),
|
||||
data,
|
||||
options
|
||||
);
|
||||
},
|
||||
|
||||
stopUpdating: function () {
|
||||
window.clearTimeout(this.timer);
|
||||
delete this.graph;
|
||||
this.isUpdating = false;
|
||||
},
|
||||
|
||||
startUpdating: function () {
|
||||
if (this.isUpdating) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.isUpdating = true;
|
||||
|
||||
var self = this;
|
||||
|
||||
this.timer = window.setInterval(function() {
|
||||
self.rerender();
|
||||
}, this.interval);
|
||||
},
|
||||
|
||||
|
||||
dashboard: function(e) {
|
||||
this.stopUpdating();
|
||||
|
||||
var tar = $(e.currentTarget);
|
||||
var serv = {};
|
||||
var cur;
|
||||
var coord;
|
||||
|
||||
var ip_port = tar.attr("id");
|
||||
ip_port = ip_port.replace(/\-/g,'.');
|
||||
ip_port = ip_port.replace(/\_/g,':');
|
||||
ip_port = ip_port.substr(2);
|
||||
|
||||
serv.raw = ip_port;
|
||||
serv.isDBServer = tar.hasClass("dbserver");
|
||||
|
||||
if (serv.isDBServer) {
|
||||
cur = this.dbservers.findWhere({
|
||||
address: serv.raw
|
||||
});
|
||||
coord = this.coordinators.findWhere({
|
||||
status: "ok"
|
||||
});
|
||||
serv.endpoint = coord.get("protocol")
|
||||
+ "://"
|
||||
+ coord.get("address");
|
||||
}
|
||||
else {
|
||||
cur = this.coordinators.findWhere({
|
||||
address: serv.raw
|
||||
});
|
||||
serv.endpoint = cur.get("protocol")
|
||||
+ "://"
|
||||
+ cur.get("address");
|
||||
}
|
||||
|
||||
serv.target = encodeURIComponent(cur.get("name"));
|
||||
window.App.serverToShow = serv;
|
||||
window.App.dashboard();
|
||||
},
|
||||
|
||||
getCurrentSize: function (div) {
|
||||
if (div.substr(0,1) !== "#") {
|
||||
div = "#" + div;
|
||||
}
|
||||
var height, width;
|
||||
$(div).attr("style", "");
|
||||
height = $(div).height();
|
||||
width = $(div).width();
|
||||
return {
|
||||
height: height,
|
||||
width: width
|
||||
};
|
||||
},
|
||||
|
||||
resize: function () {
|
||||
var dimensions;
|
||||
if (this.graph) {
|
||||
dimensions = this.getCurrentSize(this.graph.maindiv_.id);
|
||||
this.graph.resize(dimensions.width, dimensions.height);
|
||||
}
|
||||
}
|
||||
});
|
||||
}());
|
|
@ -22,10 +22,9 @@
|
|||
}
|
||||
|
||||
%fixedbar {
|
||||
background-color: $c-lightgreen-2-transp-bg;
|
||||
//background-color: $c-lightgreen-2-transp-bg;
|
||||
color: $c-white;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
z-index: 1000;
|
||||
|
@ -67,6 +66,15 @@
|
|||
}
|
||||
}
|
||||
|
||||
%info {
|
||||
background-color: $c-info;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
background-color: $c-info-hover;
|
||||
}
|
||||
}
|
||||
|
||||
%icon-positive {
|
||||
color: $c-positive;
|
||||
|
||||
|
|
|
@ -1,12 +1,25 @@
|
|||
html {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
background: $c-lightgreen-2-bg !important;
|
||||
//background: $c-lightgreen-2-bg !important;
|
||||
background: none;
|
||||
color: $c-body-color;
|
||||
display: block;
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
height: 100%;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
|
||||
> .bodyWrapper {
|
||||
background-image: linear-gradient(to bottom, #e9eae1 0%, #fafbfc 100%);
|
||||
height: 100%;
|
||||
margin: 0 auto -42px;
|
||||
min-height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
// Bootstrap Buttons
|
||||
%bare-btn {
|
||||
@include border-radius(3px);
|
||||
@include border-radius(2px);
|
||||
@include box-shadow(0);
|
||||
font-size: 14px;
|
||||
font-weight: 300 !important;
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
|
||||
%btn {
|
||||
|
@ -48,6 +48,11 @@
|
|||
@extend %positive;
|
||||
}
|
||||
|
||||
.button-info {
|
||||
@extend %btn;
|
||||
@extend %info;
|
||||
}
|
||||
|
||||
[class^='button-']:disabled,
|
||||
button.disabled,
|
||||
[class*=' button-']:disabled {
|
||||
|
@ -103,7 +108,7 @@ button.disabled,
|
|||
|
||||
|
||||
button {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
|
||||
&.btn-server {
|
||||
width: 120px;
|
||||
|
|
|
@ -0,0 +1,56 @@
|
|||
.graphLabel {
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 10pt;
|
||||
font-weight: 600;
|
||||
margin-top: -25px;
|
||||
opacity: .5;
|
||||
padding-bottom: 20px;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.cluster-graphs {
|
||||
|
||||
> div {
|
||||
|
||||
.graphWrapper {
|
||||
border: 1px solid $c-content-border;
|
||||
margin-left: -1px;
|
||||
margin-top: -1px;
|
||||
|
||||
.nv-controlsWrap {
|
||||
display: none;
|
||||
}
|
||||
|
||||
svg {
|
||||
height: 250px;
|
||||
margin-left: -17px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.cluster-values {
|
||||
|
||||
margin-top: -13px;
|
||||
|
||||
> div {
|
||||
.valueWrapper {
|
||||
border: 1px solid $c-content-border;
|
||||
margin-left: -1px;
|
||||
margin-top: -1px;
|
||||
|
||||
.value {
|
||||
color: $c-positive;
|
||||
font-size: 24pt;
|
||||
line-height: 150px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div:first-child {
|
||||
height: 150px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
.collectionTh {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato Sans', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
|
@ -79,7 +79,7 @@
|
|||
}
|
||||
|
||||
.collectionInfoTh2 {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important;
|
||||
text-align: left;
|
||||
width: 150px;
|
||||
|
@ -99,7 +99,7 @@
|
|||
border-bottom: 1px solid $c-c2grey;
|
||||
|
||||
th {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400 !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ $c-lightgreen-2-transp-bg: rgba(245, 248, 240, .95);
|
|||
|
||||
$c-pong-green: rgb(140, 219, 139);
|
||||
|
||||
$c-positive: #8aa051;
|
||||
//$c-positive: #8aa051;
|
||||
$c-positive: rgb(125, 188, 66);
|
||||
$c-positive-hover: #788f3d;
|
||||
|
||||
$c-table-odd-color: rgba(104, 103, 102, .05);
|
||||
|
@ -39,6 +40,8 @@ $c-header-btn-border: #fff;
|
|||
|
||||
$c-black: #000;
|
||||
$c-white: #fff;
|
||||
$c-white-transp: rgba(255, 255, 255, .85);
|
||||
$c-yellow: #ff0;
|
||||
|
||||
$c-c2grey: #c2c2c2;
|
||||
|
||||
|
@ -70,6 +73,7 @@ $c-odd: #d9d9d9;
|
|||
$c-even: #fff;
|
||||
|
||||
$c-navbar-spacer: #a0a0a0;
|
||||
$c-navbar-border: rgba(140,138,137,.25);
|
||||
$c-navbar-spacer-shadow: #c8c8c8;
|
||||
|
||||
$c-btn-inverse: #736b68;
|
||||
|
@ -92,6 +96,9 @@ $c-invalid-red: rgba(234, 23, 23, .6);
|
|||
$c-info-blue: #5bc0de;
|
||||
$c-blue: #00f;
|
||||
|
||||
$c-info: #5bc0de;
|
||||
$c-info-hover: #5bc0de;
|
||||
|
||||
$c-cluster-button-green: #617e2b;
|
||||
$c-cluster-button-green-hover: #8ba142;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
.dygraph-label.dygraph-title {
|
||||
color: $c-black;
|
||||
font: {
|
||||
family: 'Open Sans', sans-serif;
|
||||
family: 'Lato', sans-serif;
|
||||
size: 15px;
|
||||
weight: 400;
|
||||
}
|
||||
|
|
|
@ -5,5 +5,18 @@
|
|||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
|
||||
|
||||
.fa {
|
||||
color: $c-white;
|
||||
opacity: .3;
|
||||
}
|
||||
|
||||
.fa-database {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.fa-caret-square-o-down {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ input,
|
|||
textarea,
|
||||
.page-title span,
|
||||
.pingback a.url {
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
.footer {
|
||||
bottom: 0;
|
||||
font-size: 14px;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
z-index: 1000;
|
||||
|
@ -10,6 +8,9 @@
|
|||
|
||||
footer.footer {
|
||||
@extend %fixedbar;
|
||||
//background-color: $c-white-transp;
|
||||
//background-color: rgba(219, 226, 230, 1);
|
||||
//border-top: 1px solid $c-navbar-border;
|
||||
bottom: 0;
|
||||
height: 40px;
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
.innerContent {
|
||||
background-color: $c-white;
|
||||
border: 1px solid $c-content-border;
|
||||
border-radius: 3px;
|
||||
border-radius: 2px;
|
||||
min-height: 200px;
|
||||
padding-top: 13px;
|
||||
}
|
||||
|
|
|
@ -62,8 +62,6 @@ div.headerBar {
|
|||
color: $c-white;
|
||||
font-size: 16px;
|
||||
height: 36px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 15px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
position: relative;
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
.modal-body {
|
||||
color: $c-btn-inverse;
|
||||
font-family: 'Open Sans', sans-serif !important;
|
||||
font-family: 'Lato', sans-serif !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
max-height: 410px;
|
||||
|
|
|
@ -1,11 +1,23 @@
|
|||
.navbar {
|
||||
@extend %fixedbar;
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
height: 44px;
|
||||
height: auto;
|
||||
margin-bottom: 3px;
|
||||
padding-top: 6px;
|
||||
top: 0;
|
||||
|
||||
> .primary {
|
||||
background-color: rgba(0, 0, 0, .7);
|
||||
}
|
||||
|
||||
> .secondary {
|
||||
background-color: $c-white-transp;
|
||||
border-bottom: 1px solid $c-content-border;
|
||||
}
|
||||
|
||||
> .resizecontainer {
|
||||
background-color: $c-white;
|
||||
}
|
||||
|
||||
.no-left-margin {
|
||||
border: 0;
|
||||
margin-left: 0;
|
||||
|
@ -18,8 +30,8 @@
|
|||
.arangodbLogo {
|
||||
height: auto;
|
||||
margin-left: -5px;
|
||||
margin-top: -1px;
|
||||
width: 40%;
|
||||
margin-top: 6px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.arango-collection-select {
|
||||
|
@ -77,7 +89,7 @@
|
|||
list-style: none;
|
||||
|
||||
> li {
|
||||
height: 39px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
li {
|
||||
|
@ -110,14 +122,15 @@
|
|||
}
|
||||
|
||||
&.navbar-spacer {
|
||||
background-color: $c-navbar-spacer;
|
||||
background-color: $c-white;
|
||||
height: 21px;
|
||||
margin-top: 9px;
|
||||
margin-top: 14px;
|
||||
opacity: .2;
|
||||
width: 1px;
|
||||
|
||||
&.big {
|
||||
margin-left: 15px;
|
||||
margin-right: 15px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
&.med {
|
||||
|
@ -133,8 +146,8 @@
|
|||
|
||||
.active {
|
||||
.tab {
|
||||
border-bottom: 2px solid $c-positive;
|
||||
padding-bottom: 4px;
|
||||
//border-bottom: 2px solid $c-positive;
|
||||
//padding-bottom: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,26 +155,21 @@
|
|||
background-color: $c-transp;
|
||||
|
||||
a {
|
||||
color: $c-black;
|
||||
opacity: .65;
|
||||
}
|
||||
}
|
||||
|
||||
> .active:hover {
|
||||
background-color: $c-white;
|
||||
|
||||
a {
|
||||
color: $c-black;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.dropdown-item:hover,
|
||||
> li:hover {
|
||||
background-color: $c-white;
|
||||
//background-color: $c-white;
|
||||
border-radius: 3px;
|
||||
|
||||
a {
|
||||
color: $c-black;
|
||||
color: $c-white;
|
||||
opacity: .65;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-transition: opacity .2s cubic-bezier(.645, .045, .355, 1);
|
||||
transition: opacity .2s cubic-bezier(.645, .045, .355, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -182,9 +190,10 @@
|
|||
}
|
||||
|
||||
.tab {
|
||||
color: $c-bar-bg;
|
||||
color: $c-white;
|
||||
//color: $c-bar-bg;
|
||||
display: block;
|
||||
font-size: 12pt;
|
||||
font-size: 10pt;
|
||||
font-weight: 100;
|
||||
padding: {
|
||||
bottom: 10px;
|
||||
|
@ -192,6 +201,7 @@
|
|||
right: 5px;
|
||||
top: 9px;
|
||||
}
|
||||
text-transform: uppercase;
|
||||
|
||||
&.userImg {
|
||||
padding-bottom: 5px;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
.dataNotReadyYet {
|
||||
color: $c-warning;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
text-align: center;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
|
||||
|
||||
#notification_menu {
|
||||
.innerDropdownInnerUL {
|
||||
margin-left: 0;
|
||||
|
@ -128,10 +130,11 @@
|
|||
|
||||
#stat_hd {
|
||||
@include border-radius(3px);
|
||||
background-color: $c-white;
|
||||
//background-color: $c-white;
|
||||
border: 1px solid $c-content-border;
|
||||
height: 25px;
|
||||
margin-top: 3px;
|
||||
margin-left: -10px;
|
||||
margin-top: 8px;
|
||||
position: relative;
|
||||
right: 3px;
|
||||
text-align: center;
|
||||
|
|
|
@ -158,7 +158,7 @@ toolbar {
|
|||
select {
|
||||
background: $c-white;
|
||||
border: 1px solid $c-c2grey !important;
|
||||
border-radius: 3px !important;
|
||||
border-radius: 0 !important;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
height: 30px;
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
.bindParamEditorWrapper,
|
||||
.aqlEditorWrapper {
|
||||
|
||||
background-color: $c-white;
|
||||
overflow: hidden;
|
||||
|
||||
.stringtype {
|
||||
|
@ -51,7 +53,7 @@
|
|||
|
||||
table {
|
||||
border-top: 0;
|
||||
font: 13px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace;
|
||||
font-family: 'Lato', sans-serif;
|
||||
|
||||
tbody {
|
||||
display: block;
|
||||
|
@ -72,7 +74,7 @@
|
|||
}
|
||||
|
||||
&.selected {
|
||||
background-color: $c-positive;
|
||||
background-color: rgba(125, 188, 66, .64);
|
||||
color: $c-white;
|
||||
|
||||
.spanWrapper {
|
||||
|
@ -107,7 +109,7 @@
|
|||
|
||||
.fa {
|
||||
cursor: pointer;
|
||||
font-size: 18pt;
|
||||
font-size: 16pt;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
@ -125,7 +127,7 @@
|
|||
@extend %inputs;
|
||||
clear: both;
|
||||
float: right;
|
||||
font: 13px/normal Monaco,Menlo,'Ubuntu Mono',Consolas,source-code-pro,monospace !important;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 17px;
|
||||
margin-bottom: 3px;
|
||||
margin-top: 3px;
|
||||
|
@ -134,7 +136,8 @@
|
|||
}
|
||||
|
||||
th {
|
||||
font: 13px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
|
||||
font-family: 'Lato', sans-serif;
|
||||
font-weight: 400;
|
||||
height: 34px;
|
||||
padding: 0;
|
||||
width: 50%;
|
||||
|
@ -146,6 +149,27 @@
|
|||
.bindParamEditorWrapper {
|
||||
height: 100%;
|
||||
|
||||
table {
|
||||
thead {
|
||||
tr {
|
||||
th {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th:first-child {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
tbody {
|
||||
input {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.selectError {
|
||||
background: $c-negative;
|
||||
}
|
||||
|
@ -186,7 +210,7 @@
|
|||
.previewBar {
|
||||
background-color: $c-white;
|
||||
border-bottom: 1px solid $c-content-border;
|
||||
font: 13px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
|
||||
font-family: 'Lato', sans-serif;
|
||||
height: 34px;
|
||||
|
||||
span {
|
||||
|
@ -220,6 +244,15 @@
|
|||
clear: both;
|
||||
margin-top: 0;
|
||||
width: 100%;
|
||||
|
||||
.arangoToolbar {
|
||||
.fa {
|
||||
&.fa-star,
|
||||
&.fa-star-o {
|
||||
color: $c-yellow;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.outputEditors {
|
||||
|
|
|
@ -561,7 +561,7 @@
|
|||
div.centralRow {
|
||||
margin: {
|
||||
bottom: 40px;
|
||||
top: 40px;
|
||||
top: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
.subnavmenu {
|
||||
|
||||
background-color: $c-white;
|
||||
height: auto;
|
||||
|
||||
ul {
|
||||
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
|
||||
&.left {
|
||||
float: left;
|
||||
width: 120px;
|
||||
|
||||
li {
|
||||
float: left;
|
||||
padding: 0 10px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.right {
|
||||
float: right;
|
||||
width: 80%;
|
||||
|
||||
li {
|
||||
float: right;
|
||||
padding: 0 0 0 40px;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
font-size: 9pt;
|
||||
line-height: 30px;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
|
||||
&.active {
|
||||
a {
|
||||
color: rgba(51, 51, 51, .6);
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: $c-black;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.health-info,
|
||||
.db-info,
|
||||
.db-state,
|
||||
.health-state {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.health-info,
|
||||
.db-info,
|
||||
.db-icon {
|
||||
color: rgba(0, 0, 0, .64);
|
||||
}
|
||||
|
||||
.health-state {
|
||||
color: $c-positive;
|
||||
}
|
||||
|
||||
.health-icon {
|
||||
color: $c-positive;
|
||||
}
|
||||
|
||||
}
|
|
@ -76,13 +76,13 @@
|
|||
}
|
||||
|
||||
.arangoToolbarTop {
|
||||
border-top-left-radius: 3px;
|
||||
border-top-right-radius: 3px;
|
||||
//border-top-left-radius: 3px;
|
||||
//border-top-right-radius: 3px;
|
||||
}
|
||||
|
||||
.arangoToolbarBottom {
|
||||
border-bottom-left-radius: 3px;
|
||||
border-bottom-right-radius: 3px;
|
||||
//border-bottom-left-radius: 3px;
|
||||
//border-bottom-right-radius: 3px;
|
||||
clear: both;
|
||||
|
||||
#executeQuery {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
border-radius: 3px !important;
|
||||
box-shadow: none !important;
|
||||
color: $c-white !important;
|
||||
font-family: 'Open Sans',sans-serif !important;
|
||||
font-family: 'Lato',sans-serif !important;
|
||||
font-size: 10pt !important;
|
||||
font-weight: 100 !important;
|
||||
z-index: 99999999;
|
||||
|
|
|
@ -71,6 +71,8 @@
|
|||
@import 'progressView';
|
||||
// spotlight view
|
||||
@import 'spotlightView';
|
||||
// cluster view
|
||||
@import 'clusterView';
|
||||
// application detail view
|
||||
@import 'applicationDetailView';
|
||||
|
||||
|
@ -81,6 +83,8 @@
|
|||
@import 'arangoTable';
|
||||
//arangoTabbar Template
|
||||
@import 'arangoTabbar';
|
||||
//Sub Navigation
|
||||
@import 'subNavbar';
|
||||
|
||||
// Data Tables, TODO: might all be superflous
|
||||
@import 'dataTables';
|
||||
|
|
|
@ -12515,7 +12515,7 @@ var EventEmitter = require("./lib/event_emitter").EventEmitter;
|
|||
var editorCss = ".ace_editor {\
|
||||
position: relative;\
|
||||
overflow: hidden;\
|
||||
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\
|
||||
font-family: 'Lato', 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\
|
||||
font-size: 12px;\
|
||||
line-height: normal;\
|
||||
direction: ltr;\
|
||||
|
|
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue