mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into sharding
Conflicts: CHANGELOG
This commit is contained in:
commit
48e3a5828c
44
CHANGELOG
44
CHANGELOG
|
@ -26,6 +26,10 @@ v1.5.0 (XXXX-XX-XX)
|
|||
return [ ]; // include everything else
|
||||
}, false);
|
||||
|
||||
* fail if invalid `strategy`, `order` or `itemOrder` attribute values
|
||||
are passed to the AQL TRAVERSAL function. Omitting these attributes
|
||||
is not considered an error, but specifying an invalid value for any
|
||||
of these attributes will make an AQL query fail.
|
||||
|
||||
* added SHORTEST_PATH AQL function
|
||||
|
||||
|
@ -57,8 +61,6 @@ v1.5.0 (XXXX-XX-XX)
|
|||
can also be enforced by setting the `X-Arango-Version` HTTP header in a
|
||||
client request to this API on a per-request basis.
|
||||
|
||||
* issue #748: add vertex filtering to AQL's TRAVERSAL[_TREE]() function
|
||||
|
||||
* allow direct access from the `db` object to collections whose names start
|
||||
with an underscore (e.g. db._users).
|
||||
|
||||
|
@ -170,9 +172,45 @@ v1.5.0 (XXXX-XX-XX)
|
|||
result of <collection>.getIndexes() for each index. This is
|
||||
currently only implemented for hash indices and skiplist indices.
|
||||
|
||||
v1.4.8 (xxxx-xx-xx)
|
||||
|
||||
v1.4.9 (XXXX-XX-XX)
|
||||
-------------------
|
||||
|
||||
* issue #755: TRAVERSAL does not use strategy, order and itemOrder options
|
||||
|
||||
these options were not honored when configuring a traversal via the AQL
|
||||
TRAVERSAL function. Now, these options are used if specified.
|
||||
|
||||
* allow vertex and edge filtering with user-defined functions in TRAVERSAL,
|
||||
TRAVERSAL_TREE and SHORTEST_PATH AQL functions:
|
||||
|
||||
// using user-defined AQL functions for edge and vertex filtering
|
||||
RETURN TRAVERSAL(friends, friendrelations, "friends/john", "outbound", {
|
||||
followEdges: "myfunctions::checkedge",
|
||||
filterVertices: "myfunctions::checkvertex"
|
||||
})
|
||||
|
||||
// using the following custom filter functions
|
||||
var aqlfunctions = require("org/arangodb/aql/functions");
|
||||
aqlfunctions.register("myfunctions::checkedge", function (config, vertex, edge, path) {
|
||||
return (edge.type !== 'dislikes'); // don't follow these edges
|
||||
}, false);
|
||||
|
||||
aqlfunctions.register("myfunctions::checkvertex", function (config, vertex, path) {
|
||||
if (vertex.isDeleted || ! vertex.isActive) {
|
||||
return [ "prune", "exclude" ]; // exclude these and don't follow them
|
||||
}
|
||||
return [ ]; // include everything else
|
||||
}, false);
|
||||
|
||||
* issue #748: add vertex filtering to AQL's TRAVERSAL[_TREE]() function
|
||||
|
||||
|
||||
v1.4.8 (2014-01-31)
|
||||
-------------------
|
||||
|
||||
* install foxx apps in the web interface
|
||||
|
||||
* fixed a segfault in the import API
|
||||
|
||||
|
||||
|
|
|
@ -6,16 +6,15 @@
|
|||
.addButton {
|
||||
position: relative;
|
||||
margin-right: 7px;
|
||||
font-size: 20px;
|
||||
font-size: 22px;
|
||||
color: #8AA050;
|
||||
margin-top: 2px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.deleteButton {
|
||||
/*color: #B30000;*/
|
||||
color: #DA4F49;
|
||||
font-size: 20px;
|
||||
font-size: 22px;
|
||||
padding-right: 3px;
|
||||
top: 3px;
|
||||
position: relative;
|
||||
|
@ -317,17 +316,21 @@ button.btn-server {
|
|||
|
||||
a.headerButton {
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
margin-top: 0px;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
min-height: 19px;
|
||||
border-radius: 2px;
|
||||
border-radius: 3px;
|
||||
position: relative;
|
||||
box-shadow: none;
|
||||
background: #8AA051 !important;
|
||||
/*
|
||||
background: #8f8d8c !important;
|
||||
*/
|
||||
color:#FFFFFF !important;
|
||||
height:20px;
|
||||
width:14px;
|
||||
width:13px;
|
||||
padding: 5px 11px 2px 9px;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#databaseTable td span {
|
||||
float: right;
|
||||
color: #B30000;
|
||||
font-size: 18px;
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
#databaseTable td {
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
}
|
||||
|
||||
.addAttribute, .deleteAttribute {
|
||||
font-size: 27px;
|
||||
font-size: 22px;
|
||||
float:right;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
|
||||
.snippet-no-num {
|
||||
font-size: 1em;
|
||||
font-weight: 300;
|
||||
font-weight: 400;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
margin-bottom:0px;
|
||||
}
|
||||
|
@ -184,7 +184,10 @@
|
|||
}
|
||||
|
||||
.pagination ul > li > a:hover, .pagination ul > .active > a, .pagination ul > .active > span {
|
||||
/*
|
||||
background-color: #8aa050;
|
||||
*/
|
||||
background-color: #8f8d8c;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
/* Sets the default values shared for content views*/
|
||||
#content
|
||||
{
|
||||
#content {
|
||||
background-color: rgba(0, 0, 0, 0.15);
|
||||
margin-top: 30px;
|
||||
margin-top: 25px;
|
||||
margin-bottom: 33px;
|
||||
min-height: 80px;
|
||||
height: 100%;
|
||||
|
@ -10,6 +9,13 @@
|
|||
margin-left: 20px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
div.content {
|
||||
padding-top: 13px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
/* layout.css
|
||||
#aboutDiv {
|
||||
padding-bottom: 5px;
|
||||
|
|
|
@ -1,11 +1,3 @@
|
|||
svg.graphViewer {
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: rgba(0,0,0,0.125);
|
||||
margin-left: 74px;
|
||||
}
|
||||
|
||||
.gv_manageButtonContainer {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,18 @@
|
|||
svg.graphViewer {
|
||||
position: absolute;
|
||||
left: 74px;
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: rgba(0,0,0,0.125);
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
div.gv_background {
|
||||
position: relative;
|
||||
height: 685px;
|
||||
}
|
||||
|
||||
img.searchSubmit {
|
||||
height: 16px;
|
||||
margin-left: -18px;
|
||||
|
@ -22,9 +37,9 @@ img.searchSubmit {
|
|||
}
|
||||
|
||||
.toolbox {
|
||||
margin-left: 5px;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
margin-right: 5px;
|
||||
margin-bottom: -340px;
|
||||
border-radius: 0px !important;
|
||||
-webkit-border-radius: 0px !important;
|
||||
-moz-border-radius: 0px !important;
|
||||
|
@ -79,12 +94,14 @@ div.mousepointer {
|
|||
}
|
||||
|
||||
div.gv_zoom_widget {
|
||||
position: relative;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
left: 95px;
|
||||
top: 20px;
|
||||
width: 40px;
|
||||
height: 300px;
|
||||
margin-bottom: -322px;
|
||||
}
|
||||
|
||||
div.gv_zoom_slider {
|
||||
margin: 0px 17px;
|
||||
width: 4px;
|
||||
|
@ -180,14 +197,14 @@ span.gv_caret {
|
|||
}
|
||||
|
||||
div.gv_colour_list {
|
||||
position: relative;
|
||||
position: absolute;
|
||||
right: 26px;
|
||||
top: 20px;
|
||||
text-align: right;
|
||||
height: 680px;
|
||||
max-height: 680px;
|
||||
overflow: auto;
|
||||
margin-bottom: -100%;
|
||||
float: right;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
div.gv_colour_list li {
|
||||
|
|
|
@ -192,10 +192,10 @@ input,select,option {
|
|||
}
|
||||
|
||||
li a [class^="icon_arangodb"], li a [class*=" icon_arangodb"] {
|
||||
font-size: 26px;
|
||||
font-size: 22px;
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
top: 0px;
|
||||
right: 5px;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
.modal-body .icon_arangodb_info {
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
// cannot use strict here as we are going to delete globals
|
||||
|
||||
var exports = require("internal");
|
||||
var fs = require("fs");
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// --SECTION-- Module "internal"
|
||||
|
|
|
@ -2,13 +2,15 @@
|
|||
/*global window, Backbone, $, window, _*/
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
window.ArangoDatabase = Backbone.Collection.extend({
|
||||
|
||||
model: window.Database,
|
||||
|
||||
comparator: "name",
|
||||
|
||||
sync: function(method, model, options) {
|
||||
'use strict';
|
||||
if (method === "read") {
|
||||
options.url = model.url() + "user";
|
||||
}
|
||||
|
@ -20,6 +22,9 @@
|
|||
},
|
||||
|
||||
parse: function(response) {
|
||||
if (!response) {
|
||||
return;
|
||||
}
|
||||
return _.map(response.result, function(v) {
|
||||
return {name:v};
|
||||
});
|
||||
|
|
|
@ -29,8 +29,9 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function ArangoAdapter(nodes, edges, viewer, config) {
|
||||
|
||||
"use strict";
|
||||
|
||||
|
||||
if (nodes === undefined) {
|
||||
throw "The nodes have to be given.";
|
||||
}
|
||||
|
@ -153,7 +154,6 @@ function ArangoAdapter(nodes, edges, viewer, config) {
|
|||
throw "[" + data.errorNum + "] " + data.errorMessage;
|
||||
}
|
||||
catch (e) {
|
||||
console.log(e);
|
||||
throw "Undefined ERROR";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,6 +133,7 @@ function EventDispatcher(nodeShaper, edgeShaper, config) {
|
|||
|
||||
bindSVGEvents = function() {
|
||||
svgObj = svgObj || $("svg");
|
||||
svgObj.unbind();
|
||||
_.each(svgBase, function(fs, ev) {
|
||||
svgObj.bind(ev, function(trigger) {
|
||||
_.each(fs, function(f) {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
/*jslint indent: 2, nomen: true, maxlen: 100, sloppy: true, vars: true, white: true, plusplus: true */
|
||||
/*global _*/
|
||||
/* global eventLibrary */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief Graph functionality
|
||||
|
@ -119,7 +118,7 @@ function EventLibrary() {
|
|||
this.InsertNode = function (config) {
|
||||
self.checkNodeEditorConfig(config);
|
||||
var adapter = config.adapter,
|
||||
nodeShaper = config.shaper;
|
||||
nodeShaper = config.shaper;
|
||||
|
||||
return function(data, callback, x, y) {
|
||||
var cb, d;
|
||||
|
|
|
@ -53,7 +53,9 @@ function ContextMenu(id) {
|
|||
},
|
||||
|
||||
bindMenu = function($objects) {
|
||||
menu = $.contextMenu.create(jqId, {shadow: false});
|
||||
menu = $.contextMenu.create(jqId, {
|
||||
shadow: false
|
||||
});
|
||||
$objects.each(function() {
|
||||
$(this).bind('contextmenu', function(e){
|
||||
menu.show(this,e);
|
||||
|
@ -64,13 +66,14 @@ function ContextMenu(id) {
|
|||
|
||||
divFactory = function() {
|
||||
div = document.getElementById(id);
|
||||
if (!div) {
|
||||
div = document.createElement("div");
|
||||
div.id = id;
|
||||
ul = document.createElement("ul");
|
||||
document.body.appendChild(div);
|
||||
div.appendChild(ul);
|
||||
if (div) {
|
||||
div.parentElement.removeChild(div);
|
||||
}
|
||||
div = document.createElement("div");
|
||||
div.id = id;
|
||||
ul = document.createElement("ul");
|
||||
document.body.appendChild(div);
|
||||
div.appendChild(ul);
|
||||
ul = div.firstChild;
|
||||
return div;
|
||||
};
|
||||
|
|
|
@ -433,7 +433,7 @@ function GraphViewerUI(container, adapterConfig, optWidth, optHeight, viewerConf
|
|||
};
|
||||
container.appendChild(menubar);
|
||||
container.appendChild(background);
|
||||
background.className = "thumbnails";
|
||||
background.className = "thumbnails gv_background ";
|
||||
background.id = "background";
|
||||
|
||||
viewerConfig = viewerConfig || {};
|
||||
|
|
|
@ -271,7 +271,7 @@ exports.printTable = function (list, columns, options) {
|
|||
}
|
||||
|
||||
var pad = '...';
|
||||
var descriptions, matrix, col, what, j, value;
|
||||
var descriptions, matrix, col, what, j;
|
||||
|
||||
if (columns === undefined) {
|
||||
what = list[0];
|
||||
|
|
|
@ -30,9 +30,7 @@ module.define("org/arangodb/graph", function(exports, module) {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var arangodb = require("org/arangodb"),
|
||||
arangosh = require("org/arangodb/arangosh"),
|
||||
is = require("org/arangodb/is"),
|
||||
ArangoQueryCursor = require("org/arangodb/arango-query-cursor").ArangoQueryCursor,
|
||||
common = require("org/arangodb/graph-common"),
|
||||
Edge = common.Edge,
|
||||
Graph = common.Graph,
|
||||
|
|
|
@ -633,14 +633,14 @@ function checkReverse (config) {
|
|||
result = true;
|
||||
}
|
||||
}
|
||||
else if (config.order === ArangoTraverser.PRE_ORDER) {
|
||||
else if (config.order === ArangoTraverser.PRE_ORDER) {
|
||||
// pre order
|
||||
if (config.itemOrder === ArangoTraverser.BACKWARD &&
|
||||
config.strategy === ArangoTraverser.BREADTH_FIRST) {
|
||||
config.strategy === ArangoTraverser.BREADTH_FIRST) {
|
||||
result = true;
|
||||
}
|
||||
else if (config.itemOrder === ArangoTraverser.FORWARD &&
|
||||
config.strategy === ArangoTraverser.DEPTH_FIRST) {
|
||||
config.strategy === ArangoTraverser.DEPTH_FIRST) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
@ -1202,7 +1202,7 @@ ArangoTraverser = function (config) {
|
|||
}
|
||||
if (typeof value === 'string') {
|
||||
value = value.toLowerCase().replace(/-/, "");
|
||||
if (map[value] !== null) {
|
||||
if (map[value] !== null && map[value] !== undefined) {
|
||||
return map[value];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -354,10 +354,12 @@
|
|||
this.foxxList.fetch({
|
||||
async: false
|
||||
});
|
||||
var installAppView = new window.foxxMountView({
|
||||
model: this.foxxList.findWhere({_key: appkey})
|
||||
});
|
||||
installAppView.render();
|
||||
if (!this.installAppView) {
|
||||
this.installAppView = new window.foxxMountView({
|
||||
collection: this.foxxList
|
||||
});
|
||||
}
|
||||
this.installAppView.render(appkey);
|
||||
},
|
||||
|
||||
appDocumentation: function(key) {
|
||||
|
|
|
@ -8,6 +8,6 @@
|
|||
<strong>Version:</strong> <%=attributes.version %><br />
|
||||
<!--Git: <a href=<%=attributes.git %>>Repository</a>-->
|
||||
</p>
|
||||
<button id="install" class="btn btn-success pull-right">Install</button>
|
||||
<button class="btn btn-success pull-right install">Install</button>
|
||||
</div>
|
||||
</small>
|
||||
|
|
|
@ -34,6 +34,6 @@
|
|||
</div>
|
||||
<div id="colFooter" class="modal-footer">
|
||||
<button id="cancel" class="btn btn-danger pull-left">Cancel</button>
|
||||
<button id="install" class="btn btn-success pull-right">Install</button>
|
||||
<button class="btn btn-success pull-right installFoxx">Install</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -24,7 +24,7 @@ gs = _.sortBy(gs, sortF);
|
|||
</div>
|
||||
</ul>
|
||||
|
||||
<ul class="thumbnails">
|
||||
<div class="content">
|
||||
<form action="javascript:void(0);" autocomplete="on" class="form-horizontal" id="creationDialog">
|
||||
<fieldset>
|
||||
<div class="control-group">
|
||||
|
@ -172,5 +172,5 @@ gs = _.sortBy(gs, sortF);
|
|||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
template: templateEngine.createTemplate("foxxInstalledView.ejs"),
|
||||
|
||||
events: {
|
||||
'click #install': 'installFoxx'
|
||||
'click .install': 'installFoxx'
|
||||
},
|
||||
|
||||
initialize: function(){
|
||||
|
|
|
@ -2,28 +2,28 @@
|
|||
/*global alert, Backbone, EJS, $, window, templateEngine */
|
||||
|
||||
window.foxxMountView = Backbone.View.extend({
|
||||
|
||||
el: '#modalPlaceholder',
|
||||
m: {},
|
||||
|
||||
initialize: function () {
|
||||
this.m = this.model.attributes;
|
||||
},
|
||||
|
||||
template: templateEngine.createTemplate("foxxMountView.ejs"),
|
||||
|
||||
render: function() {
|
||||
$(this.el).html(this.template.render(this.model));
|
||||
|
||||
events: {
|
||||
"hidden #install-foxx" : "hidden",
|
||||
"click #cancel" : "hideModal",
|
||||
"click .installFoxx" : "install"
|
||||
},
|
||||
|
||||
render: function(key) {
|
||||
var m = this.collection.findWhere({_key: key});
|
||||
this.m = m;
|
||||
$(this.el).html(this.template.render(m));
|
||||
$('#install-foxx').modal('show');
|
||||
$('.modalTooltips').tooltip({
|
||||
placement: "left"
|
||||
});
|
||||
return this;
|
||||
},
|
||||
events: {
|
||||
"hidden #install-foxx" : "hidden",
|
||||
"click #cancel" : "hideModal",
|
||||
"click #install" : "install"
|
||||
},
|
||||
|
||||
hidden: function () {
|
||||
window.App.navigate("applications", {trigger: true});
|
||||
},
|
||||
|
@ -35,12 +35,10 @@ window.foxxMountView = Backbone.View.extend({
|
|||
alert("Sorry, you have to give a valid mount point, e.g.: /myPath");
|
||||
return false;
|
||||
}
|
||||
|
||||
var self = this;
|
||||
(new window.FoxxCollection()).create({
|
||||
this.collection.create({
|
||||
mount: mountPoint,
|
||||
name: self.m.name,
|
||||
version: self.m.version
|
||||
name: this.m.get("name"),
|
||||
version: this.m.get("version")
|
||||
});
|
||||
this.hideModal();
|
||||
},
|
||||
|
@ -48,4 +46,5 @@ window.foxxMountView = Backbone.View.extend({
|
|||
hideModal: function () {
|
||||
$('#install-foxx').modal('hide');
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -65,6 +65,9 @@ exports.Foxxes = function () {
|
|||
};
|
||||
|
||||
this.install = function (name, mount, version) {
|
||||
if (version) {
|
||||
name = "app:" + name + ":" + version;
|
||||
}
|
||||
return foxxmanager.mount(name, mount, { setup: true });
|
||||
};
|
||||
|
||||
|
|
|
@ -32,7 +32,6 @@ exports.Swagger = function () {
|
|||
"use strict";
|
||||
|
||||
var db = require("internal").db,
|
||||
_routing = db._collection("_routing"),
|
||||
_aal = db._collection("_aal"),
|
||||
_ = require("underscore"),
|
||||
foxx_manager = require("org/arangodb/foxx/manager");
|
||||
|
|
|
@ -1088,7 +1088,7 @@ exports.config = function () {
|
|||
exports.configJson = function () {
|
||||
'use strict';
|
||||
|
||||
var res = arango.GET("/_admin/foxx/config"), name;
|
||||
var res = arango.GET("/_admin/foxx/config");
|
||||
|
||||
arangosh.checkRequestResult(res);
|
||||
|
||||
|
|
|
@ -29,9 +29,7 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
var arangodb = require("org/arangodb"),
|
||||
arangosh = require("org/arangodb/arangosh"),
|
||||
is = require("org/arangodb/is"),
|
||||
ArangoQueryCursor = require("org/arangodb/arango-query-cursor").ArangoQueryCursor,
|
||||
common = require("org/arangodb/graph-common"),
|
||||
Edge = common.Edge,
|
||||
Graph = common.Graph,
|
||||
|
|
|
@ -270,7 +270,7 @@ exports.printTable = function (list, columns, options) {
|
|||
}
|
||||
|
||||
var pad = '...';
|
||||
var descriptions, matrix, col, what, j, value;
|
||||
var descriptions, matrix, col, what, j;
|
||||
|
||||
if (columns === undefined) {
|
||||
what = list[0];
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
|
||||
var graph = require("org/arangodb/graph");
|
||||
|
||||
var Edge = graph.Edge;
|
||||
var Graph = graph.Graph;
|
||||
var Vertex = graph.Vertex;
|
||||
|
||||
|
|
|
@ -632,14 +632,14 @@ function checkReverse (config) {
|
|||
result = true;
|
||||
}
|
||||
}
|
||||
else if (config.order === ArangoTraverser.PRE_ORDER) {
|
||||
else if (config.order === ArangoTraverser.PRE_ORDER) {
|
||||
// pre order
|
||||
if (config.itemOrder === ArangoTraverser.BACKWARD &&
|
||||
config.strategy === ArangoTraverser.BREADTH_FIRST) {
|
||||
config.strategy === ArangoTraverser.BREADTH_FIRST) {
|
||||
result = true;
|
||||
}
|
||||
else if (config.itemOrder === ArangoTraverser.FORWARD &&
|
||||
config.strategy === ArangoTraverser.DEPTH_FIRST) {
|
||||
config.strategy === ArangoTraverser.DEPTH_FIRST) {
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
@ -1201,7 +1201,7 @@ ArangoTraverser = function (config) {
|
|||
}
|
||||
if (typeof value === 'string') {
|
||||
value = value.toLowerCase().replace(/-/, "");
|
||||
if (map[value] !== null) {
|
||||
if (map[value] !== null && map[value] !== undefined) {
|
||||
return map[value];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3851,7 +3851,9 @@ function TRAVERSAL_FUNC (func,
|
|||
maxIterations: params.maxIterations,
|
||||
uniqueness: params.uniqueness,
|
||||
expander: direction,
|
||||
strategy: params.strategy
|
||||
strategy: params.strategy,
|
||||
order: params.order,
|
||||
itemOrder: params.itemOrder
|
||||
};
|
||||
|
||||
if (params.followEdges) {
|
||||
|
@ -3923,10 +3925,13 @@ function GRAPH_SHORTEST_PATH (vertexCollection,
|
|||
direction,
|
||||
params) {
|
||||
"use strict";
|
||||
|
||||
if (params === undefined) {
|
||||
params = { };
|
||||
}
|
||||
|
||||
params.strategy = "dijkstra";
|
||||
params.itemorder = "forward";
|
||||
params.order = "forward";
|
||||
params.visitor = TRAVERSAL_VISITOR;
|
||||
|
||||
if (typeof params.distance === "string") {
|
||||
|
@ -3959,6 +3964,10 @@ function GRAPH_TRAVERSAL (vertexCollection,
|
|||
direction,
|
||||
params) {
|
||||
"use strict";
|
||||
|
||||
if (params === undefined) {
|
||||
params = { };
|
||||
}
|
||||
|
||||
params.visitor = TRAVERSAL_VISITOR;
|
||||
|
||||
|
|
|
@ -182,7 +182,6 @@ extend(RequestContext.prototype, {
|
|||
pathParam: function (paramName, attributes) {
|
||||
'use strict';
|
||||
var url = this.route.url,
|
||||
docs = this.route.docs,
|
||||
constraint = url.constraint || {};
|
||||
|
||||
constraint[paramName] = this.typeToRegex[attributes.type];
|
||||
|
|
Loading…
Reference in New Issue