Repository: incubator-zeppelin Updated Branches: refs/heads/master 08b20e16a -> 6e3512085
Update default notebook generateName function for create note dialog ### What is this PR for? The current default name for a notebook in create dialog is random, which is difficult to remember. Instead of randomly generating names it's useful to have a prefix "Untitled Note " + seq number. eg: Untitled Note 1, Untitled Note 2 etc. ### What type of PR is it? Improvement ### How should this be tested? Create note with default names populated in the field and check if the naming sequence is correct. When there are no notes with "Untitled Note <num>" the default name should be "Untitled Note 1", otherwise it should be max num + 1. ### Screenshots Before <img width="659" alt="before" src="https://cloud.githubusercontent.com/assets/2031306/12294473/c63d823a-ba20-11e5-8e7d-6d9df098ab05.png"> <hr> <img width="632" alt="after1" src="https://cloud.githubusercontent.com/assets/2031306/12294476/cff636dc-ba20-11e5-82a1-dab7ade0fc7c.png"> <img width="637" alt="after2" src="https://cloud.githubusercontent.com/assets/2031306/12294478/d3c5232c-ba20-11e5-8265-69ce41a1370b.png"> Author: Renjith Kamath <[email protected]> Closes #633 from r-kamath/noteNameUpdate and squashes the following commits: 06be629 [Renjith Kamath] Merge branch 'master' of https://github.com/apache/incubator-zeppelin into noteNameUpdate b6c1f31 [Renjith Kamath] review updates 5408f2b [Renjith Kamath] review update regex 18ea083 [Renjith Kamath] Merge branch 'master' of https://github.com/apache/incubator-zeppelin into noteNameUpdate 39fe8b6 [Renjith Kamath] Update the logic to generate default notebook name Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/6e351208 Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/6e351208 Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/6e351208 Branch: refs/heads/master Commit: 6e351208518aa75247190d7e09e2cf8d835b4911 Parents: 08b20e1 Author: Renjith Kamath <[email protected]> Authored: Wed Jan 20 16:27:14 2016 +0530 Committer: Lee moon soo <[email protected]> Committed: Sat Feb 6 15:25:18 2016 +0900 ---------------------------------------------------------------------- .../noteName-create/note-name-dialog.html | 14 ++++----- .../noteName-create/notename.controller.js | 31 +++++++++++--------- 2 files changed, 22 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/6e351208/zeppelin-web/src/components/noteName-create/note-name-dialog.html ---------------------------------------------------------------------- diff --git a/zeppelin-web/src/components/noteName-create/note-name-dialog.html b/zeppelin-web/src/components/noteName-create/note-name-dialog.html index 74149bc..8c0cf91 100644 --- a/zeppelin-web/src/components/noteName-create/note-name-dialog.html +++ b/zeppelin-web/src/components/noteName-create/note-name-dialog.html @@ -31,15 +31,11 @@ limitations under the License. </div> <div class="modal-footer"> <button type="button" id="createNoteButton" - class="btn btn-default" - ng-show="!notenamectrl.clone" - data-dismiss="modal" ng-click="notenamectrl.createNote()">Create - Note</button> - <button type="button" id="createNoteButton" - class="btn btn-default" - ng-show="notenamectrl.clone" - data-dismiss="modal" ng-click="notenamectrl.createNote()">Clone - Note</button> + class="btn btn-default" + data-dismiss="modal" ng-click="notenamectrl.createNote()"> + <span ng-show="!notenamectrl.clone">Create Note</span> + <span ng-show="notenamectrl.clone">Clone Note</span> + </button> </div> </div> </div> http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/6e351208/zeppelin-web/src/components/noteName-create/notename.controller.js ---------------------------------------------------------------------- diff --git a/zeppelin-web/src/components/noteName-create/notename.controller.js b/zeppelin-web/src/components/noteName-create/notename.controller.js index 4982e12..5c93053 100644 --- a/zeppelin-web/src/components/noteName-create/notename.controller.js +++ b/zeppelin-web/src/components/noteName-create/notename.controller.js @@ -14,9 +14,11 @@ 'use strict'; -angular.module('zeppelinWebApp').controller('NotenameCtrl', function($scope, $rootScope, $routeParams, websocketMsgSrv, - $location) { +angular.module('zeppelinWebApp').controller('NotenameCtrl', function($scope, notebookListDataFactory, + $rootScope, $routeParams, websocketMsgSrv) { var vm = this; + vm.clone = false; + vm.notes = notebookListDataFactory; vm.websocketMsgSrv = websocketMsgSrv; $scope.note = {}; @@ -35,22 +37,23 @@ angular.module('zeppelinWebApp').controller('NotenameCtrl', function($scope, $ro }; vm.preVisible = function(clone) { - var generatedName = vm.generateName(); - $scope.note.notename = 'Note ' + generatedName; + $scope.note.notename = vm.newNoteName(); vm.clone = clone; $scope.$apply(); }; - vm.generateName = function () { - var DICTIONARY = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R', - 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ]; - var randIndex, name = ''; - for (var i = 0; i < 9; i++) { - randIndex = Math.floor(Math.random() * 32); - name += DICTIONARY[randIndex]; - } - return name; + vm.newNoteName = function () { + var newCount = 1; + angular.forEach(vm.notes.list, function (noteName) { + noteName = noteName.name; + if (noteName.match(/^Untitled Note [0-9]*$/)) { + var lastCount = noteName.substr(14) * 1; + if (newCount <= lastCount) { + newCount = lastCount + 1; + } + } + }); + return 'Untitled Note ' + newCount; }; });
