From 5893313e7135c11e7c8c1cd2a3a41da86952c650 Mon Sep 17 00:00:00 2001 From: Moe Date: Mon, 2 Jul 2018 21:49:52 -0700 Subject: [PATCH] Log Export button --- web/libs/js/main.dash2.js | 39 ++++++++++++++++++++++++++++++++------- web/pages/blocks/logs.ejs | 1 + 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/web/libs/js/main.dash2.js b/web/libs/js/main.dash2.js index 63e227d6..2d9e6558 100644 --- a/web/libs/js/main.dash2.js +++ b/web/libs/js/main.dash2.js @@ -12,6 +12,20 @@ $.ccio={ fr:$('#files_recent'), mon:{} }; +$.ccio.downloadJSON = function(jsonToDownload,filename,errorResponse){ + var arr = jsonToDownload; + if(arr.length===0 && errorResponse){ + errorResponse.type = 'error' + $.ccio.init('note',errorResponse); + return + } + var dataStr = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(arr,null,3)); + $('#temp').html('') + .find('a') + .attr('href',dataStr) + .attr('download',filename) + [0].click() +} $.ccio.timeObject = function(time,isUTC){ if(isUTC === true){ return moment(time).utc() @@ -2844,7 +2858,8 @@ $.pB.e.find('.stop').click(function(e){ $.log = { e : $('#logs_modal'), lm : $('#log_monitors'), - dateRange : $('#logs_daterange') + dateRange : $('#logs_daterange'), + loaded : {} } $.log.dateRange.daterangepicker({ startDate:$.ccio.timeObject().subtract(moment.duration("5:00:00")), @@ -2868,19 +2883,23 @@ $.log.e.on('shown.bs.modal', function () { $.log.lm.change() }) $.log.lm.change(function(){ - e = {} + e = { + _this : this + } e.v = $(this).val(); if(e.v === 'all'){ e.v='' } - e.dateRange=$.log.dateRange.data('daterangepicker'); - e.dateRange={startDate:e.dateRange.startDate,endDate:e.dateRange.endDate} - var url = $.ccio.init('location',$user)+$user.auth_token+'/logs/'+$user.ke+'/'+e.v+'?start='+$.ccio.init('th',e.dateRange.startDate)+'&end='+$.ccio.init('th',e.dateRange.endDate) - console.log(url) + e.dateRange = $.log.dateRange.data('daterangepicker'); + $.log.loaded.startDate = e.dateRange.startDate + $.log.loaded.endDate = e.dateRange.endDate + var url = $.ccio.init('location',$user)+$user.auth_token+'/logs/'+$user.ke+'/'+e.v+'?start='+$.ccio.init('th',$.log.loaded.startDate)+'&end='+$.ccio.init('th',$.log.loaded.endDate) $.get(url,function(d){ + $.log.loaded.url = url + $.log.loaded.query = $(e._this).val() + $.log.loaded.rows = d e.tmp=''; $.each(d,function(n,v){ - e.tmp+=''+v.time+''+v.mid+''+$.ccio.init('jsontoblock',v.info)+'' }) $.log.table.find('tbody').html(e.tmp) @@ -2888,6 +2907,12 @@ $.log.lm.change(function(){ $.ccio.init('ls') }) }) +$.log.e.find('[download]').click(function(){ + $.ccio.downloadJSON($.log.loaded,'Shinobi_Logs_'+(new Date())+'.json',{ + title : 'No Logs Found', + text : 'No file will be downloaded.', + }) +}) //multi monitor manager $.multimon={e:$('#multi_mon')}; $.multimon.table=$.multimon.e.find('.tableData tbody'); diff --git a/web/pages/blocks/logs.ejs b/web/pages/blocks/logs.ejs index a135f7fd..6cf06ff2 100644 --- a/web/pages/blocks/logs.ejs +++ b/web/pages/blocks/logs.ejs @@ -43,6 +43,7 @@