Repository: ambari Updated Branches: refs/heads/trunk 974430a45 -> b314e8db0
AMBARI-11856. Disable delete button when applicable (Erik Bergenholtz via rlevas) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b314e8db Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b314e8db Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b314e8db Branch: refs/heads/trunk Commit: b314e8db0c0625e9ab9251757474789c1946ad0f Parents: 974430a Author: Erik Bergenholtz <[email protected]> Authored: Thu Jun 11 10:59:26 2015 -0400 Committer: Robert Levas <[email protected]> Committed: Thu Jun 11 10:59:26 2015 -0400 ---------------------------------------------------------------------- .../ui/app/components/confirmDelete.js | 12 +++++++--- .../resources/ui/app/components/mkdirInput.js | 7 +++++- .../ui/app/components/toggleContext.js | 1 + .../main/resources/ui/app/controllers/file.js | 13 ++++++++--- .../main/resources/ui/app/controllers/files.js | 16 +++++++++----- .../resources/ui/app/controllers/filesAlert.js | 11 ++++++++-- .../src/main/resources/ui/app/initialize.js | 1 + .../src/main/resources/ui/app/routes/file.js | 7 ++++++ .../ui/app/templates/components/contextMenu.hbs | 4 ++-- .../ui/app/templates/components/mkdirInput.hbs | 2 +- .../main/resources/ui/app/templates/error.hbs | 17 +++++---------- .../main/resources/ui/app/templates/files.hbs | 4 ++-- .../ui/app/templates/util/errorRow.hbs | 23 ++++++++------------ .../resources/ui/app/templates/util/fileRow.hbs | 4 +++- .../files/src/main/resources/ui/config.coffee | 2 +- 15 files changed, 77 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/components/confirmDelete.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/components/confirmDelete.js b/contrib/views/files/src/main/resources/ui/app/components/confirmDelete.js index 59394c7..9431840 100644 --- a/contrib/views/files/src/main/resources/ui/app/components/confirmDelete.js +++ b/contrib/views/files/src/main/resources/ui/app/components/confirmDelete.js @@ -33,7 +33,9 @@ App.DropdownWrapComponent = Em.Component.extend({ App.ConfirmDeleteComponent = Em.Component.extend({ layoutName:'components/deleteBulk', tagName:'li', + classNameBindings:['access::disabled'], deleteForever:false, + access:false, isRemoving:false, cancelRemoving:function () { this.set('isRemoving',false); @@ -45,15 +47,19 @@ App.ConfirmDeleteComponent = Em.Component.extend({ }, actions:{ ask:function () { - this.get('parentView').trigger('resetConfirm'); - this.set('isRemoving',true); + if (this.get('access')) { + this.get('parentView').trigger('resetConfirm'); + this.set('isRemoving',true); + } return false; }, cancel:function () { this.cancelRemoving(); }, confirm:function () { - this.sendAction('confirm',this.get('deleteForever')); + if (this.get('access')) { + this.sendAction('confirm',this.get('deleteForever')); + } } } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/components/mkdirInput.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/components/mkdirInput.js b/contrib/views/files/src/main/resources/ui/app/components/mkdirInput.js index c97f8d4..d98a429 100644 --- a/contrib/views/files/src/main/resources/ui/app/components/mkdirInput.js +++ b/contrib/views/files/src/main/resources/ui/app/components/mkdirInput.js @@ -41,5 +41,10 @@ App.MkdirInputComponent = Em.Component.extend({ cancel:function () { this.setProperties({'newDirName':'','isMkdir':false}); } - } + }, + focusOnInput: function () { + Em.run.next(this,function() { + this.$('.mkdir-input').focus(); + }); + }.observes('isMkdir'), }); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/components/toggleContext.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/components/toggleContext.js b/contrib/views/files/src/main/resources/ui/app/components/toggleContext.js index 31f1e27..74c62de 100644 --- a/contrib/views/files/src/main/resources/ui/app/components/toggleContext.js +++ b/contrib/views/files/src/main/resources/ui/app/components/toggleContext.js @@ -65,6 +65,7 @@ App.ToggleContextComponent = Em.Component.extend({ willClearRender:function () { var fileRow = this.$().parents('tr'); fileRow.off('click'); + fileRow.data('context').closemenu(); fileRow.data('context').destroy(); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/controllers/file.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/controllers/file.js b/contrib/views/files/src/main/resources/ui/app/controllers/file.js index ce11923..cf87041 100644 --- a/contrib/views/files/src/main/resources/ui/app/controllers/file.js +++ b/contrib/views/files/src/main/resources/ui/app/controllers/file.js @@ -19,6 +19,7 @@ var App = require('app'); App.FileController = Ember.ObjectController.extend({ + needs:['files'], actions:{ download:function (option) { if (this.get('content.readAccess')) { @@ -58,9 +59,13 @@ App.FileController = Ember.ObjectController.extend({ } }, deleteFile:function (deleteForever) { - this.store - .remove(this.get('content'),!deleteForever) - .then(null,Em.run.bind(this,this.deleteErrorCallback,this.get('content'))); + if (this.get('dirInfo.writeAccess')) { + this.store + .remove(this.get('content'),!deleteForever) + .then(null,Em.run.bind(this,this.deleteErrorCallback,this.get('content'))); + } else { + this.send('showAlert',{message:'Permission denied'}); + } } }, selected:false, @@ -88,6 +93,8 @@ App.FileController = Ember.ObjectController.extend({ this.sendAlert(error); }, + dirInfo: Em.computed.alias('controllers.files.content.meta'), + deleteErrorCallback:function (record,error) { this.get('parentController.model').pushRecord(record); this.send('showAlert',error); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/controllers/files.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/controllers/files.js b/contrib/views/files/src/main/resources/ui/app/controllers/files.js index f6432d1..74e70c0 100644 --- a/contrib/views/files/src/main/resources/ui/app/controllers/files.js +++ b/contrib/views/files/src/main/resources/ui/app/controllers/files.js @@ -74,12 +74,16 @@ App.FilesController = Ember.ArrayController.extend({ }, deleteFile:function (deleteForever) { - var self = this; - var selected = this.get('selectedFiles'); - var moveToTrash = !deleteForever; - selected.forEach(function (file) { - self.store.remove(file,moveToTrash).then(null,bind(self,self.deleteErrorCallback,file)); - }); + var self = this, + selected = this.get('selectedFiles'), + moveToTrash = !deleteForever; + if (this.get('content.meta.writeAccess')) { + selected.forEach(function (file) { + self.store.remove(file,moveToTrash).then(null,bind(self,self.deleteErrorCallback,file)); + }); + } else { + this.throwAlert({message:'Permission denied'}); + } }, download:function (option) { var files = this.get('selectedFiles').filterBy('readAccess',true); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/controllers/filesAlert.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/controllers/filesAlert.js b/contrib/views/files/src/main/resources/ui/app/controllers/filesAlert.js index 100c5b3..64221e3 100644 --- a/contrib/views/files/src/main/resources/ui/app/controllers/filesAlert.js +++ b/contrib/views/files/src/main/resources/ui/app/controllers/filesAlert.js @@ -19,7 +19,14 @@ App.FilesAlertController = App.ErrorController.extend({ content:null, output:function () { - var error = this.get('content'),output; - return (error instanceof Em.Error)?error:{status:error.status, message:error.statusText||error.message}; + var error = this.get('content'), + message = (error.responseJSON)?error.responseJSON.message:error.message, + output; + + if (message) { + message = message.split('\n').objectAt(0); + } + + return message; }.property('content') }); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/initialize.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/initialize.js b/contrib/views/files/src/main/resources/ui/app/initialize.js index 43300f4..fc6cbc7 100644 --- a/contrib/views/files/src/main/resources/ui/app/initialize.js +++ b/contrib/views/files/src/main/resources/ui/app/initialize.js @@ -78,6 +78,7 @@ require('components/toggleContext'); ///////////////////////////////// require('views/file'); +require('views/files'); require('views/filesAlert'); require('views/modalChmod'); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/routes/file.js ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/routes/file.js b/contrib/views/files/src/main/resources/ui/app/routes/file.js index e233ea9..ee6a45a 100644 --- a/contrib/views/files/src/main/resources/ui/app/routes/file.js +++ b/contrib/views/files/src/main/resources/ui/app/routes/file.js @@ -99,5 +99,12 @@ App.FilesRoute = Em.Route.extend({ }); }); } + }, + afterModel: function (model) { + this.store.all('file').forEach(function (file) { + if (!model.contains(file)) { + file.unloadRecord(); + } + }); } }); http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/components/contextMenu.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/components/contextMenu.hbs b/contrib/views/files/src/main/resources/ui/app/templates/components/contextMenu.hbs index 6758b48..83e8869 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/components/contextMenu.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/components/contextMenu.hbs @@ -34,8 +34,8 @@ <i class="fa fa-chevron-right pull-right fa-right"></i> </a> <ul class="dropdown-menu"> - {{confirm-delete confirm="removeFile" deleteForever=true }} - {{confirm-delete confirm="moveToTrash" deleteForever=false }} + {{confirm-delete confirm="removeFile" deleteForever=true access=target.dirInfo.writeAccess}} + {{confirm-delete confirm="moveToTrash" deleteForever=false access=target.dirInfo.writeAccess}} </ul> </li> </ul> http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/components/mkdirInput.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/components/mkdirInput.hbs b/contrib/views/files/src/main/resources/ui/app/templates/components/mkdirInput.hbs index 171b445..14176f9 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/components/mkdirInput.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/components/mkdirInput.hbs @@ -22,7 +22,7 @@ </button> {{else}} <div class="input-group input-group-sm pull-right mkdir-area"> - {{input class="form-control mkdir-input" valueBinding='newDirName' placeholder="Enter Directory Name"}} + {{input class="form-control mkdir-input" valueBinding='newDirName' placeholder="Enter Directory Name" enter='create'}} <div class="input-group-btn"> <button type="button" {{action 'cancel'}} {{bind-attr class=":btn :btn-danger :btn-sm :btn-mkdir-cancel"}} > <i class="fa fa-times"></i> Cancel http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/error.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/error.hbs b/contrib/views/files/src/main/resources/ui/app/templates/error.hbs index 577e523..202bb22 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/error.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/error.hbs @@ -17,21 +17,16 @@ }} <div class="container"> - <div class="alert alert-danger collapse-group"> - <strong>{{content.status}}</strong> {{publicMessage}} - </div> + <div class="alert alert-danger collapse-group"> + <strong>{{content.status}}</strong> {{publicMessage}} + </div> {{#if stackTrace}} <a href="#" {{action "toggleStackTrace" post}}> - {{#if isExpanded}} - <span class="glyphicon glyphicon-collapse-down"></span> Collapse Stack Trace - {{else}} - <span class="glyphicon glyphicon-expand"></span> Expand Stack Trace - {{/if}} + <i {{bind-attr class=":fa isExpanded:fa-toggle-down:fa-toggle-right"}}></i> + {{#if isExpanded}} Collapse Stack Trace {{else}} Expand Stack Trace {{/if}} </a> {{#if isExpanded}} - <pre class="prettyprint"> -{{stackTrace}} - </pre> + <pre class="prettyprint">{{stackTrace}}</pre> {{/if}} {{/if}} </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/files.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/files.hbs b/contrib/views/files/src/main/resources/ui/app/templates/files.hbs index 26ee096..c784db6 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/files.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/files.hbs @@ -110,8 +110,8 @@ <i class="fa fa-chevron-left fa-gr fa-fw"></i> Delete </a> <ul class="dropdown-menu left-submenu"> - {{confirm-delete confirm="deleteFile" deleteForever=true selector='bulkDropdown'}} - {{confirm-delete confirm="deleteFile" deleteForever=false selector='bulkDropdown'}} + {{confirm-delete confirm="deleteFile" deleteForever=true selector='bulkDropdown' access=content.meta.writeAccess}} + {{confirm-delete confirm="deleteFile" deleteForever=false selector='bulkDropdown' access=content.meta.writeAccess}} </ul> </li> </ul> http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/util/errorRow.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/util/errorRow.hbs b/contrib/views/files/src/main/resources/ui/app/templates/util/errorRow.hbs index 45264c8..5f0a03a 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/util/errorRow.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/util/errorRow.hbs @@ -18,20 +18,15 @@ <div> <button {{action 'removeAlert'}} type="button" class="close" aria-hidden="true">×</button> - <div class="text-center"><strong>{{content.status}} </strong> {{publicMessage}} - {{#if stackTrace}}<a href="#" {{action "toggleStackTrace" post}}> - {{#if isExpanded}} - <span class="glyphicon glyphicon-collapse-down"></span> Collapse Stack Trace - {{else}} - <span class="glyphicon glyphicon-expand"></span> Expand Stack Trace - {{/if}} + <div class="text-center"><strong>{{content.status}} </strong> {{output}} + {{#if stackTrace}} + <a href="#" {{action "toggleStackTrace" post}}> + <i {{bind-attr class=":fa isExpanded:fa-toggle-down:fa-toggle-right"}}></i> + {{#if isExpanded}} Collapse Stack Trace {{else}} Expand Stack Trace {{/if}} </a> - </div> - {{#if isExpanded}} - <pre class="prettyprint"> -{{publicMessage}} -{{stackTrace}} - </pre> + {{#if isExpanded}} + <pre class="prettyprint">{{stackTrace}}</pre> + {{/if}} {{/if}} - {{/if}} + </div> </div> http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/app/templates/util/fileRow.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/app/templates/util/fileRow.hbs b/contrib/views/files/src/main/resources/ui/app/templates/util/fileRow.hbs index 6ca3369..cffd0f4 100644 --- a/contrib/views/files/src/main/resources/ui/app/templates/util/fileRow.hbs +++ b/contrib/views/files/src/main/resources/ui/app/templates/util/fileRow.hbs @@ -67,7 +67,9 @@ <li> <a href="#" {{action 'moveFile' 'cut' this.content}} data-toggle="tooltip" data-placement="bottom" title="Move"><i class="fa fa-level-down fa-rotate-270 fa-fw fa-lg"></i></a> </li> - <li>{{popover-delete confirm="deleteFile"}}</li> + {{#if dirInfo.writeAccess}} + <li>{{popover-delete confirm="deleteFile"}}</li> + {{/if}} </ul> {{/unless}} </td> http://git-wip-us.apache.org/repos/asf/ambari/blob/b314e8db/contrib/views/files/src/main/resources/ui/config.coffee ---------------------------------------------------------------------- diff --git a/contrib/views/files/src/main/resources/ui/config.coffee b/contrib/views/files/src/main/resources/ui/config.coffee index e37c0f2..3dfa8f9 100644 --- a/contrib/views/files/src/main/resources/ui/config.coffee +++ b/contrib/views/files/src/main/resources/ui/config.coffee @@ -50,4 +50,4 @@ exports.config = overrides: development: paths: - public: '/usr/lib/ambari-server/web/views-debug/FILES/0.1.0/MyFiles/' + public: '/usr/lib/ambari-server/web/views-debug/FILES/1.0.0/MyFiles/'
