mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-06 01:35:22 +02:00
50 lines
No EOL
2 KiB
JavaScript
50 lines
No EOL
2 KiB
JavaScript
/**
|
|
* @file get-gov-admin.js includes custom code for the .gov registrar admin portal.
|
|
*
|
|
* Constants and helper functions are at the top.
|
|
* Event handlers are in the middle.
|
|
* Initialization (run-on-load) stuff goes at the bottom.
|
|
*/
|
|
|
|
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
|
|
// Helper functions.
|
|
/** Either sets attribute target="_blank" to a given element, or removes it */
|
|
function openInNewTab(el, removeAttribute = false){
|
|
if(removeAttribute){
|
|
el.setAttribute("target", "_blank");
|
|
}else{
|
|
el.removeAttribute("target", "_blank");
|
|
}
|
|
};
|
|
|
|
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
|
|
// Event handlers.
|
|
|
|
// <<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>><<>>
|
|
// Initialization code.
|
|
|
|
/** An IIFE for pages in DjangoAdmin which may need custom JS implementation.
|
|
* Currently only appends target="_blank" to the domain_form object,
|
|
* but this can be expanded.
|
|
*/
|
|
(function (){
|
|
/*
|
|
On mouseover, appends target="_blank" on domain_form under the Domain page.
|
|
The reason for this is that the template has a form that contains multiple buttons.
|
|
The structure of that template complicates seperating those buttons
|
|
out of the form (while maintaining the same position on the page).
|
|
However, if we want to open one of those submit actions to a new tab -
|
|
such as the manage domain button - we need to dynamically append target.
|
|
As there is no built-in django method which handles this, we do it here.
|
|
*/
|
|
function prepareDjangoAdmin() {
|
|
let domainFormElement = document.getElementById("domain_form");
|
|
let domainSubmitButton = document.getElementById("manageDomainSubmitButton");
|
|
if(domainSubmitButton && domainFormElement){
|
|
domainSubmitButton.addEventListener("mouseover", () => openInNewTab(domainFormElement, true));
|
|
domainSubmitButton.addEventListener("mouseout", () => openInNewTab(domainFormElement, false));
|
|
}
|
|
}
|
|
|
|
prepareDjangoAdmin();
|
|
})(); |