Mega trick: Different "Expand row" layouts for the same row

Most likely you’re familiar with “Expand row” feature that lets you see a popup for a row by clicking here:

And perhaps you know the action Activate() to open that popup programmatically with a button, or at least used the “Add new row and open for editing” checkbox.

And also you may know that you can configure row details popup layout just like you can edit the layout in Detail view:

What you may not know though is that you can configure this popup’s layout individually per each view of your table.

Now, when you use thisRow.Activate(), the popup that will be brought up will always be the one of the master table. However, if instead of Activate() you use view-specific URLs like #_tuAPf/r{RowID}&modal=true, you can summon popups as configured for other views.

:point_down: Watch the video, and you’ll get it

With this trick you can have a compact table with a few buttons, each of them configured to open popups with only certain fields. E.g., if it’s a table of Classes, you can have one popup that deals with cancellation and rescheduling, another popup with program management (lesson doc links etc), another popup to review attendance and homeworks, and so on. Just make a few views that you can hide away, then configure popups differently for these, and then open the respective popups with buttons set to OpenWindow() different links.

3 Likes

Oh, turns out I’m not the first one to discover this :slight_smile:

Props to @Krunal_Sheth

Dear @Paul_Danyliuk,

Great that you highlighted this method again in a very detailed way.
Looks like only a few picked this up and somehow Coda doesn’t make much publicity on its potential, while in my eyes there is enough to explore as you already gave some clear direction.

Great job again :boom::boom::boom:

And one more thing: you can use UIDs and not RowIDs. This is especially useful if you want to open a recently created row that possibly hasn’t yet had a chance to have its RowID assigned, or a doc used in Play mode: