src/pyams_skin/resources/js/myams-graphs.js
changeset 557 bca7a7e058a3
equal deleted inserted replaced
-1:000000000000 557:bca7a7e058a3
       
     1 /*
       
     2  * MyAMS extensions to jquery-sparkline graphs plug-in
       
     3  * Version 0.1.0
       
     4  * ©2014 Thierry Florac <tflorac@ulthar.net>
       
     5  */
       
     6 (function($, globals) {
       
     7 
       
     8 	'use strict';
       
     9 
       
    10 	var ams = globals.MyAMS;
       
    11 
       
    12 	ams.graphs = {
       
    13 
       
    14 		init: function(graphs) {
       
    15 			ams.ajax && ams.ajax.check($.fn.sparkline,
       
    16 									   MyAMS.baseURL + 'ext/jquery-sparkline-2.1.1.min.js',
       
    17 									   function() {
       
    18 										   graphs.each(function() {
       
    19 											   var graph = $(this);
       
    20 											   var graph_data = graph.data();
       
    21 											   var sparklineType = graph_data.sparklineType || 'bar';
       
    22 											   switch (sparklineType) {
       
    23 												   case 'bar':
       
    24 													   graph.sparkline('html', {
       
    25 														   type: 'bar',
       
    26 														   barColor: graph_data.sparklineBarColor || graph.css('color') || '#0000f0',
       
    27 														   height: graph_data.sparklineHeight || '26px',
       
    28 														   barWidth: graph_data.sparklineBarwidth || 5,
       
    29 														   barSpacing: graph_data.sparklineBarspacing || 2,
       
    30 														   stackedBarColor: graph.data.sparklineBarstackedColor || ["#A90329", "#0099c6", "#98AA56", "#da532c", "#4490B1", "#6E9461", "#990099", "#B4CAD3"],
       
    31 														   negBarColor: graph.data.sparklineNegbarColor || '#A90329',
       
    32 														   zeroAxis: 'false'
       
    33 													   });
       
    34 													   break;
       
    35 
       
    36 												   case 'line':
       
    37 													   graph.sparkline('html', {
       
    38 														   type: 'line',
       
    39 														   width: graph_data.sparklineWidth || '90px',
       
    40 														   height: graph_data.sparklineHeight || '20px',
       
    41 														   lineWidth: graph_data.sparklineLineWidth || 1,
       
    42 														   lineColor: graph_data.sparklineLineColor || graph.css('color') || '#0000f0',
       
    43 														   fillColor: graph_data.fillColor || '#c0d0f0',
       
    44 														   spotColor: graph_data.sparklineSpotColor || '#f08000',
       
    45 														   minSpotColor: graph_data.sparklineMinspotColor || '#ed1c24',
       
    46 														   maxSpotColor: graph_data.sparklineMaxspotColor || '#f08000',
       
    47 														   highlightSpotColor: graph_data.sparklineHighlightspotColor || '#50f050',
       
    48 														   highlightLineColor: graph_data.sparklineHighlightlineColor || 'f02020',
       
    49 														   spotRadius: graph_data.sparklineSpotradius || 1.5,
       
    50 														   chartRangeMin: graph_data.sparklineMinY || 'undefined',
       
    51 														   chartRangeMax: graph_data.sparklineMaxY || 'undefined',
       
    52 														   chartRangeMinX: graph_data.sparklineMinX || 'undefined',
       
    53 														   chartRangeMaxX: graph_data.sparklineMaxX || 'undefined',
       
    54 														   normalRangeMin: graph_data.minVal || 'undefined',
       
    55 														   normalRangeMax: graph_data.maxVal || 'undefined',
       
    56 														   normalRangeColor: graph_data.normColor || '#c0c0c0',
       
    57 														   drawNormalOnTop: graph_data.drawNormal || false
       
    58 													   });
       
    59 													   break;
       
    60 
       
    61 												   case 'pie':
       
    62 													   graph.sparkline('html', {
       
    63 														   type: 'pie',
       
    64 														   width: graph_data.sparklinePiesize || 90,
       
    65 														   height: graph_data.sparklinePiesize || 90,
       
    66 														   tooltipFormat: '<span style="color: {{color}}">&#9679;</span> ({{percent.1}}%)',
       
    67 														   sliceColors: graph_data.sparklinePiecolor || ["#B4CAD3", "#4490B1", "#98AA56", "#da532c", "#6E9461", "#0099c6", "#990099", "#717D8A"],
       
    68 														   borderWidth: 1,
       
    69 														   offset: graph_data.sparklineOffset || 0,
       
    70 														   borderColor: graph_data.borderColor || '#45494C'
       
    71 													   });
       
    72 													   break;
       
    73 
       
    74 												   case 'box':
       
    75 													   graph.sparkline('html', {
       
    76 														   type: 'box',
       
    77 														   width: graph_data.sparklineWidth || 'auto',
       
    78 														   height: graph_data.sparklineHeight || 'auto',
       
    79 														   raw: graph_data.sparklineBoxraw || false,
       
    80 														   target: graph_data.sparklineTargetval || 'undefined',
       
    81 														   minValue: graph_data.sparklineMin || 'undefined',
       
    82 														   maxValue: graph_data.sparklineMax || 'undefined',
       
    83 														   showOutliers: graph_data.sparklineShowoutlier || true,
       
    84 														   outlierIQR: graph_data.sparklineOutlierIqr || 1.5,
       
    85 														   spotRadius: graph_data.sparklineSpotradius || 1.5,
       
    86 														   boxLineColor: graph.css('color') || '#000000',
       
    87 														   boxFillColor: graph_data.fillColor || '#c0d0f0',
       
    88 														   whiskerColor: graph_data.sparklineWhisColor || '#000000',
       
    89 														   outlierLineColor: graph_data.sparklineOutlineColor || '#303030',
       
    90 														   outlierFillColor: graph_data.sparklineOutlinefillColor || '#f0f0f0',
       
    91 														   medianColor: graph_data.sparklineOutlinemedianColor || '#f00000',
       
    92 														   targetColor: graph_data.sparklineOutlinetargetColor || '#40a020'
       
    93 													   });
       
    94 													   break;
       
    95 
       
    96 												   case 'bullet':
       
    97 													   graph.sparkline('html', {
       
    98 														   type: 'bullet',
       
    99 														   height: graph_data.sparklineHeight || 'auto',
       
   100 														   targetWidth: graph_data.sparklineWidth || 2,
       
   101 														   targetColor: graph_data.sparklineBulletColor || '#ed1c24',
       
   102 														   performanceColor: graph_data.sparklinePerformanceColor || '#3030f0',
       
   103 														   rangeColors: graph_data.sparklineBulletrangeColor || ["#d3dafe", "#a8b6ff", "#7f94ff"]
       
   104 													   });
       
   105 													   break;
       
   106 
       
   107 												   case 'discrete':
       
   108 													   graph.sparkline('html', {
       
   109 														   type: 'discrete',
       
   110 														   width: graph_data.sparklineWidth || 50,
       
   111 														   height: graph_data.sparklineHeight || 26,
       
   112 														   lineColor: graph.css('color'),
       
   113 														   lineHeight: graph_data.sparklineLineHeight || 5,
       
   114 														   thresholdValue: graph_data.sparklineThreshold || 'undefined',
       
   115 														   thresholdColor: graph_data.sparklineThresholdColor || '#ed1c24'
       
   116 													   });
       
   117 													   break;
       
   118 
       
   119 												   case 'tristate':
       
   120 													   graph.sparkline('html', {
       
   121 														   type: 'tristate',
       
   122 														   height: graph_data.sparklineHeight || 26,
       
   123 														   posBarColor: graph_data.sparklinePosbarColor || '#60f060',
       
   124 														   negBarColor: graph_data.sparklineNegbarColor || '#f04040',
       
   125 														   zeroBarColor: graph_data.sparklineZerobarColor || '#909090',
       
   126 														   barWidth: graph_data.sparklineBarwidth || 5,
       
   127 														   barSpacing: graph_data.sparklineBarspacing || 2,
       
   128 														   zeroAxis: graph_data.sparklineZeroaxis || false
       
   129 													   });
       
   130 													   break;
       
   131 
       
   132 												   case 'compositebar':
       
   133 													   graph.sparkline(graph_data.sparklineBarVal, {
       
   134 														   type: 'bar',
       
   135 														   width: graph_data.sparklineWidth || '100%',
       
   136 														   height: graph_data.sparklineHeight || '20px',
       
   137 														   barColor: graph_data.sparklineColorBottom || '#333333',
       
   138 														   barWidth: graph_data.sparklineBarwidth || 3
       
   139 													   });
       
   140 													   graph.sparkline(graph_data.sparklineLineVal, {
       
   141 														   width: graph_data.sparklineWidth || '100%',
       
   142 														   height: graph_data.sparklineHeight || '20px',
       
   143 														   lineColor: graph_data.sparklineColorTop || '#ed1c24',
       
   144 														   lineWidth: graph_data.sparklineLineWidth || 1,
       
   145 														   composite: true,
       
   146 														   fillColor: false
       
   147 													   });
       
   148 													   break;
       
   149 
       
   150 												   case 'compositeline':
       
   151 													   graph.sparkline(graph_data.sparklineBarVal, {
       
   152 														   type: 'line',
       
   153 														   spotRadius: graph_data.sparklineSpotradiusTop || 1.5,
       
   154 														   spotColor: graph_data.sparklineSpotColor || '#f08000',
       
   155 														   minSpotColor: graph_data.sparklineMinSpotColorTop || '#ed1c24',
       
   156 														   maxSpotColor: graph_data.sparklineMaxSpotColorTop || '#f08000',
       
   157 														   highlightSpotColor: graph_data.sparklineHighlightSpotColorTop || '#50f050',
       
   158 														   highlightLineColor: graph_data.sparklineHighlightLineColorTop || '#f02020',
       
   159 														   valueSpots: graph_data.sparklineBarValSpotsTop || null,
       
   160 														   lineWidth: graph_data.sparklineLineWidthTop || 1,
       
   161 														   width: graph_data.sparklineWidth || '90px',
       
   162 														   height: graph_data.sparklineHeight || '20px',
       
   163 														   lineColor: graph_data.sparklineColorTop || '#333333',
       
   164 														   fillColor: graph_data.sparklineFillcolorTop || 'transparent'
       
   165 													   });
       
   166 													   graph.sparkline(graph_data.sparklineLineVal, {
       
   167 														   type: 'line',
       
   168 														   spotRadius: graph_data.sparklineSpotradiusBottom || graph_data.sparklineSpotradiusTop || 1.5,
       
   169 														   spotColor: graph_data.sparklineSpotColor || '#f08000',
       
   170 														   minSpotColor: graph_data.sparklineMinspotColorBottom || graph_data.sparklineMinspotColorTop || '#ed1c24',
       
   171 														   maxSpotColor: graph_data.sparklineMaxspotColorBottom || graph_data.sparklineMaxspotColorTop || '#f08000',
       
   172 														   highlightSpotColor: graph_data.sparklineHighlightspotColorBottom || graph_data.sparklineHighlightspotColorTop || '#50f050',
       
   173 														   highlightLineColor: graph_data.sparklineHighlightlineColorBottom || graph_data.sparklineHighlightlineColorTop || '#f02020',
       
   174 														   valueSpots: graph_data.sparklineBarValSpotsBottom || null,
       
   175 														   lineWidth: graph_data.sparklineLineWidthBottom || 1,
       
   176 														   width: graph_data.sparklineWidth || '90px',
       
   177 														   height: graph_data.sparklineHeight || '20px',
       
   178 														   lineColor: graph_data.sparklineColorBottom || '#ed1c24',
       
   179 														   composite: true,
       
   180 														   fillColor: graph_data.sparklineFillcolorBottom || 'transparent'
       
   181 													   });
       
   182 													   break;
       
   183 											   }
       
   184 										   });
       
   185 									   });
       
   186 		}
       
   187 	};
       
   188 
       
   189 })(jQuery, this);