VMware Aria Automation Orchestrator

 View Only
  • 1.  Scripting field / area in Orchestrator

    Posted Dec 13, 2024 10:11 AM
    Edited by Jason McClellan Dec 16, 2024 09:20 AM

    Hello, 

    my everyday is in the Orchestrator, currently on 8.18.1. The product / editor has indeed gotten great improvements since version 8 first arrived. 

    But I really struggle with a development tool, where the actual development / coding is so limited. As an example, I have uploaded a picture of one of my code items. Picture is taken on a screen with resolution on 2440 x 1440 (only the right half part of the UI). The item has some input and out variables, and a monster header and footer, with pretty much no useful information, only a waste of space for the scripting area. I would consider the red areas "waste" and the green area the important stuff, which only covers 1/5 of the screen. I really lack more area to read and write code. I am so limited to this small area; I wish it could run in a separate or popped out windows, maybe even external editor.. Image there were even more variables - then I would have no option to do code..

    Do any of you know how I can improve with view, or how do you do it - do you suffer with the same, or dont you see it as an issue?



  • 2.  RE: Scripting field / area in Orchestrator

    Posted Dec 16, 2024 09:23 AM

    Hi,

    I had the same issue I since many years ago. vRBT (https://github.com/vmware/build-tools-for-vmware-aria) is a solution (almost ☺️). Please take a look on my blog. There are many example over there. 

    https://www.clouddepth.com



    ------------------------------
    If you find the answer helpful, please click on the RECOMMEND button.

    Please visit my blog to get more information: https://www.clouddepth.com
    ------------------------------



  • 3.  RE: Scripting field / area in Orchestrator

    Posted Dec 16, 2024 02:14 PM

    Yup totally agree and have the same issue.  I'll just cut and paste between an external editor at times on some of my scriptable tasks that have a ton of inputs and outputs.  They really do need an ability to have an unobstructed view.  It is very surprising they haven't added support to hide those headers and footers or have a pop out editing window.




  • 4.  RE: Scripting field / area in Orchestrator

    Posted Jan 06, 2025 08:36 AM

    Hi, try this workaround from Krisztian. It works great. Bye.




  • 5.  RE: Scripting field / area in Orchestrator

    Posted Jan 06, 2025 02:24 PM

    Awesome this does work great... now if VMware / Broadcom would just add a little check box to hide/unhide or better yet breakout to an editor window!  Until then this is a good solution.




  • 6.  RE: Scripting field / area in Orchestrator

    Posted Jan 07, 2025 08:48 AM

    This is really really cool. Many thanks. It should be a standard feature in the UI. 

    Well done!




  • 7.  RE: Scripting field / area in Orchestrator

    Posted Jan 08, 2025 04:28 PM
    Edited by Jason McClellan Jan 10, 2025 10:08 AM

    I have changed the initial example a bit. Maybe you can use it and change it for your needs. The idea and suggestion has really improved the UI for me. 

    The code below can be used in a single bookmarklet, which will toggle the hide/unhide of stuff in the UI. It will hide the headers, different panes, the input fields, the environment, item title etc, and the editor views will be maximized. It requires you to be on either an action or a workflow item. If not, no action is taken.  

    I am sure there is plenty of additions which could be made, but it takes a bit deciphering of the UI elements. 

    Please update the thread, if you find good stuff to add to it. 

    javascript: (()=>{
    	
    	try
    	{
    		let title = document.title;
    		if(title)
    		{
    			title = title.toLowerCase();
    		}
    		
    		if(title.indexOf("automation orchestrator") >= 0)
    		{
    			let isHeaderShown = document.getElementsByClassName("subnav")[0].hidden;
    
    			if(isHeaderShown)
    			{
    				document.getElementsByClassName("subnav")[0].hidden = false;
    				document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = false;
    			}
    			else
    			{
    				document.getElementsByClassName("subnav")[0].hidden = true;
    				document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = true;
    			}
    
    			let url = window.location.href;
    			
    			if ((url.indexOf("#/action") > -1)) 
    			{
    				/* console.log("action editor"); */
    				
    				let isEditor = document.getElementsByClassName("action-editor")[0];
    				if(isEditor != undefined)
    				{
    					/* document.getElementById("scriptTabBtn").click(); */
    					
    					let scriptTabContent = document.querySelector(".script-tab-content");
    					let runtimeArea = scriptTabContent.querySelector(".extension-item");
    					let firstPanel = scriptTabContent.querySelector(".firstPanel");
    					let secondPanel = scriptTabContent.querySelector(".secondPanel");
    					let pills = document.getElementById("parameter-pills");
    					
    					if(runtimeArea.hidden == true)
    					{
    						runtimeArea.hidden = false;
    						secondPanel.hidden = false;
    						pills.hidden = false;
    						firstPanel.style.width = "50%";
    						
    						document.getElementsByClassName("subnav")[0].hidden = false;
    						document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = false;
    					}
    					else
    					{
    						runtimeArea.hidden = true;
    						secondPanel.hidden = true;
    						pills.hidden = true;
    						firstPanel.style.width = "100%";
    						
    						document.getElementsByClassName("subnav")[0].hidden = true;
    						document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = true;
    					}
    				}
    			}
    			else if (url.indexOf("#/edit") > -1) 
    			{
    				/* console.log("workflow editor"); */
    				
    				let tab = document.getElementById("tab-edit-schema-btn");
    				let button = document.getElementById("taskScriptingTabBtn");
    				let runtimeArea = document.getElementsByClassName("actions ng-star-inserted")[0];
    				
    				
    				if(tab.getAttribute("aria-selected") == "true" && button != null && runtimeArea != undefined)
    				{
    					/* console.log("item selected"); */
    					
    					/* document.getElementById("taskScriptingTabBtn").click(); */
    					
    					let contentArea = document.querySelector(".content-area");
    					let paletteContainer = contentArea.querySelector(".palette-container");
    					
    					let firstPanel = contentArea.querySelector(".firstPanel");
    					let expandButton = contentArea.querySelector(".collapse-element-container");
    					
    					let gutter = document.getElementsByClassName("gutter gutter-horizontal ng-star-inserted")[0];
    					let title = document.getElementsByClassName("dialog-title text-no-wrap ng-star-inserted")[0];
    					
    					let workflowEditor = document.getElementById("workflowEditor");
    					let editorContent = document.getElementById("editorContent");
    					
    					let schemaAreaContainer = document.getElementsByClassName("schema-area-container")[0];
    					let splitRightSecondPanel = document.getElementsByClassName("split-right secondPanel")[0];
    
    					let pills = document.getElementById("parameter-pills");
    								
    					if(runtimeArea.hidden == true)
    					{
    						document.getElementsByClassName("subnav")[0].hidden = false;
    						document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = false;
    						
    						runtimeArea.hidden = false;
    						paletteContainer.hidden = false;
    						firstPanel.hidden = false;
    						expandButton.hidden = false;
    						gutter.hidden = false;
    						title.hidden = false;
    						pills.hidden = false;
    						
    						workflowEditor.style.height = "100%";
    						editorContent.style.height = "100%";
    						
    						paletteContainer.style.width = "15%";
    						schemaAreaContainer.style.width = "85%";
    						firstPanel.style.width = "30%";
    						splitRightSecondPanel.style.width = "70%";
    					}
    					else
    					{
    						document.getElementsByClassName("subnav")[0].hidden = true;
    						document.getElementsByClassName("header-7 header ng-star-inserted")[0].hidden = true;
    						
    						runtimeArea.hidden = true;
    						paletteContainer.hidden = true;
    						firstPanel.hidden = true;
    						expandButton.hidden = true;
    						gutter.hidden = true;
    						title.hidden = true;
    						pills.hidden = true;
    						
    						workflowEditor.style.height = "100%";
    						editorContent.style.height = "100%";
    						paletteContainer.style.width = "0%";
    						schemaAreaContainer.style.width = "100%";
    						splitRightSecondPanel.style.width = "100%";
    					}
    				}
    				else
    				{
    					/* console.log("no item selected"); */
    				}
    			}
    			else
    			{}
    		}
    	}
    	catch(error)
    	{
    		console.log("error: " + error);
    	}
    })();
    
    
    


  • 8.  RE: Scripting field / area in Orchestrator

    Posted Jan 09, 2025 03:09 AM

    It works great. Thanks for sharing.