LScli: add autocomplete_LSobject_attr_name() and autocomplete_LSform_name() helpers methods

This commit is contained in:
Benjamin Renard 2024-11-20 20:19:32 +01:00
parent b7a68f6a9e
commit 965efeeda5
Signed by: bn8
GPG key ID: 3E2E1CE1907115BC
2 changed files with 48 additions and 13 deletions

View file

@ -55,26 +55,28 @@ Pour mettre en place une telle commande *CLI* personnalisée, il est nécessaire
Pour vous aider dans l'écrire d'une telle méthode d'autocomplétion, des méthodes statiques Pour vous aider dans l'écrire d'une telle méthode d'autocomplétion, des méthodes statiques
sont fournies par la classe `LScli` pour les autocomplétions les plus courantes : sont fournies par la classe `LScli` pour les autocomplétions les plus courantes :
- `LScli :: autocomplete_class_name()` - `LScli :: autocomplete_class_name()` : Autocomplétion du nom d'une classe PHP.
Autocomplétion du nom d'une classe PHP. - `LScli :: autocomplete_addon_name()` : Autocomplétion du nom d'un
[LSaddon](../../conf/index.md#configuration-des-lsaddons).
- `LScli :: autocomplete_addon_name()` - `LScli :: autocomplete_int()` : Autocomplétion d'un nombre entier.
Autocomplétion du nom d'un [LSaddon](../../conf/index.md#configuration-des-lsaddons). - `LScli :: autocomplete_LSobject_types()` : Autocomplétion du nom d'un type
d'[LSobject](../../conf/index.md#configuration-lsobject).
- `LScli :: autocomplete_int()` - `LScli :: autocomplete_LSobject_dn()` : Autocomplétion du DN d'un type précis
d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
Autocomplétion d'un nombre entier. - `LScli :: autocomplete_LSobject_attr_name()` : Autocomplétion du nom d'un attribut précis
pour un type d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
- `LScli :: autocomplete_LSobject_types()` - `LScli :: autocomplete_LSobject_ioFormat()` : Autocomplétion du nom d'un
[ioFormat](../../conf/LSobject/ioFormat.md#ioformat) pour un type
d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
Autocomplétion du nom d'un type d'[LSobject](../../conf/index.md#configuration-lsobject). - `LScli :: autocomplete_LSform_name()` : Autocomplétion du nom d'un formulaire de
l'application.
- `LScli :: autocomplete_LSobject_dn()`
Autocomplétion du DN d'un type précis d'[LSobject](../../conf/index.md#configuration-lsobject) de
l'annuaire.
Par ailleurs, la méthode `LScli :: autocomplete_opts()` vous facilitera la construction de la Par ailleurs, la méthode `LScli :: autocomplete_opts()` vous facilitera la construction de la
liste des valeurs d'autocomplétion de l'argument courant en fonction de ce qui a déjà été liste des valeurs d'autocomplétion de l'argument courant en fonction de ce qui a déjà été

View file

@ -780,6 +780,28 @@ class LScli extends LSlog_staticLoggerClass {
return array(LScli :: quote_word("$rdn_attr=", $quote_char)); return array(LScli :: quote_word("$rdn_attr=", $quote_char));
} }
/**
* Autocomplete LSobject attribute name
*
* @param string $objType LSobject type
* @param string $prefix Option prefix (optional, default=empty string)
* @param boolean $case_sensitive Set to false if options are case insensitive (optional, default=true)
* @param string $quote_char Quote character (optional, if not set, $prefix will be unquoted and its
* quote char (if detected) will be used to quote options)
*
* @return array List of available options
**/
public static function autocomplete_LSobject_attr_name($objType, $prefix='', $case_sensitive=true, $quote_char='') {
if (!LSsession ::loadLSobject($objType, false))
return array();
return self :: autocomplete_opts(
LSconfig :: keys("LSobjects.$objType.attrs"),
$prefix,
$case_sensitive,
$quote_char
);
}
/** /**
* Autocomplete LSobject ioFormat option * Autocomplete LSobject ioFormat option
* *
@ -805,6 +827,17 @@ class LScli extends LSlog_staticLoggerClass {
return self :: autocomplete_opts($ioFormats, $prefix, $case_sensitive, $quote_char); return self :: autocomplete_opts($ioFormats, $prefix, $case_sensitive, $quote_char);
} }
/**
* Autocomplete LSform name
*
* @param string $prefix LSform name prefix (optional, default=empty string)
*
* @return array List of matched LSform names
**/
public static function autocomplete_LSform_name($prefix='', $quote_char=null) {
return self :: autocomplete_opts(["create", "modify", "lostPassword"], $prefix, true, $quote_char);
}
/** /**
* Autocomplete LSformRule name * Autocomplete LSformRule name
* *