Amélioration export

This commit is contained in:
Lensors 2025-05-03 07:38:54 +02:00
parent db919b8902
commit 0993140ffd
7 changed files with 29 additions and 21 deletions

View File

@ -30,7 +30,7 @@ public class Export extends HttpServlet {
u.chargerPagesPartagees();
ArrayList<Page> listePages = u.getListePages();
listePages.addAll(u.getListePagesPartagees());
Page pageToExport;
try {
int id = Integer.parseInt(idStr);
Boolean estDans = false;
@ -46,7 +46,7 @@ public class Export extends HttpServlet {
return;
}
Page pageToExport = Page.getPageById(u.getId(), id);
pageToExport = Page.getPageById(u.getId(), id);
BlocRenderer blocRenderer;
PageRender pageRender;
String filename;
@ -74,7 +74,7 @@ public class Export extends HttpServlet {
return;
}
String exportContent = pageRender.render(blocRenderer, pageToExport.getListeBlocs());
String exportContent = pageRender.render(blocRenderer, pageToExport.getListeBlocs(), pageToExport.getTitre());
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
response.getWriter().write(exportContent);

View File

@ -3,12 +3,15 @@ package projet;
public class HtmlPageRender implements PageRender {
@Override
public String getHeader() {
public String getHeader(String titrePage) {
return "<!DOCTYPE html>\n"
+ "<html>\n"
+ " <head>\n"
+ " <meta charset=\"UTF-8\">\n"
+ "<title>Page</title>\n"
+ " <title>" + titrePage + "</title>\n"
+ " <script type=\"text/javascript\" async\n"
+ " src=\"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js\"\n>"
+ " </script>"
+ " </head>\n"
+ " <body>\n";
}

View File

@ -3,11 +3,13 @@ package projet;
public class LatexPageRender implements PageRender {
@Override
public String getHeader() {
public String getHeader(String titrePage) {
return "\\documentclass{article}\n"
+ "\\usepackage[utf8]{inputenc}\n"
+ "\\usepackage{hyperref}\n"
+ "\\begin{document}\n";
+ "\\begin{document}\n"
+ "\\title{" + titrePage + "}\n"
+ "\\maketitle\n";
}
@Override

View File

@ -3,7 +3,7 @@ package projet;
public class MarkdownPageRender implements PageRender {
@Override
public String getHeader() {
public String getHeader(String titrePage) {
return "";
}

View File

@ -188,11 +188,11 @@ public class Page extends ParamBD {
ResultSet rs;
try {
Connection connexion = DriverManager.getConnection(bdURL, bdLogin, bdPassword);
sql = " SELECT titre"
sql = " SELECT titre, auteur_id"
+ " FROM page"
+ " WHERE id=? AND auteur_id = ?"
+ " UNION"
+ " SELECT titre"
+ " SELECT titre, NULL AS auteur_id"
+ " FROM partage"
+ " JOIN page ON partage.page_id = page.id"
+ " WHERE partage.utilisateur_id = ?"
@ -208,6 +208,7 @@ public class Page extends ParamBD {
titre = rs.getString("titre");
page.titre = titre;
page.id = id;
page.auteur_id = rs.getInt("auteur_id");
}
if(titre != null) {
sql = " SELECT id, contenu, type, ordre, metadata"

View File

@ -4,12 +4,12 @@ import java.util.List;
public interface PageRender {
String getHeader();
String getHeader(String titrePage);
String getFooter();
default String render(BlocRenderer blocRenderer, List<Bloc> blocs) {
default String render(BlocRenderer blocRenderer, List<Bloc> blocs, String titrePage) {
StringBuilder sb = new StringBuilder();
sb.append(getHeader());
sb.append(getHeader(titrePage));
for (Bloc bloc : blocs) {
sb.append(blocRenderer.render(bloc)).append("\n");
}

View File

@ -77,9 +77,11 @@
data-metadata='${bloc.metadata}'
>${bloc.contenu}</div>
</div>
<c:if test="${ page.auteur_id eq utilisateur.id}">
<div class="control">
<button class="delete is-danger delete-bloc-btn" data-id="${bloc.id}"></button>
</div>
</c:if>
</div>
</c:forEach>
</div>