예제 #1
0
 public void AnadirBloque(BloqueDeFitro <TElemento> bloque)
 {
     if (!EstaElBloqueAnadido(bloque.Etiqueta))
     {
         Bloques.Add(bloque);
     }
 }
        public ListasDinamicas(BloqueDeFitro <TElemento> bloque
                               , string etiqueta
                               , string filtrarPor
                               , string ayuda
                               , string seleccionarDe
                               , string buscarPor
                               , string mostrarExpresion
                               , CriteriosDeFiltrado criterioDeBusqueda
                               , Posicion posicion
                               , string controlador
                               , string restringirPor = ""
                               , string alSeleccionarBlanquearControl = "")
            : base(
                padre: bloque
                , id: $"{bloque.Id}_{enumTipoControl.ListaDeElemento.Render()}_{filtrarPor}"
                , etiqueta
                , propiedad: filtrarPor
                , ayuda
                , posicion
                )
        {
            SeleccionarDe    = seleccionarDe;
            FiltrarPor       = filtrarPor;
            BuscarPor        = buscarPor;
            MostrarExpresion = mostrarExpresion;

            Tipo     = enumTipoControl.ListaDinamica;
            Criterio = criterioDeBusqueda;
            bloque.AnadirSelectorElemento(this);
            RestringidoPor = restringirPor;
            Controlador    = controlador.Replace("Controller", "");
            AlSeleccionarBlanquearControl = alSeleccionarBlanquearControl;
        }
        public DescriptorDeMenu(ContextoSe contexto, ModoDescriptor modo)
            : base(contexto: contexto
                   , controlador: nameof(MenusController)
                   , vista: nameof(MenusController.CrudMenu)
                   , modo: modo
                   , rutaBase: "Entorno")
        {
            var fltEspecificos = new BloqueDeFitro <MenuDto>(filtro: Mnt.Filtro, titulo: "Específico", dimension: new Dimension(1, 2));

            new ListasDinamicas <MenuDto>(bloque: fltEspecificos,
                                          etiqueta: "Menu padre",
                                          filtrarPor: nameof(MenuDto.idPadre),
                                          ayuda: "seleccionar padre",
                                          seleccionarDe: nameof(MenuDto),
                                          buscarPor: nameof(MenuDto.Nombre),
                                          mostrarExpresion: $"[{nameof(MenuDto.Padre)}].[{nameof(MenuDto.Nombre)}]",
                                          criterioDeBusqueda: ModeloDeDto.CriteriosDeFiltrado.contiene,
                                          posicion: new Posicion()
            {
                fila = 0, columna = 0
            },
                                          controlador: nameof(MenusController),
                                          restringirPor: "");

            new CheckFiltro <MenuDto>(bloque: fltEspecificos,
                                      etiqueta: "Mostrar las activas",
                                      filtrarPor: nameof(MenuDto.Activo),
                                      ayuda: "Sólo las activos",
                                      valorInicial: false,
                                      filtrarPorFalse: false,
                                      posicion: new Posicion(0, 1));
        }
예제 #4
0
 public FiltroEntreFechas(BloqueDeFitro <TElemento> bloque, string etiqueta, string propiedad, string ayuda, Posicion posicion)
     : base(bloque, $"{bloque.Id}-{propiedad}", etiqueta, propiedad, ayuda, posicion)
 {
     Tipo     = Enumerados.enumTipoControl.FiltroEntreFechas;
     Criterio = CriteriosDeFiltrado.entreFechas;
     bloque.Tabla.Dimension.CambiarDimension(posicion);
     bloque.AnadirControlEn(this);
 }
        public DescriptorDePermiso(ContextoSe contexto, ModoDescriptor modo)
            : base(contexto: contexto
                   , controlador: nameof(PermisosController), vista: nameof(PermisosController.CrudPermiso), modo: modo, "Seguridad")
        {
            if (modo == ModoDescriptor.Mantenimiento)
            {
                var modalUsuario   = new DescriptorDeUsuario(contexto, ModoDescriptor.SeleccionarParaFiltrar);
                var fltGeneral     = Mnt.Filtro.ObtenerBloquePorEtiqueta(ltrBloques.General);
                var fltEspecificos = new BloqueDeFitro <PermisoDto>(filtro: Mnt.Filtro, titulo: "Específico", dimension: new Dimension(1, 2));

                new SelectorDeFiltro <PermisoDto, UsuarioDto>(padre: fltGeneral,
                                                              etiqueta: "Usuario",
                                                              filtrarPor: UsuariosPor.AlgunUsuario,
                                                              ayuda: "Seleccionar usuario",
                                                              posicion: new Posicion()
                {
                    fila = 0, columna = 1
                },
                                                              paraFiltrar: nameof(UsuarioDto.Id),
                                                              paraMostrar: nameof(UsuarioDto.NombreCompleto),
                                                              crudModal: modalUsuario,
                                                              propiedadDondeMapear: UsuariosPor.NombreCompleto.ToString());

                new ListaDeElemento <PermisoDto>(padre: fltEspecificos,
                                                 etiqueta: "Clase de permiso",
                                                 ayuda: "selecciona una clase",
                                                 seleccionarDe: nameof(ClasePermisoDto),
                                                 filtraPor: nameof(PermisoDto.IdClase),
                                                 mostrarExpresion: ClasePermisoDto.MostrarExpresion,
                                                 posicion: new Posicion()
                {
                    fila = 0, columna = 0
                });

                new ListaDeElemento <PermisoDto>(padre: fltEspecificos,
                                                 etiqueta: "Tipo de permiso",
                                                 ayuda: "selecciona un tipo",
                                                 seleccionarDe: nameof(TipoPermisoDto),
                                                 filtraPor: nameof(PermisoDto.IdTipo),
                                                 mostrarExpresion: nameof(TipoPermisoDto.Nombre),
                                                 posicion: new Posicion()
                {
                    fila = 1, columna = 0
                });

                AnadirOpciondeRelacion(Mnt
                                       , controlador: nameof(RolesDeUnPermisoController)
                                       , vista: nameof(RolesDeUnPermisoController.CrudRolesDeUnPermiso)
                                       , relacionarCon: nameof(RolDto)
                                       , navegarAlCrud: DescriptorDeMantenimiento <RolesDeUnPermisoDto> .NombreMnt
                                       , nombreOpcion: "Roles"
                                       , propiedadQueRestringe: nameof(PermisoDto.Id)
                                       , propiedadRestrictora: nameof(PermisosDeUnRolDto.IdPermiso)
                                       , "Añadir roles al permiso seleccionado");
            }
        }
 public RestrictorDeFiltro(BloqueDeFitro <TElemento> bloque, string etiqueta, string propiedad, string ayuda, Posicion posicion)
     : base(padre: bloque
            , id: $"{bloque.Id}-{propiedad}"
            , etiqueta
            , propiedad
            , ayuda
            , posicion
            )
 {
     Tipo     = enumTipoControl.RestrictorDeFiltro;
     Criterio = CriteriosDeFiltrado.igual;
     bloque.Tabla.Dimension.CambiarDimension(posicion);
     bloque.AnadirControlEn(this);
 }
 public EditorFiltro(BloqueDeFitro <TElemento> bloque, string etiqueta, string propiedad, string ayuda, Posicion posicion)
     : base(padre: bloque
            , id: $"{bloque.Id}_{enumTipoControl.Editor.Render()}_{propiedad}"
            , etiqueta
            , propiedad
            , ayuda
            , posicion
            )
 {
     Tipo     = enumTipoControl.Editor;
     Criterio = CriteriosDeFiltrado.contiene;
     bloque.Tabla.Dimension.CambiarDimension(posicion);
     bloque.AnadirControlEn(this);
 }
        //string etiqueta, string filtrarPor, string ayuda, string seleccionarDe, string buscarPor, string mostrarExpresion, CriteriosDeFiltrado criterioDeBusqueda, Posicion posicion)

        public ListaDeValores(BloqueDeFitro <TElemento> padre, string etiqueta, string ayuda, Dictionary <string, string> opciones, string filtraPor, Posicion posicion)
            : base(
                padre: padre
                , id: $"{padre.Id}_{enumTipoControl.ListaDeValores.Render()}_{filtraPor}"
                , etiqueta: etiqueta
                , filtraPor
                , ayuda: ayuda
                , posicion
                )
        {
            Tipo     = enumTipoControl.ListaDeValores;
            Opciones = opciones;
            padre.AnadirLista(this);
        }
 public CheckDeAccionFlt(BloqueDeFitro <TElemento> bloque, string id, string etiqueta, string ayuda, bool valorInicial, Posicion posicion, string accion)
     : base(padre: bloque
            , id: id
            , etiqueta
            , ""
            , ayuda
            , posicion
            )
 {
     Tipo = enumTipoControl.Check;
     bloque.Tabla.Dimension.CambiarDimension(posicion);
     bloque.AnadirControlEn(this);
     ValorInicial = valorInicial;
     Accion       = accion;
 }
        //string etiqueta, string filtrarPor, string ayuda, string seleccionarDe, string buscarPor, string mostrarExpresion, CriteriosDeFiltrado criterioDeBusqueda, Posicion posicion)

        public ListaDeElemento(BloqueDeFitro <TElemento> padre, string etiqueta, string ayuda, string seleccionarDe, string filtraPor, string mostrarExpresion, Posicion posicion)
            : base(
                padre: padre
                , id: $"{padre.Id}_{enumTipoControl.ListaDeElemento.Render()}_{filtraPor}"
                , etiqueta: etiqueta
                , filtraPor
                , ayuda: ayuda
                , posicion
                )
        {
            Tipo             = enumTipoControl.ListaDeElemento;
            SeleccionarDe    = seleccionarDe;
            MostrarExpresion = mostrarExpresion;
            padre.AnadirSelectorElemento(this);
        }
예제 #11
0
 public CheckFiltro(BloqueDeFitro <TElemento> bloque, string etiqueta, string filtrarPor, string ayuda, bool valorInicial, bool filtrarPorFalse, Posicion posicion, string accion = null)
     : base(padre: bloque
            , id: $"{bloque.Id}_{enumTipoControl.Check.Render()}_{filtrarPor}"
            , etiqueta
            , filtrarPor
            , ayuda
            , posicion
            )
 {
     Tipo     = enumTipoControl.Check;
     Criterio = CriteriosDeFiltrado.igual;
     bloque.Tabla.Dimension.CambiarDimension(posicion);
     bloque.AnadirControlEn(this);
     ValorInicial = valorInicial;
     Accion       = accion;
 }
 public SelectorDeFiltro(BloqueDeFitro <TElemento> padre, string etiqueta, string filtrarPor, string ayuda, Posicion posicion, string paraFiltrar, string paraMostrar, DescriptorDeCrud <TSeleccionado> crudModal, string propiedadDondeMapear)
     : base(
         padre: padre
         , id: $"{padre.Id}_{enumTipoControl.SelectorDeFiltro.Render()}_{filtrarPor}"
         , etiqueta
         , filtrarPor
         , ayuda
         , posicion
         )
 {
     Tipo = enumTipoControl.SelectorDeFiltro;
     propiedadParaFiltrar = paraFiltrar.ToLower();
     propiedadParaMostrar = paraMostrar.ToLower();
     Modal                = new ModalDeSeleccionDeFiltro <TElemento, TSeleccionado>(this, crudModal);
     Criterio             = CriteriosDeFiltrado.igual;
     CrudModal            = crudModal;
     PropiedadDondeMapear = propiedadDondeMapear;
     padre.AnadirSelector(this);
 }
예제 #13
0
        public DescriptorDeRol(ContextoSe contexto, ModoDescriptor modo)
            : base(contexto: contexto
                   , nameof(RolController), nameof(RolController.CrudRol), modo, "Seguridad")
        {
            AnadirOpciondeRelacion(Mnt
                                   , controlador: nameof(PuestosDeUnRolController)
                                   , vista: nameof(PuestosDeUnRolController.CrudPuestosDeUnRol)
                                   , relacionarCon: nameof(PuestoDto)
                                   , navegarAlCrud: DescriptorDeMantenimiento <PuestosDeUnRolDto> .NombreMnt
                                   , nombreOpcion: "Puestos"
                                   , propiedadQueRestringe: nameof(RolDto.Id)
                                   , propiedadRestrictora: nameof(PuestosDeUnRolDto.IdRol)
                                   , "Incluir el rol a los puestos seleccionados");

            AnadirOpciondeRelacion(Mnt
                                   , controlador: nameof(PermisosDeUnRolController)
                                   , vista: nameof(PermisosDeUnRolController.CrudPermisosDeUnRol)
                                   , relacionarCon: nameof(PermisoDto)
                                   , navegarAlCrud: DescriptorDeMantenimiento <PermisosDeUnRolDto> .NombreMnt
                                   , nombreOpcion: "Permisos"
                                   , propiedadQueRestringe: nameof(RolDto.Id)
                                   , propiedadRestrictora: nameof(PermisosDeUnRolDto.IdRol)
                                   , "Añadir permisos al rol seleccionado");


            var bloque = new BloqueDeFitro <RolDto>(filtro: Mnt.Filtro, titulo: "Específico", dimension: new Dimension(1, 2));

            new ListasDinamicas <RolDto>(bloque: bloque,
                                         etiqueta: "Permisos asociado",
                                         filtrarPor: nameof(PermisosDeUnRolDto.IdPermiso),
                                         ayuda: "roles con el permiso",
                                         seleccionarDe: nameof(PermisoDto),
                                         buscarPor: nameof(PermisoDto.Nombre),
                                         mostrarExpresion: nameof(PermisoDto.Nombre),
                                         criterioDeBusqueda: CriteriosDeFiltrado.contiene,
                                         posicion: new Posicion(1, 0),
                                         controlador: nameof(PermisosController),
                                         restringirPor: "").LongitudMinimaParaBuscar = 3;
        }
        public DescriptorDeUsuario(ContextoSe contexto, ModoDescriptor modo, string id)
            : base(contexto,
                   controlador: nameof(UsuariosController)
                   , vista: $"{nameof(UsuariosController.CrudUsuario)}"
                   , modo: modo
                   , rutaBase: "Entorno"
                   , id)
        {
            if (modo == ModoDescriptor.Mantenimiento)
            {
                var bloque = new BloqueDeFitro <UsuarioDto>(filtro: Mnt.Filtro, titulo: "Específico", dimension: new Dimension(3, 2));
                new SelectorDeFiltro <UsuarioDto, PermisoDto>(
                    padre: bloque,
                    etiqueta: "Permiso",
                    filtrarPor: UsuariosPor.Permisos,
                    ayuda: "Seleccionar Permiso",
                    posicion: new Posicion(0, 0),
                    paraFiltrar: nameof(PermisoDto.Id),
                    paraMostrar: nameof(PermisoDto.Nombre),
                    crudModal: new DescriptorDePermiso(Contexto, ModoDescriptor.SeleccionarParaFiltrar),
                    propiedadDondeMapear: ltrFiltros.Nombre.ToString());

                new ListasDinamicas <UsuarioDto>(bloque: bloque,
                                                 etiqueta: "Puesto de trabajo",
                                                 filtrarPor: nameof(PuestosDeUnUsuarioDto.IdPuesto),
                                                 ayuda: "usuarios de este puesto",
                                                 seleccionarDe: nameof(PuestoDto),
                                                 buscarPor: nameof(PuestoDto.Nombre),
                                                 mostrarExpresion: nameof(PuestoDto.Nombre),
                                                 criterioDeBusqueda: CriteriosDeFiltrado.contiene,
                                                 posicion: new Posicion(1, 0),
                                                 controlador: nameof(PuestoDeTrabajoController),
                                                 restringirPor: "").LongitudMinimaParaBuscar = 1;


                new ListasDinamicas <UsuarioDto>(bloque: bloque,
                                                 etiqueta: "Roles",
                                                 filtrarPor: nameof(RolesDeUnPuestoDto.IdRol),
                                                 ayuda: "usuarios de un rol",
                                                 seleccionarDe: nameof(RolDto),
                                                 buscarPor: nameof(RolDto.Nombre),
                                                 mostrarExpresion: nameof(RolDto.Nombre),
                                                 criterioDeBusqueda: CriteriosDeFiltrado.contiene,
                                                 posicion: new Posicion(2, 0),
                                                 controlador: nameof(RolController),
                                                 restringirPor: "").LongitudMinimaParaBuscar = 1;



                new ListasDinamicas <UsuarioDto>(bloque: bloque,
                                                 etiqueta: "Permisos",
                                                 filtrarPor: nameof(PermisosDeUnUsuarioDto.IdPermiso),
                                                 ayuda: "permisos de un usuario",
                                                 seleccionarDe: nameof(PermisoDto),
                                                 buscarPor: nameof(PermisoDto.Nombre),
                                                 mostrarExpresion: nameof(PermisoDto.Nombre),
                                                 criterioDeBusqueda: CriteriosDeFiltrado.comienza,
                                                 posicion: new Posicion(3, 0),
                                                 controlador: nameof(PermisosController),
                                                 restringirPor: "").LongitudMinimaParaBuscar = 3;
            }
            BuscarControlEnFiltro(ltrFiltros.Nombre).CambiarAtributos("Usuario", UsuariosPor.NombreCompleto, "Buscar por 'apellido, nombre'");

            var modalDePermisos = new ModalDeConsultaDeRelaciones <UsuarioDto, PermisosDeUnUsuarioDto>(mantenimiento: Mnt
                                                                                                       , tituloModal: "Permisos de un usuario"
                                                                                                       , crudModal: new DescriptorDePermisosDeUnUsuario(Contexto, ModoDescriptor.Consulta)
                                                                                                       , propiedadRestrictora: nameof(PermisosDeUnUsuarioDto.IdUsuario));

            var mostrarPermisos = new ConsultarRelaciones(modalDePermisos.IdHtml, () => modalDePermisos.RenderControl(), "Mostrar los permisos de un usuario");
            var opcion          = new OpcionDeMenu <UsuarioDto>(Mnt.ZonaMenu.Menu, mostrarPermisos, $"Permisos", enumModoDeAccesoDeDatos.Consultor);

            Mnt.ZonaMenu.Menu.Add(opcion);

            AnadirOpciondeRelacion(Mnt
                                   , controlador: nameof(PuestosDeUnUsuarioController)
                                   , vista: nameof(PuestosDeUnUsuarioController.CrudPuestosDeUnUsuario)
                                   , relacionarCon: nameof(PuestoDto)
                                   , navegarAlCrud: DescriptorDeMantenimiento <PuestosDeUnUsuarioDto> .NombreMnt
                                   , nombreOpcion: "Puestos"
                                   , propiedadQueRestringe: nameof(UsuarioDto.Id)
                                   , propiedadRestrictora: nameof(PuestosDeUnUsuarioDto.IdUsuario)
                                   , "Añadir puestos al usuario seleccionado");

            Mnt.OrdenacionInicial = @$ "{nameof(UsuarioDto.NombreCompleto)}:nombre:{enumModoOrdenacion.ascendente.Render()}";
        }
예제 #15
0
        public ZonaDeFiltro(DescriptorDeMantenimiento <TElemento> mnt)
            : base(
                padre: mnt,
                id: $"{mnt.Id}_Filtro",
                etiqueta: null,
                propiedad: null,
                ayuda: null,
                posicion: null
                )
        {
            Tipo = enumTipoControl.ZonaDeFiltro;
            var b1 = new BloqueDeFitro <TElemento>(this, ltrBloques.General, new Dimension(1, 2));
            var b2 = new BloqueDeFitro <TElemento>(this, ltrBloques.Comun, new Dimension(2, 2));

            b1.Plegado     = true;
            FiltroDeNombre = new EditorFiltro <TElemento>(bloque: b1, etiqueta: nameof(INombre.Nombre), propiedad: ltrFiltros.Nombre, ayuda: "buscar por nombre", new Posicion {
                fila = 0, columna = 0
            });

            if (ExtensionesDto.ImplementaAuditoria(typeof(TElemento)))
            {
                var modalCreador = new DescriptorDeUsuario(mnt.Crud.Contexto, ModoDescriptor.SeleccionarParaFiltrar, "modal_creador");
                new SelectorDeFiltro <TElemento, UsuarioDto>(padre: b2,
                                                             etiqueta: "Creador",
                                                             filtrarPor: nameof(ElementoDtm.IdUsuaCrea),
                                                             ayuda: "Usuario creador",
                                                             posicion: new Posicion()
                {
                    fila = 1, columna = 0
                },
                                                             paraFiltrar: nameof(UsuarioDto.Id),
                                                             paraMostrar: nameof(UsuarioDto.NombreCompleto),
                                                             crudModal: modalCreador,
                                                             propiedadDondeMapear: UsuariosPor.NombreCompleto.ToString());

                new FiltroEntreFechas <TElemento>(bloque: b2,
                                                  etiqueta: "Creado entre",
                                                  propiedad: nameof(ElementoDtm.FechaCreacion),
                                                  ayuda: "filtrar por rango de fechas",
                                                  posicion: new Posicion()
                {
                    fila = 1, columna = 1
                });

                var modalModificador = new DescriptorDeUsuario(mnt.Crud.Contexto, ModoDescriptor.SeleccionarParaFiltrar, "modal_modificador");
                new SelectorDeFiltro <TElemento, UsuarioDto>(padre: b2,
                                                             etiqueta: "Modificador",
                                                             filtrarPor: nameof(ElementoDtm.IdUsuaModi),
                                                             ayuda: "Usuario modificador",
                                                             posicion: new Posicion()
                {
                    fila = 2, columna = 0
                },
                                                             paraFiltrar: nameof(UsuarioDto.Id),
                                                             paraMostrar: nameof(UsuarioDto.NombreCompleto),
                                                             crudModal: modalModificador,
                                                             propiedadDondeMapear: UsuariosPor.NombreCompleto.ToString());

                new FiltroEntreFechas <TElemento>(bloque: b2,
                                                  etiqueta: "Modificado entre",
                                                  propiedad: nameof(ElementoDtm.FechaModificacion),
                                                  ayuda: "filtrar por rango de fechas",
                                                  posicion: new Posicion()
                {
                    fila = 2, columna = 1
                });

                var idAudtCreacion = $"{b2.Id}_{enumTipoControl.Check.Render()}_auditoria-de-creacion";
                var accionCreacion = $"onclick = javascript:Crud.{GestorDeEventos.EventosDelMantenimiento}('{TipoDeAccionDeMnt.OcultarMostrarColumnas}','{nameof(IAuditadoDto.CreadoEl)}#{nameof(IAuditadoDto.Creador)}');";
                new CheckDeAccionFlt <TElemento>(bloque: b2,
                                                 id: idAudtCreacion,
                                                 etiqueta: "Auditoría de creación",
                                                 ayuda: "muestra la fecha y usuario de creación",
                                                 valorInicial: false,
                                                 posicion: new Posicion(3, 0),
                                                 accion: accionCreacion);

                var idAudtModificacion = $"{b2.Id}_{enumTipoControl.Check.Render()}_auditoria-de-modificacion";
                var accionModificacion = $"onclick = javascript:Crud.{GestorDeEventos.EventosDelMantenimiento}('{TipoDeAccionDeMnt.OcultarMostrarColumnas}','{nameof(IAuditadoDto.ModificadoEl)}#{nameof(IAuditadoDto.Modificador)}');";
                new CheckDeAccionFlt <TElemento>(bloque: b2,
                                                 id: idAudtModificacion,
                                                 etiqueta: "Auditoría de modificación",
                                                 ayuda: "muestra la última fecha y usuario de modificación",
                                                 valorInicial: false,
                                                 posicion: new Posicion(3, 1),
                                                 accion: accionModificacion);
            }
        }