From 7487e81a4e14f16ba5742e498b7bb9fca121b337 Mon Sep 17 00:00:00 2001 From: David Huynh Date: Thu, 4 Mar 2010 07:18:23 +0000 Subject: [PATCH] Fixed bug in expression preview dialog where selecting an old expression from the history pane did not take out the language prefixing, causing the expression to err. git-svn-id: http://google-refine.googlecode.com/svn/trunk@195 7d457c2a-affb-35e4-300a-418c747d4874 --- src/main/webapp/project.html | 3 +-- .../dialogs/expression-preview-dialog.js | 21 +++++++++++------ src/main/webapp/scripts/project/scripting.js | 23 +++++++++++++++++++ 3 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 src/main/webapp/scripts/project/scripting.js diff --git a/src/main/webapp/project.html b/src/main/webapp/project.html index fabb82b82..d79051395 100644 --- a/src/main/webapp/project.html +++ b/src/main/webapp/project.html @@ -1,2 +1 @@ - Gridworks -
starting up ...
\ No newline at end of file + Gridworks
starting up ...
\ No newline at end of file diff --git a/src/main/webapp/scripts/dialogs/expression-preview-dialog.js b/src/main/webapp/scripts/dialogs/expression-preview-dialog.js index 230f704f6..2bc669fad 100644 --- a/src/main/webapp/scripts/dialogs/expression-preview-dialog.js +++ b/src/main/webapp/scripts/dialogs/expression-preview-dialog.js @@ -103,6 +103,7 @@ ExpressionPreviewDialog.Widget = function( } } this._elmts.expressionPreviewLanguageSelect[0].value = language; + this._elmts.expressionPreviewLanguageSelect.bind("change", function() { self.update(); }); var self = this; this._elmts.expressionPreviewTextarea @@ -241,21 +242,27 @@ ExpressionPreviewDialog.Widget.prototype._renderExpressionHistory = function(dat var table = $( '' + - '' + + '' + '
ExpressionFrom
ExpressionLanguageFrom
' ).appendTo(elmt)[0]; var renderEntry = function(entry) { var tr = table.insertRow(table.rows.length); + var o = Scripting.parse(entry.code); - $(tr.insertCell(0)).text(entry.code); - $(tr.insertCell(1)).text(entry.global ? "Other projects" : "This project"); + $(tr.insertCell(0)).text(o.expression); + $(tr.insertCell(1)).text(o.language); + $(tr.insertCell(2)).text(entry.global ? "Other projects" : "This project"); - $('Re-use').appendTo(tr.insertCell(2)).click(function() { - self._elmts.expressionPreviewTextarea[0].value = entry.code; - self._elmts.expressionPreviewTextarea.select().focus(); - self.update(); + $('Re-use').appendTo(tr.insertCell(3)).click(function() { + self._elmts.expressionPreviewTextarea[0].value = o.expression; + self._elmts.expressionPreviewLanguageSelect[0].value = o.language; + $("#expression-preview-tabs").tabs('option', 'selected', 0); + + self._elmts.expressionPreviewTextarea.select().focus(); + + self.update(); }); }; diff --git a/src/main/webapp/scripts/project/scripting.js b/src/main/webapp/scripts/project/scripting.js new file mode 100644 index 000000000..19778f310 --- /dev/null +++ b/src/main/webapp/scripts/project/scripting.js @@ -0,0 +1,23 @@ +var Scripting = { + languages: [ "gel", "jython", "clojure" ] +}; + +Scripting.parse = function(expression) { + var colon = expression.indexOf(":"); + if (colon > 0) { + var l = expression.substring(0, colon); + for (var i = 0; i < Scripting.languages.length; i++) { + if (l == Scripting.languages[i]) { + return { + language: l, + expression: expression.substring(colon + 1) + }; + } + } + } + + return { + language: "gel", + expression: expression + }; +}; \ No newline at end of file