MediaWiki:MarcEditorDynamicLinks.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
/* jshint esversion: |
/* jshint esversion: 10 */ |
||
function main() { |
function main() { |
||
// |
// calling main functions |
||
makeMarcFieldHelpLink(); |
makeMarcFieldHelpLink(); |
||
authorityLinks(); |
authorityLinks(); |
||
setIndicators(); |
|||
rmCarriageReturn(); |
rmCarriageReturn(); |
||
rmHtmlTags(); |
rmHtmlTags(); |
||
Linha 20: | Linha 21: | ||
if (newNodes.length !== 0) { |
if (newNodes.length !== 0) { |
||
// if there are new nodes added |
// if there are new nodes added |
||
console.log('observer before'); |
|||
makeMarcFieldHelpLink(); |
makeMarcFieldHelpLink(); |
||
authorityLinks(); |
authorityLinks(); |
||
setIndicators(); |
|||
} |
} |
||
}); |
}); |
||
Linha 49: | Linha 49: | ||
rmHtmlTags(); |
rmHtmlTags(); |
||
normalizeInput(); |
normalizeInput(); |
||
}); |
|||
// when clicking adding field... |
|||
const addBtn = document.body.querySelector('.multipleTemplateAdder'); |
|||
⚫ | |||
setTimeout(makeMarcFieldHelpLink, 1000); |
|||
console.log('adding btm'); |
|||
}); |
}); |
||
} |
} |
||
⚫ | |||
if (document.readyState === 'complete' || document.readyState !== 'loading') { |
|||
main(); |
|||
} else { |
|||
document.addEventListener('DOMContentLoaded', main); |
|||
} |
|||
// for no obvious reason to me, the first call to the "main" function is not |
// for no obvious reason to me, the first call to the "main" function is not |
Edição atual tal como às 14h03min de 19 de agosto de 2024
/* jshint esversion: 10 */
function main() {
// calling main functions
makeMarcFieldHelpLink();
authorityLinks();
setIndicators();
rmCarriageReturn();
rmHtmlTags();
// Como instâncias do formulário são criadas pelo botão "Adicionar campo",
// é necessário observar o DOM a partir da classe ".multipleTemplateList".
// Toda vez que o DOM é alterado (mais especificamente, quando uma nova
// child de ".multipleTemplateList" é criada), as funções
// makeMarcFieldHelpLink() e authorityLinks() são novamente chamadas.
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// create an observer instance
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
const newNodes = mutation.addedNodes; // DOM NodeList
if (newNodes.length !== 0) {
// if there are new nodes added
makeMarcFieldHelpLink();
authorityLinks();
setIndicators();
}
});
});
// select the target node
const target = document.querySelector('.multipleTemplateList');
// configuration of the observer
const config = {
childList: true,
attributes: false,
subtree: false,
};
// pass in the target node, as well as the observer options
observer.observe(target, config);
// when clicking save...
const saveBtn = document.body.querySelector('#wpSave');
saveBtn.addEventListener('click', () => {
observer.disconnect();
rmTxtFromHiddenFields();
rmCarriageReturn();
rmHtmlTags();
normalizeInput();
});
}
document.addEventListener('DOMContentLoaded', () => main());
// for no obvious reason to me, the first call to the "main" function is not
// occurring, so wait 3 seconds and call it anyway.
setTimeout(main, 3000);