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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
var RedirectList = {
id : "redirector@einaregilsson.com",
name : "Redirector",
lstRedirects: null,
btnDelete : null,
btnEdit : null,
addItemsToListBox : function(items) {
var list = $('lstRedirects');
var item, row, value, newItem;
for each (item in items) {
newItem = this.template.cloneNode(true);
newItem.getElementsByAttribute('name', 'dscrIncludePattern')[0].setAttribute('value', item.pattern);
newItem.getElementsByAttribute('name', 'dscrExcludePattern')[0].setAttribute('value', item.excludePattern);
newItem.getElementsByAttribute('name', 'dscrRedirectTo')[0].setAttribute('value', item.redirectUrl);
newItem.item = item;
list.appendChild(newItem);
newItem.setAttribute("selected", false);
}
},
onLoad : function() {
try {
RedirLib.initialize(this);
Redirector.init();
this.lstRedirects = $('lstRedirects');
this.lstRedirects.selType = 'single'; //For fx3
this.template = document.getElementsByTagName('richlistitem')[0];
this.lstRedirects.removeChild(this.template);
this.btnDelete = $('btnDelete');
this.btnEdit = $('btnEdit');
this.addItemsToListBox(Redirector.list);
} catch(e) {
alert(e);
}
},
close : function() {
window.close();
},
addRedirect : function() {
var item = { pattern : '', exampleUrl : '', redirectUrl : '', onlyIfLinkExists : false, patternType : 'W'};
window.openDialog("chrome://redirector/content/redirect.xul",
"redirect",
"chrome,dialog,modal,centerscreen", item);
if (item.saved) {
this.addItemsToListBox([item]);
Redirector.addRedirect(item);
}
},
editRedirect : function() {
var listItem = this.lstRedirects.selectedItem;
if (!listItem) {
return;
}
var item = listItem.item;
window.openDialog("chrome://redirector/content/redirect.xul",
"redirect",
"chrome,dialog,modal,centerscreen", item);
if (item.saved) {
listItem.getElementsByAttribute('name', 'dscrIncludePattern')[0].setAttribute('value', item.pattern);
listItem.getElementsByAttribute('name', 'dscrExcludePattern')[0].setAttribute('value', item.excludePattern);
listItem.getElementsByAttribute('name', 'dscrRedirectTo')[0].setAttribute('value', item.redirectUrl);
Redirector.save();
}
},
deleteRedirect : function() {
var index = this.lstRedirects.selectedIndex;
if (index == -1) {
return;
}
try {
this.lstRedirects.removeChild(this.lstRedirects.children[index]);
Redirector.deleteAt(index);
} catch(e) {
alert(e);
}
},
selectionChange : function() {
var index = this.lstRedirects.selectedIndex;
this.btnEdit.disabled = (index == -1);
this.btnDelete.disabled = (index == -1);
}
};
window.addEventListener('unload', function() {
Redirector.unload();
}, false);
|