54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
import define from "../../utils/define.js";
|
|
import {globalBus} from "../../utils/events.js";
|
|
|
|
|
|
const VALIDATED_CLASS = "validated";
|
|
|
|
export default define('validate-button', class extends HTMLButtonElement {
|
|
constructor() {
|
|
super();
|
|
this.__setup();
|
|
}
|
|
|
|
__setup() {
|
|
this.__events();
|
|
}
|
|
|
|
__events() {
|
|
this.addEventListener('click', (e) => {
|
|
console.log("Validate button");
|
|
|
|
const result = this.closest('.result');
|
|
const parent = result.parentNode;
|
|
|
|
const index = Array.prototype.indexOf.call(parent.getElementsByClassName('result'), result);
|
|
console.log("Validate index", index);
|
|
|
|
const curationValidateEvent = new CustomEvent('curate-validate-result', {
|
|
detail: {
|
|
data: {
|
|
validate_index: index
|
|
}
|
|
}
|
|
});
|
|
globalBus.dispatch(curationValidateEvent);
|
|
})
|
|
}
|
|
|
|
isValidated() {
|
|
return this.classList.contains(VALIDATED_CLASS);
|
|
}
|
|
|
|
validate() {
|
|
this.classList.add(VALIDATED_CLASS);
|
|
}
|
|
|
|
unvalidate() {
|
|
this.classList.remove(VALIDATED_CLASS);
|
|
}
|
|
|
|
toggleValidate() {
|
|
this.classList.toggle(VALIDATED_CLASS);
|
|
}
|
|
}, { extends: 'button' });
|