Expand my Community achievements bar.

SOLVED

Question about room templating

Avatar

Level 2

Let us say I create a room called demo. I template it and  create another room demo1. Then I add new component such as whiteboard to the room demo. Will these changes be reflected in room demo1? In other words, are the changes to original/template room propagated to the children rooms?

1 Accepted Solution

Avatar

Correct answer by
Former Community Member

Hi,

You can always create the collection nodes programmatically. All our shared models such as Manager classes and other shared models create collectionnodes. Only thing is, for you to create collectionnode , you have to be a host. When you create a collectionnode that doesn’t exist in the room, it automatically gets created and if its there , it just subscribes to the existing one. Templating is just the easier to initialize a room with a set of collectionnodes.

When you add new features, you can create collectionnodes programmatically. Then lets say when you want to create a new room, use the room which is existing ( having your new feature/collectionNodes) to create the new one. That way new room will have everything.

Hope this helps

Thanks

Hironmay Basu

View solution in original post

4 Replies

Avatar

Former Community Member

No, once you template a new room from an existing one, it will only reflect those that were there that time. Any new collectionnode/node you add in demo or in demo1 will be reflected only in that respective room.

You can play around with this in dev console to see results in UI.

Hope this helps

Thanks

Hironmay Basu

Avatar

Level 2

Well, that is a problem.

We are planning to add new features in stages but we need to start creating the rooms now. We will have new room for each registered user.

In this we can not use the templating feature. But I am curious, is templating possible programmatically? I know it is possible through portal/console.

We are going to create rooms dynamically using lccs.php library. When do we add collection nodes programmatically? Isn't it just part of the application (the mxml file)? When the flex app gets initialized all the nodes will get added to every new room we use in the roomURL. Right? Am I missing something?

Avatar

Correct answer by
Former Community Member

Hi,

You can always create the collection nodes programmatically. All our shared models such as Manager classes and other shared models create collectionnodes. Only thing is, for you to create collectionnode , you have to be a host. When you create a collectionnode that doesn’t exist in the room, it automatically gets created and if its there , it just subscribes to the existing one. Templating is just the easier to initialize a room with a set of collectionnodes.

When you add new features, you can create collectionnodes programmatically. Then lets say when you want to create a new room, use the room which is existing ( having your new feature/collectionNodes) to create the new one. That way new room will have everything.

Hope this helps

Thanks

Hironmay Basu

Avatar

Former Community Member

Hi there,

You can make changes to an existing template by applying a room as the

template again in the console/portal. Hironmay is right though, only new

rooms created from that modified template would get the latest.

If you care that every user has the latest, you could just have your room

allocations be temporary - create a new room as the user comes in (or

pre-allocate a pool of rooms regularly and send him to an unused one). Have

a job which cleans up old rooms nightly or so. This would work unless you

want to persist things users create in the rooms (chat/whiteboard/other

history).

hope that helps

nigel

The following has evaluated to null or missing: ==> liqladmin("SELECT id, value FROM metrics WHERE id = 'net_accepted_solutions' and user.id = '${acceptedAnswer.author.id}'").data.items [in template "analytics-container" at line 83, column 41] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign answerAuthorNetSolutions = li... [in template "analytics-container" at line 83, column 5] ----