小工具整理
This commit is contained in:
@@ -0,0 +1 @@
|
||||
body{background-color:#fff;padding:0;margin:0;height:100%;font-size:14px;line-height:16px;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.outer-wrapper{padding:0 10px;border-bottom:2px solid #175ddc;display:grid;grid-template-columns:24px auto 55px;grid-column-gap:10px;box-sizing:border-box;min-height:42px}.inner-wrapper{display:grid;grid-template-columns:auto max-content}.outer-wrapper>*,.inner-wrapper>*{align-self:center}img{border:0;margin:0;padding:0}#logo{width:24px;height:24px;display:block}#close{width:15px;height:15px;display:block;padding:5px 0;margin-right:10px}button:not(.link),button:not(.neutral){background-color:#175ddc;padding:5px 15px;border-radius:3px;color:#fff;border:0}button:not(.link):hover,button:not(.neutral):hover{cursor:pointer;background-color:#1751bd}button.link,button.neutral{background:none;padding:5px 15px;color:#175ddc;border:0}button.link:hover,button.neutral:hover{cursor:pointer;background:none;text-decoration:underline}.select-folder[isVaultLocked=true]{display:none}@media screen and (max-width: 768px){.select-folder{display:none}}@media print{body{display:none}}
|
||||
@@ -0,0 +1 @@
|
||||
<!doctype html><html><head><title>Bitwarden</title><meta charset="utf-8"/><script defer="defer" src="../notification/bar.js"></script><link href="../notification/bar.css" rel="stylesheet"></head><body><div class="outer-wrapper"><div class="logo"><a href="https://vault.bitwarden.com" target="_blank" id="logo-link"><img id="logo" alt="Bitwarden"/></a></div><div id="content"></div><div><button type="button" class="neutral" id="close-button"><img id="close" alt="Close"/></button></div></div><div id="templates" style="display:none"><div class="inner-wrapper" id="template-add"><div class="add-text"></div><div class="add-buttons"><button type="button" class="never-save link"></button> <select class="select-folder" isvaultlocked="false"></select> <button type="button" class="add-save"></button></div></div><div class="inner-wrapper" id="template-change"><div class="change-text"></div><div class="change-buttons"><button type="button" class="change-save"></button></div></div></div></body></html>
|
||||
@@ -0,0 +1,206 @@
|
||||
/******/ (() => { // webpackBootstrap
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ 48626:
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
// extracted by mini-css-extract-plugin
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
/************************************************************************/
|
||||
/******/ // The module cache
|
||||
/******/ var __webpack_module_cache__ = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/ // Check if module is in cache
|
||||
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
||||
/******/ if (cachedModule !== undefined) {
|
||||
/******/ return cachedModule.exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = __webpack_module_cache__[moduleId] = {
|
||||
/******/ // no module.id needed
|
||||
/******/ // no module.loaded needed
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/************************************************************************/
|
||||
/******/ /* webpack/runtime/make namespace object */
|
||||
/******/ (() => {
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = (exports) => {
|
||||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
/******/ }
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/ })();
|
||||
/******/
|
||||
/************************************************************************/
|
||||
var __webpack_exports__ = {};
|
||||
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
||||
(() => {
|
||||
// eslint-disable-next-line
|
||||
__webpack_require__(48626);
|
||||
|
||||
document.addEventListener("DOMContentLoaded", () => {
|
||||
let i18n = {};
|
||||
let lang = window.navigator.language;
|
||||
i18n.appName = chrome.i18n.getMessage("appName");
|
||||
i18n.close = chrome.i18n.getMessage("close");
|
||||
i18n.never = chrome.i18n.getMessage("never");
|
||||
i18n.folder = chrome.i18n.getMessage("folder");
|
||||
i18n.notificationAddSave = chrome.i18n.getMessage("notificationAddSave");
|
||||
i18n.notificationAddDesc = chrome.i18n.getMessage("notificationAddDesc");
|
||||
i18n.notificationChangeSave = chrome.i18n.getMessage("notificationChangeSave");
|
||||
i18n.notificationChangeDesc = chrome.i18n.getMessage("notificationChangeDesc");
|
||||
lang = chrome.i18n.getUILanguage(); // eslint-disable-line
|
||||
// delay 50ms so that we get proper body dimensions
|
||||
|
||||
setTimeout(load, 50);
|
||||
|
||||
function load() {
|
||||
const isVaultLocked = getQueryVariable("isVaultLocked") == "true";
|
||||
document.getElementById("logo").src = isVaultLocked ? chrome.runtime.getURL("images/icon38_locked.png") : chrome.runtime.getURL("images/icon38.png");
|
||||
document.getElementById("logo-link").title = i18n.appName;
|
||||
var neverButton = document.querySelector("#template-add .never-save");
|
||||
neverButton.textContent = i18n.never;
|
||||
var selectFolder = document.querySelector("#template-add .select-folder");
|
||||
selectFolder.setAttribute("aria-label", i18n.folder);
|
||||
selectFolder.setAttribute("isVaultLocked", isVaultLocked.toString());
|
||||
var addButton = document.querySelector("#template-add .add-save");
|
||||
addButton.textContent = i18n.notificationAddSave;
|
||||
var changeButton = document.querySelector("#template-change .change-save");
|
||||
changeButton.textContent = i18n.notificationChangeSave;
|
||||
var closeIcon = document.getElementById("close");
|
||||
closeIcon.src = chrome.runtime.getURL("images/close.png");
|
||||
closeIcon.alt = i18n.close;
|
||||
var closeButton = document.getElementById("close-button");
|
||||
closeButton.title = i18n.close;
|
||||
closeButton.setAttribute("aria-label", i18n.close);
|
||||
document.querySelector("#template-add .add-text").textContent = i18n.notificationAddDesc;
|
||||
document.querySelector("#template-change .change-text").textContent = i18n.notificationChangeDesc;
|
||||
|
||||
if (getQueryVariable("add")) {
|
||||
setContent(document.getElementById("template-add"));
|
||||
var addButton = document.querySelector("#template-add-clone .add-save"),
|
||||
// eslint-disable-line
|
||||
neverButton = document.querySelector("#template-add-clone .never-save"); // eslint-disable-line
|
||||
|
||||
addButton.addEventListener("click", e => {
|
||||
e.preventDefault();
|
||||
const folderId = document.querySelector("#template-add-clone .select-folder").value;
|
||||
const bgAddSaveMessage = {
|
||||
command: "bgAddSave",
|
||||
folder: folderId
|
||||
};
|
||||
sendPlatformMessage(bgAddSaveMessage);
|
||||
});
|
||||
neverButton.addEventListener("click", e => {
|
||||
e.preventDefault();
|
||||
sendPlatformMessage({
|
||||
command: "bgNeverSave"
|
||||
});
|
||||
});
|
||||
|
||||
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
|
||||
});
|
||||
}
|
||||
} else if (getQueryVariable("change")) {
|
||||
setContent(document.getElementById("template-change"));
|
||||
var changeButton = document.querySelector("#template-change-clone .change-save"); // eslint-disable-line
|
||||
|
||||
changeButton.addEventListener("click", e => {
|
||||
e.preventDefault();
|
||||
const bgChangeSaveMessage = {
|
||||
command: "bgChangeSave"
|
||||
};
|
||||
sendPlatformMessage(bgChangeSaveMessage);
|
||||
});
|
||||
}
|
||||
|
||||
closeButton.addEventListener("click", e => {
|
||||
e.preventDefault();
|
||||
sendPlatformMessage({
|
||||
command: "bgCloseNotificationBar"
|
||||
});
|
||||
});
|
||||
window.addEventListener("resize", adjustHeight);
|
||||
adjustHeight();
|
||||
}
|
||||
|
||||
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("=");
|
||||
|
||||
if (pair[0] === variable) {
|
||||
return pair[1];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function setContent(element) {
|
||||
const content = document.getElementById("content");
|
||||
|
||||
while (content.firstChild) {
|
||||
content.removeChild(content.firstChild);
|
||||
}
|
||||
|
||||
var newElement = element.cloneNode(true);
|
||||
newElement.id = newElement.id + "-clone";
|
||||
content.appendChild(newElement);
|
||||
}
|
||||
|
||||
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));
|
||||
});
|
||||
}
|
||||
|
||||
function adjustHeight() {
|
||||
sendPlatformMessage({
|
||||
command: "bgAdjustNotificationBar",
|
||||
data: {
|
||||
height: document.querySelector("body").scrollHeight
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
})();
|
||||
|
||||
/******/ })()
|
||||
;
|
||||
Reference in New Issue
Block a user