@yz-social/civildefense.io 4.5.29 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +1 -0
- package/package.json +4 -2
- package/public/about/en.html +42 -9
- package/public/about/identity.html +33 -0
- package/public/about/index.html +1 -1
- package/public/about/notification.html +33 -0
- package/public/about/pwa.html +57 -0
- package/public/about/style.css +6 -0
- package/public/about/template.html +28 -0
- package/public/about/topics.png +0 -0
- package/public/index.html +17 -9
- package/public/javascripts/alert.js +140 -84
- package/public/javascripts/browser-push.js +56 -0
- package/public/javascripts/conversation.js +6 -3
- package/public/javascripts/display.js +2 -1
- package/public/javascripts/hashtags.js +2 -1
- package/public/javascripts/main.js +94 -60
- package/public/javascripts/map.js +5 -3
- package/public/javascripts/p2pWebNetwork.js +37 -4
- package/public/javascripts/protocol.js +3 -3
- package/public/javascripts/pubsub.js +107 -98
- package/public/javascripts/push.js +28 -0
- package/public/javascripts/s2.js +24 -2
- package/public/javascripts/service-manager.js +11 -7
- package/public/javascripts/store-memory.js +74 -0
- package/public/javascripts/store-redis.js +101 -0
- package/public/javascripts/translations.js +6 -6
- package/public/service-worker.js +50 -5
- package/public/stylesheets/style.css +10 -1
- package/server/websocket.js +8 -4
package/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { P2PWebNetwork } from "./public/javascripts/p2pWebNetwork.js";
|
|
2
|
+
export { dht } from './public/javascripts/protocol.js';
|
|
2
3
|
export { topicRegion, agentTopic, alertTopic, canonicalTag } from "./public/javascripts/versions.js";
|
|
3
4
|
export { getContainingCells } from "./public/javascripts/s2.js";
|
|
4
5
|
export { location } from "./server/getLocation.js";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yz-social/civildefense.io",
|
|
3
3
|
"description": "Browser app to safely share live sightings on a map.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "5.0.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"map",
|
|
7
7
|
"browser",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
".": "./index.js"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@axona/protocol": "github:axona-net/axona-protocol#semver:^4.
|
|
23
|
+
"@axona/protocol": "github:axona-net/axona-protocol#semver:^4.84.0",
|
|
24
24
|
"cors": "^2.8.6",
|
|
25
25
|
"express": "^4.22.1",
|
|
26
26
|
"leaflet": "^1.9.4",
|
|
@@ -28,8 +28,10 @@
|
|
|
28
28
|
"morgan": "^1.10.1",
|
|
29
29
|
"node-datachannel": "^0.32.3",
|
|
30
30
|
"pica": "^9.0.1",
|
|
31
|
+
"redis": "^6.2.1",
|
|
31
32
|
"s2js": "^1.44.0",
|
|
32
33
|
"uuid": "^14.0.0",
|
|
34
|
+
"web-push": "^3.6.7",
|
|
33
35
|
"ws": "^8.21.3",
|
|
34
36
|
"yargs": "^18.0.0"
|
|
35
37
|
},
|
package/public/about/en.html
CHANGED
|
@@ -90,27 +90,60 @@
|
|
|
90
90
|
<!-- ── CONTENT ───────────────────────────────────────────────── -->
|
|
91
91
|
<main class="content-wrap">
|
|
92
92
|
|
|
93
|
-
<h1>What You Do With It</h1>
|
|
93
|
+
<h1 id="do">What You Do With It</h1>
|
|
94
94
|
|
|
95
95
|
<ul>
|
|
96
|
-
<li>Warn others of danger by tapping the map.</li>
|
|
97
|
-
<li>Add comments, photos, video, or other attachments.</li>
|
|
96
|
+
<li>Warn others of danger by tapping the map, creating an alert for others to see.</li>
|
|
97
|
+
<li>Add comments, photos, video, or other attachments by tapping on an alert.</li>
|
|
98
98
|
<li>Get notified of new alerts near you or on your current map.</li>
|
|
99
99
|
<li>Share to social media, text, or email.</li>
|
|
100
|
-
<li>Discuss an alert by secure video conference. (Coming this Fall.)</li>
|
|
100
|
+
<!-- <li>Discuss an alert by secure video conference. (Coming this Fall.)</li> -->
|
|
101
101
|
<!-- <li>Alerts disappear after 24 hours—this is not an archive or long-term storage system. (This Winter, users will be able to download tamper-evident reports for use in other systems.)</li> -->
|
|
102
102
|
</ul>
|
|
103
103
|
|
|
104
|
+
<p>
|
|
104
105
|
<a href="/?tags=%F0%9F%8E%B8%20classic%20rock,%F0%9F%8E%BC%20classical,%F0%9F%A4%A0%20country,%F0%9F%8E%B7%20jazz,%F0%9F%8E%99%EF%B8%8F%20news,%F0%9F%8E%B5%20pop&z=5&lang=en" class="launch-btn" target="civildefense">
|
|
105
106
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="5 3 19 12 5 21 5 3"></polygon></svg>
|
|
106
107
|
Try it!
|
|
107
108
|
</a>
|
|
109
|
+
</p>
|
|
110
|
+
|
|
111
|
+
<h2 id="topics">Topics</h2>
|
|
112
|
+
<p>Control what topics are shown on the map by simply touching the topic labels to toggle them on and off. Like "hashtags", you add or create new topics by simply typing them - in this case, into the "add topic" box. There is no central list of topics.
|
|
113
|
+
<ul>
|
|
114
|
+
<li>If you like, you can begin a topic name with an emoji character, and that is what will be used on the map as a marker. Otherwise, a unique shape will be automatically generated and used until you receive an alert for that topic that <i>does</i> have a leading emoji.</li>
|
|
115
|
+
<li>You can remove a topic name from your screen altogether by toggling it off, and then touching the "x" that appears. You can add topics back by typing or selecting them from the "add topic" box.</li>
|
|
116
|
+
<li>The red "radio button" next to a topic name indicates that it will be the initial topic for a new alert you create by touching the map. (You can also change the topic of an alert you create by touching the topic name in the alert-conversation popup.)</li>
|
|
117
|
+
</ul>
|
|
118
|
+
</p>
|
|
119
|
+
|
|
120
|
+
<div class="centered">
|
|
121
|
+
<img class="topics" src="topics.png" alt="topic labels">
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
<h2 id="sharing">Sharing</h2>
|
|
126
|
+
|
|
127
|
+
<p>Every alert you make will be immediately visible to anyone with the app who is looking at that point on the map. Every reply you make will be immediately shared with anyone looking at the same alert.</p>
|
|
128
|
+
<p>You can use the share button to pass a link and message to those that may not yet have the app. The button appears on the map, at the top of an alert-conversation display, and next to each reply, and it shares whatever the button appears with.</p>
|
|
129
|
+
<div class="centered">
|
|
130
|
+
<img class="button-img" src="../images/share.svg" alt="share">
|
|
131
|
+
</div>
|
|
132
|
+
|
|
133
|
+
<h2 id="options">Options</h2>
|
|
134
|
+
|
|
135
|
+
<p>The app's "<span class="cd">CD</span>" button gives you control over <a href="notification.html">notifications</a>, <a href="identity.html">how you appear to others</a>, and <a href="pwa.html">updates</a>.</p>
|
|
136
|
+
|
|
137
|
+
<div class="hero-inner">
|
|
138
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
139
|
+
</div>
|
|
140
|
+
|
|
108
141
|
|
|
109
142
|
<!-- <hr class="rule"> -->
|
|
110
143
|
|
|
111
|
-
<h1>Broadcast Safely</h1>
|
|
144
|
+
<h1 id="broadcast">Broadcast Safely</h1>
|
|
112
145
|
|
|
113
|
-
<h2>Resist Tracking</h2>
|
|
146
|
+
<h2 id="tracking">Resist Tracking</h2>
|
|
114
147
|
<ul>
|
|
115
148
|
<li>You cannot be identified as a person because there is no login, sign-up, or accounts. No phone number or email is used. There is no app store logging downloads. Users can choose to let others recognize them over multiple interactions — without divulging their actual identity.</li>
|
|
116
149
|
<li>It is extremely difficult to identify your IP address or network patterns, because alerts are distributed phone-to-phone over a peer-to-peer network.</li>
|
|
@@ -118,13 +151,13 @@
|
|
|
118
151
|
<li>Each alert disappears everywhere on the network after 24 hours. There are no collected records of messages, comments, or requested topics, and this is not an archive or long-term storage system.</li>
|
|
119
152
|
</ul>
|
|
120
153
|
|
|
121
|
-
<h2>Resist Censorship</h2>
|
|
154
|
+
<h2 id="censorship">Resist Censorship</h2>
|
|
122
155
|
<ul>
|
|
123
156
|
<li>No user can be censored because there are no accounts. No one can steal your account information because there isn't any.</li>
|
|
124
157
|
<li>No content can be censored, there is no central organization who controls the network or has power to alter content.</li>
|
|
125
158
|
</ul>
|
|
126
159
|
|
|
127
|
-
<h2>Resist Takedown</h2>
|
|
160
|
+
<h2 id="takedown">Resist Takedown</h2>
|
|
128
161
|
<ul>
|
|
129
162
|
<li>No app store can block Civil Defense — the app is just a web page.</li>
|
|
130
163
|
<li>Taking down web servers or domain names cannot block access for those who already have it, because the app caches everything it needs on first use. The <a href="https://github.com/yz-social/civildefense.io" target="yz.other" rel="noopener">open-source code</a> is available so anyone can host an alternative mirror.</li>
|
|
@@ -134,7 +167,7 @@
|
|
|
134
167
|
</ul>
|
|
135
168
|
<!-- <hr class="rule"> -->
|
|
136
169
|
|
|
137
|
-
<h1>The Bigger Picture</h1>
|
|
170
|
+
<h1 id="more">The Bigger Picture</h1>
|
|
138
171
|
<p>The Civil Defense runs on the <a href="https://github.com/axona-net/axona-protocol" target="yz.other" rel="noopener">Axona network</a>. Both are free and open source.</p>
|
|
139
172
|
<p>Axona is a modern descendant of the old <a href="https://en.wikipedia.org/wiki/Peer-to-peer" target="yz.other" rel="noopener">peer-to-peer networks</a> such as <a href="https://en.wikipedia.org/wiki/Napster">Napster</a>. It has a unique self-healing routing mechanism that uses neuron learning techniques to find the best way to distribute alerts. It is analogous to <a href="https://en.wikipedia.org/wiki/Tor_(network)" target="yz.other" rel="noopener">TOR</a> (The Onion Router), but designed from the ground up to run in mobile and desktop browsers.</p>
|
|
140
173
|
<p>We are also developing a comprehensive quantum-ready cryptography system that will add private-groups for Civil Defense and any software on the network. We believe there are many applications where developers, users, and the public all benefit from open software and secure, decentralized networks — without app stores, servers, or data centers. Beyond Civil Defense, we are also developing large-scale <a href="https://en.wikipedia.org/wiki/Distributed_computing" target="yz.other" rel="noopener">multiuser collaboration</a> and <a href="https://poverty-action.org/inclusive-instant-payment-systems-evidence-based-approach-design-impact" target="yz.other" rel="noopener">Inclusive Instant Payment Systems</a>.</p>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>CivilDefense: Identity</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<link rel="stylesheet" href="style.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<header class="hero">
|
|
14
|
+
<div class="hero-inner">
|
|
15
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
16
|
+
<h1>The Civil Defense <a href="index.html"><span>App</span></a></h1>
|
|
17
|
+
</div>
|
|
18
|
+
</header>
|
|
19
|
+
<main class="content-wrap">
|
|
20
|
+
<h1>Identity without Accounts</h1>
|
|
21
|
+
<p>Lorem ipsum</p>
|
|
22
|
+
|
|
23
|
+
<div class="centered">
|
|
24
|
+
<img src="prevail.jpg" alt="Cold-War Civil Defense poster - Prepare, Protect, Prevail">
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</main>
|
|
28
|
+
<footer>
|
|
29
|
+
<p><a href="/?lang=en" target="civildefense">civildefense.io</a> — Safe and free crowdmapping for vulnerable populations.</p>
|
|
30
|
+
</footer>
|
|
31
|
+
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
package/public/about/index.html
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>CivilDefense: Notifications</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<link rel="stylesheet" href="style.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<header class="hero">
|
|
14
|
+
<div class="hero-inner">
|
|
15
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
16
|
+
<h1>The Civil Defense <a href="index.html"><span>App</span></a></h1>
|
|
17
|
+
</div>
|
|
18
|
+
</header>
|
|
19
|
+
<main class="content-wrap">
|
|
20
|
+
<h1>Notifications without a Feed</h1>
|
|
21
|
+
<p>Lorem ipsum</p>
|
|
22
|
+
|
|
23
|
+
<div class="centered">
|
|
24
|
+
<img src="serving-you.jpg" alt="Civil Defense Week poster - Serving you in time of emergency">
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
</main>
|
|
28
|
+
<footer>
|
|
29
|
+
<p><a href="/?lang=en" target="civildefense">civildefense.io</a> — Safe and free crowdmapping for vulnerable populations.</p>
|
|
30
|
+
</footer>
|
|
31
|
+
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>CivilDefense: Install, Update, Remove</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<link rel="stylesheet" href="style.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<header class="hero">
|
|
14
|
+
<div class="hero-inner">
|
|
15
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
16
|
+
<h1>The Civil Defense <a href="index.html"><span>App</span></a></h1>
|
|
17
|
+
</div>
|
|
18
|
+
</header>
|
|
19
|
+
<main class="content-wrap">
|
|
20
|
+
<h1>A Real App Without an App Store</h1>
|
|
21
|
+
<p><a href="/" target="civildefense">CivilDefense</a> is a full-featured <a href="https://en.wikipedia.org/wiki/Progressive_web_app">app in a web page</a>. However, it does not depend on any app store that can block or remove it, or track who downloaded it. You can run it directly from the <a href="/" target="civildefense">link</a>, without any installation or signup. You can also choose to install it.</p>
|
|
22
|
+
|
|
23
|
+
<h2 id="installation">Installation</h2>
|
|
24
|
+
<p>Installing the app makes it easy to run or <a href="#removal">remove</a> it from the home screen or dock a hurry.</p>
|
|
25
|
+
<p>In addition, <i>Apple mobile devices</i> allow <a href="notification.html">notifications</a> <i>only</i> from installed apps.</p>
|
|
26
|
+
<p>Install directly from the <a href="/" target="civildefense">app page</a> with one of these browser buttons. Note: Browser button layout changes faster than the AIs get updated!
|
|
27
|
+
<ul>
|
|
28
|
+
<li><a href="https://www.google.com/search?q=mobile+add+to+home+screen">"Add to Home Screen"</a> on <i>mobile devices</i>. Note that this button will not be visible when running inside of another app.</li>
|
|
29
|
+
<li><a href="https://www.google.com/search?q=safari+add+to+doc">"Add to Dock"</a> on <i>desktop Safari</i>.</li>
|
|
30
|
+
<li><a href="https://www.google.com/search?q=desktop+browser+install+app">"Install App"</a> on <i>other desktop browsers</i>.</li>
|
|
31
|
+
</ul>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<h2 id="updates">Updates</h2>
|
|
35
|
+
<p>Regardless of whether it is <a href="#installation">installed</a> or run from the browser, the <a href="/" target="civildefense">CivilDefense</a> app automatically keeps a local copy of itself. It periodically checks the original site for new versions, but it does not update without asking you. (You might be in the middle of something or have some other reason to stay on the old version.) The app's "<span class="cd">CD</span>" button also has a "check for updates" button to check immediately.</p>
|
|
36
|
+
<div class="hero-inner">
|
|
37
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<h2 id="removal">Removal</h2>
|
|
41
|
+
<p>There are no <a href="identity.html">accounts</a>, no database of user activity and preferences, and no data centers.
|
|
42
|
+
Instead, the list of your current active topics and other data are kept only on your own device.
|
|
43
|
+
No one can see (or steal, or sell) this information without physical access to your device.</p>
|
|
44
|
+
<p>To remove this local data on an <i><a href="#installation">installed app</a></i>, simply delete or uninstall the app. The operating system will delete all the local data</p>
|
|
45
|
+
<p>To remove it from the <i>browser</i>, use the "Wipe all CivilDefense data" link under the app's "<span class="cd">CD</span>" button. On mobile Safari, Apple keeps the browser data separate from the app data, and each must be removed separately. Other platforms share the data between app and browser.</p>
|
|
46
|
+
|
|
47
|
+
<div class="centered">
|
|
48
|
+
<img src="nazis.png" alt="WWII-style poster exhorting the public to use Civil Defense in case of Nazi attack.">
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
</main>
|
|
52
|
+
<footer>
|
|
53
|
+
<p><a href="/?lang=en" target="civildefense">civildefense.io</a> — Safe and free crowdmapping for vulnerable populations.</p>
|
|
54
|
+
</footer>
|
|
55
|
+
|
|
56
|
+
</body>
|
|
57
|
+
</html>
|
package/public/about/style.css
CHANGED
|
@@ -70,6 +70,8 @@ a:hover { color: var(--red); }
|
|
|
70
70
|
max-width: 680px;
|
|
71
71
|
margin: 0 auto;
|
|
72
72
|
}
|
|
73
|
+
.button-img { width: 80px; }
|
|
74
|
+
.topics { max-width: 350px; }
|
|
73
75
|
.hero-logo {
|
|
74
76
|
width: 80px;
|
|
75
77
|
height: 80px;
|
|
@@ -88,6 +90,10 @@ a:hover { color: var(--red); }
|
|
|
88
90
|
margin-bottom: 0.75rem;
|
|
89
91
|
}
|
|
90
92
|
.hero h1 span { color: var(--red-light); }
|
|
93
|
+
.cd {
|
|
94
|
+
color: var(--red);
|
|
95
|
+
font-weight: 700;
|
|
96
|
+
}
|
|
91
97
|
.hero-tagline {
|
|
92
98
|
font-size: clamp(0.95rem, 2.5vw, 1.1rem);
|
|
93
99
|
color: rgba(255,255,255,0.75);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>The Civil Defense App</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<link rel="stylesheet" href="style.css" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<header class="hero">
|
|
14
|
+
<div class="hero-inner">
|
|
15
|
+
<img class="hero-logo" src="civil-defense.png" alt="Civil Defense Logo">
|
|
16
|
+
<h1>The Civil Defense <a href="index.html"><span>App</span></a></h1>
|
|
17
|
+
</div>
|
|
18
|
+
</header>
|
|
19
|
+
<main class="content-wrap">
|
|
20
|
+
<h1>Some Title</h1>
|
|
21
|
+
<p>Lorem ipsum</p>
|
|
22
|
+
</main>
|
|
23
|
+
<footer>
|
|
24
|
+
<p><a href="/?lang=en" target="civildefense">civildefense.io</a> — Safe and free crowdmapping for vulnerable populations.</p>
|
|
25
|
+
</footer>
|
|
26
|
+
|
|
27
|
+
</body>
|
|
28
|
+
</html>
|
|
Binary file
|
package/public/index.html
CHANGED
|
@@ -78,26 +78,31 @@
|
|
|
78
78
|
|
|
79
79
|
<div id="aboutContainer" class="hidden">
|
|
80
80
|
<div class="display-content">
|
|
81
|
-
<h1>
|
|
81
|
+
<h1>
|
|
82
|
+
<a id="learnMore" href="about/index.html" target="yz.sidebar"><md-icon class="material-icons">help</md-icon></a>
|
|
83
|
+
<span id="titleLabel">Civil Defense</span><span id="titleHostname"></span>
|
|
84
|
+
</h1>
|
|
82
85
|
<ul>
|
|
83
86
|
<li id="aboutReport"></li>
|
|
84
87
|
<li id="aboutShared"></li>
|
|
85
88
|
<li id="aboutFade"></li>
|
|
86
89
|
</ul>
|
|
87
|
-
<p>
|
|
88
|
-
<p>
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
</p>
|
|
90
|
+
<p> </p>
|
|
91
|
+
<!-- <p> -->
|
|
92
|
+
<!-- <span id="aboutAnyone1"></span> -->
|
|
93
|
+
<!-- <a id="aboutAnyone2" href="https://github.com/YZ-social/Yz.social" target="yz.sidebar"></a> -->
|
|
94
|
+
<!-- <span id="aboutAnyone3"></span> -->
|
|
95
|
+
<!-- </p> -->
|
|
93
96
|
<hr>
|
|
94
97
|
<div>
|
|
98
|
+
<a id="learnNotification" href="about/notification.html" target="yz.sidebar"><md-icon class="material-icons">help</md-icon></a>
|
|
95
99
|
<label>
|
|
96
100
|
<md-checkbox id="showNotifications" touch-target="wrapper"></md-checkbox>
|
|
97
101
|
<span id="showNotificationsLabel"></span>
|
|
98
102
|
</label>
|
|
99
103
|
</div>
|
|
100
104
|
<div class="handle-avatar">
|
|
105
|
+
<a id="learnIdentity" href="about/identity.html" target="yz.sidebar"><md-icon class="material-icons">help</md-icon></a>
|
|
101
106
|
<md-outlined-text-field id="myHandle" placeholder="anonymous"></md-outlined-text-field>
|
|
102
107
|
<md-outlined-icon-button id="myAvatar"></md-outlined-icon-button>
|
|
103
108
|
</div>
|
|
@@ -107,12 +112,15 @@
|
|
|
107
112
|
<md-elevated-button id="downloadUpdates" class="hidden"></md-elevated-button>
|
|
108
113
|
<span id="updateStatus"></span>
|
|
109
114
|
</div>
|
|
110
|
-
<p
|
|
115
|
+
<p class="pwa">
|
|
116
|
+
<a id="learnPWA" href="about/pwa.html" target="yz.sidebar"><md-icon class="material-icons">help</md-icon></a>
|
|
117
|
+
<small>
|
|
111
118
|
<label for="scriptChooser"> <span id="version">Version</span></label>
|
|
112
119
|
<span id="appVersion"></span>,
|
|
113
120
|
kernel: <span id="kernelVersion"></span>.
|
|
114
121
|
</small>
|
|
115
|
-
<small><a id="wipe" href="#"></a></small
|
|
122
|
+
<small><a id="wipe" href="#"></a></small>
|
|
123
|
+
</p>
|
|
116
124
|
<input id="scriptChooser" type="file" accept="text/javascript"></input>
|
|
117
125
|
</div>
|
|
118
126
|
</div>
|