Ejemplo n.º 1
0
        public string toHTML(List<Propuesta> props, Grupo g, string email, int width, eModo modo)
        {
            string ret = "";
            this.modo = modo;
            this.grupo = g;

            //reinicio el modelo
            errores.Clear();
            crearVariables();
            consensoAlcanzado = false;

            bool tieneFlores = false;
            Usuario u = g.getUsuario(email);
            if (u != null) tieneFlores = u.floresDisponibles().Count > 0;

            //ordeno las propuestas por nivel
            props.Sort();

            if (modo == eModo.consenso)
            {
                //header HTML
                ret += "<html>";
                ret += "<head>";
                ret += "<title></title>";
                ret += "<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />";
                ret += "<link rel='stylesheet' type='text/css' href='styles.css'>";
                ret += "</head>";
                ret += "<body>";
            }

            //todo el documento
            for (int q = 1; q <= niveles; q++)
            {
                Propuesta prop = getProp(q, props);
                bool editar = (prop == null && tieneFlores && modo != eModo.prevista && modo != eModo.consenso)
                    || (prop != null && prop.esPrevista() && (modo == eModo.revisar || modo == eModo.editar));

                if (prop != null && prop.consensoAlcanzado) consensoAlcanzado = true;

                //veo si falta la propuesta anterior (se ha saltado una)
                if (prop != null && q > 1 && getProp(q - 1, props) == null)
                {
                    //se ha saltado una propuesta
                    addError(q, "Las propuestas deben completarse por niveles correlativos, te has saltado el nivel anterior."); //esto evita que pueda proponer
                }

                ret += "<table style='width: " + (width - 10) + "px;'>";
                //mensaje de nivel
                if (q > 1 && modo != eModo.consenso)
                {
                    ret += "<tr>";
                    ret += "<td><hr></td>";
                    ret += "<td><span style='color:gray;font-size:10px;'>" + tr("Nivel en el arbol:") + " " + q + "</span></td>";
                    ret += "</tr>";
                }

                ret += "<tr>";
                //contenido de la propuesta
                int contenidoWidth = modo == eModo.consenso ? width : width - 340;
                ret += "<td ";
                ret += "style='width: " + contenidoWidth + "px;vertical-align:top;' ";
                if (editar && !consensoAlcanzado)
                    ret += "class='editar'";
                ret += ">";
                ret += toHTMLContenido(q, prop, g, email, contenidoWidth);
                ret += "    </td>";

                //comentarios
                if (modo != eModo.consenso)
                {
                    if (prop != null && !prop.esPrevista())
                    {
                        //se puede comentar
                        ret += "<td id='comentarios" + prop.nodoID + "' style='width: " + 250 + "px;vertical-align:top;' class='comentarios'>";
                        ret += toHTMLComentarios(q, prop, g, email, 246, !consensoAlcanzado);
                        ret += "</td>";
                    }
                    else
                    {
                        ret += "<td style='width: " + (250) + "px;vertical-align:top;' >";
                        ret += "</td>";
                    }
                }
                ret += "</tr>";
                ret += "</table>";
            }

            //botones de poantalla o firma de consenso
            ret += "<br>";
            if (modo == eModo.consenso)
            {
                //firma
                ret += firmaConsenso;
                ret += "</body>";
                firmaConsenso = ""; //por las dudas
            }
            else if (modo == eModo.editar)
            {
                //modo muestra
                if (consensoAlcanzado)
                    ret += "<div class='comentario'><b>" + tr("Consenso alcanzado") + "</b></div><br>";

                ret += "<input type='button' class='btn' value='" + tr("Cerrar") + "' onclick='doCerrarDocumento();' />";

                if (tieneFlores && !consensoAlcanzado)
                    ret += "<input type='button' class='btn' value='" + tr("Prevista de propuesta") + "' title='" + tr("Enseña vista previa antes de proponer") + "' onclick='doPrevista();' />";

            }
            else if (modo == eModo.prevista)
            {
                ret += "<input type='button' class='btn' value='" + tr("Cancelar") + "' onclick='doCerrarDocumento();' />";
                ret += "<input type='button' class='btn' value='" + tr("Revisar propuesta") + "' title='" + tr("Permite corregir errores") + "' onclick='doRevisar();' />";
                if (!hayError() && props[props.Count - 1].esPrevista())
                    //permito crear
                    //tiene que haber almenos una propuesa nueva para poder crear algo
                    ret += "<input type='button' class='btn' value='" + tr("Crear propuesta") + "' title='" + tr("Crea la propuesta") + "' onclick='doProponer();' />";
            }
            else if (modo == eModo.revisar)
            {
                //permito prevista
                ret += "<input type='button' class='btn' value='" + tr("Cancelar") + "' onclick='doCerrarDocumento();' />";
                if (tieneFlores && !consensoAlcanzado)
                    ret += "<input type='button' class='btn' value='" + tr("Prevista de propuesta") + "' title='" + tr("Enseña vista previa antes de proponer") + "' onclick='doPrevista();' />";
            }

            //ret += "<a id='btnDownload' href='' target='_blank'><font size='1'>Descargar esta versi&oacute;n</font></a>";
            return ret;
        }
Ejemplo n.º 2
0
 public string toHTML(Propuesta prop, Grupo g, string email, int width, eModo modo)
 {
     string ret = "";
     this.modo = modo;
     this.grupo = g;
     ret += toHTMLContenido(prop.nivel, prop, g, email, width);
     ret += "<br>Comentarios:";
     ret += toHTMLComentarios(prop.nivel, prop, g, email, width - 30, false);
     return ret;
 }