Remove permission api call; prompt notification to confirm removing permission; fix checking if permission is already granted;

This commit is contained in:
rllola 2019-10-02 14:05:58 +02:00
parent bb436f9931
commit d65c945689
2 changed files with 93 additions and 16 deletions

View File

@ -192,6 +192,8 @@ class Wrapper
@actionOpenWindow(message.params)
else if cmd == "wrapperPermissionAdd"
@actionPermissionAdd(message)
else if cmd == "wrapperPermissionRemove"
@actionPermissionRemove(message)
else if cmd == "wrapperRequestFullscreen"
@actionRequestFullscreen()
else if cmd == "wrapperWebNotification"
@ -280,14 +282,37 @@ class Wrapper
actionPermissionAdd: (message) ->
permission = message.params
if Array.isArray(permission) && permission.length > 1
@sendInner {"cmd": "response", "to": message.id, "result": {"error": "Can only grant one permission at the time"}}
return false
if Array.isArray(permission) && permission.length == 1
permission = permission[0]
$.when(@event_site_info).done =>
if permission in @site_info.settings.permissions
@notifications.add "notification-#{message.id}", "info", "Permission already granted.", 4000
return false
@ws.cmd "permissionDetails", permission, (permission_details) =>
@displayConfirm "This site requests permission:" + " <b>#{@toHtmlSafe(permission)}</b>" + "<br><small style='color: #4F4F4F'>#{permission_details}</small>", "Grant", =>
@ws.cmd "permissionAdd", permission, (res) =>
@sendInner {"cmd": "response", "to": message.id, "result": res}
actionPermissionRemove: (message) ->
permission = message.params
if Array.isArray(permission) && permission.length > 1
@sendInner {"cmd": "response", "to": message.id, "result": {"error": "Can only remove one permission at the time"}}
return false
if Array.isArray(permission) && permission.length == 1
permission = permission[0]
$.when(@event_site_info).done =>
if permission not in @site_info.settings.permissions
@notifications.add "notification-#{message.id}", "info", "Permission already removed.", 4000
return false
@ws.cmd "permissionDetails", permission, (permission_details) =>
@displayConfirm "This site want to remove permission:" + " <b>#{@toHtmlSafe(permission)}</b>" + "<br><small style='color: #4F4F4F'>#{permission_details}</small>", "Remove", =>
@ws.cmd "permissionRemove", permission, (res) =>
@sendInner {"cmd": "response", "to": message.id, "result": res}
actionNotification: (message) ->
message.params = @toHtmlSafe(message.params) # Escape html
body = $("<span class='message'>"+message.params[1]+"</span>")
@ -702,4 +727,3 @@ else
ws_url = proto.ws + ":" + origin.replace(proto.http+":", "") + "/ZeroNet-Internal/Websocket?wrapper_key=" + window.wrapper_key
window.wrapper = new Wrapper(ws_url)

File diff suppressed because one or more lines are too long