summaryrefslogtreecommitdiff
path: root/src/web/_views/apps
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-04-05 10:46:09 -0400
committerFreya Murphy <freya@freyacat.org>2024-04-05 10:46:09 -0400
commit530bbf058781e00e588f1457b6ee589a64b74da1 (patch)
treec6cdd382a86d55538686293e51a1fc056cb59029 /src/web/_views/apps
parentremove var (diff)
downloadxssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.gz
xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.tar.bz2
xssbook2-530bbf058781e00e588f1457b6ee589a64b74da1.zip
i did thing oh god large commit
Diffstat (limited to 'src/web/_views/apps')
-rw-r--r--src/web/_views/apps/home/main.php2
-rw-r--r--src/web/_views/apps/people/card.php26
-rw-r--r--src/web/_views/apps/people/footer.php3
-rw-r--r--src/web/_views/apps/people/header.php6
-rw-r--r--src/web/_views/apps/people/main.php121
-rw-r--r--src/web/_views/apps/profile/main.php173
6 files changed, 223 insertions, 108 deletions
diff --git a/src/web/_views/apps/home/main.php b/src/web/_views/apps/home/main.php
index 29bf7c3..735e3d8 100644
--- a/src/web/_views/apps/home/main.php
+++ b/src/web/_views/apps/home/main.php
@@ -4,7 +4,7 @@
<?php if ($self): ?>
<div id="new-post" class="card">
<div class="row grow">
- <?php $this->view('template/pfp', array('user' => $self))?>
+ <?=pfp($self)?>
<a
id="action-new-post"
class="btn btn-alt btn-wide ml"
diff --git a/src/web/_views/apps/people/card.php b/src/web/_views/apps/people/card.php
index a44b0d4..eda49b5 100644
--- a/src/web/_views/apps/people/card.php
+++ b/src/web/_views/apps/people/card.php
@@ -4,32 +4,12 @@
class="card profile"
href="/profile?id=<?=$user['id']?>"
>
- <div class="row">
- <?php $this->view('template/pfp', array('user' => $user, 'link' => FALSE)); ?>
+ <div class="col">
+ <?=pfp($user, FALSE)?>
<div class="col ml">
<strong class=""><?=$this->format_model->name($user)?></strong>
- <span class="dim"><?=lang('joined') . ' ' . $this->format_model->date($user['created'])?></span>
- <span class="dim"><?=lang('seen') . ' ' . $this->format_model->date($user['seen'])?></span>
+ <span class="dim"><?=$user['username']?></span>
</div>
</div>
- <hr>
- <table>
- <tr>
- <td><?=lang('tbl_username')?></td>
- <td><?=$user['username']?></td>
- <tr>
- <tr>
- <td><?=lang('tbl_email')?></td>
- <td><?=$user['email']?></td>
- <tr>
- <tr>
- <td><?=lang('tbl_gender')?></td>
- <td><?=$user['gender']?></td>
- <tr>
- <tr>
- <td><?=lang('tbl_uid')?></td>
- <td><?=$user['id']?></td>
- <tr>
- </table>
</a>
<?
diff --git a/src/web/_views/apps/people/footer.php b/src/web/_views/apps/people/footer.php
new file mode 100644
index 0000000..ff93026
--- /dev/null
+++ b/src/web/_views/apps/people/footer.php
@@ -0,0 +1,3 @@
+<?php /* Copyright (c) 2024 Freya Murphy */ ?>
+<?php /* vi: syntax=php */ ?>
+</div>
diff --git a/src/web/_views/apps/people/header.php b/src/web/_views/apps/people/header.php
new file mode 100644
index 0000000..7f3d95b
--- /dev/null
+++ b/src/web/_views/apps/people/header.php
@@ -0,0 +1,6 @@
+<?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>
diff --git a/src/web/_views/apps/people/main.php b/src/web/_views/apps/people/main.php
index 171f25c..deec4c2 100644
--- a/src/web/_views/apps/people/main.php
+++ b/src/web/_views/apps/people/main.php
@@ -1,67 +1,72 @@
<?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 mb',
- attrs: array(
- 'loaded' => $loaded,
- 'pageSize' => $page_size,
- 'userCount' => $total,
- 'userMax' => $max
- )
- )?>
- <script>
+<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 >= $page_size && $page_size < $total): ?>
+ <?=ilang('action_load_users',
+ id: 'action-load-users',
+ class: 'btn btn-line btn-wide mb',
+ attrs: array(
+ 'loaded' => $loaded,
+ 'pageSize' => $page_size,
+ 'userCount' => $total,
+ 'userMax' => $max,
+ 'filterUid' => $filter_uid,
+ 'filterType' => $filer_type
+ )
+ )?>
+ <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 + '');
- $('#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 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 + '&' + urlParams;
- $.get(url, function (data) {
- if (data === '') {
- me.remove();
- return;
- }
+ let url = '/people/people?page=' + page + '&max=' + userMax;
- let container = $('#people-container');
- container.append(data);
+ if (filterType && filterUid) {
+ url += '&filter=' + filterType + '&uid=' + filterUid;
+ }
+
+ $.get(url, function (data) {
+ if (data === '') {
+ me.remove();
+ return;
+ }
- loaded += pageSize;
- if (loaded >= userCount) {
- me.remove();
- } else {
- me.attr('loaded', loaded + '');
- }
- });
+ let container = $('#people-container');
+ container.append(data);
+
+ loaded += pageSize;
+ if (loaded >= userCount) {
+ me.remove();
+ } else {
+ me.attr('loaded', loaded + '');
+ }
});
- </script>
- <?php endif ?>
-</div>
+ });
+ </script>
+<?php endif ?>
diff --git a/src/web/_views/apps/profile/main.php b/src/web/_views/apps/profile/main.php
index afa45bc..e3d65b5 100644
--- a/src/web/_views/apps/profile/main.php
+++ b/src/web/_views/apps/profile/main.php
@@ -1,37 +1,158 @@
+<?php /* Copyright (c) 2024 Freya Murphy */ ?>
+<?php /* vi: syntax=php */ ?>
<div id="main-content">
- <div id="profile-header" class="col">
- <div class="banner image-loading">
- <img src="/api/rpc/profile_banner?user_id=<?=$user['id']?>">
- </div>
- <div class="info row">
- <div class="pfp-wrapper">
- <?php $this->view('template/pfp', array('user' => $user)); ?>
- </div>
- <div class="col content">
- <strong class="name"><?=$this->format_model->name($user)?></strong>
- <span class="dim"><?=lang('joined') . $this->format_model->date($user['created'])?></span>
+ <div id="profile-header-container">
+ <div id="profile-header" class="col">
+ <?=image('/api/rpc/profile_banner?user_id=' . $user['id'], 'banner')?>
+ <div class="info row">
+ <div class="pfp-wrapper">
+ <?=pfp($user)?>
+ </div>
+ <div class="col content">
+ <strong class="name"><?=$this->format_model->name($user)?></strong>
+ <span class="dim"><?=$user['follower_count'] . ' ' . lang('followers')?></span>
+ <?php if(strlen($user['profile_bio']) > 0): ?>
+ <br>
+ <strong><?=lang('bio')?></strong>
+ <span class="dim"><?=$user['profile_bio']?></span>
+ <?php endif; ?>
+ </div>
</div>
+ <hr>
+ <div class="row options">
+ <?=ilang('action_posts',
+ sub: [$user['first_name']],
+ class: 'btn btn-blue btn-border',
+ id: 'action-posts'
+ )?>
+ <?=ilang('action_about',
+ sub: [$user['first_name']],
+ class: 'btn',
+ id: 'action-about'
+ )?>
+ <?=ilang('action_followers',
+ sub: [$user['first_name']],
+ class: 'btn',
+ id: 'action-followers'
+ )?>
+ <?=ilang('action_following',
+ sub: [$user['first_name']],
+ class: 'btn',
+ id: 'action-following'
+ )?>
</div>
- <hr>
- <div class="row options">
- <?=ilang('action_posts',
- sub: [$user['first_name']],
- class: 'btn'
- )?>
- <?=ilang('action_about',
- sub: [$user['first_name']],
- class: 'btn'
- )?>
- <?=ilang('action_friends',
- sub: [$user['first_name']],
- class: 'btn'
- )?>
</div>
</div>
- <div id="#tab-posts">
+ <div id="tab-posts" class="tab">
<?php
$_GET['user_id'] = $user['id'];
$this->post_controller->index();
?>
</div>
+ <div id="tab-about" class="tab">
+ <h1><?=lang('about_general')?></h1>
+ <table>
+ <tr>
+ <td><strong><?=lang('about_general_username')?></strong></td>
+ <td><?=$user['username']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_general_full_name')?></strong></td>
+ <td><?=$user['first_name'] . ' ' . $user['last_name']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_general_email')?></strong></td>
+ <td><?=$user['email']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_general_gender')?></strong></td>
+ <td><?=$user['gender']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_general_birth_date')?></strong></td>
+ <td><?=$user['birth_date']?></td>
+ </tr>
+ </table>
+ <h1><?=lang('about_stats')?></h1>
+ <table>
+ <tr>
+ <td><strong><?=lang('about_stats_posts')?></strong></td>
+ <td><?=$user['post_count']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_stats_like')?></strong></td>
+ <td><?=$user['like_count']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_stats_comments')?></strong></td>
+ <td><?=$user['comment_count']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_stats_following')?></strong></td>
+ <td><?=$user['followed_count']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_stats_joined')?></strong></td>
+ <td><?=$user['created']?></td>
+ </tr>
+ <tr>
+ <td><strong><?=lang('about_stats_seen')?></strong></td>
+ <td><?=$user['seen']?></td>
+ </tr>
+ </table>
+ </div>
+ <div id="tab-followers" class="tab">
+ <?php
+ $_GET['filter'] = 'follower';
+ $_GET['uid'] = $user['id'];
+ $this->people_controller->content();
+ ?>
+ </div>
+ <div id="tab-following" class="tab">
+ <?php
+ $_GET['filter'] = 'followee';
+ $_GET['uid'] = $user['id'];
+ $this->people_controller->content();
+ ?>
+ </div>
+ </div>
+ <script>
+ let tabs = {};
+
+ const disableTab = (tab) => {
+ tab.btn.removeClass('btn-blue');
+ tab.btn.removeClass('btn-border');
+ tab.tab.css('display', 'none');
+ };
+
+ const enableTab = (tab) => {
+ tab.btn.addClass('btn-blue');
+ tab.btn.addClass('btn-border');
+ tab.tab.css('display', '');
+ };
+
+ const loadTab = (name, disable = true) => {
+ let btn = $('#action-' + name);
+ btn.on('click', function() {
+ for (let tab of Object.values(tabs)) {
+ disableTab(tab);
+ }
+ enableTab(tabs[name]);
+ });
+
+ tabs[name] = {
+ 'btn': btn,
+ 'tab': $('#tab-' + name)
+ };
+
+ if (disable) {
+ disableTab(tabs[name]);
+ }
+ };
+
+ loadTab('posts', false);
+ loadTab('about');
+ loadTab('followers');
+ loadTab('following');
+ </script>
</div>