mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 00:36:46 +00:00
145 lines
7.6 KiB
HTML
145 lines
7.6 KiB
HTML
<html ng-app="faasGateway">
|
|
|
|
<head>
|
|
<link href="https://fonts.googleapis.com/css?family=Rationale|Roboto+Mono|Roboto:300,400,400i,500,700" rel="stylesheet">
|
|
<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">
|
|
|
|
</head>
|
|
|
|
<body ng-controller="home">
|
|
<div layout="column" ng-cloak>
|
|
|
|
<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"/> OpenFaaS Portal</h1>
|
|
</md-toolbar>
|
|
|
|
<md-content layout-padding>
|
|
<md-button ng-click="newFunction()" ng-disabled="isFunctionBeingCreated" class="md-primary">Create New Function</md-button>
|
|
|
|
<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>
|
|
|
|
<span class="md-headline">
|
|
{{function.name}}
|
|
</span>
|
|
<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>
|
|
<md-card-title-text>
|
|
</md-card-title>
|
|
</md-card>
|
|
<md-card>
|
|
<md-card-title>
|
|
<md-card-title-text>
|
|
|
|
<span class="md-headline">
|
|
Invoke function
|
|
</span>
|
|
<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">
|
|
<span class="ng-scope">Invoke</span><div class="md-ripple-container"></div>
|
|
</button>
|
|
</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>
|
|
</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>
|
|
</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>
|
|
</body>
|
|
|
|
</html>
|