Amélioration export
This commit is contained in:
parent
db919b8902
commit
0993140ffd
|
|
@ -30,7 +30,7 @@ public class Export extends HttpServlet {
|
||||||
u.chargerPagesPartagees();
|
u.chargerPagesPartagees();
|
||||||
ArrayList<Page> listePages = u.getListePages();
|
ArrayList<Page> listePages = u.getListePages();
|
||||||
listePages.addAll(u.getListePagesPartagees());
|
listePages.addAll(u.getListePagesPartagees());
|
||||||
|
Page pageToExport;
|
||||||
try {
|
try {
|
||||||
int id = Integer.parseInt(idStr);
|
int id = Integer.parseInt(idStr);
|
||||||
Boolean estDans = false;
|
Boolean estDans = false;
|
||||||
|
|
@ -46,7 +46,7 @@ public class Export extends HttpServlet {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Page pageToExport = Page.getPageById(u.getId(), id);
|
pageToExport = Page.getPageById(u.getId(), id);
|
||||||
BlocRenderer blocRenderer;
|
BlocRenderer blocRenderer;
|
||||||
PageRender pageRender;
|
PageRender pageRender;
|
||||||
String filename;
|
String filename;
|
||||||
|
|
@ -74,7 +74,7 @@ public class Export extends HttpServlet {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String exportContent = pageRender.render(blocRenderer, pageToExport.getListeBlocs());
|
String exportContent = pageRender.render(blocRenderer, pageToExport.getListeBlocs(), pageToExport.getTitre());
|
||||||
response.setCharacterEncoding("UTF-8");
|
response.setCharacterEncoding("UTF-8");
|
||||||
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
|
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
|
||||||
response.getWriter().write(exportContent);
|
response.getWriter().write(exportContent);
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,15 @@ package projet;
|
||||||
public class HtmlPageRender implements PageRender {
|
public class HtmlPageRender implements PageRender {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHeader() {
|
public String getHeader(String titrePage) {
|
||||||
return "<!DOCTYPE html>\n"
|
return "<!DOCTYPE html>\n"
|
||||||
+ "<html>\n"
|
+ "<html>\n"
|
||||||
+ " <head>\n"
|
+ " <head>\n"
|
||||||
+ " <meta charset=\"UTF-8\">\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"
|
+ " </head>\n"
|
||||||
+ " <body>\n";
|
+ " <body>\n";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,13 @@ package projet;
|
||||||
public class LatexPageRender implements PageRender {
|
public class LatexPageRender implements PageRender {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHeader() {
|
public String getHeader(String titrePage) {
|
||||||
return "\\documentclass{article}\n"
|
return "\\documentclass{article}\n"
|
||||||
+ "\\usepackage[utf8]{inputenc}\n"
|
+ "\\usepackage[utf8]{inputenc}\n"
|
||||||
+ "\\usepackage{hyperref}\n"
|
+ "\\usepackage{hyperref}\n"
|
||||||
+ "\\begin{document}\n";
|
+ "\\begin{document}\n"
|
||||||
|
+ "\\title{" + titrePage + "}\n"
|
||||||
|
+ "\\maketitle\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package projet;
|
||||||
public class MarkdownPageRender implements PageRender {
|
public class MarkdownPageRender implements PageRender {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHeader() {
|
public String getHeader(String titrePage) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -188,11 +188,11 @@ public class Page extends ParamBD {
|
||||||
ResultSet rs;
|
ResultSet rs;
|
||||||
try {
|
try {
|
||||||
Connection connexion = DriverManager.getConnection(bdURL, bdLogin, bdPassword);
|
Connection connexion = DriverManager.getConnection(bdURL, bdLogin, bdPassword);
|
||||||
sql = " SELECT titre"
|
sql = " SELECT titre, auteur_id"
|
||||||
+ " FROM page"
|
+ " FROM page"
|
||||||
+ " WHERE id=? AND auteur_id = ?"
|
+ " WHERE id=? AND auteur_id = ?"
|
||||||
+ " UNION"
|
+ " UNION"
|
||||||
+ " SELECT titre"
|
+ " SELECT titre, NULL AS auteur_id"
|
||||||
+ " FROM partage"
|
+ " FROM partage"
|
||||||
+ " JOIN page ON partage.page_id = page.id"
|
+ " JOIN page ON partage.page_id = page.id"
|
||||||
+ " WHERE partage.utilisateur_id = ?"
|
+ " WHERE partage.utilisateur_id = ?"
|
||||||
|
|
@ -208,6 +208,7 @@ public class Page extends ParamBD {
|
||||||
titre = rs.getString("titre");
|
titre = rs.getString("titre");
|
||||||
page.titre = titre;
|
page.titre = titre;
|
||||||
page.id = id;
|
page.id = id;
|
||||||
|
page.auteur_id = rs.getInt("auteur_id");
|
||||||
}
|
}
|
||||||
if(titre != null) {
|
if(titre != null) {
|
||||||
sql = " SELECT id, contenu, type, ordre, metadata"
|
sql = " SELECT id, contenu, type, ordre, metadata"
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,12 @@ import java.util.List;
|
||||||
|
|
||||||
public interface PageRender {
|
public interface PageRender {
|
||||||
|
|
||||||
String getHeader();
|
String getHeader(String titrePage);
|
||||||
String getFooter();
|
String getFooter();
|
||||||
|
|
||||||
default String render(BlocRenderer blocRenderer, List<Bloc> blocs) {
|
default String render(BlocRenderer blocRenderer, List<Bloc> blocs, String titrePage) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append(getHeader());
|
sb.append(getHeader(titrePage));
|
||||||
for (Bloc bloc : blocs) {
|
for (Bloc bloc : blocs) {
|
||||||
sb.append(blocRenderer.render(bloc)).append("\n");
|
sb.append(blocRenderer.render(bloc)).append("\n");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,9 +77,11 @@
|
||||||
data-metadata='${bloc.metadata}'
|
data-metadata='${bloc.metadata}'
|
||||||
>${bloc.contenu}</div>
|
>${bloc.contenu}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<c:if test="${ page.auteur_id eq utilisateur.id}">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<button class="delete is-danger delete-bloc-btn" data-id="${bloc.id}"></button>
|
<button class="delete is-danger delete-bloc-btn" data-id="${bloc.id}"></button>
|
||||||
</div>
|
</div>
|
||||||
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue