mirror of https://gitee.com/bigwinds/arangodb
Add 'Save' and 'New' button for Query Editor #1906
This commit is contained in:
parent
f038fa386f
commit
5d65be01f1
|
@ -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>
|
|
@ -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 @@
|
|||
});
|
||||
}
|
||||
});
|
||||
}());
|
||||
}());
|
Loading…
Reference in New Issue