Created
October 2, 2012 22:14
-
-
Save elbuo8/3823662 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
View = require './view' | |
template = require './templates/thumb' | |
module.exports = class ThumbnailView extends View | |
tagName: 'li' | |
template: template | |
events: | |
'click .delete-photo': 'deleteImage' | |
getRenderData: -> | |
console.log 'getRenderData' | |
return @model.get('photos')[-1..] | |
render: -> | |
@$el.html(@template(@getRenderData())).attr('id', "image-#{@cid}") | |
console.log @$el, @cid | |
deleteImage: (e) -> | |
console.log e | |
e.preventDefault() | |
#Remove from DOM and from DB and from s3 | |
console.log 'Delete Image' | |
console.log @model | |
View = require './view' | |
template = require './templates/new_modal' | |
Page = require 'models/page_model' | |
ThumbView = require './thumbnail_view' | |
module.exports = class PageModalView extends View | |
id:'new-modal' | |
template: template | |
events: | |
'click .save': 'savePage', | |
'click .delete': 'deletePage', | |
'click .close': 'closeEvent' | |
getRenderData: -> | |
if @model | |
return @model.toJSON() | |
else | |
return {} | |
render: -> | |
$('#app').toggleClass 'fixed' | |
super 'render' | |
afterRender: -> | |
# simulate file upload done | |
# file = {links:[something:'http://google.com']} | |
# thumb = new ThumbView({model:file}) | |
# @$el.find('.image-preview').append thumb.render().el | |
# thumb2 = new ThumbView({model:file}) | |
# @$el.find('.image-preview').append thumb2.render().el | |
# thumb3 = new ThumbView({model:file}) | |
# @$el.find('.image-preview').append thumb3.render().el | |
# Init file upload | |
$input = @$el.find('.imageFile') | |
$dropzone = @$el.find('.dropzone') | |
$input.fileupload | |
url: '/api/photo' | |
dropZone: $dropzone | |
paramName: 'photo1' | |
maxNumberOfFiles: 3 | |
maxFileSize: 5000000 | |
acceptFileTypes: '/(\.|\/)(gif|jpe?g|png)$/i' | |
formData: | |
'key': '831627778ba8a8f5aded7190078fed13' | |
dataType: 'json' | |
dragover: (e) -> | |
$dropzone.addClass('over') | |
drop: -> | |
$dropzone.removeClass('over') | |
$dropzone.addClass('uploading') | |
$dropzone.html 'Uploading...' | |
done: (e, data) => | |
$.each data.result, (index, file) => | |
if @model | |
photos = @model.get('photos') | |
photos.push(file) | |
@model.set('photos', photos) | |
console.log @model | |
else if @newPage | |
photos = @newPage.get('photos') | |
photos.push(file) | |
@newPage.set('photos', photos) | |
console.log @newPage | |
else | |
@newPage = new Page() | |
@newPage.set('photos', [file]) | |
console.log @newPage | |
thumb = new ThumbView({model:@model or @newPage}) | |
@$el.find('.image-preview').append thumb.render().el | |
stop: (e) -> | |
$dropzone.html "Done!" | |
$dropzone.remove() | |
savePage: (e) -> | |
e.preventDefault() | |
# Show spinner | |
# Get field data | |
_product_name = @$el.find('.product_name').val() | |
_description = @$el.find('.description').val() | |
_price = @$el.find('.price').val() | |
_shipping = @$el.find('.shipping').val() | |
_paypal = @$el.find('.paypal').val() | |
_phone = @$el.find('.phone').val() | |
_name = @$el.find('.name').val() | |
if @model | |
@model.save { | |
product_name: _product_name | |
description: _description | |
price: _price | |
shipping: _shipping | |
paypal: _paypal | |
phone: _phone | |
name: _name | |
owner: application.user | |
}, | |
success: (page) => | |
@close() | |
# Render page again | |
application.pageView.update(page) | |
error: (page, error) -> | |
console.log 'error:', error | |
else | |
# Create a new model if needed | |
unless @newPage | |
@newPage = new Page() | |
# Public Read ACL | |
acl = new Parse.ACL application.user | |
acl.setPublicReadAccess true | |
@newPage.setACL acl | |
@newPage.save { | |
product_name: _product_name | |
description: _description | |
price: _price | |
shipping: _shipping | |
paypal: _paypal | |
phone: _phone | |
name: _name | |
owner: application.user | |
}, | |
success: (page) => | |
application.router.navigate page.id, trigger: true | |
@close() | |
error: (page, error) -> | |
console.log 'error:', page, error | |
deletePage: (e) -> | |
e.preventDefault() | |
if application.user and @model.get('owner').id == application.user.id | |
@model.destroy | |
success: (page) => | |
application.router.navigate '/', trigger: true | |
@close() | |
error: (page, error) -> | |
console.log 'Error deleting page' | |
else | |
console.log 'Not your page to delete dude' | |
close: -> | |
# Release main scroll | |
$('#app').toggleClass 'fixed' | |
# Destroy fileupload | |
$input = @$el.find('.imageFile') | |
$input.fileupload 'destroy' | |
# Close modal | |
@$el.remove() | |
closeEvent: (e) -> | |
e.preventDefault() | |
if window.location.pathname == '/new' | |
application.router.navigate '', trigger: true | |
# Release main scroll | |
$('#app').toggleClass 'fixed' | |
# Destroy fileupload | |
$input = @$el.find('.imageFile') | |
$input.fileupload 'destroy' | |
# Close modal | |
@$el.remove() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment