CINXE.COM
Φόρμα υποβολής έργου | Εκδόσεις ΨΥΧΟΓΙΟΣ
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Φόρμα υποβολής έργου | Εκδόσεις ΨΥΧΟΓΙΟΣ</title> <!-- Global stylesheets --> <link href="https://apps.psichogios.gr/v2/assets/fonts/inter/inter.css" rel="stylesheet" type="text/css"> <link href="https://apps.psichogios.gr/v2/assets/icons/phosphor/styles.min.css" rel="stylesheet" type="text/css"> <link href="https://apps.psichogios.gr/v2/assets/css/all.min.css" id="stylesheet" rel="stylesheet" type="text/css"> <!-- /global stylesheets --> <script src="https://apps.psichogios.gr/v2/assets/js/jquery/jquery.min.js"></script> <script src="https://apps.psichogios.gr/v2/assets/js/configurator.js"></script> <script src="https://apps.psichogios.gr/v2/assets/js/bootstrap/bootstrap.bundle.min.js"></script> <!-- Theme JS files --> <script src="https://apps.psichogios.gr/v2/assets/js/vendor/notifications/sweet_alert.min.js"></script> <script src="https://apps.psichogios.gr/v2/assets/js/vendor/forms/validation/validate.min.js"></script> <script src="https://apps.psichogios.gr/v2/assets/js/app.js"></script> <!-- /theme JS files --> <script async src="https://www.google.com/recaptcha/api.js?render=6LfVgM8gAAAAAAuXoJVYIjev2ia-I7KjpVH_Vvqj"></script> <style type="text/css"> :root{ --primary-300: #64B5F6; --primary-400: #42A5F5; --primary-600: #1E88E5; --primary-700: #1976D2; --primary-800: #1565C0; --danger-300: #E57373; --danger-400: #EF5350; --danger-600: #E53935; --danger-700: #D32F2F; --danger-800: #960000; /*C62828*/ --success-300: #81C784; --success-400: #66BB6A; --success-600: #43A047; --success-700: #388E3C; --success-800: #2E7D32; --info-300: #4DD0E1; --info-400: #26C6DA; --info-600: #00ACC1; --info-700: #0097A7; --info-800: #00838F; } .bg-primary-800{ background-color: var(--primary-800); } .bg-danger-800{ background-color: var(--danger-800); } .bg-info-800{ background-color: var(--info-800); } .form-control[type=file] { --form-file-button-color: var(--danger); /* --form-file-button-bg: var(--gray-600); --form-file-button-hover-bg: var(--gray-600); */ overflow: hidden; } .checker span{ background: #fff; border-color: #fff; } .text-size-large{ font-size: 16px; } .navbar-text{ float: none; text-align:center!important; padding-top:30px; padding-bottom:30px; } .sweet-alert{ color: #333; } .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { font-size: var(--body-font-size-sm); /* font-weight: light; color: var(--danger); */ } .form-control:focus { /*border: 0;*/ } </style> </head> <body class="bg-danger-800_"> <!-- Main navbar --> <div class="navbar bg-danger-800 navbar-static py-2"></div> <!-- /main navbar --> <!-- Page content --> <div class="page-content"> <!-- Main content --> <div class="content-wrapper"> <!-- Inner content --> <div class="content-inner"> <!-- Content area --> <div class="content d-flex justify-content-center align-items-center"> <!-- Welcome & Re-Captcha --> <form class="flex-fill" id="step_1"> <div class="row"> <div class="col-lg-8 offset-lg-2 col-xl-6 offset-xl-3"> <div class="card p-3 mb-0"> <div class="card-body"> <div class="text-center mb-3"> <div class="d-inline-flex align-items-center justify-content-center mb-4 mt-2"> <img src="https://apps.psichogios.gr/audiobooks/assets/img/logo.png" class="h-64px___" alt=""> </div> <h5 class="mb-0">Υποβολή έργων προς θεώρηση</h5> </div> <hr /> <p class="fs-lg_" style="text-align:justify;"> Στις Εκδόσεις ΨΥΧΟΓΙΟΣ αξιολογούμε προς πιθανή έκδοση έργα μυθοπλασίας και γνώσεων για παιδιά, εφήβους και ενηλίκους. </p> <p class="fs-lg_ fw-bold" style="text-align:justify;"> Θα θέλαμε επίσης να σας ενημερώσουμε ότι: </p> <ul class="list fs-lg_ ps-3" style="text-align:justify;"> <li>Ραντεβού δε γίνονται για την υποβολή έργων.</li> <li>Το έργο σας θα μελετηθεί από την εκδοτική ομάδα και, εντός έξι μηνών, θα έχετε ενημερωθεί για το αποτέλεσμα της αξιολόγησης. Λόγω του τεράστιου όγκου των υποβολών, το σκεπτικό της όποιας απόφασης δεν είναι ανακοινώσιμο. Σε περίπτωση θετικής, και μόνο, απόφασης, το εκδοτικό τμήμα θα επικοινωνήσει μαζί σας. Θα μπορείτε να παρακολουθείτε την εξέλιξη της υποβολής σας μέσα από την πλατφόρμα μας.</li> <li>Οι Εκδόσεις ΨΥΧΟΓΙΟΣ σέβονται την πνευματική ιδιοκτησία των συγγραφέων. Γι' αυτό σας προτείνουμε να κατοχυρώσετε τα πνευματικά δικαιώματα για το έργο σας, αν δεν το έχετε ήδη κάνει, σε συμβολαιογράφο ή όπου αλλού κρίνετε.</li> </ul> <hr /> <h6>ΠΡΟΫΠΟΘΕΣΕΙΣ ΥΠΟΒΟΛΗΣ ΕΡΓΟΥ</h6> <ol class="list fs-lg_ ps-3" style="text-align:justify;"> <li> Δεκτές γίνονται μόνο οι συγγραφικές εργασίες ενηλίκων. Έργα παιδιών –όσο καλογραμμένα κι αν είναι– δεν μπορούν να εκδοθούν.</li> <li> Δεκτά προς αξιολόγηση γίνονται μυθιστορήματα καθώς και βιβλία γενικών γνώσεων (ιστορικά, θρησκευτικά, ψυχολογικά, επιστημονικά, πρακτικής ζωής, μαγειρικές κ.λπ.) Δε γίνονται δεκτές προς αξιολόγηση ποιητικές συλλογές, διηγήματα, νουβέλες και θεατρικά έργα.</li> <li> Ο ελάχιστος αριθμός δακτυλογραφημένων σελίδων για μυθιστορήματα ενηλίκων είναι 250 σελίδες με τις ακόλουθες προδιαγραφές ενδεικτικά: γραμματοσειρά Times New Roman, μέγεθος 12, διάστιχο 1,5.</li> <li> Τα έργα που υποβάλλονται πρέπει να συνοδεύονται από πλήρες βιογραφικό σημείωμα του συγγραφέα, όπου θα αναγράφονται απαραιτήτως ταχυδρομική διεύθυνση και τηλέφωνο, καθώς επίσης και από μια περίληψη/περιγραφή του βιβλίου. Υπάρχει η επιπλέον δυνατότητα υποβολής συνοδευτικού υλικού μέσω της πλατφόρμας μας.</li> </ol> <hr /> <p class="fs-lg_" style="text-align:justify;"> Αν επιθυμείτε να μας υποβάλετε προς θεώρηση το έργο σας, παρακαλούμε προχωρήστε στο επόμενο βήμα για να συμπληρώσετε τη φόρμα που ακολουθεί και να «ανεβάσετε» τα αρχεία σας. </p> </div> <div class="d-grid gap-2 mt-3 col-8 mx-auto"> <button type="button" class="btn btn-lg btn-danger g-recaptcha btn-launch-spinner" data-icon="ph-circle-notch" data-btn-action="submitNew" data-sitekey="6LfVgM8gAAAAAAuXoJVYIjev2ia-I7KjpVH_Vvqj" data-callback="onSubmit" data-expired-callback="recaptchaExpired" data-action="submit">Θέλω να υποβάλω το έργο μου</button> <button type="button" class="btn btn-lg btn-link fs-sm g-recaptcha btn-launch-spinner" data-icon="ph-circle-notch" data-btn-action="viewProgress" data-sitekey="6LfVgM8gAAAAAAuXoJVYIjev2ia-I7KjpVH_Vvqj" data-callback="onSubmit" data-expired-callback="recaptchaExpired" data-action="submit">Θέλω να δω την εξέλιξη της αξιολόγησης του έργου μου</button> </div> </div> </div> </div> </form> <!-- /welcome & re-captcha --> <!-- Submission form --> <form class="flex-fill form d-none needs-validation" novalidate action="https://apps.psichogios.gr/submissions/submit" method="POST" enctype="multipart/form-data" id="step_2"> <div class="row"> <div class="col-lg-8 offset-lg-2 col-xl-6 offset-xl-3"> <div class="card p-3 mb-0"> <div class="card-body"> <div class="text-center mb-3"> <div class="d-inline-flex align-items-center justify-content-center mb-4 mt-2"> <img src="https://apps.psichogios.gr/audiobooks/assets/img/logo.png" class="h-64px___" alt=""> </div> <h5 class="mb-0">Φόρμα υποβολής έργου</h5> <span class="d-block text-muted">Όλα τα πεδία είναι απαραίτητα</span> </div> <hr /> <h5>Στοιχεία επικοινωνίας</h5> <div class="row"> <div class="col-lg-5"> <div class="mb-3"> <label class="form-label">Όνομα</label> <div class="form-control-feedback form-control-feedback-start"> <input type="text" class="form-control" placeholder="Το όνομά σας" name="firstname" required> <div class="form-control-feedback-icon"> <i class="ph-user text-muted"></i> </div> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> </div> </div> </div> <div class="col-lg-5"> <div class="mb-3"> <label class="form-label">Επώνυμο</label> <div class="form-control-feedback form-control-feedback-start"> <input type="text" class="form-control" placeholder="Το επώνυμό σας" name="lastname" required> <div class="form-control-feedback-icon"> <i class="ph-user text-muted"></i> </div> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> </div> </div> </div> <div class="col-lg-2"> <div class="mb-3"> <label class="form-label">Τ.Κ.</label> <div class="form-control-feedback form-control-feedback-start"> <input type="text" class="form-control" placeholder="" name="postcode" required> <div class="form-control-feedback-icon" id="telephone_icon"> <i class="ph-map-pin-line text-muted"></i> </div> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> </div> </div> </div> </div> <div class="row"> <div class="col-lg-6"> <div class="mb-3"> <label class="form-label">E-mail</label> <div class="form-control-feedback form-control-feedback-start"> <div class="input-group"> <input type="text" class="form-control" placeholder="Το e-mail σας" id="email" name="email" value="" required> <input type="hidden" name="email_verified" value=""> <button class="btn bg-primary bg-opacity-20 validate" data-type="email" type="button" id="confirm_email">Επιβεβαίωση</button> </div> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="form-control-feedback-icon" id="email_icon"> <i class="ph-at text-muted"></i> </div> <div class="valid-feedback">Έγκυρο</div> </div> </div> </div> <div class="col-lg-6"> <div class="mb-3"> <label class="form-label">Τηλέφωνο</label> <div class="form-control-feedback form-control-feedback-start"> <div class="input-group"> <input type="text" class="form-control" placeholder="Το κινητό σας" id="telephone" name="telephone" value="" required> <input type="hidden" name="telephone_verified" value=""> <button class="btn bg-primary bg-opacity-20 validate" data-type="sms" type="button" id="confirm_telephone">Επιβεβαίωση</button> </div> <div class="form-control-feedback-icon" id="telephone_icon"> <i class="ph-device-mobile-camera text-muted"></i> </div> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> </div> </div> </div> </div> <hr /> <h5>Στοιχεία έργου προς αξιολόγηση</h5> <div class="row"> <div class="col-lg-12"> <div class="mb-3"> <label class="form-label">Τίτλος έργου</label> <div class="form-control-feedback form-control-feedback-start"> <input type="text" class="form-control" placeholder="Εισαγάγετε τον τίτλο του βιβλίου σας" name="title"> <div class="form-control-feedback-icon"> <i class="ph-user text-muted"></i> </div> </div> </div> </div> <div class="col-lg-12"> <div class="d-flex align-items-justify mb-3"> <label class="d-block me-3">Το κείμενο απευθύνεται σε:</label> <label class="form-check me-3"> <input type="radio" name="age_group" value="201" class="form-check-input"> <span class="form-check-label mr-3">Ενηλίκους</span> </label> <label class="form-check me-3"> <input type="radio" name="age_group" value="202" class="form-check-input"> <span class="form-check-label mr-3">Εφήβους</span> </label> <label class="form-check"> <input type="radio" name="age_group" value="203" class="form-check-input"> <span class="form-check-label">Παιδιά</span> </label> </div> </div> </div> <div class="row"> <div class="col-lg-12"> <div class="mb-3"> <label class="form-label">Περίληψη</label> <input type="file" class="form-control form-control-sm" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.oasis.opendocument.text, application/pdf, application/msword, text/plain, application/rtf, text/richtext" name="summary" required> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> <div class="form-text text-muted text-end">.pdf, .doc, .docx, .odt, .txt</div> </div> </div> <div class="col-lg-12"> <div class="mb-3"> <label class="form-label">Βιογραφικό</label> <input type="file" class="form-control form-control-sm" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.oasis.opendocument.text, application/pdf, application/msword, text/plain, application/rtf, text/richtext" name="bio" required> <div class="invalid-feedback">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> <div class="form-text text-muted text-end">.pdf, .doc, .docx, .odt, .txt</div> </div> </div> <div class="col-lg-12"> <div class="mb-3"> <label class="form-label">Κείμενο</label> <input type="file" class="form-control form-control-sm" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.oasis.opendocument.text, application/pdf, application/msword, text/plain, application/rtf, text/richtext" name="book" required> <div class="invalid-feedback text-start">Απαραίτητο πεδίο</div> <div class="valid-feedback">Έγκυρο</div> <div class="form-text text-muted text-end">.pdf, .doc, .docx, .odt, .txt</div> </div> </div> </div> <!--<div class="text-center text-muted content-divider mb-3"> <span class="px-2"></span> </div>--> <div class="mb-4"> <label class="form-label">Εισαγάγετε, αν επιθυμείτε, συμπληρωματικά αρχεία που θέλετε να λάβουμε υπόψη.</label> <input type="file" name="additional_files[]" class="form-control form-control-sm" multiple> </div> <div class="mb-3"> <label class="form-label">Περαιτέρω σημειώσεις</label> <textarea name="notes" class="form-control" cols="30" rows="5"></textarea> </div> <!--<span class="form-text text-center text-muted">By continuing, you're confirming that you've read our <a href="#">Terms & Conditions</a> and <a href="#">Cookie Policy</a></span>--> </div> <div class="d-grid mt-3 col-6 mx-auto"> <button type="submit" class="btn fs-lg btn-danger d-block"> Υποβολή </button> </div> </div> </div> </div> </form> <!-- /submission form --> </div> <!-- /content area --> <!-- Footer --> <div class="py-2 text-center text-muted"> <span>© 2024. Εκδόσεις ΨΥΧΟΓΙΟΣ</span> </div> <!-- /footer --> </div> <!-- /inner content --> </div> <!-- /main content --> </div> <!-- /page content --> <script> const globalBaseUrl = 'https://apps.psichogios.gr/'; $(function() { const swalInit = swal.mixin({ buttonsStyling: false, customClass: { confirmButton: 'btn btn-primary', cancelButton: 'btn btn-light', denyButton: 'btn btn-light', input: 'form-control' } }); // Loop over them and prevent submission var forms = document.querySelectorAll('.needs-validation'); // Loop over them and prevent submission forms.forEach(function(form) { form.addEventListener('submit', function(e) { if ($('input[name="title"]').val()=='') { $('input[name="title"]').val('Χωρίς τίτλο'); } if ( $('input[name="email_verified"]').val()=='' && $('input[name="telephone_verified"]').val()=='' ) { $('#confirm_email').addClass('bg-danger').removeClass('bg-primary'); $('#confirm_telephone').addClass('bg-danger').removeClass('bg-primary'); e.preventDefault(); e.stopPropagation(); swalInit.fire({ icon: 'error', html: 'Πρέπει να <u>επιβεβαιώσετε</u> το <b>e-mail</b> ή το <b>κινητό</b> τηλέφωνο για να προχωρήσετε.', confirmButtonClass: 'bg-danger', confirmButtonText: 'Το κατάλαβα <i class="ph-thumbs-up ms-2"></i>', //html: 'Κωδικός: ' + code }).then(function(result) { $("#email").focus(); }); } if (!form.checkValidity()) { e.preventDefault(); e.stopPropagation(); } form.classList.add('was-validated'); }, false); }); // Elements // Change button.getAttribute('data-icon') to your desired icon here. Current // config is for demo. Or use this code if you wish const buttonClass = 'btn-launch-spinner', containerClass = 'card', overlayClass = 'card-overlay', overlayAnimationClass = 'card-overlay-fadeout'; // Configure document.querySelectorAll(`.${buttonClass}`).forEach(function(button) { button.addEventListener('click', function(e) { e.preventDefault(); // Elements const parentContainer = button.closest(`.${containerClass}`), overlayElement = document.createElement('div'), overlayElementIcon = document.createElement('span'); // Append overlay with icon overlayElement.classList.add(overlayClass); parentContainer.appendChild(overlayElement); if(button.getAttribute('data-spin') == 'false') { overlayElementIcon.classList.add(button.getAttribute('data-icon')); } else { overlayElementIcon.classList.add(button.getAttribute('data-icon'), 'spinner'); } overlayElement.appendChild(overlayElementIcon); // Remove overlay after 5s, for demo only setTimeout(function() { overlayElement.classList.add(overlayAnimationClass); ['animationend', 'animationcancel'].forEach(function(e) { overlayElement.addEventListener(e, function() { overlayElement.remove(); }); }); }, 5000); }); }); function capitalizeText(inputText) { return inputText.split('').map(function(char) { // Check if the character is a lowercase Greek letter //if (/[\u03B1-\u03C9]/.test(char)) { if (/[\u03B1-\u03C1]/.test(char)) { // Convert to uppercase using the Greek Unicode range return String.fromCharCode(char.charCodeAt(0) - 32); } else { // For other characters, use the regular toUpperCase() return char.toUpperCase(); } }).join(''); } // Input event handler for the text input $('input[name="title"]').on('input', function() { var inputText = $(this).val(); var capitalizedText = capitalizeText(inputText); $(this).val(capitalizedText); }); function recaptchaExpired() { //console.log('reCAPTCHA token expired. Please try again.'); // You can add your own logic here for when the reCAPTCHA token expires. } $('.btn.g-recaptcha').on('click', function(e) { e.preventDefault(); const btn_action = $(this).data('btn-action'); grecaptcha.ready(function() { grecaptcha.execute('6LfVgM8gAAAAAAuXoJVYIjev2ia-I7KjpVH_Vvqj', {action: 'submit'}).then(function(token) { $.ajax({ url: globalBaseUrl + 'g-recaptcha', type: 'POST', data: {'token': token}, success: function (gresponse) { const response = JSON.parse(gresponse); //console.log(response); if (response.success==true) { //console.log(btn_action); if (btn_action=='submitNew') { $('#step_1').addClass('d-none'); $('#step_2').removeClass('d-none'); } if (btn_action=='viewProgress') { location.href = globalBaseUrl + 'submissions/my-requests'; //$('#step_1').addClass('d-none'); //$('#step_2').removeClass('d-none'); } } else { } }, error: function(jqXHR, textStatus, errorThrown) { //console.log(textStatus); //console.log(errorThrown); } }); }); }); return false; }); //$('#confirm_telephone').on('click', function() { $('.validate').on('click', function() { const type = $(this).data('type'); const telephone = $('#telephone').val(); const email = $('#email').val(); let value = ''; if (type=='sms') { value = telephone; } if (type=='email') { value = email; } const post_data = {'type': type, 'value': value}; $.ajax({ url: globalBaseUrl + 'submissions/otp', type: 'POST', data: post_data, success: function (data) { //console.log(data); if (data.result=='success') { let swal_title, swal_html; if (type=='sms') { $('input[name="telephone_verified').val(data.telephone); $('#telephone').val(data.telephone); swal_title = '<div class="d-inline-flex bg-info border-sm-info bg-opacity-10 text-info rounded-pill p-2 mb-3 mt-1"><img src="' + globalBaseUrl + 'v2/assets/img/icons/otp.png" width="40" class="m-1" /><!--<i class="ph-device-mobile-camera ph-2x m-1"></i>--></div><h6>Έχει σταλεί κωδικός μιας χρήσης<br />στο τηλέφωνο <strong>' + data.telephone + '</strong>.</h6>'; swal_html = 'Συμπληρώστε τον κωδικό που λάβατε μέσω SMS.'; } if (type=='email') { $('input[name="email_verified').val(data.email); $('#email').val(data.email); swal_title = '<div class="d-inline-flex bg-info border-sm-info bg-opacity-10 text-info rounded-pill p-2 mb-3 mt-1"><img src="' + globalBaseUrl + 'v2/assets/img/icons/otp.png" width="40" class="m-1" /><!--<i class="ph-device-mobile-camera ph-2x m-1"></i>--></div><h6>Έχει σταλεί κωδικός μιας χρήσης<br />στο e-mail <strong>' + data.email + '</strong></h6>'; swal_html = 'Συμπληρώστε τον κωδικό που λάβατε μέσω e-mail.'; } let timerInterval; swalInit.fire({ title: swal_title, /*icon: 'info',*/ input: 'text', inputPlaceholder: 'Κωδικός μιας χρήσης', showCancelButton: true, inputValidator: function(value) { return !value && 'Δεν έχετε εισαγάγει έγκυρο κωδικό!' }, html: swal_html + '<br />Χρόνος που απομένει: <b></b>', timer: 240000, timerProgressBar: true, didOpen: function() { //Swal.showLoading(); const b = Swal.getHtmlContainer().querySelector('b'); timerInterval = setInterval(() => { //b.textContent = Swal.getTimerLeft(); //const date = new Date(Swal.getTimerLeft()); //b.textContent = `${date.getMinutes()}:${date.getSeconds()}`; b.textContent = msToTime(Swal.getTimerLeft()); }, 1000); }, willClose: function() { clearInterval(timerInterval) }, allowOutsideClick: false, showCloseButton: true, showCancelButton: true, focusConfirm: false, confirmButtonClass: 'bg-info', confirmButtonText: '<i class="ph-thumbs-up me-2"></i> Επιβεβαίωση', confirmButtonAriaLabel: 'Thumbs up, great!', cancelButtonText: '<i class="ph-thumbs-down"></i>', cancelButtonAriaLabel: 'Thumbs down' }).then(function(result) { if (result.dismiss === Swal.DismissReason.timer) { console.log('I was closed by the timer') } if (result.value) { var code = result.value; var val = ''; if (type=='sms') { val = $('#telephone').val(); } if (type=='email') { val = $('#email').val(); } validateOtp(code, type, val); /* swalInit.fire({ icon: 'success', html: 'Κωδικός: ' + result.value }); */ } }); } }, error: function(jqXHR, textStatus, errorThrown) { console.error(textStatus); console.error(errorThrown); } }); }); function validateOtp(code, type, value) { if (type=='sms') { let value = $("#telephone").val(); } if (type=='email') { let value = $("#email").val(); } $.ajax({ url: globalBaseUrl + 'submissions/otp/validate', type: 'POST', data: {'code':code, 'type':type, 'value':value}, success: function (data) { //console.log(data); let output_message = ''; if (data.result=='success') { if (type=='sms') { output_message = 'Το κινητό επιβεβαιώθηκε επιτυχώς!'; //$('input[name="telephone_verified').val(data.value); //$("#telephone").val(data.value); $("#telephone").prop("readonly", true); $('<div class="validation-valid-label__ text-success mt-1">Επιβεβαιώθηκε</div>').appendTo($("#telephone").parent().parent()); $('#confirm_telephone').text('Επιβεβαιώθηκε').addClass('bg-success text-white').removeClass('bg-opacity-20 bg-primary bg-danger').prop('disabled', true); $('#telephone_icon').html('<i class="ph-checks text-success fw-bold"></i>'); } if (type=='email') { output_message = 'Το e-mail επιβεβαιώθηκε επιτυχώς!'; //$('input[name="email_verified').val(data.value); //$("#email").val(data.value); $("#email").prop("readonly", true); $('<div class="validation-valid-label__ text-success mt-1">Επιβεβαιώθηκε</div>').appendTo($("#email").parent().parent()); $('#confirm_email').text('Επιβεβαιώθηκε').addClass('bg-success text-white').removeClass('bg-opacity-20 bg-primary bg-danger').prop('disabled', true); $('#email_icon').html('<i class="ph-checks text-success fw-bold"></i>'); } swalInit.fire({ icon: 'success', html: output_message, confirmButtonClass: 'bg-success', confirmButtonText: 'Κλείσιμο <i class="ph-thumbs-up ms-2"></i>', //html: 'Κωδικός: ' + code }); } else { swalInit.fire({ icon: 'error', html: 'Ο κωδικός που εισαγάγατε δεν επαληθεύτηκε. Παρακαλούμε δοκιμάστε ξανά.', confirmButtonClass: 'bg-danger', confirmButtonText: 'Κλείσιμο <i class="ph-thumbs-up ms-2"></i>', //html: 'Κωδικός: ' + code }); } }, error: function(jqXHR, textStatus, errorThrown) { //console.error(textStatus); //console.error(errorThrown); } }); } function msToTime(duration) { var milliseconds = parseInt((duration%1000)) , seconds = parseInt((duration/1000)%60) , minutes = parseInt((duration/(1000*60))%60) , hours = parseInt((duration/(1000*60*60))%24); hours = (hours < 10) ? "0" + hours : hours; minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; // return hours + ":" + minutes + ":" + seconds + "." + milliseconds; return minutes + ":" + seconds; } // Initialize const validator = $('.form__').validate({ ignore: 'input[type=hidden], .select2-search__field', // ignore hidden fields errorClass: 'validation-invalid-label', successClass: 'validation-valid-label', validClass: 'validation-valid-label', highlight: function(element, errorClass) { $(element).removeClass(errorClass); }, unhighlight: function(element, errorClass) { $(element).removeClass(errorClass); }, success: function(label) { label.addClass('validation-valid-label').text('Success.'); // remove to hide Success message }, // Different components require proper error label placement errorPlacement: function(error, element) { // Input with icons and Select2 if (element.hasClass('select2-hidden-accessible')) { error.appendTo(element.parent()); } // Input group, form checks and custom controls else if (element.parents().hasClass('form-control-feedback') || element.parents().hasClass('form-check') || element.parents().hasClass('input-group')) { error.appendTo(element.parent().parent()); } // Other elements else { error.insertAfter(element); } }, rules: { password: { minlength: 5 }, repeat_password: { equalTo: '#password' }, /* email: { email: true }, repeat_email: { equalTo: '#email' }, */ minimum_characters: { minlength: 10 }, maximum_characters: { maxlength: 10 }, minimum_number: { min: 10 }, maximum_number: { max: 10 }, number_range: { range: [10, 20] }, url: { url: true }, date: { date: true }, date_iso: { dateISO: true }, numbers: { number: true }, digits: { digits: true }, creditcard: { creditcard: true }, basic_checkbox: { minlength: 2 }, styled_checkbox: { minlength: 2 }, switch_group: { minlength: 2 }, telephone: { /* minlength: 10, maxlength: 10, digits: true */ } }, messages: { custom: { required: 'This is a custom error message' }, basic_checkbox: { minlength: 'Please select at least {0} checkboxes' }, styled_checkbox: { minlength: 'Please select at least {0} checkboxes' }, switch_group: { minlength: 'Please select at least {0} switches' }, agree: 'Please accept our policy' } }); }); </script> </body> </html>