Compare commits

..

3 Commits

Author SHA1 Message Date
5714519a2e update 2020-08-25 21:19:25 +02:00
c52605f703 themes added 2020-08-25 19:36:51 +02:00
bdef2a8db9 package 2020-08-25 19:26:50 +02:00
5 changed files with 29 additions and 27 deletions

View File

@ -1,9 +1,7 @@
(function () { function jeanCloudContactMailerMessage (messageContainer, theme, level, text) {
function message (messageContainer, level, text) {
/* This function displays a message on top of the form */ /* This function displays a message on top of the form */
const messageElement = document.createElement('p') const messageElement = document.createElement('p')
const messageId = 'contact-mailer-message-' + level const messageId = 'contact-mailer-' + theme + '-message-' + level
messageContainer.appendChild(messageElement) messageContainer.appendChild(messageElement)
messageElement.textContent = text messageElement.textContent = text
messageElement.classList.add('contact-mailer-message') messageElement.classList.add('contact-mailer-message')
@ -26,12 +24,12 @@ function message (messageContainer, level, text) {
}, 10000) }, 10000)
} }
function interceptForm (formId) { function jeanCloudContactFormIntercept (formId, theme) {
/* /*
* This function intercepts a form submission and send it via XHR. * This function intercepts a form submission and send it via XHR.
* Param formId is the HTML id of the form * Param formId is the HTML id of the form
*/ */
const formElem = document.getElementById(formId) const formElem = document.getElementById(formId)
if (!formElem) { if (!formElem) {
console.error('You tried to intercept form id:"' + formId + '" but it was not found.') console.error('You tried to intercept form id:"' + formId + '" but it was not found.')
return return
@ -58,31 +56,30 @@ function interceptForm (formId) {
.then(data => { .then(data => {
loadingText.parentNode.removeChild(loadingText) loadingText.parentNode.removeChild(loadingText)
if (!data.ok || data.status == 500) { if (!data.ok || data.status == 500) {
message(messageBox, 'error', 'Erreur du service denvoi. Réessayez plus tard ou contactez https://jean-cloud.net') jeanCloudContactMailerMessage (messageBox, theme, 'error', 'Erreur du service denvoi. Réessayez plus tard ou contactez https://jean-cloud.net')
} else if (data.ok || data.status == 200) { } else if (data.ok || data.status == 200) {
message(messageBox, 'success', 'Le message a bien été envoyé !') jeanCloudContactMailerMessage (messageBox, theme, 'success', 'Le message a bien été envoyé !')
formElem.reset() formElem.reset()
} }
}) })
.catch((error) => { .catch((error) => {
loadingText.parentNode.removeChild(loadingText) loadingText.parentNode.removeChild(loadingText)
message(messageBox, 'error', 'Impossible denvoyer le formulaire. Vérifiez votre connexion internet ou réessayez plus tard.') jeanCloudContactMailerMessage (messageBox, theme, 'error', 'Impossible denvoyer le formulaire. Vérifiez votre connexion internet ou réessayez plus tard.')
}) })
} }
} }
/* Get the current js file location */ (function () {
const path = (document.currentScript.src[-1] == '/' ? document.currentScript.src : document.currentScript.src.replace(/\/[^\/]*$/, '')) /* Get the current js file location */
const path = (document.currentScript.src[-1] == '/' ? document.currentScript.src : document.currentScript.src.replace(/\/[^\/]*$/, ''))
/* Adding a css file */
var link = document.createElement("link"); /* Adding a css file */
link.type = "text/css"; var link = document.createElement("link");
link.rel = "stylesheet"; link.type = "text/css";
link.crossOrigin = 'anonymous'; link.rel = "stylesheet";
link.href = path + "/style.css"; link.crossOrigin = 'anonymous';
link.integrity = 'sha384-9kSXtY4xhTP1f97JTT2J8tEHj1thIUfd9Ub7yOFsGLBQ/impvue07/UN1MhyCcyP' link.href = path + "/style.css";
document.head.appendChild(link); link.integrity = 'sha384-8PWvFCRowSxssUyiGirvpq/Nh6TTzYrsbAmpC0cw/OUKkZibNdI5L1gFiHxfrTZT'
// cat style.css | openssl dgst -sha384 -binary | openssl base64 -A
interceptForm ('contact-mailer-form') document.head.appendChild(link);
})() })()

View File

@ -1,6 +1,6 @@
{ {
"name": "jean-cloud-contact-mailer-client", "name": "jean-cloud-contact-mailer-client",
"version": "1.0.8", "version": "1.0.15",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

View File

@ -9,13 +9,13 @@
cursor:pointer; cursor:pointer;
} }
.contact-mailer-message-error { .contact-mailer-plain-message-error {
color: white; color: white;
background-color: #ef4757; background-color: #ef4757;
border-color: #ef4757; border-color: #ef4757;
} }
.contact-mailer-message-success { .contact-mailer-plain-message-success {
color: white; color: white;
background-color: #00B06A; background-color: #00B06A;
border-color: #00B06A; border-color: #00B06A;
@ -35,4 +35,4 @@
.contact-mailer-sending { .contact-mailer-sending {
padding: 5px 10px; padding: 5px 10px;
} }

View File

@ -75,6 +75,10 @@ You can store them in a `.env` file. The python app will read it or you can pass
- `ADMIN_PASSWORD` password used to manage users - `ADMIN_PASSWORD` password used to manage users
- `UID` used to set the uwsg socket ownership in production - `UID` used to set the uwsg socket ownership in production
## Client
plain or light theme.
## Roadmap ## Roadmap
### Near future ### Near future
- go on docker hub - go on docker hub

View File

@ -27,5 +27,6 @@
<input type="submit" /> <input type="submit" />
</form> </form>
<script src="./client/index.js"></script> <script src="./client/index.js"></script>
<script> jeanCloudContactFormIntercept ('contact-mailer-form', 'light') </script>
</body> </body>
</html> </html>