From 11b59aefc36d02f2097ecb25bdf268f673bfaad0 Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Tue, 4 Nov 2014 19:37:03 +0900 Subject: [PATCH 1/9] Update pom file --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index abdc5435cb4..f12c1770240 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,7 @@ spark markdown shell + svg zeppelin-web zeppelin-server zeppelin-distribution From 540df43e0d22c7ffa256d3908ce4375177e18ec1 Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Tue, 4 Nov 2014 19:37:26 +0900 Subject: [PATCH 2/9] add svg interpreter --- svg/pom.xml | 110 ++++++++++++++++++ .../java/com/nflabs/zeppelin/svg/Svg.java | 90 ++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 svg/pom.xml create mode 100644 svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java diff --git a/svg/pom.xml b/svg/pom.xml new file mode 100644 index 00000000000..fbf0e9ea2d7 --- /dev/null +++ b/svg/pom.xml @@ -0,0 +1,110 @@ + + + 4.0.0 + + + zeppelin + com.nflabs.zeppelin + 0.5.0-SNAPSHOT + + + com.nflabs.zeppelin + zeppelin-svg + jar + 0.5.0-SNAPSHOT + Zeppelin: SVG interpreter + http://www.nflabs.com + + + + ${project.groupId} + zeppelin-zengine + ${project.version} + provided + + + + org.slf4j + slf4j-api + + + + org.slf4j + slf4j-log4j12 + + + junit + junit + test + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.7 + + true + + + + + maven-enforcer-plugin + 1.3.1 + + + enforce + none + + + + + + maven-dependency-plugin + 2.8 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/../../interpreter/svg + false + false + true + runtime + + + + copy-artifact + package + + copy + + + ${project.build.directory}/../../interpreter/svg + false + false + true + runtime + + + ${project.groupId} + ${project.artifactId} + ${project.version} + ${project.packaging} + + + + + + + + + + diff --git a/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java b/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java new file mode 100644 index 00000000000..8dd671ddc7e --- /dev/null +++ b/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java @@ -0,0 +1,90 @@ +/** + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + * + */ +package com.nflabs.zeppelin.svg; + +import java.util.Collections; +import java.util.List; +import java.util.Properties; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.nflabs.zeppelin.interpreter.Interpreter; +import com.nflabs.zeppelin.interpreter.InterpreterResult; +import com.nflabs.zeppelin.interpreter.InterpreterResult.Code; +import com.nflabs.zeppelin.scheduler.Scheduler; +import com.nflabs.zeppelin.scheduler.SchedulerFactory; + +/** + * SVG interpreter for Zeppelin + * + * @author anthonycorbacho + * + */ +public class Svg extends Interpreter { + private static final Logger LOG = LoggerFactory.getLogger(Svg.class); + + static { + Interpreter.register("svg", Svg.class.getName()); + } + + public Svg(Properties property) { + super(property); + } + + @Override + public void open() {} + + @Override + public void close() {} + + @Override + public Object getValue(String name) { + return null; + } + + @Override + public InterpreterResult interpret(String svgCode) { + LOG.info("run SVG interpreter"); + return new InterpreterResult(Code.SUCCESS, "%svg " + svgCode); + } + + @Override + public void cancel() {} + + @Override + public void bindValue(String name, Object o) {} + + @Override + public FormType getFormType() { + return null; + } + + @Override + public int getProgress() { + return 0; + } + + @Override + public List completion(String buf, int cursor) { + return Collections.emptyList(); + } + + @Override + public Scheduler getScheduler() { + return SchedulerFactory.singleton().createOrGetParallelScheduler( + Svg.class.getName() + this.hashCode(), 5); + } + +} From 7af03f967bb1f9d4ccfef72d71ab3e1402fcaac9 Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Tue, 4 Nov 2014 19:37:47 +0900 Subject: [PATCH 3/9] add SVG TYPE --- .../java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java | 2 +- .../java/com/nflabs/zeppelin/interpreter/InterpreterResult.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java index 707fe91540a..b6eee565869 100644 --- a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java +++ b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java @@ -233,7 +233,7 @@ public static enum ConfVars { ZEPPELIN_PORT ("zeppelin.server.port", 8080), ZEPPELIN_WAR ("zeppelin.war", "../zeppelin-web/src/main/webapp"), ZEPPELIN_API_WAR ("zeppelin.api.war", "../zeppelin-docs/src/main/swagger"), - ZEPPELIN_INTERPRETERS ("zeppelin.interpreters", "com.nflabs.zeppelin.spark.SparkInterpreter,com.nflabs.zeppelin.spark.SparkSqlInterpreter,com.nflabs.zeppelin.markdown.Markdown,com.nflabs.zeppelin.shell.ShellInterpreter"), + ZEPPELIN_INTERPRETERS ("zeppelin.interpreters", "com.nflabs.zeppelin.spark.SparkInterpreter,com.nflabs.zeppelin.spark.SparkSqlInterpreter,com.nflabs.zeppelin.markdown.Markdown,com.nflabs.zeppelin.shell.ShellInterpreter,com.nflabs.zeppelin.svg.Svg"), ZEPPELIN_INTERPRETER_DIR ("zeppelin.interpreter.dir", "interpreter"), ZEPPELIN_INTERPRETER_MODE ("zeppelin.interpreter.mode", "share"), // 'separate', 'share' ZEPPELIN_ENCODING ("zeppelin.encoding", "UTF-8"), diff --git a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/interpreter/InterpreterResult.java b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/interpreter/InterpreterResult.java index dddc3409108..eaa7566d033 100644 --- a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/interpreter/InterpreterResult.java +++ b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/interpreter/InterpreterResult.java @@ -14,6 +14,7 @@ public static enum Type { HTML, TABLE, IMG, + SVG, NULL } From 3d8250ac639690d538ebba033992f657124c9af7 Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Tue, 4 Nov 2014 19:38:32 +0900 Subject: [PATCH 4/9] update web ui --- zeppelin-web/app/scripts/controllers/paragraph.js | 4 ++++ zeppelin-web/app/views/paragraph.html | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/zeppelin-web/app/scripts/controllers/paragraph.js b/zeppelin-web/app/scripts/controllers/paragraph.js index 265f61fff6d..97c44824ad6 100644 --- a/zeppelin-web/app/scripts/controllers/paragraph.js +++ b/zeppelin-web/app/scripts/controllers/paragraph.js @@ -575,6 +575,10 @@ angular.module('zeppelinWebApp') $scope.getBase64ImageSrc = function(base64Data) { return 'data:image/png;base64,'+base64Data; }; + + $scope.getBase64ImageSvg = function(base64Data) { + return 'data:image/svg+xml;utf8,'+base64Data; + }; $scope.getGraphMode = function(paragraph){ var pdata = (paragraph) ? paragraph : $scope.paragraph; diff --git a/zeppelin-web/app/views/paragraph.html b/zeppelin-web/app/views/paragraph.html index 941f15d39f7..1dcca49eec5 100644 --- a/zeppelin-web/app/views/paragraph.html +++ b/zeppelin-web/app/views/paragraph.html @@ -268,6 +268,12 @@ ng-Init="loadResultType(paragraph.result)" ng-src="{{getBase64ImageSrc(paragraph.result.msg)}}"> + + +
Date: Wed, 5 Nov 2014 11:32:28 +0900 Subject: [PATCH 5/9] remove svg interpreter --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index f12c1770240..abdc5435cb4 100644 --- a/pom.xml +++ b/pom.xml @@ -76,7 +76,6 @@ spark markdown shell - svg zeppelin-web zeppelin-server zeppelin-distribution From e0b63c61b35eb14c999b1beb6e239bbb8d6bf22c Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Wed, 5 Nov 2014 11:33:00 +0900 Subject: [PATCH 6/9] update zeppelin configuration --- .../java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java index b6eee565869..707fe91540a 100644 --- a/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java +++ b/zeppelin-zengine/src/main/java/com/nflabs/zeppelin/conf/ZeppelinConfiguration.java @@ -233,7 +233,7 @@ public static enum ConfVars { ZEPPELIN_PORT ("zeppelin.server.port", 8080), ZEPPELIN_WAR ("zeppelin.war", "../zeppelin-web/src/main/webapp"), ZEPPELIN_API_WAR ("zeppelin.api.war", "../zeppelin-docs/src/main/swagger"), - ZEPPELIN_INTERPRETERS ("zeppelin.interpreters", "com.nflabs.zeppelin.spark.SparkInterpreter,com.nflabs.zeppelin.spark.SparkSqlInterpreter,com.nflabs.zeppelin.markdown.Markdown,com.nflabs.zeppelin.shell.ShellInterpreter,com.nflabs.zeppelin.svg.Svg"), + ZEPPELIN_INTERPRETERS ("zeppelin.interpreters", "com.nflabs.zeppelin.spark.SparkInterpreter,com.nflabs.zeppelin.spark.SparkSqlInterpreter,com.nflabs.zeppelin.markdown.Markdown,com.nflabs.zeppelin.shell.ShellInterpreter"), ZEPPELIN_INTERPRETER_DIR ("zeppelin.interpreter.dir", "interpreter"), ZEPPELIN_INTERPRETER_MODE ("zeppelin.interpreter.mode", "share"), // 'separate', 'share' ZEPPELIN_ENCODING ("zeppelin.encoding", "UTF-8"), From 2ace40beac7a2be771d03b4f01749ad5cfb0e8d5 Mon Sep 17 00:00:00 2001 From: anthony corbacho Date: Wed, 5 Nov 2014 11:33:39 +0900 Subject: [PATCH 7/9] remove svg interpreter --- svg/pom.xml | 110 ------------------ .../java/com/nflabs/zeppelin/svg/Svg.java | 90 -------------- 2 files changed, 200 deletions(-) delete mode 100644 svg/pom.xml delete mode 100644 svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java diff --git a/svg/pom.xml b/svg/pom.xml deleted file mode 100644 index fbf0e9ea2d7..00000000000 --- a/svg/pom.xml +++ /dev/null @@ -1,110 +0,0 @@ - - - 4.0.0 - - - zeppelin - com.nflabs.zeppelin - 0.5.0-SNAPSHOT - - - com.nflabs.zeppelin - zeppelin-svg - jar - 0.5.0-SNAPSHOT - Zeppelin: SVG interpreter - http://www.nflabs.com - - - - ${project.groupId} - zeppelin-zengine - ${project.version} - provided - - - - org.slf4j - slf4j-api - - - - org.slf4j - slf4j-log4j12 - - - junit - junit - test - - - - - - - org.apache.maven.plugins - maven-deploy-plugin - 2.7 - - true - - - - - maven-enforcer-plugin - 1.3.1 - - - enforce - none - - - - - - maven-dependency-plugin - 2.8 - - - copy-dependencies - package - - copy-dependencies - - - ${project.build.directory}/../../interpreter/svg - false - false - true - runtime - - - - copy-artifact - package - - copy - - - ${project.build.directory}/../../interpreter/svg - false - false - true - runtime - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${project.packaging} - - - - - - - - - - diff --git a/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java b/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java deleted file mode 100644 index 8dd671ddc7e..00000000000 --- a/svg/src/main/java/com/nflabs/zeppelin/svg/Svg.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing permissions and limitations under - * the License. - * - */ -package com.nflabs.zeppelin.svg; - -import java.util.Collections; -import java.util.List; -import java.util.Properties; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.nflabs.zeppelin.interpreter.Interpreter; -import com.nflabs.zeppelin.interpreter.InterpreterResult; -import com.nflabs.zeppelin.interpreter.InterpreterResult.Code; -import com.nflabs.zeppelin.scheduler.Scheduler; -import com.nflabs.zeppelin.scheduler.SchedulerFactory; - -/** - * SVG interpreter for Zeppelin - * - * @author anthonycorbacho - * - */ -public class Svg extends Interpreter { - private static final Logger LOG = LoggerFactory.getLogger(Svg.class); - - static { - Interpreter.register("svg", Svg.class.getName()); - } - - public Svg(Properties property) { - super(property); - } - - @Override - public void open() {} - - @Override - public void close() {} - - @Override - public Object getValue(String name) { - return null; - } - - @Override - public InterpreterResult interpret(String svgCode) { - LOG.info("run SVG interpreter"); - return new InterpreterResult(Code.SUCCESS, "%svg " + svgCode); - } - - @Override - public void cancel() {} - - @Override - public void bindValue(String name, Object o) {} - - @Override - public FormType getFormType() { - return null; - } - - @Override - public int getProgress() { - return 0; - } - - @Override - public List completion(String buf, int cursor) { - return Collections.emptyList(); - } - - @Override - public Scheduler getScheduler() { - return SchedulerFactory.singleton().createOrGetParallelScheduler( - Svg.class.getName() + this.hashCode(), 5); - } - -} From 4c97e8c9345696f67cdb0224d15beb60011051d5 Mon Sep 17 00:00:00 2001 From: Lee moon soo Date: Mon, 10 Nov 2014 02:03:35 +0900 Subject: [PATCH 8/9] Render html content without angular directive --- .../app/scripts/controllers/paragraph.js | 23 +++++++++++++++---- zeppelin-web/app/views/paragraph.html | 9 +------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/zeppelin-web/app/scripts/controllers/paragraph.js b/zeppelin-web/app/scripts/controllers/paragraph.js index 97c44824ad6..8e740bb73f5 100644 --- a/zeppelin-web/app/scripts/controllers/paragraph.js +++ b/zeppelin-web/app/scripts/controllers/paragraph.js @@ -54,9 +54,26 @@ angular.module('zeppelinWebApp') $scope.lastData.config = jQuery.extend(true, {}, $scope.paragraph.config); $scope.loadTableData($scope.paragraph.result); $scope.setGraphMode($scope.getGraphMode(), false, false); + } else if ($scope.getResultType() === 'HTML') { + $scope.renderHtml(); } }; + $scope.renderHtml = function() { + var retryRenderer = function(){ + if($('#p'+$scope.paragraph.id+'_msg').length){ + try { + $('#p'+$scope.paragraph.id+'_msg').html($scope.paragraph.result.msg); + } catch(err) { + console.log('HTML rendering error %o', err); + } + } else { + $timeout(retryRenderer,10); + } + }; + $timeout(retryRenderer); + + }; var initializeDefault = function(){ if (!$scope.paragraph.config.looknfeel) { @@ -196,6 +213,8 @@ angular.module('zeppelinWebApp') } else { $scope.setGraphMode(newGraphMode, false, true); } + } else if (newType==='HTML') { + $scope.renderHtml(); } } }); @@ -576,10 +595,6 @@ angular.module('zeppelinWebApp') return 'data:image/png;base64,'+base64Data; }; - $scope.getBase64ImageSvg = function(base64Data) { - return 'data:image/svg+xml;utf8,'+base64Data; - }; - $scope.getGraphMode = function(paragraph){ var pdata = (paragraph) ? paragraph : $scope.paragraph; if (pdata.config.graph && pdata.config.graph.mode) { diff --git a/zeppelin-web/app/views/paragraph.html b/zeppelin-web/app/views/paragraph.html index 1dcca49eec5..a1f0a6dc937 100644 --- a/zeppelin-web/app/views/paragraph.html +++ b/zeppelin-web/app/views/paragraph.html @@ -257,10 +257,9 @@ ng-bind="paragraph.result.msg">
-
- - -
Date: Mon, 10 Nov 2014 02:41:12 +0900 Subject: [PATCH 9/9] Add missing '>' --- zeppelin-web/app/views/paragraph.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeppelin-web/app/views/paragraph.html b/zeppelin-web/app/views/paragraph.html index a1f0a6dc937..106b711410c 100644 --- a/zeppelin-web/app/views/paragraph.html +++ b/zeppelin-web/app/views/paragraph.html @@ -259,7 +259,7 @@