codiad/components/poller/init.js

69 lines
1.6 KiB
JavaScript
Raw Normal View History

/*
2019-04-17 16:42:43 +02:00
* Copyright (c) Codiad & Kent Safranski (codiad.com),
* Isaac Brown ( telaaedifex.com ) distributed as-is and without
* warranty under the MIT License. See [root]/license.txt for more.
* This information must remain intact.
*/
(function(global, $) {
var codiad = global.codiad;
$(function() {
2019-04-17 16:42:43 +02:00
codiad.poller.init();
});
codiad.poller = {
2019-04-17 16:42:43 +02:00
poller: null,
interval: 10000,
init: function() {
let _this = this;
let interval = null;
2019-04-17 16:42:43 +02:00
_this.poller = setInterval( function() {
_this.checkAuth();
_this.saveDrafts();
2019-04-17 16:42:43 +02:00
codiad.active.uploadPositions();
}, _this.interval);
},
//////////////////////////////////////////////////////////////////
// Poll authentication
//////////////////////////////////////////////////////////////////
checkAuth: function() {
// Run controller to check session (also acts as keep-alive) & Check user
$.get(codiad.user.controller + '?action=verify', function(data) {
if(data == 'false') {
codiad.user.logout();
}
});
},
//////////////////////////////////////////////////////////////////
// Poll For Auto-Save of drafts (persist)
//////////////////////////////////////////////////////////////////
saveDrafts: function() {
$('#active-files a.changed')
.each(function() {
// Get changed content and path
let path = $(this)
.attr('data-path');
let content = codiad.active.sessions[path].getValue();
// TODO: Add some visual indication about draft getting saved.
// Set localstorage
localStorage.setItem(path, content);
});
}
};
})(this, jQuery);