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">&times;</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/'

Reply via email to