summaryrefslogtreecommitdiff
path: root/src/web/_views/apps/people/main.php
blob: 3b45333bd40a38e42054dfb6f4ae0ad54ff7a0f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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>