summaryrefslogtreecommitdiff
path: root/src/web/_views/_modal
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/_views/_modal')
-rw-r--r--src/web/_views/_modal/about.php9
-rw-r--r--src/web/_views/_modal/new_post.php56
-rw-r--r--src/web/_views/_modal/register.php178
3 files changed, 243 insertions, 0 deletions
diff --git a/src/web/_views/_modal/about.php b/src/web/_views/_modal/about.php
new file mode 100644
index 0000000..4bc7a4f
--- /dev/null
+++ b/src/web/_views/_modal/about.php
@@ -0,0 +1,9 @@
+<?php /* Copyright (c) 2024 Freya Murphy */ ?>
+<?php /* vi: syntax=php */ ?>
+<div id="about-menu" class="modal-content">
+ <div><span class="logo">xssbook</span></div>
+ <div><span class="mb"><?=ucfirst(lang('version'))?></span></div>
+ <div><span><?=ucfirst(lang('copyright'))?></span></div>
+ <div><a class="btn btn-primary mt" href="https://g.freya.cat/freya/xssbook2">Source Code</a></div>
+ <div><p>For reports of abuse, please email <a class="btn-primary" href="mailto:contact@freyacat.org">contact@freyacat.org</a></p></div>
+</div>
diff --git a/src/web/_views/_modal/new_post.php b/src/web/_views/_modal/new_post.php
new file mode 100644
index 0000000..aff19a5
--- /dev/null
+++ b/src/web/_views/_modal/new_post.php
@@ -0,0 +1,56 @@
+<?php /* Copyright (c) 2024 Freya Murphy */ ?>
+<?php /* vi: syntax=php */ ?>
+<form id="new-post-form">
+<div class="modal-content new-post-modal">
+ <div class="row">
+ <?=pfp($session)?>
+ <div class="col ml">
+ <strong><?=$session['first_name'] . ' ' . $session['last_name']?></strong>
+ <span class="subtext"><?=ucfirst(lang('now'))?></span>
+ </div>
+ </div>
+ <textarea
+ type="text"
+ name="content"
+ id="new-post-content"
+ placeholder="<?=ucfirst(lang('action_new_post_text', sub: [$session['first_name']]))?>"
+ ></textarea>
+</div>
+<div class="modal-footer">
+ <?=ilang('action_submit',
+ id: 'new-post-submit',
+ class: 'btn btn-submit btn-alt grow',
+ attrs: array('type' => 'submit'),
+ type: 'button',
+ )?>
+</div>
+</form>
+<script>
+ $('#new-post-form').submit(function(e) {
+ e.preventDefault();
+ let content = $('#new-post-content').val();
+ let me = $(this);
+
+ const getPost = function(data) {
+ if (data) {
+ $('#post-container').prepend(data);
+ }
+ me.closest('.modal-container').remove();
+ }
+
+ const onPost = function(data) {
+ let id = data[0].id;
+ $.get({
+ url: '/_post/post?id=' + id,
+ success: getPost
+ });
+ }
+
+ $.ajax({
+ url: '/api/post',
+ method: 'POST',
+ data: JSON.stringify({ content }),
+ success: onPost
+ });
+ });
+</script>
diff --git a/src/web/_views/_modal/register.php b/src/web/_views/_modal/register.php
new file mode 100644
index 0000000..2126d0d
--- /dev/null
+++ b/src/web/_views/_modal/register.php
@@ -0,0 +1,178 @@
+
+<?php /* Copyright (c) 2024 Freya Murphy */ ?>
+<?php /* vi: syntax=php */ ?>
+<form id="register-form">
+<div class="modal-content register-modal col">
+ <label>
+ <?=ucwords(lang('ph_basic_info'))?>
+ </label>
+ <div class="row mt">
+ <div class="form-input grow">
+ <input
+ type="text"
+ name="first_name"
+ id="register-first-name"
+ placeholder=" "
+ >
+ <label for="first_name">
+ <?=ucwords(lang('ph_first_name'))?>
+ </label>
+ </div>
+ <div class="form-input ml grow">
+ <input
+ type="text"
+ name="last_name"
+ id="register-last-name"
+ placeholder=" "
+ >
+ <label for="last_name">
+ <?=ucwords(lang('ph_last_name'))?>
+ </label>
+ </div>
+ </div>
+ <div class="form-input mt">
+ <input
+ type="text"
+ name="username"
+ id="register-username"
+ placeholder=" "
+ >
+ <label for="username">
+ <?=ucwords(lang('ph_username'))?>
+ </label>
+ </div>
+ <div class="form-input mt">
+ <input
+ type="password"
+ name="password"
+ id="register-password"
+ placeholder=" "
+ >
+ <label for="password">
+ <?=ucwords(lang('ph_password'))?>
+ </label>
+ </div>
+ <div class="form-input mt">
+ <input
+ type="text"
+ name="email"
+ id="register-email"
+ placeholder=" "
+ >
+ <label for="email">
+ <?=ucwords(lang('ph_email'))?>
+ </label>
+ </div>
+ <label for="birth_date" class="mt">
+ <?=ucwords(lang('ph_birth_date'))?>
+ </label>
+ <input
+ class="mt"
+ type="date"
+ name="birth_date"
+ id="register-birth-date"
+ >
+ <label for="gender" class="mt">
+ <?=ucwords(lang('ph_gender'))?>
+ </label>
+ <div class="row mt" data-type="radio" data-name="gender-wrapper">
+ <div class="form-radio mr">
+ <input
+ type="radio"
+ id="register-gender-male"
+ name="gender"
+ value="Male"
+ >
+ <label
+ for="register-gender-male"
+ class="static"
+ >
+ <?=ucwords(lang('ph_gender_male'))?>
+ </label>
+ </div>
+ <div class="form-radio mr">
+ <input
+ type="radio"
+ id="register-gender-female"
+ name="gender"
+ value="Female"
+ >
+ <label
+ for="register-gender-female"
+ class="static"
+ >
+ <?=ucwords(lang('ph_gender_female'))?>
+ </label>
+ </div>
+ <div class="form-radio">
+ <input
+ type="radio"
+ id="register-gender-lettuce"
+ name="gender"
+ value="Lettuce"
+ >
+ <label
+ for="register-gender-lettuce"
+ class="static"
+ >
+ <?=ucwords(lang('ph_gender_lettuce'))?>
+ </label>
+ </div>
+ </div>
+</div>
+<div class="modal-footer">
+ <?=ilang('action_register',
+ id: 'register-submit',
+ class: 'btn btn-submit btn-alt grow',
+ attrs: array('type' => 'submit'),
+ type: 'button',
+ )?>
+</div>
+</form>
+<script>
+ $('#register-form').submit(function(e) {
+ e.preventDefault();
+
+ let form = event.target;
+ let formFields = form.elements;
+
+ let first_name = formFields.first_name.value.trim();
+ let last_name = formFields.last_name.value.trim();
+ let username = formFields.username.value.trim();
+ let password = formFields.password.value.trim();
+ let email = formFields.email.value.trim();
+ let birth_date = formFields.birth_date.value.trim();
+ let gender = formFields.gender.value.trim();
+
+ if(birth_date === '') {
+ errorToast('toast_date_empty');
+ return;
+ }
+
+ const onSuccess = function() {
+ $.ajax({
+ url: '/api/rpc/login',
+ method: 'POST',
+ data: JSON.stringify({
+ username, password
+ }),
+ success: onLogin
+ });
+ };
+
+ $.ajax({
+ url: '/api/user',
+ method: 'POST',
+ data: JSON.stringify({
+ first_name,
+ last_name,
+ username,
+ password,
+ email,
+ birth_date,
+ gender,
+ }),
+ success: onSuccess
+ });
+ });
+</script>