Skip to content

Commit 2bbc38a

Browse files
dGrammatikowilsonge
authored andcommitted
com_mailTo (#21442)
1 parent 98496b1 commit 2bbc38a

File tree

2 files changed

+63
-51
lines changed

2 files changed

+63
-51
lines changed

build/media/com_mailto/js/mailto-default.js

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/**
2+
* @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
3+
* @license GNU General Public License version 2 or later; see LICENSE.txt
4+
*/
5+
((window, document, Joomla) => {
6+
'use strict';
7+
8+
if (!Joomla || typeof Joomla.JText !== 'function') {
9+
throw new Error('core.js was not properly initialised');
10+
}
11+
12+
// Selectors used by this script
13+
const formId = 'mailtoForm';
14+
const closeSelector = '.close-mailto';
15+
16+
/**
17+
* Handle the form submit event
18+
* @param event
19+
*/
20+
const handleFormSubmit = (event) => {
21+
event.preventDefault();
22+
const form = event.target;
23+
24+
// Simple form validation
25+
if (form.mailto.value === '' || form.from.value === '') {
26+
// @todo use the Joomla alerts here
27+
alert(Joomla.JText._('COM_MAILTO_EMAIL_ERR_NOINFO'));
28+
return;
29+
}
30+
31+
form.submit();
32+
};
33+
34+
/**
35+
* Register events
36+
*/
37+
const onClick = (event) => {
38+
event.preventDefault();
39+
window.close();
40+
};
41+
42+
/**
43+
* Register events
44+
*/
45+
const registerEvents = () => {
46+
// Register the submit event listener
47+
document.getElementById(formId).addEventListener('submit', handleFormSubmit);
48+
49+
// Register the close click listener
50+
const closeElements = [].slice.call(document.querySelectorAll(closeSelector));
51+
52+
if (closeElements.length) {
53+
closeElements.forEach((closeElement) => {
54+
closeElement.addEventListener('click', onClick);
55+
});
56+
}
57+
58+
// Cleanup
59+
document.removeEventListener('DOMContentLoaded', registerEvents);
60+
};
61+
62+
document.addEventListener('DOMContentLoaded', registerEvents);
63+
})(window, document, Joomla);

0 commit comments

Comments
 (0)