2018-04-11 04:05:23 +02:00
|
|
|
require('./bar.scss');
|
2017-10-29 03:14:14 +01:00
|
|
|
|
2018-04-14 04:54:28 +02:00
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
2018-01-13 16:46:39 +01:00
|
|
|
var i18n = {};
|
2020-01-22 14:10:35 +01:00
|
|
|
var lang = window.navigator.language;
|
2021-09-30 16:20:18 +02:00
|
|
|
|
2021-02-03 20:36:05 +01:00
|
|
|
i18n.appName = chrome.i18n.getMessage('appName');
|
|
|
|
i18n.close = chrome.i18n.getMessage('close');
|
|
|
|
i18n.yes = chrome.i18n.getMessage('yes');
|
|
|
|
i18n.never = chrome.i18n.getMessage('never');
|
2021-09-19 00:11:10 +02:00
|
|
|
i18n.folder = chrome.i18n.getMessage('folder');
|
2021-02-03 20:36:05 +01:00
|
|
|
i18n.notificationAddSave = chrome.i18n.getMessage('notificationAddSave');
|
|
|
|
i18n.notificationNeverSave = chrome.i18n.getMessage('notificationNeverSave');
|
|
|
|
i18n.notificationAddDesc = chrome.i18n.getMessage('notificationAddDesc');
|
|
|
|
i18n.notificationChangeSave = chrome.i18n.getMessage('notificationChangeSave');
|
|
|
|
i18n.notificationChangeDesc = chrome.i18n.getMessage('notificationChangeDesc');
|
|
|
|
lang = chrome.i18n.getUILanguage();
|
|
|
|
|
2021-09-30 16:20:18 +02:00
|
|
|
const lockedImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAACXBIWXMAAAsTAAALEwEAmpwYAAALr2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjAtMDItMjRUMDQ6MzgtMDc6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIwLTA1LTIyVDEzOjUyOjQwLTA2OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIwLTA1LTIyVDEzOjUyOjQwLTA2OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNmOWFlM2NjLTE3ZjAtNDY1MC05MmExLTk2MTY0NjE4NmY4OSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmZmYmI3ODM1LWM1ZDItZWE0Yy05MTQ5LWViNTBmNmIwNDBjOCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY3NGZmNzMyLTMyYmQtNDg2OS1iNTg4LWYwNzk1OGZjY2U0ZSIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM4IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzgiPiA8cGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8cmRmOkJhZz4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZDU0Mjg3MjAtMjc0NS1kZTRjLWE1MTMtZTY5ZTg1MzJjYmFkPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njc0ZmY3MzItMzJiZC00ODY5LWI1ODgtZjA3OTU4ZmNjZTRlIiBzdEV2dDp3aGVuPSIyMDIwLTAyLTI0VDA0OjM4LTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MGFmNDQzYi1iZWUzLTQwOGQtYjY2My04ZmVhMTNmMDJjZGUiIHN0RXZ0OndoZW49IjIwMjAtMDUtMTRUMjM6MzY6NTQtMDY6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmZTY3NzRhNi05ZjZkLTQ3ZTMtODMwYS1kOWVjYzk4NmM5NGMiIHN0RXZ0OndoZW49IjIwMjAtMDUtMjJUMTM6NTI6NDAtMDY6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozZjlhZTNjYy0xN2YwLTQ2NTAtOTJhMS05NjE2NDYxODZmODkiIHN0RXZ0OndoZW49IjIwMjAtMDUtMjJUMTM6NTI6NDAtMDY6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmZTY3NzRhNi05ZjZkLTQ3ZTMtODMwYS1kOWVjYzk4NmM5NGMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkNTQyODcyMC0yNzQ1LWRlNGMtYTUxMy1lNjllODUzMmNiYWQiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2NzRmZjczMi0zMmJkLTQ4NjktYjU4OC1mMDc5NThmY2NlNGUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/
|
2021-02-03 20:36:05 +01:00
|
|
|
// delay 50ms so that we get proper body dimensions
|
|
|
|
setTimeout(load, 50);
|
2016-12-31 02:55:59 +01:00
|
|
|
|
2017-11-10 04:38:09 +01:00
|
|
|
function load() {
|
2021-09-30 16:09:42 +02:00
|
|
|
const isVaultLocked = getQueryVariable('isVaultLocked') == 'true';
|
2021-09-30 16:20:18 +02:00
|
|
|
if (isVaultLocked) {
|
|
|
|
document.getElementById('logo').src = lockedImage;
|
|
|
|
}
|
|
|
|
|
2017-11-20 19:21:14 +01:00
|
|
|
var closeButton = document.getElementById('close-button'),
|
2017-11-10 04:38:09 +01:00
|
|
|
body = document.querySelector('body'),
|
|
|
|
bodyRect = body.getBoundingClientRect();
|
2017-09-19 18:30:19 +02:00
|
|
|
|
2017-11-10 04:38:09 +01:00
|
|
|
// i18n
|
2020-01-22 14:10:35 +01:00
|
|
|
body.classList.add('lang-' + lang.slice(0, 2));
|
2017-09-07 16:12:34 +02:00
|
|
|
|
2018-01-13 16:46:39 +01:00
|
|
|
document.getElementById('logo-link').title = i18n.appName;
|
|
|
|
closeButton.title = i18n.close;
|
2019-10-09 16:12:06 +02:00
|
|
|
closeButton.setAttribute('aria-label', i18n.close);
|
2017-09-07 16:12:34 +02:00
|
|
|
|
2017-11-10 04:38:09 +01:00
|
|
|
if (bodyRect.width < 768) {
|
2018-01-13 16:46:39 +01:00
|
|
|
document.querySelector('#template-add .add-save').textContent = i18n.yes;
|
|
|
|
document.querySelector('#template-add .never-save').textContent = i18n.never;
|
2021-09-03 03:54:52 +02:00
|
|
|
document.querySelector('#template-add .select-folder').style.display = 'none';
|
2018-08-01 05:24:11 +02:00
|
|
|
document.querySelector('#template-change .change-save').textContent = i18n.yes;
|
2018-04-14 04:54:28 +02:00
|
|
|
} else {
|
2018-01-13 16:46:39 +01:00
|
|
|
document.querySelector('#template-add .add-save').textContent = i18n.notificationAddSave;
|
|
|
|
document.querySelector('#template-add .never-save').textContent = i18n.notificationNeverSave;
|
2021-09-30 16:15:18 +02:00
|
|
|
document.querySelector('#template-add .select-folder').style.display = isVaultLocked ? 'none' : 'initial';
|
2021-09-19 00:11:10 +02:00
|
|
|
document.querySelector('#template-add .select-folder').setAttribute('aria-label', i18n.folder);
|
2018-08-01 05:24:11 +02:00
|
|
|
document.querySelector('#template-change .change-save').textContent = i18n.notificationChangeSave;
|
2017-11-10 04:38:09 +01:00
|
|
|
}
|
2016-12-30 08:09:54 +01:00
|
|
|
|
2018-01-13 16:46:39 +01:00
|
|
|
document.querySelector('#template-add .add-text').textContent = i18n.notificationAddDesc;
|
2018-08-01 05:24:11 +02:00
|
|
|
document.querySelector('#template-change .change-text').textContent = i18n.notificationChangeDesc;
|
2016-12-30 08:09:54 +01:00
|
|
|
|
2017-11-10 04:38:09 +01:00
|
|
|
if (getQueryVariable('add')) {
|
|
|
|
setContent(document.getElementById('template-add'));
|
2016-12-30 20:25:57 +01:00
|
|
|
|
2017-11-10 04:38:09 +01:00
|
|
|
var addButton = document.querySelector('#template-add-clone .add-save'),
|
|
|
|
neverButton = document.querySelector('#template-add-clone .never-save');
|
|
|
|
|
2018-04-14 04:54:28 +02:00
|
|
|
addButton.addEventListener('click', (e) => {
|
2017-11-10 04:38:09 +01:00
|
|
|
e.preventDefault();
|
2021-09-08 21:57:46 +02:00
|
|
|
const folderId = document.querySelector('#template-add-clone .select-folder').value;
|
2018-01-13 16:46:39 +01:00
|
|
|
sendPlatformMessage({
|
2021-09-03 03:54:52 +02:00
|
|
|
command: 'bgAddSave',
|
2021-09-08 21:57:46 +02:00
|
|
|
folder: folderId,
|
2017-11-10 04:38:09 +01:00
|
|
|
});
|
2017-06-13 19:59:16 +02:00
|
|
|
});
|
|
|
|
|
2018-04-14 04:54:28 +02:00
|
|
|
neverButton.addEventListener('click', (e) => {
|
2017-11-10 04:38:09 +01:00
|
|
|
e.preventDefault();
|
2018-01-13 16:46:39 +01:00
|
|
|
sendPlatformMessage({
|
2017-11-10 04:38:09 +01:00
|
|
|
command: 'bgNeverSave'
|
|
|
|
});
|
|
|
|
});
|
2021-09-03 03:54:52 +02:00
|
|
|
|
2021-09-30 16:13:29 +02:00
|
|
|
if (!isVaultLocked) {
|
|
|
|
const responseFoldersCommand = 'notificationBarGetFoldersList';
|
|
|
|
chrome.runtime.onMessage.addListener((msg) => {
|
|
|
|
if (msg.command === responseFoldersCommand && msg.data) {
|
|
|
|
fillSelectorWithFolders(msg.data.folders);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
sendPlatformMessage({
|
|
|
|
command: 'bgGetDataForTab',
|
|
|
|
responseCommand: responseFoldersCommand
|
|
|
|
});
|
|
|
|
}
|
2018-08-01 05:24:11 +02:00
|
|
|
} else if (getQueryVariable('change')) {
|
|
|
|
setContent(document.getElementById('template-change'));
|
|
|
|
var changeButton = document.querySelector('#template-change-clone .change-save');
|
|
|
|
changeButton.addEventListener('click', (e) => {
|
|
|
|
e.preventDefault();
|
|
|
|
sendPlatformMessage({
|
|
|
|
command: 'bgChangeSave'
|
|
|
|
});
|
|
|
|
});
|
2018-04-14 04:54:28 +02:00
|
|
|
} else if (getQueryVariable('info')) {
|
2017-11-10 04:38:09 +01:00
|
|
|
setContent(document.getElementById('template-alert'));
|
|
|
|
document.getElementById('template-alert-clone').textContent = getQueryVariable('info');
|
|
|
|
}
|
|
|
|
|
2018-04-14 04:54:28 +02:00
|
|
|
closeButton.addEventListener('click', (e) => {
|
2017-06-13 19:59:16 +02:00
|
|
|
e.preventDefault();
|
2018-01-13 16:46:39 +01:00
|
|
|
sendPlatformMessage({
|
2017-11-10 04:38:09 +01:00
|
|
|
command: 'bgCloseNotificationBar'
|
2016-12-30 20:25:57 +01:00
|
|
|
});
|
|
|
|
});
|
2016-12-30 08:09:54 +01:00
|
|
|
|
2018-01-13 16:46:39 +01:00
|
|
|
sendPlatformMessage({
|
2017-11-10 04:38:09 +01:00
|
|
|
command: 'bgAdjustNotificationBar',
|
|
|
|
data: {
|
|
|
|
height: body.scrollHeight
|
|
|
|
}
|
2016-12-30 08:09:54 +01:00
|
|
|
});
|
2017-11-10 04:38:09 +01:00
|
|
|
}
|
2017-09-07 16:12:34 +02:00
|
|
|
|
2016-12-30 08:09:54 +01:00
|
|
|
function getQueryVariable(variable) {
|
|
|
|
var query = window.location.search.substring(1);
|
|
|
|
var vars = query.split('&');
|
|
|
|
|
|
|
|
for (var i = 0; i < vars.length; i++) {
|
|
|
|
var pair = vars[i].split('=');
|
2016-12-30 20:25:57 +01:00
|
|
|
if (pair[0] === variable) {
|
2016-12-30 08:09:54 +01:00
|
|
|
return pair[1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setContent(element) {
|
2017-11-20 19:21:14 +01:00
|
|
|
const content = document.getElementById('content');
|
2016-12-30 08:09:54 +01:00
|
|
|
while (content.firstChild) {
|
|
|
|
content.removeChild(content.firstChild);
|
|
|
|
}
|
|
|
|
|
|
|
|
var newElement = element.cloneNode(true);
|
|
|
|
newElement.id = newElement.id + '-clone';
|
|
|
|
content.appendChild(newElement);
|
|
|
|
}
|
2018-01-13 16:46:39 +01:00
|
|
|
|
|
|
|
function sendPlatformMessage(msg) {
|
2021-02-03 20:36:05 +01:00
|
|
|
chrome.runtime.sendMessage(msg);
|
2018-01-13 16:46:39 +01:00
|
|
|
}
|
2021-09-03 03:54:52 +02:00
|
|
|
|
|
|
|
function fillSelectorWithFolders(folders) {
|
|
|
|
const select = document.querySelector('#template-add-clone .select-folder');
|
|
|
|
select.appendChild(new Option(chrome.i18n.getMessage('selectFolder'), null, true));
|
|
|
|
folders.forEach((folder) => {
|
|
|
|
//Select "No Folder" (id=null) folder by default
|
|
|
|
select.appendChild(new Option(folder.name, folder.id || '', false));
|
|
|
|
});
|
|
|
|
}
|
2016-12-30 08:09:54 +01:00
|
|
|
});
|