pbs/src/pert-ui.coffee

48 lines
1.5 KiB
CoffeeScript
Raw Normal View History

2015-03-31 11:32:45 +02:00
console.log 'Pert ui'
2015-03-30 12:47:38 +02:00
toDates = (list, startDay) ->
list.map (i) ->
r = content: ""+i.id, id: i.id
if i.startDay? then r.start = moment(startDay).add(i.startDay, 'days').format 'YYYY-MM-DD'
if i.endDay? then r.end = moment(startDay).add(i.endDay, 'days').format 'YYYY-MM-DD'
return r
buildTimeline = (data) ->
timeline = new vis.Timeline (document.getElementById 'timeline'), (toDates data.activities), {}
2015-03-14 09:42:05 +01:00
buildGraph = (data) ->
2015-03-13 21:03:11 +01:00
nodes = data.days.map (x) -> {id: x, label: ""+x}
connections = []
data.activities.forEach (x) ->
connections.push
from: x.startDay, to: x.endDay
label: x.id+" ("+(if x.permittedDelay > 0 then x.duration+"/"+(x.duration+x.permittedDelay) else x.duration)+")"
2015-03-16 11:44:08 +01:00
color: if !x.permittedDelay then 'red'
2015-03-13 21:03:11 +01:00
if x.permittedDelay > 0
2015-03-14 09:42:05 +01:00
connections.push
from: x.endDay
to: x.endDay+x.permittedDelay
color: 'green'
label: x.id+" ("+x.permittedDelay+")"
if network
network.setData { nodes: nodes, edges: edges }
else
options =
edges:
style: 'arrow'
network = new vis.Network (document.getElementById 'pert'), { nodes: nodes, edges: connections }, options
2015-03-31 11:32:45 +02:00
2015-03-31 18:25:06 +02:00
fromLocalStorage = ->
data = localStorage.getItem 'ganttpert'
if data
try
jdata = JSON.parse data
catch e
return swal 'JSON Error', e, 'error'
if jdata
buildGraph new Pert(jdata).calculate()
else return swal 'Error', 'no JSON?', 'error'
else swal 'Error', 'no data to parse', 'error'
fromLocalStorage()