master
1class csx.Views.My.Photos.NewModalView extends Marionette.ItemView
2 template: JST["templates/my/photos/new-modal"]
3 ui:
4 watermark: '#watermark'
5 upload_button: "#upload-photo-button"
6
7 events:
8 "click #upload-photo-button": "save"
9 "change #photo-attachment": "displayPreview"
10 "keyup #watermark": "updateWatermark"
11
12 constructor: (options) ->
13 super(options)
14 @collection = csx.Collections.Photo
15 @cake = options.cake
16 @model = new @collection.model(cake_id: @cake.id)
17
18 save: (e) ->
19 e.preventDefault()
20 e.stopPropagation()
21 @closeDialog()
22 @model.on('progress', @displayProgress)
23 @collection.create(@model)
24
25 displayPreview: (event) ->
26 input = event.currentTarget
27 if (input.files && input.files[0])
28 file = input.files[0]
29 reader = new FileReader()
30 reader.onload = (e) ->
31 $('#preview-image').attr('src', e.target.result)
32 $('#preview-image').removeClass('hide')
33 reader.readAsDataURL(file)
34 @model.set('image', file)
35 @model.set('thumb_url', event.target.result)
36 else
37 $('#preview-image').addClass('hide')
38
39 displayProgress: (progress) ->
40 percentCompleted = progress*100
41 @set('percentComplete', percentCompleted)
42
43 closeDialog: (photo) ->
44 $('#modal').modal('hide')
45 @remove()
46
47 updateWatermark: ->
48 @model.set('watermark', @ui.watermark.val())