Skip to content
Snippets Groups Projects
Commit 41214a46 authored by Jonas Blatt's avatar Jonas Blatt :ant:
Browse files

Merge branch 'feature/sessionscopeddmn' into 'develop'

Feature/sessionscopeddmn

See merge request jonasblatt/ma-jonasblatt-dmn-verifier!39
parents 358a7402 d692a8c4
No related branches found
No related tags found
No related merge requests found
package de.unikoblenz.fgbks.dmn.frontend;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
@SessionScoped
public class DmnBean implements Serializable {
protected String dmnXml;
public String getDmnXml() {
return dmnXml;
}
public void setDmnXml(String dmnXml) {
this.dmnXml = dmnXml;
}
}
package de.unikoblenz.fgbks.dmn.frontend;
import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/dmn")
public class DmnSessionApi {
@Inject
DmnBean dmnBean;
@GET
@Path("/getdmn")
@Produces(MediaType.TEXT_XML)
public Response getSessionDmn() {
if (dmnBean.getDmnXml() == null) {
return Response.noContent().build();
}
return Response.ok(dmnBean.getDmnXml()).build();
}
@POST
@Path("/setdmn")
@Consumes(MediaType.TEXT_XML)
public void setSessionDmn(String dmnXml) {
dmnBean.setDmnXml(dmnXml);
}
}
document.addEventListener("DOMContentLoaded", function () { $(document).ready(function () {
$('#dmn-file-upload').on('change', loadDmnFromFile); $('#dmn-file-upload').on('change', loadDmnFromFile);
$('#dmn-file-empty').on('click', loadEmptyFile); $('#dmn-file-empty').on('click', loadEmptyFile);
$('#dmn-file-download').on('click', exportDiagram); $('#dmn-file-download').on('click', download);
// try to load dmn from session
loadSessionDmn();
}); });
function loadDmnFromFile(evt) { function loadDmnFromFile(evt) {
...@@ -26,13 +28,53 @@ function loadEmptyFile() { ...@@ -26,13 +28,53 @@ function loadEmptyFile() {
}); });
} }
function download(filename, dmnXml) { function download() {
let el = document.createElement('a'); let dmnXml = exportDiagram();
el.setAttribute('href', console.log("xxx:" + dmnXml);
'data:text/xml;charset=utf-8,' + encodeURIComponent(dmnXml)); if (dmnXml !== undefined) {
el.setAttribute('download', filename); let el = document.createElement('a');
el.style.display = 'none'; el.setAttribute('href',
document.body.appendChild(el); 'data:text/xml;charset=utf-8,' + dmnXml);
el.click(); el.setAttribute('download', "dmnTable.dmn");
document.body.removeChild(el); el.style.display = 'none';
document.body.appendChild(el);
el.click();
document.body.removeChild(el);
}
}
let oSerializer = new XMLSerializer();
function loadSessionDmn() {
$.ajax({
timeout: 1000,
url: "/dmn/getdmn",
type: 'GET',
contentType: 'text/xml',
error: function (err) {
// nothing
console.log(">-->--> loading session dmn failed. <--<--<");
// loading empty dmn
loadEmptyFile();
},
success: function (data) {
let sXML = oSerializer.serializeToString(data);
openDiagram(sXML);
}
});
}
function saveSessionDmn() {
let dmnXml = exportDiagram();
$.ajax({
timeout: 1000,
url: "/dmn/setdmn",
type: 'POST',
contentType: 'text/xml',
data: dmnXml,
error: function (err) {
// nothing
console.log(">-->--> saving session dmn failed. <--<--<");
}
});
} }
...@@ -47,7 +47,6 @@ function loadAvailableTypes() { ...@@ -47,7 +47,6 @@ function loadAvailableTypes() {
timeout: 1000, timeout: 1000,
url: dmnApi + 'verification/types', url: dmnApi + 'verification/types',
type: 'GET', type: 'GET',
contentType: 'text/xml',
error: function (err) { error: function (err) {
inactiveBackend = true; inactiveBackend = true;
handleStatus(); handleStatus();
...@@ -117,6 +116,7 @@ function cleanDmnVerifierRoot() { ...@@ -117,6 +116,7 @@ function cleanDmnVerifierRoot() {
function checkVerifications() { function checkVerifications() {
cleanDmnVerifierRoot(); cleanDmnVerifierRoot();
saveSessionDmn();
getVerifications(); getVerifications();
} }
......
...@@ -28,6 +28,8 @@ let dmnModeler = new DmnJS({ ...@@ -28,6 +28,8 @@ let dmnModeler = new DmnJS({
}); });
dmnModeler.on('views.changed', function (event) { dmnModeler.on('views.changed', function (event) {
// save dmn in Session
saveSessionDmn();
var {views, activeView} = event; var {views, activeView} = event;
// clear tabs // clear tabs
$tabs.empty(); $tabs.empty();
...@@ -48,14 +50,16 @@ dmnModeler.on('views.changed', function (event) { ...@@ -48,14 +50,16 @@ dmnModeler.on('views.changed', function (event) {
* Save diagram contents and print them to the console. * Save diagram contents and print them to the console.
*/ */
function exportDiagram() { function exportDiagram() {
dmnModeler.saveXML({format: true}, function (err, xml) { let retXml = undefined;
dmnModeler.saveXML({format: false}, function (err, xml) {
if (err) { if (err) {
return console.log('could not save DMN 1.1 diagram'); console.log('could not export DMN 1.1 diagram');
} else { } else {
console.log('saving dmn..'); console.log('exporting DMN 1.1 diagram..');
retXml = xml;
} }
download("dmnTable.dmn", xml);
}); });
return retXml;
} }
/** /**
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<properties> <properties>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<surefire-plugin.version>2.22.0</surefire-plugin.version> <surefire-plugin.version>2.22.0</surefire-plugin.version>
<quarkus.version>0.25.0</quarkus.version> <quarkus.version>0.23.2</quarkus.version>
<maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.target>1.8</maven.compiler.target>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<version>0.9.4</version> <version>0.9.5</version>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment