(refs #1870) Insert comma before repeated table and column names

This commit is contained in:
Naoki Takezoe
2018-03-11 16:37:11 +09:00
parent 04a7548a26
commit e935e6e6b1

View File

@@ -26,8 +26,7 @@
<input type="button" value="Run query" id="run-query" class="btn btn-success"> <input type="button" value="Run query" id="run-query" class="btn btn-success">
<input type="button" value="Clear" id="clear-query" class="btn btn-default"> <input type="button" value="Clear" id="clear-query" class="btn btn-default">
<label for="autorun"> <label for="autorun">
<input type="checkbox" id="autorun" name="autorun"/> <input type="checkbox" id="autorun" name="autorun"/> Auto Run Query
Auto Run Query
</label> </label>
</div> </div>
<div id="result"></div> <div id="result"></div>
@@ -39,6 +38,15 @@
<script src="@helpers.assets("/vendors/vakata-jstree-3.3.4/jstree.min.js")" type="text/javascript" charset="utf-8"></script> <script src="@helpers.assets("/vendors/vakata-jstree-3.3.4/jstree.min.js")" type="text/javascript" charset="utf-8"></script>
<link rel="stylesheet" href="@helpers.assets("/vendors/vakata-jstree-3.3.4/themes/default/style.min.css")" /> <link rel="stylesheet" href="@helpers.assets("/vendors/vakata-jstree-3.3.4/themes/default/style.min.css")" />
<script> <script>
function getPosition(editor, position){
var session = editor.getSession();
var result = 0;
for(var i = 0; i < position.row; i++){
result = result + session.getLine(i).length + 1;
}
return result + position.column;
}
$(function(){ $(function(){
$('#editor').text($('#initial').val()); $('#editor').text($('#initial').val());
var editor = ace.edit("editor"); var editor = ace.edit("editor");
@@ -48,7 +56,6 @@ $(function(){
$('#table-tree').jstree(); $('#table-tree').jstree();
$('#table-tree').on('select_node.jstree', function(e, data){ $('#table-tree').on('select_node.jstree', function(e, data){
//var selectedNodes = $('#table-tree').jstree('get_selected', true);
if(editor.getValue().trim() == '' || $('#autorun').is(':checked')){ if(editor.getValue().trim() == '' || $('#autorun').is(':checked')){
if(data.node.data['column']){ if(data.node.data['column']){
editor.setValue('SELECT ' + data.node.data['column'] + ' FROM ' + data.node.data['table']); editor.setValue('SELECT ' + data.node.data['column'] + ' FROM ' + data.node.data['table']);
@@ -59,10 +66,20 @@ $(function(){
$('#run-query').click(); $('#run-query').click();
} }
} else { } else {
var position = editor.getCursorPosition();
var prefix = '';
// Check a previous character
if(position.column != 0){
var range = new ace.Range(position.row, position.column - 1, position.row, position.column);
var c = editor.getSession().getTextRange(range);
if(c != '' && c != ' ' && c != '.' && c != ',' && c != '\t' && c != '\r' && c != '\n'){
prefix = ', ';
}
}
if(data.node.data['column']){ if(data.node.data['column']){
editor.getSession().insert(editor.getCursorPosition(), data.node.data['column']); editor.getSession().insert(position, prefix + data.node.data['column']);
} else if(data.node.data['table']){ } else if(data.node.data['table']){
editor.getSession().insert(editor.getCursorPosition(), data.node.data['table']); editor.getSession().insert(position, prefix + data.node.data['table']);
} }
} }
editor.focus(); editor.focus();