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.

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.

3 Likes

Clever, very clever. :nerd_face:

2 Likes

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.

1 Like

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

1 Like

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!

2 Likes

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

1 Like

Oh snap

1 Like

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

1 Like

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():

1 Like

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?

2 Likes

Same behavior

1 Like

Interesting, indeed…

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.

1 Like

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

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.

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.