Current section

Files

Jump to
phoenix_html priv static phoenix_html.js
Raw

priv/static/phoenix_html.js

'use strict';
function isLinkToSubmitParent(element) {
var isLinkTag = element.tagName === 'A';
var shouldSubmitParent = element.getAttribute('data-submit') === 'parent';
return isLinkTag && shouldSubmitParent;
}
function getClosestForm(element) {
while (element && element !== document && element.nodeType === Node.ELEMENT_NODE) {
if (element.tagName === 'FORM') {
return element;
}
element = element.parentNode;
}
return null;
}
function didHandleSubmitLinkClick(element) {
while (element && element.getAttribute) {
if (isLinkToSubmitParent(element)) {
var message = element.getAttribute('data-confirm');
if (message === null || confirm(message)) {
getClosestForm(element).submit();
};
return true;
} else {
element = element.parentNode;
}
}
return false;
}
window.addEventListener('click', function (event) {
if (event.target && didHandleSubmitLinkClick(event.target)) {
event.preventDefault();
return false;
}
}, false);