1
0
Fork 0

Add 'Save' and 'New' button for Query Editor #1906

This commit is contained in:
PedroFerreiraRamos 2016-07-03 14:16:12 -03:00
parent f038fa386f
commit 5d65be01f1
2 changed files with 76 additions and 4 deletions

View File

@ -6,7 +6,9 @@
<div class="pull-left">
<button id="toggleQueries1" class="button-primary"><i class="fa fa-star-o"></i>Queries</button>
<button id="toggleQueries2" class="button-primary" style="display: none"><i class="fa fa-star"></i>Queries</button>
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save</button>
<button id="createNewQuery" class="button-warning">New</button>
<button id="updateCurrentQuery" class="button-success" style="display: none"><i class="fa fa-save"></i>Save</button>
<button id="saveCurrentQuery" class="button-success"><i class="fa fa-save"></i>Save as</button>
</div>
<div class="pull-right">
@ -134,4 +136,4 @@
</div>
</div>
</script>
</script>

View File

@ -70,7 +70,9 @@
'click .outputEditorWrapper .fa-close': 'closeResult',
'click #toggleQueries1': 'toggleQueries',
'click #toggleQueries2': 'toggleQueries',
'click #createNewQuery': 'createAQL',
'click #saveCurrentQuery': 'addAQL',
'click #updateCurrentQuery': 'updateAQL',
'click #exportQuery': 'exportCustomQueries',
'click #importQuery': 'openImportDialog',
'click #removeResults': 'removeResults',
@ -217,11 +219,17 @@
this.queryPreview.setValue('No query selected.', 1);
this.deselect(this.queryPreview);
} else {
$('#updateCurrentQuery').hide();
if (this.settings.aqlWidth === undefined) {
$('.aqlEditorWrapper').first().width($(window).width() * 0.33);
} else {
$('.aqlEditorWrapper').first().width(this.settings.aqlWidth);
}
if (localStorage.getItem('lastOpenQuery') !== 'undefined') {
$('#updateCurrentQuery').show();
}
}
} else {
if (this.settings.aqlWidth === undefined) {
@ -234,7 +242,7 @@
var divs = [
'aqlEditor', 'queryTable', 'previewWrapper', 'querySpotlight',
'bindParamEditor', 'toggleQueries1', 'toggleQueries2',
'bindParamEditor', 'toggleQueries1', 'toggleQueries2', 'createNewQuery',
'saveCurrentQuery', 'querySize', 'executeQuery', 'switchTypes',
'explainQuery', 'importQuery', 'exportQuery'
];
@ -316,11 +324,24 @@
this.fillBindParamTable(this.getCustomQueryParameterByName(name));
this.updateBindParams();
this.currentQuery = this.collection.findWhere({name: name});
if (this.currentQuery) {
localStorage.setItem('lastOpenQuery', this.currentQuery.get('name'));
}
$('#updateCurrentQuery').show();
// render a button to revert back to last query
$('#lastQuery').remove();
$('#currentQueryName').remove();
$('#queryContent .arangoToolbarTop .pull-left')
.append('<span id="lastQuery" class="clickable">Previous Query</span>');
$('#queryContent .arangoToolbarTop .pull-left')
.append('<span id="currentQueryName">' + name + '</span>');
$('#lastQuery').hide().fadeIn(500)
.on('click', function () {
self.aqlEditor.setValue(self.state.lastQuery.query, 1);
@ -524,6 +545,14 @@
if (queryObject !== null && queryObject !== undefined && queryObject !== '') {
this.aqlEditor.setValue(queryObject.query, 1);
var queryName = localStorage.getItem('lastOpenQuery');
if (queryName) {
$('#queryContent .arangoToolbarTop .pull-left')
.append('<span id="currentQueryName">' + queryName + '</span>');
$('#updateCurrentQuery').show();
}
// reset undo history for initial text value
this.aqlEditor.getSession().setUndoManager(new ace.UndoManager());
@ -1113,6 +1142,42 @@
}, 500);
},
updateAQL: function() {
var content = this.aqlEditor.getValue();
var queryName = localStorage.getItem('lastOpenQuery');
var query = this.collection.findWhere({name: queryName});
if (query) {
query.set('value', content);
var callback = function(error) {
if (error) {
arangoHelper.arangoError('Query', 'Could not save query');
}
else {
var self = this;
this.collection.fetch({
success: function() {
self.updateLocalQueries();
}
});
}
}.bind(this);
this.collection.saveCollectionQueries(callback);
}
this.refreshAQL(true);
},
createAQL: function() {
localStorage.setItem('lastOpenQuery', undefined);
this.aqlEditor.setValue('');
this.refreshAQL(true);
$('#currentQueryName').remove();
$('#updateCurrentQuery').hide();
},
createCustomQueryModal: function () {
var buttons = [];
var tableContent = [];
@ -1225,6 +1290,11 @@
this.collection.fetch({
success: function () {
self.updateLocalQueries();
$('#updateCurrentQuery').show();
$('#currentQueryName').remove();
$('#queryContent .arangoToolbarTop .pull-left')
.append('<span id="currentQueryName">' + saveName + '</span>');
}
});
}
@ -1822,4 +1892,4 @@
});
}
});
}());
}());