Viewing File: /usr/local/cpanel/whostmgr/docroot/templates/ipv6/range.tmpl

[%
    USE Whostmgr;
    USE JSON;
    WRAPPER 'master_templates/master.tmpl'
        app_key = 'ipv6_ranges'
        header = locale.maketext('IPv6 Address Ranges')
        breadcrumburl = '/scripts/ipv6range'
        stylesheets = [
            Whostmgr.find_file_url('/templates/ipv6/range.min.css')
        ]
        theme = 'bootstrap'
        include_legacy_stylesheets = 1
        scripts = [
            Whostmgr.find_file_url('/libraries/jquery/current/jquery.min.js'),
            Whostmgr.find_file_url('/libraries/angularjs/1.4.4/angular.min.js'),
            Whostmgr.find_file_url('/templates/ipv6/api.min.js'),
            Whostmgr.find_file_url('/templates/ipv6/form.min.js'),
            Whostmgr.find_file_url('/templates/ipv6/range.min.js')
        ];
    SET spinner64 = MagicRevision('/images/loading-arrows-64.gif');
-%]

<div id="content" ng-app="ipv6RangesApp" ng-controller="RangeList">
    [% IF data.ipslocked %]
    <div id="cjt_static_notice_container" class="cjt-pagenotice-container cjt-notice-container">
        <div class="yui-module cjt-notice cjt-pagenotice cjt-notice-warn">
            <div class="bd">
                <div class="cjt-notice-content">[% locale.maketext('IPv6 addresses must be added on the host node') %]</div>
            <div>[% locale.maketext("You must add IPv6 addresses on the [asis,Virtuozzo] or [asis,OpenVZ] host node before you can add them using this interface.") %]</div>
        </div>
    </div>
    [% END %]
    <div class="description help-block">
        [% locale.maketext('This feature allows you to add, edit, and delete an IPv6 address range. An IPv6 address range is a group of several IPv6 addresses and uses the following format:') %]
        <ul>
            <li>[% locale.maketext('The range should be a shortened IPv6 address that ends with a slash (/), followed by a number which indicates the network portion of the IPv6 address range.') %]</li>
            <li>[% locale.maketext('The most common network portion will be /64. The network portion might be as low as /48, or as high as /128, which would be a single IPv6 address.') %]</li>
            <li>[% locale.maketext('For example: 2001:db8:1a34:56cf::/64') %]</li>
        </ul>
        [% locale.maketext('When you assign an IPv6 address to a user, you will choose a range that you added here.') %]
    </div>
    <div id="page_loader">
        <img src="[% spinner64 %]" />
        <form name="range" id="range_form" class="closed-form" ng-submit="addRange()" novalidate>
            <div class="form-container">
                <h4>[% locale.maketext('Add a Range') %]</h4>
                <div class="row">
                    <div class="col-xs-12 col-sm-6">
                        <div class="form-group">
                            <label for="range_name">[% locale.maketext('Range Name') %]</label>
                            <input type="text" name="name" id="range_name" class="input-name form-control" ng-model="rangeName" ng-maxlength="64" required />
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-6">
                        <div class="field-extra">
                            <ul class="error-messages"
                                ng-show="range.name.$dirty && range.name.$invalid">
                                <li ng-show="range.name.$error.required">[% locale.maketext("Range name required") %]</li>
                                <li ng-show="range.name.$error.maxlength">[% locale.maketext("Range name cannot exceed 64 characters.") %]</li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-12 col-sm-6">
                        <div class="form-group">
                            <label for="range_cidr">[% locale.maketext('Range') %]</label>
                            <input type="text" name="cidr" id="range_cidr" class="input-cidr form-control" ng-model="rangeCIDR" ipv6cidr required />
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-6">
                        <div class="field-extra">
                            <ul class="error-messages"
                                ng-show="range.cidr.$dirty && range.cidr.$invalid">
                                <li ng-class="ipv6Collapsed">[% locale.maketext("Cannot have multiple collapsed groups") %]</li>
                                <li ng-class="ipv6Address">[% locale.maketext("Must follow IPv6 syntax") %]</li>
                                <li ng-class="ipv6Characters">[% locale.maketext("Can only include hexidecimal characters (0-9 a-f)") %]</li>
                                <li ng-class="ipv6SegmentLength">[% locale.maketext("Each section must be 4 characters or fewer") %]</li>
                                <li ng-class="ipv6Range">[% locale.maketext("Must include / and the network portion") %]</li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-12 col-sm-6">
                        <div class="radio">
                            <label>
                                <input type="radio" name="enabled" id="range_enabled" ng-model="rangeEnabled" value="1" checked />
                                [% locale.maketext( "Available - addresses can be assigned") %]
                            </label>
                        </div>
                        <div class="radio">
                            <label>
                                <input type="radio" name="enabled" id="range_disabled" ng-model="rangeEnabled" value="0" />
                                [% locale.maketext( "Reserved - addresses cannot be assigned") %]
                            </label>
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="col-xs-12 col-sm-6">
                        <div class="form-group">
                            <label for="range_note">[% locale.maketext('Range Notes') %]</label>
                            <textarea name="note" id="range_note" class="input-note form-control" ng-model="rangeNote" ng-maxlength="250"></textarea>
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-6">
                        <div class="field-extra">
                            <ul class="error-messages"
                                ng-show="range.note.$dirty && range.note.$invalid">
                                <li ng-show="range.note.$error.maxlength">[% locale.maketext("Range note cannot exceed 250 characters.") %]</li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
            <div class="button-container">
                <input type="submit" class="btn btn-primary" value="[% locale.maketext('Add Range') %]" ng-click="closeNotice()" openform>
                <input type="button" class="btn btn-link" value="[% locale.maketext('Cancel') %]" ng-click="clearRangeForm()" closeform>
            </div>
            <div class="below-form-container cjt-pagenotice-container cjt-notice-container">
            </div>
        </form>

        <div class="cjt-pagenotice-container cjt-notice-container">
            <div ng-show="notice.message" class="yui-module cjt-notice cjt-pagenotice cjt-notice-{{notice.type}}">
                <div class="close" ng-click="closeNotice()">×</div>
                <div class="bd">
                    <div class="cjt-notice-content">{{notice.message}}</div>
                </div>
            </div>
        </div>

        <table class="table">
            <thead>
                <tr>
                    <th class="range-info-header">
                        <h3>[% locale.maketext('IP Range Details') %]</h3>
                    </th>
                    <th class="range-actions-header">
                        <h3>[% locale.maketext('Actions') %]</h3>
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr ng-repeat="range in ranges | orderBy:'CIDR'" class="group">
                    <td class="range-info">
                        <span class="range-type-{{range.enabled}}">[% locale.maketext('Reserved') %]</span>
                        <span class="range-name" ng-if="range.name != 'SHARED'"><strong>{{range.name}}</strong></span>
                        <span class="range-name" ng-if="range.name == 'SHARED'"><strong>[% locale.maketext("The system’s shared IPv6 address.") %]</strong></span>
                        <span class="range-value">{{range.CIDR}}</span>
                        <span class="range-note">{{range.note}}</span>
                    </td>
                    <td class="range-actions">
                        <button type="button"
                                title="[% locale.maketext('Delete Range') %]"
                                class="range-edit btn btn-default"
                                ng-disabled="range.name === 'SHARED'"
                                ng-click="deleteRange(range)">
                            [% locale.maketext('Delete Range') %]
                        </button>
                    </td>
                </tr>
                <tr ng-hide="ranges.length" class="group">
                    <td colspan="2" class="info empty-row">
                        <span>[% locale.maketext('There are currently no ranges.') %]</span>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

[% END #wrapper -%]
Back to Directory File Manager