Skip to content

Commit

Permalink
fixes javascript domready events
Browse files Browse the repository at this point in the history
  • Loading branch information
codesaur committed Apr 29, 2024
1 parent cc7f2ce commit 2c140b0
Show file tree
Hide file tree
Showing 10 changed files with 526 additions and 518 deletions.
90 changes: 46 additions & 44 deletions src/account/account-insert.html
Original file line number Diff line number Diff line change
Expand Up @@ -156,56 +156,58 @@ <h3 class="px-2 my-auto fs-6 text-success">
};
reader.readAsDataURL(photo.files[0]);
});

const formInsert = document.querySelector('form#account_insert');
if (!formInsert) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-insert');
submitters.forEach(function (button) {
button.addEventListener('click', function (e) {
e.preventDefault();
formInsert.requestSubmit();

document.addEventListener('DOMContentLoaded', function () {
const formInsert = document.querySelector('form#account_insert');
if (!formInsert) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-insert');
submitters.forEach(function (button) {
button.addEventListener('click', function (e) {
e.preventDefault();
formInsert.requestSubmit();
});
});
});

formInsert.addEventListener('submit', function (event) {
event.preventDefault();
formInsert.addEventListener('submit', function (event) {
event.preventDefault();

const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}
const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}

submitters.forEach(function (btn) { btn.growNstop(); });
submitters.forEach(function (btn) { btn.growNstop(); });

const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'POST'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
}
const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'POST'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
}

window.location.href = "{{ 'accounts'|link }}";
window.location.href = "{{ 'accounts'|link }}";

NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'Account updated');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
submitters.forEach(function (btn) { btn.growNstop(); });
NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'Account updated');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
submitters.forEach(function (btn) { btn.growNstop(); });
});
});
});
}
}
});
</script>
88 changes: 44 additions & 44 deletions src/account/account-update.html
Original file line number Diff line number Diff line change
Expand Up @@ -188,57 +188,57 @@ <h3 class="px-2 my-auto fs-6 text-primary">
if (roles) {
new Choices(roles, {removeItemButton: true});
}
});

const formUpdate = document.querySelector('form#account_update');
if (!formUpdate) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-update');
submitters.forEach(function (button) {
button.addEventListener('click', function (e) {
e.preventDefault();
formUpdate.requestSubmit();
const formUpdate = document.querySelector('form#account_update');
if (!formUpdate) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-update');
submitters.forEach(function (button) {
button.addEventListener('click', function (e) {
e.preventDefault();
formUpdate.requestSubmit();
});
});
});

formUpdate.addEventListener('submit', function (event) {
event.preventDefault();
formUpdate.addEventListener('submit', function (event) {
event.preventDefault();

const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}
const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}

submitters.forEach(function (btn) { btn.growNstop(); });
submitters.forEach(function (btn) { btn.growNstop(); });

const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'PUT'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
}
const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'PUT'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
}

window.location.href = "{{ 'accounts'|link }}";
window.location.href = "{{ 'accounts'|link }}";

NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'Account updated');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
submitters.forEach(function (btn) { btn.growNstop(); });
NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'Account updated');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
submitters.forEach(function (btn) { btn.growNstop(); });
});
});
});
}
}
});
</script>
100 changes: 50 additions & 50 deletions src/contents/news-insert.html
Original file line number Diff line number Diff line change
Expand Up @@ -524,61 +524,61 @@ <h3 class="px-2 my-auto fs-6 text-success">
});
});
};
});

const formInsert = document.querySelector('form#news_insert');
if (!formInsert) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-insert');
submitters.forEach(function (btn) {
btn.addEventListener('click', function (e) {
e.preventDefault();
formInsert.requestSubmit();
const formInsert = document.querySelector('form#news_insert');
if (!formInsert) {
NotifyTop('danger', "{{ 'error'|text|e }}", 'Form not found!');
} else {
const submitters = document.querySelectorAll('button.submit-insert');
submitters.forEach(function (btn) {
btn.addEventListener('click', function (e) {
e.preventDefault();
formInsert.requestSubmit();
});
});
});

formInsert.addEventListener('submit', function (event) {
event.preventDefault();

let datetimes = this.querySelectorAll('input[type="datetime-local"]');
datetimes?.forEach(input => { input.type = 'text'; });
const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
datetimes?.forEach(input => { input.type = 'datetime-local'; });
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}
formInsert.addEventListener('submit', function (event) {
event.preventDefault();

submitters.forEach(function (btn) { btn.growNstop(); });

const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'POST'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
let datetimes = this.querySelectorAll('input[type="datetime-local"]');
datetimes?.forEach(input => { input.type = 'text'; });
const _valid = this.checkValidity();
this.classList.add('was-validated');
if (!_valid) {
event.stopPropagation();
datetimes?.forEach(input => { input.type = 'datetime-local'; });
return NotifyTop('danger', "{{ 'error'|text|e }}", "{{ 'u-have-some-form-errors'|text|e }}");
}

window.location.href = "{{ 'news'|link }}";

NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'News created');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
datetimes?.forEach(input => { input.type = 'datetime-local'; });
submitters.forEach(function (btn) { btn.growNstop();});
submitters.forEach(function (btn) { btn.growNstop(); });

const data = new FormData(this);
fetch(
this.action,
{
body: data,
method: this.getAttribute('method') ?? 'POST'
}
).then(res => {
let contentType = res.headers.get('content-type');
if (contentType.indexOf('application/json') !== -1) {
return res.json();
}
throw new Error("HTTP [{0}]: {1}".format(res.status, res.statusText));
}).then(response => {
if (response.status !== 'success') {
throw new Error(response.message ? response.message : 'Invalid response!');
}

window.location.href = "{{ 'news'|link }}";

NotifyTop(response.type ?? 'success', response.title ?? "{{ 'success'|text|e }}", response.message ?? 'News created');
}).catch(error => {
NotifyTop('danger', "{{ 'error'|text|e }}", error.message);
datetimes?.forEach(input => { input.type = 'datetime-local'; });
submitters.forEach(function (btn) { btn.growNstop();});
});
});
});
}
}
});
</script>

0 comments on commit 2c140b0

Please sign in to comment.