-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoptions.js
82 lines (76 loc) · 2.68 KB
/
options.js
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
function $$(x) {return document.getElementById(x);};
$newtab = $$('newtab');
$result = $$('result-body');
function esc(s) {
return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");
}
function esc_attr(s) { // http://stackoverflow.com/questions/7753448/how-do-i-escape-quotes-in-html-attribute-values
preserveCR = ' ';
return ('' + s)
.replace(/&/g, '&')
.replace(/'/g, ''')
.replace(/"/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\r\n/g, preserveCR)
.replace(/[\r\n]/g, preserveCR);
;
}
chrome.storage.sync.get(['rules', 'newtab'], function({rules, newtab}) {
function mk_editable(i) {
$$('result-'+i).innerHTML=
'<td><input id="box-r0-'+i+'" value="'+esc(rules[i][0])+'"></td>'+
'<td><input id="box-r1-'+i+'" value="'+esc(rules[i][1])+'"></td>'+
'<td><input id="box-r2-'+i+'" value="'+esc(rules[i][2])+'"></td>'+
'<td>'+
'<button type="button" id="save-btn-'+i+'">Save</button>'+
'<button type="button" id="del-btn-'+i+'">Delete</button>'+
'</td>';
$$('save-btn-'+i).addEventListener('click',function(){
rules[i][0] = $$('box-r0-'+i).value;
rules[i][1] = $$('box-r1-'+i).value;
rules[i][2] = $$('box-r2-'+i).value;
save();
});
$$('del-btn-'+i).addEventListener('click',function(){
rules.splice(i,1);
save();
});
}
function save() {
chrome.storage.sync.set({
rules: rules,
newtab: newtab,
});
location.reload();
}
for(let i = 0; i<rules.length; i++) {
var row = document.createElement('tr');
row.id = 'result-'+i;
row.innerHTML=
'<td>'+esc(rules[i][0])+'</td>'+
'<td><pre>'+esc(rules[i][1])+'</pre></td>'+
'<td><pre>'+esc(rules[i][2])+'</pre></td>'+
'<td>'+
'<button type="button" id="edit-btn-'+i+'">Edit</button>'+
'<button type="button" id="del-btn-'+i+'">Delete</button>'+
'</td>';
$result.appendChild(row);
$$('edit-btn-'+i).addEventListener('click',function(){
mk_editable(i);
});
$$('del-btn-'+i).addEventListener('click',function(){
rules.splice(i, 1);
save();
});
};
$newtab.checked = newtab;
$newtab.addEventListener('change',function(){
newtab = $newtab.checked;
save();
});
$$('create').addEventListener('click',function(){
rules.push(['name','^$','http://$1']);
save();
});
});