diff --git a/.gitignore b/.gitignore index f6236815c..055959f2d 100755 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,7 @@ ParallelCoordinates/node_modules .idea/misc.xml .idea/workspace.xml .idea/workspace.xml +.idea/encodings.xml +.idea/workspace.xml +.idea/workspace.xml +.idea/workspace.xml diff --git a/HiperView/demo.html b/HiperView/demo.html index b1c0e0099..f34e89c80 100755 --- a/HiperView/demo.html +++ b/HiperView/demo.html @@ -163,6 +163,8 @@
+ @@ -267,12 +269,14 @@>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<k){a.msg="invalid distance too far back",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg="invalid distance too far back",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w 2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f >3,f-=x,q-=x<<3,p&=(1< >>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave >>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg="incorrect header check",c.mode=ma;break}if((15&m)!==K){a.msg="unknown compression method",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg="invalid window size",c.mode=ma;break}c.dmax=1< >8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]< >>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]< >8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]< >>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]< >>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]< >>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg="invalid block type",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]< >>16^65535)){a.msg="invalid stored block lengths",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]< >>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have >>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid code lengths set",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have >>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]< >>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n >>=qa,n-=qa,0===c.have){a.msg="invalid bit length repeat",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n >>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n >>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg="invalid literal/lengths set",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg="invalid distances set",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1< >>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]< >ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]< >>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg="invalid literal/length code",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n >>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1< >>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]< >ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]< >>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg="invalid distance code",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n >>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]< =1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F 0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D f||a===j&&L>g)return 1;for(;;){z=D-J,r[E] y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1< >J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1< >=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{"../utils/common":41}],51:[function(a,b,c){"use strict";b.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(a,b,c){"use strict";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b< >X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b< >>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;c o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d >=7;d 8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e >>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b 0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a("../utils/common"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2)); +d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{"../utils/common":41}],53:[function(a,b,c){"use strict";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}],54:[function(a,b,c){"use strict";b.exports="function"==typeof setImmediate?setImmediate:function(){var a=[].slice.apply(arguments);a.splice(1,0,0),setTimeout.apply(null,a)}},{}]},{},[10])(10)}); \ No newline at end of file diff --git a/HiperView/myscripts/main.js b/HiperView/myscripts/main.js index ae614fd03..fa710965a 100755 --- a/HiperView/myscripts/main.js +++ b/HiperView/myscripts/main.js @@ -831,7 +831,7 @@ function main() { } if (imageRequest){ imageRequest = false; - saveSVG_path(data.result.arr); + onCreateDummy_radar(data.result.arr); // saveImages.js } if (data.action==='returnData'){ if (graphicControl.charType==="T-sne Chart") @@ -1211,61 +1211,7 @@ function processResult_old(r){ return obj; } const processResult_nagios = processResult_old; -function processResult_influxdb(r,hostname,index){ - var obj = {}; - obj.result = {}; - if (r.results[0].series){ - obj.result.query_time = new Date(r.results[0].series[0].values[index||0][0]); - }else - obj.result.query_time = new Date(); - obj.data = {}; - obj.data.service={}; - obj.data.service.host_name = hostname; - if (index !== undefined ) { - obj.data.service.plugin_output = {results: r.results.map(d => { - let temp = {}; - temp.statement_id = d.statement_id; - temp.series = []; - let tempsub = {}; - const series = d.series[0]; - tempsub.name = series.name; - tempsub.columns = series.columns; - tempsub.values = [series.values[index]]; - temp.series.push(tempsub); - return temp; - })}; - } else - obj.data.service.plugin_output = r; - return obj; -} - -function predict (arr,ser){ - try{ - return processData(arr[arr.length-1].data.service.plugin_output,ser); - } catch(e){ - let average = 0; - switch (ser){ - case serviceList[0]: - average = (thresholds[0][1]-thresholds[0][0])/2 - return [average,average,average]; - case serviceList[1]: - average = (thresholds[1][1]-thresholds[1][0])/2 - return [average,average,average]; - case serviceList[2]: - average = (thresholds[2][1]-thresholds[2][0])/2 - return [average,average,average]; - case serviceList[3]: - average = (thresholds[3][1]-thresholds[3][0])/2 - return [average,average,average,average]; - case serviceList[4]: - average = (thresholds[4][1]-thresholds[4][0])/2 - return [average,average,average]; - default: - return [0,0,0]; - } - } -} let processData = processData_old; @@ -1771,11 +1717,6 @@ function resetRequest(){ hostResults[att].index = count; hostResults[att].arr = []; serviceListattr.forEach(d=>hostResults[att][d]=[]); - // hostResults[att].arrTemperature = []; - // hostResults[att].arrCPU_load = []; - // hostResults[att].arrMemory_usage = []; - // hostResults[att].arrFans_health= []; - // hostResults[att].arrPower_usage= []; count++; svg.selectAll("."+att).remove(); diff --git a/HiperView/myscripts/radarSum.js b/HiperView/myscripts/radarSum.js index 93c6eab1e..5e86d2897 100755 --- a/HiperView/myscripts/radarSum.js +++ b/HiperView/myscripts/radarSum.js @@ -230,63 +230,9 @@ d3.radar = function () { } - // let meanAxes = axes.map((a,i)=> d3.mean(dataSpider3,d=>d[i].value)); - // datawithoutNULL = []; - // dataSpider3.forEach((d,i)=>{ - // let tempHost = []; - // d.forEach((s,j)=>{ - // if (s.value === undefinedValue || isNaN(s.value)) - // tempHost[j] = meanAxes[j]; - // else if (j==3){ //// Job load *********************** - // var scale = d3.scaleLinear() - // .domain([thresholds[1][0],thresholds[1][1]]) - // .range([thresholds[0][0],thresholds[0][1]]); - // - // tempHost[j] = scale(s.value); - // } - // else if (j==5 || j==6 || j==7 || j==8){ //// Fans SPEED *********************** - // var scale = d3.scaleLinear() - // .domain([thresholds[3][0],thresholds[3][1]]) - // .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb - // - // tempHost[j] = scale(s.value); - // } - // else if (j==9){ //// Power Consumption *********************** - // var scale = d3.scaleLinear() - // .domain([thresholds[4][0],thresholds[4][1]]) - // .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb - // tempHost[j] = scale(s.value); - // } - // }); - // tempHost.data = d.name; - // datawithoutNULL.push(tempHost); - // }); // Standardize data for Radar chart dataSpider3.forEach((d,i)=>{ - d.forEach((s,j)=>{ - if (s.value == undefinedValue || isNaN(s.value)) - s.value = -15; - else if (j==3){ //// Job load *********************** - var scale = d3.scaleLinear() - .domain([thresholds[1][0],thresholds[1][1]]) - .range([thresholds[0][0],thresholds[0][1]]); - - s.value = scale(s.value); - } - else if (j==5 || j==6 || j==7 || j==8){ //// Fans SPEED *********************** - var scale = d3.scaleLinear() - .domain([thresholds[3][0],thresholds[3][1]]) - .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb - - s.value = scale(s.value); - } - else if (j==9){ //// Power Consumption *********************** - var scale = d3.scaleLinear() - .domain([thresholds[4][0],thresholds[4][1]]) - .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb - s.value = scale(s.value); - } - }); + normalizevalue(d); }); } //return datawithoutNULL; diff --git a/HiperView/myscripts/saveImages.js b/HiperView/myscripts/saveImages.js new file mode 100644 index 000000000..354223dc7 --- /dev/null +++ b/HiperView/myscripts/saveImages.js @@ -0,0 +1,114 @@ +// Ngan 9 May 2019 + +// +// +// single request +// +// saveSVG_light() -> + prefill saveSVG() as saveSVG_detail +// -> |click save| -> onSaveImage() -> saveSVG() as saveSVG_detail +// +// multi request +// +// saveSVG_batch() -> + prefill onSaveDummy_radar() as saveSVG_detail +// -> |click save| -> onSaveImage() -> onSaveDummy_radar() as saveSVG_detail +// -> getData() -> onCreateDummy_radar() -> saveSVG () as saveSVG_detail + + + +//---- variable----- +let saveSVG_detail; + +// +function saveSVG_light(event,type){ + saveSVG_detail = _.partial(saveSVG,event,_,type); + $('#savename').val(event.parentNode.querySelector('.hostnameInTip').textContent.split(': ')[1]);// pre fill +} +// + +//+function saveSVG_batch(type){ + saveSVG_detail = _.partial(onSaveDummy_radar,_,'png'); + const time = new Date(query_time); + let stringDate = time.toLocaleDateString()+'_'+time.toLocaleTimeString(); + stringDate =stringDate.replace(/\//gi,'-'); + $('#savename').val(stringDate);// pre fill +} + +function onSaveDummy_radar(prefix,type) { + getData(null,lastIndex+1); + imageRequest = true; //turn on watcher for image request + saveSVG_detail = _.partial(saveSVG,_,_,type,prefix); +} + +function onCreateDummy_radar(data) { + var zip = new JSZip(); + zip = zip.folder("images"); + let q = []; + let dummy_radarChartOptions = _.clone(radarChartOptions); + dummy_radarChartOptions.showText = false; + dummy_radarChartOptions.isNormalize = true; + dummy_radarChartOptions.showHelperPoint = false; + pausechange(); + data.forEach( function (d,i){ + let dummy_div = document.createElement('html'); + dummy_div = d3.select(dummy_div).append('body').append('div').node(); + RadarChart(dummy_div, [d], dummy_radarChartOptions,""); + q.push(saveSVG_detail(dummy_div,d.name,zip)); + console.log((i+1)+'/'+data.length); + }); + Promise.all(q).then(function() { + zip.generateAsync({type:"blob"}, function updateCallback(metadata) { + console.log("progression: " + metadata.percent.toFixed(2) + " %"); + if(metadata.currentFile) { + console.log("current file = " + metadata.currentFile); + } + }) + .then(function(content) { + // see FileSaver.js + saveAs(content, "image.zip"); + }).catch((err) => { + console.log(err); + // Handle any error that occurred in any of the previous + // promises in the chain. + });; + }); +} +// + +// UI function +function onSaveImage (){ + // request puase to spped up process then resume after that + saveSVG_detail($('#savename').val()); +} + +// ulti function +let saveSVG = function(event,name,type,prefix,zip){ + let target = event.parentNode||event; + if (name==="") + name = target.querySelector('.hostnameInTip').textContent.split(': ')[1]; + switch(type) { + default: + const stringbold = serialize(target.querySelector('.radarPlot'), true); + if (zip) + return new Promise((y, n) => (y(saveInZip(stringbold, zip)))); + else + save(stringbold); + break; + case 'png': + if (zip) + return rasterize(target.querySelector('.radarPlot'), true).then(svgString => { + return saveInZip(svgString, zip); + }); + else + rasterize(target.querySelector('.radarPlot'), true).then(svgString=> + save(svgString)); // passes Blob and filesize String to the callback + break; + } + function save( dataBlob){ + saveAs( dataBlob, (prefix||"")+name+'.'+type ); // FileSaver.js function + } + function saveInZip( dataBlob){ + zip.file(name+'.'+type, dataBlob,{base64: true}); // FileSaver.js function + console.log(name) + } +}; \ No newline at end of file diff --git a/HiperView/myscripts/setting.js b/HiperView/myscripts/setting.js index 8ae843afa..074b2476e 100755 --- a/HiperView/myscripts/setting.js +++ b/HiperView/myscripts/setting.js @@ -314,7 +314,7 @@ function simulateResults2(hostname,iter, s){ newService.data.service.host_name = hostname; newService.data.service.plugin_output = undefined; }else { - if (db == "influxdb") + if (db === "influxdb") try { newService.result.query_time = d3.timeParse("%Y-%m-%dT%H:%M:%S.%LZ")(newService.result.query_time).getTime(); }catch(e){ diff --git a/HiperView/myscripts/tooltip.js b/HiperView/myscripts/tooltip.js index af263e389..b53653e7a 100755 --- a/HiperView/myscripts/tooltip.js +++ b/HiperView/myscripts/tooltip.js @@ -86,46 +86,7 @@ function addSVG(hideLine){ countRadarChart=1; } -function saveSVG_light(event,type){ - saveSVG_detail = _.partial(saveSVG,event,_,type); - $('#savename').val(event.parentNode.querySelector('.hostnameInTip').textContent.split(': ')[1]);// pre fill -} - -function saveSVG_batch(type){ - saveSVG_detail = _.partial(saveDummy_radar,_,'png'); - const time = new Date(query_time); - let stringDate = time.toLocaleDateString()+'_'+time.toLocaleTimeString(); - stringDate =stringDate.replace(/\//gi,'-'); - $('#savename').val(stringDate);// pre fill -} - -function saveDummy_radar(prefix,type) { - getData(null,lastIndex+1); - imageRequest = true; //turn on watcher for image request - saveSVG_detail = _.partial(saveSVG,_,_,'png',prefix); -} -function onSaveImage (){ - saveSVG_detail($('#savename').val()); -} -let saveSVG_detail; -let saveSVG = function(event,name,type,prefix){ - let target = event.parentNode; - if (name==="") - name = target.querySelector('.hostnameInTip').textContent.split(': ')[1]; - switch(type) { - default: - save(serialize(target.querySelector('.radarradarChart'), true)); - break; - case 'png': - rasterize(target.querySelector('.radarradarChart'), true).then(svgString=> - save(svgString)); // passes Blob and filesize String to the callback - break; - } - function save( dataBlob){ - saveAs( dataBlob, (prefix||"")+name+'.'+type ); // FileSaver.js function - } -}; var svgTip; var xScale; function mouseoverNode(d1){ @@ -648,6 +609,34 @@ function pannelsummary(show){ pansum.style('visibility','hidden'); } +function normalizevalue(d) { + d.forEach((s,j)=>{ + if (s.value == undefinedValue || isNaN(s.value)) + s.value = -15; + else if (j==3){ //// Job load *********************** + var scale = d3.scaleLinear() + .domain([thresholds[1][0],thresholds[1][1]]) + .range([thresholds[0][0],thresholds[0][1]]); + + s.value = scale(s.value); + } + else if (j==5 || j==6 || j==7 || j==8){ //// Fans SPEED *********************** + var scale = d3.scaleLinear() + .domain([thresholds[3][0],thresholds[3][1]]) + .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb + + s.value = scale(s.value); + } + else if (j==9){ //// Power Consumption *********************** + var scale = d3.scaleLinear() + .domain([thresholds[4][0],thresholds[4][1]]) + .range([thresholds[0][0],thresholds[0][1]]); //interpolateHsl interpolateHcl interpolateRgb + s.value = scale(s.value); + } + }); + return d; +} + function summaryRadar () { var undefinededa = [undefinedValue,undefinedValue,undefinedValue]; var irecord = $('#irecord').children("option:selected").val(); @@ -724,30 +713,7 @@ function summaryRadar () { dataSpider2.push(arr1); // Standardize data for Radar chart - for (var j=0; j{ const rect = svg.getBoundingClientRect(); - canvas.width = rect.width; - canvas.height = rect.height; - context.clearRect ( 0, 0, rect.width, rect.height ); - context.drawImage(image, 0, 0, rect.width, rect.height); + canvas.width = rect.width||d3.select(svg).attr('width'); + canvas.height = rect.height||d3.select(svg).attr('height'); + context.clearRect ( 0, 0, canvas.width, canvas.height ); + context.drawImage(image, 0, 0, canvas.width, canvas.height); canvas.toBlob(resolve); }; image.src = URL.createObjectURL(serialize(svg,isLight)); diff --git a/HiperView/spider/radarChart.js b/HiperView/spider/radarChart.js index 4fc9bcfb3..ff0c948cd 100755 --- a/HiperView/spider/radarChart.js +++ b/HiperView/spider/radarChart.js @@ -23,6 +23,8 @@ function RadarChart(id, data, options, name) { showText: true, bin: false, gradient: false, + isNormalize: false, + showHelperPoint: true, arrColor: ["#110066", "#4400ff", "#00cccc", "#00dd00", "#ffcc44", "#ff0000", "#660000"], legend: [], color: function () { @@ -46,17 +48,21 @@ function RadarChart(id, data, options, name) { return o.value; })) })); + + var range = thresholds[0]; + if (cfg.isNormalize) range = [0,1]; + // *** TOMMY 2018 ************ //Compute min max for the temperature - var dif = (thresholds[0][1] - thresholds[0][0]) / 4; - var right = thresholds[0][1] + dif; + var dif = (range[1] - range[0]) / 4; + var right = range[1] + dif; maxValue = right; - var minValue = thresholds[0][0] - dif; + var minValue = range[0] - dif; var colorLength = arrColor.length - 1; - var arrThresholds = [minValue, thresholds[0][0], thresholds[0][0] + dif, thresholds[0][0] + 2 * dif, - thresholds[0][0] + 3 * dif, thresholds[0][1], maxValue]; + var arrThresholds = [minValue, range[0], range[0] + dif, range[0] + 2 * dif, + range[0] + 3 * dif, range[1], maxValue]; var colorTemperature = d3.scaleLinear() @@ -64,11 +70,10 @@ function RadarChart(id, data, options, name) { .range(arrColor) .interpolate(d3.interpolateHcl); //interpolateHsl interpolateHcl interpolateRgb var opaTemperature = d3.scaleLinear() - .domain([left, thresholds[0][0], thresholds[0][0] + 2 * dif, thresholds[0][1], thresholds[0][1] + dif]) + .domain([left, range[0], range[0] + 2 * dif, range[1], range[1] + dif]) .range([1, 0.7, 0.05, 0.7, 1]); // .range([0.3,0.2,0.1,0.2,0.3]); - var allAxis = (data[0].map(function (i, j) { return i.axis })), //Names of each axis @@ -121,23 +126,29 @@ function RadarChart(id, data, options, name) { //Remove whatever chart with the same id/class was present before var first = false; - if (typeof (id) === "string") { - d3.select(id).selectAll("svg").nodes().forEach(d => { - if (d3.select(d).attr("class") !== ("radar" + id.replace(".", ""))) - d3.select(d).remove(); - }); - //Initiate the radar chart SVG or update it - var svg = d3.select(id).select(".radar" + id.replace(".", "")); - }else - var svg = d3.select(id).select(".radarGen"); // dummy mode or object mode + d3.select(id).selectAll("svg").nodes().forEach(d => { + if (d3.select(d).attr("class") !== ("radar" + correctId (id))) + d3.select(d).remove(); + }); + + //Initiate the radar chart SVG or update it + var svg = d3.select(id).select(".radar" + correctId (id)); + + function correctId (id){ + if (typeof (id) === "string") { + return id.replace(".", ""); + }else { + return "Gen" + } + } var g = svg.select("#radarGroup"); if (svg.empty()) { first = true; svg = d3.select(id).append("svg") .attr("width", cfg.w + cfg.margin.left + cfg.margin.right) .attr("height", cfg.h + cfg.margin.top + cfg.margin.bottom) - .attr("class", "radar" + id.replace(".","")); + .attr("class", "radar" + correctId (id) +" radarPlot"); //Append a g element g = svg.append("g") .attr("id","radarGroup") @@ -292,7 +303,7 @@ function RadarChart(id, data, options, name) { var radarLine = d3.radialLine() // .interpolate("linear-closed") .curve(d3.curveCatmullRom.alpha(0.5)) - .radius(function(d) { return rScale(d.value); }) + .radius(function(d) { return rScale(d.value||d); }) .angle(function(d,i) { return angleSlice[i]; }); var radialAreaGenerator = d3.radialArea() @@ -340,7 +351,7 @@ function RadarChart(id, data, options, name) { .style("stroke", (d, i) => 'black') .style("stroke-width", () => cfg.strokeWidth + "px") //.style("fill-opacity", d => 1) - .style("fill", (d, i) => 'none'); + .style("fill", 'none'); } //update the outlines @@ -382,12 +393,12 @@ function RadarChart(id, data, options, name) { .attr("d", d =>radialAreaGenerator(d)); //Create the outlines blobWrapper.append("clipPath") - .attr("id",(d,i)=>"sum"+id.replace(".","")) + .attr("id",(d,i)=>"sum"+correctId (id)) .append("path") .attr("d", d => radialAreaGenerator(d)); blobWrapper.append("rect") .style('fill', 'url(#rGradient2)') - .attr("clip-path",( d,i)=>"url(#sum"+id.replace(".","")+")") + .attr("clip-path",( d,i)=>"url(#sum"+correctId (id)+")") .attr("x",-radius) .attr("y",-radius) .attr("width",(radius)*2) @@ -403,7 +414,7 @@ function RadarChart(id, data, options, name) { .append("path").classed('radarLine',true).style("fill", "none").call(drawMeanLine); } else { - blobWrapperpath.attr("d", d => radarLine(d)).transition() + blobWrapperpath.transition().attr("d", d => radarLine(d)).transition() .style("stroke-width", () => cfg.strokeWidth + "px") .style("stroke-opacity", d => cfg.bin ? densityscale(d.bin.val.length) : 0.5) .style("stroke", (d, i) => cfg.color(i)) @@ -411,7 +422,7 @@ function RadarChart(id, data, options, name) { //Create the outlines blobWrapper.append("path") .attr("class", "radarStroke") - .attr("d", d => radarLine(d)).transition() + .attr("d", d => radarLine(d)) .style("stroke-width", () => cfg.strokeWidth + "px") .style("stroke-opacity", d => cfg.bin ? densityscale(d.bin.val.length) : 0.5) .style("stroke", (d, i) => cfg.color(i)) @@ -503,7 +514,7 @@ function RadarChart(id, data, options, name) { //Update the circles blobWrapper = g.selectAll(".radarWrapper"); //Append the circles - if (!cfg.bin&&!cfg.gradient) { + if (!cfg.bin&&!cfg.gradient&&cfg.showHelperPoint) { var circleWrapper = blobWrapper.selectAll(".radarCircle") .data(function (d, i) { d.forEach(function (d2) { @@ -585,7 +596,7 @@ function RadarChart(id, data, options, name) { ///////////////////////////////////////////////////////// //Wrapper for the invisible circles on top - if (!cfg.bin&&!cfg.gradient) { + if (!cfg.bin&&!cfg.gradient&&cfg.showHelperPoint) { var blobCircleWrapperg = g.selectAll(".radarCircleWrapper") .data(data); blobCircleWrapperg.exit().remove();