1
0
Fork 0

Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions

This commit is contained in:
jsteemann 2015-10-16 22:50:32 +02:00
commit 82b3acdf17
33 changed files with 410 additions and 1166 deletions

View File

@ -47,10 +47,7 @@
"frontend/js/lib/jquery.textfill.min.js",
"frontend/js/lib/select2.min.js",
"frontend/js/lib/jsoneditor-min.js",
"frontend/js/lib/d3.v3.min.js",
"frontend/js/lib/nv.d3.min.js",
"frontend/js/lib/strftime-min.js",
"frontend/js/lib/dygraph-combined.min.js",
"frontend/js/lib/d3.fisheye.min.js",
"frontend/js/lib/bootstrap-pagination.min.js",
"frontend/js/lib/jqconsole.min.js",
@ -71,7 +68,6 @@
"frontend/js/arango/arango.js",
"frontend/js/arango/templateEngine.js",
"frontend/js/shell/browser.js",
"frontend/js/config/dygraphConfig.js",
"frontend/js/modules/underscore.js"
],
js: [
@ -201,7 +197,7 @@
},
files: [{
expand: true,
src: ['clusterFrontend/build/cluster.js'],
src: ['clusterFrontend/build/cluster.js', 'clusterFrontend/build/libs.js'],
dest: '.',
ext: '.js.gz'
}]
@ -338,7 +334,11 @@
"frontend/js/lib/jquery-2.1.0.min.js",
"frontend/js/lib/underscore-min.js",
"frontend/js/lib/backbone-min.js",
"frontend/js/lib/bootstrap-min.js"
"frontend/js/lib/bootstrap-min.js",
"frontend/js/lib/d3.v3.min.js",
"frontend/js/lib/nv.d3.min.js",
"frontend/js/config/dygraphConfig.js",
"frontend/js/lib/dygraph-combined.min.js"
],
dest: 'build/sharedLibs.js',
options: {
@ -372,10 +372,6 @@
},
jsCluster: {
src: [
"frontend/js/lib/dygraph-combined.min.js",
"frontend/js/config/dygraphConfig.js",
"frontend/js/lib/d3.v3.min.js",
"frontend/js/lib/nv.d3.min.js",
"frontend/js/arango/arango.js",
"clusterFrontend/js/models/*",
"clusterFrontend/js/collections/*",
@ -479,21 +475,38 @@
},
uglify: {
default: {
default1: {
files: {
'frontend/build/app.min.js': 'frontend/build/app.js'
}
},
default2: {
files: {
'frontend/build/app.min.js': 'frontend/build/app.js',
'clusterFrontend/build/cluster.min.js': 'clusterFrontend/build/cluster.js'
}
},
libs: {
libs1: {
files: {
'frontend/build/libs.min.js': 'frontend/build/libs.js'
}
},
libs2: {
files: {
'build/sharedLibs.min.js': 'build/sharedLibs.js'
}
},
libs3: {
files: {
'frontend/build/libs.min.js': 'frontend/build/libs.js',
'build/sharedLibs.min.js': 'build/sharedLibs.js',
'frontend/src/ace.min.js': 'frontend/src/ace.js'
}
}
},
concurrent: {
uglifyFast: ['uglify:default1', 'uglify:default2'],
uglifyAll: ['uglify:default1', 'uglify:default2', 'uglify:libs1', 'uglify:libs2', 'uglify:libs3']
},
watch: {
sass: {
files: [
@ -560,7 +573,6 @@
'sass:dev',
'jshint:default',
'replace',
'imagemin',
'concat',
'concat_in_order:sharedES',
'babel',
@ -570,7 +582,7 @@
'concat_in_order:htmlCluster',
'concat_in_order:htmlStandalone',
'cssmin',
'uglify:default',
'concurrent:uglifyFast',
'htmlmin',
'compress'
]);
@ -587,7 +599,7 @@
'concat_in_order:jsCluster',
'concat_in_order:htmlCluster',
'concat_in_order:htmlStandalone',
'uglify:default',
'concurrent:uglifyFast',
'watch'
]);
@ -606,8 +618,7 @@
'concat_in_order:htmlCluster',
'concat_in_order:htmlStandalone',
'cssmin',
'uglify:default',
'uglify:libs',
'concurrent:uglifyAll',
'htmlmin',
'compress'
]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -11103,299 +11103,6 @@ ArangoConnection.prototype.PATCH = ArangoConnection.prototype.patch;
// outline-regexp: "/// @brief\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @}"
// End:
/*global _, Dygraph, window, document */
(function () {
"use strict";
window.dygraphConfig = {
defaultFrame : 20 * 60 * 1000,
zeropad: function (x) {
if (x < 10) {
return "0" + x;
}
return x;
},
xAxisFormat: function (d) {
if (d === -1) {
return "";
}
var date = new Date(d);
return this.zeropad(date.getHours()) + ":"
+ this.zeropad(date.getMinutes()) + ":"
+ this.zeropad(date.getSeconds());
},
mergeObjects: function (o1, o2, mergeAttribList) {
if (!mergeAttribList) {
mergeAttribList = [];
}
var vals = {}, res;
mergeAttribList.forEach(function (a) {
var valO1 = o1[a],
valO2 = o2[a];
if (valO1 === undefined) {
valO1 = {};
}
if (valO2 === undefined) {
valO2 = {};
}
vals[a] = _.extend(valO1, valO2);
});
res = _.extend(o1, o2);
Object.keys(vals).forEach(function (k) {
res[k] = vals[k];
});
return res;
},
mapStatToFigure : {
residentSize : ["times", "residentSizePercent"],
pageFaults : ["times", "majorPageFaultsPerSecond", "minorPageFaultsPerSecond"],
systemUserTime : ["times", "systemTimePerSecond", "userTimePerSecond"],
totalTime : ["times", "avgQueueTime", "avgRequestTime", "avgIoTime"],
dataTransfer : ["times", "bytesSentPerSecond", "bytesReceivedPerSecond"],
requests : ["times", "getsPerSecond", "putsPerSecond", "postsPerSecond",
"deletesPerSecond", "patchesPerSecond", "headsPerSecond",
"optionsPerSecond", "othersPerSecond"]
},
//colors for dygraphs
colors: ["#617e2b", "#296e9c", "#81ccd8", "#7ca530", "#3c3c3c",
"#aa90bd", "#e1811d", "#c7d4b2", "#d0b2d4"],
// figure dependend options
figureDependedOptions: {
clusterRequestsPerSecond: {
showLabelsOnHighlight: true,
title: '',
header : "Cluster Requests per Second",
stackedGraph: true,
div: "lineGraphLegend",
labelsKMG2: false,
axes: {
y: {
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3));
},
axisLabelFormatter: function (y) {
if (y === 0) {
return 0;
}
return parseFloat(y.toPrecision(3));
}
}
}
},
residentSize: {
header: "Resident Size",
axes: {
y: {
labelsKMG2: false,
axisLabelFormatter: function (y) {
return parseFloat(y.toPrecision(3) * 100) + "%";
},
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3) * 100) + "%";
}
}
}
},
pageFaults: {
header : "Page Faults",
visibility: [true, false],
labels: ["datetime", "Major Page", "Minor Page"],
div: "pageFaultsChart",
labelsKMG2: false,
axes: {
y: {
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3));
},
axisLabelFormatter: function (y) {
if (y === 0) {
return 0;
}
return parseFloat(y.toPrecision(3));
}
}
}
},
systemUserTime: {
div: "systemUserTimeChart",
header: "System and User Time",
labels: ["datetime", "System Time", "User Time"],
stackedGraph: true,
labelsKMG2: false,
axes: {
y: {
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3));
},
axisLabelFormatter: function (y) {
if (y === 0) {
return 0;
}
return parseFloat(y.toPrecision(3));
}
}
}
},
totalTime: {
div: "totalTimeChart",
header: "Total Time",
labels: ["datetime", "Queue", "Computation", "I/O"],
labelsKMG2: false,
axes: {
y: {
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3));
},
axisLabelFormatter: function (y) {
if (y === 0) {
return 0;
}
return parseFloat(y.toPrecision(3));
}
}
},
stackedGraph: true
},
dataTransfer: {
header: "Data Transfer",
labels: ["datetime", "Bytes sent", "Bytes received"],
stackedGraph: true,
div: "dataTransferChart"
},
requests: {
header: "Requests",
labels: ["datetime", "GET", "PUT", "POST", "DELETE", "PATCH", "HEAD", "OPTIONS", "OTHER"],
stackedGraph: true,
div: "requestsChart",
axes: {
y: {
valueFormatter: function (y) {
return parseFloat(y.toPrecision(3));
},
axisLabelFormatter: function (y) {
if (y === 0) {
return 0;
}
return parseFloat(y.toPrecision(3));
}
}
}
}
},
getDashBoardFigures : function (all) {
var result = [], self = this;
Object.keys(this.figureDependedOptions).forEach(function (k) {
// ClusterRequestsPerSecond should not be ignored. Quick Fix
if (k !== "clusterRequestsPerSecond" && (self.figureDependedOptions[k].div || all)) {
result.push(k);
}
});
return result;
},
//configuration for chart overview
getDefaultConfig: function (figure) {
var self = this;
var result = {
digitsAfterDecimal: 1,
drawGapPoints: true,
fillGraph: true,
showLabelsOnHighlight: false,
strokeWidth: 1.0,
lineWidth: 1.0,
strokeBorderWidth: 1.0,
includeZero: true,
highlightCircleSize: 2.5,
labelsSeparateLines : true,
strokeBorderColor: '#ffffff',
interactionModel: {},
maxNumberWidth : 10,
colors: [this.colors[0]],
xAxisLabelWidth: "50",
rightGap: 15,
showRangeSelector: false,
rangeSelectorHeight: 50,
rangeSelectorPlotStrokeColor: '#365300',
rangeSelectorPlotFillColor: '',
// rangeSelectorPlotFillColor: '#414a4c',
pixelsPerLabel: 50,
labelsKMG2: true,
dateWindow: [
new Date().getTime() -
this.defaultFrame,
new Date().getTime()
],
axes: {
x: {
valueFormatter: function (d) {
return self.xAxisFormat(d);
}
},
y: {
ticker: Dygraph.numericLinearTicks
}
}
};
if (this.figureDependedOptions[figure]) {
result = this.mergeObjects(
result, this.figureDependedOptions[figure], ["axes"]
);
if (result.div && result.labels) {
result.colors = this.getColors(result.labels);
result.labelsDiv = document.getElementById(result.div + "Legend");
result.legend = "always";
result.showLabelsOnHighlight = true;
}
}
return result;
},
getDetailChartConfig: function (figure) {
var result = _.extend(
this.getDefaultConfig(figure),
{
showRangeSelector: true,
interactionModel: null,
showLabelsOnHighlight: true,
highlightCircleSize: 2.5,
legend: "always",
labelsDiv: "div#detailLegend.dashboard-legend-inner"
}
);
if (figure === "pageFaults") {
result.visibility = [true, true];
}
if (!result.labels) {
result.labels = ["datetime", result.header];
result.colors = this.getColors(result.labels);
}
return result;
},
getColors: function (labels) {
var colorList;
colorList = this.colors.concat([]);
return colorList.slice(0, labels.length - 1);
}
};
}());
module.define("underscore", function(exports, module) {
// Underscore.js 1.8.3
// http://underscorejs.org
@ -20216,28 +19923,6 @@ var __fs__=require("fs");var __rcf__=__fs__.join(__fs__.home(),".arangosh.rc");i
// outline-regexp: "\\(/// @brief\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
// End:
/*global window, Backbone */
(function() {
"use strict";
window.Airport = Backbone.Model.extend({
defaults: {
"Airport ID" : 0,
"Latitude" : 0,
"Longitude" : 0,
"Altitude" : 0,
"Timezone" : 0,
"Name" : "",
"City" : "",
"Country" : "",
"ICAO" : "",
"DST" : "",
"Tz time zone" : ""
}
});
}());
/*global window, Backbone, $, arangoHelper */
(function() {
'use strict';
@ -21093,117 +20778,6 @@ window.Users = Backbone.Model.extend({
});
}());
/*jshint browser: true */
/*jshint unused: false */
/*global window, Backbone, $, _ */
(function () {
"use strict";
window.Airports = Backbone.Collection.extend({
initialize: function(options) {
this.collectionName = options.collectionName;
},
getAirports: function(callback) {
var self = this;
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "for a in airports return {Latitude: a.Latitude, " +
"Longitude: a.Longitude, Name: a.Name, City: a.City, _key: a._key}"
}),
contentType: "application/json",
processData: false,
success: function (data) {
_.each(data.result, function(airport) {
self.add(airport);
});
if (callback) {
callback();
}
},
error: function (data) {
}
});
},
getShortestFlight: function(from, to, callback) {
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "RETURN SHORTEST_PATH(@@airports,@@flights,@start,@dest,'outbound',{})",
bindVars: {
"@flights": this.collectionName,
"@airports": "airports",
"start": "airports/" + from,
"dest": "airports/" + to
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result[0]);
},
error: function (data) {
}
});
},
getFlightDistribution: function(callback) {
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "FOR f IN @@flights COLLECT dest = f._to " +
"WITH COUNT INTO n SORT n RETURN {Dest: SPLIT(dest, '/')[1], count: n}",
bindVars: {
"@flights": this.collectionName
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result);
},
error: function (data) {
}
});
},
getFlightsForAirport: function(airport, callback) {
var self = this;
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "for f in @@flights filter f._from == @airport COLLECT dest = f._to " +
"WITH COUNT INTO n SORT n RETURN {Dest: SPLIT(dest, '/')[1], count: n}",
bindVars: {
"airport": "airports/" + airport,
"@flights": this.collectionName
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result);
},
error: function (data) {
}
});
},
model: window.Airport
});
}());
/*jshint browser: true */
/*jshint unused: false */
/*global Backbone, window, arangoCollectionModel, $, arangoHelper, data, _ */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +1,3 @@
<script src="libs.js?version=1444775885142"></script>
<script src="app.js?version=1444775885142"></script>
<script src="sharedLibs.js?version=1445016662634"></script>
<script src="libs.js?version=1445016662634"></script>
<script src="app.js?version=1445016662634"></script>

View File

@ -609,27 +609,7 @@ if (list.length > 0) {
<a id="databases" class="tab" href="#databases">Manage Databases</a>
</li>
<% } %>
</ul></script><script id="demoView.ejs" type="text/template"><div class="headerBar">
<div class="search-field">
<input type="text" id="demoSearchInput" class="search-input" placeholder="Search...">
<i id="demoSearchSubmit" class="fa fa-search"></i>
<!-- <img id="demoSearchSubmit" class="search-submit-icon"> -->
<!--<div id="searchResults" class="demo-dropdown-menu"><ul></ul></div>-->
</div>
<div class="pull-left">
<a class="arangoHeader">Demo</a>
</div>
<div class="styled-select">
<select id="flightQuerySelect" class="query-select" style="margin-top: 5px; height: 25px">
<option>Please select your query</option>
<optgroup label="Example queries"></optgroup>
</select>
</div>
</div>
<div id="demoContent" class="innerContent">
<div id="demo-mapdiv" style="width: 100%; height: 490px;"><div id="demo-mapdiv-info"></div></div>
</div></script><script id="documentView.ejs" type="text/template"><div id="transparentHeader" class="headerBar">
</ul></script><script id="documentView.ejs" type="text/template"><div id="transparentHeader" class="headerBar">
</div>
@ -1335,16 +1315,6 @@ if (list.length > 0) {
</div>
<%});%>
</div>
</div></script><script id="graphTestView.ejs" type="text/template"><div class="headerBar">
<div class="pull-left">
<a class="arangoHeader">Graphs Test</a>
</div>
</div>
<div class="contentDiv" id="graphTest">
<div id="cy" style="height:500px; width: 100%; background-color: #fff"></div>
</div></script><script id="graphViewGroupByEntry.ejs" type="text/template"><div class="control-group">
<label for="<%=type %>_<%=id%>" class="control-label">Attribute <%=id%></label>
<div class="controls">
@ -2642,4 +2612,4 @@ var cutByResolution = function (str) {
<% }); %>
</ul>
</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><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><script src="libs.js?version=1444775885142"></script><script src="app.js?version=1444775885142"></script></body></html>
<% } %></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><footer class="footer"><div class="resizecontainer" id="footerBar"></div></footer><script src="sharedLibs.js?version=1445016662634"></script><script src="libs.js?version=1445016662634"></script><script src="app.js?version=1445016662634"></script></body></html>

View File

@ -665,30 +665,6 @@ if (list.length > 0) {
</ul>
</script>
<script id="demoView.ejs" type="text/template">
<div class="headerBar">
<div class="search-field">
<input type="text" id="demoSearchInput" class="search-input" placeholder="Search...">
<i id="demoSearchSubmit" class="fa fa-search"></i>
<!-- <img id="demoSearchSubmit" class="search-submit-icon"> -->
<!--<div id="searchResults" class="demo-dropdown-menu"><ul></ul></div>-->
</div>
<div class="pull-left">
<a class="arangoHeader">Demo</a>
</div>
<div class="styled-select">
<select id="flightQuerySelect" class="query-select" style="margin-top: 5px; height: 25px">
<option>Please select your query</option>
<optgroup label="Example queries"></optgroup>
</select>
</div>
</div>
<div id="demoContent" class="innerContent">
<div id="demo-mapdiv" style="width: 100%; height: 490px;"><div id="demo-mapdiv-info"></div></div>
</div>
</script>
<script id="documentView.ejs" type="text/template">
<div id="transparentHeader" class="headerBar">
@ -1434,20 +1410,6 @@ if (list.length > 0) {
</script>
<script id="graphTestView.ejs" type="text/template">
<div class="headerBar">
<div class="pull-left">
<a class="arangoHeader">Graphs Test</a>
</div>
</div>
<div class="contentDiv" id="graphTest">
<div id="cy" style="height:500px; width: 100%; background-color: #fff"></div>
</div>
</script>
<script id="graphViewGroupByEntry.ejs" type="text/template">
<div class="control-group">
<label for="<%=type %>_<%=id%>" class="control-label">Attribute <%=id%></label>
@ -2897,8 +2859,9 @@ var cutByResolution = function (str) {
</div>
</footer>
<script src="libs.js?version=1444775885142"></script>
<script src="app.js?version=1444775885142"></script>
<script src="sharedLibs.js?version=1445016662634"></script>
<script src="libs.js?version=1445016662634"></script>
<script src="app.js?version=1445016662634"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -2087,7 +2087,7 @@ textarea,
height: 0;
visibility: hidden; }
.script-dropdown-menu .dropdown-item, .addButton, .deleteButton, a.headerButton, a.button-gui, div.toolbox div.gv_action_button, .clusterDownBtn button, div .tile a span.icon, div .bigtile a span.icon, div .tile a svg, div .bigtile a svg, div .tile .iconSet span, div .bigtile .iconSet span, div .bigtile, .contentDiv .icon, .icon-info-sign, .arangoicon, div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label, .search-submit-icon, .gv-search-submit-icon, .fixedDropdown .notificationItem i, .fullNotification:hover, .contentTables tr.contentRowInactive a, .arango-tab a, .arango-tab li, .pagination-line li a, .link > line, .node, .edit-index-table .icon_arangodb_roundminus, div.demo-dropdown-menu {
.script-dropdown-menu .dropdown-item, .addButton, .deleteButton, a.headerButton, a.button-gui, div.toolbox div.gv_action_button, .clusterDownBtn button, div .tile a span.icon, div .bigtile a span.icon, div .tile a svg, div .bigtile a svg, div .tile .iconSet span, div .bigtile .iconSet span, div .bigtile, .contentDiv .icon, .icon-info-sign, .arangoicon, div.headerDropdown.headerDropdown input[type=checkbox].css-checkbox label.css-label, .search-submit-icon, .gv-search-submit-icon, .fixedDropdown .notificationItem i, .fullNotification:hover, .contentTables tr.contentRowInactive a, .arango-tab a, .arango-tab li, .pagination-line li a, .link > line, .node, .edit-index-table .icon_arangodb_roundminus {
cursor: pointer; }
.navbar, footer.footer {
@ -7933,40 +7933,3 @@ table .sorting {
.ajax-upload-dragdrop span {
position: relative;
top: -22px; }
div.demo-dropdown-menu {
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
background-color: #686766;
margin-bottom: 5px;
margin-left: 5px;
position: absolute;
top: 32px;
width: 222px;
z-index: 100; }
#flightQuerySelect.query-select {
font-size: 13px;
height: 25px;
line-height: 1.1em;
margin-top: 6px; }
#demo-mapdiv {
position: relative; }
#demo-mapdiv-info {
background-color: rgba(255, 255, 255, 0.75);
border: 1.5px solid #666;
border-radius: 3px;
bottom: 20px;
font-size: 11px;
height: 150px;
line-height: 1.3em;
padding: 6px 6px 3px;
position: absolute;
right: 20px;
width: 225px; }
.amcharts-balloon-div {
line-height: 1.1em; }

View File

@ -1,2 +1,3 @@
<script src="sharedLibs.js?version=__VERSION"></script>
<script src="libs.js?version=__VERSION"></script>
<script src="app.js?version=__VERSION"></script>

View File

@ -1,110 +0,0 @@
/*jshint browser: true */
/*jshint unused: false */
/*global window, Backbone, $, _ */
(function () {
"use strict";
window.Airports = Backbone.Collection.extend({
initialize: function(options) {
this.collectionName = options.collectionName;
},
getAirports: function(callback) {
var self = this;
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "for a in airports return {Latitude: a.Latitude, " +
"Longitude: a.Longitude, Name: a.Name, City: a.City, _key: a._key}"
}),
contentType: "application/json",
processData: false,
success: function (data) {
_.each(data.result, function(airport) {
self.add(airport);
});
if (callback) {
callback();
}
},
error: function (data) {
}
});
},
getShortestFlight: function(from, to, callback) {
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "RETURN SHORTEST_PATH(@@airports,@@flights,@start,@dest,'outbound',{})",
bindVars: {
"@flights": this.collectionName,
"@airports": "airports",
"start": "airports/" + from,
"dest": "airports/" + to
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result[0]);
},
error: function (data) {
}
});
},
getFlightDistribution: function(callback) {
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "FOR f IN @@flights COLLECT dest = f._to " +
"WITH COUNT INTO n SORT n RETURN {Dest: SPLIT(dest, '/')[1], count: n}",
bindVars: {
"@flights": this.collectionName
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result);
},
error: function (data) {
}
});
},
getFlightsForAirport: function(airport, callback) {
var self = this;
$.ajax({
type: "POST",
url: "/_api/cursor",
data: JSON.stringify({
query: "for f in @@flights filter f._from == @airport COLLECT dest = f._to " +
"WITH COUNT INTO n SORT n RETURN {Dest: SPLIT(dest, '/')[1], count: n}",
bindVars: {
"airport": "airports/" + airport,
"@flights": this.collectionName
}
}),
contentType: "application/json",
processData: false,
success: function (data) {
callback(data.result);
},
error: function (data) {
}
});
},
model: window.Airport
});
}());

View File

@ -1,21 +0,0 @@
/*global window, Backbone */
(function() {
"use strict";
window.Airport = Backbone.Model.extend({
defaults: {
"Airport ID" : 0,
"Latitude" : 0,
"Longitude" : 0,
"Altitude" : 0,
"Timezone" : 0,
"Name" : "",
"City" : "",
"Country" : "",
"ICAO" : "",
"DST" : "",
"Tz time zone" : ""
}
});
}());

View File

@ -1,23 +0,0 @@
<script id="demoView.ejs" type="text/template">
<div class="headerBar">
<div class="search-field">
<input type="text" id="demoSearchInput" class="search-input" placeholder="Search...">
<i id="demoSearchSubmit" class="fa fa-search"></i>
<!-- <img id="demoSearchSubmit" class="search-submit-icon"> -->
<!--<div id="searchResults" class="demo-dropdown-menu"><ul></ul></div>-->
</div>
<div class="pull-left">
<a class="arangoHeader">Demo</a>
</div>
<div class="styled-select">
<select id="flightQuerySelect" class="query-select" style="margin-top: 5px; height: 25px">
<option>Please select your query</option>
<optgroup label="Example queries"></optgroup>
</select>
</div>
</div>
<div id="demoContent" class="innerContent">
<div id="demo-mapdiv" style="width: 100%; height: 490px;"><div id="demo-mapdiv-info"></div></div>
</div>
</script>

View File

@ -1,13 +0,0 @@
<script id="graphTestView.ejs" type="text/template">
<div class="headerBar">
<div class="pull-left">
<a class="arangoHeader">Graphs Test</a>
</div>
</div>
<div class="contentDiv" id="graphTest">
<div id="cy" style="height:500px; width: 100%; background-color: #fff"></div>
</div>
</script>

View File

@ -1,42 +0,0 @@
div.demo-dropdown-menu {
@extend %clickable;
@include border-radius(0 0 5px 5px);
background-color: $c-bar-bg;
margin-bottom: 5px;
margin-left: 5px;
position: absolute;
top: 32px;
width: 222px;
z-index: 100;
}
#flightQuerySelect.query-select {
font-size: 13px;
height: 25px;
line-height: 1.1em;
margin-top: 6px;
}
#demo-mapdiv {
position: relative;
}
#demo-mapdiv-info {
background-color: rgba(255, 255, 255, .75);
border: 1.5px solid $c-darker-grey;
border-radius: 3px;
bottom: 20px;
font-size: 11px;
height: 150px;
line-height: 1.3em;
padding: 6px 6px 3px;
position: absolute;
right: 20px;
width: 225px;
}
.amcharts-balloon-div {
line-height: 1.1em;
}

View File

@ -85,6 +85,3 @@
// Plugin
@import 'uploadfile';
// Demo
@import 'demo';

View File

@ -11,6 +11,7 @@
"grunt": "^0.4.5",
"grunt-babel": "^5.0.1",
"grunt-concat-in-order": "^0.1.6",
"grunt-concurrent": "^2.0.3",
"grunt-contrib-compress": "^0.13.0",
"grunt-contrib-concat": "^0.5.1",
"grunt-contrib-cssmin": "^0.12.3",