MCPcopy
hub / github.com/Justineo/github-hovercard / save

Function save

extensions/firefox/options.js:58–112  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

56}
57
58function save() {
59 let delay = delayInput.val()
60 let readme = readmeInput.prop('checked')
61 let disableProjects = projectsInput.prop('checked')
62 let showSelf = showSelfInput.prop('checked')
63 let side = sideInputs.filter(':checked').val()
64 let theme = themeInputs.filter(':checked').val()
65
66 let domains = []
67 $('.domain').each(function() {
68 let domain = $(this)
69 .val()
70 .trim()
71 if (domains.indexOf(domain) === -1 && domain !== GH_DOMAIN) {
72 domains.push(domain)
73 }
74 })
75
76 let revoking = current
77 .filter(domain => {
78 return domains.indexOf(domain) === -1
79 })
80 .map(toOrigins)
81 .reduce(concat, [])
82
83 chrome.permissions.remove({
84 origins: revoking
85 })
86
87 let granting = domains.map(toOrigins).reduce(concat, [])
88 chrome.permissions.request(
89 {
90 origins: granting
91 },
92 granted => {
93 let options = { delay, readme, disableProjects, showSelf, side, theme }
94 if (granted) {
95 Object.assign(options, { domains })
96 current = domains
97 } else {
98 log('Domain permission denied.', 3000)
99 }
100
101 storage.set(options, () => {
102 chrome.runtime.sendMessage({ event: 'optionschange' }, response => {
103 if (response.success) {
104 log('Options saved.', 3000)
105 } else {
106 log('Something went wrong.', 3000)
107 }
108 })
109 })
110 }
111 )
112}
113
114function addRow() {
115 if ($('.domain').length >= 4) {

Callers 2

removeRowFunction · 0.70
options.jsFile · 0.70

Calls 5

requestMethod · 0.80
setMethod · 0.80
logFunction · 0.70
removeMethod · 0.45
sendMessageMethod · 0.45

Tested by

no test coverage detected