MediaWiki:IndicatorsHint.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
(Criou página com '→jshint esversion: 10: const indicatorsByTags = { '022': { ind1: [ '# - Nível não especificado', '0 - Recurso contínuo de interesse internacional', '1 - Recurso contínuo sem interesse internacional', ], }, '041': { ind1: [ '# - Informação não fornecida', '0 - Não é tradução/não inclui tradução', '1 - É ou inclui tradução', ], ind2: [ '# - Código MARC para idiomas', '7 - Fonte...') |
Sem resumo de edição |
||
(5 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
/* jshint esversion: 10 */ |
/* jshint esversion: 10 */ |
||
function findTagFromDropdown(event) { |
|||
const indicatorsByTags = { |
|||
'022': { |
|||
ind1: [ |
|||
'# - Nível não especificado', |
|||
'0 - Recurso contínuo de interesse internacional', |
|||
'1 - Recurso contínuo sem interesse internacional', |
|||
], |
|||
}, |
|||
'041': { |
|||
ind1: [ |
|||
'# - Informação não fornecida', |
|||
'0 - Não é tradução/não inclui tradução', |
|||
'1 - É ou inclui tradução', |
|||
], |
|||
ind2: [ |
|||
'# - Código MARC para idiomas', |
|||
'7 - Fonte especificada no subcampo $2', |
|||
], |
|||
}, |
|||
'045': { |
|||
ind1: [ |
|||
'# - subcampos $b ou $c não estão presentes', |
|||
'0 - data/período únicos', |
|||
'1 - data/período múltiplos', |
|||
'2 - extensão de datas/períodos', |
|||
], |
|||
}, |
|||
'080': { |
|||
ind1: ['# - Informação não fornecida', '0 - Completa', '1 - Abreviada'], |
|||
}, |
|||
'082': { |
|||
ind1: [ |
|||
'0 - Edição completa', |
|||
'1 - Edição abreviada', |
|||
'7 - Outra edição especificada no subcampo $2', |
|||
], |
|||
ind2: [ |
|||
'# - Informação não fornecida', |
|||
'0 - Atribuído pela LC', |
|||
'4 - Atribuído por outra agência', |
|||
], |
|||
}, |
|||
100: { |
|||
ind1: ['1 - Sobrenome', '0 - Prenome', '3 - Nome de família'], |
|||
}, |
|||
245: { |
|||
ind1: [ |
|||
'0 - Entrada principal para o título (sem entrada principal para uma autoria)', |
|||
'1 - Entrada secundária para o título (entrada principal para uma autoria)', |
|||
], |
|||
ind2: [ |
|||
'0 - Caracteres a serem desprezados', |
|||
'1 - Caracteres a serem desprezados', |
|||
'2 - Caracteres a serem desprezados', |
|||
'3 - Caracteres a serem desprezados', |
|||
'4 - Caracteres a serem desprezados', |
|||
'5 - Caracteres a serem desprezados', |
|||
'6 - Caracteres a serem desprezados', |
|||
'7 - Caracteres a serem desprezados', |
|||
'8 - Caracteres a serem desprezados', |
|||
'9 - Caracteres a serem desprezados', |
|||
], |
|||
}, |
|||
260: { |
|||
ind1: [ |
|||
'# - Não se aplica/nenhuma informação fornecida/editor mais antigo', |
|||
'2 - Editor intermediário', |
|||
'3 - Editor atual', |
|||
], |
|||
}, |
|||
650: { |
|||
ind1: [ |
|||
'# - Nenhuma informação fornecida', |
|||
'0 - Nível não especificado', |
|||
'1 - Primário', |
|||
'2 - Secundário', |
|||
], |
|||
ind2: [ |
|||
'4 - Fonte não especificada', |
|||
'0 - Library of Congress Subject Headings (LCSH)', |
|||
"1 - LC subject headings for children's literature", |
|||
'2 - Medical Subject Headings', |
|||
'3 - National Agricultural Library subject authority file', |
|||
'5 - Canadian Subject Headings', |
|||
'6 - Répertoire de vedettes-matière', |
|||
'7 - Fonte especificada no subcampo 2', |
|||
], |
|||
}, |
|||
700: { |
|||
ind1: ['1 - Sobrenome', '0 - Prenome', '3 - Nome de família'], |
|||
ind2: ['# - Nenhuma informação fornecida', '2 - Entrada analítica'], |
|||
}, |
|||
}; |
|||
function setIndOptions(event, ind) { |
|||
const { target } = event; |
const { target } = event; |
||
let tagFromDropdown = ''; |
let tagFromDropdown = ''; |
||
Linha 100: | Linha 6: | ||
target |
target |
||
.closest('.instanceMain') |
.closest('.instanceMain') |
||
.querySelector(' |
.querySelector('[mappingtemplate$="Record/tags"]') |
||
.getAttribute('title') ?? ' '; |
.getAttribute('title') ?? ' '; |
||
return tagFromDropdown.substring(0, 3); |
|||
} |
|||
function setIndOptions(event, ind) { |
|||
const { target } = event; |
|||
const tagFromDropdown = findTagFromDropdown(event); |
|||
if (tagFromDropdown in indicatorsByTags) { |
if (tagFromDropdown in indicatorsByTags) { |
||
Linha 120: | Linha 31: | ||
option.innerText = '# - Indefinido'; |
option.innerText = '# - Indefinido'; |
||
target.appendChild(option); |
target.appendChild(option); |
||
} |
|||
} |
|||
function setPlaceholder(event) { |
|||
const { target } = event; |
|||
const tagFromDropdown = findTagFromDropdown(event); |
|||
if (tagFromDropdown in indicatorsByTags) { |
|||
const placeholder = |
|||
indicatorsByTags[tagFromDropdown].placeholder ?? '$a ... $b ... $c ...'; |
|||
target.setAttribute('placeholder', placeholder); |
|||
} |
} |
||
} |
} |
||
Linha 126: | Linha 48: | ||
const inds1 = document.body.querySelectorAll('[origname="Field[ind1]"'); |
const inds1 = document.body.querySelectorAll('[origname="Field[ind1]"'); |
||
const inds2 = document.body.querySelectorAll('[origname="Field[ind2]"'); |
const inds2 = document.body.querySelectorAll('[origname="Field[ind2]"'); |
||
const textareas = document.body.querySelectorAll('textarea'); |
|||
inds1.forEach((ind1Elem) => { |
inds1.forEach((ind1Elem) => { |
||
ind1Elem.addEventListener('focusin', (event) => { |
ind1Elem.addEventListener('focusin', (event) => { |
||
Linha 134: | Linha 58: | ||
elem.addEventListener('focusin', (event) => { |
elem.addEventListener('focusin', (event) => { |
||
setIndOptions(event, 'ind2'); |
setIndOptions(event, 'ind2'); |
||
}); |
|||
}); |
|||
textareas.forEach((elem) => { |
|||
elem.addEventListener('focusin', (event) => { |
|||
setPlaceholder(event); |
|||
}); |
}); |
||
}); |
}); |
Edição atual tal como às 18h10min de 22 de março de 2024
/* jshint esversion: 10 */
function findTagFromDropdown(event) {
const { target } = event;
let tagFromDropdown = '';
tagFromDropdown =
target
.closest('.instanceMain')
.querySelector('[mappingtemplate$="Record/tags"]')
.getAttribute('title') ?? ' ';
return tagFromDropdown.substring(0, 3);
}
function setIndOptions(event, ind) {
const { target } = event;
const tagFromDropdown = findTagFromDropdown(event);
if (tagFromDropdown in indicatorsByTags) {
target.innerHTML = '';
const indArr = indicatorsByTags[tagFromDropdown][ind] ?? ['# - Indefinido'];
for (let i = 0; i < indArr.length; i += 1) {
const option = document.createElement('option');
option.setAttribute('value', indArr[i][0]);
option.innerText = indArr[i];
target.appendChild(option);
}
} else {
target.innerHTML = '';
const option = document.createElement('option');
option.setAttribute('value', '#');
option.innerText = '# - Indefinido';
target.appendChild(option);
}
}
function setPlaceholder(event) {
const { target } = event;
const tagFromDropdown = findTagFromDropdown(event);
if (tagFromDropdown in indicatorsByTags) {
const placeholder =
indicatorsByTags[tagFromDropdown].placeholder ?? '$a ... $b ... $c ...';
target.setAttribute('placeholder', placeholder);
}
}
function setIndicators() {
const inds1 = document.body.querySelectorAll('[origname="Field[ind1]"');
const inds2 = document.body.querySelectorAll('[origname="Field[ind2]"');
const textareas = document.body.querySelectorAll('textarea');
inds1.forEach((ind1Elem) => {
ind1Elem.addEventListener('focusin', (event) => {
setIndOptions(event, 'ind1');
});
});
inds2.forEach((elem) => {
elem.addEventListener('focusin', (event) => {
setIndOptions(event, 'ind2');
});
});
textareas.forEach((elem) => {
elem.addEventListener('focusin', (event) => {
setPlaceholder(event);
});
});
}