Allow days/hours to be selected for auto update schedule

This commit is contained in:
Girish Ramakrishnan
2020-07-29 15:24:26 -07:00
parent 29c20cfcc4
commit 9a7f8bd861
2 changed files with 137 additions and 68 deletions

View File

@@ -41,6 +41,44 @@
</div>
</div>
<!-- modal update schedule config -->
<div class="modal fade" id="updateScheduleModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Configure Auto Update Schedule</h4>
</div>
<div class="modal-body">
<form name="updateScheduleForm" role="form" novalidate ng-submit="updateSchedule.submit()" autocomplete="off">
<fieldset>
<p class="has-error text-center" ng-show="updateSchedule.error">{{ updateSchedule.error.generic }}</p>
<div class="form-group">
<p>Select the days and hours during which Cloudron will apply automatic app updates. Please take into account that Cloudron will always
backup the app before an automatic update.
</p>
<div class="row">
<div class="col-md-6">
Days: <multiselect class="input-sm stretch" ng-model="updateSchedule.days" options="a.name for a in cronDays" data-multiple="true"></multiselect>
</div>
<div class="col-md-6">
Hours: <multiselect class="input-sm stretch" ng-model="updateSchedule.hours" options="a.name for a in cronHours" data-multiple="true"></multiselect>
</div>
</div>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer ">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-outline btn-success pull-right" ng-click="updateSchedule.submit()" ng-disabled="updateSchedule.$invalid || updateSchedule.busy"><i class="fa fa-circle-notch fa-spin" ng-show="updateSchedule.busy"></i><span> Save</span></button>
</div>
</div>
</div>
</div>
<!-- Modal registry config -->
<div class="modal fade" id="registryConfigModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
@@ -187,71 +225,41 @@
</div>
<div class="card" style="margin-bottom: 15px;">
<div class="row">
<div class="col-md-12">
<p>Configure the update schedule for apps</p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="radio">
<label>
<input type="radio" name="scheduleRadio" ng-model="autoUpdate.pattern" value="00 15 1,3,5,23 * * *">
Every night
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="scheduleRadio" ng-model="autoUpdate.pattern" value="00 00 3,5 * * 3">
Wednesday night
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="scheduleRadio" ng-model="autoUpdate.pattern" value="00 00 1,3,5,23 * * 6">
Saturday night
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="scheduleRadio" ng-model="autoUpdate.pattern" value="never">
No automatic updates
</label>
</div>
</div>
</div>
<div class="row">
<p class="col-md-12">
The current auto update schedule for apps is <b>{{ prettyAutoUpdateSchedule(updateSchedule.currentPattern) }}</b>.<br/>
</p>
</div>
<div class="row">
<br/>
<div ng-if="update.busy" class="col-md-12" style="margin-bottom: 10px;">
<div class="progress progress-striped active animateMe">
<div class="progress-bar progress-bar-success" role="progressbar" style="width: {{ update.percent }}%"></div>
</div>
<div class="row">
<br/>
<div ng-if="update.busy" class="col-md-12" style="margin-bottom: 10px;">
<div class="progress progress-striped active animateMe">
<div class="progress-bar progress-bar-success" role="progressbar" style="width: {{ update.percent }}%"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-7">
<p ng-show="update.busy">{{ update.message }}</p>
<p ng-if="update.busy">
<div class="has-error" ng-show="update.errorMessage">
{{ update.errorMessage }}. <a ng-class="warning" ng-href="/logs.html?taskId={{update.taskId}}" target="_blank">Show Logs</a>
</div>
</p>
</div>
<div class="col-md-5 text-right">
<button class="btn btn-outline btn-primary pull-right" ng-click="autoUpdate.submit()" ng-disabled="autoUpdate.pattern === autoUpdate.currentPattern">
<i class="fa fa-circle-notch fa-spin" ng-show="autoUpdate.busy"></i> Save
</button>
<button class="btn btn-default pull-right" ng-show="!config.update.box && !update.busy" ng-disabled="update.checking" ng-click="update.checkNow()">
<i class="fa fa-circle-notch fa-spin" ng-show="update.checking"></i> Check for Updates
</button>
<button ng-class="config.update.box.unstable ? 'btn btn-danger pull-right' : 'btn btn-success pull-right'" ng-show="config.update.box && !update.busy" ng-click="update.show()">Update Available</button>
<button class="btn btn-danger pull-right" ng-show="config.update.box && update.busy" ng-click="update.stopUpdate()">Stop Update</button>
</div>
<div class="row">
<div class="col-md-6">
<p ng-show="update.busy">{{ update.message }}</p>
<p ng-if="update.busy">
<div class="has-error" ng-show="update.errorMessage">
{{ update.errorMessage }}. <a ng-class="warning" ng-href="/logs.html?taskId={{update.taskId}}" target="_blank">Show Logs</a>
</div>
</p>
</div>
<div class="col-md-6 text-right">
<button class="btn btn-outline btn-primary pull-right" ng-click="updateSchedule.show()">Change Schedule</button>
<button class="btn btn-default pull-right" ng-show="!config.update.box && !update.busy" ng-disabled="update.checking" ng-click="update.checkNow()">
<i class="fa fa-circle-notch fa-spin" ng-show="update.checking"></i> Check for Updates
</button>
<button ng-class="config.update.box.unstable ? 'btn btn-danger pull-right' : 'btn btn-success pull-right'" ng-show="config.update.box && !update.busy" ng-click="update.show()">Update Available</button>
<button class="btn btn-danger pull-right" ng-show="config.update.box && update.busy" ng-click="update.stopUpdate()">Stop Update</button>
</div>
</div>
</div>
<div class="text-left">