Project

General

Profile

Download (1.18 KB) Statistics
| Branch: | Tag: | Revision:

haketilo / html / default_blocking_policy.js @ 6247f163

1
/**
2
 * part of Hachette
3
 * Default policy dialog logic.
4
 *
5
 * Copyright (C) 2021 Wojtek Kosior
6
 * Redistribution terms are gathered in the `copyright' file.
7
 */
8

    
9
/*
10
 * IMPORTS_START
11
 * IMPORT by_id
12
 * IMPORT light_storage
13
 * IMPORT observables
14
 * IMPORTS_END
15
 */
16

    
17
/*
18
 * Used with `default_blocking_policy.html' to allow user to choose whether to
19
 * block scripts globally or not.
20
 */
21

    
22
const blocking_policy_span = by_id("blocking_policy_span");
23
const current_policy_span = by_id("current_policy_span");
24
const toggle_policy_but = by_id("toggle_policy_but");
25

    
26
let policy_observable;
27

    
28
const update_policy =
29
      allowed => current_policy_span.textContent = allowed ? "allow" : "block";
30
const toggle_policy =
31
      () => light_storage.set_var("default_allow", !policy_observable.value);
32

    
33
async function init_default_policy_dialog()
34
{
35
    policy_observable = await light_storage.observe_var("default_allow");
36
    update_policy(policy_observable.value);
37
    observables.subscribe(policy_observable, update_policy);
38

    
39
    toggle_policy_but.addEventListener("click", toggle_policy);
40
    blocking_policy_span.classList.remove("hide");
41
}
42

    
43
/*
44
 * EXPORTS_START
45
 * EXPORT init_default_policy_dialog
46
 * EXPORTS_END
47
 */
(6-6/14)