Viewing File: /usr/local/cpanel/base/frontend/jupiter/mail/lists/lists.tt
[%
USE JSON;
USE HTTP;
SET domain = RAW_FORM.domain;
SET translated_access_type = {
public => locale.maketext('public'),
private => locale.maketext('private'),
};
PROCESS '_ajaxapp.tmpl';
-%]
<h2>[% locale.maketext('Current Lists') %]</h2>
<cp-alert-list></cp-alert-list>
<section class="sg-example" ng-controller="mainController as main">
<div class="list-container">
<div class="row search-page-container ng-cloak">
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-4" id="topSearchBox">
<search id="search_box" ng-model="main.model.filterValue"></search>
</div>
<div class="col-xs-1">
<span spinner
id="topSpinner"
class="headerSpinner"
title="[% locale.maketext('Loading …') %]"></span>
</div>
<div class="col-xs-12 col-sm-6 col-md-7 col-lg-7" >
<div class="pagination-container hidden-xs hidden-sm">
<page-size
id="DEFAULT-page-itemsperpage"
total-items="main.model.totalResults"
show-all="true"
ng-model="main.model.pageSize">
</page-size>
<div id="topPager"
uib-pagination
ng-if="main.model.pageSize > 0 && main.model.totalResults > main.model.pageSize"
ng-change="main.model.selectPage(page)"
ng-model="main.model.page"
items-per-page="main.model.pageSize"
total-items="main.model.totalResults"
max-size="4"
boundary-links="true"
previous-text="<" next-text=">" first-text="<<" last-text=">>"
class="pagination-small">
</div>
</div>
</div>
</div>
<table id="mailingListsTable" class="table table-striped responsive-table ng-cloak" ng-controller="mailingListsController as listsController">
<thead>
<tr>
<th ng-repeat="column in listsController.getHeaders()" class="lists-col-header lists-col-header-{{column.key}}">
<span toggle-sort
id="toggleSort_{{column.key | qaSafeID}}"
ng-if="column.key != 'functions'"
onsort="main.model.dataSorted"
sort-meta="main.model.meta.sort"
sort-field="{{column.key}}">{{column.name}}</span>
<span ng-if="column.key == 'functions'">{{column.name}}</span>
</th>
</tr>
</thead>
<tbody>
<tr
id="datarow_{{list.list | qaSafeID}}"
ng-if="listsController.getLists().length" ng-repeat="list in listsController.getLists()" class='lists-row'>
<td data-title="{{column.name}}" ng-repeat-start="column in listsController.getHeaders()" ng-if="column.key == 'accesstype'" >
<span ng-controller="PrivacyWindowController as privacy"><a
id="datarow_{{list.list | qaSafeID}}_privacy_btn"
href="javascript:void(0)" ng-click="privacy.open(list, $event)" title="[% locale.maketext('Edit this mailing list’s privacy options.') %]" ng-bind="list.getAttribute(column.key)"> </a></span>
</td>
<td data-title="{{column.name}}" ng-if="column.key == 'functions'" class='lists-function-cell'>
<a id="datarow_{{list.list | qaSafeID}}_delete_btn" class="btn btn-link" href="dodellist.html?email={{list.list | escape}}">
<span class="glyphicon glyphicon-trash"></span>
[% locale.maketext('Delete') %]
</a>
<a id="datarow_{{list.list | qaSafeID}}_password_btn" class="btn btn-link" href="passwdlist.html?email={{list.list | escape}}">
<span class="glyphicon glyphicon-pencil"></span>
[% locale.maketext('Change Password') %]
</a>
<a id="datarow_{{list.list | qaSafeID}}_manage_btn" class="btn btn-link" target="_blank" href="loginlist.html?email={{list.list | escape}}&domain={{listsController.domain | escape}}&return_url=[% HTTP.get_client_url().uri() %]">
<span class="glyphicon glyphicon-pencil"></span>
[% locale.maketext('Manage') %]
</a>
<a id="datarow_{{list.list | qaSafeID}}_delegate_btn" class="btn btn-link" href="delegatelist.html?email={{list.list | escape}}">
<span class="fas fa-users"></span>
[% locale.maketext('Delegation') %]
</a>
</td>
<td data-title="{{column.name}}" ng-if="column.key == 'listadmin'">
<span
ng-bind-html='list.formatListAdmins({maxCols:20,maxItems:3,separator:"<br />"})'
title='{{list.formatListAdmins({maxItems:3,separator:"\n"})}}'></span>
</td>
<td data-title="{{column.name}}" ng-if="column.key != 'accesstype' && column.key != 'functions' && column.key != 'listadmin'" ng-repeat-end class="list-column-{{column.key}}">
<p class="truncate" ng-bind="list.getAttribute(column.key)" title="{{list.getAttribute(column.key)}}"></p>
</td>
</tr >
<tr ng-if="!listsController.getLists().length && !main.model.loading" class="info empty-row">
<td colspan="{{listsController.getHeaders().length}}">No results found ...</td>
</tr>
</tbody>
</table>
<div class="row search-page-container visible-sm-block visible-xs-block hidden-lg hidden-md ng-cloak">
<div class="col-xs-12 col-sm-12">
<div>
<div id="bottomPager"
uib-pagination
ng-if="main.model.pageSize && main.model.totalResults > main.model.pageSize"
ng-change="main.model.selectPage(page)"
ng-model="main.model.page"
items-per-page="main.model.pageSize"
total-items="main.model.totalResults"
max-size="4"
boundary-links="true"
previous-text="<" next-text=">" first-text="<<" last-text=">>"
class="pagination-small">
</div>
<div class="col-xs-2">
<spinner
id="bottomSpinner"
class="headerSpinner"
title="[% locale.maketext('Loading …') %]"></spinner>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- table -->
[%
SET application_dir = ExpVar.expand('$basedir') _ "/lists/";
SET file = ExpVar.expand('$basefilename');
SET requirejs_url_base = '/frontend/' _ CPANEL.CPDATA.RS;
SET listlists = execute('Email', 'list_lists', {
domain => domain,
regex => RAW_FORM.searchregex,
'api.paginate_start' => 1,
'api.paginate_size' => CPANEL.CPVAR.itemsperpage,
} );
%]
[% IF page_notice_args -%]
[% SET PAGE = { notice => page_notice_args } -%]
[% ELSE -%]
[% SET PAGE = {
lists => listlists.data,
'translated_access_type' => translated_access_type,
} -%]
[% END -%]
<script>
CPANEL.namespace("CPANEL.PAGE");
CPANEL.PAGE = [% JSON.stringify(PAGE) -%];
CPANEL.PAGE.initData = {
lists: CPANEL.PAGE.lists,
totalPages: [% listlists.metadata.paginate.total_pages.json() -%],
totalResults: [% listlists.metadata.paginate.total_results.json() -%],
resultsPerPage: [% listlists.metadata.paginate.results_per_page.json() -%]
};
CPANEL.PAGE.THEME_PATH = [% requirejs_url_base.json() %];
CPANEL.PAGE.domain = [% domain.json() %];
window.PAGE = CPANEL.PAGE;
</script>
[% PROCESS '_assets/cjt2_header_include.tt' %]
<script type="text/x-handlebars-template" id="change_list_privacy_template">
<p>[% locale.maketext('You can adjust this mailing list’s privacy settings below.') %]</p>
<p>
<input type="checkbox" id="advertised_checkbox" name="advertised" value="1" {{#if advertised}}checked{{/if}}>
<label for="advertised_checkbox">[% locale.maketext('Include this list in [asis,Mailman]’s public advertisement of this server’s mailing lists.') %]</label>
</p>
<p>
<input type="checkbox" id="archive_private_checkbox" name="archive_private" value="1" {{#if archive_private}}checked{{/if}}>
<label for="archive_private_checkbox">[% locale.maketext('Keep this list’s archives private.') %]</label>
</p>
<p>
<input type="radio" id="subscribe_1_radio" name="subscribe_policy" value="1" {{#if subscribe_policy_is_1}}checked{{/if}}>
<label for="subscribe_1_radio">[% locale.maketext('Require only email confirmation for new subscribers.') %]</label>
<br>
<input type="radio" id="subscribe_2_radio" name="subscribe_policy" value="2" {{#if subscribe_policy_is_2}}checked{{/if}}>
<label for="subscribe_2_radio">[% locale.maketext('Require only administrator approval for new subscribers.') %]</label>
<br>
<input type="radio" id="subscribe_3_radio" name="subscribe_policy" value="3" {{#if subscribe_policy_is_3}}checked{{/if}}>
<label for="subscribe_3_radio">[% locale.maketext('Require both administrator approval and email confirmation for new subscribers.') %]</label>
</p>
<p class="row-of-buttons">
<button type="button" class="set-private-values">[% locale.maketext('Use “Private” Settings') %]</button>
<button type="reset">[% locale.maketext('Reset Form') %]</button>
</p>
<p>[% locale.maketext('This set of privacy configurations constitutes access type: [_1]', '<span class="highlighted" id="form_access_type"></span>') %]</p>
</script>
Back to Directory
File Manager