Hi Gil,

Sorry for the late reply. 
I agree that button actions should be decoupled from forms.
Shall we continue with Part 3?

Regards,
James

On 2020/01/10 17:58:59, Gil Portenseigne <gil.portensei...@nereide.fr> wrote: 
> Hello !
> 
> In previous thread we focused on the process of how to define a dynamic
> workflow that raises some questions.
> 
> Let's go back to our principles: we have to find simple things, limit
> the possibilities (do little but good) and remember that on the
> backoffice it's end-users who are focused on specific tasks.
> 
> To make it simple, implement screen dynamism that will generate
> alterations of the dom, to limit side effects, we establish the
> following principles:
>   * We can only ask for an update of the area known by the calling
>     element.
> 
> Knowing that the element of coherence in the screen engine is the
> screen itself, we can refine this rule on the following basis
>   * An element triggering a screen update, can only update elements
>     present within the screen where it belongs.
> 
> Why did we made this choice? We will see it below, but the goal is
> always to make writing easier for the developer by avoiding him to
> wonder what is the value of the area to be refreshed.
> 
> If for various reasons we need to update an area outside the screen
> where the call is located, it is better to ask for a global refresh of
> the page. (Always simpler for the developer)
> 
> Another point to aim for simplicity, which zone to update?
> We can identify several actions:
>  * I'm on an item and I want to see related items data
>  * I'm on an item and I want to refresh that item data
> 
> The first case is a defined relation, I will refresh this area with
> this screen, area that will be generally determined by the decorator.
> Then, we will talk about the so-called embedded screens: "embedded
> screen".
> 
> The second case is about updating oneself following some sort of
> procedure, I have to refresh myself. Nothing is best than "knowing it
> yourself".
> 
> It was needed to implement an optimization to facilitate the application
> of these principles. The idea is that in most cases, the developer
> doesn't have to think about which zone he needs to specify to display
> his data.
> 
> In order to apply the operation in a homogeneous way, we added new
> structuring decorators in the common-theme with dedicated zone
> identifiers allowing each implementation to exploit the refresh.
> 
> For example, for a detail screen of an entity (e.g. product categories),
> we use a "DetailScreenDecorator" decorator. The main refresh area
> "Associated Objects Details" is the main dynamic area of the screen.
> We are going to identify precise areas so that each theme can be used in
> knowledge:
>     * breadcrumb: to display how we see the path to an entity
>     * summary: to display a quick information on this entity
>     * action: different actions available to this entity
>     * navigation: links or other element who help user to navigate on
>       the entity relation
>     * detail: to display a relation
> 
> In our searchn once the list of needs is done, we have exploited the
> areas for our theme as follows:
> 
> 
>    +-----------------------------------------------------+
>    | Catalog -> Category  (BreadCrumb)                   |
>    | +-------------------------------------------------+ |
>    | |                                   +------------+| |
>    | |                                   | Quick Menu || |
>    | |                                   +------------+| |
>    | |                                                 | |
>    | |              Category Summary                   | |
>    | |                                                 | |
>    | +-------------------------------------------------+ |
>    |                                                     |
>    | +-------------------------------------------------+ |
>    | |Tab Menu | menu1 | menu2 | menu3                 | |
>    | |-------------------------------------------------| |
>    | |  <div id="detailArea">                          | |
>    | |                                                 | |
>    | |          Associated Objects Details             | |
>    | |                                                 | |
>    | |                                                 | |
>    | |                                                 | |
>    | |                                                 | |
>    | +-------------------------------------------------+ |
>    +-----------------------------------------------------+
> 
> 
> The decorator will set a variable "detailArea" in the context of this
> screen, which contains the id of the div to refresh to present a new
> screen (products of the category for example).
> 
> The positioning of this type of variable facilitates the constraint on
> the developer to refresh an area of the screen, if he wants to code the
> Tab menu in a simplified way.
> 
> Also we are speaking about technical decorator, because we think that it
> is necessary to add business decorators implementing those, facilitating
> the recovery of information from the main object that is processed.
> 
> But we will discuss this in another mail Chapter 3 : promoting decorator
> usage
> 
> Best Regards,
> 
> Leila, Nicolas and Gil
> 
> 
> 

Reply via email to