mirror of
https://github.com/status-im/burnchart.git
synced 2025-02-03 06:13:40 +00:00
init chart page
This commit is contained in:
parent
0d06507bef
commit
33e0e2647e
1
TODO.md
1
TODO.md
@ -3,6 +3,7 @@
|
||||
##Release: MVP
|
||||
|
||||
- [ ] show chart page
|
||||
- [ ] pick consistent module naming scheme: index, project, milestone?
|
||||
|
||||
###GitHub
|
||||
|
||||
|
@ -1,13 +1,15 @@
|
||||
<div id="title">
|
||||
<div class="wrap">
|
||||
<h2 class="title">{{ format.title(milestone.title) }}</h2>
|
||||
<span class="sub">{{{ format.due(milestone.due_on) }}}</span>
|
||||
<p class="description">{{{ format.markdown(milestone.description) }}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{#ready}}
|
||||
<div intro="fade">
|
||||
<div id="title">
|
||||
<div class="wrap">
|
||||
<h2 class="title">{{ format.title(milestone.title) }}</h2>
|
||||
<span class="sub">{{{ format.due(milestone.due_on) }}}</span>
|
||||
<p class="description">{{{ format.markdown(milestone.description) }}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="content" class="wrap">
|
||||
<div id="chart">
|
||||
<div id="svg"></div>
|
||||
<div id="content" class="wrap">
|
||||
<Chart milestone="{{milestone}}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/ready}}
|
@ -1,14 +1,17 @@
|
||||
#!/usr/bin/env coffee
|
||||
config = require '../models/config'
|
||||
line = require '../modules/line'
|
||||
|
||||
module.exports =
|
||||
|
||||
# Render the chart.
|
||||
render: ([ actual, ideal, trendline ], cb) ->
|
||||
document.querySelector('#svg').innerHTML = ''
|
||||
module.exports = Ractive.extend
|
||||
|
||||
'name': 'views/chart'
|
||||
|
||||
onconstruct: ->
|
||||
console.log @data.milestone
|
||||
|
||||
onrender: ->
|
||||
return console.log 'Use `line` to populate our data, could move to our scope too'
|
||||
|
||||
# Get available space.
|
||||
{ height, width } = document.querySelector('#chart').getBoundingClientRect()
|
||||
{ height, width } = this.el.getBoundingClientRect()
|
||||
|
||||
margin = { 'top': 30, 'right': 30, 'bottom': 40, 'left': 50 }
|
||||
width -= margin.left + margin.right
|
||||
@ -121,6 +124,4 @@ module.exports =
|
||||
.attr("cy", ({ points }) -> y points )
|
||||
.attr("r", ({ radius }) -> 5 ) # fixed for now
|
||||
.on('mouseover', tooltip.show)
|
||||
.on('mouseout', tooltip.hide)
|
||||
|
||||
cb null
|
||||
.on('mouseout', tooltip.hide)
|
@ -1,7 +1,11 @@
|
||||
system = require '../../models/system'
|
||||
milestone = require '../../modules/milestone'
|
||||
project = require '../../modules/project'
|
||||
format = require '../../utils/format'
|
||||
Chart = require '../chart.coffee'
|
||||
|
||||
projects = require '../../models/projects'
|
||||
system = require '../../models/system'
|
||||
milestones = require '../../modules/github/milestone'
|
||||
issues = require '../../modules/github/issues'
|
||||
mediator = require '../../modules/mediator'
|
||||
format = require '../../utils/format'
|
||||
|
||||
module.exports = Ractive.extend
|
||||
|
||||
@ -9,24 +13,52 @@ module.exports = Ractive.extend
|
||||
|
||||
'template': require '../../templates/pages/chart'
|
||||
|
||||
'adapt': [ Ractive.adaptors.Ractive ]
|
||||
'components': { Chart }
|
||||
|
||||
'data': { format }
|
||||
'data':
|
||||
'format': format
|
||||
'ready': no
|
||||
|
||||
onrender: ->
|
||||
return
|
||||
|
||||
[ owner, name, milestone ] = @get 'route'
|
||||
route = { owner, name, milestone }
|
||||
|
||||
document.title = "#{owner}/#{name}/#{milestone}"
|
||||
|
||||
milestone.get route, (err, warn, obj) =>
|
||||
throw err if err
|
||||
throw warn if warn
|
||||
# Save the milestone on the route.
|
||||
@set 'milestone', obj
|
||||
route.milestone = obj
|
||||
# Get the associated project.
|
||||
project = projects.find { owner, name }
|
||||
|
||||
project route, (err) ->
|
||||
throw err if err
|
||||
# Should not happen...
|
||||
throw 500 unless project
|
||||
|
||||
# Do we have this milestone already?
|
||||
milestone = _.find project.milestones, { 'number': milestone }
|
||||
return @set { milestone, 'ready': yes } if milestone
|
||||
|
||||
# We are loading the milestones then.
|
||||
done = do system.async
|
||||
|
||||
fetchMilestone = (cb) ->
|
||||
milestones.fetch project, cb
|
||||
|
||||
fetchIssues = (milestone, cb) ->
|
||||
issues.fetchAll project, (err, obj) ->
|
||||
cb err, _.extend milestone, { 'issues': obj }
|
||||
|
||||
async.waterfall [
|
||||
# Get the milestone.
|
||||
fetchMilestone,
|
||||
# Then all its issues.
|
||||
fetchIssues
|
||||
], (err, data) =>
|
||||
do done
|
||||
return mediator.fire '!app/notify', {
|
||||
'text': do err.toString
|
||||
'type': 'alert'
|
||||
'system': yes
|
||||
'ttl': null
|
||||
} if err
|
||||
|
||||
# Save the milestone.
|
||||
@set
|
||||
'milestone': data
|
||||
'ready': yes
|
Loading…
x
Reference in New Issue
Block a user