/** * @param \Illuminate\Database\Eloquent\Model $model * @param $id * @param $showFields * @param array $fieldsNames * @param array $selectsOptions * @param array $extraParams * @return string */ public static function generateCRUDform($model, $id, $showFields, $fieldsNames = array(), $selectsOptions = array(), $extraParams = array(), $defaultValues = array()) { $renderer = new Renderer(); $modelObject = $model::find($id); $btnName = "Modificar ficha"; if (!$modelObject) { $modelObject = new $model(); $btnName = "Añadir"; } $extraParams['class'][] = "form-horizontal"; $extraParams['class'][] = "autoGeneratedCRUDForm"; $extraParams['role'] = "form"; $extraParams['method'] = "post"; Renderer::addJS("\n <script>\n \$(function(){\n \$('.autoGeneratedCRUDForm').on('submit', function(e){\n var form = \$(this);\n \$('.autoGeneratedCRUDForm input[type=checkbox]').each(function()\n {\n if(\$(this).prop('checked')) {\n form.append('<input type=\"hidden\" name=\"'+\$(this).attr('name')+'\" value=\"1\">');\n }\n else form.append('<input type=\"hidden\" name=\"'+\$(this).attr('name')+'\" value=\"0\">');\n \$(this).remove();\n });\n return true;\n });\n });\n </script>\n "); $htmlParams = $renderer->generateHtmlParams($extraParams); $result = "<form {$htmlParams}>"; $result .= $renderer->generate2columnsFormContent($showFields, $modelObject, $fieldsNames, $selectsOptions, $defaultValues); $result .= "<div class='row form-group text-center'>\n\t\t\t\t\t\t<button class='btn btn-success'>{$btnName}</button>\n\n\t\t\t\t\t</div>"; $result .= "</form>"; $result .= $renderer->renderJS(); return $result; }