diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-30 05:03:23 +0300 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-30 05:03:23 +0300 |
| commit | 4f2d900af7636e6744ae14aeeefdf2d6080ac50a (patch) | |
| tree | 1f80775437510591656e6ef13375516226ed27f3 /html/app/views | |
| parent | a16d070c4f8301a8b68220aca6d3573705be9025 (diff) | |
| download | classroom-4f2d900af7636e6744ae14aeeefdf2d6080ac50a.tar.gz classroom-4f2d900af7636e6744ae14aeeefdf2d6080ac50a.tar.bz2 classroom-4f2d900af7636e6744ae14aeeefdf2d6080ac50a.zip | |
several mail options tested; mailhog (fake) mailer is working
Diffstat (limited to 'html/app/views')
| -rw-r--r-- | html/app/views/basic.php | 50 | ||||
| -rw-r--r-- | html/app/views/components/breadcrumbs.php | 30 | ||||
| -rw-r--r-- | html/app/views/components/header_includes.php | 23 | ||||
| -rw-r--r-- | html/app/views/components/top-bar.php | 17 | ||||
| -rw-r--r-- | html/app/views/components/user-management.php | 35 | ||||
| -rw-r--r-- | html/app/views/error/404.php | 8 | ||||
| -rw-r--r-- | html/app/views/error/general.php | 8 | ||||
| -rw-r--r-- | html/app/views/group.php | 5 | ||||
| -rw-r--r-- | html/app/views/user/login.php | 8 | ||||
| -rw-r--r-- | html/app/views/user/new-password.php | 68 | ||||
| -rw-r--r-- | html/app/views/user/register.php | 175 | ||||
| -rw-r--r-- | html/app/views/welcome.php | 21 |
12 files changed, 270 insertions, 178 deletions
diff --git a/html/app/views/basic.php b/html/app/views/basic.php deleted file mode 100644 index 39bdf00..0000000 --- a/html/app/views/basic.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php ob_start(); ?><!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>ΣΚΛΑΒΕΝΙΤΗΣ - <?=$page['title']?></title> - - <!-- import assets --> - - <link rel="preconnect" href="https://fonts.googleapis.com"> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@300;400;500;700&display=swap" rel="stylesheet"> - - <!-- TODO: parse seo data --> - - -</head> -<body class="homepage" data-plugin-lazyload> - - <div class="mainContainer"> - - <div class="mainLayer"></div> - - - <!-- header --> - < ?php cache_view('partials/header', []); ? > - <?php ob_flush(); ?> - - - <!-- main content --> - <main class="main"> - - <?php parse_sections( $page['sections'] ); ?> - - </main> - <?php ob_flush(); ?> - - - <!-- footer --> - < ?php cache_view('partials/footer', [], true) ? > - - </div> - - <!-- scripts --> - <?php link_asset('js', - ['require.files', 'require.slim', 'plugins.min', 'plugins.setup' ] - ); ?> - -</body> -</html><?php ob_flush(); ?> diff --git a/html/app/views/components/breadcrumbs.php b/html/app/views/components/breadcrumbs.php new file mode 100644 index 0000000..471cfb6 --- /dev/null +++ b/html/app/views/components/breadcrumbs.php @@ -0,0 +1,30 @@ +<?php +/** breadcrumbs + * ----------------------------------------------------------------------------- + * + * imported variables + * --- + * @param $id : category_id of last level + * @param $title : category title of last level + * @param $parents : array of parent nodes + * ----------------------------------------------------------------------------- + */ +?> + +<div class="breadcrumb"> + <!-- home --> + <a href="/">Classroom</a> + + <!-- parent nodes --> + <?php if ($id != 0) : ?> + <?php foreach($parents as $node) : ?> + <i class="fas fa-angle-right"></i> <a href="/wiki/category?id=<?=$node['id']?>"><?=$node['title']?></a> + <?php endforeach; ?> + <?php endif; ?> + + <!-- last (current) node --> + <?php if ($id != 0) : ?> + <i class="fas fa-angle-right"></i> <a href="/wiki/category?id=<?=$id?>"><?=$title?></a> + <?php endif; ?> + +</div>
\ No newline at end of file diff --git a/html/app/views/components/header_includes.php b/html/app/views/components/header_includes.php new file mode 100644 index 0000000..4ee6904 --- /dev/null +++ b/html/app/views/components/header_includes.php @@ -0,0 +1,23 @@ + +<!-- fonts (CDN) --> +<link rel="preconnect" href="https://fonts.googleapis.com"> +<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> +<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet"> + +<!-- fontawesome icons (CDN) --> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> + +<!-- bootstap (CDN) --> +<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> + +<!-- main css --> +<link href="/assets/css/class.css" rel="stylesheet"> + +<!-- overides --> +<link href="/assets/css/overides.css" rel="stylesheet"> + +<!-- bootstrap javascript (CDN) --> +<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> + +<!-- jQuery (CDN) --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" integrity="sha512-pumBsjNRGGqkPzKHndZMaAG+bir374sORyzM3uulLV14lN5LyykqNk8eEeUlUkB3U0M4FApyaHraT65ihJhDpQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> diff --git a/html/app/views/components/top-bar.php b/html/app/views/components/top-bar.php new file mode 100644 index 0000000..ed96e35 --- /dev/null +++ b/html/app/views/components/top-bar.php @@ -0,0 +1,17 @@ +<div class="top-bar"> + + <?php // breadcrumbs + //////////////////////////////////////////////////////////////////////// + Render::template("components/breadcrumbs", [ + 'id' => 0, + 'title' => '', + 'parents' => [] + ]); + ?> + + <?php // User management drop-down + //////////////////////////////////////////////////////////////////////// + Render::view('components/user-management'); + ?> + +</div><!-- /top-bar -->
\ No newline at end of file diff --git a/html/app/views/components/user-management.php b/html/app/views/components/user-management.php index dd38396..02a439e 100644 --- a/html/app/views/components/user-management.php +++ b/html/app/views/components/user-management.php @@ -1,33 +1,42 @@ <div class="user"> - <div class="btn-group js-visitor"> + <div class="dropdown js-visitor"> <button type="button" class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> - <i class="fa-regular fa-user"></i> + <i class="fa fa-regular fa-user"></i> Διαχείριση Λογαριασμού <span class="caret"></span> </button> <ul class="dropdown-menu"> - <li><a href="/login">Είσοδος</a></li> - <li role="separator" class="divider"></li> - <li><a href="/register">Εγγραφή</a></li> - <li><a href="/reset-password">Επαναφορά password</a></li> + <li><a class="dropdown-item" href="/login">Είσοδος</a></li> + + <li><hr class="dropdown-divider"></li> + + <li><a class="dropdown-item" href="/register">Εγγραφή</a></li> + <li><a class="dropdown-item" href="/reset-password">Επαναφορά password</a></li> </ul> </div> - <div class="btn-group js-subscriber"> + <div class="dropdown js-subscriber"> <button type="button" class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> Διαχείριση Λογαριασμού <span class="caret"></span> </button> <ul class="dropdown-menu"> - <li><a href="/profile">Διαχείριση Προφίλ</a></li> - <li><a href="/courses">Ύλη μαθημάτων</a></li> - <li><a href="/payments">Πληρωμές</a></li> - <li role="separator" class="divider"></li> - <li><a href="/logout">Έξοδος</a></li> + <li><a class="dropdown-item" href="/profile">Διαχείριση Προφίλ</a></li> + <li><a class="dropdown-item" href="/courses">Ύλη μαθημάτων</a></li> + <li><a class="dropdown-item" href="/payments">Πληρωμές</a></li> + + <li><hr class="dropdown-divider"></li> + + <li><a class="dropdown-item" href="/logout">Έξοδος</a></li> </ul> </div> </div> - +<script> + // default: hide subscriber's menu + [].forEach.call(document.querySelectorAll('.js-subscriber'), function (el) { + el.style.display = 'none'; + }); +</script> diff --git a/html/app/views/error/404.php b/html/app/views/error/404.php index f594860..2b67e8d 100644 --- a/html/app/views/error/404.php +++ b/html/app/views/error/404.php @@ -1,7 +1,7 @@ -<html> - <head> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <title>404: Not Found</title> <style> diff --git a/html/app/views/error/general.php b/html/app/views/error/general.php index d6649de..84cc4d9 100644 --- a/html/app/views/error/general.php +++ b/html/app/views/error/general.php @@ -1,7 +1,7 @@ -<html> - <head> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> <title>404: Not Found</title> <style> diff --git a/html/app/views/group.php b/html/app/views/group.php index fddd3d2..5d5dea0 100644 --- a/html/app/views/group.php +++ b/html/app/views/group.php @@ -1,8 +1,3 @@ -<img src="https://cdn.sklavenitis.co.gr/uploads/products/1180106.jpg"> -<!-- -<img src="https://s1.sklavenitis.gr/images/1600x1600/40/files/ProductMedia/Products/1222798/1.jpg" style="max-height:240px;"> --> -<img src="https://s1.sklavenitis.gr/images/ProductDetail/40/files/ProductMedia/Products/1222798/1.jpg"> - <section> <div style="padding: 1em"> diff --git a/html/app/views/user/login.php b/html/app/views/user/login.php index 2cf3290..4451d52 100644 --- a/html/app/views/user/login.php +++ b/html/app/views/user/login.php @@ -1,7 +1,7 @@ -<html> +<!DOCTYPE html> +<html lang="en"> <head> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta charset="utf-8"> <title><?=SITE_TITLE?> - Είσοδος Χρήστη</title> <link rel="preconnect" href="https://fonts.googleapis.com"> @@ -12,6 +12,8 @@ <link href="/assets/css/overides.css" rel="stylesheet"> + <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script> + <style> html,body{ padding:0; margin:0; diff --git a/html/app/views/user/new-password.php b/html/app/views/user/new-password.php index 955cffb..06e7fac 100644 --- a/html/app/views/user/new-password.php +++ b/html/app/views/user/new-password.php @@ -1,42 +1,42 @@ -<html> +<!DOCTYPE html> +<html lang="en"> <head> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title><?=SITE_TITLE?> - Επαναφορά κωδικού πρόσβασης</title> + <meta charset="utf-8"> + <title><?=SITE_TITLE?> - Επαναφορά κωδικού πρόσβασης</title> - <link rel="preconnect" href="https://fonts.googleapis.com"> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet"> + <link rel="preconnect" href="https://fonts.googleapis.com"> + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet"> - <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> + <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> - <link href="/assets/css/overides.css" rel="stylesheet"> + <link href="/assets/css/overides.css" rel="stylesheet"> - <style> - html,body{ - padding:0; margin:0; - font-size:1.25em; - color: #037; background: #eee; - line-height:1.2em; - } - h3 { - font-size: 2em; font-style: normal; - font-weight: 400; - color: #05a; - margin: 0; padding: 5px; - opacity: 0.27; - border-bottom: 1px solid #05a; - } - .container { display: flex; height: 100vh; align-items:center; } - .content { position: relative; - max-width:480px; width: 100%; - margin: auto auto; padding: 1.5em; - justify-center: center; - background: #ddd; - border-radius: 8px; - box-shadow: 1px 5px 7px #7777; - } - </style> + <style> + html,body{ + padding:0; margin:0; + font-size:1.25em; + color: #037; background: #eee; + line-height:1.2em; + } + h3 { + font-size: 2em; font-style: normal; + font-weight: 400; + color: #05a; + margin: 0; padding: 5px; + opacity: 0.27; + border-bottom: 1px solid #05a; + } + .container { display: flex; height: 100vh; align-items:center; } + .content { position: relative; + max-width:480px; width: 100%; + margin: auto auto; padding: 1.5em; + justify-center: center; + background: #ddd; + border-radius: 8px; + box-shadow: 1px 5px 7px #7777; + } + </style> </head> <body class="classroom"> <div class='container'> diff --git a/html/app/views/user/register.php b/html/app/views/user/register.php index 97724a6..591dcb7 100644 --- a/html/app/views/user/register.php +++ b/html/app/views/user/register.php @@ -1,75 +1,120 @@ -<html> +<!DOCTYPE html> +<html lang="en"> <head> - <meta name="viewport" content="width=device-width, initial-scale=1" /> - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> - <title><?=SITE_TITLE?> - Εγγραφή</title> + <meta charset="utf-8"> + <title><?=SITE_TITLE?> - Εγγραφή</title> - <link rel="preconnect" href="https://fonts.googleapis.com"> - <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> - <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet"> + <?php // header includes + //////////////////////////////////////////////////////////////////////// + Render::view('components/header_includes'); + ?> - <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous"> - - <link href="/assets/css/overides.css" rel="stylesheet"> - - <style> - html,body{ - padding:0; margin:0; - font-size:1.25em; - color: #037; background: #eee; - line-height:1.2em; - } - h3 { - font-size: 2em; font-style: normal; - font-weight: 400; - color: #05a; - margin: 0; padding: 5px; - opacity: 0.27; - border-bottom: 1px solid #05a; - } - .container { display: flex; height: 100vh; align-items:center; } - .content { position: relative; - max-width:480px; width: 100%; - margin: auto auto; padding: 1.5em; - justify-center: center; - background: #ddd; - border-radius: 8px; - box-shadow: 1px 5px 7px #7777; - } - </style> + <style> + html,body{ + padding:0; margin:0; + font-size:1.25em; + color: #037; background: #eee; + line-height:1.2em; + } + h3 { + font-size: 2em; font-style: normal; + font-weight: 400; + color: #05a; + margin: 0; padding: 5px; + opacity: 0.27; + border-bottom: 1px solid #05a; + } + .container { display: flex; height: 100vh; align-items:center; } + .content { position: relative; + max-width:480px; width: 100%; + margin: auto auto; padding: .5em; + justify-center: center; + font-size: .9em; + } + .content-form { + padding: 1.5em; + background: #ddd; + border-radius: 8px; + box-shadow: 1px 5px 7px #7777; + } + .content .info { padding: 1.5em; font-size: .92em; } + .content .info p { padding: .5em; } + .form-label { margin-bottom: .25rem; } + </style> </head> <body class="classroom"> <div class='container'> - <div class='content'> - <h4>Εγγραφή</h4> - <hr /> - <form method="post" action="/login-check"> - <div> - <div class="mb-3"> - <label for="name" class="form-label">Όνομα</label> - <input type="text" class="form-control form-control-sm" name="name" required> - </div> - <div class="mb-3"> - <label for="surname" class="form-label">Επίθετο</label> - <input type="text" class="form-control form-control-sm" name="surname" required> - </div> - <div class="mb-3"> - <label for="exampleInputEmail1" class="form-label">Email</label> - <input type="email" class="form-control form-control-sm" name="email" aria-describedby="emailHelp" rerquired> - </div> - <div class="mb-3"> - <label for="exampleInputPassword1" class="form-label">Κωδικός Πρόσβασης</label> - <input type="password" class="form-control form-control-sm" name="password" required> - </div> - <div class="mb-3"> - <label for="exampleInputPassword2" class="form-label">Επιβεβαίωση Κωδικού Πρόσβασης</label> - <input type="password" class="form-control form-control-sm" name="password2" required> - </div> - <br /> - <button type="submit" class="btn btn-primary btn-sm col-12">Εγγραφή</button> - </div> - </form> + <div class="content"> + <div class="info"> + <h4>Classroom: Εγγραφή</h4> + </div> + <div class='content-form'> + <form method="post"> + <div> + <div class="mb-3"> + <label for="name" class="form-label">Όνομα</label> + <input type="text" class="form-control form-control-sm" name="name" required> + </div> + <div class="mb-3"> + <label for="surname" class="form-label">Επίθετο</label> + <input type="text" class="form-control form-control-sm" name="surname" required> + </div> + <div class="mb-3"> + <label for="exampleInputEmail1" class="form-label">Email</label> + <input type="email" class="form-control form-control-sm" name="email" aria-describedby="emailHelp" rerquired> + </div> + <div class="mb-3"> + <label for="exampleInputPassword1" class="form-label">Κωδικός Πρόσβασης</label> + <input type="password" class="form-control form-control-sm" name="password" required> + </div> + <div class="mb-3"> + <label for="exampleInputPassword2" class="form-label">Επιβεβαίωση Κωδικού Πρόσβασης</label> + <input type="password" class="form-control form-control-sm" name="password2" required> + </div> + <br /> + <button type="submit" class="btn btn-primary btn-sm col-12">Εγγραφή</button> + </div> + </form> + </div> + <div class="info"> + <p>Αν έχετε ήδη λογαρισμό <a href="/login">συνδεθείτε</a>.</p> + <p>Σε κάθε περίπτωση μπορείτε να επιστρέψετε στην <a href="/">αρχική σελίδα</a>.</p> + </div> </div> </div> </body> + +<script> + // When form is submited + // ------------------------------------------------------------------------- + + $('.content-form form').submit( event => { + event.preventDefault(); + + if ($('input[name=password]').val() != $('input[name=password2]').val()) { + alert('Τα δυο passrods δεν ταιριάζουν!'); + + } else { + + // prepare data to POST + var data = { + name: $('input[name=name]').val(), + surname: $('input[name=surname]').val(), + email: $('input[name=email]').val(), + password: $('input[name=password]').val() + }; + + // select action url (add or update) + var request = '/xml/register'; + + // send POST request + $.post(request, data) + .done(function( data ) { + console.log(data); + }); + } + + }); +</script> + </html> diff --git a/html/app/views/welcome.php b/html/app/views/welcome.php new file mode 100644 index 0000000..11dd6c6 --- /dev/null +++ b/html/app/views/welcome.php @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title><?=SITE_TITLE?> - Welcome!</title> + + <?php // header includes + //////////////////////////////////////////////////////////////////////// + Render::view('components/header_includes'); + ?> + +</head> +<body class='classroom'> + + <?php // top-bar + //////////////////////////////////////////////////////////////////////// + Render::view('components/top-bar'); + ?> + +</body> +</html>
\ No newline at end of file |
