2018-11-20 16:53:42 +01:00
|
|
|
<div class="modal fade" id="addonConfigureModal" tabindex="-1" role="dialog">
|
|
|
|
|
<div class="modal-dialog">
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
<h4 class="modal-title">Configure {{ addonConfigure.addon.name }}</h4>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
<form name="addonConfigureForm" role="form" novalidate ng-submit="addonConfigure.submit()" autocomplete="off">
|
|
|
|
|
<fieldset>
|
|
|
|
|
<p class="has-error text-center" ng-show="addonConfigure.error">{{ addonConfigure.error }}</p>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label" for="memoryLimit">Memory Limit <sup><a ng-href="/" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup> : <b>{{ addonConfigure.memoryLimit / 1024 / 1024 + 'MB' }}</b></label>
|
|
|
|
|
<br/>
|
|
|
|
|
<div style="padding: 0 10px;">
|
|
|
|
|
<slider id="memoryLimit" ng-model="addonConfigure.memoryLimit" step="134217728" tooltip="hide" ticks="addonConfigure.memoryTicks" ticks-snap-bounds="67108864"></slider>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<input class="ng-hide" type="submit" ng-disabled="addonConfigureForm.$invalid || addonConfigure.busy"/>
|
|
|
|
|
</fieldset>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-footer ">
|
2018-11-21 17:06:01 +01:00
|
|
|
<button type="button" class="btn btn-default pull-left" ng-click="addonConfigure.submit(0)" ng-disabled="addonConfigureForm.$invalid || addonConfigure.busy">
|
|
|
|
|
<i class="fa fa-circle-notch fa-spin" ng-show="addonConfigure.busy"></i> Reset to defaults
|
|
|
|
|
</button>
|
2018-11-20 16:53:42 +01:00
|
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
2018-11-21 17:06:01 +01:00
|
|
|
<button type="submit" class="btn btn-outline btn-success pull-right" ng-click="addonConfigure.submit(addonConfigure.memoryLimit)" ng-disabled="addonConfigureForm.$invalid || addonConfigure.busy">
|
2018-11-20 16:53:42 +01:00
|
|
|
<i class="fa fa-circle-notch fa-spin" ng-show="addonConfigure.busy"></i> Save
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2018-11-15 19:59:24 +01:00
|
|
|
<div class="content">
|
|
|
|
|
|
|
|
|
|
<div class="text-left">
|
|
|
|
|
<h1>Addons</h1>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="text-left">
|
|
|
|
|
<h3>Overview</h3>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="card" style="margin-bottom: 15px;">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-xs-12">
|
|
|
|
|
Cloudron addons are addons for the apps. These include for example databases and authentication modules.<br/>
|
|
|
|
|
A full list of available addons can be found <a href="https://cloudron.io/developer/addons/" target="_blank">here</a>.
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="text-left">
|
|
|
|
|
<h3>Status</h3>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="card" style="margin-bottom: 15px;">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-xs-12">
|
|
|
|
|
<div class="row ng-hide" ng-show="!ready">
|
|
|
|
|
<div class="col-xs-12 text-center">
|
2018-11-16 17:21:57 +01:00
|
|
|
<h2><i class="fa fa-circle-notch fa-spin"></i></h2>
|
2018-11-15 19:59:24 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row animateMeOpacity ng-hide" ng-show="ready">
|
|
|
|
|
<div class="col-xs-12">
|
|
|
|
|
<table class="table table-hover">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th style="width: 0.5%;"></th>
|
|
|
|
|
<th style="width:45%">Addon</th>
|
2018-11-16 17:21:57 +01:00
|
|
|
<th style="width:49.5%">Memory</th>
|
2018-11-15 19:59:24 +01:00
|
|
|
<th style="width: 5%" class="text-right">Actions</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr ng-repeat="addon in addons">
|
|
|
|
|
<td>
|
2018-11-18 20:01:53 +01:00
|
|
|
<i class="fa fa-circle" uib-tooltip="{{ addon.status }}" ng-style="{ color: addon.status === 'active' ? '#27CE65' : '#d9534f' }" ng-show="addon.status"></i>
|
|
|
|
|
<i class="fa fa-circle-notch fa-spin" ng-hide="addon.status"></i>
|
2018-11-15 19:59:24 +01:00
|
|
|
</td>
|
|
|
|
|
<td class="elide-table-cell">
|
|
|
|
|
{{ addon.name }}
|
|
|
|
|
</td>
|
|
|
|
|
<td class="elide-table-cell">
|
2018-11-20 17:04:53 +01:00
|
|
|
<span ng-show="addon.config.memory">{{ addon.config.memory / 1024 / 1024 + 'MB' }}</span>
|
|
|
|
|
<span ng-hide="addon.config.memory" class="text-muted">not configurable</span>
|
2018-11-15 19:59:24 +01:00
|
|
|
</td>
|
|
|
|
|
<td class="text-right no-wrap" style="vertical-align: bottom">
|
2018-11-20 16:53:42 +01:00
|
|
|
<button class="btn btn-xs btn-default" ng-click="addonConfigure.show(addon)" uib-tooltip="Configure" ng-show="addon.config.memory"><i class="fa fa-pencil-alt"></i></button>
|
2018-11-20 17:04:53 +01:00
|
|
|
<a class="btn btn-xs btn-default" ng-href="{{ '/logs.html?id=' + addon.name }}" target="_blank" uib-tooltip="Logs"><i class="fa fa-file-alt"></i></a>
|
2018-11-21 16:14:02 +01:00
|
|
|
<button class="btn btn-xs btn-default" ng-click="restartAddon(addon.name)" uib-tooltip="Restart"><i class="fa fa-sync-alt" ng-show="addon.status === 'active'"></i><i class="fa fa-play" ng-hide="addon.status === 'active'"></i></button>
|
2018-11-15 19:59:24 +01:00
|
|
|
</td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|