You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by ah...@apache.org on 2017/03/24 04:33:18 UTC

zeppelin git commit: [ZEPPELIN-2267] Improve Helium Enable / Disable Dialogs

Repository: zeppelin
Updated Branches:
  refs/heads/master 5d9083ed3 -> 3ac44b11e


[ZEPPELIN-2267] Improve Helium Enable / Disable Dialogs

### What is this PR for?

Improved Helium Enable / Disable Dialogs to

- include more detailed info for enable dialog
- include more concise info for disable dialog
- use dialog title as well just instead of message
- link to doc if `type === SPELL || type === VISUALIZATION`
- parse `description` and `license` as HTML

I attached screenshots for comparison.

### What type of PR is it?
[Improvement]

### Todos

 NONE

### What is the Jira issue?

[ZEPPELIN-2267](https://issues.apache.org/jira/browse/ZEPPELIN-2267)

### How should this be tested?

1. Test with local, online helium packages.
2. In case of local package modify description and license text to test HTML parsing like

```
  "description": "The Ultimate Line Chart for Apache Zeppelin using <a href src=\"https://www.amcharts.com\">amcharts</a>",

  "license": "<a href=\"https://www.amcharts.com/licenses/javascript-charts-free-license\">Amcharts License</a>"
```

### Screenshots (if appropriate)

#### Before: enable dialog

<img width="631" alt="enable_local" src="https://cloud.githubusercontent.com/assets/4968473/23984205/a45babf6-0a5b-11e7-934d-83d6ed31c5eb.png">

#### After: enable dialog

<img width="631" alt="after_enable_local" src="https://cloud.githubusercontent.com/assets/4968473/23984234/c98335ca-0a5b-11e7-9b72-810fda629635.png">

#### Before: disable dialog

<img width="632" alt="disable_local" src="https://cloud.githubusercontent.com/assets/4968473/23984232/c65ed642-0a5b-11e7-8f67-a4ce2c5378f8.png">

#### After: disable dialog

<img width="647" alt="after_disable" src="https://cloud.githubusercontent.com/assets/4968473/23984226/bb0fcfd0-0a5b-11e7-9afb-2326c2f6b778.png">

### Questions:
* Does the licenses files need update? - NO
* Is there breaking changes for older versions? - NO
* Does this needs documentation? - NO

Author: 1ambda <1a...@gmail.com>

Closes #2144 from 1ambda/ZEPPELIN-2267/improve-helium-dialog and squashes the following commits:

053abbe [1ambda] fix: Link current version doc
bc0ba52 [1ambda] fix: lint errors
7bb9614 [1ambda] feat: Improve helium disable dialog
cf9ee42 [1ambda] feat: Improve heloium enable dialog


Project: http://git-wip-us.apache.org/repos/asf/zeppelin/repo
Commit: http://git-wip-us.apache.org/repos/asf/zeppelin/commit/3ac44b11
Tree: http://git-wip-us.apache.org/repos/asf/zeppelin/tree/3ac44b11
Diff: http://git-wip-us.apache.org/repos/asf/zeppelin/diff/3ac44b11

Branch: refs/heads/master
Commit: 3ac44b11e0d5f499d8f44936c96bfa70e231c24e
Parents: 5d9083e
Author: 1ambda <1a...@gmail.com>
Authored: Wed Mar 22 21:13:23 2017 +0900
Committer: ahyoungryu <ah...@apache.org>
Committed: Fri Mar 24 13:33:13 2017 +0900

----------------------------------------------------------------------
 .../src/app/helium/helium.controller.js         | 60 +++++++++++++-------
 zeppelin-web/src/app/helium/helium.html         |  4 +-
 2 files changed, 41 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/3ac44b11/zeppelin-web/src/app/helium/helium.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/helium/helium.controller.js b/zeppelin-web/src/app/helium/helium.controller.js
index 1130075..0565ec1 100644
--- a/zeppelin-web/src/app/helium/helium.controller.js
+++ b/zeppelin-web/src/app/helium/helium.controller.js
@@ -149,37 +149,55 @@ export default function HeliumCtrl($scope, $rootScope, $sce,
     return license;
   }
 
-  $scope.enable = function(name, artifact, type, groupId) {
+  const getHeliumTypeText = function(type) {
+    if (type === HeliumType.VISUALIZATION) {
+      return `<a target="_blank" href="https://zeppelin.apache.org/docs/${$rootScope.zeppelinVersion}/development/writingzeppelinvisualization.html">${type}</a>`; // eslint-disable-line max-len
+    } else if (type === HeliumType.SPELL) {
+      return `<a target="_blank" href="https://zeppelin.apache.org/docs/${$rootScope.zeppelinVersion}/development/writingzeppelinspell.html">${type}</a>`; // eslint-disable-line max-len
+    } else {
+      return type;
+    }
+  }
+
+  $scope.enable = function(name, artifact, type, groupId, description) {
     var license = getLicense(name, artifact);
     var mavenArtifactInfoToHTML = groupId +':'+ artifact.split('@')[0] + ':' + artifact.split('@')[1];
     var zeppelinVersion = $rootScope.zeppelinVersion;
     var url = 'https://zeppelin.apache.org/docs/' + zeppelinVersion + '/manual/interpreterinstallation.html';
-    
+
     var confirm = ''
-    if (type === 'INTERPRETER') {
-    confirm = BootstrapDialog.show({
-      title: '',
-      message: '<p>Below command will download maven artifact ' +
-      '<code style="font-size: 11.5px; background-color: #f5f5f5; color: #0a0a0a">' +
+    if (type === HeliumType.INTERPRETER) {
+      confirm = BootstrapDialog.show({
+        title: '',
+        message: '<p>Below command will download maven artifact ' +
+        '<code style="font-size: 11.5px; background-color: #f5f5f5; color: #0a0a0a">' +
         mavenArtifactInfoToHTML + '</code>' +
-      ' and all of its transitive dependencies into interpreter/interpreter-name directory.<p>' +
-      '<div class="highlight"><pre><code class="text language-text" data-lang="text" style="font-size: 11.5px">' +
-      './bin/install-interpreter.sh --name "interpreter-name" --artifact ' +
+        ' and all of its transitive dependencies into interpreter/interpreter-name directory.<p>' +
+        '<div class="highlight"><pre><code class="text language-text" data-lang="text" style="font-size: 11.5px">' +
+        './bin/install-interpreter.sh --name "interpreter-name" --artifact ' +
         mavenArtifactInfoToHTML +' </code></pre>' +
-      '<p>After restart Zeppelin, create interpreter setting and bind it with your note. ' +
-      'For more detailed information, see <a target="_blank" href=' +
+        '<p>After restart Zeppelin, create interpreter setting and bind it with your note. ' +
+        'For more detailed information, see <a target="_blank" href=' +
         url + '>Interpreter Installation.</a></p>'
-    });
+      });
     } else {
       confirm = BootstrapDialog.confirm({
         closable: false,
         closeByBackdrop: false,
         closeByKeyboard: false,
-        title: '',
-        message: 'Do you want to enable ' + name + '?' +
-        '<div style="color:gray">' + artifact + '</div>' +
-        '<div style="border-top: 1px solid #efefef; margin-top: 10px; padding-top: 5px;">License</div>' +
-        '<div style="color:gray">' + license + '</div>',
+        title: '<div style="font-weight: 300;">Do you want to enable Helium Package?</div>',
+        message:
+          '<div style="font-size: 14px; margin-top: 5px;">Artifact</div>' +
+          `<div style="color:gray">${artifact}</div>` +
+          '<hr style="margin-top: 10px; margin-bottom: 10px;" />' +
+          '<div style="font-size: 14px; margin-bottom: 2px;">Type</div>' +
+          `<div style="color:gray">${getHeliumTypeText(type)}</div>` +
+          '<hr style="margin-top: 10px; margin-bottom: 10px;" />' +
+          '<div style="font-size: 14px;">Description</div>' +
+          `<div style="color:gray">${description}</div>` +
+          '<hr style="margin-top: 10px; margin-bottom: 10px;" />' +
+          '<div style="font-size: 14px;">License</div>' +
+          `<div style="color:gray">${license}</div>`,
         callback: function (result) {
           if (result) {
             confirm.$modalFooter.find('button').addClass('disabled');
@@ -203,13 +221,13 @@ export default function HeliumCtrl($scope, $rootScope, $sce,
     }
   };
 
-  $scope.disable = function(name) {
+  $scope.disable = function(name, artifact) {
     var confirm = BootstrapDialog.confirm({
       closable: false,
       closeByBackdrop: false,
       closeByKeyboard: false,
-      title: '',
-      message: 'Do you want to disable ' + name + '?',
+      title: '<div style="font-weight: 300;">Do you want to disable Helium Package?</div>',
+      message: artifact,
       callback: function(result) {
         if (result) {
           confirm.$modalFooter.find('button').addClass('disabled');

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/3ac44b11/zeppelin-web/src/app/helium/helium.html
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/helium/helium.html b/zeppelin-web/src/app/helium/helium.html
index 2310a92..aae3728 100644
--- a/zeppelin-web/src/app/helium/helium.html
+++ b/zeppelin-web/src/app/helium/helium.html
@@ -96,11 +96,11 @@ limitations under the License.
           <span class="heliumType">{{pkgSearchResult.pkg.type}}</span>
         </div>
         <div ng-show="!pkgSearchResult.enabled"
-             ng-click="enable(pkgSearchResult.pkg.name, pkgSearchResult.pkg.artifact, pkgSearchResult.pkg.type, pkgSearchResult.pkg.groupId)"
+             ng-click="enable(pkgSearchResult.pkg.name, pkgSearchResult.pkg.artifact, pkgSearchResult.pkg.type, pkgSearchResult.pkg.groupId, pkgSearchResult.pkg.description)"
              class="btn btn-success btn-xs"
              style="float:right">Enable</div>
         <div ng-show="pkgSearchResult.enabled"
-             ng-click="disable(pkgSearchResult.pkg.name)"
+             ng-click="disable(pkgSearchResult.pkg.name, pkgSearchResult.pkg.artifact)"
              ng-if="pkgSearchResult.pkg.type !== 'INTERPRETER'"
              class="btn btn-info btn-xs"
              style="float:right">Disable</div>