diff --git a/3rdParty/Makefile.all-in-one-v8 b/3rdParty/Makefile.all-in-one-v8
index d858d4ea86..b08dee6108 100644
--- a/3rdParty/Makefile.all-in-one-v8
+++ b/3rdParty/Makefile.all-in-one-v8
@@ -19,7 +19,7 @@ BUILT_SOURCES += @V8_LIBS@
@echo "--------------------------------------------------------------------------------"
@echo
- cd @top_srcdir@/3rdParty/V8 && $(MAKE) library=static strictaliasing=off snapshot=off werror=no @V8_TARGET@
+ cd @top_srcdir@/3rdParty/V8 && CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" $(MAKE) library=static strictaliasing=off snapshot=off werror=no @V8_TARGET@
touch @srcdir@/.v8-build-@TRI_BITS@
diff --git a/CHANGELOG b/CHANGELOG
index a505dc46ad..b15d42c290 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
v1.3 (XXXX-XX-XX)
-----------------
+* make AQL REVERSE() function work on strings, too
+
* disabled DOT generation in `make doxygen`. this speeds up docs generation
* renamed startup option `--dispatcher.report-intervall` to `--dispatcher.report-interval`
diff --git a/Documentation/UserManual/Aql.md b/Documentation/UserManual/Aql.md
index 0485195b42..ac9faf8a7e 100644
--- a/Documentation/UserManual/Aql.md
+++ b/Documentation/UserManual/Aql.md
@@ -881,6 +881,8 @@ For string processing, AQL offers the following functions:
starting at @FA{offset} and with a maximum length of @FA{length} characters. Offsets
start at position 0.
+- @FN{REVERSE(@FA{value})}: returns the reverse of the string @FA{value}.
+
- @FN{CONTAINS(@FA{text}, @FA{search}, @FA{return-index})}: checks whether the string
@FA{search} is contained in the string @FA{text}. By default, this function returns
`true` if @FA{search} is contained in @FA{text}, and `false` otherwise. By
diff --git a/arangod/Ahuacatl/ahuacatl-functions.c b/arangod/Ahuacatl/ahuacatl-functions.c
index 2885f69408..f0cc66595f 100644
--- a/arangod/Ahuacatl/ahuacatl-functions.c
+++ b/arangod/Ahuacatl/ahuacatl-functions.c
@@ -614,7 +614,8 @@ TRI_associative_pointer_t* TRI_InitialiseFunctionsAql (void) {
REGISTER_FUNCTION("MAX", "MAX", true, true, "l", NULL);
REGISTER_FUNCTION("SUM", "SUM", true, true, "l", NULL);
REGISTER_FUNCTION("UNIQUE", "UNIQUE", true, false, "l", NULL);
- REGISTER_FUNCTION("REVERSE", "REVERSE", true, false, "l", NULL);
+ // note: REVERSE() can be applied on strings, too
+ REGISTER_FUNCTION("REVERSE", "REVERSE", true, false, "ls", NULL);
REGISTER_FUNCTION("FIRST", "FIRST", true, false, "l", NULL);
REGISTER_FUNCTION("LAST", "LAST", true, false, "l", NULL);
diff --git a/frontend/css/collectionsItemView.css b/frontend/css/collectionsItemView.css
index 75f8d82b6a..b7764ff49f 100644
--- a/frontend/css/collectionsItemView.css
+++ b/frontend/css/collectionsItemView.css
@@ -44,7 +44,7 @@
box-shadow: 0 0 0 !important;
}
-.icon-info-sign {
- margin-top: 0px;
+.icon-edit {
+ margin-top: 5px;
margin-right: 5px;
}
diff --git a/frontend/css/collectionsView.css b/frontend/css/collectionsView.css
index 39f2d4896f..f38b9187da 100644
--- a/frontend/css/collectionsView.css
+++ b/frontend/css/collectionsView.css
@@ -1,3 +1,5 @@
+
+
#newCollection {
margin-left: 22px;
margin-top: 2px;
@@ -47,6 +49,10 @@
padding-top: 5px;
}
+.btn-group {
+ border-radius: 2px 2px 2px 2px !important;
+}
+
.searchInput {
background-color: #FFFFFF;
border: 1px solid #c0c0c0;
@@ -60,6 +66,7 @@
padding: 2px;
vertical-align: middle;
width:280px;
+ border-radius: 2px 2px 2px 2px !important;
}
#searchSubmit {
diff --git a/frontend/css/dashboardView.css b/frontend/css/dashboardView.css
index 43cbccac28..c6bd5990f5 100644
--- a/frontend/css/dashboardView.css
+++ b/frontend/css/dashboardView.css
@@ -7,9 +7,8 @@
}
.dashboardBox {
- min-height: 200px;
+ min-height: 230px;
width: 940px;
- border: 1px solid black;
padding-top: 10px;
margin-bottom: 20px;
background-color: rgba(0, 0, 0, 0.05);
@@ -21,11 +20,56 @@
}
.leftBox {
- width: 30%;
+ width: 300px;
float: left;
+ padding-left: 20px;
+ padding-top: 15px;
+}
+
+.leftBox th {
+ padding-left: 5px;
+ float:left;
+ width: 100px;
+ text-align: left;
+ font-weight: normal !important;
+}
+
+.leftBox table {
+ border-collapse:separate;
+ border-spacing:0 5px;
+}
+
+.leftBox table tr {
+ background-image: -moz-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -ms-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3efec), to(#ebe7e3));
+ background-image: -webkit-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -o-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: linear-gradient(top, #f3efec, #ebe7e3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3efec', endColorstr='#ebe7e3', GradientType=0);
+ border:1px solid #c1bdba;
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.rightBox {
- width: 70%;
- float: left;
+ padding-bottom: 0;
+ float: right;
+ height: 160px !important;
+ max-height: 220px !important;
+ width: 598px;
+ border:1px solid #c1bdba;
+ background-color: red;
+ margin-top: 20px;
+ margin-right: 20px;
+ background-image: -moz-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -ms-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3efec), to(#ebe7e3));
+ background-image: -webkit-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: -o-linear-gradient(top, #f3efec, #ebe7e3);
+ background-image: linear-gradient(top, #f3efec, #ebe7e3);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3efec', endColorstr='#ebe7e3', GradientType=0);
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
diff --git a/frontend/css/documentSourceView.css b/frontend/css/documentSourceView.css
index 1b22f24729..3fe3765d04 100644
--- a/frontend/css/documentSourceView.css
+++ b/frontend/css/documentSourceView.css
@@ -1,3 +1,11 @@
+#sourceFooter {
+ margin-top: 0;
+ background: none;
+ margin-bottom: 0;
+ padding-right: 0;
+ padding-bottom: 0;
+}
+
#sourceEditor {
height: 400px;
width: 900px;
@@ -26,5 +34,4 @@
}
.sourceBox {
- padding-bottom:20px;
}
diff --git a/frontend/css/documentView.css b/frontend/css/documentView.css
index f24e2cabcf..316cbcb05b 100644
--- a/frontend/css/documentView.css
+++ b/frontend/css/documentView.css
@@ -24,6 +24,7 @@
#deleteRow {
border: medium none;
+ margin-top: -4px;
padding-left: 10px;
background-color: transparent;
}
@@ -46,6 +47,18 @@
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
+#documentTableID thead {
+ text-align: left;
+}
+
+#documentTableID .icon-edit {
+ margin-top: 0;
+}
+
+#documentTableID .icon-edit:hover {
+ cursor: pointer;
+}
+
#documentTableID.dataTable thead tr {
background-image: -moz-linear-gradient(top, #f3efec, #ebe7e3);
background-image: -ms-linear-gradient(top, #f3efec, #ebe7e3);
diff --git a/frontend/css/documentsView.css b/frontend/css/documentsView.css
index 6a1d833b92..c3bf266d63 100644
--- a/frontend/css/documentsView.css
+++ b/frontend/css/documentsView.css
@@ -52,8 +52,8 @@ table.dataTable td {
margin-left: 20px !important;
width: 900px; !important;
table-layout:fixed !important;
- border-collapse:separate;
- border-spacing:0 5px;
+ border-collapse:separate;
+ border-spacing:0 5px;
}
table.dataTable thead th {
diff --git a/frontend/css/layout.css b/frontend/css/layout.css
index dba829bb34..725ccaea9d 100644
--- a/frontend/css/layout.css
+++ b/frontend/css/layout.css
@@ -1,3 +1,11 @@
+select {
+ border-radius: 2px 2px 2px 2px !important;
+}
+
+input {
+ border-radius: 2px 2px 2px 2px !important;
+}
+
.arangoBtn {
background: none repeat scroll 0 0 #FFFFFF;
color: #333232;
diff --git a/frontend/css/logsView.css b/frontend/css/logsView.css
index 1c2cf18125..da18451e40 100644
--- a/frontend/css/logsView.css
+++ b/frontend/css/logsView.css
@@ -1,7 +1,5 @@
#logContent {
- margin-left: 20px;
margin-top: 0;
- margin-right: 20px;
border: 20px solid rgba(0, 0, 0, 0.00);
background-color: rgba(0, 0, 0, 0.05);
min-height: 330px !important;
@@ -35,12 +33,8 @@
-.odd {
- background-color: /*#D3DDB8 !important*/;
-}
-
-.even {
- background-color: /*rgba(255, 255, 255, 0.8) !important*/;
+#logContent .sorting_1 {
+ background-color: #FBFBFB !important;
}
/*.odd .sorting_1 {
@@ -123,7 +117,7 @@ background-color: none !important;
#logNav {
padding-left: 20px;
margin-left: -20px;
- width: 880px;
+ width: 920px;
padding-bottom: -10px;
margin-bottom: 0;
background-color: #686766;
@@ -135,6 +129,7 @@ background-color: none !important;
}
#logTableID .firstcol, #infoTableID .firstcol, #debugTableID .firstcol, #critTableID .firstcol, #warnTableID .firstcol {
+ background-color: #F4F4F4 !important;
background-image: -moz-linear-gradient(center top , #F4F4F4, #E4E4E4);
border-top:1px solid #c1bdba;
border-bottom:1px solid #c1bdba;
diff --git a/frontend/css/modal.css b/frontend/css/modal.css
index d5cc647a1b..d87c430ca8 100644
--- a/frontend/css/modal.css
+++ b/frontend/css/modal.css
@@ -31,3 +31,9 @@
.modal-body select {
width: 314px;
}
+
+.modal-text {
+ font-weight: normal;
+ padding-top: 3px;
+ padding-bottom: 3px;
+}
diff --git a/frontend/css/navigationView.css b/frontend/css/navigationView.css
index f9db259624..9639440a5c 100644
--- a/frontend/css/navigationView.css
+++ b/frontend/css/navigationView.css
@@ -13,12 +13,21 @@
color: white !important;
box-shadow: 0 0px 0px rgba(0, 0, 0, 0.0) inset !important;
}
+.navbar .nav > li > a:focus {
+ background-color: #333232 !important;
+}
-.navbar .nav > li > a:focus, .navbar .nav > li > a:hover {
- background-color: #8AA051;
+.navbar .nav > li > a:hover {
+ background-color: #8AA051 !important;
color: white !important
}
+.arango-nav .dropdown-toggle, .arango-nav .dropdown-toggle:hover, .arango-nav .dropdown:hover, .arango-nav .dropdown:active {
+ background-color: rgba(0, 0, 0, 0) !important;
+ color: white !important;
+ margin-bottom: -8px !important;
+}
+
body, input, textarea, .page-title span, .pingback a.url {
font-family: "Helvetica",sans-serif;
font-weight: 300;
@@ -38,11 +47,3 @@ body, input, textarea, .page-title span, .pingback a.url {
height: 34px;
padding: 0 !important;
}
-
-/*.dropdown-toggle:hover, .dropdown-toggle:focus {
- color: white !important;
- height:16px !important;
- border: 0;
- background-color: #333232 !important;
-}
-*/
\ No newline at end of file
diff --git a/frontend/js/templates/collectionView.ejs b/frontend/js/templates/collectionView.ejs
index 3bb54ba8d5..56aaaea82a 100644
--- a/frontend/js/templates/collectionView.ejs
+++ b/frontend/js/templates/collectionView.ejs
@@ -8,10 +8,12 @@
Name: |
|
+ |
Size (MB): |
|
+ |
Sync: |
@@ -21,33 +23,34 @@
+ |
ID: |
-
+
|
|
Type: |
-
+
|
Status: |
-
+
|
diff --git a/frontend/js/templates/collectionsItemView.ejs b/frontend/js/templates/collectionsItemView.ejs
index a30195f177..eb23c4ae60 100644
--- a/frontend/js/templates/collectionsItemView.ejs
+++ b/frontend/js/templates/collectionsItemView.ejs
@@ -1,13 +1,13 @@
-
+
- <%= attributes.status %>
+ <%= attributes.status %>
<%= attributes.name %>
diff --git a/frontend/js/templates/dashboardView.ejs b/frontend/js/templates/dashboardView.ejs
index 5d1802477b..232a90d215 100644
--- a/frontend/js/templates/dashboardView.ejs
+++ b/frontend/js/templates/dashboardView.ejs
@@ -2,7 +2,9 @@
diff --git a/frontend/js/templates/documentSourceView.ejs b/frontend/js/templates/documentSourceView.ejs
index 5c1a91f6e4..7379b8de43 100644
--- a/frontend/js/templates/documentSourceView.ejs
+++ b/frontend/js/templates/documentSourceView.ejs
@@ -14,9 +14,9 @@
-
+
diff --git a/frontend/js/templates/documentView.ejs b/frontend/js/templates/documentView.ejs
index 05d49c7864..d690258097 100644
--- a/frontend/js/templates/documentView.ejs
+++ b/frontend/js/templates/documentView.ejs
@@ -18,10 +18,11 @@
Key |
+ |
Value |
type |
- |
- |
+ |
+ |
diff --git a/frontend/js/templates/documentsView.ejs b/frontend/js/templates/documentsView.ejs
index 3ac33a9008..8b48e70601 100644
--- a/frontend/js/templates/documentsView.ejs
+++ b/frontend/js/templates/documentsView.ejs
@@ -43,7 +43,7 @@
Theres no way backā¦
diff --git a/frontend/js/templates/newCollectionView.ejs b/frontend/js/templates/newCollectionView.ejs
index 83e916dcfb..204fe1d293 100644
--- a/frontend/js/templates/newCollectionView.ejs
+++ b/frontend/js/templates/newCollectionView.ejs
@@ -49,7 +49,7 @@
- |
+ |
@@ -61,7 +61,6 @@
diff --git a/frontend/js/views/collectionView.js b/frontend/js/views/collectionView.js
index 402a71124b..5df594e733 100644
--- a/frontend/js/views/collectionView.js
+++ b/frontend/js/views/collectionView.js
@@ -11,6 +11,9 @@ var collectionView = Backbone.View.extend({
$('#change-collection').on('hidden', function () {
});
this.fillModal();
+ $('.modalTooltips').tooltip({
+ placement: "left"
+ });
return this;
},
@@ -22,7 +25,7 @@ var collectionView = Backbone.View.extend({
"click #unload-modified-collection" : "unloadCollection"
},
hidden: function () {
- window.location.hash = "#";
+ window.location.hash = "#collection/";
},
fillModal: function() {
this.myCollection = window.arangoCollectionsStore.get(this.options.colId).attributes;
@@ -32,12 +35,12 @@ var collectionView = Backbone.View.extend({
$('#change-collection-status').text(this.myCollection.status);
if (this.myCollection.status == 'unloaded') {
- $('#colFooter').append('');
+ $('#colFooter').append('');
$('#collectionSizeBox').hide();
$('#collectionSyncBox').hide();
}
else if (this.myCollection.status == 'loaded') {
- $('#colFooter').append('');
+ $('#colFooter').append('');
var data = window.arangoCollectionsStore.getProperties(this.options.colId, true);
this.fillLoadedModal(data);
}
@@ -102,6 +105,7 @@ var collectionView = Backbone.View.extend({
var returnval = window.arangoCollectionsStore.deleteCollection(collName);
if (returnval === true) {
self.hideModal();
+ window.location.hash="#";
}
else {
self.hideModal();
diff --git a/frontend/js/views/collectionsView.js b/frontend/js/views/collectionsView.js
index 074e7801a6..f4ec598a97 100644
--- a/frontend/js/views/collectionsView.js
+++ b/frontend/js/views/collectionsView.js
@@ -29,7 +29,7 @@ var collectionsView = Backbone.View.extend({
},
events: {
"click .icon-info-sign" : "details",
- "blur #searchInput" : "restrictToSearchPhrase",
+ //"blur #searchInput" : "restrictToSearchPhrase",
"keypress #searchInput" : "restrictToSearchPhraseKey",
"change #searchInput" : "restrictToSearchPhrase",
"click #searchSubmit" : "restrictToSearchPhrase",
@@ -40,7 +40,7 @@ var collectionsView = Backbone.View.extend({
checkSystem: function () {
var searchOptions = this.collection.searchOptions;
var oldValue = searchOptions.includeSystem;
-
+
searchOptions.includeSystem = ($('#checkSystem').is(":checked") === true);
if (oldValue != searchOptions.includeSystem) {
@@ -60,9 +60,9 @@ var collectionsView = Backbone.View.extend({
checkUnloaded: function () {
var searchOptions = this.collection.searchOptions;
var oldValue = searchOptions.includeUnloaded;
-
+
searchOptions.includeUnloaded = ($('#checkUnloaded').is(":checked") === true);
-
+
if (oldValue != searchOptions.includeUnloaded) {
this.render();
}
diff --git a/frontend/js/views/dashboardView.js b/frontend/js/views/dashboardView.js
index 40ba098da5..8380e074e5 100644
--- a/frontend/js/views/dashboardView.js
+++ b/frontend/js/views/dashboardView.js
@@ -34,7 +34,7 @@ var dashboardView = Backbone.View.extend({
d3.select("#dashboardCollectionsGraph svg")
.datum(self.formatCollectionsStats())
.transition().duration(1200)
- .call(chart);
+ .call(chart)
return chart;
});
diff --git a/frontend/js/views/documentView.js b/frontend/js/views/documentView.js
index d1d9e7a4c2..ce57cdfbe4 100644
--- a/frontend/js/views/documentView.js
+++ b/frontend/js/views/documentView.js
@@ -10,7 +10,9 @@ var documentView = Backbone.View.extend({
"click #saveDocument" : "saveDocument",
"click #addDocumentLine" : "addLine",
"click #deleteRow" : "deleteLine",
- "click #sourceView" : "sourceView"
+ "click #sourceView" : "sourceView",
+ "click #editFirstRow" : "editFirst",
+ "click #editSecondRow" : "editSecond"
},
template: new EJS({url: '/_admin/html/js/templates/documentView.ejs'}),
@@ -20,6 +22,16 @@ var documentView = Backbone.View.extend({
this.breadcrumb();
return this;
},
+ editFirst: function (e) {
+ var element = e.currentTarget;
+ var prevElement = $(element).parent().prev();
+ $(prevElement).click();
+ },
+ editSecond: function (e) {
+ var element = e.currentTarget;
+ var prevElement = $(element).parent().prev();
+ $(prevElement).click();
+ },
sourceView: function () {
window.location.hash = window.location.hash + "/source";
},
@@ -41,7 +53,8 @@ var documentView = Backbone.View.extend({
drawTable: function () {
var self = this;
$(self.table).dataTable().fnAddData([
- '
Neu hinzufügen',
+ '
Add data',
+ '',
'',
'',
'',
@@ -51,6 +64,7 @@ var documentView = Backbone.View.extend({
if (arangoHelper.isSystemAttribute(key)) {
$(self.table).dataTable().fnAddData([
key,
+ '',
self.value2html(value, true),
JSON.stringify(value),
"",
@@ -58,32 +72,37 @@ var documentView = Backbone.View.extend({
]);
}
else {
- $(self.table).dataTable().fnAddData([
- key,
- self.value2html(value),
- JSON.stringify(value),
- '',
- ''
+ $(self.table).dataTable().fnAddData(
+ [
+ key,
+ '',
+ self.value2html(value),
+ JSON.stringify(value),
+ '',
+ ''
]);
}
});
this.makeEditable();
+ $(this.table).dataTable().fnSort([ [0,'asc'] ]);
},
addLine: function () {
- $(this.table).dataTable().fnAddData([
- "key"+arangoHelper.getRandomToken(),
- this.value2html("editme"),
- JSON.stringify("editme"),
- '',
- ''
- ]);
+ $(this.table).dataTable().fnAddData(
+ [
+ "zkey"+arangoHelper.getRandomToken(),
+ '',
+ this.value2html("editme"),
+ JSON.stringify("editme"),
+ '',
+ ''
+ ]
+ );
this.makeEditable();
- this.updateLocalDocumentStorage();
- $(this.table).dataTable().fnClearTable();
- this.drawTable();
+// $(this.table).dataTable().fnClearTable();
+// this.drawTable();
},
deleteLine: function (a) {
@@ -103,10 +122,11 @@ var documentView = Backbone.View.extend({
"bDeferRender": true,
"iDisplayLength": -1,
"aoColumns": [
- {"sClass":"writeable", "bSortable": false, "sWidth":"400px" },
+ {"sClass":"writeable", "bSortable": false, "sWidth":"200px" },
+ {"sClass":"read_only leftCell", "bSortable": false, "sWidth": "20px"},
{"sClass":"writeable rightCell", "bSortable": false},
{"bVisible": false },
- {"sClass":"read_only leftCell", "bSortable": false, "sWidth": "30px"},
+ {"sClass":"read_only leftCell", "bSortable": false, "sWidth": "20px"},
{"sClass":"read_only leftCell", "bSortable": false, "sWidth": "30px"}
],
"oLanguage": {"sEmptyTable": "No documents"}
@@ -145,8 +165,11 @@ var documentView = Backbone.View.extend({
var result = {};
for (row in data) {
- var row_data = data[row];
- result[row_data[0]] = JSON.parse(row_data[2]);
+ //Exclude "add-collection" row
+ if (row !== '0') {
+ var row_data = data[row];
+ result[row_data[0]] = JSON.parse(row_data[3]);
+ }
}
window.arangoDocumentStore.updateLocalDocument(result);
this.saveDocument();
@@ -171,13 +194,12 @@ var documentView = Backbone.View.extend({
});
$('.writeable', documentEditTable.fnGetNodes()).editable(function(value, settings) {
var aPos = documentEditTable.fnGetPosition(this);
- console.log(aPos);
if (aPos[1] == 0) {
documentEditTable.fnUpdate(value, aPos[0], aPos[1]);
self.updateLocalDocumentStorage();
return value;
}
- if (aPos[1] == 1) {
+ if (aPos[1] == 2) {
var oldContent = JSON.parse(documentEditTable.fnGetData(aPos[0], aPos[1] + 1));
var test = self.getTypedValue(value);
if (String(value) == String(oldContent)) {
@@ -199,7 +221,7 @@ var documentView = Backbone.View.extend({
if (aPos[1] == 0) {
return value;
}
- if (aPos[1] == 1) {
+ if (aPos[1] == 2) {
var oldContent = documentEditTable.fnGetData(aPos[0], aPos[1] + 1);
if (typeof(oldContent) == 'object') {
//grep hidden row and paste in visible row
diff --git a/frontend/js/views/documentsView.js b/frontend/js/views/documentsView.js
index 472aaaf6eb..46deed4343 100644
--- a/frontend/js/views/documentsView.js
+++ b/frontend/js/views/documentsView.js
@@ -20,8 +20,6 @@ var documentsView = Backbone.View.extend({
"click #documentsTableID tr" : "clicked",
"click #deleteDoc" : "remove",
- "click #plusIconDoc" : "addDocument",
- "click #documentAddBtn" : "addDocument",
"click #documents_first" : "firstDocuments",
"click #documents_last" : "lastDocuments",
"click #documents_prev" : "prevDocuments",
diff --git a/frontend/js/views/newCollectionView.js b/frontend/js/views/newCollectionView.js
index 01323c542f..8456bd0002 100644
--- a/frontend/js/views/newCollectionView.js
+++ b/frontend/js/views/newCollectionView.js
@@ -15,7 +15,7 @@ var newCollectionView = Backbone.View.extend({
$('#edgeFrom').hide();
$('#edgeTo').hide();
$('.modalTooltips').tooltip({
- placement: "right"
+ placement: "left"
});
return this;
@@ -23,23 +23,10 @@ var newCollectionView = Backbone.View.extend({
events: {
"click #save-new-collection" : "saveNewCollection",
- "click #new-collection-type" : "displayEdge"
},
hidden: function () {
- window.location.hash = "#";
- },
-
- displayEdge: function () {
- var collType = $('#new-collection-type').val();
- if (collType == 3) {
- $('#edgeFrom').show();
- $('#edgeTo').show();
- }
- else {
- $('#edgeFrom').hide();
- $('#edgeTo').hide();
- }
+ window.location.hash = "#collection/";
},
saveNewCollection: function() {
diff --git a/js/server/modules/org/arangodb/ahuacatl.js b/js/server/modules/org/arangodb/ahuacatl.js
index ffe1ac884c..44182f595f 100644
--- a/js/server/modules/org/arangodb/ahuacatl.js
+++ b/js/server/modules/org/arangodb/ahuacatl.js
@@ -2018,10 +2018,14 @@ function LAST (value) {
}
////////////////////////////////////////////////////////////////////////////////
-/// @brief reverse the elements in a list
+/// @brief reverse the elements in a list or in a string
////////////////////////////////////////////////////////////////////////////////
function REVERSE (value) {
+ if (TYPEWEIGHT(value) === TYPEWEIGHT_STRING) {
+ return value.split("").reverse().join("");
+ }
+
LIST(value);
return value.reverse();
diff --git a/js/server/tests/ahuacatl-functions.js b/js/server/tests/ahuacatl-functions.js
index 7cff572fea..ae9df1988b 100644
--- a/js/server/tests/ahuacatl-functions.js
+++ b/js/server/tests/ahuacatl-functions.js
@@ -425,7 +425,6 @@ function ahuacatlFunctionsTestSuite () {
assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { QUERY("RETURN REVERSE(null)"); } ));
assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { QUERY("RETURN REVERSE(true)"); } ));
assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { QUERY("RETURN REVERSE(4)"); } ));
- assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { QUERY("RETURN REVERSE(\"yes\")"); } ));
assertEqual(errors.ERROR_QUERY_FUNCTION_ARGUMENT_TYPE_MISMATCH.code, getErrorCode(function() { QUERY("RETURN REVERSE({ })"); } ));
},
diff --git a/m4/external.icu b/m4/external.icu
index 54a7fe9899..e072a41128 100644
--- a/m4/external.icu
+++ b/m4/external.icu
@@ -60,6 +60,7 @@ dnl ----------------------------------------------------------------------------
LIB_INFO="$LIB_INFO|."
if test "x$tr_ICU" = xyes; then
+ LIB_INFO="$LIB_INFO|ICU: system version"
LIB_INFO="$LIB_INFO|ICU VERSION: ${TRI_ICU_VERSION}"
LIB_INFO="$LIB_INFO|ICU_CPPFLAGS: ${ICU_CPPFLAGS}"