Sha256: 128fd4a1939951ddced6dd87e85498630797b15806d6c8cb0b53bdfe3dff3fb4

Contents?: true

Size: 1.2 KB

Versions: 10

Compression:

Stored size: 1.2 KB

Contents

# FIXME: Use PositionSort
class @WidgetPortlet

  constructor: (element) ->
    @element = $(element)
    @widgetList = @element.find('.js-sortable')
    @selectTag  = @element.find('select')

    @setBindings()

  setBindings: () =>
    @element.on('click', '.js-add-widget', @addWidget)
    @element.on('click', '.js-remove-widget', @removeWidget)
    @widgetList.sortable(axis: 'y')
    @widgetList.on( "sortupdate", @updatePosition)

  getWidgetId: () =>
    @selectTag.val()

  getData: () =>
    ui_section_id: @element.data('ui-section')
    revision_id: @element.data('revision')
    widget_id: @getWidgetId()

  addWidget: (event) =>
    event.preventDefault()
    $.ajax(
      url: "/admin/ui-associations/new"
      data: @getData()
    ).done( (data) => @widgetList.append(data) )

  removeWidget: (event) =>
    event.preventDefault()
    portlet = $(event.currentTarget).closest('.portlet')
    portlet.find('input.js-destroy').val('1')
    portlet.hide()

  updatePosition: (event, ui) =>
    @widgetList.find('.js-position').each((index, el) -> $(el).val(index+1))

$.fn.widgetPortlet = () ->
  @each ->
    new WidgetPortlet($(this))

jQuery ->
  $(".js-nested-widgets").each () ->
    $(this).widgetPortlet()

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
georgia-0.8.0 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.8 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.7 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.6 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.5 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.4 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.3 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.2 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.1 app/assets/javascripts/georgia/components/portlets/widget.js.coffee
georgia-0.7.0 app/assets/javascripts/georgia/components/portlets/widget.js.coffee