mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
MDL-76059 forms: graceful early exit for invalid button elements.
Ensure login form tries to capture guest button only if it exists.
This commit is contained in:
parent
046e48c49c
commit
3be5954500
2
lib/form/amd/build/submit.min.js
vendored
2
lib/form/amd/build/submit.min.js
vendored
@ -8,6 +8,6 @@ define("core_form/submit",["exports","core_form/events"],(function(_exports,_eve
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
* @since 3.8
|
||||
*/
|
||||
let cookieListener=0;const cookieListeningButtons=[];let currentUploadCount=0;const uploadListeningButtons=[];let uploadListenersRegistered=!1;const getCookieName=()=>"moodledownload_"+M.cfg.sesskey,clearDownloadCookie=()=>{document.cookie=encodeURIComponent(getCookieName())+"=deleted; expires="+new Date(0).toUTCString()},checkUploadCount=()=>{currentUploadCount?uploadListeningButtons.forEach((button=>{button.disabled=!0})):uploadListeningButtons.forEach((button=>{button.disabled=!1}))};_exports.init=elementId=>{const button=document.getElementById(elementId);button.disabled||uploadListeningButtons.push(button),uploadListenersRegistered||(document.addEventListener(_events.eventTypes.uploadStarted,(e=>{window.console.log(e.target),currentUploadCount++,checkUploadCount()})),document.addEventListener(_events.eventTypes.uploadCompleted,(e=>{window.console.log(e.target),currentUploadCount--,checkUploadCount()})),uploadListenersRegistered=!0),"off"!==button.form.dataset.doubleSubmitProtection&&button.form.addEventListener("submit",(function(event){const disableAction=function(){event.defaultPrevented||button.disabled||(button.disabled=!0,clearDownloadCookie(),(button=>{cookieListeningButtons.push(button),cookieListener||(cookieListener=setInterval((()=>{2==document.cookie.split(getCookieName()+"=").length&&(clearDownloadCookie(),clearInterval(cookieListener),cookieListener=0,cookieListeningButtons.forEach((button=>{button.disabled=!1})))}),500))})(button))};window.addEventListener("beforeunload",disableAction),setTimeout((function(){window.removeEventListener("beforeunload",disableAction)}),0)}),!1)}}));
|
||||
let cookieListener=0;const cookieListeningButtons=[];let currentUploadCount=0;const uploadListeningButtons=[];let uploadListenersRegistered=!1;const getCookieName=()=>"moodledownload_"+M.cfg.sesskey,clearDownloadCookie=()=>{document.cookie=encodeURIComponent(getCookieName())+"=deleted; expires="+new Date(0).toUTCString()},checkUploadCount=()=>{currentUploadCount?uploadListeningButtons.forEach((button=>{button.disabled=!0})):uploadListeningButtons.forEach((button=>{button.disabled=!1}))};_exports.init=elementId=>{const button=document.getElementById(elementId);null!==button&&(button.disabled||uploadListeningButtons.push(button),uploadListenersRegistered||(document.addEventListener(_events.eventTypes.uploadStarted,(e=>{window.console.log(e.target),currentUploadCount++,checkUploadCount()})),document.addEventListener(_events.eventTypes.uploadCompleted,(e=>{window.console.log(e.target),currentUploadCount--,checkUploadCount()})),uploadListenersRegistered=!0),"off"!==button.form.dataset.doubleSubmitProtection&&button.form.addEventListener("submit",(function(event){const disableAction=function(){event.defaultPrevented||button.disabled||(button.disabled=!0,clearDownloadCookie(),(button=>{cookieListeningButtons.push(button),cookieListener||(cookieListener=setInterval((()=>{2==document.cookie.split(getCookieName()+"=").length&&(clearDownloadCookie(),clearInterval(cookieListener),cookieListener=0,cookieListeningButtons.forEach((button=>{button.disabled=!1})))}),500))})(button))};window.addEventListener("beforeunload",disableAction),setTimeout((function(){window.removeEventListener("beforeunload",disableAction)}),0)}),!1))}}));
|
||||
|
||||
//# sourceMappingURL=submit.min.js.map
|
File diff suppressed because one or more lines are too long
@ -106,12 +106,17 @@ const checkUploadCount = () => {
|
||||
/**
|
||||
* Initialises submit buttons.
|
||||
*
|
||||
* @param {String} elementId Form element
|
||||
* @param {String} elementId Form button element
|
||||
* @listens event:uploadStarted
|
||||
* @listens event:uploadCompleted
|
||||
*/
|
||||
export const init = (elementId) => {
|
||||
const button = document.getElementById(elementId);
|
||||
if (button === null) {
|
||||
// Exit early if invalid element id passed.
|
||||
return;
|
||||
}
|
||||
|
||||
// If buttons are disabled by default, we do not enable them when file upload completed event is fired.
|
||||
if (!button.disabled) {
|
||||
uploadListeningButtons.push(button);
|
||||
|
@ -215,6 +215,8 @@
|
||||
{{/error}}
|
||||
require(['core_form/submit'], function(Submit) {
|
||||
Submit.init("loginbtn");
|
||||
{{#canloginasguest}}
|
||||
Submit.init("loginguestbtn");
|
||||
{{/canloginasguest}}
|
||||
});
|
||||
{{/js}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user