Projekt

Obecné

Profil

« Předchozí | Další » 

Revize c5dff586

Přidáno uživatelem Pavel Fidranský před více než 6 roky(ů)

preset diagram name for saved diagrams

Zobrazit rozdíly:

sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/GetDiagram.java
1
package cz.zcu.kiv.offscreen.servlets.api;
2

  
3
import com.google.common.base.Strings;
4
import cz.zcu.kiv.offscreen.servlets.BaseServlet;
5
import cz.zcu.kiv.offscreen.user.DB;
6
import cz.zcu.kiv.offscreen.user.Diagram;
7
import org.json.JSONObject;
8

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

  
13
public class GetDiagram extends BaseServlet {
14

  
15
    @Override
16
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
17
        String diagramId = request.getParameter("diagramId");
18

  
19
        if (Strings.isNullOrEmpty(diagramId)) {
20
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
21
            return;
22
        }
23

  
24
        DB db = new DB(getServletContext());
25
        Diagram diagram = new Diagram(db, Integer.parseInt(diagramId));
26

  
27
        JSONObject json = null;
28

  
29
        if (diagram.isPublic()) {
30
            json = new JSONObject(diagram.getDiagram());
31

  
32
        } else {
33
            if (isLoggedIn(request)) {
34
                int loggedUserId = getUserId(request);
35

  
36
                if (diagram.getUserId() == loggedUserId) {
37
                    json = new JSONObject(diagram.getDiagram());
38
                }
39
            }
40
        }
41

  
42
        if (json == null) {
43
            response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
44
        } else {
45
            response.setContentType("application/json");
46
            response.setCharacterEncoding("UTF-8");
47
            response.setStatus(HttpServletResponse.SC_OK);
48
            response.getWriter().write(json.toString());
49
            response.getWriter().flush();
50
        }
51
    }
52
}
sources/src/main/webapp/WEB-INF/web.xml
60 60
		<servlet-name>Logout</servlet-name>
61 61
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.Logout</servlet-class>
62 62
	</servlet>
63
	<servlet>
64
		<servlet-name>GetDiagram</servlet-name>
65
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.GetDiagram</servlet-class>
66
	</servlet>
63 67
	<servlet>
64 68
		<servlet-name>SaveDiagram</servlet-name>
65 69
		<servlet-class>cz.zcu.kiv.offscreen.servlets.api.SaveDiagram</servlet-class>
......
96 100
		<servlet-name>Logout</servlet-name>
97 101
		<url-pattern>/api/log-out</url-pattern>
98 102
	</servlet-mapping>
103
	<servlet-mapping>
104
		<servlet-name>GetDiagram</servlet-name>
105
		<url-pattern>/api/get-diagram</url-pattern>
106
	</servlet-mapping>
99 107
	<servlet-mapping>
100 108
		<servlet-name>SaveDiagram</servlet-name>
101 109
		<url-pattern>/api/save-diagram</url-pattern>
sources/src/main/webapp/js/app.js
31 31
	/** @prop {object} API Application programming interface paths. */
32 32
	this.API = {
33 33
		loadGraphData: 'api/load-graph-data',
34
		getDiagram: 'api/get-diagram',
34 35
		saveDiagram: 'api/save-diagram',
35 36
		removeDiagram: 'api/remove-diagram',
36 37
	};
......
52 53
	/** @prop {array<Group>} groupList */
53 54
	this.groupList = [];
54 55

  
56
	/** TODO: jsDoc */
57
	this.diagram = null;
58

  
55 59
	/** TODO: jsDoc */
56 60
	this.archetype = {
57 61
		vertex: [],
......
311 315
				var diagramId = app.utils.getQueryVariable('diagramId');
312 316
				if (diagramId === false) diagramId = null;
313 317

  
314
				var diagramName = prompt('Enter new diagram name:');
318
				var diagramName = prompt('Enter new diagram name:', self.diagram !== null ? self.diagram.name : '');
315 319
				if (diagramName === null || diagramName === '') return false;
316 320

  
317 321
				$.ajax({
318 322
					'type': 'POST',
319 323
					'url': app.API.saveDiagram,
320 324
					'data': {
321
						'diagram_id': diagramId,
325
						'diagramId': diagramId,
322 326
						'name': diagramName,
323
						'graph_json': JSON.stringify(self.graphExporter.run()),
327
						'graphJson': JSON.stringify(self.graphExporter.run()),
324 328
						'public': 0,
325 329
					},
326 330
					'success': function() {
......
357 361

  
358 362
		self.loader.enable();
359 363

  
360
		var loadGraphDataURL = self.API.loadGraphData;
364
		var loadGraphDataPromise;
365

  
366
		if (diagramId === '') {
367
			loadGraphDataPromise = $.getJSON(self.API.loadGraphData);
361 368

  
362
		if (diagramId !== '') {
363
			loadGraphDataURL += '?diagramId=' + diagramId;
369
		} else {
370
			getDiagramPromise = $.getJSON(self.API.getDiagram + '?diagramId=' + diagramId);
371

  
372
			loadGraphDataPromise = getDiagramPromise.then(function(data) {
373
				self.diagram = {
374
					id: data.id,
375
					name: data.name,
376
				};
377

  
378
				return $.getJSON(self.API.loadGraphData + '?diagramId=' + diagramId);
379
			});
364 380
		}
365 381

  
366 382
		// get vertex position data
367
		$.getJSON(loadGraphDataURL).then(function(data) {
383
		loadGraphDataPromise.then(function(data) {
368 384
			// construct graph
369 385
			self.graphLoader.run(data);
370 386

  

Také k dispozici: Unified diff