Select to view content in your preferred language

Open more than one widget at a time WAB 2.2 Foldable Theme Custom

2554
12
Jump to solution
04-05-2017 12:24 PM
Labels (1)
GilbertoMatos
Frequent Contributor

Hello!

Is there any way, for version 2.2 of the web appbuilder, to keep more than one widget open at the same time? I need at least the layers widget and the caption widget to open at the same time. Being the layer in the left and the legend in the right.

I created a theme based on the foldable theme, and my application will not be used on mobile devices. This is even a requirement of the client, but I can not figure out where to change.

What I did was check the file "application folder \ themes \ MyCustomTheme \ widgets \ HeaderController \ widget.js", specifically the lines where there are commands like "closepanel", "closewidget", etc, but it still fails.

Thanks for any help.
Gilberto.

0 Kudos
12 Replies
RobertScheitlin__GISP
MVP Emeritus

No problem 

GilbertoMatos
Frequent Contributor

Hello Robert, how are you?

I was able to implement the possibility of the user moving the widgets and organizing them as needed. I believe it's not the right way, because I need to make these changes for each widget in my application, but in parts I managed to solve it.

I just had two problems, which I'm trying to get around: one of them is that after my implementation, the widget's scalability functionality was lost and the second problem is that after the user clicks on the widget's minimize button, it does not minimize And stays in the same place. When you click the minimize, it moves to the top left of the screen. Anyway, below are my changes if anyone needs to.

1) In my file "application folder \ themes \ My Theme Name \ common.css", I included the class below with the name of each widget that I needed to allow the move:

#Widget_name_panel
{
      
Right: auto!
      
Max-height: 400px! Important;
}


2) After that, I had to open the widget.js file from my widget, and at the end of the startup () function, I added the following line:

Var dnd = new Moveable (dom.byId (this.id + "_panel"));

I also need to add the following references:

Define
(
      
[
         
...
         
'Dojo / dnd / moveable'
         
'Dojo / sun',
         
'Dojo / on'
     
],
     
Function (..., Moveable, dom, on)

I hope this is useful for someone.

Thank you!

Gilberto.

0 Kudos
GilbertoMatos
Frequent Contributor

Hello!

Robert, I was able to make the widgets retain the position to which they were dragged, after the user clicked the minimize / maximize button.

In the file "application folder \ themes \ My Theme \ panels \ FoldablePanel \ panel.js", change the function that follows below:

resize: function()
{
         this._switchMaxBtn();
         this._switchParentNode();

         var pos = this.getPanelPosition();

         //Implementation to set the widget to the correct location after the widget is dragged
         //----------------------------------------------------------------------------------
         pos.height = '400';
         pos.left = "'" + dojo.position(this.domNode).x + "'";
         pos.top = "'" + dojo.position(this.domNode).y + "'";
         //----------------------------------------------------------------------------------

         

         ...
}

Thank You!

Gilberto