Merge pull request #452 from JelteF/feature-noshow

This commit is contained in:
Jelte Fennema 2014-07-15 15:45:22 +02:00
commit a9076b2cc4
3 changed files with 25 additions and 8 deletions

View File

@ -30,6 +30,7 @@ class Morris.Bar extends Morris.Grid
barRadius: [0, 0, 0, 0] barRadius: [0, 0, 0, 0]
xLabelMargin: 50 xLabelMargin: 50
horizontal: false horizontal: false
shown: true
# Do any size-related calculations # Do any size-related calculations
# #
@ -127,10 +128,16 @@ class Morris.Bar extends Morris.Grid
# #
# @private # @private
drawSeries: -> drawSeries: ->
numBars = if @options.stacked then 1 else @options.ykeys.length
groupWidth = @xSize / @options.data.length groupWidth = @xSize / @options.data.length
if @options.stacked
numBars = 1
else
numBars = 0
for i in [0..@options.ykeys.length]
if @hasToShow(i)
numBars += 1
barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars
barWidth = Math.min(barWidth, @options.barSize) if @options.barSize barWidth = Math.min(barWidth, @options.barSize) if @options.barSize
spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1) spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1)
@ -139,6 +146,8 @@ class Morris.Bar extends Morris.Grid
@bars = for row, idx in @data @bars = for row, idx in @data
lastTop = 0 lastTop = 0
for ypos, sidx in row._y for ypos, sidx in row._y
if not @hasToShow(sidx)
continue
if ypos != null if ypos != null
if zeroPos if zeroPos
top = Math.min(ypos, zeroPos) top = Math.min(ypos, zeroPos)

View File

@ -172,7 +172,7 @@ class Morris.Grid extends Morris.EventEmitter
yval = row[ykey] yval = row[ykey]
yval = parseFloat(yval) if typeof yval is 'string' yval = parseFloat(yval) if typeof yval is 'string'
yval = null if yval? and typeof yval isnt 'number' yval = null if yval? and typeof yval isnt 'number'
if yval? if yval? and @hasToShow(idx)
if @cumulative if @cumulative
total += yval total += yval
else else
@ -489,6 +489,10 @@ class Morris.Grid extends Morris.EventEmitter
@raphael.setSize @el.width(), @el.height() @raphael.setSize @el.width(), @el.height()
@redraw() @redraw()
hasToShow: (i) =>
@options.shown is true or @options.shown[i] is true
# Parse a date into a javascript timestamp # Parse a date into a javascript timestamp
# #
# #

View File

@ -31,6 +31,7 @@ class Morris.Line extends Morris.Grid
pointStrokeColors: ['#ffffff'] pointStrokeColors: ['#ffffff']
pointFillColors: [] pointFillColors: []
smooth: true smooth: true
shown: true
xLabels: 'auto' xLabels: 'auto'
xLabelFormat: null xLabelFormat: null
xLabelMargin: 24 xLabelMargin: 24
@ -194,12 +195,15 @@ class Morris.Line extends Morris.Grid
drawSeries: -> drawSeries: ->
@seriesPoints = [] @seriesPoints = []
for i in [@options.ykeys.length-1..0] for i in [@options.ykeys.length-1..0]
if @hasToShow(i)
if @options.trendLine isnt false and if @options.trendLine isnt false and
@options.trendLine is true or @options.trendLine[i] is true @options.trendLine is true or @options.trendLine[i] is true
@_drawTrendLine i @_drawTrendLine i
@_drawLineFor i @_drawLineFor i
for i in [@options.ykeys.length-1..0] for i in [@options.ykeys.length-1..0]
if @hasToShow(i)
@_drawPointFor i @_drawPointFor i
_drawPointFor: (index) -> _drawPointFor: (index) ->