diff options
Diffstat (limited to 'src/web/_views/apps/people/main.php')
-rw-r--r-- | src/web/_views/apps/people/main.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/web/_views/apps/people/main.php b/src/web/_views/apps/people/main.php new file mode 100644 index 0000000..3b45333 --- /dev/null +++ b/src/web/_views/apps/people/main.php @@ -0,0 +1,67 @@ +<?php /* Copyright (c) 2024 Freya Murphy */ ?> +<?php /* vi: syntax=php */ ?> +<div id="main-content" class="col"> + <h1 class="title"><?=lang('title')?></h1> + <h3 class="desc"><?=lang('desc')?></h3> + <hr> + <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']; + ?> + <?php if ($loaded >= $page_size && $page_size < $total): ?> + <?=ilang('action_load_users', + id: 'action-load-users', + class: 'btn btn-line btn-wide mt mb', + attrs: array( + 'loaded' => $loaded, + 'pageSize' => $page_size, + 'userCount' => $total, + 'userMax' => $max + ) + )?> + <script> + + var urlParams = new URLSearchParams(window.location.search).toString(); + + $('#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 url = '/people/people?page=' + page + '&max=' + userMax + '&' + urlParams; + $.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 ?> +</div> |