| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- ((dn, inputs, ldifOutput) => {
- let changes = [],
- multipleValues = {};
- function ComputeChanges() {
- let actualChanges = [];
- for (let i = 0; i < changes.length; ++i) {
- let ch = changes[i];
- if (!ch)
- continue;
- if (ch.initialValue.length && ch.newValue.length && (multipleValues[ch.attrName] || 0) === 1) {
- actualChanges.push(`replace: ${ch.attrName}\n${ch.attrName}: ${ch.newValue}`);
- } else {
- if (ch.initialValue.length) {
- if ((multipleValues[ch.attrName] || 0) === 1)
- actualChanges.push(`delete: ${ch.attrName}`);
- else
- actualChanges.push(`delete: ${ch.attrName}\nattribute: ${ch.initialValue}`);
- }
- if (ch.newValue.length)
- actualChanges.push(`add: ${ch.attrName}\n${ch.attrName}: ${ch.newValue}`);
- }
- }
- if (!actualChanges.length)
- return "";
- actualChanges.sort((a, b) => b.localeCompare(a));
- return `dn: ${dn}\nchangetype: modify\n` + actualChanges.join("\n-\n");
- }
- function UpdateLdif() {
- ldifOutput.textContent = ComputeChanges();
- ldifOutput.style.height = ldifOutput.scrollHeight + "px"
- }
- function onValueChanged(input) {
- let initialValue = input.dataset.initialValue || "",
- inputId = input.dataset.inputId,
- newValue = input.value || "",
- attrName = input.dataset.attributeName;
- if (initialValue === newValue)
- changes[inputId] = undefined;
- else
- changes[inputId] = { initialValue: initialValue, newValue: newValue, attrName: attrName };
- UpdateLdif();
- }
- inputs.forEach(i => {
- let attrName = i.dataset.attributeName;
- if ((i.dataset.initialValue || "").length)
- multipleValues[attrName] = (multipleValues[attrName] || 0) + 1;
- i.addEventListener("change", e => onValueChanged(e.currentTarget))
- });
- })(window['dn'], document.querySelectorAll(".LDAPAttribute > input"), document.getElementById("ldifOutput"));
|