private string RenderContenedorDeEdicionPie(DescriptorDeTabla tabla)
        {
            var htmlModal = $@"<div id=¨contenedor_edicion_pie_{IdHtml}¨ class=¨{Css.Render(enumCssEdicion.ContenedorDeEdicionPie)}¨>
                                  {htmlRenderPie(tabla)}
                                  {(AbrirEnModal ? "" : HtmlRenderNavegadorDeSeleccionados())}
                               </div>";

            return(htmlModal);
        }
        private static string RenderEtiquetaDelDto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, short i, short j, double ancho)
        {
            if (descriptorControl.atributos.TipoDeControl == enumTipoControl.Check)
            {
                return("");
            }

            return(ControlHtml.RenderEtiqueta($"{tabla.IdHtml}_{i}_{j}_lbl", descriptorControl.atributos.Etiqueta));
        }
        private string RenderContenedorDeEdicionCuerpo(DescriptorDeTabla tabla)
        {
            var htmlExpanes = RenderExpanes();
            var htmlModal   = $@"<div id=¨{tabla.IdHtmlContenedor}¨ class=¨{Css.Render(enumCssEdicion.ContenedorDeEdicionCuerpo)}¨>
                                 {htmlRenderObjetoVacio(tabla)}
                                 {htmlExpanes}
                               </div>";

            return(htmlModal);
        }
        private object htmlRenderPie(DescriptorDeTabla tabla)
        {
            var htmContenedorPie =
                $@"
                   <Div id=¨{IdHtml}¨ class=¨{Css.Render(enumCssEdicion.ContenedorId)}¨>
                     {RenderInputId(tabla)}
                  </Div>
                ";

            return(htmContenedorPie);
        }
        //

        private static string RenderDescriptorControlDto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos             = descriptorControl.atributos;
            var htmdDescriptorControl = "";

            switch (atributos.TipoDeControl)
            {
            case enumTipoControl.Editor:
                htmdDescriptorControl = RenderEditor(tabla, descriptorControl);
                break;

            case enumTipoControl.RestrictorDeEdicion:
                htmdDescriptorControl = RenderRestrictor(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.ListaDeElemento:
                htmdDescriptorControl = RenderListaDeElemento(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.ListaDinamica:
                htmdDescriptorControl = RenderListaDinamica(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.Archivo:
                htmdDescriptorControl = RenderSelectorImagen(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.UrlDeArchivo:
                htmdDescriptorControl = RenderSelectorImagen(tabla, descriptorControl, ancho);
                break;

            case enumTipoControl.Check:
                htmdDescriptorControl = RenderCheck(tabla, descriptorControl);
                break;

            case enumTipoControl.SelectorDeFecha:
                htmdDescriptorControl = RenderSelectorDeFecha(tabla, descriptorControl);
                break;

            case enumTipoControl.SelectorDeFechaHora:
                htmdDescriptorControl = RenderSelectorDeFechaHora(tabla, descriptorControl);
                break;

            case enumTipoControl.AreaDeTexto:
                htmdDescriptorControl = RenderAreaDeTexto(tabla, descriptorControl);
                break;

            default:
                GestorDeErrores.Emitir($"No se ha implementado como renderizar una propiedad del tipo {atributos.TipoDeControl}");
                break;
            }

            return(htmdDescriptorControl);
        }
        private static string RenderSelectorImagen(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos         = descriptorControl.atributos;
            var htmlContenedor    = RenderContenedorDto(descriptorControl, ancho, Css.Render(enumCssControlesDto.ContenedorArchivo));
            var idHtmlBarra       = $"barra-{descriptorControl.IdHtml}";
            var idHtmlImg         = $"img-{descriptorControl.IdHtml}";
            var idHtmlCanva       = $"canvas-{descriptorControl.IdHtml}";
            var idHtmlInfoArchivo = $"nombre-{descriptorControl.IdHtml}";

            var htmlArchivo = @$ "
            <form class=¨{Css.Render(enumCssControlesDto.FormDeArchivo)}¨ method=¨post¨ enctype=¨multipart/form-data¨>
        private static string RenderColumnaParaElDto(DescriptorDeTabla tabla, short i, short j, double anchoColumna)
        {
            var visible = tabla.ObtenerFila(i).ObtenerColumna(j).NumeroControlesVisibles > 0;

            var td = $@"<td id=¨{tabla.IdHtml}_{i}_{j}¨ name=¨td-propiedad¨ class=¨td-propiedad¨ colspan=¨{tabla.ObtenerFila(i).ObtenerColumna(j).ColSpan}¨ style=¨width:{anchoColumna}%; {(visible ? "" : "display:none")}¨>
                         <div id=¨{tabla.IdHtml}_{i}_{j}_celda¨ name=¨div-propiedad¨ class=¨div-propiedad¨>
                              {RenderControlesParaMapearElDto(tabla, i, j)}
                         </div>
                      </td>
                     ";

            return(td);
        }
        private string RenderInputId(DescriptorDeTabla tabla)
        {
            var htmdDescriptorControl = $@"<input id=¨{tabla.IdHtml}_idElemento¨ 
                                             propiedad=¨{nameof(ElementoDto.Id).ToLower()}¨ 
                                             class=¨propiedad propiedad-id¨ 
                                             tipo=¨{enumTipoControl.Editor.Render()}¨ 
                                             type=¨text¨ 
                                             readonly
                                             value=¨¨>
                                           </input >";

            return(htmdDescriptorControl);
        }
        private static string RenderSelectorDeFecha(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorFecha);
            valores["Css"]             = Css.Render(enumCssControlesDto.SelectorDeFecha);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;

            var htmSelectorDeFecha = PlantillasHtml.Render(PlantillasHtml.selectorDeFechaDto, valores);

            return(htmSelectorDeFecha);
        }
        private static string RenderCheck(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"] = Css.Render(enumCssControlesDto.ContenedorCheck);
            valores["Css"]           = Css.Render(enumCssControlesDto.Check);
            valores["Checked"]       = atributos.ValorPorDefecto.ToString().ToLower();
            valores["Etiqueta"]      = atributos.Etiqueta;
            valores["Accion"]        = "";

            var htmlCheck = PlantillasHtml.Render(PlantillasHtml.checkDto, valores);

            return(htmlCheck);
        }
        private static string RenderEditor(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorEditor);
            valores["Css"]             = Css.Render(enumCssControlesDto.Editor);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;
            valores["LongitudMaxima"]  = atributos.LongitudMaxima > 0 ?
                                         $"{Environment.NewLine}maxlength=¨{atributos.LongitudMaxima}¨"
                    : "";

            var htmlEditor = PlantillasHtml.Render(PlantillasHtml.editorDto, valores);

            return(htmlEditor);
        }
        private string RendelModal(DescriptorDeTabla tabla)
        {
            var htmlModal = RenderizarModal(
                idHtml: IdHtml
                , controlador: Crud.Controlador
                , tituloH2: "Edición"
                , cuerpo: RenderContenedorDeEdicionCuerpo(tabla) + RenderContenedorDeEdicionPie(tabla)
                , idOpcion: $"{IdHtml}-modificar"
                , opcion: Crud.NegocioActivo ? "Modificar" : ""
                , accion: Crud.NegocioActivo ? $"Crud.EventosModalDeEdicion('{TipoDeAccionDeEdicion.ModificarElemento}')" : ""
                , cerrar: "Crud.EventosModalDeEdicion('cerrar-modal')"
                , navegador: HtmlRenderNavegadorDeSeleccionados()
                , claseBoton: enumCssOpcionMenu.DeElemento
                , permisosNecesarios: enumModoDeAccesoDeDatos.Gestor);

            return(htmlModal);
        }
        public static string RenderFilaParaElDto(DescriptorDeTabla tabla, short i)
        {
            var fila         = tabla.ObtenerFila(i);
            var htmlColumnas = "";
            var htmlFila     =
                $@"<tr id=¨{fila.IdHtml}¨ name=¨tr_lbl_propiedad¨ class=¨tr-propiedad¨>
                         htmlColumnas
                       </tr>
                      ";

            double anchoColumna = tabla.NumeroDeColumnas == 0 ? 0 : (double)(100 / tabla.NumeroDeColumnas);

            for (short j = 0; j < tabla.NumeroDeColumnas; j++)
            {
                htmlColumnas = htmlColumnas + RenderColumnaParaElDto(tabla, i, j, anchoColumna);
            }
            return(htmlFila.Replace("htmlColumnas", $"{htmlColumnas}"));
        }
        private static string RenderListaDeElemento(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos = descriptorControl.atributos;

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]    = Css.Render(enumCssControlesDto.ContenedorListaDeElementos);
            valores["Css"]              = Css.Render(enumCssControlesDto.ListaDeElementos);
            valores["ClaseElemento"]    = atributos.SeleccionarDe.Name;
            valores["MostrarExpresion"] = atributos.MostrarExpresion.IsNullOrEmpty() ?
                                          ElementoDto.ValorDelAtributo(atributos.SeleccionarDe, nameof(IUDtoAttribute.MostrarExpresion)) :
                                          atributos.MostrarExpresion;
            valores["GuardarEn"] = atributos.GuardarEn;

            var htmlSelect = PlantillasHtml.Render(PlantillasHtml.listaDeElementosDto, valores);

            return(htmlSelect);
        }
        private static string RenderAreaDeTexto(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl)
        {
            var atributos = descriptorControl.atributos;
            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]   = Css.Render(enumCssControlesDto.ContenedorAreaDeTexto);
            valores["Css"]             = Css.Render(enumCssControlesDto.AreaDeTexto);
            valores["Placeholder"]     = atributos.Ayuda;
            valores["ValorPorDefecto"] = atributos.ValorPorDefecto;

            string alto = $"calc({(double)(1.5 * atributos.NumeroDeFilas)}em + .75rem + 2px);".Replace(",", ".");

            valores["Estilos"] = $"{valores["Estilos"]}{$" height: {alto}"}";

            var htmlArea = PlantillasHtml.Render(PlantillasHtml.AreaDeTextoDto, valores);

            return(htmlArea);
        }
        private static string RenderRestrictor(DescriptorDeTabla tabla, DescriptorDeControlDeLaTabla descriptorControl, double ancho)
        {
            var atributos = descriptorControl.atributos;

            if (atributos.MostrarExpresion.IsNullOrEmpty())
            {
                throw new Exception($"no se ha definido el atributo {nameof(atributos.MostrarExpresion)}  para el restrictor de la propiedad {descriptorControl.propiedad}");
            }

            Dictionary <string, object> valores = ValoresDeAtributosComunes(tabla, descriptorControl, atributos);

            valores["CssContenedor"]    = Css.Render(enumCssControlesDto.ContenedorEditor);
            valores["Css"]              = Css.Render(enumCssControlesDto.EditorRestrictor);
            valores["MostrarExpresion"] = atributos.MostrarExpresion.ToLower();
            valores["Placeholder"]      = atributos.Ayuda;
            valores["ValorPorDefecto"]  = atributos.ValorPorDefecto;
            valores["Readonly"]         = "editable=¨N¨ readonly";

            var htmlEditor = PlantillasHtml.Render(PlantillasHtml.restrictorDto, valores);

            return(htmlEditor);
        }
Beispiel #17
0
 public DescriptorDeFila(DescriptorDeTabla descriptorDeTabla, short indice)
 {
     Tabla      = descriptorDeTabla;
     NumeroFila = indice;
 }
Beispiel #18
0
        protected virtual string htmlRenderObjetoVacio(string idHtmlCuerpoDeCreacion)
        {
            var tabla = new DescriptorDeTabla(typeof(TElemento), enumModoDeTrabajo.Nuevo, Crud.Controlador, idHtmlCuerpoDeCreacion);

            var htmlObjeto = @$ "<table id=¨{tabla.IdHtml}¨ 
                                  name=¨table_propiedad¨