You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by mo...@apache.org on 2017/04/28 09:58:28 UTC

zeppelin git commit: [ZEPPELIN-2442] button to create note into folder (navbar)

Repository: zeppelin
Updated Branches:
  refs/heads/master 5c3291c71 -> a593a8b35


[ZEPPELIN-2442] button to create note into folder (navbar)

### What is this PR for?
Added button to create new note into folder (navbar)

### What type of PR is it?
Feature

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2442

### Screenshots (if appropriate)
![peek 2017-04-21 15-48](https://cloud.githubusercontent.com/assets/25951039/25274624/5c4707be-26aa-11e7-8aa5-2c895fc1efb8.gif)

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

Author: Tinkoff DWH <ti...@gmail.com>

Closes #2275 from tinkoff-dwh/ZEPPELIN-2442 and squashes the following commits:

715520b [Tinkoff DWH] ZEPPELIN-2442 added tooltip
2ae5bdc [Tinkoff DWH] Merge remote-tracking branch 'origin/master' into ZEPPELIN-2442
39846f4 [Tinkoff DWH] [ZEPPELIN-2442] button to create note into folder (navbar)


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

Branch: refs/heads/master
Commit: a593a8b3506efcb60063e1fcee189fcef9e61d6f
Parents: 5c3291c
Author: Tinkoff DWH <ti...@gmail.com>
Authored: Tue Apr 25 16:41:01 2017 +0500
Committer: Lee moon soo <mo...@apache.org>
Committed: Fri Apr 28 02:58:25 2017 -0700

----------------------------------------------------------------------
 zeppelin-web/src/app/home/home.css              |  3 ++-
 .../src/app/home/notebook-template.html         | 14 +++++-----
 .../expandCollapse/expandCollapse.directive.js  |  9 +++++++
 .../components/navbar/navbar-noteList-elem.html | 27 ++++++++++++--------
 .../src/components/navbar/navbar.controller.js  | 12 +++++++++
 zeppelin-web/src/components/navbar/navbar.html  |  8 +++---
 6 files changed, 50 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/app/home/home.css
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/home/home.css b/zeppelin-web/src/app/home/home.css
index c670f6b..ce30e66 100644
--- a/zeppelin-web/src/app/home/home.css
+++ b/zeppelin-web/src/app/home/home.css
@@ -133,6 +133,7 @@ a.navbar-brand:hover {
 .dropdown-menu > .scrollbar-container > li > a,
 .dropdown-menu .notebook-list-item {
   display: block;
+  text-decoration: none;
   padding: 1px 10px;
   clear: both;
   font-weight: normal;
@@ -294,7 +295,7 @@ a.navbar-brand:hover {
 #notebook-list {
   position: relative;
   overflow: hidden;
-  display: inline;
+  display: inline-block;
 }
 
 @media (min-width: 768px) {

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/app/home/notebook-template.html
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/app/home/notebook-template.html b/zeppelin-web/src/app/home/notebook-template.html
index cf665bb..0456a39 100644
--- a/zeppelin-web/src/app/home/notebook-template.html
+++ b/zeppelin-web/src/app/home/notebook-template.html
@@ -58,14 +58,12 @@ limitations under the License.
       <a style="text-decoration: none; cursor: pointer;" ng-click="toggleFolderNode(node)">
         <i style="font-size: 10px;" ng-class="node.hidden ? 'icon-folder' : 'icon-folder-alt'"></i> {{getNoteName(node)}}
       </a>
-      <a ng-if="!node.isTrash" style="text-decoration: none;">
-        <a href="" data-toggle="modal" data-target="#noteNameModal" style="text-decoration: none;"
-           ng-controller="NotenameCtrl as notenamectrl" ng-click="notenamectrl.getInterpreterSettings()" data-path="{{node.id}}">
-          <i style="margin-left: 10px;"
-             class="fa fa-plus notebook-list-btn" ng-show="showFolderButton"
-             tooltip-placement="bottom" uib-tooltip="Create new note">
-          </i>
-        </a>
+      <a ng-if="!node.isTrash" href="" data-toggle="modal" data-target="#noteNameModal" style="text-decoration: none;"
+         ng-controller="NotenameCtrl as notenamectrl" ng-click="notenamectrl.getInterpreterSettings()" data-path="{{node.id}}">
+        <i style="margin-left: 10px;"
+           class="fa fa-plus notebook-list-btn" ng-show="showFolderButton"
+           tooltip-placement="bottom" uib-tooltip="Create new note">
+        </i>
       </a>
       <a ng-if="!node.isTrash" style="text-decoration: none;">
         <i class="fa fa-pencil notebook-list-btn" ng-show="showFolderButton" ng-click="renameFolder(node)"

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/components/expandCollapse/expandCollapse.directive.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/components/expandCollapse/expandCollapse.directive.js b/zeppelin-web/src/components/expandCollapse/expandCollapse.directive.js
index 9e28098..5d51818 100644
--- a/zeppelin-web/src/components/expandCollapse/expandCollapse.directive.js
+++ b/zeppelin-web/src/components/expandCollapse/expandCollapse.directive.js
@@ -30,6 +30,15 @@ function expandCollapse () {
             }
           })
         }
+
+        let target = event.target
+
+        // add note
+        if (target.classList !== undefined && target.classList.contains('fa-plus') &&
+          target.tagName.toLowerCase() === 'i') {
+          return
+        }
+
         event.stopPropagation()
       })
     }

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/components/navbar/navbar-noteList-elem.html
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/components/navbar/navbar-noteList-elem.html b/zeppelin-web/src/components/navbar/navbar-noteList-elem.html
index b63efd8..d5fb4a1 100644
--- a/zeppelin-web/src/components/navbar/navbar-noteList-elem.html
+++ b/zeppelin-web/src/components/navbar/navbar-noteList-elem.html
@@ -12,20 +12,27 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
-<a class="notebook-list-item" ng-if="navbar.isFilterNote(note) && !note.children" href="#/notebook/{{note.id}}">
-  <i style="font-size: 10px; margin-right: 5px;" ng-class="query.q && note.isTrash ? 'fa fa-trash-o' : 'icon-doc'" ></i>
-  <span>{{noteName(note)}}</span>
+<a class="notebook-list-item" ng-if="navbar.isFilterNote(node) && !node.children" href="#/notebook/{{node.id}}">
+  <i style="font-size: 10px; margin-right: 5px;" ng-class="query.q && node.isTrash ? 'fa fa-trash-o' : 'icon-doc'" ></i>
+  <span>{{noteName(node)}}</span>
 </a>
 
-<li ng-if="note.children" ng-click="$event.stopPropagation()">
+<li ng-if="node.children">
   <expand-collapse>
-      <div>
+      <div ng-mouseenter="showFolderButton=true" ng-mouseleave="showFolderButton=false">
         <a class="notebook-list-item" href="javascript:void(0)">
-          <div ng-if="note.id !== navbar.TRASH_FOLDER_ID">
+          <div ng-if="node.id !== navbar.TRASH_FOLDER_ID">
             <i style="font-size: 10px; margin-right: 5px;"  class="icon-folder"></i>
-            <span>{{noteName(note)}}</span>
+            <span>{{noteName(node)}}</span>
+            <i data-toggle="modal" data-target="#noteNameModal" ng-controller="NotenameCtrl as notenamectrl"
+              ng-click="notenamectrl.getInterpreterSettings()" data-path="{{node.id}}"
+              style="font-size: 12px; margin-left: 5px; margin-right: 5px;"
+              ng-show="showFolderButton" class="fa fa-plus"
+              uib-tooltip="Create new note"
+              tooltip-placement="{{calculateTooltipPlacement(node)}}">
+            </i>
           </div>
-          <div ng-if="note.id === navbar.TRASH_FOLDER_ID">
+          <div ng-if="node.id === navbar.TRASH_FOLDER_ID">
             <i style="font-size: 12px; margin-right: 5px;" class="fa fa-trash-o"></i>
             <span>Trash</span>
           </div>
@@ -33,8 +40,8 @@ limitations under the License.
       </div>
       <div class="expandable" style="color: black;">
         <ul>
-          <li ng-repeat="note in note.children | orderBy:node:false:navbar.arrayOrderingSrv.noteComparator track by $index"
-              ng-class="{'active' : navbar.isActive(note.id)}"
+          <li ng-repeat="node in node.children | orderBy:node:false:navbar.arrayOrderingSrv.noteComparator track by $index"
+              ng-class="{'active' : navbar.isActive(node.id)}"
               ng-include="'components/navbar/navbar-noteList-elem.html'">
           </li>
         </ul>

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/components/navbar/navbar.controller.js
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/components/navbar/navbar.controller.js b/zeppelin-web/src/components/navbar/navbar.controller.js
index a2ca20a..8bf3d19 100644
--- a/zeppelin-web/src/components/navbar/navbar.controller.js
+++ b/zeppelin-web/src/components/navbar/navbar.controller.js
@@ -150,4 +150,16 @@ function NavCtrl ($scope, $rootScope, $http, $routeParams, $location,
       })
     })
   }
+
+  $scope.calculateTooltipPlacement = function (note) {
+    if (note !== undefined && note.name !== undefined) {
+      let length = note.name.length
+      if (length < 2) {
+        return 'top-left'
+      } else if (length > 7) {
+        return 'top-right'
+      }
+    }
+    return 'top'
+  }
 }

http://git-wip-us.apache.org/repos/asf/zeppelin/blob/a593a8b3/zeppelin-web/src/components/navbar/navbar.html
----------------------------------------------------------------------
diff --git a/zeppelin-web/src/components/navbar/navbar.html b/zeppelin-web/src/components/navbar/navbar.html
index dec48a6..7d33c02 100644
--- a/zeppelin-web/src/components/navbar/navbar.html
+++ b/zeppelin-web/src/components/navbar/navbar.html
@@ -35,13 +35,13 @@ limitations under the License.
             <div id="notebook-list" class="scrollbar-container" ng-if="isDrawNavbarNoteList">
               <li class="filter-names" ng-include="'components/filterNoteNames/filter-note-names.html'"></li>
               <div ng-if="!query.q || query.q === ''">
-              <li ng-repeat="note in navbar.notes.root.children | orderBy:node:false:navbar.arrayOrderingSrv.noteComparator track by note.id"
-                  ng-class="{'active' : navbar.isActive(note.id)}" ng-include="'components/navbar/navbar-noteList-elem.html'">
+              <li ng-repeat="node in navbar.notes.root.children | orderBy:node:false:navbar.arrayOrderingSrv.noteComparator track by node.id"
+                  ng-class="{'active' : navbar.isActive(node.id)}" ng-include="'components/navbar/navbar-noteList-elem.html'">
               </li>
             </div>
             <div ng-if="query.q">
-              <li ng-repeat="note in navbar.notes.flatList | filter : query.q | orderBy:navbar.arrayOrderingSrv.noteFlatListOrdering track by note.id"
-                  ng-class="{'active' : navbar.isActive(note.id)}" ng-include="'components/navbar/navbar-noteList-elem.html'">
+              <li ng-repeat="node in navbar.notes.flatList | filter : query.q | orderBy:navbar.arrayOrderingSrv.noteFlatListOrdering track by node.id"
+                  ng-class="{'active' : navbar.isActive(node.id)}" ng-include="'components/navbar/navbar-noteList-elem.html'">
               </li>
             </div>
             </div>