Home      FAQ      Forum      Idea Exchange      Ask a Question      My Stuff      Help   
  
Targeted edit forms
Currently there's only 1 edit form for all possible edit scenarios. I'm feeling very constrained by this.

What I would really like to do is implement an edit form for each possible edit action. Where:

1) Form behavior specific to that action is activated.
2) Column defaulting specific to that action is activated.
3) Automated behavior specific to that action runs, like creating records and sending emails.
4) Validations specific to that action are activated, for things that need to be true when entering in this scenario only but don't need to be verified at any other time.

== Example ==

I might have a system tracking deliveries.

So when I go in to enter a delivery was successful, I get a required Delivered Date that defaults to today, and a required Receipt attachment for uploading a copy of the paperwork. Validation prevents Delivered Date being before the date the package was dropped off with us for delivery.

But when I go in to enter that there was a delay, I get required Delay Reason and optional Expected Delivery Date for changing. An email goes out to the customer with the updated information.

And if I go in to enter a delivery failed, I get a different set of columns with different defaults.

At each stage I have the full form available, with all data not relevant to my current action visible but readonly.

== Current Situation ==

Custom buttons can provide an edit form. And you can use an assignment to a column to activate button-specific form behavior, defaulting, validations, and automated actions. I do this now. But the button form is very simple. It's just a single-column list of fields, you don't have the ability to organize with sections or put columns next to each other or control column names like you can on the main form. You also don't have all the other data visible, a lot of times I would like it there for reference. And most importantly, it's not possible to edit File Attachment columns on a button form.

You could have a dropdown column on the main form where you select the edit action you want to do. You could use that to enable action-specific form behavior, defaulting, validations, and automated actions. The problem here is that it's difficult to constrain the list to just the applicable actions. Only certain actions should be available at certain times in the process. Some actions need to be available at multiple stages, I'm not sure it's even possible to handle that one.

And this also requires clicking Edit then selecting the action I want. Would really prefer a single click of a button to open exactly the form I need.

== Proposal ==

The edit.aspx page accepts a URL parameter in this form:
[field_id]=[field_value]

In response to this in a URL, the system places the specified value in the specified field. All relevant form behavior and column defaulting occurs. But this only works on the add form. The edit form for an existing record ignores it.

If this were active on the edit form, I would have everything I need. I could construct URLs that open the edit form and drop some identifier of the action I want into a column. That would cause the form behavior to give me the form I want, all the defaulting for that action would happen, I could implement validations that only run when this action is specified, and it would activate workflow triggers to run the right automated actions.

If they're in a URL column I can make them show as buttons on the form, and hide them when the action shouldn't be available. Or I can put them all in 1 XHTML column with just the buttons for the available actions visible, and put them in views.

I propose enabling this query parameter ability for the edit form. It seems to already exist, so it may be simple to just turn it on.

This one small change would open up a huge amount of power in what I'm able to achieve in the edit interface.


ID
926
Category
User Experience
Author

Nathan Phillips (CW)
Date Created
12/2/2015 1:17:02 PM
Date Updated
12/28/2015 9:01:26 AM
Status
Implemented
Score
50
Promoted By
martin oliverJan SchoonGii Systems
basenineNathan Phillips (CW)
Comments
Nathan Phillips (CW) 12/2/2015 1:19:02 PM
I guess my example image was resized. Here's the full one:
http://postimg.org/image/b8aoh7xsn/
basenine 12/2/2015 4:13:51 PM
Welcome back 👍
basenine 12/3/2015 1:36:59 AM
You know what would also be really nice...which could tie in with this or be a separate Idea altogether:
"Placeable action buttons" (within the form - both View and Edit) - the buttons could be put within the appropriate section...even if the buttons were in the section header. Coupled with the ability to resize/colourize the buttons (i.e a selection of bootstrap buttons from within TD would be great) or even have an icon displayed.

I like your concept of having the action button display the form in a similar/familiar way
Nathan Phillips (CW) 12/3/2015 5:07:46 AM
About button customizations - I think you can achieve this now. You just need a URL to the button. It's like this:

URLRoot()&"/edit.aspx?b=12345&id="&RecordId()

Where the value of b is the ID of the button. You can get it from the URL of the setup page for the custom button, it's the value of custbtn=[ButtonId]. If you open this URL you will run that button on the record you opened it from. If it takes input it will give you the button form. If it just runs an action it will run the action.

If you make it a Table View button and show it on no views, then it's accessible to everyone but not visible anywhere in the normal interface. So you can provide just your customized interface to it.

Be sure to put the back information at the end, so it lands you back where you clicked it from:
URLRoot()&"/edit.aspx?b=12345&id="&RecordId()&"&back="&BackURL()

== Interface Possibilities ==

If you put it in a Formula URL column, you can make it show as a button with whatever text you want. It will look like a standard system button.

If you put it in a Formula XHTML column, you can control color and size and anything else you want:
<a href="<% [Button URL - Delivered] %>">
<button type="button" style="background-color:green;height:50px;width:100px;">
Delivered
</button>
</a>

Or if you put an image you want to use in the application resources, you can use a Formula XHTML column to make an image that acts as a button:
<a href="<% [Button URL - Delay] %>">
<img src="res.aspx/Warning-icon.png" />
</a>

You can put all of these on the form. And you can use form behavior to only show the buttons that should be available based on current state of the record. You can also put them in views.

If you put the whole set in a single Formula XHTML column, then you can have a single column in views that shows just the available actions for each record:

<a href="<% [Button URL - Extend] %>" class="ui-button"
style="<% If([Button Extend Available?],"","display:none;") %>">
Extend Expected Delivery
</a>

<a href="<% [Button URL - Delivered] %>"
style="<% If([Button Extend Available?],"","display:none;") %>">
<button type="button" style="background-color:green;height:50px;width:100px;">
Delivered
</button>
</a>

<a href="<% [Button URL - Delay] %>"
style="<% If([Button Delay Available?],"","display:none;") %>">
<img src="res.aspx/Warning-icon.png" />
</a>

It works really well. I do this to put document buttons in views.

Here it is with separate columns: http://postimg.org/image/uh3hknud3/
And all in a single column: http://postimg.org/image/fjy4u2j2l/
Slava Shinderov  Staff  12/3/2015 8:10:08 AM
@Nathan we consider adding "Use Edit Form" option for Custom Button "User Input" property, so you'll be able to use default edit form instead of selected columns.
Custom button assignments will allow you to initialize the columns (for example an action dropdown) and use standard form behavior to control the form.
Will that solution work for you?

Nathan Phillips (CW) 12/3/2015 8:11:59 AM
Slava - That would be spectacular. Even better than what I proposed.
basenine 12/3/2015 2:51:14 PM
Thanks Nathan. Wow! I hardly ever use xhtml but should probably readdress its use (in fact, I just got rid of one last night and replaced it with the new colourise column function!).

Slava, that will be much better in terms of consistency and feel. I reckon an easy solution to be able to distribute/place those action buttons would be the ducks guts too 👍
Slava Shinderov  Staff  12/23/2015 5:16:45 AM
We’ve extended custom buttons with two options: confirmation message and user input via standard edit form:
https://www.teamdesk.net/blog/whats-new/new-custom-buttons-options/
Nathan Phillips (CW) 12/23/2015 5:25:50 AM
Beautiful! Thanks so much guys. Using it right away.
Robert Gustavsson 12/23/2015 1:55:52 PM
If "User input" = "Edit form", shouldnt the default edit button be removed?
Slava Shinderov  Staff  12/23/2015 2:01:15 PM
@Robert This is not about "renaming" default edit button.
Nathan Phillips (CW) 12/23/2015 6:21:33 PM
Robert - I think you can achieve that if you want to. You can just hide the edit button in the table properties.

I've thought about doing this now, because it makes it possible to show and hide an edit button conditionally.

A lot of times I've wanted to just hide the edit button once a record is closed and no longer editable. I use form behavior to lock all columns for editing in that situation. But it's a little confusing that the edit button is even there, because you can click it and you get an edit form but you can't edit anything. Could be clearer to use a custom Edit button now that just becomes hidden when edit is unavailable.
Robert Gustavsson 12/28/2015 2:46:10 AM
Yes Nathan, I agree that more customization options for the default buttons would be welcome. I've figured out how to disable the edit button for table views but as far as I know the edit button can't be removed from the preview page.
Nathan Phillips (CW) 12/28/2015 2:58:27 AM
There's a central place to turn the edit button off. If you go to Setup -> {the table you want} -> Table -> Table properties, there's a User Interface section at the bottom of that page. If you edit that you can enable the Hide Edit option.

That will turn off the edit button for all views and the view form.
Robert Gustavsson 12/28/2015 3:10:18 AM
Right, thanks!
Nathan Phillips (CW) 12/28/2015 6:26:38 AM
This is working so well. Thanks again guys!
Robert Gustavsson 12/28/2015 9:01:26 AM
Support for inline edit would be nice too.
Feedback
 
Back to Search Results