Skip to content
Snippets Groups Projects
index.html 8.06 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alex Ellis's avatar
    Alex Ellis committed
    <html ng-app="faasGateway">
    
    
      <head>
        <link href="https://fonts.googleapis.com/css?family=Rationale|Roboto+Mono|Roboto:300,400,400i,500,700" rel="stylesheet">
    
    Alex Ellis's avatar
    Alex Ellis committed
        <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
    
        <!-- Angular Material CSS now available via Google CDN; version 1.0.7 used here -->
        <link rel="stylesheet" href="style/angular-material.min.css">
    
        <link rel="stylesheet" href="style/bootstrap.css">
    
    
    Alex Ellis's avatar
    Alex Ellis committed
    </head>
    
    <body ng-controller="home">
    
    Alex Ellis's avatar
    Alex Ellis committed
        <div layout="column" ng-cloak>
    
    Alex Ellis's avatar
    Alex Ellis committed
    
            <section id="popupContainer" layout="row" flex>
                <md-sidenav class="md-sidenav-left" md-component-id="left" md-is-locked-open="$mdMedia('gt-sm')" md-whiteframe="4" layout="column">
    
                    <md-toolbar class="md-theme-indigo">
    
                        <h1 class="md-toolbar-tools"><img src="icon.png" alt="OpenFaaS Icon" width="60px" height="60px" class="md-avatar"/>&nbsp; OpenFaaS Portal</h1>
    
    Alex Ellis's avatar
    Alex Ellis committed
                    </md-toolbar>
    
                    <md-content layout-padding>
    
    Alex's avatar
    Alex committed
                        <md-button ng-click="newFunction()" ng-disabled="isFunctionBeingCreated" class="md-primary">Create New Function</md-button>
    
    Alex Ellis's avatar
    Alex Ellis committed
    
                        <md-list>
                            <md-list-item ng-switch class="md-3-line" ng-click="showFunction(function)" ng-repeat="function in functions | orderBy: '-invocationCount'" ng-class="function.name == selectedFunction.name ? 'selected' : false">
                                <md-icon ng-switch-when="true" style="color: blue" md-svg-icon="person"></md-icon>
                                <md-icon ng-switch-when="false" md-svg-icon="person-outline"></md-icon>
                                <p>{{function.name}}</p>
                                <md-divider ng-if="!$last"></md-divider>
                            </md-list-item>
                        </md-list>
                    </md-content>
                </md-sidenav>
    
                <md-content flex layout-padding ng-if="!selectedFunction" ng-show="functions.length">
                    <div layout="column" layout-align="top center">
                        <p>Select a function.</p>
                    </div>
                    <div flex></div>
                </md-content>
    
                <md-content flex layout-padding ng-if="!functions.length">
                    <div layout="column" layout-align="top center">
                        <p>No functions found in FaaS.</p>
                    </div>
                    <div flex></div>
                </md-content>
    
                <md-content flex layout="column" ng-repeat="function in functions" ng-show="function.name == selectedFunction.name">
    
                    <md-card md-theme="default" md-theme-watch>
                        <md-card-title>
                            <md-card-title-text>
    
    
                                <div layout="row" layout-align="space-between">
                                    <span class="md-headline">
                                        {{function.name}}
                                    </span>
    
                                    <md-button ng-click="deleteFunction()" class="md-icon-button" aria-label="Delete">
                                      <md-tooltip md-direction="left">Delete</md-tooltip>
                                      <md-icon md-svg-icon="img/icons/ic_delete_black.svg"></md-icon>
                                    </md-button>
    
                                </div>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-icon-float md-block">
                                        <label>Replicas</label>
                                        <input ng-model="function.replicas" type="text" readonly="readonly">
                                    </md-input-container>
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Invocation count</label>
                                        <input ng-model="function.invocationCount" type="text" readonly="readonly">
                                    </md-input-container>
                                </div>
    
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Image</label>
                                        <input ng-model="function.image" type="text" readonly="readonly">
                                    </md-input-container>
                                </div>
    
                                <div layout-gt-sm="row" ng-show="function.envProcess">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Watchdog process</label>
                                        <input ng-model="function.envProcess" type="text" readonly="readonly">
                                    </md-input-container>
                                </div>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                <md-card-title-text>
                        </md-card-title>
                    </md-card>
                    <md-card>
                        <md-card-title>
                            <md-card-title-text>
    
                                <span class="md-headline">
    
    Alex Ellis's avatar
    Alex Ellis committed
                      Invoke function
                    </span>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <button ng-click="fireRequest()" class="md-raised md-button md-ink-ripple" type="button">
    
    Alex Ellis's avatar
    Alex Ellis committed
                          <span class="ng-scope">Invoke</span><div class="md-ripple-container"></div>
                        </button>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                    </md-input-container>
                                </div>
    
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <md-radio-group ng-model="invocation.contentType">
                                            <md-radio-button value="text" class="md-primary"> Text </md-radio-button>
                                            <md-radio-button value="json"> JSON </md-radio-button>
                                        </md-radio-group>
                                    </md-input-container>
                                </div>
    
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Request body</label>
    
                                        <textarea ng-model="invocation.request" class="monospace" cols="80" rows="4"></textarea>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                    </md-input-container>
                                </div>
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Response status</label>
                                        <input ng-model="invocationStatus" type="text" readonly="readonly">
                                    </md-input-container>
                                </div>
                                <div layout-gt-sm="row">
                                    <md-input-container class="md-block" flex-gt-sm>
                                        <label>Response body</label>
    
                                        <textarea ng-model="invocationResponse" class="monospace" cols="80" rows=10></textarea>
    
    Alex Ellis's avatar
    Alex Ellis committed
                                    </md-input-container>
                                </div>
                                <md-card-title-text>
                        </md-card-title>
                    </md-card>
                </md-content>
            </section>
        </div>
    
    
    
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
        <script src="script/bootstrap.js"></script>
    
    Alex Ellis's avatar
    Alex Ellis committed
    </body>
    
    Alex Ellis's avatar
    Alex Ellis committed
    </html>