engine/app/assets/javascripts/locomotive/views/content_entries/_popup_form_view.js.coffee

80 lines
1.9 KiB
CoffeeScript

#= require ../shared/form_view
Locomotive.Views.ContentEntries ||= {}
class Locomotive.Views.ContentEntries.PopupFormView extends Locomotive.Views.ContentEntries.FormView
initialize: ->
@create_dialog()
super()
render: ->
super()
return @
save: (event) ->
@save_in_ajax event,
headers: { 'X-Flash': true }
on_success: (response, xhr) =>
entry = new Locomotive.Models.ContentEntry(response)
@options.parent_view.insert_or_update_entry(entry)
@close()
create_dialog: ->
@dialog = $(@el).dialog
autoOpen: false
modal: true
zIndex: 998
width: 770,
create: (event, ui) =>
$('.ui-widget-overlay').bind 'click', => @close()
$(@el).prev().find('.ui-dialog-title').html(@$('h2').html())
@$('h2').remove()
actions = @$('.dialog-actions').appendTo($(@el).parent()).addClass('ui-dialog-buttonpane ui-widget-content ui-helper-clearfix')
actions.find('#close-link').click (event) => @close(event)
actions.find('input[type=submit]').click (event) => @save(event)
open: (event, ui, extra) =>
# nothing to do
open: ->
parent_el = $(@el).parent()
if @model.isNew()
parent_el.find('.edit-section').hide()
parent_el.find('.new-section').show()
else
parent_el.find('.new-section').hide()
parent_el.find('.edit-section').show()
$(@el).dialog('open')
close: (event) ->
event.stopPropagation() & event.preventDefault() if event?
@clear_errors()
$(@el).dialog('close')
center: ->
$(@el).dialog('option', 'position', 'center')
reset: (entry) =>
@model.set entry.attributes
if entry.isNew()
@model.id = null
super()
else
@refresh()
enable_has_many_fields: ->
# disabled in a popup form
enable_many_to_many_fields: ->
# disabled in a popup form
tinyMCE_settings: ->
window.Locomotive.tinyMCE.popupSettings