cas-service-ja/overlays/org.apereo.cas.cas-server-w.../WEB-INF/classes/templates/casConsentView.html

199 lines
11 KiB
HTML
Raw Normal View History

2024-10-20 17:44:40 +08:00
<!DOCTYPE html>
<html xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout}">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
<title th:text="#{screen.consent.title}">Consent View</title>
<link href="../../static/css/cas.css" rel="stylesheet" th:remove="tag" />
<link rel="stylesheet" th:href="@{#{webjars.bootstrap-selectmin.css}}">
<script th:src="@{#{webjars.bootstrap-selectmin.js}}"></script>
<script th:src="@{#{webjars.bootstrapmin.js}}"></script>
<link rel="stylesheet" th:href="@{#{webjars.datatables.bootstrapmin.css}}"/>
<script th:src="@{#{webjars.datatables.jquery.datatablesmin.js}}"></script>
<script th:src="@{#{webjars.datatables.datatables.bootstrapmin.js}}"></script>
<script th:inline="javascript">
/*<![CDATA[*/
var data = {
attributes: /*[[${attributes}]]*/
};
var strings = {
info: /*[[#{screen.consent.attributes.data.info}]]*/
};
/*]]>*/
</script>
<script type="text/javascript" th:inline="javascript">
function jqueryReady() {
head.load(
/*[[@{/js/consent.js}]]*/
);
}
</script>
</head>
<body>
<main role="main" class="container mt-3 mb-3">
<div layout:fragment="content">
<form method="post" id="fm1">
<div class="alert alert-info">
<h2 th:text="#{screen.consent.title}">Attribute Consent</h2>
<ul class="nav nav-tabs" id="consentTabs" role="tablist">
<li class="nav-item">
<a class="nav-link active" id="attributes-tab" data-toggle="tab" href="#attributesPanel"
role="tab" aria-controls="attributes" aria-selected="true"
th:text="#{screen.consent.attributes}">Attributes</a>
</li>
<li class="nav-item">
<a class="nav-link" id="options-tab" data-toggle="tab" href="#optionsPanel" role="tab"
aria-controls="options" aria-selected="false" th:text="#{screen.consent.options}">Options</a>
</li>
</ul>
<div class="mb-4 tab-content" id="consentTabsContent">
<div class="tab-pane fade show active bg-white p-4" id="attributesPanel" role="tabpanel"
aria-labelledby="attributes-tab">
<p th:utext="#{screen.consent.attributes.header(${service.id})}">The following attributes will
be released to</p>
<table id="attributesTable" class="display table table-striped table-bordered">
<thead>
<tr>
<th th:text="#{screen.consent.attributes.attribute}">Attribute</th>
<th th:text="#{screen.consent.attributes.values}">Value(s)</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="tab-pane fade bg-white p-4" id="optionsPanel" role="tabpanel"
aria-labelledby="options-tab">
<div class="card mb-4">
<div class="card-header bg-info text-white" th:text="#{screen.consent.options.header}">How
should I be prompted
for consent again?
</div>
<div class="card-body">
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="optionAlways"
value="0"
th:checked="${option == 0}"
onclick="optionSelected()"/>
<label class="form-check-label" for="optionAlways"
th:utext="#{screen.consent.options.always}">Always</label>
<span class="help-block"
th:text="#{screen.consent.options.desc.always(${service.id})}">help block</span>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" id="optionAttributeName"
value="1"
th:checked="${option == 1}"
onclick="optionSelected()"/>
<label class="form-check-label" for="optionAttributeName"
th:utext="#{screen.consent.options.attributename}">Attribute Name</label>
<span class="help-block"
th:text="#{screen.consent.options.desc.attributename(${service.id})}">help block</span>
</span>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="option" value="2"
th:checked="${option == 2}"
onclick="optionSelected()" />
<label class="form-check-label" th:utext="#{screen.consent.options.attributevalue}">Attribute
Value</label>
<span class="help-block" th:utext="#{screen.consent.options.desc.attributevalue.intro} +
'<ul><li>' +
#{screen.consent.options.desc.attributevalue.first(${service.id})} +
'</li><li>' +
#{screen.consent.options.desc.attributevalue.second(${service.id})} +
'</li><li>' +
#{screen.consent.options.desc.attributevalue.third(${service.id})} +
'</li><ul>'"/>
</div>
</div>
</div>
<div id="reminderPanel" class="card">
<div class="card-header bg-info text-white"
th:text="#{screen.consent.options.reminder.header}">How often should I be reminded to
consent again?
</div>
<div class="card-body">
<p th:text="#{screen.consent.options.reminder.expl(${service.id})}">Show the consent
screen, as a
reminder, in the event that there is no change to the collection of attributes
released to
{0}.</p>
<table>
<tr>
<td>
<input name="reminder" id="reminder" class="form-control" type="number"
th:value="${reminder}">
</td>
<td>
<select name="reminderTimeUnit" id="reminderTimeUnit" class="form-control">
<option value="seconds"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'seconds'}"
th:text="#{screen.consent.options.timeunit.seconds}">Seconds
</option>
<option value="minutes"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'minutes'}"
th:text="#{screen.consent.options.timeunit.minutes}">Minutes
</option>
<option value="hours"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'hours'}"
th:text="#{screen.consent.options.timeunit.hours}">Hours
</option>
<option value="days"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'days'}"
th:text="#{screen.consent.options.timeunit.days}">Days
</option>
<option value="weeks"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'weeks'}"
th:text="#{screen.consent.options.timeunit.weeks}">Weeks
</option>
<option value="months"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'months'}"
th:text="#{screen.consent.options.timeunit.months}">Months
</option>
<option value="years"
th:selected="${#strings.toLowerCase(reminderTimeUnit) == 'years'}"
th:text="#{screen.consent.options.timeunit.years}">Years
</option>
</select>
</td>
</tr>
</table>
</div>
</div>
</div> <!-- end Options Panel -->
</div>
</div>
<div class="text-center form-group">
<input type="hidden" name="execution" th:value="${flowExecutionKey}"/>
<input type="hidden" name="_eventId" value="confirm"/>
<input class="btn btn-submit"
name="confirm"
accesskey="l"
th:value="#{screen.consent.confirm}"
value="Confirm"
type="submit"/>
<a class="btn btn-default" id="cancel" name="cancel"
th:href="@{/login}" th:text="#{screen.consent.cancel}">Cancel</a>
</div>
</form>
</div>
</main>
</body>
</html>