diff options
Diffstat (limited to 'src/web/_views/_modal')
-rw-r--r-- | src/web/_views/_modal/about.php | 9 | ||||
-rw-r--r-- | src/web/_views/_modal/new_post.php | 56 | ||||
-rw-r--r-- | src/web/_views/_modal/register.php | 178 |
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> |