1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 00:03:56 +00:00

Select folder at save bar (#1409)

* Markup changes

* Render in notification bar folders list that is provided form TS code

* Implemented getting of folders list

* Refactor addPlatformEventListener and added default selection of "No Folder"

* Pass folder id info to saveAddLogin

* Modify saveAddLogin to use folder id

* Try to fix default folder selection

* Fix styling issues found during review

* Fix review issues found by kspearrin

* Fix default selection and null handling

* Fix import order

* Applied review suggestions

* Implement checking if folderExist during saving

* Fix compile issues

* Added select folder... option

* Add internalization for select folder message

* Hide select folder element on narrow screens

* Fix lint issues

* Review fixes in notification bar

* Adjust semi-responsive layout for folder selector

* Revert style change

Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
This commit is contained in:
Dmitry Chepurovskiy
2021-09-03 04:54:52 +03:00
committed by GitHub
parent 61f551087f
commit cd2f174923
6 changed files with 48 additions and 8 deletions

View File

@@ -17,7 +17,6 @@ document.addEventListener('DOMContentLoaded', () => {
// delay 50ms so that we get proper body dimensions
setTimeout(load, 50);
function load() {
var closeButton = document.getElementById('close-button'),
@@ -34,10 +33,12 @@ document.addEventListener('DOMContentLoaded', () => {
if (bodyRect.width < 768) {
document.querySelector('#template-add .add-save').textContent = i18n.yes;
document.querySelector('#template-add .never-save').textContent = i18n.never;
document.querySelector('#template-add .select-folder').style.display = 'none';
document.querySelector('#template-change .change-save').textContent = i18n.yes;
} else {
document.querySelector('#template-add .add-save').textContent = i18n.notificationAddSave;
document.querySelector('#template-add .never-save').textContent = i18n.notificationNeverSave;
document.querySelector('#template-add .select-folder').style.display = 'initial';
document.querySelector('#template-change .change-save').textContent = i18n.notificationChangeSave;
}
@@ -53,7 +54,8 @@ document.addEventListener('DOMContentLoaded', () => {
addButton.addEventListener('click', (e) => {
e.preventDefault();
sendPlatformMessage({
command: 'bgAddSave'
command: 'bgAddSave',
folder: document.getElementById("select-folder").value,
});
});
@@ -63,6 +65,17 @@ document.addEventListener('DOMContentLoaded', () => {
command: 'bgNeverSave'
});
});
const responseFoldersCommand = 'notificationBarGetFoldersList';
chrome.runtime.onMessage.addListener((msg) => {
if (msg.command === responseFoldersCommand && msg.data) {
fillSelectorWithFolders(msg.data.folders);
}
});
sendPlatformMessage({
command: 'bgGetDataForTab',
responseCommand: responseFoldersCommand
});
} else if (getQueryVariable('change')) {
setContent(document.getElementById('template-change'));
var changeButton = document.querySelector('#template-change-clone .change-save');
@@ -120,4 +133,13 @@ document.addEventListener('DOMContentLoaded', () => {
function sendPlatformMessage(msg) {
chrome.runtime.sendMessage(msg);
}
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));
});
}
});