From 5a72e8cfa9db0776157f6dc51536dfd2bdb7ab39 Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Mon, 28 Oct 2019 18:49:55 +0100
Subject: [PATCH] Remove fix Button for Update/Delete/Create

---
 .../META-INF/resources/js/dmnVerifier.js      |  3 ++-
 .../resources/js/dmnVerifierActions.js        | 19 ++++++++++++-------
 .../META-INF/resources/js/dmnViewer.js        | 14 +++++++++-----
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
index e8a213ce..6892d48e 100644
--- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
+++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifier.js
@@ -340,7 +340,8 @@ function renderFixButtons($fixButtons, verificationEntry) {
       <button class="verification-fix-button clickable">${fix.fixName}</button>
     `);
     $fixButton.on('click', function () {
-      performVerificationFix(verificationEntry, fix, verificationEntry.id);
+      performVerificationFix(verificationEntry, fix, verificationEntry.id,
+          $fixButton);
     });
     $fixButtons.append($fixButton);
   }
diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js
index 6adf2109..7d9df23a 100644
--- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js
+++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js
@@ -10,7 +10,7 @@ function getCurrentModeler() {
  * @param {VerificationEntry}  verificationEntry
  * @param {VerificationFix} fix
  */
-function performVerificationFix(verificationEntry, fix, id) {
+function performVerificationFix(verificationEntry, fix, id, $callerButton) {
   console.log("FIX", fix);
   // highlight row
   cleanHighlightFunction();
@@ -22,12 +22,16 @@ function performVerificationFix(verificationEntry, fix, id) {
         performVerificationFixSHOW(verificationEntry, fix.actions[i]);
         break;
       case 'UPDATE':
-        // break;
+        alert("Action not defined: " + fix);
+        $callerButton.css('display', 'none');
+        break;
       case 'CREATE':
         performVerificationFixCREATE(verificationEntry, fix.actions[i]);
+        $callerButton.css('display', 'none');
         break;
       case 'DELETE':
         performVerificationFixDELETE(verificationEntry, fix.actions[i]);
+        $callerButton.css('display', 'none');
         break;
       default:
         alert("Action not defined: " + fix);
@@ -197,13 +201,15 @@ function performVerificationFixDELETE(verificationEntry, fixAction) {
  * @param {Action} fixAction
  */
 function createRule(verificationEntry, fixAction) {
-  $('#tab-dec-'
-      + verificationEntry.elements[0].identifier['decisionId']).click();
+  openViewWithId(verificationEntry.elements[0].identifier['decisionId']);
   const modeler = getCurrentModeler();
   const rule = modeler.addRow({type: "dmn:DecisionRule"});
   const {cells} = rule;
   for (const [key, value] of Object.entries(fixAction.actionValues)) {
-    modeler.editCell(getCellByColId(key, cells), value);
+    let cell = getCellByColId(key, cells);
+    if (cell) {
+      modeler.editCell(getCellByColId(key, cells), value);
+    }
   }
 }
 
@@ -213,8 +219,7 @@ function createRule(verificationEntry, fixAction) {
  * @param {Action} fixAction
  */
 function deleteRule(verificationEntry, fixAction) {
-  $('#tab-dec-'
-      + verificationEntry.elements[0].identifier['decisionId']).click();
+  openViewWithId(verificationEntry.elements[0].identifier['decisionId']);
   const modeler = getCurrentModeler();
   for (const [key, value] of Object.entries(fixAction.actionValues)) {
     if (key === 'ruleId') {
diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js
index 275f92a8..78d7169d 100644
--- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js
+++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js
@@ -107,11 +107,15 @@ function toggleFullscreen() {
     let dmnModelerHeight = $(window).height() / 2.5;
     $(".dmn-js-parent").css('height', dmnModelerHeight + 'px');
   }
-  // zoom to fit full viewport
-  var activeEditor = dmnModeler.getActiveViewer();
-  // access active editor components
-  var canvas = activeEditor.get('canvas');
-  //canvas.zoom('fit-viewport');
+}
+
+function openViewWithId(id) {
+  var views = dmnModeler.getViews();
+  views.forEach(function (view) {
+    if (view.element.id === id) {
+      dmnModeler.open(view);
+    }
+  });
 }
 
 // -----
-- 
GitLab