-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathformTemplates.coffee
197 lines (157 loc) · 4.93 KB
/
formTemplates.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#Global Helpers
Template.registerHelper "selected", (key, val) ->
key = key.toString() if key?
val = val.toString() if val?
return "" if !key? or !val?
if key is val then return {selected: "selected"} else return ""
Template.registerHelper "checked", (key, val) ->
key = key.toString()
return "" if !key? or !val?
if key in val then return {checked: "checked"} else return ""
Template.registerHelper "checkedBool", (val) ->
return "" if !val?
if val is true then return {checked: "checked"} else return ""
Template.registerHelper "checkedSingle", (key, val) ->
return "" if !key? or !val?
if key is val then return {checked: "checked"} else return ""
Template.registerHelper "tooltipPos", ->
return @tooltipPos if @tooltipPos?
return "right"
Template.registerHelper "iconLeft", ->
return false if !@icon?
return true if !@iconPosition?
return true if @iconPositon is 'left'
Template.registerHelper "iconRight", ->
return false if !@iconPosition?
return true if @iconPosition is 'right'
Template.registerHelper "tooltip", ->
return 'tooltip' if @details?
#text field
Template.text_field.helpers
showAddon:->
return true if @icon? or @label?
return false
#Button
Template.button.helpers
type: ->
return @type if @type?
return 'button'
#Toggle
#Have to set a uniqueID in order to destroy the toggle properly
Template.toggle.onCreated ->
@uniqueID = new ReactiveVar
Template.toggle.onRendered ->
uniqueID = Random.id()
@$(@firstNode).bootstrapToggle().attr('data-uniqueID',uniqueID)
@uniqueID.set(uniqueID)
Template.toggle.onDestroyed ->
uniqueID = @uniqueID.get()
$("[data-uniqueID="+uniqueID+"]").bootstrapToggle('destroy')
#Radio Buttons
Template.radioButtons.rendered = ->
@.$("[data-toggle='tooltip']").tooltip({delay:500})
Template.radioButtons.helpers
active: (key,val) ->
return "" if !key? or !val?
if key is val then return @activeClass else return ""
vertical: ->
return "-vertical" if @vertical is true
#Check Buttons
Template.checkButtons.rendered = ->
@.$("[data-toggle='tooltip']").tooltip({delay:500})
Template.checkButtons.helpers
active: (key,val) ->
return "" if !key? or !val?
if key is val then return @activeClass else return ""
vertical: ->
return "-vertical" if @vertical is true
#Select Picker
Template.selectpicker.rendered = ->
$(@.firstNode).selectpicker()
Template.selectpicker.destroyed = ->
$("[name='"+@data.name+"']").selectpicker('destroy')
refreshSelectpicker = ->
if(renderTimeout isnt false)
Meteor.clearTimeout(renderTimeout)
renderTimeout = Meteor.setTimeout ->
$('.selectpicker').selectpicker("refresh")
renderTimeout = false
, 10
Template.selectpicker.helpers
options: ->
refreshSelectpicker()
return @options
# Template.selectpickerOption.rendered = ->
# console.log 'option rendered'
# # refreshSelectpicker()
# if(renderTimeout isnt false)
# Meteor.clearTimeout(renderTimeout)
# renderTimeout = Meteor.setTimeout ->
# $('.selectpicker').selectpicker("refresh")
# renderTimeout = false
# , 10
# Template.selectpickerOption.destroyed = ->
# refreshSelectpicker()
Template.selectpickerOption.helpers
value: ->
return @ if !@value?
return @value
display: ->
return @display if @display?
return @label if @label?
return @
disabled: ->
return 'disabled' if @disabled is true
return null
#Date picker
Template.datepicker.rendered = ->
$(@.firstNode).datepicker()
Template.datepicker.destroyed = ->
$(@.firstNode).datepicker('remove')
#Checkboxes
Template.checkboxes.helpers
blankName: ->
return 'blank-'+@name
value: ->
return @ if !@value?
return @value
display: ->
return @ if !@display?
return @display
Template.checkboxes.rendered = ->
@.$("[data-toggle='tooltip']").tooltip({delay:500})
#List Group
Template.listGroup.created = ->
@editing = new ReactiveVar()
Template.listGroup.helpers
editing: ->
return Template.instance().editing.get()
displayName: (value, object) ->
item = _.findWhere(object, {value:value})
return @ if !item?
return item.display
noRecords: (items) ->
return true if !items?
return (items.length is 0)
Template.listGroup.events
'click .edit': (e,t) ->
t.editing.set(!t.editing.get())
'click .save': (e,t) ->
form = processForm(t.find('form'))
item = Template.parentData()
return if !window[t.data.collection]?
Collection = window[t.data.collection]
Collection.update({_id:item._id},{$set:form})
t.editing.set(!t.editing.get())
# File Browse
# This is a hidden file field, with a visible button which clicks the input to prompt for a file
Template.fileBrowse.rendered = ->
@.$("[type='file']").hide()
Template.fileBrowse.helpers
#Strip the ID that is going to the button so there are not 2 elements with the same ID
passVarsToButton: ->
delete @id
return @
Template.fileBrowse.events
'click button': (e,t) ->
t.$("[type='file']").click()