-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.html
More file actions
120 lines (106 loc) · 2.66 KB
/
main.html
File metadata and controls
120 lines (106 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<style>
#newLock {
width: 50%;
color: white;
}
.locks {
padding: 10px;
margin: 5px;
}
.open {
/*background: red;*/
color: #000;
}
.locked {
/*background: green;*/
color: #000;
}
.sOpen {
height: 30px;
border-radius: 5px;
width: 100%;
background: linear-gradient( 90deg, #1565C0 10%, rgba(0,0,0,0.1) 10% );
border: 1px solid black;
}
.sLock {
height: 30px;
border-radius: 5px;
width: 100%;
background: linear-gradient( 90deg, rgba(0,0,0,0.3) 90%, #1565C0 90% );
border: 1px solid black;
}
.lockall {
color: white;
background: #1565C0;
box-shadow: 0 10px 0 0 #1E88E5;
}
.lockall:active {
position: relative;
top: 10px;
background: #1E88E5;
box-shadow: 0 0 0 0 #1E88E5;
}
#locks {
margin-top: 30px;
}
</style>
<div>
<h2>Grupper</h2>
<ul>
<li class="button lockall" onclick="lockAll()">Lås alle</li>
<li class="button lockall" onclick="unlockAll()">Lås alle op</li>
</ul>
<div id="locks">
</div>
<div class="button lockall" id="newLock">
Tilføj lås
</div>
</div>
<script>
let newLock = document.getElementById('newLock');
let locks = document.getElementById('locks');
var changeState = (e) => {
let key = e.target.getAttribute('key');
var lockData = JSON.parse(localStorage.getItem("locks"));
lockData[key].state = ! lockData[key].state
localStorage.setItem("locks", JSON.stringify(lockData));
drawLocks();
}
var drawLocks = () => {
[].slice.call(locks.children).forEach( el => locks.removeChild( el ) );
var lockData = JSON.parse(localStorage.getItem("locks"));
lockData.forEach( (l, i) => {
let btn = document.createElement('div');
let slider = document.createElement('div');
slider.setAttribute('class', `${l.state ? 'sLock' : 'sOpen'}`);
slider.setAttribute('key', `${i}`);
slider.addEventListener('click', changeState);
btn.setAttribute('class', `button locks ${l.state ? 'open' : 'locked'}`);
btn.innerHTML = `Lås '${l.name}' ${l.state ? '' : 'op'}`;
btn.setAttribute('key', `${i}`);
btn.addEventListener('click', changeState);
btn.setAttribute('style',
`
background-image: url('images/lock.svg'), url('images/unlock.svg');
background-position: top left, top right;
background-repeat: no-repeat;
background-size: 20px;
`);
btn.appendChild(slider);
locks.appendChild(btn);
})
}
newLock.addEventListener('click', () => {
let name = prompt("Navn på den nye lås");
if (name !== null){
var locks = JSON.parse(localStorage.getItem("locks"));
if(locks == null){
locks = []
}
locks.push({name, state: false});
localStorage.setItem("locks", JSON.stringify(locks));
drawLocks();
}
})
drawLocks();
</script>