Newer
Older
cas-server / cas / WEB-INF / classes / templates / casConsentView.html
zhout on 17 Jun 2021 11 KB first commit
<!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>