diff --git a/gateway/assets/script/bootstrap.js b/gateway/assets/script/bootstrap.js index 01b002a23d47e4ce1ce8754bef4341e745b1f234..57274dea750620649f08b0fc83f40c4e07e04fdb 100644 --- a/gateway/assets/script/bootstrap.js +++ b/gateway/assets/script/bootstrap.js @@ -2,7 +2,7 @@ // Copyright (c) Alex Ellis 2017. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. -var app = angular.module('faasGateway', ['ngMaterial', 'faasGateway.funcStore']); +var app = angular.module('faasGateway', ['ngMaterial', 'ngMessages', 'faasGateway.funcStore']); app.controller("home", ['$scope', '$log', '$http', '$location', '$interval', '$filter', '$mdDialog', '$mdToast', '$mdSidenav', function($scope, $log, $http, $location, $interval, $filter, $mdDialog, $mdToast, $mdSidenav) { diff --git a/gateway/assets/templates/newfunction.html b/gateway/assets/templates/newfunction.html index 659c154f8fc27b81ae02ad62f8451f7a481da839..ec9dead4be0157bb53fa55382e136792884606ef 100644 --- a/gateway/assets/templates/newfunction.html +++ b/gateway/assets/templates/newfunction.html @@ -28,13 +28,20 @@ <md-tooltip md-direction="bottom">Docker image name and tag to use for function i.e. functions/alpine:latest</md-tooltip> <label>Docker image:</label> <input name="dockerImage" ng-model="item.image" required md-maxlength="200" minlength="2"> + <div ng-messages="userForm.dockerImage.$error"> + <div ng-message="required">Docker image is required.</div> + </div> </md-input-container> </div> <div layout-gt-xs="row"> <md-input-container class="md-block" flex-gt-sm> <md-tooltip md-direction="bottom">Name of the function - must be a valid DNS entry</md-tooltip> <label>Function name:</label> - <input name="serviceName" ng-model="item.service" required md-maxlength="200" minlength="2"> + <input name="serviceName" ng-model="item.service" required md-maxlength="200" minlength="2" ng-pattern="/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/" /> + <div ng-messages="userForm.serviceName.$error"> + <div ng-message="required">Function name is required.</div> + <div ng-message="pattern">Function name can only contain a-z, 0-9 and dashes</div> + </div> </md-input-container> </div> <div layout-gt-xs="row"> @@ -64,7 +71,7 @@ <md-button ng-click="closeDialog()" class="md-secondary"> Close Dialog </md-button> - <md-button ng-click="createFunc()" class="md-primary"> + <md-button ng-disabled="userForm.$invalid" ng-click="createFunc()" class="md-primary"> Deploy </md-button> </md-dialog-actions>