mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
This commit is contained in:
commit
a8d9a14e7d
|
@ -132,6 +132,7 @@ WIKI = \
|
||||||
UserManualActions \
|
UserManualActions \
|
||||||
UserManualArangosh \
|
UserManualArangosh \
|
||||||
UserManualWebInterface \
|
UserManualWebInterface \
|
||||||
|
UserManualFoxx \
|
||||||
jsUnity
|
jsUnity
|
||||||
|
|
||||||
## -----------------------------------------------------------------------------
|
## -----------------------------------------------------------------------------
|
||||||
|
|
|
@ -65,6 +65,8 @@ This will require the file `wolf.js` in the libs folder you have defined and mak
|
||||||
|
|
||||||
### Handling Requests
|
### Handling Requests
|
||||||
|
|
||||||
|
If you do not redefine it, all requests that go to the root of your application will be redirected to `index.html`.
|
||||||
|
|
||||||
#### FoxxApplication#head
|
#### FoxxApplication#head
|
||||||
@copydetails JSF_foxx_application_head
|
@copydetails JSF_foxx_application_head
|
||||||
|
|
||||||
|
|
|
@ -221,7 +221,11 @@ ALIASES += \
|
||||||
"RESTQUERYPARAM{3}=@htmlonly<div class=\"restqueryparam\">@endhtmlonly\1 (\2,\3)@htmlonly</div>@endhtmlonly" \
|
"RESTQUERYPARAM{3}=@htmlonly<div class=\"restqueryparam\">@endhtmlonly\1 (\2,\3)@htmlonly</div>@endhtmlonly" \
|
||||||
"RESTRETURNCODES=@htmlonly<div class=\"restreturncodes\">Return Codes</div>@endhtmlonly" \
|
"RESTRETURNCODES=@htmlonly<div class=\"restreturncodes\">Return Codes</div>@endhtmlonly" \
|
||||||
"RESTRETURNCODE{1}=@htmlonly<div class=\"restreturncode\">HTTP \1</div>@endhtmlonly" \
|
"RESTRETURNCODE{1}=@htmlonly<div class=\"restreturncode\">HTTP \1</div>@endhtmlonly" \
|
||||||
"RESTDESCRIPTION=@htmlonly<div class=\"restdescription\">Description</div>@endhtmlonly"
|
"RESTDESCRIPTION=@htmlonly<div class=\"restdescription\">Description</div>@endhtmlonly" \
|
||||||
|
"RESTURLPARAMETERS=@htmlonly<div class=\"resturlparameters\">URL parameters</div>@endhtmlonly" \
|
||||||
|
"RESTURLPARAM{3}=@htmlonly<div class=\"resturlparam\">URL parameter</div>@endhtmlonly" \
|
||||||
|
"RESTHEADERPARAMETERS=@htmlonly<div class=\"restheaderparameters\">HTTP header parameters</div>@endhtmlonly" \
|
||||||
|
"RESTHEADERPARAM{2}=@htmlonly<div class=\"restheaderparam\">HTTP header</div>@endhtmlonly"
|
||||||
|
|
||||||
# navigation
|
# navigation
|
||||||
ALIASES += \
|
ALIASES += \
|
||||||
|
|
|
@ -540,7 +540,7 @@ bool RestDocumentHandler::readDocument () {
|
||||||
/// assert(response.code === 304);
|
/// assert(response.code === 304);
|
||||||
///
|
///
|
||||||
/// logJsonResponse(response);
|
/// logJsonResponse(response);
|
||||||
// db._drop(cn);
|
/// db._drop(cn);
|
||||||
/// @END_EXAMPLE_ARANGOSH_RUN
|
/// @END_EXAMPLE_ARANGOSH_RUN
|
||||||
///
|
///
|
||||||
/// Unknown document handle:
|
/// Unknown document handle:
|
||||||
|
|
|
@ -45,3 +45,7 @@ body, input, textarea, .page-title span, .pingback a.url {
|
||||||
height: 34px;
|
height: 34px;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.applications-menu {
|
||||||
|
display: none;
|
||||||
|
}
|
|
@ -138,12 +138,6 @@ div.heading_with_menu ul {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
|
||||||
line-height: 1.4em;
|
|
||||||
padding: 0 0 10px 0;
|
|
||||||
color: #333333;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol {
|
ol {
|
||||||
margin: 0px 0 10px 0;
|
margin: 0px 0 10px 0;
|
||||||
padding: 0 0 0 18px;
|
padding: 0 0 0 18px;
|
||||||
|
@ -228,7 +222,6 @@ a.hider {
|
||||||
strong {
|
strong {
|
||||||
font-family: "Droid Sans", sans-serif;
|
font-family: "Droid Sans", sans-serif;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-weight: bold;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.code {
|
.code {
|
||||||
|
@ -397,7 +390,7 @@ form.fullwidth ol li.string input, form.fullwidth ol li.url input, form.fullwidt
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: "Droid Sans", sans-serif;
|
/* font-family: "Droid Sans", sans-serif; */
|
||||||
}
|
}
|
||||||
|
|
||||||
body #content_message {
|
body #content_message {
|
||||||
|
@ -415,7 +408,7 @@ body #header a#logo {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background: transparent url(../images/logo_small.png) no-repeat left center;
|
background: transparent url(../../img/swagger/logo_small.png) no-repeat left center;
|
||||||
padding: 20px 0 20px 40px;
|
padding: 20px 0 20px 40px;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 770 B |
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
|
@ -7,6 +7,11 @@
|
||||||
<title>ArangoDB Web Interface</title>
|
<title>ArangoDB Web Interface</title>
|
||||||
<meta name="description" content="ArangoDB Admin Web Interface">
|
<meta name="description" content="ArangoDB Admin Web Interface">
|
||||||
<meta name="author" content="Heiko Kernbach">
|
<meta name="author" content="Heiko Kernbach">
|
||||||
|
|
||||||
|
<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
|
||||||
|
<link href='css/swagger/hightlight.default.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||||
|
<link href='css/swagger/screen.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||||
|
|
||||||
<link href="css/bootstrap.css" rel="stylesheet">
|
<link href="css/bootstrap.css" rel="stylesheet">
|
||||||
<link href="css/jquery-ui-1.9.2.custom.css" rel="stylesheet">
|
<link href="css/jquery-ui-1.9.2.custom.css" rel="stylesheet">
|
||||||
<link href="css/layout.css" rel="stylesheet">
|
<link href="css/layout.css" rel="stylesheet">
|
||||||
|
@ -28,6 +33,9 @@
|
||||||
<link href="css/jquery.gritter.css" rel="stylesheet">
|
<link href="css/jquery.gritter.css" rel="stylesheet">
|
||||||
<link href="css/modal.css" rel="stylesheet">
|
<link href="css/modal.css" rel="stylesheet">
|
||||||
<link href="css/ansi.css" rel="stylesheet">
|
<link href="css/ansi.css" rel="stylesheet">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -52,24 +60,39 @@
|
||||||
<!-- libs -->
|
<!-- libs -->
|
||||||
<script src="js/lib/jquery-1.8.3.js"></script>
|
<script src="js/lib/jquery-1.8.3.js"></script>
|
||||||
<script src="js/lib/jquery-ui-1.9.2.custom.js"></script>
|
<script src="js/lib/jquery-ui-1.9.2.custom.js"></script>
|
||||||
<script src="js/lib/underscore.js"></script>
|
|
||||||
<script src="js/lib/backbone.js"></script>
|
|
||||||
<script src="js/lib/d3.v3.js"></script>
|
|
||||||
<script src="js/lib/nv.d3.js"></script>
|
|
||||||
<script src="js/lib/jquery.dataTables.js"></script>
|
<script src="js/lib/jquery.dataTables.js"></script>
|
||||||
<script src="js/lib/ColVis.js"></script>
|
|
||||||
<script src="js/lib/jquery.autogrow.js"></script>
|
<script src="js/lib/jquery.autogrow.js"></script>
|
||||||
<script src="js/lib/jquery.jeditable.js"></script>
|
<script src="js/lib/jquery.jeditable.js"></script>
|
||||||
<script src="js/lib/jquery.jeditable.autogrow.js"></script>
|
<script src="js/lib/jquery.jeditable.autogrow.js"></script>
|
||||||
|
<script src="js/lib/jquery.snippet.js"></script>
|
||||||
|
<script src="js/lib/jquery.gritter.js"></script>
|
||||||
|
<script src='js/lib/jquery.slideto.min.js' type='text/javascript'></script>
|
||||||
|
<script src='js/lib/jquery.wiggle.min.js' type='text/javascript'></script>
|
||||||
|
<script src='js/lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
<script src='js/lib/handlebars-1.0.rc.1.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
<script src="js/lib/underscore.js"></script>
|
||||||
|
|
||||||
|
<script src="js/lib/backbone.js"></script>
|
||||||
|
|
||||||
|
<script src="js/lib/d3.v3.js"></script>
|
||||||
|
<script src="js/lib/nv.d3.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="js/lib/ColVis.js"></script>
|
||||||
<script src="js/lib/ejs_fulljslint.js"></script>
|
<script src="js/lib/ejs_fulljslint.js"></script>
|
||||||
<script src="js/lib/ejs_0.9_alpha_1_production.js"></script>
|
<script src="js/lib/ejs_0.9_alpha_1_production.js"></script>
|
||||||
<script src="js/lib/jquery.snippet.js"></script>
|
|
||||||
<script src="js/lib/bootstrap.js"></script>
|
<script src="js/lib/bootstrap.js"></script>
|
||||||
<script src="js/lib/bootstrap-pagination.js"></script>
|
<script src="js/lib/bootstrap-pagination.js"></script>
|
||||||
<script src="src/ace.js"></script>
|
<script src="src/ace.js"></script>
|
||||||
<script src="js/lib/jqconsole.min.js"></script>
|
<script src="js/lib/jqconsole.min.js"></script>
|
||||||
<script src="js/lib/jquery.gritter.js"></script>
|
|
||||||
<script src="js/lib/splitter.js"></script>
|
<script src="js/lib/splitter.js"></script>
|
||||||
|
|
||||||
|
<script src='js/lib/swagger.js' type='text/javascript'></script>
|
||||||
|
<script src='js/lib/swagger-ui.js' type='text/javascript'></script>
|
||||||
|
<script src='js/lib/highlight.7.3.pack.js' type='text/javascript'></script>
|
||||||
|
|
||||||
|
|
||||||
<!-- arango -->
|
<!-- arango -->
|
||||||
<script src="js/arango/arango.js"></script>
|
<script src="js/arango/arango.js"></script>
|
||||||
|
@ -132,6 +155,7 @@
|
||||||
<script src="js/views/logsView.js"></script>
|
<script src="js/views/logsView.js"></script>
|
||||||
<script src="js/views/foxxView.js"></script>
|
<script src="js/views/foxxView.js"></script>
|
||||||
<script src="js/views/foxxListView.js"></script>
|
<script src="js/views/foxxListView.js"></script>
|
||||||
|
<script src="js/views/swaggerView.js"></script>
|
||||||
|
|
||||||
<!-- router -->
|
<!-- router -->
|
||||||
<script src="js/routers/router.js"></script>
|
<script src="js/routers/router.js"></script>
|
||||||
|
|
|
@ -637,7 +637,7 @@ function program11(depth0,data) {
|
||||||
function program13(depth0,data) {
|
function program13(depth0,data) {
|
||||||
|
|
||||||
|
|
||||||
return "\n <div class='sandbox_header'>\n <input class='submit' name='commit' type='button' value='Try it out!' />\n <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n <img alt='Throbber' class='response_throbber' src='images/throbber.gif' style='display:none' />\n </div>\n ";
|
return "\n <div class='sandbox_header'>\n <input class='submit' name='commit' type='button' value='Try it out!' />\n <a href='#' class='response_hider' style='display:none'>Hide Response</a>\n <img alt='Throbber' class='response_throbber' src='img/swagger/throbber.gif' style='display:none' />\n </div>\n ";
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer += "\n <ul class='operations' >\n <li class='";
|
buffer += "\n <ul class='operations' >\n <li class='";
|
||||||
|
|
|
@ -166,7 +166,11 @@ $(document).ready(function() {
|
||||||
},
|
},
|
||||||
|
|
||||||
swagger: function() {
|
swagger: function() {
|
||||||
alert("Sorry not yet linked");
|
if (this.swaggerView === undefined) {
|
||||||
|
this.swaggerView = new window.SwaggerView();
|
||||||
|
}
|
||||||
|
this.swaggerView.render();
|
||||||
|
this.naviView.selectMenuItem('applications-menu');
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<ul class="arango-nav nav pull-right">
|
<ul class="arango-nav nav pull-right">
|
||||||
<li class="dashboard-menu" style="visibility:hidden"><a href="#dashboard">Dashboard</a></li>
|
<li class="dashboard-menu" style="visibility:hidden"><a href="#dashboard">Dashboard</a></li>
|
||||||
<li class="dropdown applications-menu" style="visibility:hidden"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Applications<b class="caret"></b></a>
|
<li class="dropdown applications-menu"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Applications<b class="caret"></b></a>
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="#applications">Overview</a></li>
|
<li><a href="#applications">Overview</a></li>
|
||||||
<li><a href="#applications/swagger">Swagger</a></li>
|
<li><a href="#applications/swagger">Swagger</a></li>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<div id='header'>
|
||||||
|
<div class="swagger-ui-wrap">
|
||||||
|
<a id="logo" href="http://www.arangodb.org">REST-API</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="message-bar" class="swagger-ui-wrap">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="swagger-ui-container" class="swagger-ui-wrap">
|
||||||
|
|
||||||
|
</div>
|
|
@ -0,0 +1,36 @@
|
||||||
|
window.SwaggerView = Backbone.View.extend({
|
||||||
|
|
||||||
|
el: '#content',
|
||||||
|
template: new EJS({url: '/_admin/html/js/templates/swaggerView.ejs'}),
|
||||||
|
|
||||||
|
initialize: function() {
|
||||||
|
window.swaggerUi = new SwaggerUi({
|
||||||
|
discoveryUrl:"api-docs.json",
|
||||||
|
apiKey: false,
|
||||||
|
dom_id:"swagger-ui-container",
|
||||||
|
supportHeaderParams: true,
|
||||||
|
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch', 'head'],
|
||||||
|
onComplete: function(swaggerApi, swaggerUi){
|
||||||
|
if(console) {
|
||||||
|
console.log("Loaded SwaggerUI")
|
||||||
|
console.log(swaggerApi);
|
||||||
|
console.log(swaggerUi);
|
||||||
|
}
|
||||||
|
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
|
||||||
|
},
|
||||||
|
onFailure: function(data) {
|
||||||
|
if(console) {
|
||||||
|
console.log("Unable to Load SwaggerUI");
|
||||||
|
console.log(data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
docExpansion: "none"
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
render: function(){
|
||||||
|
$(this.el).html(this.template.render({}));
|
||||||
|
window.swaggerUi.load();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
|
@ -134,7 +134,15 @@ function SetRoutesFoxxApplicationSpec () {
|
||||||
var myFunc = function () {},
|
var myFunc = function () {},
|
||||||
routes = app.routingInfo.routes;
|
routes = app.routingInfo.routes;
|
||||||
|
|
||||||
app.delete('/simple/route', myFunc);
|
app['delete']('/simple/route', myFunc);
|
||||||
|
assertEqual(routes[0].url.methods, ["delete"]);
|
||||||
|
},
|
||||||
|
|
||||||
|
testSetMethodToDeleteViaAlias: function () {
|
||||||
|
var myFunc = function () {},
|
||||||
|
routes = app.routingInfo.routes;
|
||||||
|
|
||||||
|
app.del('/simple/route', myFunc);
|
||||||
assertEqual(routes[0].url.methods, ["delete"]);
|
assertEqual(routes[0].url.methods, ["delete"]);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -193,7 +201,7 @@ function SetRoutesFoxxApplicationSpec () {
|
||||||
assertEqual(action.callback, myFuncString);
|
assertEqual(action.callback, myFuncString);
|
||||||
},
|
},
|
||||||
|
|
||||||
testStart: function () {
|
testStartAddsRequiresAndContext: function () {
|
||||||
var myFunc = function () {},
|
var myFunc = function () {},
|
||||||
routes = app.routingInfo.routes;
|
routes = app.routingInfo.routes;
|
||||||
|
|
||||||
|
@ -209,6 +217,16 @@ function SetRoutesFoxxApplicationSpec () {
|
||||||
assertEqual(app.routingInfo.routes[0].action.context, "myContext");
|
assertEqual(app.routingInfo.routes[0].action.context, "myContext");
|
||||||
assertEqual(app.routingInfo.routes[0].action.requiresLibs.a, 1);
|
assertEqual(app.routingInfo.routes[0].action.requiresLibs.a, 1);
|
||||||
assertEqual(app.routingInfo.routes[0].action.requiresModels.b, 2);
|
assertEqual(app.routingInfo.routes[0].action.requiresModels.b, 2);
|
||||||
|
},
|
||||||
|
|
||||||
|
testStartAddsRequiresAndContext: function () {
|
||||||
|
app.get('/simple/route', function() {});
|
||||||
|
app.start("myContext");
|
||||||
|
|
||||||
|
assertEqual(app.routingInfo.routes[1].url, "/");
|
||||||
|
assertEqual(app.routingInfo.routes[1].action['do'], "org/arangodb/actions/redirectRequest");
|
||||||
|
assertEqual(app.routingInfo.routes[1].action.options.permanently, true);
|
||||||
|
assertEqual(app.routingInfo.routes[1].action.options.destination, "index.html");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,6 +145,17 @@ _.extend(FoxxApplication.prototype, {
|
||||||
route.action.requiresModels = models;
|
route.action.requiresModels = models;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.routingInfo.routes.push({
|
||||||
|
"url" : "/",
|
||||||
|
"action" : {
|
||||||
|
"do" : "org/arangodb/actions/redirectRequest",
|
||||||
|
"options" : {
|
||||||
|
"permanently" : true,
|
||||||
|
"destination" : "index.html"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
db._collection("_routing").save(this.routingInfo);
|
db._collection("_routing").save(this.routingInfo);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -276,18 +287,29 @@ _.extend(FoxxApplication.prototype, {
|
||||||
/// This handles requests from the HTTP verb `delete`.
|
/// This handles requests from the HTTP verb `delete`.
|
||||||
/// See above for the arguments you can give.
|
/// See above for the arguments you can give.
|
||||||
/// **A word of warning:** Do not forget that `delete` is
|
/// **A word of warning:** Do not forget that `delete` is
|
||||||
/// a reserved word in JavaScript so call it as follows:
|
/// a reserved word in JavaScript and therefore needs to be
|
||||||
|
/// called as `app['delete']`. There is also an alias `del`
|
||||||
|
/// for this very reason.
|
||||||
///
|
///
|
||||||
/// @EXAMPLES
|
/// @EXAMPLES
|
||||||
/// app['delete']('/gaense/stall', function (req, res) {
|
/// app['delete']('/gaense/stall', function (req, res) {
|
||||||
/// // Take this request and deal with it!
|
/// // Take this request and deal with it!
|
||||||
/// });
|
/// });
|
||||||
|
///
|
||||||
|
/// app.del('/gaense/stall', function (req, res) {
|
||||||
|
/// // Take this request and deal with it!
|
||||||
|
/// });
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
'delete': function (route, argument1, argument2) {
|
'delete': function (route, argument1, argument2) {
|
||||||
'use strict';
|
'use strict';
|
||||||
this.handleRequest("delete", route, argument1, argument2);
|
this.handleRequest("delete", route, argument1, argument2);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
del: function (route, argument1, argument2) {
|
||||||
|
'use strict';
|
||||||
|
this['delete'](route, argument1, argument2);
|
||||||
|
},
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @fn JSF_foxx_application_before
|
/// @fn JSF_foxx_application_before
|
||||||
/// @brief Before
|
/// @brief Before
|
||||||
|
|
Loading…
Reference in New Issue