-
Notifications
You must be signed in to change notification settings - Fork 93
Expand file tree
/
Copy pathdocument_view.coffee
More file actions
54 lines (49 loc) · 2.13 KB
/
document_view.coffee
File metadata and controls
54 lines (49 loc) · 2.13 KB
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
Template._houston_document_view.helpers
collection_name: -> Houston._session('collection_name')
showSaved: -> Houston._session('show_saved')
fields: ->
document = get_collection().findOne _id: Houston._session('document_id')
unless document
try
document = get_collection().findOne _id: new Meteor.Collection.ObjectID(Houston._session('document_id'))
catch error
console.log error
fields = Houston._get_fields([document])
result = []
for field in fields
value = Houston._nested_field_lookup(document, field.name)
result.push(name: "#{field.name} (#{typeof value})", name_id: field.name, type: typeof value, value: value)
return result
document_id: -> Houston._session('document_id')
Template._houston_document_field.helpers
field_is_id: -> @name is '_id'
document_id: -> Houston._session('document_id')
has_type: -> Houston._INPUT_TYPES[@type]?
is_checkbox: -> Houston._INPUT_TYPES[@type] == 'checkbox'
input_type: -> Houston._INPUT_TYPES[@type]
get_collection = -> Houston._get_collection(Houston._session('collection_name'))
Template._houston_document_view.events
'click #houston-save': (e) ->
e.preventDefault()
update_dict = {}
for field in $('.houston-field')
field_name = field.name.split(' ')[0]
unless field_name is '_id'
val = field.value
val = field.checked if field.type is 'checkbox'
update_dict[field_name] = Houston._convert_to_correct_type(field_name, val,
get_collection())
Houston._call("#{Houston._session('collection_name')}_update",
Houston._session('document_id'), $set: update_dict)
Houston._session('show_saved', true)
setTimeout (->
Houston._session('show_saved', false)
), 2000
'click #houston-delete': (e) ->
e.preventDefault()
id = Houston._session('document_id')
if confirm("Are you sure you want to delete the document with _id #{id}?")
Houston._call("#{Houston._session('collection_name')}_delete", id)
Houston._go 'collection', name: Houston._session('collection_name')
Template._houston_document_view.rendered = ->
$(window).unbind('scroll')