Sha256: d094ed70f488d58d29d47c64a87b100027d5491ce99dbf5de0dce958a72da93a
Contents?: true
Size: 1.2 KB
Versions: 14
Compression:
Stored size: 1.2 KB
Contents
(function(){ "use strict"; var POLLING_INTERVAL = 3 * 1000; var POLLING_URL = "/polling/alerts"; $(function(){ if($('#alert').length === 0) return; var alert = new Vue({ el: "#alert", data: { "alerts": [] }, created: function(){ var self = this; var fetch = function(){ self.fetchAlertsData().then(function(alerts){ self.alerts = alerts; })["catch"](function(xhr){ if(xhr.status === 401) { clearInterval(timer); // signed out } if(xhr.status === 0) { clearInterval(timer); // server unreachable (maybe down) } }); }; fetch(); var timer = setInterval(fetch, POLLING_INTERVAL); }, computed: { alertsCount: { $get: function(){ return this.alerts.length; } }, hasAlerts: { $get: function(){ return this.alertsCount > 0; } } }, methods: { fetchAlertsData: function() { return new Promise(function(resolve, reject) { $.getJSON(POLLING_URL, resolve).fail(reject); }); } } }); }); })();
Version data entries
14 entries across 14 versions & 1 rubygems