Définition

Table des matières

  1. submit64_form_builder
  2. submit64_association_filter_rows
  3. submit64_association_filter_columns
  4. submit64_association_select_columns
  5. submit64_association_label
  6. submit64_lifecycle_events

submit64_form_builder

def submit64_form_builder: (Context?) -> FormHash
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

  /*
  * Autorise la création de masse
  * WARNING : La création de masse n'applique les validations que sur le premier enregistrement
  */
  allow_bulk: 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 = ''

  /*
  * Callback qui définit si la section doit être générée ou non
  */
  statement: () -> Boolean = nil
}


type FieldHash = {

  /*
  * Cible du champ, une colonne en base ou le nom d'une relation
  */
  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

  /*
  * Callback qui défini si le champ doit être généré (et pris en compte à la soumission) ou non
  */
  statement: () -> Boolean = 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'

  /*
  * Cible arbitraire délié du model
  */
  unlink_target: Symbol

  /*
  * Type du champ délié
  * Nécessite l'attribut unlink à true
  */
  unlink_type: "string"
              | "text"
              | "date"
              | "datetime"
              | "select"
              | "selectBelongsTo"
              | "selectHasMany"
              | "selectHasOne"
              | "selectHasAndBelongsToMany"
              | "checkbox"
              | "number"
              | "object" = "string"
}



submit64_association_filter_rows

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



submit64_association_filter_columns

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



submit64_association_select_columns

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



submit64_association_label

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



submit64_lifecycle_events

def submit64_lifecycle_events: (Context?) -> LifeCycles
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_validations?: (on_submit_data, Context) -> nil,
  on_submit_valid_before_save?: (on_submit_data, Context) -> nil,
  on_submit_success?: (on_submit_data, Context) -> nil,
  on_bulk_submit_success?: (on_submit_data, Context) -> nil,
  on_submit_fail?: (on_submit_data, Context) -> nil,
  on_bulk_submit_fail?: (on_submit_data, Context) -> nil,
}