diff options
author | Freya Murphy <freya@freyacat.org> | 2024-04-05 10:46:09 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2024-04-05 10:46:09 -0400 |
commit | 530bbf058781e00e588f1457b6ee589a64b74da1 (patch) | |
tree | c6cdd382a86d55538686293e51a1fc056cb59029 /src/web/_views/apps | |
parent | remove var (diff) | |
download | xssbook2-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.php | 2 | ||||
-rw-r--r-- | src/web/_views/apps/people/card.php | 26 | ||||
-rw-r--r-- | src/web/_views/apps/people/footer.php | 3 | ||||
-rw-r--r-- | src/web/_views/apps/people/header.php | 6 | ||||
-rw-r--r-- | src/web/_views/apps/people/main.php | 121 | ||||
-rw-r--r-- | src/web/_views/apps/profile/main.php | 173 |
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> |