Skip to content

Instantly share code, notes, and snippets.

@t2k
Last active August 29, 2015 14:09
Show Gist options
  • Save t2k/ccde4a35397ee661b47b to your computer and use it in GitHub Desktop.
Save t2k/ccde4a35397ee661b47b to your computer and use it in GitHub Desktop.
#AMD MODULE
define ['apps/lp/list/templates', 'views/_base', 'moment', 'nprogress', 'calheatmap'], (Templates, AppViews, Moment, NP, CalHeatMap) ->
class LPItem extends AppViews.ItemView
template: _.template(Templates.lpItem)
className: "well"
ui:
li: "li"
onShow: ->
@ui.li.tooltip()
triggers:
'click': "lp:item:clicked" #passes (child,args)
templateHelpers:
moment: Moment
HeatMapView: class HeatMapItemView extends AppViews.ItemView
template: _.template(Templates.heatmap)
className: "well well-sm"
ui:
heatmap: "#heatmap"
prev: "#hm-prev"
next: "#hm-next"
onShow: ->
cal = new CalHeatMap()
minDate = new Date(@collection.at(0).get("timestamp"))
start = Moment().subtract(11, 'M').toDate()
cal.init
itemSelector: "#heatmap"
previousSelector: "#hm-prev"
nextSelector: "#hm-next"
cellSize: 12
domainGutter: 3
start: start
data : @collection.toJSON()
range: 12
itemName: ['loan processed', 'loans processed']
format:
date: (date)->
Moment(date).format("L")
legend: null
# parse data coming from .NET
afterLoadData: (data)->
stats = {}
for d of data
secs = new Date(data[d].timestamp).getTime()/1000
# note the format is time in seconds!
stats[secs] = data[d].value
stats
legend: [1, 5, 10, 20]
domain: "month"
subDomain: "day"
onClick: (date,nb)=>
@trigger "filter:date", date, nb
LPList: class _listview extends AppViews.CompositeView
template: _.template(Templates.lpItems)
childView: LPItem
childViewContainer: ".scrollable-inner"
className: "scrollable-container"
ui:
scroll: ".scrollable-inner"
events:
"scroll": "checkScroll"
collectionEvents:
"request": ->
NP.start()
NP.inc()
"sync error": ->
NP.done()
checkScroll: (e) =>
virtualHeight = @ui.scroll.height()
margin = .05 * virtualHeight # 10%
scrollTop = @$el.scrollTop() + @$el.height()
@trigger "scroll:more:lpitems" if (scrollTop + margin) >= virtualHeight
LayoutView: class _layout extends AppViews.LayoutView
template: _.template(Templates.layout)
className: "panel panel-body"
regions:
titleRegion: "#title-region"
panelRegion: "#panel-region"
newRegion: "#new-region"
listRegion: "#lp-region"
heatMapRegion: "#heatmap-region"
Panel: class _panel extends AppViews.ItemView
template: _.template(Templates.panel)
ui:
loanMod: ".loanmod"
manLoanMod: ".manloanmod"
idFilter: ".filter-id"
portFilter: ".filter-port"
typeFilter: ".filter-type"
filters: ".filter"
triggers:
"click @ui.loanMod" : "new:lp:button:clicked"
"click @ui.manLoanMod" : "new:lpsimple:button:clicked"
events:
"blur @ui.idFilter": ->
v = @ui.idFilter.val()
if v
@resetFilters()
@ui.idFilter.val(v)
@trigger "filter:id", v
"blur @ui.portFilter":->
v=@ui.portFilter.val()
if v
@resetFilters()
@ui.portFilter.val(v)
@trigger "filter:port", v
"blur @ui.typeFilter":->
v=@ui.typeFilter.val()
if v
@resetFilters()
@ui.typeFilter.val(v)
@trigger "filter:type", v
resetFilters:->
@ui.filters.val("")
Title: class _title extends AppViews.ItemView
template: _.template(Templates.title)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment