An experiment in requesting permissions and some related fixes.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3937 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
2022-07-27 00:27:10 +00:00
parent b2ecc24e85
commit f787eb077b
7 changed files with 108 additions and 11 deletions

View File

@ -24,6 +24,7 @@ const k_api = {
error: {args: ['error'], func: api_error},
localStorageSet: {args: ['key', 'value'], func: api_localStorageSet},
localStorageGet: {args: ['key'], func: api_localStorageGet},
requestPermission: {args: ['permission', 'id'], func: api_requestPermission},
};
window.addEventListener("keydown", function(event) {
@ -440,6 +441,22 @@ function api_localStorageGet(key, value) {
send({message: 'localStorage', key: key, value: window.localStorage.getItem('app:' + key)});
}
function api_requestPermission(permission, id) {
let permissions = document.getElementById('permissions');
let div = document.createElement('div');
div.appendChild(document.createTextNode(permission));
for (let action of ['allow', 'allow once', 'deny once', 'deny']) {
let button = document.createElement('button');
button.innerText = action;
button.onclick = function() {
send({action: 'permission', id: id, granted: action});
permissions.removeChild(div);
}
div.appendChild(button);
}
permissions.appendChild(div);
}
function receive(message) {
if (message && message.action == "session") {
setStatusMessage("🟢 Executing...", kStatusColor);