diff --git a/lib/extensions/admin/index.html b/lib/extensions/admin/index.html
index a307304..d2bfd48 100644
--- a/lib/extensions/admin/index.html
+++ b/lib/extensions/admin/index.html
@@ -67,20 +67,52 @@ TCP
# Run ssh with (your domain, no port):
ssh lucky-duck-42.telebit.cloud
-
-
diff --git a/lib/extensions/admin/js/app.js b/lib/extensions/admin/js/app.js
index 6d2c296..5783b4a 100644
--- a/lib/extensions/admin/js/app.js
+++ b/lib/extensions/admin/js/app.js
@@ -3,4 +3,61 @@
document.body.hidden = false;
+function formSubmit() {
+ var msg = {
+ address: document.querySelector('.js-list-address').value
+ , comment: 'telebit.cloud: ' + (document.querySelector('.js-list-comment').value || '')
+ };
+
+ window.fetch('https://api.ppl.family/api/ppl.family/public/list', {
+ method: 'POST'
+ , cors: true
+ , headers: new Headers({ 'Content-Type': 'application/json' })
+ , body: JSON.stringify(msg)
+ }).then(function (resp) {
+ return resp.json().then(function (data) {
+ if (data.error) {
+ window.alert("Couldn't save your message. Email coolaj86@gmail.com instead.");
+ return;
+ }
+ document.querySelector('.js-list-form').hidden = true;
+ document.querySelector('.js-list-form').className += ' hidden';
+ document.querySelector('.js-list-thanks').hidden = false;
+ document.querySelector('.js-list-thanks').className = document.querySelector('.js-list-thanks').className.replace(/\s*hidden\b/, '');
+ }, function () {
+ window.alert("Couldn't save your message. Email coolaj86@gmail.com instead.");
+ });
+ }, function () {
+ window.alert("Didn't get your message. Bad network connection? Email coolaj86@gmail.com instead.");
+ });
+}
+document.body.addEventListener('submit', function (ev) {
+ if (ev.target.matches('.js-list-form')) {
+ ev.preventDefault();
+ ev.stopPropagation();
+ formSubmit();
+ return;
+ }
+});
+document.body.addEventListener('click', function (ev) {
+ if (ev.target.matches('.js-list-submit')) {
+ ev.preventDefault();
+ ev.stopPropagation();
+ formSubmit();
+ return;
+ }
+ /*
+ if (ev.target.closest('.js-navbar-toggle')) {
+ ev.preventDefault();
+ ev.stopPropagation();
+ if (/show/.test(document.querySelector('.js-navbar-collapse').className)) {
+ document.querySelector('.js-navbar-collapse').className = document.querySelector('.js-navbar-collapse').className.replace(/\s+show\b/, '');
+ } else {
+ document.querySelector('.js-navbar-collapse').className += ' show';
+ }
+ return;
+ }
+ */
+});
+
}());