From 50aaef5103541c8ac3fca903518791d7f6f044f2 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Thu, 21 May 2020 15:14:39 +0100 Subject: [PATCH] Make all dialogs handle smaller height screens better Covers library, clipboard and project dialogs --- .../editor-client/src/js/ui/clipboard.js | 18 +++++++++++++++-- .../editor-client/src/js/ui/library.js | 20 +++++++++++++++++-- .../src/js/ui/projects/projects.js | 17 +++++++++++++--- .../editor-client/src/sass/library.scss | 3 ++- .../editor-client/src/sass/projects.scss | 15 ++++++++++++-- 5 files changed, 63 insertions(+), 10 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js index f7fa51b28..33b306752 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/clipboard.js @@ -184,7 +184,7 @@ RED.clipboard = (function() { ''+ '
'+ '
'+ - '
'+ + '
'+ ''+ '
'+ '
'+ @@ -216,7 +216,7 @@ RED.clipboard = (function() { ' '+ ''+ '
'+ - '
'+ + '
'+ ''+ '
'+ '
'+ @@ -474,6 +474,12 @@ RED.clipboard = (function() { },100) } + var dialogHeight = 400; + var winHeight = $(window).height(); + if (winHeight < 600) { + dialogHeight = 400 - (600 - winHeight); + } + $(".red-ui-clipboard-dialog-box").height(dialogHeight); dialog.dialog("option","title",RED._("clipboard.importNodes")).dialog("open"); popover = RED.popover.create({ @@ -639,6 +645,14 @@ RED.clipboard = (function() { $("#red-ui-clipboard-dialog-export-fmt-mini").trigger("click"); } tabs.activateTab("red-ui-clipboard-dialog-export-tab-"+mode); + + var dialogHeight = 400; + var winHeight = $(window).height(); + if (winHeight < 600) { + dialogHeight = 400 - (600 - winHeight); + } + $(".red-ui-clipboard-dialog-box").height(dialogHeight); + dialog.dialog("option","title",RED._("clipboard.exportNodes")).dialog( "open" ); $("#red-ui-clipboard-dialog-export-text").trigger("focus"); diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/library.js b/packages/node_modules/@node-red/editor-client/src/js/ui/library.js index e25223f94..aa1cd8b6b 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/library.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/library.js @@ -22,7 +22,7 @@ RED.library = (function() { var _libraryLookup = '
'+ '
'+ - '
'+ + '
'+ '
'+ '
'+ '
'+ @@ -41,7 +41,7 @@ RED.library = (function() { var _librarySave = '
'+ ''+ - '
'+ + '
'+ '
'+ '
'+ ''+ @@ -254,6 +254,13 @@ RED.library = (function() { libraryEditor.renderer.$cursorLayer.element.style.opacity=0; libraryEditor.$blockScrolling = Infinity; + var dialogHeight = 400; + var winHeight = $(window).height(); + if (winHeight < 570) { + dialogHeight = 400 - (570 - winHeight); + } + $("#red-ui-library-dialog-load .red-ui-library-dialog-box").height(dialogHeight); + $( "#red-ui-library-dialog-load" ).dialog("option","title",RED._("library.typeLibrary", {type:options.type})).dialog( "open" ); } }, @@ -293,6 +300,15 @@ RED.library = (function() { saveLibraryBrowser.select(listing[0].children[0]); },200); }); + + var dialogHeight = 400; + var winHeight = $(window).height(); + if (winHeight < 570) { + dialogHeight = 400 - (570 - winHeight); + } + $("#red-ui-library-dialog-save .red-ui-library-dialog-box").height(dialogHeight); + + $( "#red-ui-library-dialog-save" ).dialog( "open" ); } } diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js b/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js index 5b93fd2db..dde32a02b 100755 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/projects/projects.js @@ -1673,16 +1673,27 @@ RED.projects = (function() { if (typeof buttons === 'function') { buttons = buttons(options||{}); } + + + dialog.dialog('option','buttons',buttons); dialogBody.append(container); + + + var dialogHeight = 590; + var winHeight = $(window).height(); + if (winHeight < 750) { + dialogHeight = 590 - (750 - winHeight); + } + $(".red-ui-projects-dialog-box").height(dialogHeight); + $(".red-ui-projects-dialog-project-list-inner-container").height(Math.max(500,dialogHeight) - 180); dialog.dialog('option','title',screen.title||""); dialog.dialog("open"); - dialog.dialog({position: { 'my': 'center top', 'at': 'center top+20', 'of': window }}); } function createProjectList(options) { options = options||{}; - var height = options.height || "300px"; + var height = options.height || "200px"; var container = $('
',{class:"red-ui-projects-dialog-project-list-container" }); var filterTerm = ""; @@ -2227,7 +2238,7 @@ RED.projects = (function() { } function init() { - dialog = $('
') + dialog = $('
') .appendTo("#red-ui-editor") .dialog({ modal: true, diff --git a/packages/node_modules/@node-red/editor-client/src/sass/library.scss b/packages/node_modules/@node-red/editor-client/src/sass/library.scss index 60014b2e6..5cff53f44 100644 --- a/packages/node_modules/@node-red/editor-client/src/sass/library.scss +++ b/packages/node_modules/@node-red/editor-client/src/sass/library.scss @@ -37,7 +37,7 @@ border-radius: 4px; font-family: $monospace-font !important; font-size: 13px !important; - height: 300px; + height: 100%; line-height: 1.3em; padding: 6px 10px; background: $clipboard-textarea-background; @@ -62,6 +62,7 @@ background: $form-input-background; &>div { height: 100%; + box-sizing: border-box; } } .red-ui-clipboard-dialog-box { diff --git a/packages/node_modules/@node-red/editor-client/src/sass/projects.scss b/packages/node_modules/@node-red/editor-client/src/sass/projects.scss index 9b1005f22..5db704cb4 100644 --- a/packages/node_modules/@node-red/editor-client/src/sass/projects.scss +++ b/packages/node_modules/@node-red/editor-client/src/sass/projects.scss @@ -18,7 +18,12 @@ .red-ui-editableList-container { padding: 0px; } - + padding: 0; + .red-ui-projects-dialog-box { + box-sizing: border-box; + overflow-y: auto; + padding: 25px 25px 10px 25px; + } } #red-ui-project-settings-tab-settings { overflow-y: scroll; @@ -99,6 +104,7 @@ .red-ui-projects-dialog-screen-create { min-height: 500px; button.red-ui-projects-dialog-screen-create-type { + position: relative; height: auto; padding: 10px; } @@ -169,9 +175,14 @@ .red-ui-projects-dialog-project-list-container { border: 1px solid $secondary-border-color; border-radius: 2px; + display: flex; + flex-direction: column; + .red-ui-search-container { + flex-grow: 0; + } } .red-ui-projects-dialog-project-list-inner-container { - height: 300px; + flex-grow: 1 ; overflow-y: scroll; position:relative; .red-ui-editableList-border {