Documentation Frappe Framework

Frappe Framework

API Dialog

Une boîte se construit avec des champs et une action principale. new_doc ouvre un formulaire, ou la saisie rapide si elle est activée.

3 min de lectureMis à jour le Source : docs.frappe.io

Dialogue

Le pendant Python est API Dialog. Les contrôles de champ sont dans Contrôles.

new frappe.ui.Dialog({ title, fields, primary_action }). L’exemple « Enter details » a First Name, Last Name et Age, size small (aussi large et extra-large), libellé Submit. L’action affiche les valeurs et appelle d.hide(). Il faut d.show().

Messages

frappe.msgprint prend une chaîne ou { title, message, indicator }. L’exemple est vert, titre Notification. Une action principale se lie par primary_action.action, ou par server_action ou client_action, chemins pointés, avec label et args. Les deux actions ne se passent pas ensemble : le commentaire dit l’un ou l’autre. L’exemple en met pourtant les deux.

frappe.throw affiche le message et lève une exception.

frappe.prompt demande une valeur ou une liste. Une chaîne « First Name » et un callback ({ value }). Quatre arguments : libellé, callback, titre, libellé du bouton. Un objet Date lit values.date. Un tableau de champs lit first_name et last_name.

frappe.confirm(message, if_yes, if_no).

frappe.warn(title, message_html, proceed_action, primary_label, is_minimizable). La prose écrit proceed_actiion. L’exemple : titre de confirmation, texte sur les changements non enregistrés, callback, libellé Continue, et true pour pouvoir réduire. La légende publiée sous l’image dit frappe.confirm.

frappe.show_alert, titre de section showalert. Message, ou {message, indicator}, et des secondes. Défaut 7. L’exemple en passe 5.

frappe.show_progress(title, count, total, description). L’exemple : Loading.., 70, 100, Please wait. Le titre de section est showprogress.

Nouveau document

frappe.new_doc(doctype, route_options, init_callback). Si Quick Entry est activé, la fenêtre des champs importants s’ouvre. Sinon, le formulaire habituel. frappe.new_doc("Task"). route_options pose Link, Select, Data ou Dynamic Link : {subject: "New Task"}. description, Text Editor, se pose dans le callback : doc.description = "Do what's necessary". L’exemple Journal Entry, voucher_type Bank Entry, met la date du jour et une ligne accounts : Bank - A, USD, débit 100, crédit 0, via frappe.model.add_child.

Sélection multiple

new frappe.ui.form.MultiSelectDialog({ doctype, target, setters, date_field, get_query, action }). Filtres puis liste. Search Term et Date Range sont là par défaut. read_only_setters fige des filtres. add_filters_group ajoute le groupe de filtres de la vue liste. date_field est obligatoire. get_query renvoie query et filters. action reçoit selections. columns ne vaut qu’avec une requête personnalisée.

L’exemple Material Request, target this.cur_frm, setters schedule_date null et status Pending, date_field transaction_date, filtre docstatus différent de 2. La prose dit que le setter company est ajouté : il n’est pas dans cet objet. Le bouton secondaire Make {DocType} ouvre un nouveau formulaire.

allow_child_item_selection, que la prose appelle child_selection_mode, avec child_fieldname items et child_columns item_code et qty. Une case Select Individual Items bascule. args.filtered_children liste les noms d’enfants choisis.

Grille

Un champ Table dans le dialogue, in_place_edit, reqd, et des sous-champs. L’exemple Logs a log_type Select et time Time, tous deux en liste et obligatoires. Les options publiées de log_type sont IN et OUT, coupées par un saut de ligne. on_add_row reçoit l’index visible à partir de 1. L’exemple alterne IN et OUT selon idx - 1, puis logs.grid.refresh(). primary_action est publié comme { ... }.

Point d’attention

Les titres de section showalert, showprogress et newdoc ne sont pas les noms appelés : show_alert, show_progress, new_doc. Le setter company annoncé n’est pas dans l’exemple.

Dialogues JavaScript de Frappe | ERPNext Lab