mirror of
https://github.com/ansible/awx.git
synced 2026-02-25 15:06:02 -03:30
236 lines
13 KiB
HTML
236 lines
13 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" ng-app="Tower">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<title>Ansible Tower</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}assets/custom-theme/jquery-ui-1.10.3.custom.min.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}assets/ansible-bootstrap.min.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}assets/fontcustom/fontcustom.css" type="text/css">
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/components-font-awesome/css/font-awesome.min.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/select2/dist/css/select2.css" />
|
|
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/lib/codemirror.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/theme/elegant.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/addon/lint/lint.css" />
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/nvd3/build/nv.d3.css" type="text/css">
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}lib/ngToast/dist/ngToast.min.css" type="text/css">
|
|
|
|
<link rel="stylesheet" href="{{ STATIC_URL }}tower.min.css?v={{version}}" type="text/css">
|
|
|
|
<link rel="shortcut icon" href="{{ STATIC_URL }}assets/favicon.ico?v={{version}}" />
|
|
<script>
|
|
var $basePath = "{{ STATIC_URL }}";
|
|
</script>
|
|
|
|
<script src="{{ STATIC_URL }}tower.concat.js?v={{version}}"></script>
|
|
|
|
<script>
|
|
window.pendo_options = {
|
|
|
|
// This is required to be able to load data client side
|
|
usePendoAgentAPI: true
|
|
};
|
|
</script>
|
|
|
|
</head>
|
|
<body data-user-agent="{{userAgent}}">
|
|
|
|
<include-svg href="{{ STATIC_URL }}assets/icons.svg"></include-svg>
|
|
|
|
<main-menu></main-menu>
|
|
<bread-crumb></bread-crumb>
|
|
<toast></toast>
|
|
|
|
<div class="container-fluid" id="content-container">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div ui-view id="main-view"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Password Dialog -->
|
|
<div id="password-modal" style="display: none;"></div>
|
|
<div id="idle-modal" style="display:none">Your session will expire in <span id="remaining_seconds">60</span> seconds, would you like to continue?</div>
|
|
|
|
<stream-detail-modal></stream-detail-modal>
|
|
|
|
<!-- Generic Form dialog -->
|
|
<div id="form-modal" class="modal fade">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-target="#form-modal"
|
|
data-dismiss="modal" aria-hidden="true" ng-click="cancelModal()">×</button>
|
|
<h3 ng-bind-html="formModalHeader"></h3>
|
|
</div>
|
|
<div class="modal-body" id="form-modal-body"></div>
|
|
<div class="modal-footer">
|
|
<button ng-show="formModalInfo !== undefined && formModalInfo != ''" ng-click="formModalInfoAction()"
|
|
class="btn btn-sm pull-left"><i class="fa fa-search-plus"></i> <span ng-bind="formModalInfo"></span></button>
|
|
<a href="#" ng-show="formModalCancelShow" data-target="#form-modal" ng-click="cancelModal()" data-dismiss="modal" id="form_cancel_btn" class="btn btn-default">Cancel</a>
|
|
<a href="" ng-bind="formModalActionLabel" ng-click="formModalAction()" ng-disabled="formModalActionDisabled" id="form_ok_btn" class="btn btn-primary"></a>
|
|
</div>
|
|
</div><!-- modal-content -->
|
|
</div><!-- modal-dialog -->
|
|
</div><!-- modal -->
|
|
|
|
<div id="form-modal2" class="modal fade">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-target="#form-modal2"
|
|
data-dismiss="modal" aria-hidden="true">×</button>
|
|
<h3 ng-bind-html="formModal2Header"></h3>
|
|
</div>
|
|
<div class="modal-body" id="form-modal2-body"></div>
|
|
<div class="modal-footer">
|
|
<a href="" ng-bind="formModal2Info" ng-show="formModal2Info !== undefined && formModal2Info != ''" ng-click="formModal2InfoAction()"
|
|
class="btn btn-default btn-sm pull-left"><i class="fa fa-search-plus"></i> <span ng-bind="formModal2Info"></span></a>
|
|
<a href="#" ng-show="formModal2CancelShow" data-target="#form-modal2" data-dismiss="modal" id="form2_cancel_btn"
|
|
class="btn btn-default">Cancel</a>
|
|
<a href="" ng-bind="formModal2ActionLabel" ng-click="formModal2Action()" id="form2_ok_btn" class="btn btn-primary"></a>
|
|
</div>
|
|
</div><!-- modal-content -->
|
|
</div><!-- modal-dialog -->
|
|
</div><!-- modal -->
|
|
|
|
<!-- Confirmation Dialog -->
|
|
<div id="prompt-modal" class="modal fade">
|
|
<div class="modal-dialog">
|
|
<div class="Modal-content modal-content">
|
|
<div class="Modal-header">
|
|
<div class="Modal-title" ng-bind="promptHeader" id="prompt-header"></div>
|
|
<div class="Modal-exitHolder">
|
|
<button class="close Modal-exit" data-target="#prompt-modal" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times-circle"></i></button>
|
|
</div>
|
|
</div>
|
|
<div class="Modal-body" ng-bind-html="promptBody" id="prompt-body">
|
|
</div>
|
|
<div class="Modal-footer">
|
|
<a href="" ng-class="promptActionBtnClass" ng-click="promptAction()" id="prompt_action_btn" class="btn Modal-footerButton" ng-bind="promptActionText"></a>
|
|
<a href="#" data-target="#prompt-modal" data-dismiss="modal" id="prompt_cancel_btn" class="btn Modal-defaultButton Modal-footerButton">CANCEL</a>
|
|
</div>
|
|
</div><!-- modal-content -->
|
|
</div><!-- modal-dialog -->
|
|
</div><!-- modal -->
|
|
|
|
<!-- Alerts/error handling dialogs -->
|
|
<div id="alert-modal" class="modal fade">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" ng-hide="disableButtons" data-target="#alert-modal"
|
|
data-dismiss="modal" class="modal" aria-hidden="true">×</button>
|
|
<h3 id= "alertHeader" ng-bind="alertHeader"></h3>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div id="alert-modal-msg" class="alert" ng-bind-html="alertBody"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a href="#" ng-hide="disableButtons" data-target="#form-modal" data-dismiss="modal" id="alert_ok_btn" class="btn btn-primary">OK</a>
|
|
</div>
|
|
</div><!-- modal-content -->
|
|
</div><!-- modal-dialog -->
|
|
</div><!-- modal -->
|
|
|
|
<div id="alert-modal2" class="modal fade">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-target="#alert-modal2"
|
|
data-dismiss="modal" ng-hide="disableButtons2" aria-hidden="true">×</button>
|
|
<h3 id="alertHeader2" ng-bind="alertHeader2"></h3>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div id="alert2-modal-msg" class="alert" ng-bind-html="alertBody2"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a href="#" ng-hide="disableButtons2" data-target="#form-modal2" data-dismiss="modal" id="alert2_ok_btn" class="btn btn-primary">OK</a>
|
|
</div>
|
|
</div><!-- modal-content -->
|
|
</div><!-- modal-dialog -->
|
|
</div><!-- modal -->
|
|
|
|
<div id="login-modal-dialog" style="display: none;"></div>
|
|
<div id="help-modal-dialog" style="display: none;"></div>
|
|
|
|
<div id="prompt-for-days" style="display:none">
|
|
<form name="prompt_for_days_form" id="prompt_for_days_form">
|
|
Set how many days of data should be retained. <br>
|
|
<input type="integer" id="days_to_keep" name="days_to_keep" ng-model="days_to_keep" ng-required="true" class="form-control" min=0 max=9999 style="margin-top:10px;" integer>
|
|
<div class="error" ng-show="prompt_for_days_form.days_to_keep.$dirty && (prompt_for_days_form.days_to_keep.$error.number || prompt_for_days_form.days_to_keep.$error.integer ||
|
|
prompt_for_days_form.days_to_keep.$error.required ||
|
|
prompt_for_days_form.days_to_keep.$error.min ||
|
|
prompt_for_days_form.days_to_keep.$error.max)">Please enter an integer<span ng-show="prompt_for_days_form.days_to_keep.$dirty && prompt_for_days_form.days_to_keep.$error.min"> that is not negative</span><span ng-show="prompt_for_days_form.days_to_keep.$dirty && prompt_for_days_form.days_to_keep.$error.max"> that is lower than 9999</span>.</div>
|
|
</form>
|
|
</div>
|
|
<div id="prompt-for-days-facts" style="display:none">
|
|
<form name="prompt_for_days_facts_form" id="prompt_for_days_facts_form">
|
|
<div style="padding-bottom:15px;">For facts collected older than the time period specified,
|
|
save one fact scan (snapshot) per time window (frequency).
|
|
For example, facts older than 30 days are purged, while one
|
|
weekly fact scan is kept.<br> <br>
|
|
|
|
CAUTION: Setting both numerical variables to "0" will delete all facts.<br><br>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="description">
|
|
<span class="label-text">
|
|
Select a time period after which to remove old facts
|
|
</span>
|
|
</label>
|
|
<div class="row">
|
|
<div class="col-xs-4">
|
|
<input type="integer" id="keep_amount" name="keep_amount" ng-model="keep_amount" ng-required="true" class="form-control" min=0 max=9999 style="margin-top:10px;" integer></input>
|
|
</div>
|
|
<div class="col-xs-4">
|
|
<select id="keep_unit" name="keep_unit" ng-model="keep_unit" ng-options="type.label for type in keep_unit_choices track by type.value" ng-required="true" class="form-control" style="margin-top:10px;"></select>
|
|
</div>
|
|
</div>
|
|
<div class="error" ng-show="prompt_for_days_facts_form.keep_amount.$dirty && (prompt_for_days_facts_form.keep_amount.$error.number || prompt_for_days_facts_form.keep_amount.$error.integer ||
|
|
prompt_for_days_facts_form.keep_amount.$error.required ||
|
|
prompt_for_days_facts_form.keep_amount.$error.min ||
|
|
prompt_for_days_facts_form.keep_amount.$error.max)">Please enter an integer<span ng-show="prompt_for_days_facts_form.keep_amount.$dirty && prompt_for_days_facts_form.keep_amount.$error.min"> that is not negative</span><span ng-show="prompt_for_days_facts_form.keep_amount.$dirty && prompt_for_days_facts_form.keep_amount.$error.max"> that is lower than 9999</span>.</div>
|
|
</div>
|
|
<div class="form-group ">
|
|
<label for="description">
|
|
<span class="label-text">
|
|
Select a frequency for snapshot retention
|
|
</span>
|
|
</label>
|
|
<div class="row">
|
|
<div class="col-xs-4">
|
|
<input type="integer" id="granularity_keep_amount" name="granularity_keep_amount" ng-model="granularity_keep_amount" ng-required="true" class="form-control" min=0 max=9999 style="margin-top:10px;" integer></input>
|
|
</div>
|
|
<div class="col-xs-4">
|
|
<select id="granularity_keep_unit" name="granularity_keep_unit" ng-model="granularity_keep_unit"
|
|
ng-options="type.label for type in granularity_keep_unit_choices track by type.value" ng-required="true" class="form-control" style="margin-top:10px;"></select>
|
|
</div>
|
|
</div>
|
|
<div class="error" ng-show="prompt_for_days_facts_form.granularity_keep_amount.$dirty && (prompt_for_days_facts_form.granularity_keep_amount.$error.number || prompt_for_days_facts_form.granularity_keep_amount.$error.integer ||
|
|
prompt_for_days_facts_form.granularity_keep_amount.$error.required ||
|
|
prompt_for_days_facts_form.granularity_keep_amount.$error.min ||
|
|
prompt_for_days_facts_form.granularity_keep_amount.$error.max)">Please enter an integer<span ng-show="prompt_for_days_facts_form.granularity_keep_amount.$dirty && prompt_for_days_facts_form.granularity_keep_amount.$error.min"> that is not negative</span><span ng-show="prompt_for_days_facts_form.granularity_keep_amount.$dirty && prompt_for_days_facts_form.granularity_keep_amount.$error.max"> that is lower than 9999</span>.</div>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="overlay"></div>
|
|
<div class="spinny"><i class="fa fa-cog fa-spin fa-2x"></i> <p>working...</p></div>
|
|
</div>
|
|
<tower-footer></tower-footer>
|
|
<script>
|
|
// HACK: Need this to support global-dependent
|
|
// config-loading behavior
|
|
var $AnsibleConfig;
|
|
|
|
require('app');
|
|
</script>
|
|
</body>
|
|
</html>
|