blob: 08070b5489303e4522ad01fb4d169e26dc8ac34f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
//Everything to do with the edit and delete forms is here...
var activeRedirect = null;
function createNewRedirect() {
activeRedirect = new Redirect();
el('#edit-redirect-form h3').innerHTML = 'Create Redirect';
showForm('#edit-redirect-form', activeRedirect);
el('#btn-save-redirect').setAttribute('disabled', 'disabled');
}
function editRedirect(ev) {
let index = indexFromClickEvent(ev);
el('#edit-redirect-form h3').innerHTML = 'Edit Redirect';
activeRedirect = new Redirect(REDIRECTS[index]); //Make a new one, which we can dump a bunch of stuff on...
activeRedirect.existing = true;
activeRedirect.index = index;
showForm('#edit-redirect-form', activeRedirect);
setTimeout(() => el('input[data-bind="description"]').focus(), 200); //Why not working...?
}
function cancelEdit() {
activeRedirect = null;
hideForm('#edit-redirect-form');
}
function saveRedirect() {
let savedRedirect = new Redirect(activeRedirect);
if (activeRedirect.existing) {
REDIRECTS[activeRedirect.index] = savedRedirect; //To strip out any extra crap we've added
} else {
REDIRECTS.push(savedRedirect);
let newNode = template.cloneNode(true);
newNode.removeAttribute('id');
el('.redirect-rows').appendChild(newNode);
}
updateBindings();
saveChanges();
hideForm('#edit-redirect-form');
}
function toggleAdvancedOptions() {
let advancedOptions = el('.advanced');
if (advancedOptions.classList.contains('hidden')) {
advancedOptions.classList.remove('hidden');
el('#advanced-toggle a').innerHTML = 'Hide advanced options...';
} else {
advancedOptions.classList.add('hidden');
el('#advanced-toggle a').innerHTML = 'Show advanced options...';
}
}
//Listen to any change from the edit form...
el('#edit-redirect-form').addEventListener('input', function(ev) {
//Now read values back from the form...
for (let input of el('#edit-redirect-form').querySelectorAll('input[type="text"][data-bind]')) {
let prop = input.getAttribute('data-bind');
activeRedirect[prop] = input.value;
}
activeRedirect.appliesTo = [];
for (let input of el('#apply-to').querySelectorAll('input:checked')) {
activeRedirect.appliesTo.push(input.value);
}
activeRedirect.processMatches = el('#process-matches option:checked').value;
activeRedirect.patternType = el('[name="patterntype"]:checked').value;
activeRedirect.updateExampleResult();
dataBind('#edit-redirect-form', activeRedirect);
});
var deleteIndex;
function confirmDeleteRedirect(ev) {
deleteIndex = indexFromClickEvent(ev);
let redirect = REDIRECTS[deleteIndex];
showForm('#delete-redirect-form', redirect);
}
function deleteRedirect() {
REDIRECTS.splice(deleteIndex, 1);
let node = el(`.redirect-row[data-index="${deleteIndex}"]`);
node.parentNode.removeChild(node);
updateBindings();
saveChanges();
hideForm('#delete-redirect-form');
}
function cancelDelete() {
hideForm('#delete-redirect-form');
}
|