X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fwebsites%2Ftools%2Ftools%2Fdmarc_reports%2Fapp.js;fp=modules%2Fprivate%2Fwebsites%2Ftools%2Ftools%2Fdmarc_reports%2Fapp.js;h=0000000000000000000000000000000000000000;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hp=8e8a6c47a57105c39cd007facab3b7f624bab4f2;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/websites/tools/tools/dmarc_reports/app.js b/modules/private/websites/tools/tools/dmarc_reports/app.js deleted file mode 100644 index 8e8a6c4..0000000 --- a/modules/private/websites/tools/tools/dmarc_reports/app.js +++ /dev/null @@ -1,103 +0,0 @@ -const app = new Vue({ - el: '#app', - data: { - info: null, - summaries: null, - selectedSummary: null, - filterGreen: true, - filterDomain: null, - filterOrg: null, - //filterDate: (new Date()).toISOString().substring(0, 7), - filterDate: null, - reverse: true, - anonymous: true, - }, - created: async function () { - let that = this; - - if ('anonymous' in localStorage) { - this.anonymous = JSON.parse(localStorage.anonymous); - } - this.fetchAll(); - }, - methods: { - fetchAll: async function() { - try { - this.info = await this.getInfo(); - this.summaries = this.info.summaries; - } catch (error) { - this.info = null; - this.summaries = null; - } - }, - toggleAnonymous: function() { - this.anonymous = !this.anonymous; - localStorage.anonymous = this.anonymous; - this.fetchAll(); - }, - filtered: function () { - let that = this; - let filtered = this.summaries.filter(function (summary) { - return (!that.filterGreen || that.getColor(summary) !== "lime") - && (!that.filterDomain || summary.domain === that.filterDomain) - && (!that.filterOrg || summary.org === that.filterOrg) - && (!that.filterDate || that.inDates(summary)); - }); - if (this.reverse) { - return filtered.reverse(); - } else { - return filtered; - } - }, - toggle: async function(summary) { - if (this.selectedSummary && this.selectedSummary.serial === summary.serial) { - this.selectedSummary = null; - } else { - if (!summary.details) { - summary.details = await this.getDetails(summary.serial); - } - this.selectedSummary = summary; - } - }, - inDates: function(summary) { - if (!this.filterDate) { return true; } - - let mindate = (new Date(summary.mindate)).toISOString().substring(0, 7); - let maxdate = (new Date(summary.maxdate)).toISOString().substring(0, 7); - - return mindate === this.filterDate || maxdate === this.filterDate; - }, - printDate: function (date) { - return (new Date(date)).toISOString().replace("T", " ").replace(/\..*Z$/, " UTC"); - }, - getColor: function (element) { - if (element.dkimresult === "fail" && element.spfresult === "fail") { - return "red"; - } else if (element.dkimresult === "fail" || element.spfresult === "fail") { - return "orange"; - } else if (element.dkimresult === "pass" && element.spfresult === "pass") { - return "lime"; - } else { - return "yellow"; - } - }, - getInfo: function (event) { - let anonymous = this.anonymous ? "anonymous=1" : ""; - return fetch(`api.php?${anonymous}`).then(function (response) { - if (response.status != 200) { return; } - return response.text().then(function (body) { - return JSON.parse(body); - }); - }); - }, - getDetails: function (serial) { - let anonymous = this.anonymous ? "&anonymous=1" : ""; - return fetch(`api.php?serial=${serial}${anonymous}`).then(function (response) { - if (response.status != 200) { return; } - return response.text().then(function (body) { - return JSON.parse(body); - }); - }); - } - } -});