Repository: incubator-zeppelin Updated Branches: refs/heads/master ccba2ec2d -> d90e3805b
Don't set Dirty state if text is same as last save Previous Behavior  With this PR  Author: Damien CORNEAU <[email protected]> Closes #505 from corneadoug/improve/saveOnDirty and squashes the following commits: 1c72502 [Damien CORNEAU] Fix run and update cases 95ea650 [Damien CORNEAU] Check that dirtyText is different from originalText before saving Project: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/commit/d90e3805 Tree: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/tree/d90e3805 Diff: http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/diff/d90e3805 Branch: refs/heads/master Commit: d90e3805bb2d2434bc08672a6227c0afc927f6ae Parents: ccba2ec Author: Damien CORNEAU <[email protected]> Authored: Thu Dec 3 15:55:02 2015 +0900 Committer: Damien CORNEAU <[email protected]> Committed: Fri Dec 4 18:01:37 2015 +0900 ---------------------------------------------------------------------- .../src/app/notebook/paragraph/paragraph.controller.js | 9 +++++++-- zeppelin-web/src/app/notebook/paragraph/paragraph.html | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/d90e3805/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js ---------------------------------------------------------------------- diff --git a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js index a4e7c17..533b9d9 100644 --- a/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js +++ b/zeppelin-web/src/app/notebook/paragraph/paragraph.controller.js @@ -19,6 +19,7 @@ angular.module('zeppelinWebApp') $timeout, $compile, websocketMsgSrv) { $scope.paragraph = null; + $scope.originalText = ''; $scope.editor = null; var editorModes = { @@ -31,6 +32,7 @@ angular.module('zeppelinWebApp') // Controller init $scope.init = function(newParagraph) { $scope.paragraph = newParagraph; + $scope.originalText = angular.copy(newParagraph.text); $scope.chart = {}; $scope.colWidthOption = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]; $scope.showTitleEditor = false; @@ -181,11 +183,13 @@ angular.module('zeppelinWebApp') if ($scope.dirtyText === data.paragraph.text ) { // when local update is the same from remote, clear local update $scope.paragraph.text = data.paragraph.text; $scope.dirtyText = undefined; + $scope.originalText = angular.copy(data.paragraph.text); } else { // if there're local update, keep it. $scope.paragraph.text = $scope.dirtyText; } } else { $scope.paragraph.text = data.paragraph.text; + $scope.originalText = angular.copy(data.paragraph.text); } } @@ -261,14 +265,16 @@ angular.module('zeppelinWebApp') $scope.runParagraph = function(data) { websocketMsgSrv.runParagraph($scope.paragraph.id, $scope.paragraph.title, data, $scope.paragraph.config, $scope.paragraph.settings.params); + $scope.originalText = angular.copy(data); $scope.dirtyText = undefined; }; $scope.saveParagraph = function(){ - if($scope.dirtyText === undefined){ + if($scope.dirtyText === undefined || $scope.dirtyText === $scope.originalText){ return; } commitParagraph($scope.paragraph.title, $scope.dirtyText, $scope.paragraph.config, $scope.paragraph.settings.params); + $scope.originalText = angular.copy($scope.dirtyText); $scope.dirtyText = undefined; }; @@ -459,7 +465,6 @@ angular.module('zeppelinWebApp') }; $scope.aceChanged = function() { - $scope.dirtyText = $scope.editor.getSession().getValue(); $scope.startSaveTimer(); http://git-wip-us.apache.org/repos/asf/incubator-zeppelin/blob/d90e3805/zeppelin-web/src/app/notebook/paragraph/paragraph.html ---------------------------------------------------------------------- diff --git a/zeppelin-web/src/app/notebook/paragraph/paragraph.html b/zeppelin-web/src/app/notebook/paragraph/paragraph.html index 0edf43e..02c9a38 100644 --- a/zeppelin-web/src/app/notebook/paragraph/paragraph.html +++ b/zeppelin-web/src/app/notebook/paragraph/paragraph.html @@ -41,7 +41,8 @@ limitations under the License. require : ['ace/ext/language_tools'] }" ng-model="paragraph.text" - ng-class="{'disable': paragraph.status == 'RUNNING' || paragraph.status == 'PENDING', 'paragraph-text--dirty' : dirtyText !== undefined}"> + ng-class="{'disable': paragraph.status == 'RUNNING' || paragraph.status == 'PENDING', + 'paragraph-text--dirty' : dirtyText !== originalText && dirtyText !== undefined}"> </div> </div>
