app/assets/javascripts/chaskiq/manage/campaign_wizard.js.coffee in chaskiq-0.0.5 vs app/assets/javascripts/chaskiq/manage/campaign_wizard.js.coffee in chaskiq-0.0.6

- old
+ new

@@ -21,10 +21,13 @@ "click input.submit": "submitEditor" initialize: -> @textarea = $(@el).find('#campaign_html_content') @css = $(@el).find('#campaign_css') + window.current_editor = @ + @placeholder = null + @files = [] setIframe: (iframe)-> @iframe = iframe copyToEditor: (ev)-> @@ -518,44 +521,115 @@ </td> </tr> </tbody> </table>" + listenerForImagesReplace: ()-> + $('.image-selector').on "click", ()-> + html = current_editor.placeholder.parents(".mcpreview-image-uploader") + url = $(this).data('image-url') + current_editor.replaceImagePreview(html, url ) + false + checkExistentImages: (placeholder)-> #@targetForUpload = $(ev.currentTarget) $.ajax url: $("#editor-container").data("attachments-path") dataType: "json" success: (data)=> Chaskiq.Helpers.showModal(@templateForAttachments(data), "dsdsda") - _this = this - $('.image-selector').on "click", ()-> - html = placeholder.parents(".mcpreview-image-uploader") - url = $(this).data('image-url') - _this.replaceImagePreview(html, url ) - false + @placeholder = placeholder + + @listenerForImagesReplace() + $('#myModal input[type=file]').on 'change', @prepareUpload + $('#myModal #upload-form').on 'submit', @uploadFiles + + error: (err)-> alert("error retrieving files") replaceImagePreview: (html_to_replace, url)-> html_to_replace.replaceWith( "<img src='#{url}'/>" ); Chaskiq.Helpers.hideModal() @copyToTextArea() + templateforUploader: -> + "<form id='upload-form'> + <input type='file'/> + <input type='submit' value='Submit'> + </form>" + + templateForAttachments: (data)-> - html = "<ul class='attachments-modal-list'>" + html = @templateforUploader() + html += "<ul class='attachments-modal-list'>" _.each data, (num)-> html += "<li>" html += "<a href='#' class='image-selector btn btn-success pull-right' data-image-url='#{num.image.url}' >Select</a>" html += "<img src='#{num.image.url}' width=150>" html += "</li>" - html += "</ul>" + appendImageToAttachmentList: (data)-> + $("#myModal .attachments-modal-list").prepend(" + <li> + <a href='#' class='image-selector btn btn-success pull-right' data-image-url='#{data.image.url}'> + Select + </a> + <img src='#{data.image.url}' width=150> + </li>") + @listenerForImagesReplace() + + fileUploader: -> + # Catch the form submit and upload the files + + prepareUpload: (event) -> + window.current_editor.files = event.target.files + return + + uploadFiles: (event) -> + console.log("upload upload!") + event.stopPropagation() + # Stop stuff happening + event.preventDefault() + # Totally stop stuff happening + # START A LOADING SPINNER HERE + # Create a formdata object and add the files + data = new FormData + + $.each window.current_editor.files, (key, value) -> + #data.append key, value + data.append "attachment[image]", value + return + + $.ajax + url: $("#editor-container").data("attachments-path") + type: 'POST' + data: data + cache: false + dataType: 'json' + processData: false + contentType: false + success: (data, textStatus, jqXHR) -> + if typeof data.error == 'undefined' + # Success so call function to process the form + # submitForm event, data + current_editor.appendImageToAttachmentList(data) + else + # Handle errors here + console.log 'ERRORS: ' + data.error + return + error: (jqXHR, textStatus, errorThrown) -> + # Handle errors here + console.log 'ERRORS: ' + textStatus + # STOP LOADING SPINNER + return + return + defaultStyleSheet: -> @iframe.findStyleSheet() style: -> @defaultStyleSheet() @@ -727,10 +801,10 @@ Array.apply(null, length: n).map Number.call, Number styleforSelector: (target, style_selector, parent_name)-> val = if !target.selector then @currentFocused().find(".#{parent_name}#{target.namespace}") else @.iframe.$el.find(target.selector) o = val.css(style_selector) - console.log o + #console.log o o backgroundFieldsFor: (target, parent_name)-> style_selector = "background-color" val = @styleforSelector(target, style_selector, parent_name)