Display error if TFTP field empty

If either TFTP Server IP Address or File Name is empty for the
"Download image file from TFTP server" function, return and
display an error.

Tested: Verified I see this error if either field is empty.

Change-Id: I3da3353dad7cfb0f765d8a662412c3adb3fa4efd
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/app/common/styles/elements/errors.scss b/app/common/styles/elements/errors.scss
new file mode 100644
index 0000000..3076a3d
--- /dev/null
+++ b/app/common/styles/elements/errors.scss
@@ -0,0 +1,11 @@
+.error-msg  {
+  background: lighten($error-color, 20%);
+  padding: 1em;
+  text-align: center;
+  font-size: 1em;
+  border: 1px solid $error-color;
+  color: $black;
+  font-family: "Courier New", Helvetica, Arial, sans-serif;
+  font-weight: 700;
+  max-width: 325px;
+}
diff --git a/app/common/styles/elements/index.scss b/app/common/styles/elements/index.scss
index 757ff26..d431ef8 100644
--- a/app/common/styles/elements/index.scss
+++ b/app/common/styles/elements/index.scss
@@ -11,3 +11,4 @@
 @import "export";
 @import "modals";
 @import "quicklinks";
+@import "errors";
diff --git a/app/configuration/controllers/firmware-controller.html b/app/configuration/controllers/firmware-controller.html
index dc85606..c30b4d2 100644
--- a/app/configuration/controllers/firmware-controller.html
+++ b/app/configuration/controllers/firmware-controller.html
@@ -46,6 +46,7 @@
 					</div>
 				</div>
 				<div class="inline uploading" ng-show="downloading">Downloading in progress...</div>
+				<p class="download_error error-msg" ng-show="download_error_msg" role="alert">{{download_error_msg}}</p>
 			</fieldset>
 		</div>
 	</form>
diff --git a/app/configuration/controllers/firmware-controller.js b/app/configuration/controllers/firmware-controller.js
index 127a7c2..29d0412 100644
--- a/app/configuration/controllers/firmware-controller.js
+++ b/app/configuration/controllers/firmware-controller.js
@@ -49,6 +49,7 @@
                     $scope.file_empty = true;
                     $scope.uploading = false;
                     $scope.activate = { reboot: true };
+                    $scope.download_error_msg = "";
 
                     var pollActivationTimer = undefined;
 
@@ -156,6 +157,11 @@
                     }
 
                     $scope.download = function(){
+                        $scope.download_error_msg = "";
+                        if(!$scope.download_host || !$scope.download_filename){
+                            $scope.download_error_msg = "Field is required!";
+                            return false;
+                        }
                         $scope.downloading = true;
                         APIUtils.downloadImage($scope.download_host, $scope.download_filename).then(function(response){
                             var data = response.data;
diff --git a/app/configuration/styles/firmware.scss b/app/configuration/styles/firmware.scss
index d1b0114..1a39ad6 100644
--- a/app/configuration/styles/firmware.scss
+++ b/app/configuration/styles/firmware.scss
@@ -143,3 +143,10 @@
   padding-top: 2em;
   padding-left: 1em;
 }
+
+.download_error
+{
+  @include mediaQuery(medium) {
+    max-width: 35%;
+  }
+}