email-dns-tools/assets/scripts/spf/Mechanism.js
2026-01-19 09:51:04 +01:00

38 lines
1000 B
JavaScript

import { Term } from "./Term.js";
import { ValueRequirement } from "./ValueRequirement.js";
export class Mechanism extends Term {
separator = ":";
placeholder = null;
qualifierAllowed = true;
constructor(key) {
super(key);
}
getInputQualifier(id) {
return document.getElementById(id + "-qualifier").value;
}
getInputValue(id) {
return document.getElementById(id + "-value")?.value;
}
getInputHtml(id) {
const noValue = this.valueRequirement === ValueRequirement.PROHIBITED;
const placeholder = this.placeholder
+ (this.valueRequirement === ValueRequirement.OPTIONAL ? " (Optional)" : "");
return `
<select id="${id}-qualifier">
${this.isRequired ? "" : `<option value="">&lt;not set&gt;</option>`}
<option value="+">Pass</option>
<option value="-">Fail</option>
<option value="~">Soft fail</option>
<option value="?">Neutral</option>
</select>
${noValue ? "" : `<input id="${id}-value" type="text" placeholder="${placeholder}">`}
`;
}
}