Feedback request: Layout Module

1,177 views
Skip to first unread message

Felipe Cecagno

unread,
May 23, 2012, 3:19:38 PM5/23/12
to bigblueb...@googlegroups.com
Hello everyone,

I've been working on a new module for BigBlueButton that we called the Layout Module. The main idea is to offer a way for the users to select among some predefined layouts which one is the most suitable for the session, that could be a lecture, a business meeting, a webinar, and so on. Some related discussions are:

So this first prototype I've developed shows a "combo box" for all the users with the predefined layouts, and they can select among them independently (like it is today, but in a more organized way). The users can also copy to the clipboard the xml definition of the current custom layout so it can be added to the layouts definition file.
The combo box position is temporary - I made this way because I could implement the whole module without change anything in the core of BBB, it's an independent module that could be plugged without touch the core.

The layouts are defined in a xml file (you can see it here: http://lab1.bigbluebutton.org/client/conf/layout.xml), which "width", "height", "x" and "y" are values between 0 and 1, which correlates the metric and the main canvas size. It also defines maximized and minimized windows.

Also, you may observe that when you resize the browser window, the internal layout keeps consistency - it's an important enhancement in our opinion.

I've deployed this module in a server (gently loaned by the BBB Core Team) so everyone can test it and give feedback / first impressions / suggestions for the next steps of development.The next one should be implement a way for the moderator or presenter to set a layout for all the participants of the session.

It's available here: http://lab1.bigbluebutton.org/

Any suggestion is highly appreciated! :)
Best regards,

--
   
Felipe Cecagno
   Mconf Development Team

HostBBB.com

unread,
May 23, 2012, 9:46:23 PM5/23/12
to BigBlueButton-dev
Felipe, the layout windows works/looks great.

Few thoughts for consideration.

Would be neat if the reset layout went back to the current layout
default and not standard layout.

Also if this is totally attendee defined and controled, would be neat
if the default layout, and how they personally moved it persisted.
So next time they joined meeting windows are right where they left
them.

Last, if could have option to HIDE in addition to MINIMIZE a
video.... might want to hide a window, but still keep it functioning
for others, especially if you can serve different layouts per user.

regards,
Stephen

On May 23, 3:19 pm, Felipe Cecagno <fceca...@gmail.com> wrote:
> Hello everyone,
>
> I've been working on a new module for BigBlueButton that we called the
> Layout Module. The main idea is to offer a way for the users to select
> among some predefined layouts which one is the most suitable for the
> session, that could be a lecture, a business meeting, a webinar, and so on.
> Some related discussions are:https://groups.google.com/group/bigbluebutton-dev/browse_thread/threa...https://groups.google.com/group/bigbluebutton-dev/browse_thread/threa...

Felipe Cecagno

unread,
May 29, 2012, 9:57:58 AM5/29/12
to bigblueb...@googlegroups.com
Thanks Stephen and everyone who tested it.
I've deployed this new module on mconf.org, so you may continue to test it there.

Regards,


--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.


Chad Pilkey

unread,
May 29, 2012, 10:54:59 AM5/29/12
to bigblueb...@googlegroups.com
Felipe,

I just tried the demo at lab1.bigbluebutton.org. The module works really well. The only issue that I noticed is that when I load up the client I'm getting five ActionScript errors. I'm running Firefox with the Firebug addon.

The text of the errors are all something similar to:
An ActionScript error has occurred:
ReferenceError: Error #1065: Variable _class_embed_css_Assets_swf_1632738760_mx_skins_cursor_BusyCursor_288258599 is not defined.

    at flash.display::MovieClip/nextFrame()
    at mx.core::FlexModuleFactory/deferredNextFrame()
    at mx.core::FlexModuleFactory/update()
    at mx.core::FlexModuleFactory/moduleCompleteHandler()

Chad
To post to this group, send email to bigbluebutton-dev@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-dev+unsubscribe@googlegroups.com.

Felipe Cecagno

unread,
Jun 6, 2012, 4:12:17 PM6/6/12
to bigblueb...@googlegroups.com
Hi everyone,

I've deployed a new version of the layout module on lab1.bigbluebutton.org. The current version gives the user the ability to add a custom layout to the layouts list, save the layouts list to a file and load it back later. This is the "final version" before start to work in a mechanism to lock the windows arrangement to a specific layout that the moderator determines.

I will probably add the ability to hide windows through the layout definition (as Stephen suggested), and also I think it would be useful if we could define a layout that differentiate a regular participant from the presenter. I mean, the moderator locks a layout where the presenter will have the presentation almost maximized with a small chat, and the others will have the presentation, the chat and the video dock with the presenter's video.

Just to keep track, there are few other posts and issues on Google Code related to this topic:
Create a layout manager for video mode, presentation mode, etc.
http://code.google.com/p/bigbluebutton/issues/detail?id=1060
small suggestion for usability/userfriendliness : "eyes contact"
https://groups.google.com/group/bigbluebutton-users/browse_thread/thread/fc5ec6aa3767207f
Investigate ways to lock down BigBlueButton's windows
http://code.google.com/p/bigbluebutton/issues/detail?id=904

Thank you for now, feedbacks are much appreciated! :)
Regards,

--
   Felipe Cecagno
   Mconf Development Team



To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/8IsxVriaqOcJ.

To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

Michael Gorham

unread,
Jun 8, 2012, 5:28:23 PM6/8/12
to bigblueb...@googlegroups.com
I'm getting the same error but after I upgraded to 0.8 RC3:

An ActionScript error has occurred:
ReferenceError: Error #1065: Variable _class_embed_css_Assets_swf_1632738760_mx_skins_cursor_BusyCursor_288258599 is not defined. 

Any pointers on how to resolve this would be greatly appreciated.

Michael Gorham

unread,
Jun 8, 2012, 9:58:22 PM6/8/12
to bigblueb...@googlegroups.com
Weird.  I think this had to do with a theme file not being compiled or something.  To fix this I just changed a line in some .mxml file and ran ant again.

Felipe Cecagno

unread,
Jun 8, 2012, 11:01:38 PM6/8/12
to bigblueb...@googlegroups.com
Hi Michael,

Is it related to the layout module branch, or it's occurring on demo.bigbluebutton.org as well?
Could you please send a pull request with that fix?

Thanks! :)
Regards,

--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/KxQUMhyoUHoJ.

To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

Felipe Cecagno

unread,
Jun 8, 2012, 11:03:10 PM6/8/12
to bigblueb...@googlegroups.com
By the way, thanks for testing it!


--
   
Felipe Cecagno
   Mconf Development Team



luminaia

unread,
Jun 9, 2012, 1:05:43 AM6/9/12
to BigBlueButton-dev
Just checked out the module on mconf. Great work. Like the smooth
transitions between views -- and the custom save view option.

I wanted to install the module to test, and didn't see the config file
in the src with the module setup on github/mconf. Is this available,
or are you still working on it?

Thanks,

Michael

Felipe Cecagno

unread,
Jun 9, 2012, 1:10:00 PM6/9/12
to bigblueb...@googlegroups.com
Hi Michael,

It's under development, but the source code is available.


Regards,

--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.

luminaia

unread,
Jun 9, 2012, 11:36:00 PM6/9/12
to BigBlueButton-dev
Thanks for the info. Very much appreciated.

It seems I was looking in the wrong spot. I'm still getting familiar
with the locations of the BBB source code.

And, kudos to the mconf team. I'm really impressed with the work that
you've done on the BBB backend interface.

Cheers,

Michael


Fred Dixon

unread,
Jun 10, 2012, 5:30:31 PM6/10/12
to bigblueb...@googlegroups.com
Hi Felipe,

Nice work!   I like how the layout smoothly auto-adjusts when you change the size of the window -- a feature that was sorely missing.  It gets rid of the reset layout button.

I especially like how you can use the BigBlueButton interface to create a new layouts.xml file -- well done!

A few suggestions.

- Rename 'Webinar' to 'Viewer'

- Add logic that when a user joins, if there layout named for their role (i.e. Moderator or Viewer), then BigBlueButton will use that layout by default.

- Add property to config.xml to PresentModule module to enable/disable the creation of new layouts

   editLayout="false|true"

When false, it hides the add, save, and load buttons. 

In most cases, I believe, an administrator could enable this functionality, edit the layouts, then update the server's layouts.xml, then hide the editing controls.  This keeps the interface simple, but the administrator could elect to keep it active for everyone if desired.


- Allow an administrator to hide a window editing layouts.xml, as in adding hidden="true"

   <window name="ViewersWindow" minimized="true" hidden="true" />

I don't believe you need to add a UI to BigBlueButton for hiding/unhiding windows for this as it's easy enough to edit the file.



Again, nice work Felipe.  Having an integrated layout manager will make it easier for others to customize BigBlueButton's interface to their needs, and that will help expand the community.

Regards,... Fred

-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton



 
--
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton

Felipe Cecagno

unread,
Jun 19, 2012, 1:12:58 PM6/19/12
to bigblueb...@googlegroups.com
Hello everyone,

I've done some more work on the layout module, and would like to invite again everyone who's interested in testing it.

You may want to open two tabs, one as moderator and another as viewer, to see how it works.

The release notes are the following:

- added the "hidden" attribute to the window layout definition (as suggested by Fred and Stephen), which in fact hide the window (instead of just minimize it). It's used by the layout "Meeting" in the demo.
<window name="ListenersWindow" hidden="true" />

- added the "enableEdit" attribute to the module definition (as suggested by Fred). When it's false, the buttons to add a custom layout to the list, save the layouts to file and load the layouts from file will not be shown.

- added a new button to lock the layout. For the moderator, it will be always enabled, and when the moderator clicks on it, all the participants of the meeting will see the same layout as the moderator. Also, the participants won't be able to change their windows layout, until a moderator unlocks it. It will work even if the session has more than one moderator - it will be consistent over all the participants.

Fred suggested the following:
- Rename 'Webinar' to 'Viewer'
- Add logic that when a user joins, if there layout named for their role (i.e. Moderator or Viewer), then BigBlueButton will use that layout by default.

I think it would be much better if we could define for example the layout "Default" which would include a different layout definition depending on the role of the participant. For example, if the user is a participant, he would see a layout different than the moderator, and even different than the presenter. And once the moderator sets the layout "Default", each one will show a different layout, according to the layout definition. It would be something like:

<layout name="Default"> <!-- this is the default definition for Meeting -->
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>
<layout name="Default" role="presenter">
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>
<layout name="Default" role="viewer">
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>

When the moderator selects the layout "Default", the layout would be applied according to the participants role. What do you think? We see clearly a use case for the lecture mode, when the professor uses the presentation module in fullscreen and all the other windows hidden (his screen is projected to the local students), a lecture assistant uses mainly the chat and the viewers list, and the students see the presentation, the chat and the professors video.

As always, any feedback is much appreciated.
Regards,

--
   Felipe Cecagno
   Mconf Development Team



Fred Dixon

unread,
Jun 19, 2012, 1:48:16 PM6/19/12
to bigblueb...@googlegroups.com
> - added a new button to lock the layout. For the moderator, it will be always enabled, 
> and when the moderator clicks on it, all the participants of the meeting will see the 
> same layout as the moderator. Also, the participants won't be able to change their 
> windows layout, until a moderator unlocks it. It will work even if the session has 
> more than one moderator - it will be consistent over all the participants.

I tried it on two sessions and could see that the remove viewers are kept in sync.  Very nice Felipe!  

There have been use cases in the past -- especially for K12 -- where the request has been to lock down (i.e. restrict movement of the the layout) for remote students.  This prevents the scenario where a student unfamiliar with BigBlueButton accidentally hides the chat window, for example, and can't figure out how to retrieve it.  I think the layout manager handles that use case nicely!

I also like the suggestion you made on default layouts.

Overall, having a layout manager makes BigBlueButton look more polished -- nicely done!  When your ready, we'd like to incorporate this work into 0.81 so it becomes part of the core.

Stéphane Lux

unread,
Jun 26, 2012, 9:45:57 AM6/26/12
to bigblueb...@googlegroups.com
Wow! This awesome. 

I have developed a similar feature, but your approach is much better.

Great Work. 

Are there a lot of changes in the bbb core source?

Regards,
Stéphane

Felipe Cecagno

unread,
Jun 26, 2012, 9:58:41 AM6/26/12
to bigblueb...@googlegroups.com
Thanks!

I sent a pull request with the implementation of this feature just yesterday, see: https://github.com/bigbluebutton/bigbluebutton/pull/44

If we are lucky, it gets integrated to the core for the next release. :)

Regards,

--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/Zx9ZmS2O0lAJ.

Fred Dixon

unread,
Jun 26, 2012, 10:11:12 AM6/26/12
to bigblueb...@googlegroups.com
Hi Felipe,

We're definitely going to merge this into the core, and we'll try very hard to do it for 0.81.

At the moment, Richard is investigating refactoring the client code to make it easier to maintain in the future, which may affect the layout module (hopefully not too much!)

We've also  planned for adding record and playback for all the events in the presentation window.

All to say, we think this is great work Felipe and our goal is to merge it in 0.81.

Regards,... Fred
-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton




Stéphane Lux

unread,
Jun 29, 2012, 1:33:38 PM6/29/12
to bigblueb...@googlegroups.com
Hi Felipe,

I have merged the layout-branch. 

When I start the client, the default layout is not applied. Do you know why?

Regards,
Stéphane


Felipe Cecagno

unread,
Jun 29, 2012, 1:40:11 PM6/29/12
to bigblueb...@googlegroups.com
Have you compiled both bigbluebutton-client and bigbluebutton-apps?


--
   
Felipe Cecagno
   Mconf Development Team




Regards,
Stéphane


--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/6nYfiXW7pjAJ.

Stéphane Lux

unread,
Jun 30, 2012, 5:45:20 AM6/30/12
to bigblueb...@googlegroups.com
Hi Felipe,


Am Freitag, 29. Juni 2012 19:40:11 UTC+2 schrieb Felipe:
Have you compiled both bigbluebutton-client and bigbluebutton-apps?


Yes, I have have compiled both. I get several errors in the client:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at org.bigbluebutton.modules.layout.model::LayoutDefinition$/getLayout()[/Volumes/firstuser/dev/bigbluebutton/bigbluebutton-client/src/org/bigbluebutton/modules/layout/model/LayoutDefinition.as:226]


Error: Error #2139: SharedObject could not connect.
at Error$/throwError()
at flash.net::SharedObject/connect()
at org.bigbluebutton.modules.layout.services::LayoutSharedObjectService/join()[/Volumes/firstuser/dev/bigbluebutton/bigbluebutton-client/src/org/bigbluebutton/modules/layout/services/LayoutSharedObjectService.as:71]

Any ideas?

Regards,
Stéphane 

Stéphane Lux

unread,
Jun 30, 2012, 8:18:32 AM6/30/12
to bigblueb...@googlegroups.com
Am Freitag, 29. Juni 2012 19:40:11 UTC+2 schrieb Felipe:
Have you compiled both bigbluebutton-client and bigbluebutton-apps?

I seems, that I made a mistake when compiling bigbluebutton-apps. After compiling it again, the default layout is applied.

Thank you for your support and for this great feature.

Regards,
Stéphane

Stéphane Lux

unread,
Jun 30, 2012, 8:21:28 AM6/30/12
to bigblueb...@googlegroups.com


Am Dienstag, 19. Juni 2012 19:12:58 UTC+2 schrieb Felipe:
I think it would be much better if we could define for example the layout "Default" which would include a different layout definition depending on the role of the participant. For example, if the user is a participant, he would see a layout different than the moderator, and even different than the presenter. And once the moderator sets the layout "Default", each one will show a different layout, according to the layout definition. It would be something like:

<layout name="Default"> <!-- this is the default definition for Meeting -->
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>
<layout name="Default" role="presenter">
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>
<layout name="Default" role="viewer">
    <window name="ChatWindow".../>
    <window name="ListenersWindow".../>
    <window name="ViewersWindow".../>
    <window name="PresentationWindow".../>
    <window name="VideoDock".../>
</layout>

When the moderator selects the layout "Default", the layout would be applied according to the participants role. What do you think? We see clearly a use case for the lecture mode, when the professor uses the presentation module in fullscreen and all the other windows hidden (his screen is projected to the local students), a lecture assistant uses mainly the chat and the viewers list, and the students see the presentation, the chat and the professors video.


I like this idea. Did you implement it already?

Regards,
Stéphane 

Felipe Cecagno

unread,
Jun 30, 2012, 9:33:18 AM6/30/12
to bigblueb...@googlegroups.com

Yes, it's already implemented - take a look at the layouts definition file, there's a layout with multiple definitions. I'm going to write a little documentation about the module, to make this kind of things clearer.

Regards,

--
Felipe Cecagno

(sent from my Android)

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/zmmsmIcTZjwJ.

Stéphane Lux

unread,
Jun 30, 2012, 10:17:18 AM6/30/12
to bigblueb...@googlegroups.com
Thx for the reply.
To post to this group, send email to bigbluebutton-dev@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-dev+unsubscribe@googlegroups.com.

Stéphane Lux

unread,
Jul 5, 2012, 8:20:48 AM7/5/12
to bigblueb...@googlegroups.com
The role dependent workout does not work here.

I have created an layout.xml:

<?xml version="1.0"?>

<layouts>

    <layout name="Fokusgruppe"  >

      <window name="VideoDock" width="0.5" height="1" x="0" y="0" order="0"/>

      ...

    </layout>

    <layout name="Fokusgruppe" role="moderator" >

      <window name="VideoDock" hidden="true" />

      ...

    </layout>

...


When I select this layout as moderator, the first layout is applied, instead of the second one. 

Kind regards,

Stéphane


Felipe Cecagno

unread,
Jul 5, 2012, 1:11:52 PM7/5/12
to bigblueb...@googlegroups.com
Hi Stéphane,

You are right, the logic behind the selection of the right layout was wrong. If the participant is moderator and presenter at the same time, but there's no specific layout for the presenter role, the selected layout would be the viewer. Thank you for reporting that, I'm fixing it right now and you could merge it again to continue your testing.

Regards,

--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/YBAqw7kc0PoJ.

Felipe

unread,
Jul 5, 2012, 1:30:13 PM7/5/12
to bigblueb...@googlegroups.com
See: https://github.com/mconf/bigbluebutton/commit/cd111f4d092b3c7567ae3c46e7b64c1f7cb5367e

To post to this group, send email to bigbluebutton-dev@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-dev+unsubscribe@googlegroups.com.
Message has been deleted

Stéphane Lux

unread,
Jul 5, 2012, 1:58:15 PM7/5/12
to bigblueb...@googlegroups.com
It works great. Thank you very much. 

Stéphane Lux

unread,
Jul 5, 2012, 2:25:43 PM7/5/12
to bigblueb...@googlegroups.com
I love your module.

Here is my wish list with additional features:
  • configurable parameter for default lock on startup
  • hide the layout combo box for viewers
Kind regards,
Stéphane

Felipe Cecagno

unread,
Jul 5, 2012, 2:32:11 PM7/5/12
to bigblueb...@googlegroups.com
Hi Stéphane,

Thanks! :)
Could you please create an issue on BigBlueButton Google Code to keep track of this suggestions?

Thanks again for testing it!
Regards,

--
   
Felipe Cecagno
   Mconf Development Team



--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/UWUoFZrTD_EJ.

Stéphane Lux

unread,
Jul 6, 2012, 1:53:28 PM7/6/12
to bigblueb...@googlegroups.com
Sure. Here there are:


Regards,
Stéphane


Am Donnerstag, 5. Juli 2012 20:32:11 UTC+2 schrieb Felipe:
Hi Stéphane,

Thanks! :)
Could you please create an issue on BigBlueButton Google Code to keep track of this suggestions?

Thanks again for testing it!
Regards,

--
   
Felipe Cecagno
   Mconf Development Team



On Thu, Jul 5, 2012 at 3:25 PM, Stéphane Lux <step...@lux.io> wrote:
I love your module.

Here is my wish list with additional features:
  • configurable parameter for default lock on startup
  • hide the layout combo box for viewers
Kind regards,
Stéphane

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/UWUoFZrTD_EJ.

To post to this group, send email to bigbluebutton-dev@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-dev+unsubscribe@googlegroups.com.

Kokila Ravi

unread,
Jul 6, 2012, 1:59:07 PM7/6/12
to bigblueb...@googlegroups.com
Greetings!
I am a newcomer to this group.  I have not used BBB before but was referred to it by a colleague who uses it at his institution.  May I appeal to your generosity and ask if there is any basic site or resource that I can use to know how I can integrate BBB in our school's Learning Management System WebCT/Balckboard?
Thank you very much in advance.

To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/GkgZ-_EDt1AJ.
To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

Fred Dixon

unread,
Jul 6, 2012, 3:25:14 PM7/6/12
to bigblueb...@googlegroups.com
Hi Kokila,

Welcome!  This question has been asked before.  See


The answer given in the above thread is still relevant.  If your at a University or College that would like to see a supported integration with BlackBoard, it's (unlikely) you'll find open source developers volunteering their time (and paying the fees for BlackBoard to become a developer).

Your best bet is to contact one of the companies providing commerical support for BigBlueButton at


Regards,... Fred

P.S.  In the future, please start a new topic thread.

-- 
BigBlueButton Developer
BigBlueButton on twitter: @bigbluebutton


Damon Hogan BBBAPIDeveloper

unread,
Jul 31, 2012, 9:33:59 PM7/31/12
to bigblueb...@googlegroups.com
Felipe,

First off, great job on this module so far.

Can I ask a couple of questions about it?  What is the persistence of uploaded layout xml files.  Is it just for that particular conference or is it server wide.  Also do the uploaded layouts persist and remain after a server restart?

As an API developer,  I could use a "standard" default layout, server wide regardless of an individual conference, also handy would be the ability to define a default layout in the parameters when posting to the URL for the server using the salt hashed API.  Any plans for either of these?

- Thanks In Advance.

Damon 


On Wednesday, May 23, 2012 1:19:38 PM UTC-6, Felipe wrote:
Hello everyone,

I've been working on a new module for BigBlueButton that we called the Layout Module. The main idea is to offer a way for the users to select among some predefined layouts which one is the most suitable for the session, that could be a lecture, a business meeting, a webinar, and so on. Some related discussions are:

So this first prototype I've developed shows a "combo box" for all the users with the predefined layouts, and they can select among them independently (like it is today, but in a more organized way). The users can also copy to the clipboard the xml definition of the current custom layout so it can be added to the layouts definition file.
The combo box position is temporary - I made this way because I could implement the whole module without change anything in the core of BBB, it's an independent module that could be plugged without touch the core.

The layouts are defined in a xml file (you can see it here: http://lab1.bigbluebutton.org/client/conf/layout.xml), which "width", "height", "x" and "y" are values between 0 and 1, which correlates the metric and the main canvas size. It also defines maximized and minimized windows.

Also, you may observe that when you resize the browser window, the internal layout keeps consistency - it's an important enhancement in our opinion.

I've deployed this module in a server (gently loaned by the BBB Core Team) so everyone can test it and give feedback / first impressions / suggestions for the next steps of development.The next one should be implement a way for the moderator or presenter to set a layout for all the participants of the session.

It's available here: http://lab1.bigbluebutton.org/

Any suggestion is highly appreciated! :)
Best regards,

--
   
Felipe Cecagno

Felipe Cecagno

unread,
Aug 1, 2012, 10:23:57 PM8/1/12
to bigblueb...@googlegroups.com
Hi Damon,

Answers inline.
Regards,


--
   
Felipe Cecagno
   Mconf Development Team



On Tue, Jul 31, 2012 at 10:33 PM, Damon Hogan BBBAPIDeveloper <damon...@gmail.com> wrote:
Felipe,

First off, great job on this module so far.

Thanks :) 

Can I ask a couple of questions about it?  What is the persistence of uploaded layout xml files.  Is it just for that particular conference or is it server wide.  Also do the uploaded layouts persist and remain after a server restart?

The uploaded layouts are just local - the user who uploaded a layout file will be able to set any of the defined layouts, but the others won't - if the moderator have locked the layout, the remote users will see "[Remote] <layout name>", and when the moderator unlocks the layout, the remote users will see the predefined ones. In this way, the uploaded layouts are just for that particular conference and they are not persistent - if the user leave and then join again, he will see the default layouts (those from the file configured on config.xml).

As an API developer,  I could use a "standard" default layout, server wide regardless of an individual conference, also handy would be the ability to define a default layout in the parameters when posting to the URL for the server using the salt hashed API.  Any plans for either of these?

It would be really great to have the possibility to set a layout file URL on the CREATE API call, but there's no plan to implement that in the near future. Could you please create an issue on Google Code to keep track of this particular suggestion?

- Thanks In Advance.

Damon 


On Wednesday, May 23, 2012 1:19:38 PM UTC-6, Felipe wrote:
Hello everyone,

I've been working on a new module for BigBlueButton that we called the Layout Module. The main idea is to offer a way for the users to select among some predefined layouts which one is the most suitable for the session, that could be a lecture, a business meeting, a webinar, and so on. Some related discussions are:

So this first prototype I've developed shows a "combo box" for all the users with the predefined layouts, and they can select among them independently (like it is today, but in a more organized way). The users can also copy to the clipboard the xml definition of the current custom layout so it can be added to the layouts definition file.
The combo box position is temporary - I made this way because I could implement the whole module without change anything in the core of BBB, it's an independent module that could be plugged without touch the core.

The layouts are defined in a xml file (you can see it here: http://lab1.bigbluebutton.org/client/conf/layout.xml), which "width", "height", "x" and "y" are values between 0 and 1, which correlates the metric and the main canvas size. It also defines maximized and minimized windows.

Also, you may observe that when you resize the browser window, the internal layout keeps consistency - it's an important enhancement in our opinion.

I've deployed this module in a server (gently loaned by the BBB Core Team) so everyone can test it and give feedback / first impressions / suggestions for the next steps of development.The next one should be implement a way for the moderator or presenter to set a layout for all the participants of the session.

It's available here: http://lab1.bigbluebutton.org/

Any suggestion is highly appreciated! :)
Best regards,

--
   
Felipe Cecagno
   Mconf Development Team

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/rceAciEarwAJ.

Damon Hogan BBBAPIDeveloper

unread,
Aug 7, 2012, 5:52:24 PM8/7/12
to bigblueb...@googlegroups.com
Felipe,

Thank you for your previous response.

I am having difficulty in understanding all that is needed to fully implement this layout module.  Unfortunately I don't really have the luxury to wait until version .81
of bigbluebutton to be released to see if the layout module is included.   I am trying to fully implement the layout module (deployed to the server if possible) but I am having difficulty figuring out what is needed to get this running fully outside of development or even in development.  I have read each of these posts and also many other resources and I can't seem to put the whole picture together.   Below I will list the steps I have taken after I first list where I am in the process. 

First off I have the bigbluebutton-client with the layout module compiled in the development folder  (would like this to be running normally on the server)
Also I have the red5 running in development mode started manually in the terminal prompt.

Initially I was just running the client in development mode and noticed that when I am a moderator (launched through the api to a specific conference) the lock button does
not do anything and also the default layout did not load automatically, I have to manually choose it currently.

One other note, the code I have from the mconf / bigbluebutton layout-module branch..., as of July 31 2012, when saving the layout, and trying it to load it back in, loading a layout from a saved layout file using that version yields an empty layout list in the combo box.  However I can load a layout file I had saved from the lab server and it loads fine.  

How I set up my server and arrived at where I am. 
==============================================

Followed the instructions on http://code.google.com/p/bigbluebutton/wiki/InstallationUbuntu#Installation_of_BigBlueButton_0.80 to install the server on ubunto server.

At the server prompt issue the command bbb-conf --salt to get the salt string so that I can launch a conference with the API


I took the .80 server code and merged in the layout-module to my own branch so that the layout module code overwrote anything that preexisted in the plain .80 version
of big blue button.

Ran the following command to get the server pointing at the development client.

bbb-conf --setup-dev client

Added the module code to the config.xml so that the layout module would compile into the client.

                <module name="LayoutModule" url="LayoutModule.swf?v=VERSION"
uri="rtmp://HOST/bigbluebutton"
layoutConfig="conf/layout.xml"
enableEdit="true"
/>

cd ~/dev/bigbluebutton/bigbluebutton-client

ant locales

ant 

At this point my client loaded with the layout module however the lock button was inoperable for the moderator and the default layout would not load automatically.

I saw a previous post about needing to also compile the apps so I did the following..

    sudo chmod -R o+w /usr/share/red5/webapps
    sudo /etc/init.d/red5 stop
    cd ~/dev/bigbluebutton/bigbluebutton-apps
    gradle resolveDeps
    gradle clean war deploy
    cd /usr/share/red5
    sudo -u red5 ./red5.sh

This of course requires that I run red5 in a terminal, I would like to just have this start up with the server.   

At this point though the lock button still was not working and the default layout still would not load automatically.  

My underlying questions are as follows:

#1 How can I get the lock button to work so that the participants of the conference will have their layout changed to whatever the moderator chooses and also have the default module loaded for moderator and participants?

#2 How can I fully implement the layout module so it's running live on the server rather than development with the lock button working and the default module loading?

#3 Can I get a fix so that saved modules will load again?

I have been working on this solid, 8 hours a day for many days.  Any help you can be, would be extremely appreciated.

Thank You

Chad Pilkey

unread,
Aug 7, 2012, 6:05:13 PM8/7/12
to bigblueb...@googlegroups.com
Damon,

The layout module is already included in the master branch of the main bigbluebutton repo so if you clone or fetch that you don't need to merge anything in manually. I'm think that might be the cause of your issues.

As for starting up red5 you can just run "sudo service red5 start" and red5 will start-up without taking over the console ("sudo bbb-conf --clean" also does this).

Chad

Damon Hogan BBBAPIDeveloper

unread,
Aug 8, 2012, 12:30:06 AM8/8/12
to bigblueb...@googlegroups.com
Chad,

I tried the main repo, master branch and I get the message /home/damon/dev/tools/flex-4.5.0.20967/frameworks/flex-config.xml(56): Error: unable to open 'libs/player/11.2/playerglobal.swc'   when trying to compile "ant locales"

I am guessing there is a new dependency that isn't yet included in the master branch so I spent a long long time trying to find one that had the layout module recently updated

I found the branch "adding-accessibility-changes" which had the layout module updated as recent as 21 days ago.  

I compiled this branch client and apps.  

Same problems however.

Lock button will not lock for moderator, saved layouts will not load properly (created empty list) and default layout does not load on client load.

Again any help will be appreciated.  Perhaps this will work when the master branch is fixed so it can compile locales?

Thanks for any help you can be in advance.

Damon

Calvin Walton

unread,
Aug 8, 2012, 7:20:19 AM8/8/12
to bigblueb...@googlegroups.com
On Tue, 2012-08-07 at 21:30 -0700, Damon Hogan BBBAPIDeveloper wrote:
> Chad,
>
> I tried the main repo, master branch and I get the
> message /home/damon/dev/tools/flex-4.5.0.20967/frameworks/flex-config.xml(56):
> Error: unable to open 'libs/player/11.2/playerglobal.swc' when trying to
> compile "ant locales"
>
> I am guessing there is a new dependency that isn't yet included in the
> master branch so I spent a long long time trying to find one that had the
> layout module recently updated

This is a result of the change to compile for flash 11.2 for H.264
support. There was a post on the mailing list about the required changes
to your development environment, read it here:
https://groups.google.com/d/topic/bigbluebutton-dev/B9Y7BUifUqI/discussion

--
Calvin Walton <calvin...@kepstin.ca>

Jon

unread,
Aug 13, 2012, 6:55:39 AM8/13/12
to bigblueb...@googlegroups.com
Hi Felipe

We're using your fantastic layout module for one of our projects. I encountered
some bugs that I want to ask you if there is a fix coming up. I searched the
issues database already but couldn't found any answers. Some of them described

1. The dropdown list with the layouts (described in layout.xml) has sometimes 
no entries.
2. Although I defined a default layout in xml (even with "Default" as name) the 
dropdown list is showing undefined at the beginning. After selecting an 
entry it's gone. 
3. Sometimes the second issue is gone. The name of the default layout is then 
shown as selected layout but the windows are not translated to the given
position. After reselecting the layout the window position is set correct.

I would like to give more information when the need arises. Please give me 
instruction if you need more testing some scenarios.

We use Windows 7 and tested the bbb-client with
- Google Chrome 21.0.1180 with Flash 11.3.31.222.
- Firefox 14.0.1 with Flash 11.3.300.270
- IE 9.0 with Flash 11.3.300.270

Thanks for the great work on the layout module so far.
Jon

--

Felipe Cecagno

unread,
Aug 16, 2012, 10:44:01 AM8/16/12
to bigblueb...@googlegroups.com
Hi Jon,

Thank you for testing it, and sorry for the delayed answer.
Answers inline.

Regards,

--
   
Felipe Cecagno


On Mon, Aug 13, 2012 at 7:55 AM, Jon <singlet...@googlemail.com> wrote:
Hi Felipe

We're using your fantastic layout module for one of our projects. I encountered
some bugs that I want to ask you if there is a fix coming up. I searched the
issues database already but couldn't found any answers. Some of them described

1. The dropdown list with the layouts (described in layout.xml) has sometimes 
no entries.

Is it random, or is there any particular pattern to make this issue come up?
 
2. Although I defined a default layout in xml (even with "Default" as name) the 
dropdown list is showing undefined at the beginning. After selecting an 
entry it's gone. 
3. Sometimes the second issue is gone. The name of the default layout is then 
shown as selected layout but the windows are not translated to the given
position. After reselecting the layout the window position is set correct.

I would like to give more information when the need arises. Please give me 
instruction if you need more testing some scenarios.

Could you please check the log window on the client to see if there's any clue about the issues you are reporting? It's obviously an unexpected behavior, since it was not occurring during the development.
Also, which version of BigBlueButton are you using? Are you compiling from master? Which revision?
 

We use Windows 7 and tested the bbb-client with
- Google Chrome 21.0.1180 with Flash 11.3.31.222.
- Firefox 14.0.1 with Flash 11.3.300.270
- IE 9.0 with Flash 11.3.300.270

Thanks for the great work on the layout module so far.
Jon

--

--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/F9c357g6i0IJ.

Jon

unread,
Aug 20, 2012, 6:25:39 AM8/20/12
to bigblueb...@googlegroups.com
Thanks for response. 

I could not find any particular order to reproduce the empty dropdown field. Hitting F5 often enough and after a while it work. Then all of a sudden the box is completly empty. Third case is - The box is filled with the right layouts but undefined is preselected and at least, but very rare happening, it is filled with all layout names and the default layout (also the first one) is selected. I will check if the default is also loaded if the second entry is marked with default. That also happens with the layout example given by you.

The log window is spitting out messages about the layout but it looked like everything is ok. Now I rechecked this to copy the debug lines in here and found the folling line:
LayoutSharedObjectService:initLayout - An error occurred
Is it possible to see the concrete error message? Or do you have any hint how to debug this without flash builder on my system?

I merged the master branch into a local repository. My last pull from master has revision 7203435.

Thanks for helping.
Jon

On Thursday, August 16, 2012 4:44:01 PM UTC+2, Felipe Cecagno wrote:
Hi Jon,

Thank you for testing it, and sorry for the delayed answer.
Answers inline.

Regards,

--
   
Felipe Cecagno


On Mon, Aug 13, 2012 at 7:55 AM, Jon <singlet...@googlemail.com> wrote:
Hi Felipe

We're using your fantastic layout module for one of our projects. I encountered
some bugs that I want to ask you if there is a fix coming up. I searched the
issues database already but couldn't found any answers. Some of them described

1. The dropdown list with the layouts (described in layout.xml) has sometimes 
no entries.


 
 
2. Although I defined a default layout in xml (even with "Default" as name) the 
dropdown list is showing undefined at the beginning. After selecting an 
entry it's gone. 
3. Sometimes the second issue is gone. The name of the default layout is then 
shown as selected layout but the windows are not translated to the given
position. After reselecting the layout the window position is set correct.

I would like to give more information when the need arises. Please give me 
instruction if you need more testing some scenarios.
We use Windows 7 and tested the bbb-client with
- Google Chrome 21.0.1180 with Flash 11.3.31.222.
- Firefox 14.0.1 with Flash 11.3.300.270
- IE 9.0 with Flash 11.3.300.270

Thanks for the great work on the layout module so far.
Jon

--

bolle50849

unread,
Aug 20, 2012, 10:40:05 AM8/20/12
to bigblueb...@googlegroups.com
Hello everyone,

I am very happy to join this group! Here is my problem: Everything works, but when I load the Layout module in the config.xml file and restarting the bbb, the client fails to load. It stucks to loading 0%. Any suggestions?

Thanks,

Sam
.

Felipe Cecagno

unread,
Aug 20, 2012, 3:29:47 PM8/20/12
to bigblueb...@googlegroups.com
Hi Jon,

Could you please check the red5 log file on /usr/share/red5/log/bigbluebutton.log to see if it's printing something related to the layout module? The message that is failing is the very first message exchange of the module, so maybe there's something wrong with the server side app. Do you confirm that you are compiling bigbluebutton-apps as well?

Regards,

--
   
Felipe Cecagno


To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/Wumq51Hej7kJ.

Felipe Cecagno

unread,
Aug 20, 2012, 3:31:54 PM8/20/12
to bigblueb...@googlegroups.com
Hi Sam,

Have you compiled bigbluebutton-client and bigbluebutton-apps?

--
   
Felipe Cecagno


--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/4H-sfSP21b4J.

Jon

unread,
Aug 21, 2012, 11:29:18 AM8/21/12
to bigblueb...@googlegroups.com
Hi Felipe

I didn't compile the bbb-apps. Now it works like a charme. Thank you so much for helping.

Jon

brunoBR

unread,
Aug 22, 2012, 9:25:58 AM8/22/12
to bigblueb...@googlegroups.com
Hello!

I`ve been following this thread  since I too am having similar problems, and even after I did manage to get both bbb-client and bbb-apps compiled, I still have the same problem Jon described.

Sometimes, the layout list simply won't come out when I join a conference, but I'm sure it is picking up the layout.xml, since the layout that I`ve defined to be the default one is loaded when I go in the conference. If I go on and open the layout.xml from my computer using the load button, then its all good.

I've attached a printscreen of whats showing up to me. Any ideas of what I might be doing wrong Felipe? Any log file I should check out?

By the way, congrats on this amazing module! Cheers!
layout.PNG

Felipe Cecagno

unread,
Aug 22, 2012, 11:11:38 AM8/22/12
to bigblueb...@googlegroups.com
Hi Bruno,

Check out the red5 log on /usr/share/red5/log/bigbluebutton.log and try to look for anything related to the Layout Module. Also you could enable the log windows in the client to watch for debug messages.

Regards,

--
   
Felipe Cecagno


--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/SKGvIXUF2IIJ.

sfaust

unread,
Aug 23, 2012, 4:04:34 AM8/23/12
to bigblueb...@googlegroups.com
Hi Felipe

first of all: thanks for sharing your module, its really cool!
Anyway we are facing some issues with the role configuration in layout.xml. It seems that the role configuration settings are not applied by the client. We have some layouts configured with role="moderator" but the the items show up on viewers clients too. We are using the master branch from 8.8.2012, compiled bbb-apps and bbb-client, also verified that the layout.xml delivered to the client is fine. Any ideas what might cause the issue?

Many thanks, Simon

To post to this group, send email to bigblueb...@googlegroups.com.
To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.

Felipe Cecagno

unread,
Aug 23, 2012, 8:44:52 AM8/23/12
to bigblueb...@googlegroups.com
Hi Simon,

Thanks! :)
This is the function which returns the layout to be applied by the client. As far as I understand, you defined a layout to be applied for the moderators, but didn't define another layout for the others, is it right? Well, if that's the case, you will see that the current code will use this layout for all the clients because there's no other option. To solve your problem, you must define the same layout again but with a different role (or without specifying one), so this one will be applied for the viewers.

If that's not the case, please post here your layouts.xml.

Regards,

--
   
Felipe Cecagno


To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/tn_2Z6lflDAJ.

sfaust

unread,
Aug 23, 2012, 2:58:26 PM8/23/12
to bigblueb...@googlegroups.com
Hi Felipe,

yes, I already took a look at LayoutDefinition.as but could not find anything what might cause the issue there. From the following layout definition I expected the viewer to see the 1st and 2nd layout, while a moderator should also see the third one.
dont know if this list support attachments... so pls find the layout.xml inline:


<?xml version="1.0"?>
<layouts>
    <layout name="Kunde" default="true">
      <window name="FormularWindow" maximized="true" />
      <window name="ViewersWindow" hidden="true" />
      <window name="FileSharingWindow" hidden="true" />
    </layout>
    <layout name="Kunde mit Download">
      <window name="FormularWindow" width="0.99" height="0.69" x="0" y="0" order="-1" />
      <window name="ViewersWindow" hidden="true" />
      <window name="FileSharingWindow" width="0.99" height="0.29" x="0" y="0.70" order="-1" />
    </layout>
    <layout name="Berater - Gesamtansicht" role="moderator">
      <window name="FormularWindow" width="0.99" height="0.69" x="0" y="0" order="-1" />
      <window name="ViewersWindow" width="0.29" height="0.29" x="0.70" y="0.70" order="-1" />
      <window name="FileSharingWindow" width="0.69" height="0.29" x="0" y="0.70" order="-1" />
    </layout>
</layouts>

Thanks for your support, Cheers Simon

Felipe Cecagno

unread,
Aug 23, 2012, 9:42:28 PM8/23/12
to bigblueb...@googlegroups.com
Hi Simon,

Actually your understanding is a little bit wrong. You define many layouts on your layout.xml, and the layouts are indexed by name. It means that if you want a layout to behave different between moderators, viewers and presenter, you must define the layout with the same name and a different role. In your case, if you want that the behavior when you select the layout "Berater - Gesamtansicht" would be one for moderators and another for viewers, you should have something like:

<?xml version="1.0"?>
<layouts>
    <layout name="Kunde" default="true">
      <window name="FormularWindow" maximized="true" />
      <window name="ViewersWindow" hidden="true" />
      <window name="FileSharingWindow" hidden="true" />
    </layout>
    <layout name="Kunde mit Download">
      <window name="FormularWindow" width="0.99" height="0.69" x="0" y="0" order="-1" />
      <window name="ViewersWindow" hidden="true" />
      <window name="FileSharingWindow" width="0.99" height="0.29" x="0" y="0.70" order="-1" />
    </layout>
    <layout name="Berater - Gesamtansicht">
      <window name="FormularWindow" maximized="true" />
      <window name="ViewersWindow" hidden="true" />
      <window name="FileSharingWindow" hidden="true" />
    </layout>
    <layout name="Berater - Gesamtansicht" role="moderator">
      <window name="FormularWindow" width="0.99" height="0.69" x="0" y="0" order="-1" />
      <window name="ViewersWindow" width="0.29" height="0.29" x="0.70" y="0.70" order="-1" />
      <window name="FileSharingWindow" width="0.69" height="0.29" x="0" y="0.70" order="-1" />
    </layout>
</layouts>

When you select the layout "Berater - Gesamtansicht", the layout for moderators will be different than the layout for viewers. If you want to specify a different layout also for the presenter (always with the same layout name), you could do it simply specifying the layout with role="presenter".

Is it clear? Anything else you need, please write back.
Regards,

--
   
Felipe Cecagno


--
You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
To view this discussion on the web visit https://groups.google.com/d/msg/bigbluebutton-dev/-/qAaauTRVYi8J.

sfaust

unread,
Aug 24, 2012, 4:11:10 AM8/24/12
to bigblueb...@googlegroups.com
Hi Felipe,

its clear now. Thanks for your support!

Cheers, Simon
Reply all
Reply to author
Forward
0 new messages