68 lines
3.5 KiB
Plaintext
68 lines
3.5 KiB
Plaintext
# Customize form fields specifications
|
|
|
|
|
|
CASES
|
|
- https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3426
|
|
- https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/1442
|
|
- https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/1368
|
|
- https://rockfish.ayanova.com/default.htm#!/rfcaseEdit/3408
|
|
|
|
|
|
|
|
REQUIREMENTS
|
|
|
|
UI FEATURE - The ability to customize forms:
|
|
- A "Customize" option in the Action bar menu | that is accessible to people of BizAdminFull role only
|
|
- If a dispatcher needs a custom field set on a workorder, a bizadminfull user must login and set that up for them
|
|
- When customize is selected a generic form pops up with a list of fields provided by the backend and their current settings and controls
|
|
- This form can then be re-used everywhere as it's a stock object and this way we don't need to have a customize form for every existing CRUD form
|
|
- Choosing to expose one or more of up to 15 custom fields on form in custom field section that shows when at least one is enabled
|
|
- Set the localized text for the current locale for every existing field and any custom ones enabled
|
|
- Set whether a field is visible or not to user
|
|
- Some stock fields will never be able to be hidden, they will be "core" fields required for AyaNova operations and will have their hidden checkbox grayed out
|
|
- Set whether a field custom or stock is required to have a value entered or have it's value changed
|
|
- If required then it's like a business rule and treated just like that at the back and front end
|
|
- During business rule validation check at backend it checks if the fields are required and have entries and returns a validation error if not exactly the same as for built in rules
|
|
- Ideally this would be a better feature if it was everywhere, not just in a limited set of objects but rather in all substantial objects
|
|
- Client caches the customization data when it first opens the form and then checks if it's changed when it next opens the form
|
|
- The route that fetches the FormCustomization data needs to accept a query item that is a date or concurrency token so that
|
|
if nothing has changed the server returns the unchanged code or instead returns all the data if it is changed to save bandwidth
|
|
|
|
|
|
|
|
## TODO
|
|
|
|
- Need a FormCustomization table and model to hold the user's form customization data
|
|
- Only holds items that differ from stock, no "core" fields allowed
|
|
- FormKey
|
|
- FieldKey
|
|
- Hide
|
|
- Required
|
|
- Type (checkbox, date, date time, decimal, number, picklist, and text)
|
|
|
|
- Need a FormFields static collection class that contains the fields available to each form
|
|
- Fields: FormKey, FieldKey (localekey), Core (bool, true means can't be hidden), IsCustom (bool, means it's one of the custom fields that can be set to type etc)
|
|
- This should be independent from any other class tied to a particular route or controller or db table as it could be some or none of all of those things
|
|
- Probably a static class that backs a route that you provide a formkey and get back this collection similar to FilterOptions classes
|
|
|
|
|
|
EXISTING v7:
|
|
- 10 custom fields in
|
|
- Client
|
|
- Contract
|
|
- HeadOffice
|
|
- LoanItem
|
|
- Part
|
|
- Project
|
|
- PurchaseOrder
|
|
- Unit
|
|
- UnitModel
|
|
- User
|
|
- Vendor
|
|
- WorkorderItem
|
|
|
|
|
|
RAVEN REQUIREMENTS / CHANGES
|
|
|
|
|