Skip to content

Définition API

submit64_form_builder

ruby
def submit64_form_builder: (ResourceInstance?, Context?) -> FormHash
ruby
type ResourceInstance = Class | nil
type Context = Hash[String, untyped]

type FormHash = {

  # Définition des sections
  sections: SectionHash[] = []

  # Utilise les validations Active Record
  use_model_validations: Boolean = true

  # Format des dates pour la sauvegarde
  backend_date_format: String = 'YYYY-MM-DD'

  # Format des datetimes pour la sauvegarde
  backend_datetime_format: String = 'YYYY-MM-DDTHH:mm:ss.SSSZ'

  # Classe css sur le container du formulaire
  css_class: String = ""

  # Permet de réinitialiser les valeurs du formulaire côté client
  resetable: Boolean = false

  # Permet de supprimer les valeurs du formulaire côté client
  clearable: Boolean = false

  # Formulaire en lecture seule
  readonly: Boolean = false
}

type SectionHash = {

  # Définition des champs
  fields: FieldHash[] | Symbol[] = []

  # Défini un titre à la section
  label: String = nil

  # Défini un icône à la section
  icon: String = nil

  # Section en lecture seule
  readonly: Boolean = false

  # Classe css sur la section
  css_class: String = ''
}


type FieldHash = {

  # Cible du champ, une colonne en base, le nom d'une relation ou le nom d'une pièce jointe
  # /!\ Doit être unique, partagé avec les :unlink_target
  target: Symbol

  # Libellé du champ
  label: String = nil

  # Indice du champ
  hint: String = nil

  # Prefix du champ
  prefix: String = nil

  # Suffix du champ
  suffix: String = nil

  # Champ en lecture seule
  readonly: Boolean = false

  # Classe css sur le champ
  css_class: String = nil

  # Valeur par défaut du champ pour le mode création
  # Pour les associations belongs_to, il faut donner la valeur de la clé étrangère
  # Pour les associations has_many, il faut donner les valeurs des clés primaires du modèle d'association
  default_value: untyped = nil

  # Type supplémentaire
  extra_type: 'color' | 'wysiwyg'

  # Défini une liste de value à sélectionner arbitraire
  # Automatiquement généré pour les énumérations
  select_options: Array[String] | Hash[String, untype]

  # Cible arbitraire délié du model
  unlink: UnlinkHash
}


type UnlinkHash = {

  # /!\ Identifiant unique, partagé avec les clés :target
  name: Symbol

  # Type du champ délié
  type: "string"
        | "text"
        | "date"
        | "datetime"
        | "select"
        | "selectBelongsTo"
        | "selectHasMany"
        | "selectHasOne"
        | "selectHasAndBelongsToMany"
        | "checkbox"
        | "number"
        | "object"
        | "attachmentHasOne"
        | "attachmentHasMany" = "string"

  # Nom de la classe du modèle pour déterminer les types selectBelongsTo, selectHasMany, selectHasOne et selectHasAndBelongsToMany
  association_class: String = nil
}



submit64_association_filter_rows

ruby
def submit64_association_filter_rows: (FromClass?, Context?) -> ActiveRecord::Relation
ruby
type FromClass = String
type Context = Hash[String, untyped]



submit64_association_filter_columns

ruby
def submit64_association_filter_columns: (FromClass?, Context?) -> Symbol[]
ruby
type Context = Hash[String, untyped]
type FromClass = String



submit64_association_select_columns

ruby
def submit64_association_select_columns: (FromClass?, Context?) -> Symbol[]
ruby
type Context = Hash[String, untyped]
type FromClass = String



submit64_association_label

ruby
def submit64_association_label: (FromClass?, Context?) -> String
ruby
type Context = Hash[String, untyped]
type FromClass = String



submit64_lifecycle_events

ruby
def submit64_lifecycle_events: (Context?) -> LifeCycles
ruby
type Context = Hash[String, untyped]
type LifeCycles = {
  on_get_metadata_start?: (on_metadata_data, Context) -> nil,
  on_get_metadata_end?: (on_metadata_data, Context) -> nil,

  on_get_association_start?: (on_association_data, Context) -> nil,
  on_get_association_end?: (on_association_data, Context) -> nil,

  on_submit_start?: (on_submit_data, Context) -> nil,
  on_submit_before_assignation?: (on_submit_data, Context) -> nil,
  on_submit_valid_before_save?: (on_submit_data, Context) -> nil,
  on_submit_success?: (on_submit_data, Context) -> nil,
  on_submit_fail?: (on_submit_data, Context) -> nil,
}