From 9cbdf2c26536f6e2c13c6e0ca9786a6c417cca1d Mon Sep 17 00:00:00 2001 From: Jonas Blatt <jonasblatt@uni-koblenz.de> Date: Wed, 23 Oct 2019 11:20:50 +0200 Subject: [PATCH] #23 Fullscreen of dmn canvas only when expected --- .../META-INF/resources/css/dmnEditorTabs.css | 27 +++++++++ .../resources/css/img/iconFullscreen.png | Bin 0 -> 257 bytes .../META-INF/resources/css/stylesheets.css | 11 +--- .../resources/js/dmnVerifierActions.js | 4 +- .../META-INF/resources/js/dmnViewer.js | 52 ++++++++++-------- 5 files changed, 58 insertions(+), 36 deletions(-) create mode 100644 dmnverifierfrontend/src/main/resources/META-INF/resources/css/img/iconFullscreen.png diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/css/dmnEditorTabs.css b/dmnverifierfrontend/src/main/resources/META-INF/resources/css/dmnEditorTabs.css index 4f04db21..c84642e9 100644 --- a/dmnverifierfrontend/src/main/resources/META-INF/resources/css/dmnEditorTabs.css +++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/css/dmnEditorTabs.css @@ -72,3 +72,30 @@ border-bottom: solid 3px #79818d; margin-bottom: 0; } + +.fullscreen-tabs { + position: absolute !important; + top: 0px; + left: 0px; +} + +.fullscreen { + z-index: 9999; + width: 100%; + height: calc(100% - 40px); + position: fixed !important; + top: 40px; + left: 0; +} + +.toggle-fullscreen { + background-image: url("img/iconFullscreen.png"); + margin: 5px; + display: block; + background-size: cover; + background-position: center; + min-width: 20px; + max-width: 20px; + min-height: 20px; + max-height: 20px; +} diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/css/img/iconFullscreen.png b/dmnverifierfrontend/src/main/resources/META-INF/resources/css/img/iconFullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3c7e1c0d132f6dcb0451f538ef0b7d41e33688 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}EX7WqAsieW95oy%9SjT% zoCO|{#S9GG!XV7ZFl&wk0|UciPZ!6Kh}O5$9l4qf1YGAoD)q8;JgI2o)+)D@)&HSx z)UNRIy}hwJCN6BgsHF6d{pKH@dOMXyP6zws*qP7FjvMzH#E7z<sLRm(Q1a?F$9c92 zi)u!T=!<bZ)h?5lhHSh4%zXg^*969;7nA1Q3d(x0dC`7>q;?e^<2y6h>g9e+XLu5J z#byD+alQ!#ca9m#ekgmD{lN60WW%AGyBXBAU*%W4VTezy^7Fm(#B>S+0|SGntDnm{ Hr-UW|1|M8z literal 0 HcmV?d00001 diff --git a/dmnverifierfrontend/src/main/resources/META-INF/resources/css/stylesheets.css b/dmnverifierfrontend/src/main/resources/META-INF/resources/css/stylesheets.css index b20c63e3..c7826d4f 100644 --- a/dmnverifierfrontend/src/main/resources/META-INF/resources/css/stylesheets.css +++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/css/stylesheets.css @@ -110,15 +110,6 @@ span.select2 { height: 900px; } -.fullscreen { - z-index: 9999; - width: 100%; - height: 100%; - position: fixed !important; - top: 0; - left: 0; -} - .hidden { display: none !important; } @@ -323,7 +314,7 @@ span.select2 { color: white !important; } -.highlightsoft { +.highlight-soft { background-color: lightblue !important; fill: lightblue !important; color: black !important; 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 484a851b..881f4707 100644 --- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js +++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnVerifierActions.js @@ -6,9 +6,9 @@ function performVerificationFix(verificationEntry, fix, id) { console.log("FIX", fix); // highlight row - $('.verification-container').removeClass('highlightsoft'); - $('#ver-entry-' + id).addClass('highlightsoft'); cleanHighlightFunction(); + $('.verification-container').removeClass('highlight-soft'); + $('#ver-entry-' + id).addClass('highlight-soft'); for (let i = 0; i < fix.actions.length; i++) { switch (fix.actions[i].actionType) { case 'SHOW': 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 221e7cd0..b40ca4a6 100644 --- a/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js +++ b/dmnverifierfrontend/src/main/resources/META-INF/resources/js/dmnViewer.js @@ -6,28 +6,6 @@ let CLASS_NAMES = { literalExpression: 'dmn-icon-literal-expression' }; -// Fullscreen functionality for dmn table -$(document).ready(function () { - $(".dmn-js-parent").dblclick(function () { - $(".dmn-js-parent").toggleClass('fullscreen'); - $("#root-dmn-verifier").toggleClass('hidden'); - $("#dmn-top").toggleClass('hidden'); - $(".editor-tabs").toggleClass('hidden'); - // calc height - if ($(".dmn-js-parent").hasClass('fullscreen')) { - $(".dmn-js-parent").css('height', ''); - } else { - 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'); - }); -}); - $tabs.delegate('.tab', 'click', function (e) { var viewIdx = parseInt(this.getAttribute('data-id'), 10); var view = dmnModeler.getViews()[viewIdx]; @@ -54,10 +32,16 @@ dmnModeler.on('views.changed', function (event) { var {views, activeView} = event; // clear tabs $tabs.empty(); + // add fullscreen + $tabs.append($(` + <div class="toggle-fullscreen clickable" onclick="toggleFullscreen()"> + </div> + `)); + // add tabs views.forEach(function (v, idx) { const className = CLASS_NAMES[v.type]; var tab = $(` - <div class="tab ${v === activeView ? 'active' : ''}" + <div class="tab clickable ${v === activeView ? 'active' : ''}" data-id="${idx}" id="tab-dec-${v.element.id}"> <span class="${className}"></span> ${v.element.name || v.element.id} @@ -111,6 +95,26 @@ function openDiagram(dmnXML) { }); } +function toggleFullscreen() { + $(".dmn-js-parent").toggleClass('fullscreen'); + $("#root-dmn-verifier").toggleClass('hidden'); + $("#dmn-top").toggleClass('hidden'); + $(".editor-tabs").toggleClass('fullscreen-tabs'); + // calc height + if ($(".dmn-js-parent").hasClass('fullscreen')) { + $(".dmn-js-parent").css('height', ''); + } else { + 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'); +} + +// ----- let renderHighlightFunction = []; function performHighlightFunction() { @@ -120,7 +124,7 @@ function performHighlightFunction() { } function cleanHighlightFunction() { - $('.verification-container').removeClass('highlightsoft'); + $('.verification-container').removeClass('highlight-soft'); for (let i = 0; i < renderHighlightFunction.length; i++) { renderHighlightFunction[i].clean(); } -- GitLab