Viewing File: /usr/local/cpanel/shared/templates/paginate.tmpl
[%-
#----------------------------------------------------------------------
#For UAPI, this accepts:
# uapi_result (a Cpanel::Result object)
#
#For API 2, this uses the following globals:
# CPANEL.CPVAR.api2_paginate_total
# CPANEL.CPVAR.api2_sort_column
# CPANEL.CPVAR.api2_sort_reverse
# CPANEL.CPVAR.currentpage
# CPANEL.CPVAR.itemsperpage
# CPANEL.CPVAR.pages
#
#In either case, this uses the following globals:
# CPANEL.CPVAR.pager_all_selected
# CPANEL.CPVAR.pager_max_items_per_page
# CPANEL.CPVAR.pager_scope
# CPANEL.FORM.has_search_sort
# CPANEL.FORM.searchregex
#
#...as well as everything in the "config" hash below.
#----------------------------------------------------------------------
# Define the leading/trailing window size
SET MAX_LEADING_PAGES = 3;
SET MAX_TRAILING_PAGES = 3;
# Define other module defaults
SET DEFAULT_SHOW_ALL_OPTION = 0; # DONT SHOW THE ALL BUTTON BY DEFAULT
SET DEFAULT_SHOW_ALL_SUPER_OPTION = 0; # DONT SHOW THE SUPER ALL BUTTON BY DEFAULT
SET DEFAULT_MAX_ITEMS_PER_PAGE = 1000; # LETS KEEP THE MAX ITEMS TO 1000 or less unless explicitly set by the developer.
SET DEFAULT_SHOW_PAGE_SIZE_SELECTOR = 1; # SHOW THE PAGE SIZE SELECTOR
SET DEFAULT_SHOW_PAGE_SELECTOR = 1; # SHOW THE PAGE SELECTOR
# Make sure the Scope has a default value. pager_scope is
# defined externally only when you need two pagers on the same
# page, otherwise leave it empty and it gets set to DEFAULT.
SET pager_scope = CPANEL.CPVAR.pager_scope || "DEFAULT";
SET max_items_per_page = (CPANEL.CPVAR.pager_max_items_per_page || DEFAULT_MAX_ITEMS_PER_PAGE);
IF uapi_result;
SET items_per_page = uapi_result.metadata('paginate').results_per_page;
SET current_page = uapi_result.metadata('paginate').current_page;
SET total_results = uapi_result.metadata('paginate').total_results;
SET total_pages = uapi_result.metadata('paginate').total_pages;
SET sort_column = uapi_result.finished_sorts.0.column;
SET sort_reverse = uapi_result.finished_sorts.0.reverse;
ELSE;
IF CPANEL.CPVAR.itemsperpage > max_items_per_page;
SET items_per_page = max_items_per_page;
ELSE;
SET items_per_page = CPANEL.CPVAR.itemsperpage;
END;
SET current_page = CPANEL.CPVAR.currentpage;
SET total_results = CPANEL.CPVAR.api2_paginate_total;
SET total_pages = CPANEL.CPVAR.pages;
SET sort_column = CPANEL.CPVAR.api2_sort_column;
SET sort_reverse = CPANEL.CPVAR.api2_sort_reverse;
END;
# Capture the data for the pager
SET data = {
scope => pager_scope,
search => CPANEL.FORM.searchregex || "",
perpage => items_per_page || 10,
sortcolumn => sort_column || "",
sortrev => sort_reverse || 0,
page => current_page || 1,
matches => total_results || 0,
pagecount => total_pages || 0,
all_selected => CPANEL.CPVAR.pager_all_selected || 0,
has_search_sort => CPANEL.FORM.has_search_sort || CPANEL.FORM.searchregex || sort_column || sort_reverse,
#-------------------------------------------------------------------------------------------------------------------------
# Looks for the standard search and sort elements as well as the special flag used when setting custom search/sort rules
# If your search or sort uses non-standard or multiple filter or sort rules, set the FORM.has_search_sort flag to true when
# the user action or server run defines a none default filter or sort property.
# NOTE: This flag is only used for the "Show All (Remove search/sort)" system.
#-------------------------------------------------------------------------------------------------------------------------
};
# Capture the configuration for the pager template
SET config = {
page_label => CPANEL.CPVAR.pager_page_label || locale.maketext("Page:"),
first_item_label => CPANEL.CPVAR.pager_first_item_label || locale.maketext("First"),
last_item_label => CPANEL.CPVAR.pager_last_item_label || locale.maketext("Last"),
all_label => CPANEL.CPVAR.pager_all_label || locale.maketext("All"),
all_title => CPANEL.CPVAR.pager_all_title || locale.maketext("View all the items matching the current filter."),
forget_filters_label => CPANEL.CPVAR.pager_forget_filters_label || locale.maketext("All (Forget Search/Sort)"),
forget_filters_title => CPANEL.CPVAR.pager_forget_filters_title || locale.maketext("View all the accounts after removing the current filter."),
page_title_key => CPANEL.CPVAR.pager_page_title || "Navigate to page [numf,_1].",
items_per_page_label => CPANEL.CPVAR.pager_items_per_page_label || locale.maketext("Per[output,nbsp]Page:"),
items_per_page_title => CPANEL.CPVAR.pager_items_per_page_title || locale.maketext("Items displayed per page."),
change_page_size_label=> CPANEL.CPVAR.pager_change_page_size_label || locale.maketext("Go"),
show_all_option => CPANEL.CPVAR.pager_show_all_option || DEFAULT_SHOW_ALL_OPTION,
show_all_super_option => CPANEL.CPVAR.pager_show_all_super_option || DEFAULT_SHOW_ALL_SUPER_OPTION,
max_items_per_page => max_items_per_page,
show_page_size_sel => CPANEL.CPVAR.pager_show_page_size_sel || DEFAULT_SHOW_PAGE_SIZE_SELECTOR,
max_leading_pages => CPANEL.CPVAR.pager_max_leading_pages || MAX_LEADING_PAGES,
max_trailing_pages => CPANEL.CPVAR.pager_max_trailing_pages || MAX_TRAILING_PAGES,
paged_label => CPANEL.CPVAR.pager_paged_label || locale.maketext("Paged"),
paged_title_key => CPANEL.CPVAR.pager_page_size_title_key || "View the items in sets of [numf,_1].",
show_page_sel => CPANEL.CPVAR.pager_show_page_sel || DEFAULT_SHOW_PAGE_SELECTOR,
};
# Force paramertized keys into the lexicon cache
SET temp = locale.maketext("Navigate to page [numf,_1].", 1);
SET temp = locale.maketext("View the items in sets of [numf,_1].", 1);
# Calculate the paging window.
SET first_leading_page = (((data.page - config.max_leading_pages) > 0) ? (data.page - config.max_leading_pages) : 1);
SET last_trailing_page = (((data.page + config.max_trailing_pages) <= data.pagecount) ? (data.page + config.max_trailing_pages) : data.pagecount);
-%]
<div class="pager-container">
<div class="pager-c1">
<div class="pager-c2">
<div>
[% IF config.show_page_sel %]
<span class="pager-page-selector">
<span class="pager-page-item pager-page-item-label">[% config.page_label %]</span>
[%- IF data.page == 1 || data.page == 'all' -%]
<span class="pager-page-item pager-page-select-disabled pager-page-action">
<span>[% config.first_item_label %]</span>
</span>
[%- ELSE -%]
<span class="pager-page-item pager-page-select pager-page-action" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',1, 1, 0);">
<a id="[%data.scope%]-navigate-first" href="javascript:void(0)" title="[% locale.makevar(config.page_title_key, 1) %]" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',1, 1, 0);">[% config.first_item_label %]</a>
</span>
[%- END -%]
[%- IF (data.page - config.max_leading_pages > 1) %]
<span class="pager-page-item pager-ellipse">
<span>…</span>
</span>
[%- END -%]
[%- SET page = first_leading_page;
WHILE page <= last_trailing_page;
SET selected = (page == data.page);
IF (page >= first_leading_page) && (page <= last_trailing_page);
IF data.page == 'all' -%]
<span class="pager-page-item pager-page-select-disabled pager-page-action">
<span>[% page %]</span>
</span>
[%- ELSE -%]
<span class="pager-page-item[%- IF selected -%] pager-page-selected[%- END -%] pager-page-select" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',[% ((page - 1) * data.perpage) + 1 %], [% page %], [% page - 1 %]);">
<a id="[% data.scope %]-navigate-[% page %]" href="javascript:void(0)" title="[% locale.makevar(config.page_title_key, page) %]" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',[% ((page - 1) * data.perpage) + 1 %], [% page %], [% page - 1 %]);">[% page %]</a>
</span>
[%- END -%]
[%- END;
SET page = page + 1; -%]
[%- END -%]
[%- IF ((data.page + config.max_trailing_pages) < data.pagecount) %]
<span class="pager-page-item pager-ellipse">
<span>…</span>
</span>
[%- END -%]
[% IF data.page == data.pagecount || data.page == 'all' || data.matches == 0 %]
<span class="pager-page-item pager-page-select-disabled pager-page-action">
<span>[% config.last_item_label %]</span>
</span>
[% ELSE %]
<span class="pager-page-item pager-page-select pager-page-action" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',[% ((data.pagecount - 1) * data.perpage) + 1 %], [% data.pagecount %], [% data.pagecount - 1 %]);">
<a id="[%data.scope%]-navigate-last" href="javascript:void(0)" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',[% ((data.pagecount - 1) * data.perpage) + 1 %], [% data.pagecount %], [% data.pagecount - 1 %]);" title="[% locale.makevar(config.page_title_key, "${data.pagecount}") %]">[% config.last_item_label%]</a>
</span>
[% END %]
[% IF config.show_all_option %]
[% IF data.page == 'all' %]
<span class="pgitempgsel pager-page-action" >
<a id="[%data.scope%]-navigate-paged" href="javascript:void(0)" onclick="return CPANEL.ui.widgets.pager.fireGoToPage('[%data.scope%]',1, 1, 0);" title='[% locale.makevar(config.paged_title_key, "${data.perpage}")%]'>[% config.paged_label %]</a>
</span>
[% END %]
<span class="[% IF data.all_selected %]pager-page-selected [% END %]pager-page-item pager-page-select pager-page-action" >
<a id="[%data.scope%]-navigate-all-with-filter" href="javascript:void(0)" onclick="return fireShowAll('[%data.scope%]', false /* USE FILTERS */);" title="[% config.all_title %]">[% config.all_label %]</a>
</span>
[% IF config.show_all_super_option && data.has_search_sort %]
<span class="pager-page-item pager-page-select pager-page-action" >
<a id="[%data.scope%]-navigate-all" href="javascript:void(0)" onclick="return fireShowAll('[%data.scope%]', true /* NO FILTERS */);" title="[% config.forget_filters_title %]">[% config.forget_filters_label %]</a>
</span>
[% END %]
[% END %]
<span class="pager-page-item"> </span>
</span>
[% END %]
[% IF config.show_page_size_sel %]
<span class="pager-page-size-selector">
<form onsubmit="CPANEL.ui.widgets.pager.fireChangePageSize('[% data.scope %]', YAHOO.util.Dom.get('[%data.scope%]-page-itemsperpage').value, true); return false;" style="display:inline">
<label for="[%data.scope%]-page-itemsperpage" title="[% config.items_per_page_title %]" [% IF data.page == 'all' %]class="disabled"[% END %]>[% config.items_per_page_label %]</label>
<input id="[%data.scope%]-page-itemsperpage" onchange="return CPANEL.ui.widgets.pager.fireChangePageSize('[% data.scope %]', this.value, false);" type="text" name="itemsperpage" value="[% data.perpage %]" [% IF data.page == 'all' %]disabled="disabled"[% END %] />
</form>
<button id="[%data.scope%]-page-itemsperpage-button" class="input-button" onclick="return CPANEL.ui.widgets.pager.fireChangePageSize('[% data.scope %]', YAHOO.util.Dom.get('[%data.scope%]-page-itemsperpage').value, true);">[% config.change_page_size_label %]</button>
</span>
[% END %]
</div>
</div>
</div>
</div>
<script type="text/javascript">
(function(CPANEL) {
YAHOO.util.Event.onDOMReady( function() {
// Setup all the parameters from the form
var params = {};
[% FOREACH pair IN CPANEL.FORM.pairs %]
params[[% pair.key.json() %]] = [% pair.value.json() %];
[% END %]
// Configure the ones important for paging to match the data set conditions
params['api2_paginate_start'] = [% ((data.page - 1) * data.perpage) + 1 %];
params['page'] = [% data.page %];
params['skip'] = [% data.skip - 1 %];
params['api2_sort_column'] = [% data.sortcolumn.json() %];
params['api2_sort_reverse'] = [% data.sortrev.json() %];
params['itemsperpage'] = [% data.perpage.json() %];
params['searchregex'] = [% data.search.json() %];
// Initialize the pager
CPANEL.ui.widgets.pager.initialize('[% data.scope %]', null, params);
});
})(window["CPANEL"]);
</script>
Back to Directory
File Manager