예제 #1
0
 public ModalDeRelacionarElementos(DescriptorDeMantenimiento <TElemento> mantenimiento, string tituloModal, DescriptorDeCrud <TSeleccionado> crudModal, string propiedadRestrictora)
     : base(padre: mantenimiento
            , id: $"{mantenimiento.Id}-{enumTipoControl.ModalDeRelacion.Render()}-{typeof(TSeleccionado).Name}"
            , etiqueta: tituloModal
            , propiedad: ""
            , ayuda: ""
            , posicion: null)
 {
     CrudModal            = crudModal;
     PropiedadRestrictora = propiedadRestrictora.ToLower();
 }
예제 #2
0
 public ZonaDeDatos(DescriptorDeMantenimiento <TElemento> mnt)
     : base(
         padre: mnt,
         id: $"{mnt.Id}_Grid",
         etiqueta: null,
         propiedad: null,
         ayuda: null,
         posicion: null
         )
 {
     Tipo = enumTipoControl.ZonaDeDatos;
     Grid = new Grid <TElemento>(this);
 }
예제 #3
0
 public ZonaDeMenu(DescriptorDeMantenimiento <TElemento> mnt)
     : base(
         padre: mnt,
         id: $"{mnt.Id}_{enumTipoControl.ZonaDeMenu.Render()}",
         etiqueta: null,
         propiedad: null,
         ayuda: null,
         posicion: null
         )
 {
     Menu = new Menu <TElemento>(this);
     Tipo = enumTipoControl.ZonaDeMenu;
 }
        internal static void AnadirOpciondeRelacion(DescriptorDeMantenimiento <TElemento> Mnt, string controlador, string vista, string relacionarCon, string navegarAlCrud, string nombreOpcion, string propiedadQueRestringe, string propiedadRestrictora, string ayuda)
        {
            var accionDeRelacion = new AccionDeRelacionarElemenetos(
                urlDelCrud: $@"/{controlador.Replace("Controller", "")}/{vista}?origen=relacion"
                , relacionarCon: relacionarCon
                , nombreDelMnt: navegarAlCrud
                , propiedadQueRestringe: propiedadQueRestringe
                , propiedadRestrictora: propiedadRestrictora
                , ayuda);

            var opcion = new OpcionDeMenu <TElemento>(menu: Mnt.ZonaMenu.Menu, accion: accionDeRelacion, tipoAccion: TipoDeLlamada.Post, titulo: $"{nombreOpcion}", enumModoDeAccesoDeDatos.Gestor, enumCssOpcionMenu.DeElemento);

            Mnt.ZonaMenu.Menu.Add(opcion);
        }
        internal static OpcionDeMenu <TElemento> AnadirOpcionDeDependencias(DescriptorDeMantenimiento <TElemento> Mnt, string controlador, string vista, string datosDependientes, string navegarAlCrud, string nombreOpcion, string propiedadQueRestringe, string propiedadRestrictora, string ayuda)
        {
            var accionDeDependencias = new AccionDeGetionarDatosDependientes(
                urlDelCrud: $@"/{controlador.Replace("Controller", "")}/{vista}?origen=dependencia"
                , datosDependientes: datosDependientes
                , nombreDelMnt: navegarAlCrud
                , propiedadQueRestringe: propiedadQueRestringe
                , propiedadRestrictora: propiedadRestrictora
                , ayuda);

            var opcion = new OpcionDeMenu <TElemento>(menu: Mnt.ZonaMenu.Menu, accion: accionDeDependencias, tipoAccion: TipoDeLlamada.Post, titulo: $"{nombreOpcion}", enumModoDeAccesoDeDatos.Consultor, enumCssOpcionMenu.DeElemento);

            Mnt.ZonaMenu.Menu.Add(opcion);
            return(opcion);
        }
        public DescriptorDeCrud(ContextoSe contexto, string controlador, string vista, ModoDescriptor modo, string rutaBase, string id = null)
            : base(
                padre: null,
                id: id == null ? $"{NombreCrud}" : id,
                etiqueta: typeof(TElemento).Name.Replace("Dto", ""),
                propiedad: null,
                ayuda: null,
                posicion: null
                )
        {
            var elemento = typeof(TElemento).Name.Replace("Dto", "");

            RutaBase    = rutaBase;
            Tipo        = enumTipoControl.DescriptorDeCrud;
            Mnt         = new DescriptorDeMantenimiento <TElemento>(crud: this, etiqueta: elemento);
            Controlador = controlador.Replace("Controller", "");
            Vista       = $@"{vista}";
            Contexto    = contexto;
            Modo        = modo;

            DefinirColumnasDelGrid();

            Creador    = new DescriptorDeCreacion <TElemento>(crud: this, etiqueta: elemento);
            Editor     = new DescriptorDeEdicion <TElemento>(crud: this, etiqueta: elemento);
            Exportador = new DescriptorDeExportacion <TElemento>(crud: this);
            if (modo == ModoDescriptor.Mantenimiento)
            {
                Mnt.ZonaMenu.AnadirOpcionDeIrACrear();
                Mnt.ZonaMenu.AnadirOpcionDeIrAEditar();
                Mnt.ZonaMenu.AnadirOpcionDeIrAExportar();
                if (GestorDeCorreos.PermiteElEnvioDeCorreo <TElemento>())
                {
                    Cartero = new DescriptorDeEnviarCorreo <TElemento>(crud: this);
                    Mnt.ZonaMenu.AnadirOpcionDeEnviareMail();
                }
                Borrado = new DescriptorDeBorrado <TElemento>(crud: this, etiqueta: elemento);
                Mnt.ZonaMenu.AnadirOpcionDeBorrar();

                DefinirDescriptorDeAuditoria();
            }
        }
예제 #7
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);
            }
        }