diff --git a/public/js/register-sw.js b/public/js/register-sw.js new file mode 100644 index 0000000..edbe214 --- /dev/null +++ b/public/js/register-sw.js @@ -0,0 +1,7 @@ +(function registerSW() { + if ("serviceWorker" in navigator) { + navigator.serviceWorker.register("/js/sw.js").catch((e) => { + console.log("Registration fail: ", e); + }); + } +})(); diff --git a/public/js/script.js b/public/js/script.js index 57990ee..bf58156 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -1,43 +1,58 @@ +function tz_seconds_to_offset(seconds) { + var tz_offset = ""; + var hours = zero_pad(Math.abs(seconds / 60 / 60)); + var minutes = zero_pad(Math.floor(seconds / 60) % 60); + return (seconds < 0 ? "-" : "+") + hours + ":" + minutes; +} - function tz_seconds_to_offset(seconds) { - var tz_offset = ''; - var hours = zero_pad(Math.abs(seconds / 60 / 60)); - var minutes = zero_pad(Math.floor(seconds / 60) % 60); - return (seconds < 0 ? '-' : '+') + hours + ":" + minutes; - } - - function zero_pad(num) { - num = "" + num; - if(num.length == 1) { - num = "0" + num; - } - return num; - } - - function tokenfieldToArray(sel) { - return $(sel).tokenfield("getTokens").map(function(t){ return t.value}); +function zero_pad(num) { + num = "" + num; + if (num.length == 1) { + num = "0" + num; } + return num; +} -$(function(){ +function tokenfieldToArray(sel) { + return $(sel) + .tokenfield("getTokens") + .map(function (t) { + return t.value; + }); +} +$(function () { // Set the date from JS var d = new Date(); - $("#note_date").val(d.getFullYear()+"-"+zero_pad(d.getMonth()+1)+"-"+zero_pad(d.getDate())); - $("#note_time").val(zero_pad(d.getHours())+":"+zero_pad(d.getMinutes())+":"+zero_pad(d.getSeconds())); - $("#note_tzoffset").val(tz_seconds_to_offset(d.getTimezoneOffset() * 60 * -1)); + $("#note_date").val( + d.getFullYear() + + "-" + + zero_pad(d.getMonth() + 1) + + "-" + + zero_pad(d.getDate()) + ); + $("#note_time").val( + zero_pad(d.getHours()) + + ":" + + zero_pad(d.getMinutes()) + + ":" + + zero_pad(d.getSeconds()) + ); + $("#note_tzoffset").val( + tz_seconds_to_offset(d.getTimezoneOffset() * 60 * -1) + ); // ctrl-s to save - $(window).on('keydown', function(e){ - if(e.keyCode == 83 && e.ctrlKey){ + $(window).on("keydown", function (e) { + if (e.keyCode == 83 && e.ctrlKey) { $("#btn_post").click(); } }); - -}) +}); function auto_prefix_url_field(field) { var str = field.value; - if(!/^https?:\/\//.test(str)) { + if (!/^https?:\/\//.test(str)) { str = "http://" + str; } field.value = str; diff --git a/public/js/sw.js b/public/js/sw.js new file mode 100644 index 0000000..f9d8702 --- /dev/null +++ b/public/js/sw.js @@ -0,0 +1,14 @@ +// NOTE: This currently doesn't cache anything +// We are just installing it so that chrome users can be +// prompted to install Quill via add to homescreen +self.addEventListener("install", installWorker); + +async function installWorker() { + await self.skipWaiting(); +} + +self.addEventListener("activate", activateServiceWorker); + +async function activateServiceWorker(event) { + event.waitUntil(clients.claim()); // make the current sw the active sw in all pages +} diff --git a/views/index.php b/views/index.php index b06f20d..02f45e2 100644 --- a/views/index.php +++ b/views/index.php @@ -32,4 +32,5 @@ +