Personnalisations

Scripts Client

Les scripts client permettent d'interagir directement avec l'interface utilisateur et de modifier son comportement.

Les scripts client permettent d'interagir directement avec l'interface utilisateur et de modifier son comportement.

Exemples

Vérifier qu'une pièce jointe a bien été ajoutée à un document de type Note de frais avant son enregistrement ou sa validation

frappe.ui.form.on('Expense Claim', {
  before_save(frm) {
    validate_attachments(frm)
  },

  before_submit(frm) {
    validate_attachments(frm)
  }
})

const validate_attachments = (frm) => {
  // On vérifie que le document a déjà été enregistré, car l'ajout d'une pièce jointe n'est possible qu'après le premier enregistrement
  // On vérifie également si une pièce jointe a déjà été ajoutée au document
  if (!frm.is_new() && !frm.attachments.get_attachments().length) {
    frappe.show_alert({
        message:"Veuillez ajouter des justificatifs pour votre note de frais",
        indicator: "orange"
    })

    // Variante: On peut également afficher un popup au lieu d'une alerte
    // Dans ce cas remplacez frappe.show_alert... par le code ci-dessous
    /*
    const dialog = new frappe.ui.Dialog({
        title: "Justificatifs manquants",
        minimizable: false,
        size: 'large'
    });
    dialog.msg_area = $('<div class="msgprint">').appendTo(dialog.body);
    const msg = "Veuillez ajouter des justificatifs pour votre note de frais";
    dialog.msg_area.append(msg);
    dialog.show()
    */


   // frappe.validated permet d'indiquer au framework que la validation a échoué. Le document ne pourra pas être enregistré
    frappe.validated = false;
  };
}

CC-BY-SA 3.0