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 @@
+