/** * //Edita los valores de $this->recurso en memoria (no salva a BD) * @param $datos array * @return true */ public function edit($datos) { $data = array('nombre' => $datos['nombre'], 'tipo' => $datos['tipo'], 'grupo_id' => 0, 'contenedor_id' => $datos['padre_id'], 'descripcion' => $datos['descripcion'], 'id_lugar' => $datos['id_lugar'], 'acl' => sgrACL::buildJsonAcl($datos['modo'], $datos['roles'])); $this->setdatos($data); return true; }
/** * //Edita los valores de $this->recurso en memoria (no salva a BD) * */ public function edit($datos) { $acl = sgrACL::buildJsonAcl($datos['modo'], $datos['roles']); $data = array('nombre' => $datos['nombre'], 'tipo' => $datos['tipo'], 'grupo_id' => $datos['padre_id'], 'contenedor_id' => 0, 'descripcion' => $datos['descripcion'], 'id_lugar' => $datos['id_lugar'], 'acl' => $acl); $this->setdatos($data); foreach ($this->items as $item) { $item->updateAcl($acl); $item->save(); } return true; }
/** * //Añade un nuevo recurso a la base de datos de cualquier tipo (puesto,equipo,espacio y tipoequipos) * // llamadas desde: admin\modalrecursos\add.blade.php * @param Input::get('nombre') string * @param Input::get('descripcion') string * @param Input::get('tipo') string * @param Input::get('id_lugar') string * @param Input::get('contenedor_id') int * @param Input::get('modo') int (0|1) * @param Input::get('roles') array * * @return $result array(boolean,string,array) */ public function AjaxAddNuevoRecurso() { // :) //out $result = array('error' => false, 'msg' => '', 'errors' => array()); //Input $nombre = Input::get('nombre'); $tipo = Input::get('tipo'); //espacio|tipoequipos $contenedor_id = Input::get('contenedor_id', '0'); $modo = Input::get('modo'); //0=gestión con validación, 1=gestión sin validación $descripcion = Input::get('descripcion', ''); $id_lugar = Input::get('id_lugar', ''); $roles = Input::get('roles'); //roles con acceso para poder reservar (array()) $tipopadre = Input::get('tipopadre', ''); //El elemento padre o contenedor de un recurso puede ser un grupo u otro recurso //Validación de formulario $rules = array('nombre' => 'required|unique:recursos,nombre,NULL,id,deleted_at,NULL', 'tipo' => 'required|in:' . implode(',', Config::get('options.recursos')), 'contenedor_id' => 'required', 'modo' => 'required|in:' . implode(',', Config::get('options.modoGestion'))); $messages = array('required' => 'El campo <strong>:attribute</strong> es obligatorio....', 'nombre.unique' => 'Existe un recurso con el mismo nombre...', 'tipo.in' => 'El tipo de recurso no está definido ..', 'modo.in' => 'Modo de Gestión de solicitudes de reserva no definido....', 'contenedor_idexists' => 'Elemento contenedor no encontrado en BD.'); $validator = Validator::make(Input::all(), $rules, $messages); $validator->sometimes('contenedor_idexists', '', function ($input) { if ($input['tipoPadre'] == 'recurso') { return Recurso::findOrFail($input['contenedor_id'])->count() > 0; } if ($input['tipoPadre'] == 'grupo') { return GrupoRecurso::findOrFail($input['contenedor_id'])->count() > 0; } }); if ($validator->fails()) { //Si errores en el formulario $result['error'] = true; $result['errors'] = $validator->errors()->toArray(); } else { if ($tipopadre == 'recurso') { $grupo_id = 0; $contenedor_id = $contenedor_id; } else { if ($tipopadre == 'grupo') { $grupo_id = $contenedor_id; $contenedor_id = 0; } } //Si no hay errores en el formulario $data = array('nombre' => $nombre, 'tipo' => $tipo, 'grupo_id' => $grupo_id, 'contenedor_id' => $contenedor_id, 'descripcion' => $descripcion, 'id_lugar' => $id_lugar, 'acl' => sgrACL::buildJsonAcl($modo, $roles)); $sgrRecurso = Factoria::getRecursoInstance(new Recurso()); $sgrRecurso->setdatos($data); $sgrRecurso->save(); $result['msg'] = (string) View::make('msg.success')->with(array('msg' => Config::get('msg.success'))); } return $result; }