Files
poky/bitbake/lib/toaster/toastergui/templates/basetable_bottom.html
Marius Avram 69e5cbdac5 bitbake: toaster: use cookies for count and sorting in templates tables
Until now cookies were used to save which columns were shown and which
were hidden in toaster tables. The tables from the templates also have
functionalities like sorting the entries on a certain column and
limiting the number of entries displayed on a page. The later however
were not saved using cookies. This patch brings this new feature.

The cookies are not saved only in the front-end. They are saved both
in the frontend in case the user uses the inputs/buttons to change
a parameter and also in the backend in case the user specifies manually
using GET variables the value of the parameters.

When no GET parameters are given the views will redirect the url to one
containg the parameters saved as cookies. When no cookies exist, default
values will be used.

[YOCTO #6126]

(Bitbake rev: 880b58c845e3a501fa90d24e1bd89c87ca84b709)

Signed-off-by: Marius Avram <marius.avram@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-05 10:14:25 +01:00

95 lines
3.1 KiB
HTML

</tbody>
</table>
<!-- Show pagination controls -->
<div class="pagination pagination-centered">
<div class="pull-left">
Showing {{objects.start_index}} to {{objects.end_index}} out of {{objects.paginator.count}} entries.
</div>
<ul class="pagination" style="display: block-inline">
{%if objects.has_previous %}
<li><a href="javascript:reload_params({'page':{{objects.previous_page_number}}})">&laquo;</a></li>
{%else%}
<li class="disabled"><a href="#">&laquo;</a></li>
{%endif%}
{% for i in objects.page_range %}
<li{%if i == objects.number %} class="active" {%endif%}><a href="javascript:reload_params({'page':{{i}}})">{{i}}</a></li>
{% endfor %}
{%if objects.has_next%}
<li><a href="javascript:reload_params({'page':{{objects.next_page_number}}})">&raquo;</a></li>
{%else%}
<li class="disabled"><a href="#">&raquo;</a></li>
{%endif%}
</ul>
<div class="pull-right">
<span class="help-inline" style="padding-top:5px;">Show rows:</span>
<select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
{% with "2 5 10 25 50 100" as list%}
{% for i in list.split %}<option value="{{i}}">{{i}}</option>
{% endfor %}
{% endwith %}
</select>
</div>
</div>
<!-- Update page display settings -->
<script>
$(document).ready(function() {
// we load cookies for the column display
save = $.cookie('_displaycols_{{objectname}}');
if (save != undefined) {
setting = save.split(';');
for ( i = 0; i < setting.length; i++) {
if (setting[i].length > 0) {
splitlist = setting[i].split(':');
id = splitlist[0], v = splitlist[1];
if (v == 'true') {
$('.chbxtoggle#'+id).prop('checked', true);
}
else {
$('.chbxtoggle#'+id).prop('checked', false);
}
}
}
}
// load cookie for number of entries to be displayed on page
pagesize = $.cookie('count');
if (!pagesize)
pagesize = 10;
$('.pagesize option').prop('selected', false)
.filter('[value="' + pagesize + '"]')
.attr('selected', true);
$('.chbxtoggle').each(function () {
showhideTableColumn($(this).attr('id'), $(this).is(':checked'))
});
//turn edit columns dropdown into a multi-select menu
$('.dropdown-menu input, .dropdown-menu label').click(function(e) {
e.stopPropagation();
});
//show tooltip with applied filter
$('#filtered').tooltip({container:'table', placement:'bottom', delay:{hide:1500}, html:true});
//progress bar tooltip
$('.progress, .lead span').tooltip({container:'table', placement:'top'});
$(".pagesize").change(function () {
reload_params({"count":$(this).val()});
// save cookie with pagesize
$.cookie("count", $(this).val(), { path : $(location).attr('pathname') });
});
});
</script>
<!-- modal filter boxes -->
{% for tc in tablecols %}{% if tc.filter %}{% with objectname=objectname f=tc.filter %}
{% include "filtersnippet.html" %}
{% endwith %}{% endif %} {% endfor %}
<!-- end modals -->