make dashboard accesible from everywhere to Plugin Click, ctrl + enter just in domainspace
This commit is contained in:
parent
0c8ce940a8
commit
07f663abb0
5 changed files with 54 additions and 20 deletions
|
@ -7,3 +7,8 @@ As a user I want to easily switch between different applications.
|
|||
Download zip file from git repository or run `zip -r -FS ../my-extension.zip * --exclude '*.git*'`
|
||||
in firefox got to `about:addons` click `debug addon`, `load temporary addon`
|
||||
|
||||
USAGE:
|
||||
Got to Addon Preferences and adjust baseUrl
|
||||
Press ctrl + Enter on a webpage belonging to your domain to display the application Buttons for Wekan/Nextcloud/authentik
|
||||
Press the icon on the top right extension bar to open dashboard on any webpage
|
||||
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
browser.browserAction.onClicked.addListener((tab) => {
|
||||
console.log(tab.url);
|
||||
});
|
||||
"use strict";
|
||||
|
||||
function onError(error) {
|
||||
console.error(`Error: ${error}`);
|
||||
}
|
||||
|
||||
function sendMessageToTabs(tabs) {
|
||||
for (let tab of tabs) {
|
||||
browser.tabs.sendMessage(
|
||||
tab.id,
|
||||
{overlay: "display"}
|
||||
).then(response => {
|
||||
}).catch(onError);
|
||||
}
|
||||
}
|
||||
|
||||
browser.browserAction.onClicked.addListener(() => {
|
||||
browser.tabs.query({
|
||||
currentWindow: true,
|
||||
active: true
|
||||
}).then(sendMessageToTabs).catch(onError);
|
||||
});
|
24
dashboard.js
24
dashboard.js
|
@ -1,9 +1,18 @@
|
|||
var buttonsize = 250;
|
||||
var baseUrl="";
|
||||
|
||||
document.addEventListener("keyup", (event) => {
|
||||
if (event.ctrlKey && event.code == "Enter") {
|
||||
console.log("pressed");
|
||||
var dashboard = document.querySelector('#lit-dashboard');
|
||||
if(document.location.host.includes(baseUrl))
|
||||
{
|
||||
doStuff();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function doStuff()
|
||||
{
|
||||
var dashboard = document.querySelector('#lit-dashboard');
|
||||
isFront = dashboard.style.display === 'block';
|
||||
viewportWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
|
||||
viewportHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
|
||||
|
@ -13,8 +22,7 @@ document.addEventListener("keyup", (event) => {
|
|||
dashboard.style.position = "fixed";
|
||||
dashboard.style.zIndex = "3000";
|
||||
dashboard.style.display = isFront ? 'none' : 'block';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function onError(error) {
|
||||
console.log(`Error: ${error}`);
|
||||
|
@ -64,7 +72,6 @@ function createButtons(baseUrl, dashboard)
|
|||
|
||||
function setDashboard(baseUrl)
|
||||
{
|
||||
console.log(baseUrl);
|
||||
if (document.getElementById('lit-dashboard'))
|
||||
{
|
||||
dashboard = document.getElementById('lit-dashboard');
|
||||
|
@ -92,7 +99,7 @@ function setDashboard(baseUrl)
|
|||
// und gib ihm etwas Inhalt
|
||||
}
|
||||
function onGot(item) {
|
||||
let baseUrl = "demo.local-it.org";
|
||||
baseUrl = "demo.local-it.org";
|
||||
if (item.baseUrl) {
|
||||
baseUrl = item.baseUrl;
|
||||
}
|
||||
|
@ -101,3 +108,8 @@ function onGot(item) {
|
|||
|
||||
let getting = browser.storage.sync.get("baseUrl");
|
||||
getting.then(onGot, onError);
|
||||
|
||||
browser.runtime.onMessage.addListener(request => {
|
||||
doStuff();
|
||||
return Promise.resolve({response: ""});
|
||||
});
|
BIN
icons/favicon.jpg
Normal file
BIN
icons/favicon.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
|
@ -8,7 +8,7 @@
|
|||
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["*://*.local-it.org/*"],
|
||||
"matches": ["<all_urls>"],
|
||||
"js": ["dashboard.js"],
|
||||
"css": [ "css/dashboard.css" ]
|
||||
}
|
||||
|
@ -17,28 +17,26 @@
|
|||
"css/style.css",
|
||||
"icons/Nextcloud_Logo.png",
|
||||
"icons/wekan_logo.png",
|
||||
"icons/goauthentik_logo.png"
|
||||
"icons/goauthentik_logo.png",
|
||||
"icons/favicon.jpg"
|
||||
],
|
||||
"options_ui": {
|
||||
"page": "options.html"
|
||||
},
|
||||
|
||||
"permissions": ["storage"],
|
||||
"permissions": ["storage","tabs"],
|
||||
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "addon@example.com"
|
||||
}
|
||||
},
|
||||
"browser_action": {
|
||||
"default_icon": "icons/favicon.jpg",
|
||||
"default_title": "Holsteincloud 3.0"
|
||||
},
|
||||
"background": {
|
||||
"scripts": ["background.js"]
|
||||
},
|
||||
"browser_action": {
|
||||
"default_icon": {
|
||||
"19": "button/geo-19.png",
|
||||
"38": "button/geo-38.png"
|
||||
},
|
||||
"default_title": "Holsteincloud 3.0"
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue