Projet

Général

Profil

Actions

Anomalie #13109

fermé

[Visa] Changement de statut non demandé si enchainement d'action

Ajouté par Laurent GIOVANNONI il y a presque 5 ans. Mis à jour il y a plus de 3 ans.

Statut:
R&D - Terminé
Priorité:
1-Majeur
Assigné à:
Version cible:
Début:
03/02/2020
Echéance:

Description

Sur l'écran de visa, il y a un souci si on effectue d'abord une action qui change un statut sur un premier courrier, puis sur un deuxième courrier on fait l'action par défaut (qui ne change pas de statut).

Après audit du code, je vois que la fonction close_action de apps/maarch_entreprise/js/functions.js utilise la variable JS actions_status.
hors cette dernière n'est réinitialisée que lors du rechargement de la page.
Comme via dans l'écran visa on ne recharge pas la page (page angular), du coup l'action par défaut réalisée sur un deuxième document prend le statut de l'action précédente.

voici un fix pour résoudre le souci sur la 18.10 :

/**
 * If the action has open a modal, destroy the action modal, and if this is the last action of the pile, reload the opener window
 *
 */
function close_action(id_action, page, path_manage_script, mode_req, res_id_values, tablename, id_coll) {
    var modal = $('modal_' + id_action);
    if (modal) {
        destroyModal('modal_' + id_action);
    }
    if (pile_actions.values.length == 0) {
        if (actions_status.values.length > 0) {
            var status = actions_status.values[actions_status.values.length - 1];
            action_done = action_change_status(path_manage_script, mode_req, res_id_values, tablename, id_coll, status, page);
            if (typeof window['angularSignatureBookComponent'] != "undefined") {
                actions_status.values = [];
            }
        } else {
            if (page != '' && page != NaN && page && page != null) {
                if (typeof window['angularSignatureBookComponent'] != "undefined") {
                    window.angularSignatureBookComponent.componentAfterAction();
                } else {
                    do_nothing = false;
                    window.top.location.href = page;
                }

            } else if (do_nothing == false) {
                if (typeof window['angularSignatureBookComponent'] != "undefined") {
                    window.angularSignatureBookComponent.componentAfterAction();
                } else {
                    window.top.location.hash = "";
                    window.top.location.reload();
                }


            }
            do_nothing = false;
        }

    }
}

Le code suivant inséré dans la fonction permet de reinit la variable actions_status au bon moment

if (typeof window['angularSignatureBookComponent'] != "undefined") {
                actions_status.values = [];
            }

Patch à prendre en compte à partir de la 18.10

Actions

Formats disponibles : Atom PDF