diff options
Diffstat (limited to 'src/web/_views/people/main.php')
-rw-r--r-- | src/web/_views/people/main.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/web/_views/people/main.php b/src/web/_views/people/main.php new file mode 100644 index 0000000..c602b2c --- /dev/null +++ b/src/web/_views/people/main.php @@ -0,0 +1,76 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ ?> +<div id="people-container" class="col"> + <?php $pdata = $this->people(); ?> +</div> +<?php + + $loaded = count($pdata['users']); + $page_size = $pdata['page_size']; + $total = $pdata['count']; + $max = $pdata['max_id']; + $filter_uid = $pdata['filter_uid']; + $filer_type = $pdata['filter_type']; + +?> +<?php if ($loaded == 0): ?> + <div id="no-people" class="card"> + <?=lang('no_people_found')?> + </div> +<?php endif; ?> +<?php if ($loaded >= $page_size && $page_size < $total): ?> + <?=ilang('action_load_users', + id: 'action-load-users', + class: 'btn btn-blend grow mb', + attrs: array( + 'loaded' => $loaded, + 'pageSize' => $page_size, + 'userCount' => $total, + 'userMax' => $max, + 'filterUid' => $filter_uid, + 'filterType' => $filer_type + ) + )?> + <script> + + $('#action-load-users').on('click', function() { + let me = $(this); + let page = me.attr('page'); + if (!page) { + page = '1'; + } + let newPage = Number(page) + 1; + me.attr('page', newPage + ''); + + let loaded = Number(me.attr('loaded')); + let pageSize = Number(me.attr('pageSize')); + let userCount = Number(me.attr('userCount')); + let userMax = Number(me.attr('userMax')); + + let filterType = me.attr('filterType'); + let filterUid = me.attr('filterUid'); + + let url = '/people/people?page=' + page + '&max=' + userMax; + + if (filterType && filterUid) { + url += '&filter=' + filterType + '&uid=' + filterUid; + } + + $.get(url, function (data) { + if (data === '') { + me.remove(); + return; + } + + let container = $('#people-container'); + container.append(data); + + loaded += pageSize; + if (loaded >= userCount) { + me.remove(); + } else { + me.attr('loaded', loaded + ''); + } + }); + }); + </script> +<?php endif ?> |