1
0
Fork 0

added new options for editing aql statements

This commit is contained in:
Heiko Kernbach 2013-07-17 15:04:53 +02:00
parent 9c12a30f14
commit eb8ca374c6
3 changed files with 107 additions and 2 deletions

View File

@ -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 {

View File

@ -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>

View File

@ -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");