From f005d676cb7d742f71b1a97b0e8d2a70848dbc7f Mon Sep 17 00:00:00 2001 From: Thomas Schmidts Date: Wed, 25 Jun 2014 15:10:13 +0200 Subject: [PATCH] Some changes in the code documentation --- arangod/VocBase/transaction.cpp | 6 +- arangod/VocBase/voc-types.h | 4 +- build.h | 2 +- js/Makefile.files | 6 +- .../frontend/js/views/graphManagementView.js | 26 ++++---- js/apps/system/cerberus/cerberus.js | 10 ++-- js/apps/system/gharial/gharial.js | 60 +++++++++---------- js/client/tests/shell-changeMode.js | 2 +- .../modules/org/arangodb/general-graph.js | 14 ++++- js/server/tests/shell-readonly-noncluster.js | 4 +- 10 files changed, 75 insertions(+), 59 deletions(-) diff --git a/arangod/VocBase/transaction.cpp b/arangod/VocBase/transaction.cpp index 92f573aedc..d373ed75ea 100644 --- a/arangod/VocBase/transaction.cpp +++ b/arangod/VocBase/transaction.cpp @@ -426,9 +426,9 @@ static int UseCollections (TRI_transaction_t* trx, return TRI_errno(); } - if (trxCollection->_accessType == TRI_TRANSACTION_WRITE && - TRI_GetOperationModeServer() == TRI_VOCBASE_MODE_READONLY && - ! TRI_IsSystemNameCollection(trxCollection->_collection->_collection->_info._name)) { + if (trxCollection->_accessType == TRI_TRANSACTION_WRITE + && TRI_GetOperationModeServer() == TRI_VOCBASE_MODE_NO_CREATE + && ! TRI_IsSystemNameCollection(trxCollection->_collection->_collection->_info._name)) { return TRI_ERROR_ARANGO_READ_ONLY; } diff --git a/arangod/VocBase/voc-types.h b/arangod/VocBase/voc-types.h index fd66cb3cf8..7755906492 100644 --- a/arangod/VocBase/voc-types.h +++ b/arangod/VocBase/voc-types.h @@ -135,8 +135,8 @@ TRI_voc_document_operation_e; //////////////////////////////////////////////////////////////////////////////// typedef enum { - TRI_VOCBASE_MODE_NORMAL = 1, // CRUD is allowed - TRI_VOCBASE_MODE_READONLY = 2, // C & U not allowed RD allowed + TRI_VOCBASE_MODE_NORMAL = 1, // CRUD is allowed + TRI_VOCBASE_MODE_NO_CREATE = 2, // C & U not allowed RD allowed } TRI_vocbase_operationmode_e; diff --git a/build.h b/build.h index 226764df95..296acb248c 100644 --- a/build.h +++ b/build.h @@ -1 +1 @@ -#define TRI_VERSION "2.2.0" +#define TRI_VERSION "2.2.0-devel" diff --git a/js/Makefile.files b/js/Makefile.files index e904c89b82..f615dbf6f2 100644 --- a/js/Makefile.files +++ b/js/Makefile.files @@ -56,6 +56,10 @@ JAVASCRIPT_JSLINT = \ `find @srcdir@/js/common/modules/org -name "*.js"` \ `find @srcdir@/js/client/modules -name "*.js"` \ `find @srcdir@/js/server/modules -name "*.js"` \ + \ + `find @srcdir@/js/apps/system/cerberus -name "*.js"` \ + `find @srcdir@/js/apps/system/gharial -name "*.js"` \ + \ `find @srcdir@/js/apps/system/aardvark/frontend/js/models -name "*.js"` \ `find @srcdir@/js/apps/system/aardvark/frontend/js/views -name "*.js"` \ `find @srcdir@/js/apps/system/aardvark/frontend/js/collections -name "*.js"` \ @@ -67,7 +71,7 @@ JAVASCRIPT_JSLINT = \ @srcdir@/js/server/server.js \ @srcdir@/js/server/version-check.js \ \ - @srcdir@/js/apps/system/aardvark/frontend/js/shell/browser.js + @srcdir@/js/apps/system/aardvark/frontend/js/shell/browser.js ################################################################################ ### @brief executes jslint diff --git a/js/apps/system/aardvark/frontend/js/views/graphManagementView.js b/js/apps/system/aardvark/frontend/js/views/graphManagementView.js index c081bf1eb7..24861cdf5e 100644 --- a/js/apps/system/aardvark/frontend/js/views/graphManagementView.js +++ b/js/apps/system/aardvark/frontend/js/views/graphManagementView.js @@ -43,6 +43,7 @@ this.collection.fetch({ async: false }); +console.log(this.collection); $(this.el).html(this.template.render({ graphs: this.collection, searchString : '' @@ -158,24 +159,25 @@ vertexCollections = _.pluck($('#newVertexCollections').select2("data"), "text"), edgeDefinitions = [], self = this, - hasNext = false, - newEdgeDefinitions1, + hasNext = true, + collection, from, to; - newEdgeDefinitions1 = $("#newEdgeDefinitions1").val(); - if (newEdgeDefinitions1 !== "") { + collection = $('#newEdgeDefinitions1').val(); + if (collection !== "") { from = _.pluck($('#s2id_fromCollections1').select2("data"), "text"); to = _.pluck($('#s2id_toCollections1').select2("data"), "text"); + edgeDefinitions.push( + { + collection: collection, + from: from, + to: to + } + ); } -/* - console.log("newEdgeDefinitions1"); - console.log(newEdgeDefinitions1); - console.log("from"); - console.log(from); - console.log("to"); - console.log(to); -*/ + + if (!name) { arangoHelper.arangoNotification( "A name for the graph has to be provided." diff --git a/js/apps/system/cerberus/cerberus.js b/js/apps/system/cerberus/cerberus.js index 2f6cb83a59..57c2107ea3 100644 --- a/js/apps/system/cerberus/cerberus.js +++ b/js/apps/system/cerberus/cerberus.js @@ -1,4 +1,6 @@ -(function() { +/*jslint indent: 2, nomen: true, maxlen: 120, regexp: true, vars: true */ +/*global module, require, exports, applicationContext */ +(function () { "use strict"; var Foxx = require("org/arangodb/foxx"), @@ -6,7 +8,7 @@ controller = new Foxx.Controller(applicationContext), url = require("url"); - controller.get("/initpwd/:token", function(req, res) { + controller.get("/initpwd/:token", function (req, res) { var token = req.params("token"), username; @@ -26,14 +28,14 @@ }); - controller.post("/checkpwd", function(req, res) { + controller.post("/checkpwd", function (req, res) { var params = req.rawBody().split("&"); var password = params[0].split("=")[1]; var confirmPassword = params[1].split("=")[1]; var token = params[2].split("=")[1]; //check, if passwords are equal - if(password !== confirmPassword) { + if (password !== confirmPassword) { var path = url.parse(req.url).pathname.split("/"); path = path.slice(0, path.length - 2).join("/") + "/changePassword.html"; diff --git a/js/apps/system/gharial/gharial.js b/js/apps/system/gharial/gharial.js index b03e0ac76d..849c49a160 100644 --- a/js/apps/system/gharial/gharial.js +++ b/js/apps/system/gharial/gharial.js @@ -1,4 +1,4 @@ -/*jslint indent: 2, nomen: true, maxlen: 100, white: true, plusplus: true, unparam: true */ +/*jslint indent: 2, nomen: true, maxlen: 120, white: true, plusplus: true, unparam: true, regexp: true, vars: true */ /*global require, applicationContext*/ //////////////////////////////////////////////////////////////////////////////// @@ -76,7 +76,7 @@ /// examples.loadGraph("routeplanner"); /// var url = "/_api/gharial"; /// var response = logCurlRequest('GET', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -101,8 +101,8 @@ /// | graph._drop("myGraph", true); /// } /// var url = "/_api/gharial"; -/// body = { -/// name: "myGraph", +/// body = { +/// name: "myGraph", /// edgeDefinitions: [{ /// collection: "edges", /// from: [ "startVertices" ], @@ -111,13 +111,13 @@ /// }; /// /// var response = logCurlRequest('POST', url, body); -/// +/// /// assert(response.code === 201); /// /// logJsonResponse(response); /// /// graph._drop("myGraph", true); -/// +/// /// @END_EXAMPLE_ARANGOSH_RUN /// @endDocuBlock //////////////////////////////////////////////////////////////////////////////// @@ -150,7 +150,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -194,7 +194,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/vertex"; /// var response = logCurlRequest('GET', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -233,11 +233,11 @@ /// var examples = require("org/arangodb/graph-examples/example-graph.js"); /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/vertex"; -/// body = { +/// body = { /// collection: "otherVertices" /// }; /// var response = logCurlRequest('POST', url, body); -/// +/// /// assert(response.code === 201); /// /// logJsonResponse(response); @@ -285,7 +285,7 @@ /// g._addVertexCollection("otherVertices"); /// var url = "/_api/gharial/social/vertex/otherVertices"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -298,7 +298,7 @@ /// var g = examples.loadGraph("social"); /// var url = "/_api/gharial/social/vertex/male"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 400); /// /// logJsonResponse(response); @@ -310,7 +310,7 @@ /** Delete a vertex collection. * * Removes a vertex collection from this graph. - * If this collection is used in one or more edge definitions + * If this collection is used in one or more edge definitions */ controller.del("/:graph/vertex/:collection", function(req, res) { var name = req.params("graph"); @@ -339,7 +339,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge"; /// var response = logCurlRequest('GET', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -377,13 +377,13 @@ /// var examples = require("org/arangodb/graph-examples/example-graph.js"); /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge"; -/// body = { +/// body = { /// collection: "lives_in", /// from: ["female", "male"], /// to: ["city"] /// }; /// var response = logCurlRequest('POST', url, body); -/// +/// /// assert(response.code === 201); /// /// logJsonResponse(response); @@ -397,7 +397,7 @@ * Stores a new edge definition with the information contained * within the body. * This has to contain the edge-collection name, as well as set of from and to - * collections-names respectively. + * collections-names respectively. */ controller.post("/:graph/edge", function(req, res) { var name = req.params("graph"); @@ -428,13 +428,13 @@ /// var examples = require("org/arangodb/graph-examples/example-graph.js"); /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge/relation"; -/// body = { +/// body = { /// collection: "relation", /// from: ["female", "male", "animal"], /// to: ["female", "male", "animal"] /// }; /// var response = logCurlRequest('PUT', url, body); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -493,7 +493,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge/relation"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -543,7 +543,7 @@ /// name: "Francis" /// } /// var response = logCurlRequest('POST', url, body); -/// +/// /// assert(response.code === 201); /// /// logJsonResponse(response); @@ -580,7 +580,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/vertex/female/alice"; /// var response = logCurlRequest('GET', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -634,7 +634,7 @@ /// } /// var url = "/_api/gharial/social/vertex/female/alice"; /// var response = logCurlRequest('PUT', url, body); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -690,7 +690,7 @@ /// } /// var url = "/_api/gharial/social/vertex/female/alice"; /// var response = logCurlRequest('PATCH', url, body); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -743,7 +743,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/vertex/female/alice"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -801,7 +801,7 @@ /// _to: "female/diana" /// }; /// var response = logCurlRequest('POST', url, body); -/// +/// /// assert(response.code === 201); /// /// logJsonResponse(response); @@ -857,7 +857,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge/relation/aliceAndBob"; /// var response = logCurlRequest('GET', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -909,7 +909,7 @@ /// type: "divorced" /// } /// var response = logCurlRequest('PUT', url, body); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -964,7 +964,7 @@ /// since: "01.01.2001" /// } /// var response = logCurlRequest('PATCH', url, body); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); @@ -1018,7 +1018,7 @@ /// examples.loadGraph("social"); /// var url = "/_api/gharial/social/edge/relation/aliceAndBob"; /// var response = logCurlRequest('DELETE', url); -/// +/// /// assert(response.code === 200); /// /// logJsonResponse(response); diff --git a/js/client/tests/shell-changeMode.js b/js/client/tests/shell-changeMode.js index dca7b1d2f3..2fe9c8414b 100644 --- a/js/client/tests/shell-changeMode.js +++ b/js/client/tests/shell-changeMode.js @@ -76,7 +76,7 @@ function changeOperationModePositiveCaseTestSuite () { collections: { }, action: function () { var db = require('internal').db; - var result = db._changeMode('ReadOnly'); + var result = db._changeMode('NoCreate'); return result; } }); diff --git a/js/common/modules/org/arangodb/general-graph.js b/js/common/modules/org/arangodb/general-graph.js index ff4f4f5d7b..91cdbc4bb6 100644 --- a/js/common/modules/org/arangodb/general-graph.js +++ b/js/common/modules/org/arangodb/general-graph.js @@ -1619,7 +1619,7 @@ var _extendEdgeDefinitions = function (edgeDefinition) { var _create = function (graphName, edgeDefinitions, orphanCollections) { - if (!orphanCollections) { + if (! Array.isArray(orphanCollections) ) { orphanCollections = []; } var gdb = getGraphCollection(), @@ -1697,9 +1697,16 @@ var _create = function (graphName, edgeDefinitions, orphanCollections) { findOrCreateCollectionByName(oC, ArangoCollection.TYPE_DOCUMENT); } ); + edgeDefinitions.forEach( + function(eD, index) { + var tmp = sortEdgeDefinition(eD); + edgeDefinitions[index] = tmp; + } + ); + orphanCollections = orphanCollections.sort(); - gdb.save({ - 'orphanCollections' : orphanCollections.sort, + gdb.save({ + 'orphanCollections' : orphanCollections, 'edgeDefinitions' : edgeDefinitions, '_key' : graphName }); @@ -2246,6 +2253,7 @@ var checkIfMayBeDropped = function(colName, graphName, graphs) { } ); } + var orphanCollections = graph.orphanCollections; if (orphanCollections) { if (orphanCollections.indexOf(colName) !== -1) { diff --git a/js/server/tests/shell-readonly-noncluster.js b/js/server/tests/shell-readonly-noncluster.js index 0bfb54363c..fbf9b3b594 100644 --- a/js/server/tests/shell-readonly-noncluster.js +++ b/js/server/tests/shell-readonly-noncluster.js @@ -56,7 +56,7 @@ function databaseTestSuite () { } db._createDatabase("testDB"); - db._changeMode("ReadOnly"); + db._changeMode("NoCreate"); }, //////////////////////////////////////////////////////////////////////////////// @@ -121,7 +121,7 @@ function operationsTestSuite () { db._drop("testCol"); collection = db._create("testCol"); collection.save({_key: "testDocKey", a: 2 }); - db._changeMode("ReadOnly"); + db._changeMode("NoCreate"); }, ////////////////////////////////////////////////////////////////////////////////