summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/views/my/photos/new_modal_view.js.coffee
blob: 1218b2e9413bf7b50efa5bbf10bb5489e891f3be (plain)
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
class csx.Views.My.Photos.NewModalView extends Marionette.ItemView
  template: JST["templates/my/photos/new-modal"]
  ui:
    watermark: '#watermark'
    upload_button: "#upload-photo-button"

  events:
    "click #upload-photo-button": "save"
    "change #photo-attachment": "displayPreview"
    "keyup #watermark": "updateWatermark"

  constructor: (options) ->
    super(options)
    @collection = csx.Application.request('PhotosRepository', options.cake.id)
    @cake = options.cake
    @model = new @collection.model(cake_id: @cake.id)

  save: (e) ->
    e.preventDefault()
    e.stopPropagation()
    @closeDialog()
    @model.on('progress', @displayProgress)
    @collection.create(@model)

  displayPreview: (event) ->
    input = event.currentTarget
    if (input.files && input.files[0])
      file = input.files[0]
      reader = new FileReader()
      reader.onload = (e) ->
        $('#preview-image').attr('src', e.target.result)
        $('#preview-image').removeClass('hide')
      reader.readAsDataURL(file)
      @model.set('image', file)
      @model.set('thumb_url', event.target.result)
    else
      $('#preview-image').addClass('hide')

  displayProgress: (progress) ->
    percentCompleted = progress*100
    @set('percentComplete', percentCompleted)

  closeDialog: (photo) ->
    $('#modal').modal('hide')
    @remove()

  updateWatermark: ->
    @model.set('watermark', @ui.watermark.val())