Hide inline action from table view, but make it available on detail view after selecting line item out of table view

When we set action to view as “inline”, it will kill the values of that field in case of “table view”. Let me explain.

This first screenshot demonstrate that the field values of fields are made visible on table view.

Then when I added the inline action for the fields, the table view looks like this.

Actions for each field are indeed available, but it sacrifices the visibility of field data value, as Appsheet is natively “hide” those.

Then I set my own goal and target of my jobs.

I’m okey NOT to show inline action on table view, but make the text value visible on table view, while the inline action keep available on detail view. Sorry, it is a little complex.

Actually the trick was pretty much simple. This was workaround.

First, create two slices, one with inline action and another without action inline.

Then create the table view out of slice WITHOUT inline action. Then create table view out of slice WITHOUT inline action.

For another preparation, create detail view out of slice WITH inline action.

Then prepare the action with deeplink, linktorow expression. When the user “select” line item on the table view, then fire this action to jump to detail view where we have inline action.

It finally looks like this.

https://www.loom.com/share/17123debe8ed43c9b774d68ea5933e5a

As you can see, inline action is no longer available on table view, but upon clicking one of the line items we jump to the detail view but made out of slice with inline actions.

I was inspired by Matt @MultiTech_Visions with this trick of “Matt Modal”

and tried to make his trick more advanced.

Hope this will help you all, and thanks matt with your tricks.

4 35 3,179
35 REPLIES 35

Clever, very clever.

I just create a virtual column ="" and put the actions there… Show/hide conditionally… Or rearrange/exclude with slices

@Grant_Stead but what if you want to show the action INLINE with a field?

yes, that works perfect, but I just wanted to place inline action just beside (right) of the actual text value rather than another line. Tiny thing and difference.

I see whatcha mean… I’ve never even done that as a design choice… lol

Actually, it started from the complain from my client… Then I started to investigate the workaround.

Things are improving by “complain” although I never welcome! Grant. haha.

This is pretty much “none-noticeable” by majority of the people, but pretty much important and noticeable for Appsheet geek like you!! nigh nigh!

Can you have only one slice and use CONTEXT(…) to selectively show or hide actions, such as CONTEXT(“ViewType”)=“detail”

Oh snap

You should be able to, as long as the slice has access to the actions in the first place.

Yes, it has.

Unfortunately no, you would think right!? But it’s a little buggy right now - perhaps after this thread!

Here’s a video showing the attempt with context():

Ye, well, editing system actions is always kind of a shot in the dark on if what you want will work. Did you test it at all with a completely custom action?

Same behavior

Interesting, indeed…

He just needs the actions on the detail page not in the table page. So, it should be easier applied.

The video show a bug in other view, not in detail view.

Unfortunately this seems to be a bug @Swoopy, no matter the work around attempted the same buggy behavior is happening; this seems to be something that AppSheet will need to address.

I never say that the video is not the issue but the poster (tsuji) just need to hide an action in his table-view only.

So, there is nothing related to the video clip. It’s different scenario.

From my snap shots above showing how I can hide an action in table-view and show it in detail-view (like tsuji’s needed) without adding an additional slice to achieve it. Moreover this is not workaround, it’s AppSheet feature.

My principle is that …more slices, more things to be managed…

I’m I missing something? Seems like I’m doing the same thing but he’s getting a different experience…

You say:

Yet if you go 25 seconds into the following video (same from post eariler) you can see I’ve got the condition right there.

So…

May be AppSheet have fixed it later on. Thanks for brought it up.

@Adam

Any thoughts? Matts sample case is demonstrating the inline action is shown/hidden based on the fact if the view is generated manually or systematically. On my original post, the trick is associated with text value for the fields attaching inline action to show/hide on the table view.

@Swoopy
@MultiTech_Visions

Okay, I’d been re-watching your video clip (on computer having bigger screen than my smartphone). Can you try revising your expression to,

AND(
   CONTEXT("View")<>"Walkthrough_Builder_Detail"
   ,
   CONTEXT("View")<>"Page_Elements_Inline 2"
   ,
   CONTEXT(“ViewType”)=“Detail”
)

And see if It helps? My point is, you need to (also) tell AppSheet not showing the action in the detail view of parent table/slice (where the inline view of child table is shown).

It seems the CONTEXT(“ViewType”)=“Detail” only active in the detail view of the child table/slice. So, we need to have another specifically identifying the parent detail view in the action’s expression.

My understanding is that it is because you bind the action to the child table, then the key word “Detail” works only for the child table’s views the action is bound.

Swing and a miss.

I see what you’re saying: context is a top-level thing, so the inline can be thought of as being a sub-layer of things.

It probly doesn’t help that there’s a dashboard involved too!

I checked though, same behavior. I get the action not showing up in any of the inline views - but the value of the column is also hidden (just a big empty space). When going to the detail view it’s visible; just like before.

I tried:

and(
  not(in(context("View"), list("Page_Elements_Inline", "Walkthrough_Builder_Detail"))),
  context("ViewType") = "Detail"
)

Hello MV, I’ve also found that sometimes the column attached with inline action may just disappear in some table view when using CONTEXT(“View”) for controlling the inline action (like what you said).

My workaround is creating new virtual column in that table having formula refer to the problem column. Then, use the new virtual column in the table view.

Then use CONTEXT(“View”) to control column’s display in Show expression, for example

IN(CONTEXT("View"), LIST("TableViewName", "DashboardViewName"))

Yes,

"Can you have only one slice and use CONTEXT(…) to selectively show or hide actions, such as CONTEXT(“ViewType”)=“detail” "

was the first workaround I tested, but unfortunately this does not work. It indeed hide the inline action, but the text value is also kept hidden, meaning the entire column space was left empty.

Hence, I eventually came to this trick.

I mean you put CONTEXT() inside action’s behavior, not in column’s show.

Not sure what you mean. But I placed context expression in an attempt to hide inline action from table view. But it works but it also keep hiding text values.

I’am not on computer now. If I am correct, go to Behavior > Actions > your actions > behavior there’s the condition for the action to be available according to expression. Then put CONTEXT() there.

That’s what I meant.

Check out “Only if this condition is true”. In BEHAVIOR part. Same place in MV’s video above.

That’s what I meant.

Okay, I am fully wake up ! This is the original table view.

2X_a_ab21b1b375a79e634c2b6645f2ff7b984cd625ae.png

Then I created an action name “Test Action”, set it to be “Display inline” and attach to column “Unit”. With only this settings, this action is shown on both table-view & detail-view. Note that the unit column disappears in table-view.

2X_4_4da5f6d5c989eece652060a0464ce0062b2d0eba.png 2X_a_ae9af6e16b0afa243281f41a1aef1ff9cac8c13d.png

Now go to BEHAVIOR >> “Only if this condition is true” and put CONTEXT(“ViewType”)=“detail” therein.

2X_7_767520df0504cfed3de86564f7e9a9a87b408c7c.png

And now, this action disappears on table-view and shows on detail-view only.

2X_6_6e2b5aff5af0a5afeec1e8c1cd9d726c766edd41.png 2X_b_b9213b988503e32a5654b996dd07a7a63f15c352.png

That’s all I meant.

Thank you @Swoopy
This is working as long as you don’t use your table view as a ref view in detail.
Let’s say you have orders and items.
You open an order and see all the items in a ref table.
In this context, you would see the inline Action in the ref table. Because you are in a detail view.
When you click on VIEW, the table view opens up. NOW you are in table view and the inline Action is hidden.

@Fabian

If an action is attached to items’s column that you need to show in its inline view that appears in the orders’s detail view, you can specifically hide the action in its inline view by putting

AND(
   CONTEXT("View")<>"Orders_Detail"
   ,
   CONTEXT("View")<>"Items_Inline"
   ,
   CONTEXT(“ViewType”)=“Detail”
)

in the action’s “Only if this condition is true”. Then,

“You open an order and see all the items in a ref table.
In this context, you would NOT see the inline Action in the ref table.”

I have pressed incorrect reply-icon, my reply to you is down below

This step-by-step demonstration may be useful.

These are the original screen shots.

There is no action that I am going to add for “Receive_Detail”.

Now I add an inline action named “New Action” and attach to “Unit” column.

Now the “New Action” is shown on table view, inline view and detail view.

Now I change the action BEHAVIOR >> “Only if this condition is true” to

AND(
   CONTEXT("View")<>"Object 2_Detail"
   ,
   CONTEXT("View")<>"Receive_Inline"
   ,
   CONTEXT(“ViewType”)=“Detail”
)

2X_d_da00fa71b8d0b917fc444b44e3474a6969bd1b80.jpeg

This is to prevent the action shown on Object 2_Detail and Receive_Inline views. Save and see results.

You can clearly see that the new action is shown only in Receive_Detail view, not in Object 2_Detail and Receive_Inline (which are table views).

All you need to do is controlling the action in “Only if this condition is true”

Good night guys !

Top Labels in this Space