feat: toolbar popup to suggest new alternatives
This commit is contained in:
parent
bde303215c
commit
7decb2a39f
|
@ -11,7 +11,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": "This extension looks at your current URL, and recommends BETTER product/service alternatives via an in-page pop-up.",
|
"description": "This extension looks at your current URL, and recommends BETTER product/service alternatives via an in-page pop-up.",
|
||||||
"permissions": ["storage"],
|
"permissions": ["storage", "tabs"],
|
||||||
"background": {
|
"background": {
|
||||||
"scripts": ["background.js"],
|
"scripts": ["background.js"],
|
||||||
"persistent": false
|
"persistent": false
|
||||||
|
@ -27,5 +27,10 @@
|
||||||
"page": "options.html",
|
"page": "options.html",
|
||||||
"open_in_tab": false
|
"open_in_tab": false
|
||||||
},
|
},
|
||||||
|
"browser_action": {
|
||||||
|
"default_icon": "images/48.png",
|
||||||
|
"default_title": "Better",
|
||||||
|
"default_popup": "toolbar/popup.html"
|
||||||
|
},
|
||||||
"web_accessible_resources": ["defaultlist.json", "lists/*"]
|
"web_accessible_resources": ["defaultlist.json", "lists/*"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="stylesheet" href="choose_beast.css" />
|
||||||
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="container" style="max-width: 420px">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h2 class="font-weight-bold">Better</h2>
|
||||||
|
<p class="lead">Suggest an alternative service for this URL</p>
|
||||||
|
<div class="alert alert-info" id="currentURL"></div>
|
||||||
|
<form action="" method="GET" id="betterForm">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="basic-url">Better Name</label>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="text" id="betterName" name="betterName" class="form-control" id="basic-url">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="basic-url">Better URL</label>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="url" id="betterURL" name="betterURL" class="form-control" id="basic-url">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="basic-url">Better description</label>
|
||||||
|
<div class="input-group mb-3">
|
||||||
|
<input type="text" id="betterDescription" name="betterDescription" class="form-control" id="basic-url">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button class="btn btn-warning font-weight-bold" id="suggestionSubmit">Submit suggestion</button>
|
||||||
|
</form>
|
||||||
|
<p class="text-muted">This will take you to a GitHub issue page</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="error-content" class="hidden">
|
||||||
|
</div>
|
||||||
|
<script src="popup.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,39 @@
|
||||||
|
let currentURL = document.getElementById("currentURL");
|
||||||
|
|
||||||
|
chrome.tabs.query(
|
||||||
|
{
|
||||||
|
active: true,
|
||||||
|
currentWindow: true,
|
||||||
|
},
|
||||||
|
function (tabs) {
|
||||||
|
var tabURL = tabs[0].url;
|
||||||
|
currentURL.textContent = tabURL;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
let betterForm = document.getElementById("betterForm");
|
||||||
|
let betterName = document.getElementById("betterName");
|
||||||
|
let betterURL = document.getElementById("betterURL");
|
||||||
|
let betterDescription = document.getElementById("betterDescription");
|
||||||
|
|
||||||
|
function encodeQueryData(data) {
|
||||||
|
const ret = [];
|
||||||
|
for (let d in data)
|
||||||
|
ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
|
||||||
|
return ret.join("&");
|
||||||
|
}
|
||||||
|
|
||||||
|
var submitSuggestion = function () {
|
||||||
|
const data = {
|
||||||
|
title: `Suggestion: ${currentURL.textContent}`,
|
||||||
|
body: `${betterURL.value}\n${betterName.value}\n${betterDescription.value}`,
|
||||||
|
};
|
||||||
|
const queryString = encodeQueryData(data);
|
||||||
|
let suggestionUrl = `https://github.com/nileshtrivedi/better/issues/new?${queryString}`;
|
||||||
|
chrome.tabs.create({ url: suggestionUrl });
|
||||||
|
};
|
||||||
|
|
||||||
|
betterForm.addEventListener("submit", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
submitSuggestion();
|
||||||
|
});
|
Loading…
Reference in New Issue