Skip to content

Instantly share code, notes, and snippets.

@fnordo
Created June 14, 2012 17:09
Show Gist options
  • Save fnordo/2931539 to your computer and use it in GitHub Desktop.
Save fnordo/2931539 to your computer and use it in GitHub Desktop.
<div id="field_container_s4fda1a9360862_partners">
<span id="field_widget_s4fda1a9360862_partners" >
</span>
<span id="field_actions_s4fda1a9360862_partners" >
<a
href="/app_dev.php/admin/dubture/plansinn/projecthaspartner/create?uniqid=s4fda1ac37ce8f&amp;code=sonata.admin.projecthaspartner&amp;pcode=sonata.admin.project&amp;puniqid=s4fda1a9360862"
onclick="return start_field_retrieve_s4fda1a9360862_partners(this);"
class="sonata-ba-action"
title="Neu"
>
<img
src="/bundles/sonataadmin/famfamfam/add.png"
alt="Neu"
/>
</a>
</span>
<script type="text/javascript">
jQuery('div#field_container_s4fda1a9360862_partners tbody.sonata-ba-tbody').sortable({
axis: 'y',
opacity: 0.6,
items: 'tr',
stop: apply_position_value_s4fda1a9360862_partners
});
function apply_position_value_s4fda1a9360862_partners() {
// update the input value position
jQuery('div#field_container_s4fda1a9360862_partners tbody.sonata-ba-tbody td.sonata-ba-td-s4fda1a9360862_partners-position').each(function(index, element) {
// remove the sortable handler and put it back
jQuery('span.sonata-ba-sortable-handler', element).remove();
jQuery(element).append('<span class="sonata-ba-sortable-handler ui-icon ui-icon-grip-solid-horizontal"></span>');
jQuery('input', element).hide();
});
jQuery('div#field_container_s4fda1a9360862_partners tbody.sonata-ba-tbody td.sonata-ba-td-s4fda1a9360862_partners-position input').each(function(index, value) {
jQuery(value).val(index + 1);
});
}
// refresh the sortable option when a new element is added
jQuery('#sonata-ba-field-container-s4fda1a9360862_partners').bind('sonata.add_element', function() {
apply_position_value_s4fda1a9360862_partners();
jQuery('div#field_container_s4fda1a9360862_partners tbody.sonata-ba-tbody').sortable('refresh');
});
apply_position_value_s4fda1a9360862_partners();
</script>
<!-- edit one association -->
<script type="text/javascript">
// handle the add link
var field_add_s4fda1a9360862_partners = function(event) {
event.preventDefault();
event.stopPropagation();
var form = jQuery(this).closest('form');
// the ajax post
jQuery(form).ajaxSubmit({
url: 'http://local.plansinn/app_dev.php/admin/core/append-form-field-element?code=sonata.admin.project&elementId=s4fda1a9360862_partners&objectId=2&uniqid=s4fda1a9360862',
type: "POST",
dataType: 'html',
data: { _xml_http_request: true },
success: function(html) {
jQuery('#field_container_s4fda1a9360862_partners').replaceWith(html); // replace the html
if(jQuery(form + 'input[type="file"]').length > 0) {
jQuery(form).attr('enctype', 'multipart/form-data');
jQuery(form).attr('encoding', 'multipart/form-data');
}
jQuery('#sonata-ba-field-container-s4fda1a9360862_partners').trigger('sonata.add_element');
}
});
return false;
};
var field_widget_s4fda1a9360862_partners = false;
// this function initialize the popup
// this can be only done this way has popup can be cascaded
function start_field_retrieve_s4fda1a9360862_partners(link) {
link.onclick = null;
// initialize component
field_widget_s4fda1a9360862_partners = jQuery("#field_widget_s4fda1a9360862_partners");
// add the jQuery event to the a element
jQuery(link)
.click(field_add_s4fda1a9360862_partners)
.trigger('click')
;
return false;
}
</script>
<!-- / edit one association -->
</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment