Add editorconfig

This commit is contained in:
Anton Vakhrushev 2018-08-23 13:59:20 +03:00
parent 53c583464d
commit 01842d265b
4 changed files with 84 additions and 69 deletions

15
.editorconfig Normal file
View File

@ -0,0 +1,15 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
[*.js]
indent_style = space
indent_size = 4
# 4 space indentation
[*.html]
indent_style = space
indent_size = 2

View File

@ -1,58 +1,58 @@
const PATTERN_ROW = (addr, pattern) => ` const PATTERN_ROW = (addr, pattern) => `
<tr> <tr>
<td><input type="text" name="server" value="${addr}"></td> <td><input type="text" name="server" value="${addr}"></td>
<td><input type="text" name="pattern" value="${pattern}"></td> <td><input type="text" name="pattern" value="${pattern}"></td>
</tr> </tr>
`; `;
function defaultPatterns() { function defaultPatterns() {
return [ return [
{ server: '', pattern: '.*' }, { server: '', pattern: '.*' },
]; ];
} }
function setPatterns(patterns) { function setPatterns(patterns) {
if (!patterns || patterns.length === 0) { if (!patterns || patterns.length === 0) {
patterns = defaultPatterns(); patterns = defaultPatterns();
} }
console.log('PATTERNS', patterns); console.log('PATTERNS', patterns);
var reducer = (acc, item) => acc + PATTERN_ROW(item.server, item.pattern); var reducer = (acc, item) => acc + PATTERN_ROW(item.server, item.pattern);
var html = patterns.reduce(reducer, ''); var html = patterns.reduce(reducer, '');
document.querySelector(".js-pattern-rows").innerHTML = html; document.querySelector(".js-pattern-rows").innerHTML = html;
} }
function restoreOptions() { function restoreOptions() {
PatternStorage.get().then( PatternStorage.get().then(
setPatterns, setPatterns,
(error) => { (error) => {
console.log(`Error: ${error}`) console.log(`Error: ${error}`)
} }
); );
} }
function saveOptions(evt) { function saveOptions(evt) {
evt.preventDefault(); evt.preventDefault();
var patterns = []; var patterns = [];
var rows = document.querySelectorAll(".js-pattern-rows tr"); var rows = document.querySelectorAll(".js-pattern-rows tr");
rows.forEach(row => { rows.forEach(row => {
var server = row.querySelector('[name="server"]').value; var server = row.querySelector('[name="server"]').value;
var pattern = row.querySelector('[name="pattern"]').value; var pattern = row.querySelector('[name="pattern"]').value;
if (server) { if (server) {
patterns.push({server: server, pattern: pattern}); patterns.push({server: server, pattern: pattern});
} }
}); });
PatternStorage.set(patterns); PatternStorage.set(patterns);
} }
function addRow(evt) { function addRow(evt) {
evt.preventDefault(); evt.preventDefault();
var el = document.querySelector(".js-pattern-rows"); var el = document.querySelector(".js-pattern-rows");
el.innerHTML += PATTERN_ROW('', ''); el.innerHTML += PATTERN_ROW('', '');
} }
document.addEventListener("DOMContentLoaded", restoreOptions); document.addEventListener("DOMContentLoaded", restoreOptions);

View File

@ -2,29 +2,29 @@ const APP_NAME = 'Postify';
const SERVER_ADDR = 'http://127.0.0.1:9999'; const SERVER_ADDR = 'http://127.0.0.1:9999';
function sendUrl(url) { function sendUrl(url) {
browser.notifications.create({ browser.notifications.create({
"type": "basic", "type": "basic",
"iconUrl": browser.extension.getURL("icons/postify-48.png"), "iconUrl": browser.extension.getURL("icons/postify-48.png"),
"title": APP_NAME, "title": APP_NAME,
"message": url, "message": url,
}); });
fetch(SERVER_ADDR, { fetch(SERVER_ADDR, {
method: 'POST', method: 'POST',
headers: { headers: {
'Accept': 'application/json', 'Accept': 'application/json',
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
body: JSON.stringify({ body: JSON.stringify({
url: url url: url
}) })
}); });
} }
function sendCurrentUrl(args) { function sendCurrentUrl(args) {
if (args.url) { if (args.url) {
sendUrl(args.url) sendUrl(args.url)
} }
} }
browser.browserAction.onClicked.addListener(sendCurrentUrl); browser.browserAction.onClicked.addListener(sendCurrentUrl);

View File

@ -1,24 +1,24 @@
function PropertyStorage(name) { function PropertyStorage(name) {
parse = function (data) { parse = function (data) {
var propertyData = data[name]; var propertyData = data[name];
if (!propertyData) { if (!propertyData) {
return null; return null;
} }
try { try {
return JSON.parse(propertyData); return JSON.parse(propertyData);
} catch (e) { } catch (e) {
return null; return null;
} }
}; };
this.get = function () { this.get = function () {
var getting = browser.storage.local.get(name); var getting = browser.storage.local.get(name);
return getting.then(parse); return getting.then(parse);
}; };
this.set = function (value) { this.set = function (value) {
return browser.storage.local.set({ patterns: JSON.stringify(value) }); return browser.storage.local.set({ patterns: JSON.stringify(value) });
}; };
} }
PatternStorage = new PropertyStorage('patterns'); PatternStorage = new PropertyStorage('patterns');