From: <tob...@us...> - 2014-04-21 22:08:05
|
Revision: 8135 http://sourceforge.net/p/bigdata/code/8135 Author: tobycraig Date: 2014-04-21 22:08:01 +0000 (Mon, 21 Apr 2014) Log Message: ----------- Rudimentary error position highlighting in query, needs some polishing Modified Paths: -------------- branches/RDR/bigdata-war/src/html/css/style.css branches/RDR/bigdata-war/src/html/index.html branches/RDR/bigdata-war/src/html/js/workbench.js Modified: branches/RDR/bigdata-war/src/html/css/style.css =================================================================== --- branches/RDR/bigdata-war/src/html/css/style.css 2014-04-21 21:04:52 UTC (rev 8134) +++ branches/RDR/bigdata-war/src/html/css/style.css 2014-04-21 22:08:01 UTC (rev 8135) @@ -228,6 +228,35 @@ float: right; } +#query-box { + background-color: transparent; + padding: 2px; + border-width: 1px; +} + +/* these should have the same typography so the error highlighting matches up with the query text */ +#query-box, #query-errors { + font-family: sans-serif; + font-size: 90%; + line-height: normal; +} + +#query-errors { + position: absolute; + z-index: -1; + padding: 8px 3px; + color: transparent; + white-space: pre; +} + +#error-line { + background-color: lightgreen; +} + +#error-character { + background-color: red; +} + #running-queries li { margin: 10px 0; } Modified: branches/RDR/bigdata-war/src/html/index.html =================================================================== --- branches/RDR/bigdata-war/src/html/index.html 2014-04-21 21:04:52 UTC (rev 8134) +++ branches/RDR/bigdata-war/src/html/index.html 2014-04-21 22:08:01 UTC (rev 8135) @@ -80,6 +80,7 @@ </div> <form id="query-form"> + <div id="query-errors"></div> <textarea id="query-box" name="query" placeholder="(Input a SPARQL query)"></textarea> <a href="#" id="advanced-features-toggle">Advanced features</a> Modified: branches/RDR/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/RDR/bigdata-war/src/html/js/workbench.js 2014-04-21 21:04:52 UTC (rev 8134) +++ branches/RDR/bigdata-war/src/html/js/workbench.js 2014-04-21 22:08:01 UTC (rev 8135) @@ -441,7 +441,8 @@ /* Query */ -$('#query-box').bind('keydown', 'ctrl+return', function(e) { e.preventDefault(); $('#query-form').submit(); }); +$('#query-box').bind('keydown', 'ctrl+return', function(e) { e.preventDefault(); $('#query-form').submit(); }) + .on('input propertychange', function() { $('#query-errors').hide(); }); $('#query-form').submit(submitQuery); function submitQuery(e) { @@ -699,6 +700,25 @@ function queryResultsError(jqXHR, textStatus, errorThrown) { $('#query-response, #query-tab .bottom *').show(); $('#query-response').text('Error! ' + textStatus + ' ' + jqXHR.statusText); + var match = errorThrown.match(/line (\d+), column (\d+)/); + if(match) { + // highlight character at error position + var line = match[1] - 1; + var column = match[2] - 1; + var query = $('#query-box').val(); + var lines = query.split('\n'); + $('#query-errors').html(''); + for(var i=0; i<line; i++) { + var p = $('<p>').text(lines[i]); + $('#query-errors').append(p); + } + $('#query-errors').append('<p id="error-line">'); + $('#error-line').append(document.createTextNode(lines[line].substr(0, column))); + $('#error-line').append($('<span id="error-character">').text(lines[line].charAt(column) || ' ')); + $('#error-line').append(document.createTextNode(lines[line].substr(column + 1))); + $('#query-errors').show(); + $('#query-box').scrollTop(0); + } } /* Pagination */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |