Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 3f1f6de8

Přidáno uživatelem Pavel Fidranský před asi 6 roky(ů)

re #20: add possibility to download diagram as JSON

Zobrazit rozdíly:

sources/imiger-core/src/main/webapp/WEB-INF/web.xml
53 53
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.Logout</servlet-class>
54 54
	</servlet>
55 55
	<servlet>
56
		<servlet-name>GetDiagram</servlet-name>
56
		<servlet-name>GetDBDiagram</servlet-name>
57 57
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.GetDBDiagram</servlet-class>
58 58
	</servlet>
59
	<servlet>
60
		<servlet-name>GetDBDiagramData</servlet-name>
61
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.GetDBDiagramData</servlet-class>
62
	</servlet>
59 63
	<servlet>
60 64
		<servlet-name>SaveDiagram</servlet-name>
61 65
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.SaveDiagram</servlet-class>
......
65 69
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.RemoveDiagram</servlet-class>
66 70
	</servlet>
67 71
	<servlet>
68
		<servlet-name>LoadGraphData</servlet-name>
72
		<servlet-name>GetSessionDiagram</servlet-name>
69 73
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.GetSessionDiagram</servlet-class>
70 74
	</servlet>
71 75
	<servlet>
......
101 105
		<url-pattern>/api/log-out</url-pattern>
102 106
	</servlet-mapping>
103 107
	<servlet-mapping>
104
		<servlet-name>GetDiagram</servlet-name>
108
		<servlet-name>GetDBDiagram</servlet-name>
105 109
		<url-pattern>/api/get-diagram</url-pattern>
106 110
	</servlet-mapping>
111
	<servlet-mapping>
112
		<servlet-name>GetDBDiagramData</servlet-name>
113
		<url-pattern>/api/get-diagram-data</url-pattern>
114
	</servlet-mapping>
107 115
	<servlet-mapping>
108 116
		<servlet-name>SaveDiagram</servlet-name>
109 117
		<url-pattern>/api/save-diagram</url-pattern>
......
113 121
		<url-pattern>/api/remove-diagram</url-pattern>
114 122
	</servlet-mapping>
115 123
	<servlet-mapping>
116
		<servlet-name>LoadGraphData</servlet-name>
124
		<servlet-name>GetSessionDiagram</servlet-name>
117 125
		<url-pattern>/api/load-graph-data</url-pattern>
118 126
	</servlet-mapping>
119 127
	<servlet-mapping>
sources/imiger-core/src/main/webapp/js/uploadFilesApp.js
84 84
						href: app.homeUrl + 'graph?diagramId=' + diagram.id,
85 85
						innerText: diagram.name,
86 86
					}),
87
					DOM.h('a', {
88
						href: app.homeUrl + 'api/get-diagram-data?id=' + diagram.id,
89
						download: diagram.name + '.json',
90
						class: 'button download-diagram-button',
91
					}, [
92
						DOM.h('img', {
93
							src: 'images/button_cancel.png',
94
							alt: 'stáhnout',
95
						}),
96
					]),
87 97
					DOM.h('button', {
88 98
						class: 'button remove-diagram-button',
89 99
						'data-id': diagram.id,
......
92 102
					}, [
93 103
						DOM.h('img', {
94 104
							src: 'images/button_cancel.png',
95
							alt: 'Odstranit',
105
							alt: 'odstranit',
96 106
						}),
97 107
					]),
98 108
				]));
sources/imiger-core/src/main/webapp/uploadFiles.jsp
90 90
						<li>
91 91
							<a href="${APP_HOME_URL}graph?diagramId=${diagram.id}">${diagram.name}</a>
92 92

  
93
							<a href="${APP_HOME_URL}api/get-diagram-data?id=${diagram.id}" download="${diagram.name}.json" class="button download-diagram-button">
94
								<img src="images/button_cancel.png" alt="stáhnout">
95
							</a>
93 96
							<button class="button remove-diagram-button" data-id="${diagram.id}" data-name="${diagram.name}">
94 97
								<img src="images/button_cancel.png" alt="odstranit">
95 98
							</button>
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/GetDBDiagramData.java
1
package cz.zcu.kiv.offscreen.servlets.api;
2

  
3
import cz.zcu.kiv.offscreen.servlets.BaseServlet;
4
import cz.zcu.kiv.offscreen.user.DB;
5
import cz.zcu.kiv.offscreen.user.Diagram;
6
import org.apache.commons.lang3.StringUtils;
7
import org.apache.logging.log4j.LogManager;
8
import org.apache.logging.log4j.Logger;
9

  
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12
import java.io.IOException;
13

  
14
/**
15
 * This class is used for loading diagram's graph JSON from database.
16
 */
17
public class GetDBDiagramData extends BaseServlet {
18

  
19
    private static final Logger logger = LogManager.getLogger();
20

  
21
    @Override
22
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
23
        logger.debug("Processing request");
24
        String diagramId = request.getParameter("id");
25

  
26
        if (StringUtils.isBlank(diagramId)) {
27
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
28
            logger.debug("Diagram id is empty");
29
            return;
30
        }
31

  
32
        DB db = new DB(getServletContext());
33
        Diagram diagram = new Diagram(db, Integer.parseInt(diagramId));
34

  
35
        if (!diagram.isPublic() && (!isLoggedIn(request) || (isLoggedIn(request) && diagram.getUserId() != getUserId(request)))) {
36
            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
37
            logger.debug("User is unauthorized");
38
            return;
39
        }
40

  
41
        String json = diagram.getDiagram().get("graph_json");
42

  
43
        response.setContentType("application/json");
44
        response.setCharacterEncoding("UTF-8");
45
        response.setStatus(HttpServletResponse.SC_OK);
46
        response.getWriter().write(json);
47
        response.getWriter().flush();
48
        logger.debug("Response OK");
49
    }
50
}

Také k dispozici: Unified diff