static public ajaxForm ( $selector, $success = "console.log(html);" ) |
static function ajaxForm($selector, $success = "console.log(html);")
{
echo Html::scriptBlock("\n \$(document).ready(function() {\n var lastClicked = null;\n \$('input[type=submit]').click(function(e) {\n e = e || event;\n lastClicked = e.target || e.srcElement;\n });\n\n \$('{$selector}').on('submit', function(e) {\n e.preventDefault();\n var form = \$(this);\n var formData = form.closest('form').serializeArray();\n //push submit button\n formData.push({\n name: \$(lastClicked).attr('name'),\n value: \$(lastClicked).val()\n });\n\n \$.ajax({\n url: form.attr('action'),\n type: form.attr('method'),\n data: formData,\n success: function(html) {\n {$success}\n }\n });\n });\n });\n ");
}
/** * Display form after selecting date range in planning * * @since 9.1 * * @param $params (array): must contains this keys : * - begin : start of selection range. * (should be an ISO_8601 date, but could be anything wo can be parsed by strtotime) * - end : end of selection range. * (should be an ISO_8601 date, but could be anything wo can be parsed by strtotime) * * @return Nothing (display function) */ static function showAddEventSubForm($params = array()) { $rand = mt_rand(); $params['begin'] = date("Y-m-d H:i:s", strtotime($params['begin'])); $params['end'] = date("Y-m-d H:i:s", strtotime($params['end'])); if ($item = getItemForItemtype($params['itemtype'])) { $item->showForm('', array('from_planning_ajax' => true, 'begin' => $params['begin'], 'end' => $params['end'], 'formoptions' => "id='ajax_reminder{$rand}'")); $callback = "\$('.ui-dialog-content').dialog('close');\n \$('#planning').fullCalendar('refetchEvents');\n displayAjaxMessageAfterRedirect();"; Html::ajaxForm("#ajax_reminder{$rand}", $callback); } }