mirror of https://gitee.com/bigwinds/arangodb
added new options for editing aql statements
This commit is contained in:
parent
9c12a30f14
commit
eb8ca374c6
|
@ -12,6 +12,28 @@
|
|||
#editorLabel {
|
||||
margin-top: 20px;
|
||||
padding-left: 45px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#editorToolbar {
|
||||
float: left;
|
||||
width: 772px;
|
||||
margin-top: 20px !important;
|
||||
border-top: 1px solid #A0A0A0;
|
||||
border-right: 1px solid #A0A0A0;
|
||||
border-radius: 0 3px 0 0;
|
||||
height: 20px;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
#editorToolbar i:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#editorToolbar i {
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
#outputLabel {
|
||||
|
@ -28,7 +50,7 @@
|
|||
border-right: 1px solid #A0A0A0;
|
||||
border-top: 1px solid #A0A0A0;
|
||||
width: 80px;
|
||||
border-radius: 3px 3px 0 0;
|
||||
border-radius: 3px 0 0 0;
|
||||
}
|
||||
|
||||
#aqlEditor .ace_error, #aqlEditor .ace_info, #queryOutput .ace_error, #queryOutput .ace_info {
|
||||
|
|
|
@ -11,6 +11,11 @@
|
|||
<i class="icon-trash clearicon"></i>
|
||||
|
||||
<div id="editorLabel">Query</div>
|
||||
<div id="editorToolbar">
|
||||
<i class="icon-comment queryTooltips" title="Comment" id="commentText"/>
|
||||
<i class="icon-arrow-right queryTooltips" title="Redo" id="redoText"/>
|
||||
<i class="icon-arrow-left queryTooltips" title="Undo" id="undoText"/>
|
||||
</div>
|
||||
<div id="aqlEditor"></div>
|
||||
<button id="submitQueryButton" class="btn btn-success">Submit</button>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,10 @@ var queryView = Backbone.View.extend({
|
|||
events: {
|
||||
'click #submitQueryIcon' : 'submitQuery',
|
||||
'click #submitQueryButton' : 'submitQuery',
|
||||
'click .clearicon': 'clearOutput'
|
||||
'click #commentText' : 'commentText',
|
||||
'click #undoText' : 'undoText',
|
||||
'click #redoText' : 'redoText',
|
||||
'click .clearicon' : 'clearOutput'
|
||||
},
|
||||
clearOutput: function() {
|
||||
$('#queryOutput').empty();
|
||||
|
@ -43,6 +46,7 @@ var queryView = Backbone.View.extend({
|
|||
},200);
|
||||
}
|
||||
});
|
||||
|
||||
$('#aqlEditor').resizable({
|
||||
handles: "s",
|
||||
ghost: true,
|
||||
|
@ -55,6 +59,10 @@ var queryView = Backbone.View.extend({
|
|||
}
|
||||
});
|
||||
|
||||
$('.queryTooltips').tooltip({
|
||||
placement: "top"
|
||||
});
|
||||
|
||||
$('#aqlEditor .ace_text-input').focus();
|
||||
$.gritter.removeAll();
|
||||
|
||||
|
@ -74,6 +82,76 @@ var queryView = Backbone.View.extend({
|
|||
|
||||
return this;
|
||||
},
|
||||
undoText: function () {
|
||||
var editor = ace.edit("aqlEditor");
|
||||
editor.undo();
|
||||
},
|
||||
redoText: function () {
|
||||
var editor = ace.edit("aqlEditor");
|
||||
editor.redo();
|
||||
},
|
||||
commentText: function() {
|
||||
var editor = ace.edit("aqlEditor");
|
||||
var value;
|
||||
var newValue;
|
||||
var flag = false;
|
||||
var cursorPosition = editor.getCursorPosition();
|
||||
var cursorRange = editor.getSelection().getRange();
|
||||
|
||||
var regExp = new RegExp(/\*\//);
|
||||
var regExp2 = new RegExp(/\/\*/);
|
||||
|
||||
if (cursorRange.end.row === cursorRange.start.row) {
|
||||
//single line comment /* */
|
||||
value = editor.getSession().getLine(cursorRange.start.row);
|
||||
if (value.search(regExp) === -1 && value.search(regExp2) === -1) {
|
||||
newValue = '/*' + value + '*/';
|
||||
flag = true;
|
||||
}
|
||||
else if (value.search(regExp) !== -1 && value.search(regExp2) !== -1) {
|
||||
newValue = value.replace(regExp, '').replace(regExp2, '');
|
||||
flag = true;
|
||||
}
|
||||
if (flag === true) {
|
||||
editor.find(value, {
|
||||
range: cursorRange
|
||||
});
|
||||
editor.replace(newValue);
|
||||
}
|
||||
}
|
||||
else {
|
||||
//multi line comment
|
||||
value = editor.getSession().getLines(cursorRange.start.row, cursorRange.end.row);
|
||||
var arrayLength = value.length;
|
||||
var firstString = value[0];
|
||||
var lastString = value[value.length-1];
|
||||
var newFirstString;
|
||||
var newLastString;
|
||||
|
||||
if (firstString.search(regExp2) === -1 && lastString.search(regExp) === -1) {
|
||||
newFirstString = '/*' + firstString;
|
||||
newLastString = lastString + '*/';
|
||||
flag = true;
|
||||
}
|
||||
else if (firstString.search(regExp2) !== -1 && lastString.search(regExp) !== -1) {
|
||||
newFirstString = firstString.replace(regExp2, '');
|
||||
newLastString = lastString.replace(regExp, '');
|
||||
flag = true;
|
||||
}
|
||||
if (flag === true) {
|
||||
editor.find(firstString, {
|
||||
range: cursorRange
|
||||
});
|
||||
editor.replace(newFirstString);
|
||||
editor.find(lastString, {
|
||||
range: cursorRange
|
||||
});
|
||||
editor.replace(newLastString);
|
||||
}
|
||||
}
|
||||
cursorRange.end.column = cursorRange.end.column + 2;
|
||||
editor.getSelection().setSelectionRange(cursorRange, false);
|
||||
},
|
||||
submitQuery: function() {
|
||||
var self = this;
|
||||
var editor = ace.edit("aqlEditor");
|
||||
|
|
Loading…
Reference in New Issue