Viewing File: /usr/local/cpanel/base/sharedjs/zone_editor/views/manage.ptt

<div class="row">
    <div class="col-xs-12">
        <h2 class="view-title">[% locale.maketext('Zone Records for “[_1]”', '{{ manage.domain }}') %]</h2>
    </div>
</div>

<div class="row">
    <div class="col-xs-12 col-md-8">
        <div id="notAllowedWarningManage" class="alert alert-danger ng-hide" ng-show="manage.loading_error">
            <span class="glyphicon glyphicon-remove-sign"></span>
            <div class="alert-message">
                <strong class="alert-title">
                    [% locale.maketext('[asis,DNS] Zone Failed To Load:') %]
                </strong>
                <span class="alert-body">
                    <pre class="loading-error-pre" ng-bind-html="manage.loading_error_message"></pre>
                    <button href ng-click="manage.confirm_reset_zone()" class="btn btn-primary btn-sm"><span class='fas fa-undo' aria-hidden="true"></span> [% locale.maketext('Reset the [asis,DNS] Zone') %]</button>
                    <a href="index.html#/list" class="btn btn-link"><i class="fas fa-arrow-left" aria-hidden="true"></i> [% locale.maketext('Return to [asis,DNS] Zone List') %]</a>
                </span>
            </div>
        </div>
    </div>
</div>

<div id="tableShowHideContainerManage" ng-hide="manage.loading_error">
    <div id="paginationControls" class="row search-page-container">
        <div class="col-xs-12 col-sm-12 col-md-9">
            <div class="row">
                <div class="col-xs-12 col-md-6">
                    <search id="filterList" ng-model="manage.meta.filterValue"
                        placeholder="[% locale.maketext('Filter by name') %]" autofocus ng-change="manage.searchList()">
                    </search>
                </div>
            </div>
            <div class="row">
                <div class="col-xs-12">
                    <quick-filters title="[% locale.maketext('Filter:') %]" active="manage.meta.quickFilterValue"
                        on-filter-change="manage.getFilteredResults()">
                        <quick-filter-item id="show_all_records" value="">[% locale.maketext('All') %]
                        </quick-filter-item>
                        <quick-filter-item ng-repeat="type in manage.types" value="{{type}}"
                            id="show__{{type}}_records">{{type}}</quick-filter-item>
                    </quick-filters>
                </div>
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-3">
            <div id="paginator" class="pagination-container pull-right hidden-xs hidden-sm">
                <uib-pagination id="topPager" ng-change="manage.selectPage()" ng-model="manage.meta.pageNumber"
                    max-size="manage.meta.maxPages" items-per-page="manage.meta.pageSize"
                    total-items="manage.meta.totalItems" direction-links="true" boundary-links="true" rotate="false"
                    first-text="<<" last-text=">>" previous-text="<" next-text=">">
                </uib-pagination>
                <p class="text-small text-right flip"> {{manage.paginationMessage()}} </p>
            </div>
        </div>
    </div>

    <div class="row action-bar">
        <div class="col-xs-12">
            <div class="hidden-xs hidden-sm pull-left flip">
                <div class="btn-group" id="actionButtonDropdown" ng-if="manage.isActionBtnVisible()" uib-dropdown>
                    <button type="button" id="action_btn_list" class="btn btn-default btn-sm add-record-btn"
                        ng-disabled="manage.is_loading" uib-dropdown-toggle>
                        [% locale.maketext('Actions') %]
                        <span class="caret"></span>
                        <span class="sr-only">[% locale.maketext('Click for more options.') %]</span>
                    </button>
                    <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-left text-right flip" role="menu">
                        <li role="menuitem" ng-if="manage.Features.whmOnly">
                            <a id="exportZoneLink" ng-if="manage.Features.whmOnly"
                                href="manage/copyzone/?domain={{manage.domain}}">
                                [% locale.maketext('View Raw [asis,DNS] Zone File') %]
                            </a>
                        </li>
                        <li role="separator" ng-if="manage.Features.whmOnly && manage.Features.advanced"
                            class="divider"></li>
                        <li role="menuitem" ng-if="manage.Features.advanced">
                            <button id="resetZoneBtn" class="actionBtn" ng-class="{disabled: manage.isFormEditing()}"
                                ng-click="manage.confirm_reset_zone()">
                                [% locale.maketext('Reset [asis,DNS] Zone') %]
                            </button>
                        </li>
                    </ul>
                </div>
                <a href="{{manage.emailRoutingConfigLink()}}" target="_blank" class="btn-sm hidden-xs hidden-sm"
                    id="emailRoutingConfigLink"
                    ng-if="manage.showEmailRoutingLink && !manage.isHostnameZone">
                    [% locale.maketext('Email Routing Configuration') %]
                    <i class="fas fa-external-link-alt" aria-hidden="true"></i>
                </a>
            </div>
            <div class="pull-right flip">
                <button type="submit" id="saveAllRecordsBtn" form="manage.add_zr_form"
                    ng-disabled="!manage.isFormEditing()" class="btn btn-primary btn-sm"
                    cp-action="manage.saveRecords()">
                    <span class="fas fa-save"></span>
                    [% locale.maketext('Save All Records') %]
                </button>
                <div class="btn-group" uib-dropdown>
                    <button type="button" id="search_add_record_btn" class="btn btn-default btn-sm add-record-btn"
                        ng-disabled="!manage.recordTypes.length || manage.is_loading"
                        ng-click="manage.createNewRecord()">
                        <span class="fas fa-plus"></span>
                        [% locale.maketext('Add Record') %]</button>
                    <button type="button" id="search_add_record_dropdown_btn"
                        class="btn btn-default btn-sm dropdown-toggle"
                        ng-disabled="!manage.recordTypes.length || manage.is_loading" uib-dropdown-toggle>
                        <span class="caret"></span>
                        <span class="sr-only">[% locale.maketext('Click for more options.') %]</span></button>
                    <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-right text-left flip" role="menu"
                        ng-if="manage.recordTypes.length">
                        <li ng-repeat="recordType in manage.recordTypes | filter:manage.filterAddRecordDisplay">
                            <a id="search_add_{{recordType.type | lowercase}}_record_btn" href
                                ng-click="manage.createNewRecord(recordType.type)">
                                [% locale.maketext('Add “[_1]” Record', "{{recordType.type}}") %]
                            </a>
                        </li>
                    </ul>
                </div>

                <div class="btn-group" uib-dropdown auto-close="outsideClick">
                    <button id="gearMenu" aria-label="additional actions menu" type="button"
                        class="btn btn-default btn-sm" uib-dropdown-toggle ng-disabled="manage.is_loading">
                        <i class="fas fa-cog" aria-hidden="true"></i> <span class="caret"></span>
                    </button>
                    <ul uib-dropdown-menu class="dropdown-menu-right" role="menu" aria-labelledby="gearMenu">
                        <li role="menuitem">
                            <div class="text-small text-uppercase">[% locale.maketext("Entries Per Page") %]</div>
                            <page-size-button id="pageSize" allowed-sizes="manage.meta.pageSizes"
                                total-items="manage.meta.totalItems" ng-model="manage.meta.pageSize" show-all="false"
                                ng-change="manage.selectPageSize()">
                            </page-size-button>
                        </li>
                        <li role="separator" class="divider"></li>
                        <li role="menuitem" ng-class="{disabled: manage.adding_records()}">
                            <a id="refreshList" href ng-click="manage.refresh()"><i class="fas fa-sync-alt" aria-hidden="true"></i> [% locale.maketext('Refresh List') %]</a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

    <div id="tableContainer" class="manage-view">
        <form name="manage.add_zr_form" class="ng-pristine" novalidate action="javascript:void(0)">
            <table id="table" class="table table-striped responsive-table">
                <thead>
                    <tr>
                        <th id="nameHeader">
                            <span toggle-sort id="sortByName" onsort="manage.sortList" sort-meta="manage.meta"
                                sort-field="name">
                                [% locale.maketext('Name') %]
                            </span>
                        </th>
                        <th id="ttlHeader">
                            <span toggle-sort id="sortByTTL" onsort="manage.sortList" sort-meta="manage.meta"
                                sort-field="ttl">
                                TTL
                            </span>
                        </th>
                        <th id="typeHeader">
                            <span toggle-sort id="sortByType" onsort="manage.sortList" sort-meta="manage.meta"
                                sort-field="record_type">
                                [% locale.maketext('Type') %]
                            </span>
                        </th>
                        <th id="recordHeader">
                            [% locale.maketext('Record') %]
                        </th>
                        <th id="actionsHeader">[% locale.maketext('Actions') %]</th>
                    </tr>
                </thead>
                <tbody>
                    <tr id="loadingNotice" class="info empty-row ng-hide" ng-show="manage.is_loading">
                        <td colspan="5" id="loadingMessage">
                            <i id="loadingSpinner" class="fas fa-spinner fa-spin"></i>
                            [% locale.maketext('Loading …') %]
                        </td>
                    </tr>
                    <tr id="emptyListNotice" class="info empty-row ng-hide"
                        ng-show="manage.filteredList.length == 0 && !manage.is_loading">
                        <td colspan="5" id="emptyMessage">[% locale.maketext('No records found.') %]</td>
                    </tr>

                    <tr id="zone_rec_row_{{zone_rec._id}}" class="recordTableRow"
                        ng-repeat="zone_rec in manage.filteredList track by zone_rec._id" ng-hide="manage.is_loading"
                        ng-class="{'inline-form': zone_rec.editing, 'info': zone_rec.editing, 'warning': zone_rec.alias_unsupported}"
                        ng-keypress="manage.handleRowKeypress($event, zone_rec)"
                    >

                        <td ng-if="!zone_rec.editing" data-title="[% locale.maketext('Name') %]"
                            id="zone_rec_name_{{zone_rec._id}}" class="potentially-really-long-text">
                            <span>{{ zone_rec.name }}</span>
                        </td>
                        <td ng-if="zone_rec.editing" id="nameInlineEditor_{{zone_rec._id}}">
                            <div class="record_elements">
                                <div class="record_element">
                                    <div class="record_subelement"
                                        ng-class="{ 'has-error': manage.field_has_error(manage.add_zr_form, 'recordName_{{zone_rec._id}}') }">
                                        <label for="recordName_{{zone_rec._id}}" class="table-form-label">
                                            [% locale.maketext('Name') %]
                                        </label>
                                        <input type="text"
                                            ng-disabled="zone_rec.record_type === 'SOA' || zone_rec.is_dmarc"
                                            class="form-control" ng-model="zone_rec.name" id="recordName_{{zone_rec._id}}"
                                            name="recordName_{{zone_rec._id}}" required zone-name="{{zone_rec.record_type}}" convert_to_full_record_name
                                            domain="manage.domain"
                                            placeholder="[% locale.maketext('Valid zone name') %]">
                                    </div>
                                </div>
                                <div class="record_element">
                                    <div class="record_subelement">
                                        <ul validation-container field-name="recordName_{{zone_rec._id}}">
                                            <li validation-item field-name="recordName_{{zone_rec._id}}"
                                                validation-name="required">[%
                                                locale.maketext("This field is required.") %]
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </td>

                        <td ng-if="!zone_rec.editing" data-title="TTL"
                            id="zone_rec_ttl_{{zone_rec._id}}">
                            <span>{{ zone_rec.ttl }}</span>
                        </td>
                        <td ng-if="zone_rec.editing" id="ttlInlineEditor_{{zone_rec._id}}">
                            <div class="record_elements ttl">
                                <div class="record_element">
                                    <div class="record_subelement"
                                        ng-class="{ 'has-error': manage.field_has_error(manage.add_zr_form, 'recordTTL_{{zone_rec._id}}') }">
                                        <label for="recordTTL_{{zone_rec._id}}" class="table-form-label">
                                            TTL
                                        </label>
                                        <input type="text" class="form-control" ng-model="zone_rec.ttl" required
                                            positive-integer num-less-than="2147483647" maxlength="10"
                                            id="recordTTL_{{zone_rec._id}}" name="recordTTL_{{zone_rec._id}}"
                                            ng-disabled="!manage.Features.advanced"
                                            placeholder="[% locale.maketext('Time in seconds') %]">
                                    </div>
                                </div>
                                <div class="record_element">
                                    <div class="record_subelement">
                                        <ul validation-container field-name="recordTTL_{{zone_rec._id}}">
                                            <li validation-item field-name="recordTTL_{{zone_rec._id}}"
                                                validation-name="required">[%
                                                locale.maketext("This field is required.") %]
                                            </li>
                                        </ul>
                                    </div>
                                </div>
                            </div>
                        </td>

                        <td ng-if="!zone_rec.editing" data-title="[% locale.maketext('Type') %]"
                            id="zone_rec_type_{{zone_rec._id}}">
                            <span>{{ zone_rec.record_type }}</span>
                            <span ng-if="zone_rec.alias_unsupported" class="label label-warning"
                                title="[% locale.maketext('[asis,ALIAS] support is not enabled.') %]">
                                [% locale.maketext('Unsupported') %]
                            </span>
                        </td>
                        <td ng-if="zone_rec.editing">
                            <label for="recordType_{{zone_rec._id}}" class="table-form-label">
                                [% locale.maketext('Type') %]
                            </label>
                            <select
                                id="recordType_{{zone_rec._id}}"
                                name="recordType_{{zone_rec._id}}" class="form-control"
                                ng-model="zone_rec.record_type"
                                ng-change="manage.updateRecordTemplate(zone_rec)"
                                ng-disabled="zone_rec.typeEditingLocked">
                                <option ng-if="zone_rec.record_type === 'SOA'">SOA</option>
                                <option
                                    ng-selected="zone_rec.record_type === recordType.type"
                                    ng-repeat="recordType in manage.recordTypes | filter: manage.filterRowRecordsDisplay"
                                    value="{{recordType.type}}">
                                    {{recordType.type}}
                                </option>
                            </select>
                        </td>

                        <td ng-if="!zone_rec.editing" data-title="[% locale.maketext('Record') %]"
                            class="zone-record-col potentially-really-long-text" id="zone_rec_record_{{zone_rec._id}}">
                            <ng-include src="zone_rec.viewTemplate"></ng-include>
                        </td>
                        <td ng-if="zone_rec.editing" id="recordInlineEditor_{{zone_rec._id}}" class="recordInlineEditor">
                            <div class="record_elements">
                                <ng-include src="zone_rec.editTemplate"></ng-include>
                            </div>
                        </td>

                        <td ng-if="!zone_rec.editing" class="action-buttons"
                            data-title="[% locale.maketext('Actions') %]">
                            <button type="button"
                                id="edit_btn_for_{{ zone_rec.record_type | qaSafeID }}_{{ zone_rec.name | qaSafeID }}_{{zone_rec._id}}"
                                class="btn btn-outline-primary btn-sm" ng-click="manage.edit_record(zone_rec)"
                                ng-disabled="!zone_rec.isEditable">
                                <span class="glyphicon glyphicon-pencil"></span>
                                [% locale.maketext('Edit') %]
                            </button>
                            <button type="button"
                                id="delete_btn_for_{{ zone_rec.record_type | qaSafeID }}_{{ zone_rec.name | qaSafeID }}_{{zone_rec._id}}"
                                class="btn btn-outline-danger btn-sm" ng-click="manage.confirm_delete_record(zone_rec)"
                                ng-disabled="manage.isEditingRecords()"
                                ng-if="zone_rec.record_type !== 'SOA'">
                                <span class="glyphicon glyphicon-trash"></span>
                                [% locale.maketext('Delete') %]
                            </button>
                        </td>

                        <td ng-if="zone_rec.editing" class="record_manipulation_buttons">
                            <button
                                id="inline_add_record_button_{{zone_rec._id}}"
                                class="btn btn-primary btn-sm"
                                type="submit"
                                data-form-valid-state="{{manage.getAddFormState()}}"
                                cp-action="manage.saveRecords(zone_rec)">[% locale.maketext('Save Record') %]
                            </button>
                            <button
                                id="inline_cancel_button_{{zone_rec._id}}"
                                class="btn btn-link btn-sm" type="button"
                                ng-disabled="manage.save_in_progress"
                                ng-click="manage.cancelRecordEdit(zone_rec, zone_rec._id)">
                                [% locale.maketext('Cancel') %]
                            </button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </form>
    </div>
    <div class="row search-page-container visible-sm-block visible-xs-block hidden-lg hidden-md">
        <div class="col-xs-6">
            <div class="pull-left flip">
                <a href="{{manage.emailRoutingConfigLink()}}" target="_blank" class="btn-sm"
                    id="emailRoutingConfigLinkMobile">
                    [% locale.maketext('Email Routing Configuration') %]
                    <i class="fas fa-external-link-alt" aria-hidden="true"></i>
                </a>
                <div id="buttonDropdownMobile" class="btn-group" uib-dropdown>
                    <button type="button" id="action_btn_list_mobile" class="btn btn-default btn-sm add-record-btn"
                        ng-disabled="manage.is_loading" uib-dropdown-toggle>
                        [% locale.maketext('Actions') %]
                        <span class="caret"></span>
                        <span class="sr-only">[% locale.maketext('Click for more options.') %]</span>
                    </button>
                    <ul uib-dropdown-menu class="dropdown-menu dropdown-menu-left text-right flip" role="menu">
                        <li role="menuitem">
                        <li role="menuitem" ng-if="manage.Features.whmOnly">
                            <button id="exportZoneBtnMobile" class="actionBtn" ng-if="manage.Features.whmOnly"
                                ng-click="manage.viewRawZone()">
                                [% locale.maketext('View Raw [asis,DNS] Zone File') %]
                            </button>
                        </li>
                        <li role="separator" ng-if="manage.Features.whmOnly && manage.Features.advanced"
                            class="divider">
                        </li>
                        <li role="menuitem" ng-if="manage.Features.advanced">
                            <button id="resetZoneBtnMobile" class="actionBtn"
                                ng-class="{disabled: manage.isFormEditing()}" ng-click="manage.confirm_reset_zone()">
                                [% locale.maketext('Reset [asis,DNS] Zone') %]
                            </button>
                        </li>
                    </ul>
                </div>
            </div>

        </div>
        <div class="col-xs-6 col-sm-6">
            <div id="paginatorBottom" class="pagination-container">
                <p class="text-small text-right flip">{{manage.paginationMessage()}}</p>
                <uib-pagination id="bottomPager" ng-change="manage.selectPage()" ng-model="manage.meta.pageNumber"
                    max-size="manage.meta.maxPages" items-per-page="manage.meta.pageSize"
                    total-items="manage.meta.totalItems" direction-links="true" boundary-links="true" rotate="false"
                    first-text="<<" last-text=">>" previous-text="<" next-text=">">
                </uib-pagination>
            </div>
        </div>
    </div>
</div>
<script type="text/ng-template" id="confirm_delete.html">
    <div class="modal-header">
        <h4>[% locale.maketext('Confirm Deletion') %]</h4>
    </div>
    <div class="modal-body">
        [% locale.maketext('Are you certain that you want to delete this record?') %]
    </div>
    <div class="modal-footer">
        <button type="button"
            id="modalContinueBtn"
            cp-action="ctrl.confirm()"
            button-class="btn btn-primary btn-sm">[% locale.maketext('Continue') %]</button>
        <button type="button"
            id="modalCancelBtn"
            class="btn btn-link btn-sm"
            ng-click="ctrl.cancel()">[% locale.maketext('Cancel') %]</button>
    </div>
</script>
<script type="text/ng-template" id="confirm_reset_zone.html">
    <div class="modal-header">
        <h4>[% locale.maketext('Reset Zone') %]</h4>
    </div>
    <div class="modal-body">
        <p>[% locale.maketext('Resetting your zone file will erase any modifications you have made to your zone records. The system will attempt to preserve [asis,TXT] records. However, we recommend that you take note of any records you want to save.') %]</p>
        <p class="last-paragraph">[% locale.maketext('Are you sure you want to erase all entries and revert to the default state?') %]</p>
    </div>
    <div class="modal-footer">
        <button type="button"
            id="modalContinueBtn"
            cp-action="ctrl.confirm()"
            button-class="btn btn-primary btn-sm">[% locale.maketext('Continue') %]</button>
        <button type="button"
            id="modalCancelBtn"
            class="btn btn-link btn-sm"
            ng-click="ctrl.cancel()">[% locale.maketext('Cancel') %]</button>
    </div>
</script>
Back to Directory File Manager