diff --git a/app/common/directives/click-outside.js b/app/common/directives/click-outside.js
index ffe1464..35248ee 100644
--- a/app/common/directives/click-outside.js
+++ b/app/common/directives/click-outside.js
@@ -1,24 +1,26 @@
 window.angular && (function(angular) {
   'use strict';
 
-  angular.module('app.common.directives')
-      .directive('clickOutside', function($document) {
-        return {
-          restrict: 'A', scope: {clickOutside: '&'},
-              link: function(scope, el, attr) {
-                function clickEvent(e) {
-                  if (el !== e.target && !el[0].contains(e.target)) {
-                    scope.$apply(function() {
-                      scope.$eval(scope.clickOutside);
-                    });
-                  }
+  angular.module('app.common.directives').directive('clickOutside', [
+    '$document',
+    function($document) {
+      return {
+        restrict: 'A', scope: {clickOutside: '&'},
+            link: function(scope, el, attr) {
+              function clickEvent(e) {
+                if (el !== e.target && !el[0].contains(e.target)) {
+                  scope.$apply(function() {
+                    scope.$eval(scope.clickOutside);
+                  });
                 }
-                $document.bind('click', clickEvent);
-
-                scope.$on('$destroy', function() {
-                  $document.unbind('click', clickEvent);
-                });
               }
-        }
-      });
+              $document.bind('click', clickEvent);
+
+              scope.$on('$destroy', function() {
+                $document.unbind('click', clickEvent);
+              });
+            }
+      }
+    }
+  ]);
 })(window.angular);
\ No newline at end of file
diff --git a/app/configuration/controllers/firmware-controller.html b/app/configuration/controllers/firmware-controller.html
index 1ec79fd..6863ae5 100644
--- a/app/configuration/controllers/firmware-controller.html
+++ b/app/configuration/controllers/firmware-controller.html
@@ -21,7 +21,7 @@
       <h3>Upload image file from workstation</h3>
       <p>Select the image file saved on the workstation storage medium to upload to the server BMC.</p>
       <label for="file-upload" class="inline firmware__upload-chooser">
-        <input id="file-upload" type="file" file="file" class="hide" onchange="angular.element(this).scope().fileNameChanged()"/>
+        <input id="file-upload" type="file" file="file" class="hide"/>
         <span class="button btn-secondary inline">Choose a file</span>
         <span class="inline firmware__upload-file-name"><span ng-if="!file">No file chosen</span><span ng-if="file.name !== undefined">{{file.name}}</span></span>
       </label>
diff --git a/app/configuration/controllers/firmware-controller.js b/app/configuration/controllers/firmware-controller.js
index 9a811c3..da4dc1c 100644
--- a/app/configuration/controllers/firmware-controller.js
+++ b/app/configuration/controllers/firmware-controller.js
@@ -312,9 +312,6 @@
         });
         $scope.confirm_delete = false;
       };
-      $scope.fileNameChanged = function() {
-        $scope.file_empty = false;
-      };
 
       $scope.filters = {bmc: {imageType: 'BMC'}, host: {imageType: 'Host'}};
 
