/** * * * A FINIR : * BUG DETECTE : LE DERNIER CHECKBOX DE LA PAGE CONTACT NE VEUT PAS REMONTER /!\ * * @param [type] $formId [description] * @param [type] $inputId [description] * @param [type] $direction [description] * @return [type] [description] */ public function move($formId, $inputId, $direction) { $form = Formr::findOrFail($formId); $input = FormMap::where('input_id', $inputId)->firstOrFail(); if ($direction == "up") { if ($input->order > 1) { // Récupere le précédent $prevInput = FormMap::where('form_id', $formId)->where('order', $input->order - 1)->firstOrFail(); // On descend le suivant $prevInput->order = $input->order; $prevInput->save(); // Et on remonte celui qu'on veut remonter $input->order = $input->order - 1; $input->save(); return Redirect::back()->with('success', "L'ordre a été changé"); } else { return Redirect::back()->with('error', "Cet Input est déjà au plus haut"); } } else { // Récupere le suivant $nextInput = FormMap::where('form_id', $formId)->where('order', $input->order + 1)->firstOrFail(); // On remonte le suivant $nextInput->order = $input->order; $nextInput->save(); // Et on descend celui qu'on veut descendre $input->order = $input->order + 1; $input->save(); return Redirect::back()->with('success', "L'ordre a été changé"); } $this->data['params']['formId'] = $formId; }
/** * Genere le nouveau mappage et retourne l'order pour le nouvel input * @param Object $form * @return Integer */ public static function mapping($form) { $lastInputMap = FormMap::join('inputs', 'inputs.id', '=', 'form_maps.input_id')->join('views', 'views.id', '=', 'inputs.view_id')->where('form_maps.form_id', $form->id)->where('views.name', 'submit')->first(); if (!$lastInputMap) { $lastInputMap = FormMap::where('form_id', $form->id)->orderBy('order', 'DESC')->first(); $lastOrder = isset($lastInputMap) ? $lastInputMap->order + 1 : 1; } else { // On set l'odre du submit pour le nouveau input $lastOrder = $lastInputMap->order; // et on descend l'ordre su submit d'un cran pour qu'il reste en bas par défault $lastInputMap->order = $lastInputMap->order + 1; $lastInputMap->save(); } return $lastOrder; }