1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.mycore.frontend.xeditor.target;
20
21 import org.jdom2.Document;
22 import org.mycore.common.content.MCRContent;
23 import org.mycore.common.content.MCRJDOMContent;
24 import org.mycore.common.xml.MCRLayoutService;
25 import org.mycore.frontend.servlets.MCRServletJob;
26 import org.mycore.frontend.xeditor.MCREditorSession;
27 import org.mycore.frontend.xeditor.tracker.MCRChangeTracker;
28
29 import jakarta.servlet.ServletContext;
30
31
32
33
34 public class MCRLayoutServiceTarget implements MCREditorTarget {
35
36 @Override
37 public void handleSubmission(ServletContext context, MCRServletJob job, MCREditorSession session, String style)
38 throws Exception {
39 session.getSubmission().setSubmittedValues(job.getRequest().getParameterMap());
40 Document result = session.getEditedXML();
41
42 if (session.getValidator().isValid()) {
43 result = MCRChangeTracker.removeChangeTracking(result);
44 result = session.getXMLCleaner().clean(result);
45 result = session.getPostProcessor().process(result);
46
47 if ((style != null) && (!style.isEmpty())) {
48 job.getRequest().setAttribute("XSL.Style", style);
49 }
50
51 MCRContent editedXML = new MCRJDOMContent(result);
52 MCRLayoutService.instance().doLayout(job.getRequest(), job.getResponse(), editedXML);
53 session.setBreakpoint("After handling target layout " + style);
54 } else {
55 session.setBreakpoint("After validation failed, target layout " + style);
56 job.getResponse().sendRedirect(job.getResponse().encodeRedirectURL(session.getRedirectURL(null)));
57 }
58 }
59 }