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

Add option select for predefined verification type

parent ce42fde4
No related branches found
No related tags found
No related merge requests found
...@@ -129,14 +129,17 @@ select:focus::-ms-value { ...@@ -129,14 +129,17 @@ select:focus::-ms-value {
} }
.dmn-verifier-header-item { .dmn-verifier-header-item {
margin: 8px 15px; margin: 8px 12px;
} }
.dmn-verifier-select { .dmn-verifier-select {
position: relative;
flex-grow: 4; flex-grow: 4;
} }
#dmn-verifier-types {
flex-grow: 1;
max-width: 200px;
}
.dmn-ERROR { .dmn-ERROR {
list-style-image: url("img/ERROR.png"); list-style-image: url("img/ERROR.png");
......
...@@ -7,15 +7,54 @@ let dmnApi = rootUrl + 'api/dmn/'; ...@@ -7,15 +7,54 @@ let dmnApi = rootUrl + 'api/dmn/';
*/ */
let verifierResults = {}; let verifierResults = {};
/**
*
* @type {Array.<VerificationType>}
*/
let types = [];
let $verifierTypes;
// load types
$.ajax({
url: dmnApi + 'verification/type',
type: 'GET',
contentType: 'text/xml',
success: function (data) {
types = data;
// sort types by classification and name
types.sort(function (
/** VerificationType */ firstEl, /** VerificationType */ secondEl) {
if (firstEl.classification.name
=== secondEl.classification.name) {
if (firstEl.niceName === secondEl.niceName) {
return 0;
}
return firstEl.niceName < secondEl.niceName ? -1 : 1;
} else if (firstEl.classification.name
< secondEl.classification.name) {
return -1;
} else {
return 1;
}
});
$verifierTypes = renderTypeOptions();
}
});
function cleanDmnVerifierRoot() { function cleanDmnVerifierRoot() {
let $root = $('#root-dmn-verifier').empty(); let $root = $('#root-dmn-verifier').empty();
let $header = $(` let $header = $(`
<div id="dmn-verifier-header"> <div id="dmn-verifier-header">
`); `);
// add types
$header.append($verifierTypes);
// Add Button
$header.append($(` $header.append($(`
<button class="clickable dmn-verifier-header-item" id="dmn-button-verify" onClick="checkVerifications()"> <button class="clickable dmn-verifier-header-item" id="dmn-button-verify" onClick="checkVerifications()">
Verify</button> Verify</button>
`)); `));
// add header to root
$root.append($header); $root.append($header);
$root.append($(`<div id="dmn-verifier-content">`)); $root.append($(`<div id="dmn-verifier-content">`));
return $root; return $root;
...@@ -34,8 +73,13 @@ function getVerifications() { ...@@ -34,8 +73,13 @@ function getVerifications() {
} else { } else {
console.log('Requesting dmn verifications..'); console.log('Requesting dmn verifications..');
} }
let apiPath = dmnApi + 'verification';
// check, if a verifier is preselected
if ($verifierTypes[0].selectedOptions[0].value !== 'all') {
apiPath += "/type/" + $verifierTypes[0].selectedOptions[0].value;
}
$.ajax({ $.ajax({
url: dmnApi + 'verification', url: apiPath,
type: 'POST', type: 'POST',
contentType: 'text/xml', contentType: 'text/xml',
data: xml, data: xml,
...@@ -69,6 +113,35 @@ function getVerifications() { ...@@ -69,6 +113,35 @@ function getVerifications() {
}); });
} }
function renderTypeOptions() {
let $select = $(`
<select name="verifier" id="dmn-verifier-types"
class="dmn-verifier-header-item dmn-verifier-select clickable">
`);
$select.append($(`<option value="all">All verifier</option>`));
let currentOpt = '';
let $curGroup;
for (let i = 0; i < types.length; i++) {
let bolNewGroup = currentOpt
!== types[i].classification.niceName;
if (bolNewGroup) {
if (currentOpt === currentOpt) {
$select.append($curGroup);
}
$curGroup = ($(
`<optgroup label="${types[i].classification.niceName}">
`));
currentOpt = types[i].classification.niceName;
}
$curGroup.append($(`
<option value="${types[i].name}">${types[i].niceName}</option>`
));
}
$select.append($curGroup);
return $select;
}
function renderDmnVerifierOptions() { function renderDmnVerifierOptions() {
let $header = $('#dmn-verifier-header'); let $header = $('#dmn-verifier-header');
let $select = $(` let $select = $(`
...@@ -80,21 +153,33 @@ function renderDmnVerifierOptions() { ...@@ -80,21 +153,33 @@ function renderDmnVerifierOptions() {
let currentOpt = ''; let currentOpt = '';
let $curGroup; let $curGroup;
for (let i = 0; i < verifierResults.verifier.length; i++) { for (let i = 0; i < verifierResults.verifier.length; i++) {
let verifier = verifierResults.verifier[i];
let bolNewGroup = currentOpt let bolNewGroup = currentOpt
!== verifierResults.verifier[i].type.classification.niceName; !== verifier.type.classification.niceName;
if (bolNewGroup) { if (bolNewGroup) {
if (currentOpt === currentOpt) { if (currentOpt === currentOpt) {
$select.append($curGroup); $select.append($curGroup);
} }
$curGroup = ($( $curGroup = ($(
`<optgroup label="${verifierResults.verifier[i].type.classification.niceName}"> `<optgroup label="${verifier.type.classification.niceName}">
`)); `));
currentOpt = verifierResults.verifier[i].type.classification.niceName; currentOpt = verifier.type.classification.niceName;
}
if (verifierResults.verifier.length === 1) {
$curGroup.append($(`
<option value="${verifier.type.name}" selected>${verifier.type.niceName} (${verifier.size})</option>
`));
} else {
$curGroup.append($(`
<option value="${verifier.type.name}">${verifier.type.niceName} (${verifier.size})</option>
`));
} }
$curGroup.append(renderSelectEntry(verifierResults.verifier[i]));
} }
$select.append($curGroup); $select.append($curGroup);
$header.append($select); $header.append($select);
if (verifierResults.verifier.length === 1) {
renderVerifierResult($select[0].selectedOptions[0]);
}
} }
/** /**
......
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