-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathapp.js
More file actions
111 lines (90 loc) · 3.92 KB
/
app.js
File metadata and controls
111 lines (90 loc) · 3.92 KB
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
//Get current domain
var domain = window.location.hostname;
domain = domain.replace('http://', '').replace('https://', '').replace('www.','').split(/[/?#]/)[0];
chrome.runtime.sendMessage({command: "fetch", data: {domain: domain}}, (response) => {
parseCoupons(response.data, domain);
});
var submitCoupon = function(code, desc, domain){
console.log('submit coupon', {code: code, desc: desc, domain: domain});
chrome.runtime.sendMessage({command: "post", data: {code: code, desc: desc, domain: domain}}, (response) => {
submitCoupon_callback(response.data, domain);
});
}
var submitCoupon_callback = function(resp, domain){
console.log('Resp:', resp);
document.querySelector('._submit-overlay').style.display='none';
alert('Coupon Submitted!');
}
var parseCoupons = function(coupons, domain) {
try{
var couponHTML = '';
for( var key in coupons ){
var coupon = coupons[key];
//coupons.forEach(function(coupon, index){
couponHTML += '<li><span class="code">'+coupon.code+'</span>'
+'<p>→ '+coupon.description+'</p></li>';
}
if(couponHTML == ''){
couponHTML = '<p>Be the first to submit a coupon for this site</p>';
}
var couponDisplay = document.createElement('div');
couponDisplay.className = '_coupon__list';
couponDisplay.innerHTML = '<div class="submit-button">Submit Coupon</div>'
+'<h1>Coupons</h1><p>Browse coupons below that have been used for <strong>'+domain+'</strong></p>'
+'<p style="font-style:italic;">Click any coupon to copy & use</p>'
+'<ul>'+couponHTML+'</ul>';
couponDisplay.style.display = 'none';
document.body.appendChild(couponDisplay);
var couponButton = document.createElement('div');
couponButton.className = '_coupon__button';
couponButton.innerHTML = 'C';
document.body.appendChild(couponButton);
var couponSubmitOverlay = document.createElement('div');
couponSubmitOverlay.className = '_submit-overlay';
couponSubmitOverlay.innerHTML = '<span class="close">(x) close</span>'
+'<h3>Do you have a coupon for this site?</h3>'
+'<div><label>Code:</label><input type="text" class="code"/></div>'
+'<div><label>Description:</label><input type="text" class="desc"/></div>'
+'<div><button class="submit-coupon">Submit Coupon</button></div>';
couponSubmitOverlay.style.display = 'none';
document.body.appendChild(couponSubmitOverlay);
createEvents();
}catch(e){
console.log('no coupond found for this domain', e);
}
}
var copyToClipboard = function(str){
var input = document.createElement('textarea');
input.innerHTML = str;
document.body.appendChild(input);
input.select();
var result = document.execCommand('copy');
document.body.removeChild(input);
return result;
}
var createEvents = function(){
document.querySelectorAll('._coupon__list .code').forEach(codeItem => {
codeItem.addEventListener('click', event => {
var codeStr = codeItem.innerHTML;
copyToClipboard(codeStr);
});
});
document.querySelector('._submit-overlay .close').addEventListener('click', function(event){
document.querySelector('._submit-overlay').style.display = 'none';
});
document.querySelector('._coupon__list .submit-button').addEventListener('click', function(event){
document.querySelector('._submit-overlay').style.display = 'block';
});
document.querySelector('._submit-overlay .submit-coupon').addEventListener('click', function(event){
var code = document.querySelector('._submit-overlay .code').value;
var desc = document.querySelector('._submit-overlay .desc').value;
submitCoupon(code, desc, window.domain);
});
document.querySelector('._coupon__button').addEventListener('click', function(event){
if(document.querySelector('._coupon__list').style.display == 'block'){
document.querySelector('._coupon__list').style.display = 'none';
}else{
document.querySelector('._coupon__list').style.display = 'block';
}
});
}