Revize 085e4783
Přidáno uživatelem Pavel Fidranský před více než 6 roky(ů)
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/DefaultPage.java | ||
---|---|---|
1 |
package cz.zcu.kiv.offscreen.servlets; |
|
2 |
|
|
3 |
import java.io.IOException; |
|
4 |
import java.util.ArrayList; |
|
5 |
import java.util.List; |
|
6 |
import java.util.Map; |
|
7 |
import javax.servlet.RequestDispatcher; |
|
8 |
import javax.servlet.ServletException; |
|
9 |
import javax.servlet.http.HttpServlet; |
|
10 |
import javax.servlet.http.HttpServletRequest; |
|
11 |
import javax.servlet.http.HttpServletResponse; |
|
12 |
|
|
13 |
import cz.zcu.kiv.offscreen.loader.configuration.ConfigurationLoader; |
|
14 |
import cz.zcu.kiv.offscreen.session.SessionManager; |
|
15 |
import cz.zcu.kiv.offscreen.storage.FileManager; |
|
16 |
import cz.zcu.kiv.offscreen.user.DB; |
|
17 |
import cz.zcu.kiv.offscreen.user.Diagram; |
|
18 |
|
|
19 |
/** |
|
20 |
* |
|
21 |
* @author Jindra Pavlíková <jindra.pav2@seznam.cz> |
|
22 |
*/ |
|
23 |
public class DefaultPage extends HttpServlet { |
|
24 |
|
|
25 |
/** |
|
26 |
* Loads currently uploaded components and renders uploadFiles.jsp. |
|
27 |
*/ |
|
28 |
@Override |
|
29 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
30 |
String sessionValue = SessionManager.getSessionValue(request, "JSESSIONID"); |
|
31 |
if (sessionValue != null && !"".equals(sessionValue)) { |
|
32 |
String storageLocation = ConfigurationLoader.getStorageLocation(request.getServletContext()); |
|
33 |
|
|
34 |
FileManager fileManager = new FileManager(sessionValue, storageLocation); |
|
35 |
if (!fileManager.isExistStorage()) { |
|
36 |
fileManager.createStorageDirectory(); |
|
37 |
} |
|
38 |
|
|
39 |
request.setAttribute("componentNames", fileManager.getUploadedComponentsNames()); |
|
40 |
} |
|
41 |
|
|
42 |
DB db = new DB(getServletContext()); |
|
43 |
Diagram diagram_list = new Diagram(db); |
|
44 |
|
|
45 |
List<Map<String, String>> list = new ArrayList<>(); |
|
46 |
if (request.getSession().getAttribute("logged_user") == "1") { |
|
47 |
list = diagram_list.getDiagramListByUserId((int) request.getSession().getAttribute("logged_user_id")); |
|
48 |
} |
|
49 |
|
|
50 |
List<Map<String, String>> diagram_public_list = diagram_list.getDiagramPublicList(); |
|
51 |
|
|
52 |
request.setAttribute("diagramPublic", diagram_public_list); |
|
53 |
request.setAttribute("diagramNames", list); |
|
54 |
|
|
55 |
// render |
|
56 |
RequestDispatcher rd = getServletContext().getRequestDispatcher("/uploadFiles.jsp"); |
|
57 |
rd.forward(request, response); |
|
58 |
} |
|
59 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/LoadGraphData.java | ||
---|---|---|
51 | 51 |
response.setCharacterEncoding("UTF-8"); |
52 | 52 |
|
53 | 53 |
if (request.getSession().getAttribute("demo_id") == null) { |
54 |
// it doesn't have EFPs -> read from ComAV |
|
55 |
if (request.getSession().getAttribute("graph_json_data") == null) { |
|
56 |
File[] uploadedFiles = fileManager.getUploadedComponents().toArray(new File[0]); |
|
57 |
File fileToDisplay = uploadedFiles[0]; |
|
54 |
File[] uploadedFiles = fileManager.getUploadedComponents().toArray(new File[0]); |
|
55 |
File fileToDisplay = uploadedFiles[0]; |
|
58 | 56 |
|
59 |
GraphManager graphManager = new GraphJSONDataLoader(fileToDisplay).LoadData();
|
|
60 |
String configLocation = ConfigurationLoader.getConfigLocation(request.getServletContext());
|
|
61 |
JSONConfigLoader configLoader = new JSONConfigLoader(graphManager, configLocation);
|
|
62 |
Graph graph = graphManager.createGraph(configLoader);
|
|
63 |
GraphExport export = new GraphExport(graph);
|
|
64 |
JSONObject json = JSONObject.fromObject(export);
|
|
57 |
GraphManager graphManager = new GraphJSONDataLoader(fileToDisplay).LoadData(); |
|
58 |
String configLocation = ConfigurationLoader.getConfigLocation(request.getServletContext()); |
|
59 |
JSONConfigLoader configLoader = new JSONConfigLoader(graphManager, configLocation); |
|
60 |
Graph graph = graphManager.createGraph(configLoader); |
|
61 |
GraphExport export = new GraphExport(graph); |
|
62 |
JSONObject json = JSONObject.fromObject(export); |
|
65 | 63 |
|
66 |
String resultJsonString = json.toString();
|
|
64 |
String resultJsonString = json.toString(); |
|
67 | 65 |
|
68 |
response.getWriter().write(resultJsonString); |
|
69 |
|
|
70 |
} else { |
|
71 |
// it has EFPs -> read from the session |
|
72 |
response.getWriter().write(request.getSession().getAttribute("graph_json_data").toString()); |
|
73 |
|
|
74 |
request.getSession().removeAttribute("graph_json_data"); |
|
75 |
} |
|
66 |
response.getWriter().write(resultJsonString); |
|
76 | 67 |
|
77 | 68 |
} else { |
78 | 69 |
String demoId = request.getSession().getAttribute("demo_id").toString(); |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/ShowGraph.java | ||
---|---|---|
32 | 32 |
|
33 | 33 |
@Override |
34 | 34 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
35 |
// framework |
|
36 |
String framework = request.getParameter("framework") == null ? "osgi" : request.getParameter("framework"); |
|
37 |
response.addCookie(new Cookie("framework", framework)); |
|
38 |
|
|
39 | 35 |
// should save button be displayed? |
40 | 36 |
boolean showSaveButton = request.getParameter("diagram_id") != null && request.getParameter("diagram_hash") != null; |
41 | 37 |
request.setAttribute("show_icon_save", showSaveButton); |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/UploadFiles.java | ||
---|---|---|
1 |
package cz.zcu.kiv.offscreen.servlets; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.io.IOException; |
|
5 |
import java.util.ArrayList; |
|
6 |
import java.util.HashMap; |
|
7 |
import java.util.List; |
|
8 |
import java.util.Map; |
|
9 |
import javax.servlet.RequestDispatcher; |
|
10 |
import javax.servlet.ServletException; |
|
11 |
import javax.servlet.http.Cookie; |
|
12 |
import javax.servlet.http.HttpServlet; |
|
13 |
import javax.servlet.http.HttpServletRequest; |
|
14 |
import javax.servlet.http.HttpServletResponse; |
|
15 |
|
|
16 |
import org.apache.commons.fileupload.servlet.ServletFileUpload; |
|
17 |
|
|
18 |
import cz.zcu.kiv.offscreen.loader.configuration.ConfigurationLoader; |
|
19 |
import cz.zcu.kiv.offscreen.session.SessionManager; |
|
20 |
import cz.zcu.kiv.offscreen.storage.FileManager; |
|
21 |
import cz.zcu.kiv.offscreen.user.DB; |
|
22 |
import cz.zcu.kiv.offscreen.user.Diagram; |
|
23 |
|
|
24 |
/** |
|
25 |
* |
|
26 |
* @author Jindra PavlĂková <jindra.pav2@seznam.cz> |
|
27 |
*/ |
|
28 |
public class UploadFiles extends HttpServlet { |
|
29 |
|
|
30 |
@Override |
|
31 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
32 |
doPost(request, response); |
|
33 |
} |
|
34 |
|
|
35 |
@Override |
|
36 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
37 |
DB db = new DB(getServletContext()); |
|
38 |
|
|
39 |
String diagram_id = request.getParameter("diagram_id"); |
|
40 |
if (diagram_id != null) { |
|
41 |
Integer diagramId = Integer.parseInt(diagram_id); |
|
42 |
|
|
43 |
Diagram diagram_edit = new Diagram(db, diagramId); |
|
44 |
Map<String, String> diag_param = diagram_edit.getDiagramParam(diagramId); |
|
45 |
|
|
46 |
request.setAttribute("diagram_name", diag_param.get("name")); |
|
47 |
request.setAttribute("diagram_user_id", diag_param.get("user_id")); |
|
48 |
request.setAttribute("diagram_public_checked", (diag_param.get("public").compareTo("1") == 0 ? " checked=\"checked\" " : "")); |
|
49 |
} else { |
|
50 |
request.setAttribute("diagram_name", ""); |
|
51 |
request.setAttribute("diagram_public_checked", ""); |
|
52 |
request.setAttribute("diagram_user_id", "-1"); |
|
53 |
} |
|
54 |
|
|
55 |
// initialize file manager |
|
56 |
String workingDirectory; |
|
57 |
if (request.getParameter("diagram_hash") == null) { |
|
58 |
workingDirectory = SessionManager.getSessionValue(request, "JSESSIONID"); |
|
59 |
} else { |
|
60 |
workingDirectory = request.getParameter("diagram_hash"); |
|
61 |
} |
|
62 |
|
|
63 |
int version = 1; |
|
64 |
workingDirectory += File.separator + String.valueOf(version); |
|
65 |
|
|
66 |
String storageLocation = ConfigurationLoader.getStorageLocation(request.getServletContext()); |
|
67 |
|
|
68 |
FileManager fileManager = new FileManager(workingDirectory, storageLocation); |
|
69 |
if (!fileManager.isExistStorage()) { |
|
70 |
fileManager.createStorageDirectory(); |
|
71 |
} |
|
72 |
|
|
73 |
// save files from request |
|
74 |
String result; |
|
75 |
if (ServletFileUpload.isMultipartContent(request)) { |
|
76 |
result = fileManager.saveFile(request); |
|
77 |
} else { |
|
78 |
result = ""; |
|
79 |
} |
|
80 |
|
|
81 |
response.addCookie(new Cookie("graphVersion", String.valueOf(version))); |
|
82 |
|
|
83 |
// response |
|
84 |
List<Map<String, String>> userDiagramList = new ArrayList<>(); |
|
85 |
if (request.getSession().getAttribute("logged_user") == "1") { |
|
86 |
int loggedUserId = (int) request.getSession().getAttribute("logged_user_id"); |
|
87 |
|
|
88 |
userDiagramList = new Diagram(db).getDiagramListByUserId(loggedUserId); |
|
89 |
} |
|
90 |
request.setAttribute("diagramNames", userDiagramList); |
|
91 |
|
|
92 |
List<Map<String, String>> publicDiagramList = new Diagram(db).getDiagramPublicList(); |
|
93 |
request.setAttribute("diagramPublic", publicDiagramList); |
|
94 |
|
|
95 |
request.setAttribute("componentNames", fileManager.getUploadedComponentsNames()); |
|
96 |
request.setAttribute("errorMessage", result); |
|
97 |
|
|
98 |
// render |
|
99 |
RequestDispatcher rd = getServletContext().getRequestDispatcher("/uploadFiles.jsp"); |
|
100 |
rd.forward(request, response); |
|
101 |
} |
|
102 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/CopyComponents.java | ||
---|---|---|
1 |
package cz.zcu.kiv.offscreen.servlets.actions; |
|
2 |
|
|
3 |
import java.io.BufferedReader; |
|
4 |
import java.io.File; |
|
5 |
import java.io.FileInputStream; |
|
6 |
import java.io.IOException; |
|
7 |
import java.io.InputStream; |
|
8 |
import java.text.ParseException; |
|
9 |
import java.util.List; |
|
10 |
import javax.servlet.ServletException; |
|
11 |
import javax.servlet.http.HttpServlet; |
|
12 |
import javax.servlet.http.HttpServletRequest; |
|
13 |
import javax.servlet.http.HttpServletResponse; |
|
14 |
|
|
15 |
import org.json.JSONArray; |
|
16 |
import org.json.JSONObject; |
|
17 |
|
|
18 |
import cz.zcu.kiv.offscreen.loader.configuration.ConfigurationLoader; |
|
19 |
import cz.zcu.kiv.offscreen.session.SessionManager; |
|
20 |
import cz.zcu.kiv.offscreen.storage.FileManager; |
|
21 |
|
|
22 |
/** |
|
23 |
* @author Pavel Fidransky [jsem@pavelfidransky.cz] |
|
24 |
*/ |
|
25 |
public class CopyComponents extends HttpServlet { |
|
26 |
|
|
27 |
/** |
|
28 |
* Makes a copy of components stored in the current graph version folder to the (current + 1) folder. Components to |
|
29 |
* be copied are set by input JSON. |
|
30 |
*/ |
|
31 |
@Override |
|
32 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
33 |
// read input data |
|
34 |
StringBuilder sb = new StringBuilder(); |
|
35 |
try (BufferedReader reader = request.getReader()) { |
|
36 |
String line; |
|
37 |
while ((line = reader.readLine()) != null) { |
|
38 |
sb.append(line); |
|
39 |
} |
|
40 |
} |
|
41 |
|
|
42 |
// parse the data as JSON |
|
43 |
JSONObject componentsJson; |
|
44 |
try { |
|
45 |
componentsJson = new JSONObject(sb.toString()); |
|
46 |
} catch (ParseException e) { |
|
47 |
response.sendError(response.SC_BAD_REQUEST); |
|
48 |
return; |
|
49 |
} |
|
50 |
|
|
51 |
// get current graph version from cookie |
|
52 |
int version = Integer.parseInt(SessionManager.getSessionValue(request, "graphVersion")); |
|
53 |
|
|
54 |
// initialize file manager |
|
55 |
String workingDirectory; |
|
56 |
if (request.getParameter("diagram_hash") == null) { |
|
57 |
workingDirectory = SessionManager.getSessionValue(request, "JSESSIONID"); |
|
58 |
} else { |
|
59 |
workingDirectory = request.getParameter("diagram_hash"); |
|
60 |
} |
|
61 |
|
|
62 |
String storageLocation = ConfigurationLoader.getStorageLocation(request.getServletContext()); |
|
63 |
|
|
64 |
FileManager oldFileManager = new FileManager(workingDirectory + File.separator + String.valueOf(version), storageLocation); |
|
65 |
FileManager newFileManager = new FileManager(workingDirectory + File.separator + String.valueOf(version + 1), storageLocation); |
|
66 |
|
|
67 |
List<String> currentComponents = oldFileManager.getUploadedComponentsNames(); |
|
68 |
|
|
69 |
// copy components |
|
70 |
JSONArray components = componentsJson.getJSONArray("components"); |
|
71 |
for (int i = 0; i < components.length(); i++) { |
|
72 |
JSONObject component = components.getJSONObject(i); |
|
73 |
String name = component.getString("name"); |
|
74 |
|
|
75 |
if (!currentComponents.contains(name)) continue; |
|
76 |
|
|
77 |
String oldPath = storageLocation + File.separator + workingDirectory + File.separator + String.valueOf(version) + File.separator + name; |
|
78 |
newFileManager.saveFile(new FileInputStream( oldPath), name); |
|
79 |
} |
|
80 |
} |
|
81 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/DeleteAllComponents.java | ||
---|---|---|
47 | 47 |
request.setAttribute("componentNames", fileManager.getUploadedComponentsNames()); |
48 | 48 |
|
49 | 49 |
// redirect |
50 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "upload-files");
|
|
50 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL")); |
|
51 | 51 |
} |
52 | 52 |
} |
53 | 53 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/DeleteComponent.java | ||
---|---|---|
75 | 75 |
|
76 | 76 |
} else { |
77 | 77 |
// redirect |
78 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "upload-files" + redirectUrlParams);
|
|
78 |
response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + redirectUrlParams); |
|
79 | 79 |
} |
80 | 80 |
} |
81 | 81 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/DownloadComponent.java | ||
---|---|---|
1 |
package cz.zcu.kiv.offscreen.servlets.actions; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.io.IOException; |
|
5 |
import java.io.InputStream; |
|
6 |
import java.net.HttpURLConnection; |
|
7 |
import java.net.URL; |
|
8 |
import javax.servlet.ServletException; |
|
9 |
import javax.servlet.http.HttpServlet; |
|
10 |
import javax.servlet.http.HttpServletRequest; |
|
11 |
import javax.servlet.http.HttpServletResponse; |
|
12 |
|
|
13 |
import org.apache.log4j.Logger; |
|
14 |
import org.json.JSONObject; |
|
15 |
|
|
16 |
import cz.zcu.kiv.offscreen.loader.configuration.ConfigurationLoader; |
|
17 |
import cz.zcu.kiv.offscreen.session.SessionManager; |
|
18 |
import cz.zcu.kiv.offscreen.storage.FileManager; |
|
19 |
|
|
20 |
/** |
|
21 |
* @author Pavel Fidransky [jsem@pavelfidransky.cz] |
|
22 |
*/ |
|
23 |
public class DownloadComponent extends HttpServlet { |
|
24 |
|
|
25 |
private String crceApiBase; |
|
26 |
private FileManager fileManager; |
|
27 |
|
|
28 |
private Logger logger = Logger.getLogger(DownloadComponent.class); |
|
29 |
|
|
30 |
/** |
|
31 |
* Downloads component by its UUID set in query parameter. The component is then stored in the current graph version |
|
32 |
* folder. As a response, JSON containing component's UUID and filename is returned. |
|
33 |
*/ |
|
34 |
@Override |
|
35 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
36 |
logger.error("Method is no longer supported because CRCE is removed from project."); |
|
37 |
// // there was no uuid passed in the request |
|
38 |
// if (request.getParameter("uuid") == null) { |
|
39 |
// response.sendError(response.SC_BAD_REQUEST); |
|
40 |
// return; |
|
41 |
// } |
|
42 |
// |
|
43 |
// // initialize file manager |
|
44 |
// String workingDirectory; |
|
45 |
// if (request.getParameter("diagram_hash") == null) { |
|
46 |
// workingDirectory = SessionManager.getSessionValue(request, "JSESSIONID"); |
|
47 |
// } else { |
|
48 |
// workingDirectory = request.getParameter("diagram_hash"); |
|
49 |
// } |
|
50 |
// |
|
51 |
// if (request.getParameter("graphVersion") != null) { |
|
52 |
// workingDirectory += File.separator + request.getParameter("graphVersion"); |
|
53 |
// } else { |
|
54 |
// workingDirectory += File.separator + SessionManager.getSessionValue(request, "graphVersion"); |
|
55 |
// } |
|
56 |
// |
|
57 |
// String storageLocation = ConfigurationLoader.getStorageLocation(request.getServletContext()); |
|
58 |
// |
|
59 |
// fileManager = new FileManager(workingDirectory, storageLocation); |
|
60 |
// if (!fileManager.isExistStorage()) { |
|
61 |
// fileManager.createStorageDirectory(); |
|
62 |
// } |
|
63 |
// |
|
64 |
// // download component |
|
65 |
// crceApiBase = ConfigurationLoader.getCrceApiBase(request.getServletContext()); |
|
66 |
// |
|
67 |
// String uuid = request.getParameter("uuid"); |
|
68 |
// String name = downloadComponent(uuid); |
|
69 |
// |
|
70 |
// JSONObject componentJson = new JSONObject(); |
|
71 |
// componentJson.put("uuid", uuid); |
|
72 |
// componentJson.put("name", name); |
|
73 |
// |
|
74 |
// // send response |
|
75 |
// response.setContentType("application/json"); |
|
76 |
// response.getWriter().write(componentJson.toString()); |
|
77 |
} |
|
78 |
|
|
79 |
/* |
|
80 |
PRIVATE METHODS |
|
81 |
*/ |
|
82 |
|
|
83 |
private String downloadComponent(String uuid) throws IOException { |
|
84 |
URL url = new URL(this.crceApiBase + "/resources/" + uuid); |
|
85 |
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); |
|
86 |
connection.setConnectTimeout(60 * 1000); |
|
87 |
connection.setReadTimeout(60 * 1000); |
|
88 |
|
|
89 |
InputStream inputStream = connection.getInputStream(); |
|
90 |
|
|
91 |
String contentDisposition = connection.getHeaderField("Content-Disposition"); |
|
92 |
String fileName = contentDisposition.replaceFirst("(?i)^.*filename = ([^\"]+).*$", "$1"); |
|
93 |
File file = new File(fileName); |
|
94 |
|
|
95 |
fileManager.saveFile(inputStream, file.getName()); |
|
96 |
|
|
97 |
inputStream.close(); |
|
98 |
|
|
99 |
return file.getName(); |
|
100 |
} |
|
101 |
|
|
102 |
} |
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/actions/UploadFiles.java | ||
---|---|---|
1 |
package cz.zcu.kiv.offscreen.servlets.actions; |
|
2 |
|
|
3 |
import java.io.File; |
|
4 |
import java.io.IOException; |
|
5 |
import java.util.ArrayList; |
|
6 |
import java.util.HashMap; |
|
7 |
import java.util.Map; |
|
8 |
import javax.servlet.RequestDispatcher; |
|
9 |
import javax.servlet.ServletException; |
|
10 |
import javax.servlet.http.Cookie; |
|
11 |
import javax.servlet.http.HttpServlet; |
|
12 |
import javax.servlet.http.HttpServletRequest; |
|
13 |
import javax.servlet.http.HttpServletResponse; |
|
14 |
|
|
15 |
import org.apache.commons.fileupload.servlet.ServletFileUpload; |
|
16 |
|
|
17 |
import cz.zcu.kiv.offscreen.loader.configuration.ConfigurationLoader; |
|
18 |
import cz.zcu.kiv.offscreen.session.SessionManager; |
|
19 |
import cz.zcu.kiv.offscreen.storage.FileManager; |
|
20 |
import cz.zcu.kiv.offscreen.user.DB; |
|
21 |
import cz.zcu.kiv.offscreen.user.Diagram; |
|
22 |
|
|
23 |
/** |
|
24 |
* |
|
25 |
* @author Jindra PavlĂková <jindra.pav2@seznam.cz> |
|
26 |
*/ |
|
27 |
public class UploadFiles extends HttpServlet { |
|
28 |
|
|
29 |
@Override |
|
30 |
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
31 |
doPost(request, response); |
|
32 |
} |
|
33 |
|
|
34 |
@Override |
|
35 |
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { |
|
36 |
DB db = new DB(getServletContext()); |
|
37 |
|
|
38 |
String diagram_id = request.getParameter("diagram_id"); |
|
39 |
if (diagram_id != null) { |
|
40 |
Integer diagramId = Integer.parseInt(diagram_id); |
|
41 |
|
|
42 |
Diagram diagram_edit = new Diagram(db, diagramId); |
|
43 |
Map<String, String> diag_param = diagram_edit.getDiagramParam(diagramId); |
|
44 |
|
|
45 |
request.setAttribute("diagram_name", diag_param.get("name")); |
|
46 |
request.setAttribute("diagram_user_id", diag_param.get("user_id")); |
|
47 |
request.setAttribute("diagram_public_checked", (diag_param.get("public").compareTo("1") == 0 ? " checked=\"checked\" " : "")); |
|
48 |
} else { |
|
49 |
request.setAttribute("diagram_name", ""); |
|
50 |
request.setAttribute("diagram_public_checked", ""); |
|
51 |
request.setAttribute("diagram_user_id", "-1"); |
|
52 |
} |
|
53 |
|
|
54 |
// initialize file manager |
|
55 |
String workingDirectory; |
|
56 |
if (request.getParameter("diagram_hash") == null) { |
|
57 |
workingDirectory = SessionManager.getSessionValue(request, "JSESSIONID"); |
|
58 |
} else { |
|
59 |
workingDirectory = request.getParameter("diagram_hash"); |
|
60 |
} |
|
61 |
|
|
62 |
int version = 1; |
|
63 |
workingDirectory += File.separator + String.valueOf(version); |
|
64 |
|
|
65 |
String storageLocation = ConfigurationLoader.getStorageLocation(request.getServletContext()); |
|
66 |
|
|
67 |
FileManager fileManager = new FileManager(workingDirectory, storageLocation); |
|
68 |
if (!fileManager.isExistStorage()) { |
|
69 |
fileManager.createStorageDirectory(); |
|
70 |
} |
|
71 |
|
|
72 |
// save files from request |
|
73 |
String result; |
|
74 |
if (ServletFileUpload.isMultipartContent(request)) { |
|
75 |
result = fileManager.saveFile(request); |
|
76 |
} else { |
|
77 |
result = ""; |
|
78 |
} |
|
79 |
|
|
80 |
response.addCookie(new Cookie("graphVersion", String.valueOf(version))); |
|
81 |
|
|
82 |
// response |
|
83 |
ArrayList<Map<String, String>> list = new ArrayList<>(); |
|
84 |
if (request.getSession().getAttribute("logged_user") == "1") { |
|
85 |
int loggedUserId = (int) request.getSession().getAttribute("logged_user_id"); |
|
86 |
|
|
87 |
list = new Diagram(db).getDiagramListByUserId(loggedUserId); |
|
88 |
} |
|
89 |
request.setAttribute("diagramNames", list); |
|
90 |
|
|
91 |
request.setAttribute("diagramPublic", new Diagram(db).getDiagramPublicList()); |
|
92 |
|
|
93 |
request.setAttribute("componentNames", fileManager.getUploadedComponentsNames()); |
|
94 |
request.setAttribute("errorMessage", result); |
|
95 |
|
|
96 |
// render |
|
97 |
RequestDispatcher rd = getServletContext().getRequestDispatcher("/uploadFiles.jsp"); |
|
98 |
rd.forward(request, response); |
|
99 |
} |
|
100 |
} |
sources/src/main/webapp/META-INF/context.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
<Context antiJARLocking="true" path="/VisualizationTool"/> |
|
2 |
<Context antiJARLocking="true" path="/imiger"/> |
sources/src/main/webapp/WEB-INF/glassfish-web.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> |
|
3 |
<glassfish-web-app error-url=""> |
|
4 |
<context-root>/VisualizationTool</context-root> |
|
5 |
<class-loader delegate="true"/> |
|
6 |
<jsp-config> |
|
7 |
<property name="keepgenerated" value="true"> |
|
8 |
<description>Keep a copy of the generated servlet class' java code.</description> |
|
9 |
</property> |
|
10 |
</jsp-config> |
|
11 |
</glassfish-web-app> |
sources/src/main/webapp/WEB-INF/web.xml | ||
---|---|---|
44 | 44 |
<!-- |
45 | 45 |
servlets |
46 | 46 |
--> |
47 |
<servlet> |
|
48 |
<servlet-name>DefaultPage</servlet-name> |
|
49 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.DefaultPage</servlet-class> |
|
50 |
</servlet> |
|
51 | 47 |
<servlet> |
52 | 48 |
<servlet-name>Register</servlet-name> |
53 | 49 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.Register</servlet-class> |
... | ... | |
66 | 62 |
</servlet> |
67 | 63 |
<servlet> |
68 | 64 |
<servlet-name>UploadFiles</servlet-name> |
69 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.UploadFiles</servlet-class> |
|
70 |
</servlet> |
|
71 |
<servlet> |
|
72 |
<servlet-name>CopyComponents</servlet-name> |
|
73 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.CopyComponents</servlet-class> |
|
65 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.UploadFiles</servlet-class> |
|
74 | 66 |
</servlet> |
75 | 67 |
<servlet> |
76 | 68 |
<servlet-name>DeleteAllComponents</servlet-name> |
... | ... | |
84 | 76 |
<servlet-name>DiagramEndpoint</servlet-name> |
85 | 77 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.DiagramEndpoint</servlet-class> |
86 | 78 |
</servlet> |
87 |
<servlet> |
|
88 |
<servlet-name>DownloadComponent</servlet-name> |
|
89 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.actions.DownloadComponent</servlet-class> |
|
90 |
</servlet> |
|
91 | 79 |
<servlet> |
92 | 80 |
<servlet-name>LoadGraphData</servlet-name> |
93 | 81 |
<servlet-class>cz.zcu.kiv.offscreen.servlets.LoadGraphData</servlet-class> |
... | ... | |
97 | 85 |
URL-to-servlet mappings |
98 | 86 |
--> |
99 | 87 |
<servlet-mapping> |
100 |
<servlet-name>DefaultPage</servlet-name>
|
|
88 |
<servlet-name>UploadFiles</servlet-name>
|
|
101 | 89 |
<url-pattern></url-pattern> |
102 | 90 |
</servlet-mapping> |
103 | 91 |
<servlet-mapping> |
... | ... | |
116 | 104 |
<servlet-name>ShowGraph</servlet-name> |
117 | 105 |
<url-pattern>/graph</url-pattern> |
118 | 106 |
</servlet-mapping> |
119 |
<servlet-mapping> |
|
120 |
<servlet-name>UploadFiles</servlet-name> |
|
121 |
<url-pattern>/upload-files</url-pattern> |
|
122 |
</servlet-mapping> |
|
123 |
<servlet-mapping> |
|
124 |
<servlet-name>CopyComponents</servlet-name> |
|
125 |
<url-pattern>/api/copy-components</url-pattern> |
|
126 |
</servlet-mapping> |
|
127 | 107 |
<servlet-mapping> |
128 | 108 |
<servlet-name>DeleteAllComponents</servlet-name> |
129 | 109 |
<url-pattern>/delete-components</url-pattern> |
... | ... | |
136 | 116 |
<servlet-name>DiagramEndpoint</servlet-name> |
137 | 117 |
<url-pattern>/api/diagram</url-pattern> |
138 | 118 |
</servlet-mapping> |
139 |
<servlet-mapping> |
|
140 |
<servlet-name>DownloadComponent</servlet-name> |
|
141 |
<url-pattern>/api/download-component</url-pattern> |
|
142 |
</servlet-mapping> |
|
143 | 119 |
<servlet-mapping> |
144 | 120 |
<servlet-name>LoadGraphData</servlet-name> |
145 | 121 |
<url-pattern>/api/graph-data</url-pattern> |
sources/src/main/webapp/js/app.js | ||
---|---|---|
62 | 62 |
* @param diagramHash Diagram hash. |
63 | 63 |
*/ |
64 | 64 |
this.diagramLoader = function(diagramId, diagramHash) { |
65 |
return loadGraphData.bind(this, diagramId, diagramHash, null, null); |
|
66 |
}; |
|
67 |
|
|
68 |
/** |
|
69 |
* Loads graph using EFP data. |
|
70 |
* @param {boolean} withEfps Is EFPs in graph? |
|
71 |
* @param {object} efpSettings EFP settings. |
|
72 |
*/ |
|
73 |
this.efpLoader = function(withEfps, efpSettings) { |
|
74 |
return loadGraphData.bind(this, null, null, withEfps, efpSettings); |
|
65 |
return loadGraphData.bind(this, diagramId, diagramHash); |
|
75 | 66 |
}; |
76 | 67 |
|
77 | 68 |
/** |
... | ... | |
292 | 283 |
* Loads graph data of a diagram. |
293 | 284 |
* @param {string} diagramId Identifier of the diagram to be loaded. |
294 | 285 |
* @param {string} diagramHash Hash of the diagram to be loaded. |
295 |
* @param {boolean} withEfps Load diagram with extra-functional properties. |
|
296 |
* @param {object} efpSettings Settings of EFP graph. |
|
297 | 286 |
*/ |
298 |
function loadGraphData(diagramId, diagramHash, withEfps, efpSettings) {
|
|
287 |
function loadGraphData(diagramId, diagramHash) { |
|
299 | 288 |
var self = this; |
300 | 289 |
|
301 | 290 |
self.loader.enable(); |
... | ... | |
313 | 302 |
loadDiagramURL += '&diagramHash=' + diagramHash; |
314 | 303 |
} |
315 | 304 |
|
316 |
// TODO: how to handle EFPs? see old code for details |
|
317 |
if (withEfps !== null) { |
|
318 |
// Build graph with EFPs |
|
319 |
//GraphManager.isEfpGraph = true; |
|
320 |
|
|
321 |
// set EFP settings |
|
322 |
//GraphManager.efpMinIntDiameter = efpSettings.minInterfaceDiameter; |
|
323 |
//GraphManager.efpMaxIntDiameter = efpSettings.maxInterfaceDiameter; |
|
324 |
} |
|
325 |
|
|
326 | 305 |
// exported data of graph |
327 | 306 |
var graphExportData = null; |
328 | 307 |
|
... | ... | |
345 | 324 |
|
346 | 325 |
}, function() { |
347 | 326 |
// go to the upload page |
348 |
window.location.replace('./upload-files');
|
|
327 |
window.location.replace('./'); |
|
349 | 328 |
}); |
350 | 329 |
} |
351 | 330 |
|
sources/src/main/webapp/logged_user_menu.jsp | ||
---|---|---|
7 | 7 |
<ul> |
8 | 8 |
<c:forEach items="${diagramNames}" var="diagramName"> |
9 | 9 |
<li id="diagram_id_${diagramName.id}"> |
10 |
<a href="<%= getServletContext().getInitParameter("HOME_URL") %>upload-files?diagram_id=${diagramName.id}&diagram_hash=${diagramName.hash}">${diagramName.name}</a><a href="#" onclick="return deleteDiagram(${diagramName.id});"><img src="images/button_cancel.png" alt="odstranit" class="imgDelete"/></a>
|
|
10 |
<a href="<%= getServletContext().getInitParameter("HOME_URL") %>?diagram_id=${diagramName.id}&diagram_hash=${diagramName.hash}">${diagramName.name}</a><a href="#" onclick="return deleteDiagram(${diagramName.id});"><img src="images/button_cancel.png" alt="odstranit" class="imgDelete"/></a> |
|
11 | 11 |
</li> |
12 | 12 |
</c:forEach> |
13 | 13 |
<li id="diagram_id_new"> |
... | ... | |
21 | 21 |
<ul> |
22 | 22 |
<c:forEach items="${diagramPublic}" var="diagramPublic"> |
23 | 23 |
<li id="public_diagram_id_${diagramPublic.id}"> |
24 |
<a href="<%= getServletContext().getInitParameter("HOME_URL") %>upload-files?diagram_id=${diagramPublic.id}&diagram_hash=${diagramPublic.hash}">${diagramPublic.name}</a>
|
|
24 |
<a href="<%= getServletContext().getInitParameter("HOME_URL") %>?diagram_id=${diagramPublic.id}&diagram_hash=${diagramPublic.hash}">${diagramPublic.name}</a> |
|
25 | 25 |
</li> |
26 | 26 |
</c:forEach> |
27 | 27 |
</ul> |
sources/src/main/webapp/showGraph.jsp | ||
---|---|---|
1 | 1 |
<%@page contentType="text/html" pageEncoding="UTF-8"%> |
2 |
<%@page import="cz.zcu.kiv.offscreen.graph.efp.EfpGraphicSettings"%> |
|
3 |
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%> |
|
4 |
<%@page import="cz.zcu.kiv.comav.loaders.osgi.service.RequiredService"%> |
|
5 |
<%@page import="sun.reflect.ReflectionFactory.GetReflectionFactoryAction"%> |
|
6 | 2 |
<%@page import="java.util.Map"%> |
7 | 3 |
<%@page import="com.google.gson.Gson"%> |
8 | 4 |
<%@page import="com.google.gson.GsonBuilder"%> |
... | ... | |
60 | 56 |
|
61 | 57 |
<body> |
62 | 58 |
<% |
63 |
//String path = request.getContextPath(); |
|
64 | 59 |
String getProtocol = request.getScheme(); |
65 | 60 |
String getDomain = request.getServerName(); |
66 | 61 |
String getPort = Integer.toString(request.getServerPort()); |
67 |
String getPath = getProtocol+"://"+getDomain+":"+getPort+"/";
|
|
62 |
String getPath = getProtocol + "://" + getDomain + ":" + getPort + "/";
|
|
68 | 63 |
String getURI = request.getRequestURI(); |
69 | 64 |
|
70 |
// set graphic settings for EFP graph |
|
71 |
ServletContext context = this.getServletContext(); |
|
72 |
EfpGraphicSettings efpSettings = new EfpGraphicSettings(); |
|
73 |
|
|
74 |
efpSettings.setMinInterfaceDiameter(Integer.valueOf(context.getInitParameter("minInterfaceDiameter"))); |
|
75 |
efpSettings.setMaxInterfaceDiameter(Integer.valueOf(context.getInitParameter("maxInterfaceDiameter"))); |
|
76 |
|
|
77 |
// JSONize graph settings |
|
78 |
GsonBuilder gsonBuilder = new GsonBuilder(); |
|
79 |
Gson gson = gsonBuilder.create(); |
|
80 |
|
|
81 |
String efpSettingsJson = gson.toJson(efpSettings); |
|
82 |
|
|
83 | 65 |
// logged-in user |
84 | 66 |
boolean logged_user = false; |
85 |
boolean diagram_id_hash_set = false; |
|
86 |
if (request.getSession().getAttribute("logged_user") == "1"){ |
|
67 |
if (request.getSession().getAttribute("logged_user") == "1") { |
|
87 | 68 |
logged_user = true; |
88 | 69 |
} |
89 | 70 |
|
90 |
if (request.getParameter("diagram_id")!= null && request.getParameter("diagram_hash") != null) { |
|
71 |
// saved diagram |
|
72 |
boolean diagram_id_hash_set = false; |
|
73 |
if (request.getParameter("diagram_id") != null && request.getParameter("diagram_hash") != null) { |
|
91 | 74 |
diagram_id_hash_set = true; |
92 | 75 |
} |
93 | 76 |
|
94 | 77 |
String diagram_url = ""; |
95 |
boolean show_icon_save = true; |
|
96 | 78 |
if (logged_user && diagram_id_hash_set) { |
97 |
diagram_url = "?diagram_id="+ request.getParameter("diagram_id")+"&diagram_hash=" + request.getParameter("diagram_hash"); |
|
98 |
show_icon_save = true; |
|
99 |
} |
|
100 |
|
|
101 |
boolean is_efp_diagram = false; |
|
102 |
if (request.getAttribute("efpPortalRefererUrl") != null) { |
|
103 |
is_efp_diagram = true; |
|
79 |
diagram_url = "?diagram_id=" + request.getParameter("diagram_id") + "&diagram_hash=" + request.getParameter("diagram_hash"); |
|
104 | 80 |
} |
105 | 81 |
%> |
106 | 82 |
|
... | ... | |
110 | 86 |
|
111 | 87 |
<h2 class="header-title">Interactive Multimodal Graph Explorer</h2> |
112 | 88 |
|
113 |
<% if (!is_efp_diagram) { %> |
|
114 |
<jsp:include page="logged_user.jsp" /> |
|
115 |
<% } %> |
|
89 |
<jsp:include page="logged_user.jsp" /> |
|
116 | 90 |
|
117 | 91 |
<nav class="navbar" id="navigation"> |
118 | 92 |
<ul> |
... | ... | |
172 | 146 |
<hr class="navbar-separator"> |
173 | 147 |
</li> |
174 | 148 |
<li> |
175 |
<% if (!is_efp_diagram) { %> |
|
176 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%>upload-files<%=diagram_url%>" class="btn btn-block back-to-upload" id="view_back_to_upload" title="Back to upload"></a> |
|
177 |
<% } else { %> |
|
178 |
<a href="<%=request.getAttribute("efpPortalRefererUrl")%>" class="btn btn-block back-to-upload" id="view_back_to_upload" title="Back"></a> |
|
179 |
<% } %> |
|
149 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%><%=diagram_url%>" class="btn btn-block back-to-upload" id="view_back_to_upload" title="Back to upload"></a> |
|
180 | 150 |
</li> |
181 | 151 |
<li> |
182 | 152 |
<hr class="navbar-separator"> |
... | ... | |
186 | 156 |
<img src="images/layout_off.png" id="applyLayoutImg" alt="Apply layout to current graph."> |
187 | 157 |
</button> |
188 | 158 |
</li> |
189 |
<% |
|
190 |
if (request.getAttribute("efpPortalEfpNames") != null) { |
|
191 |
final Map<String, String> efpMappings = (Map<String, String>)request.getAttribute("efpPortalEfpNames"); |
|
192 |
if (!efpMappings.isEmpty()) { |
|
193 |
%> |
|
194 |
<li><hr class="navbar-separator"></li> |
|
195 |
<li> |
|
196 |
<select name="EFPselector" class="EFP-selector" id="EFPselector"> |
|
197 |
<option value="" selected="selected" class="option_default">none</option> |
|
198 |
<% for (Map.Entry<String, String> entry : efpMappings.entrySet()) { %> |
|
199 |
<option value="<%=entry.getValue()%>"><%=entry.getValue()%></option> |
|
200 |
<% } %> |
|
201 |
</select> |
|
202 |
</li> |
|
203 |
<% |
|
204 |
} |
|
205 |
} |
|
206 |
%> |
|
207 |
|
|
208 |
<% if (show_icon_save) { %> |
|
209 | 159 |
<li> |
210 | 160 |
<hr class="navbar-separator"> |
211 | 161 |
</li> |
... | ... | |
218 | 168 |
<hr class="navbar-separator"> |
219 | 169 |
</li> |
220 | 170 |
<li> |
221 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%>graph?diagram_id=<%=request.getParameter("diagram_id")%>&diagram_hash=<%=request.getParameter("diagram_hash")%>" class="btn btn-block view-refresh-diagram" id="view_refresh_diagram" title="Refresh diagram"></a>
|
|
171 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%>graph<%=diagram_url%>" class="btn btn-block view-refresh-diagram" id="view_refresh_diagram" title="Refresh diagram"></a>
|
|
222 | 172 |
</li> |
223 | 173 |
<li> |
224 | 174 |
<hr class="navbar-separator"> |
225 | 175 |
</li> |
226 | 176 |
<li> |
227 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%>graph?diagram_id=<%=request.getParameter("diagram_id")%>&diagram_hash=<%=request.getParameter("diagram_hash")%>" class="btn btn-block view-refresh-reset-diagram" id="view_refresh_reset_diagram" onclick="reset_diagram(<%=request.getParameter("diagram_id")%>,'<%=request.getParameter("diagram_hash")%>'); return false;" title="Refresh diagram - reset position"></a>
|
|
177 |
<a href="<%=getServletContext().getInitParameter("HOME_URL")%>graph<%=diagram_url%>" class="btn btn-block view-refresh-reset-diagram" id="view_refresh_reset_diagram" onclick="reset_diagram(<%=request.getParameter("diagram_id")%>,'<%=request.getParameter("diagram_hash")%>'); return false;" title="Refresh diagram - reset position"></a>
|
|
228 | 178 |
</li> |
229 |
<% } %> |
|
230 | 179 |
</ul> |
231 | 180 |
</nav> |
232 | 181 |
</header> |
... | ... | |
278 | 227 |
app.HOME_URL = '<%=getPath%>imiger/'; |
279 | 228 |
|
280 | 229 |
$(document).ready(function() { |
281 |
var loaderFn; |
|
282 |
<% if (request.getAttribute("graph_json") != null) { %> |
|
283 |
loaderFn = app.efpLoader('<%=request.getAttribute("graph_json")%>', '<%=efpSettingsJson%>'); |
|
284 |
<% } else { %> |
|
285 |
loaderFn = app.diagramLoader('<%=request.getParameter("diagram_id")%>', '<%=request.getParameter("diagram_hash")%>'); |
|
286 |
<% } %> |
|
230 |
var loaderFn = app.diagramLoader('<%=request.getParameter("diagram_id")%>', '<%=request.getParameter("diagram_hash")%>'); |
|
287 | 231 |
|
288 | 232 |
app.run(loaderFn); |
289 | 233 |
}); |
sources/src/main/webapp/uploadFiles.jsp | ||
---|---|---|
35 | 35 |
<p class="errorMessage">${errorMessage}</p> |
36 | 36 |
</c:if> |
37 | 37 |
|
38 |
<h3>Upload components:</h3>
|
|
38 |
<h3>Upload SPADe data:</h5>
|
|
39 | 39 |
|
40 |
<form name="uploadForm" action="upload-files" method="post" enctype="multipart/form-data">
|
|
40 |
<form name="uploadForm" method="post" enctype="multipart/form-data"> |
|
41 | 41 |
<div class="form-field"> |
42 |
<input type="file" name="uploads[]" class="hidden" id="fileUpload" multiple> |
|
43 |
|
|
44 |
<button type="button"> |
|
45 |
<label for="fileUpload">Browse files</label> |
|
46 |
</button> |
|
47 |
|
|
48 |
<label for="fileUpload" id="fileCounter"></label> |
|
42 |
<input type="file" name="file"> |
|
49 | 43 |
</div> |
50 | 44 |
|
51 | 45 |
<input type="submit" value="Upload"> |
52 | 46 |
</form> |
53 | 47 |
|
54 |
<hr class="verticalSeparator"> |
|
55 |
|
|
56 |
<% if (request.getParameter("diagram_id") != null) { %> |
|
57 |
<form name="diagramForm" action="graph?diagram_id=<%= request.getParameter("diagram_id") %>&diagram_hash=<%= request.getParameter("diagram_hash") %>" method="post"> |
|
58 |
<input type="hidden" name="diagram_id" value="<%= request.getParameter("diagram_id") %>"> |
|
59 |
|
|
60 |
<% |
|
61 |
if (request.getSession().getAttribute("logged_user_id") != null && |
|
62 |
request.getAttribute("diagram_user_id") != null && |
|
63 |
request.getAttribute("diagram_user_id").toString().compareTo(request.getSession().getAttribute("logged_user_id").toString()) == 0 ) { %> |
|
64 |
|
|
65 |
<div class="form-field"> |
|
66 |
<label for="diagramName">Edit diagram name:</label><br> |
|
67 |
<input type="text" name="diagram_name" id="diagramName" value="${diagram_name}"> |
|
68 |
</div> |
|
69 |
|
|
70 |
<div class="form-field"> |
|
71 |
<label for="publicDiagram">Public diagram:</label><br> |
|
72 |
<input type="checkbox" name="public_diagram" id="publicDiagram" value="1" ${diagram_public_checked}> |
|
73 |
</div> |
|
74 |
|
|
75 |
<% } else if (request.getSession().getAttribute("logged_user_id") != null) { %> |
|
76 |
<div class="form-field"> |
|
77 |
<label for="diagramName">Edit diagram name:</label><br> |
|
78 |
<input type="text" name="diagram_name" id="diagramName" value="${diagram_name}"> |
|
79 |
</div> |
|
80 |
|
|
81 |
<div class="form-field"> |
|
82 |
<label for="copyDiagram">Copy diagram:</label><br> |
|
83 |
<input type="checkbox" name="copy_diag" id="copyDiagram" value="1"> |
|
84 |
</div> |
|
85 |
<% } %> |
|
86 |
|
|
87 |
<% } else { %> |
|
88 |
<form name="diagramForm" action="graph" method="post"> |
|
89 |
<% if (request.getSession().getAttribute("logged_user") == "1" ) { %> |
|
90 |
<div class="form-field"> |
|
91 |
<label for="diagramName">Diagram name:</label><br> |
|
92 |
<input type="text" name="diagram_name" id="diagramName"> |
|
93 |
</div> |
|
94 |
|
|
95 |
<div class="form-field"> |
|
96 |
<label for="publicDiagram">Public diagram:</label><br> |
|
97 |
<input type="checkbox" name="public_diagram" id="publicDiagram" value="1" ${diagram_public_checked}> |
|
98 |
</div> |
|
99 |
<% } %> |
|
100 |
<% } %> |
|
101 |
|
|
102 |
<!-- |
|
103 |
<div class="form-field"> |
|
104 |
<label for="framework">Choose framework:</label><br> |
|
105 |
<select name="framework" id="framework"> |
|
106 |
<option value="osgi">OSGi</option> |
|
107 |
<option value="ejb3">EJB3</option> |
|
108 |
<option value="sofa2">SOFA2</option> |
|
109 |
</select> |
|
110 |
</div> |
|
111 |
--> |
|
112 |
|
|
113 |
<input type="submit" value="Start visualization" ${not empty componentNames ? "" : "disabled='disabled'"}> |
|
114 |
</form> |
|
115 |
|
|
116 | 48 |
<c:if test="${not empty componentNames}"> |
117 | 49 |
<hr class="verticalSeparator"> |
118 | 50 |
|
... | ... | |
139 | 71 |
</c:forEach> |
140 | 72 |
</ul> |
141 | 73 |
</c:if> |
74 |
|
|
75 |
<hr class="verticalSeparator"> |
|
76 |
|
|
77 |
<form name="diagramForm" action="graph" method="post"> |
|
78 |
<input type="submit" value="Start visualization" ${not empty componentNames ? "" : "disabled='disabled'"}> |
|
79 |
</form> |
|
142 | 80 |
</div> |
143 | 81 |
</main> |
144 | 82 |
</div> |
145 |
|
|
146 |
<script> |
|
147 |
var fileUploadField = document.getElementById('fileUpload'); |
|
148 |
var fileCounter = document.getElementById('fileCounter'); |
|
149 |
|
|
150 |
fileUploadField.addEventListener('change', function() { |
|
151 |
var message = this.files.length === 1 ? '1 file selected.' : (this.files.length + ' files selected.'); |
|
152 |
fileCounter.innerText = message; |
|
153 |
}); |
|
154 |
</script> |
|
155 | 83 |
</body> |
156 | 84 |
</html> |
Také k dispozici: Unified diff
dropped some unused functionality, merged DefaultPage with UploadFiles servlet