<?php
//$Id$ 
//gen openMairie le 08/11/2023 15:27

require_once "../gen/obj/lien_om_utilisateur_om_utilisateur.class.php";

class lien_om_utilisateur_om_utilisateur extends lien_om_utilisateur_om_utilisateur_gen {

    /**
     * Définition des actions disponibles sur la classe.
     *
     * @return void
     */
    public function init_class_actions() {
        // On récupère les actions génériques définies dans la méthode
        // d'initialisation de la classe parente
        parent::init_class_actions();
        // ACTION - 100 - add_linked_user
        $this->class_actions[100] = array(
            "identifier" => "add_linked_user",
            "view" => "view_add_linked_user",
            "permission_suffix" => "ajouter",
        );
        // ACTION - 103 - read_linked_user
        $this->class_actions[103] = array(
            "identifier" => "read_linked_user",
            "view" => "view_read_linked_user",
            "permission_suffix" => "consulter",
        );
    }

    /**
     *
     * @return string
     */
    public function get_var_sql_forminc__sql_om_utilisateur_lie() {
        return "SELECT om_utilisateur.om_utilisateur, om_utilisateur.nom FROM ".DB_PREFIXE."om_utilisateur WHERE om_utilisateur.om_type = 'linked' ORDER BY om_utilisateur.nom ASC";
    }

    /**
     *
     */
    public function setType(&$form, $maj) {
        parent::setType($form, $maj);
        // Récupération du mode de l'action
        $crud = $this->get_action_crud($maj);

        // MODE AJOUTER
        if ($maj == 0 || $crud == 'create') {
            $form->setType("om_utilisateur_lie", "select");
        }

        // MDOE MODIFIER
        if ($maj == 1 || $crud == 'update') {
            $form->setType("om_utilisateur_lie", "select");
        }
    }

    /**
     * [view_add_linked_user description]
     * @return [type] [description]
     */
    public function view_add_linked_user() {
        // Vérification de l'accessibilité sur l'élément
        $this->checkAccessibility();
        // Récupération des variables GET
        $retourformulaire = $this->f->get_submitted_get_value('retourformulaire') !== null ? $this->f->get_submitted_get_value('retourformulaire') : '';
        $idxformulaire = $this->f->get_submitted_get_value('idxformulaire') !== null ? $this->f->get_submitted_get_value('idxformulaire') : '';
        $obj = 'om_utilisateur';
        // Objet à charger
        // Construction de l'url du sousformulaire d'ajout à appeler
        $url = OM_ROUTE_SOUSFORM."&obj=".$obj;
        $url .= "&action=100";
        $url .= "&retourformulaire=".$retourformulaire;
        $url .= "&idxformulaire=".$idxformulaire;
        $url .= "&retour=form";
        // Affichage du container permettant le rafraîchissement du contenu
        // dans le cas des action-direct.
        printf('
            <div id="sousform-href" data-href="%s">
            </div>',
            $url
        );
        // Affichage du container permettant de charger le retour de la requête
        // ajax récupérant le sous formulaire.
        printf('
            <div id="sousform-%s">
            </div>
            <script>
            ajaxIt(\'%s\', \'%s\');
            </script>',
            $obj,
            $obj,
            $url
        );
    }

    /**
     * [view_read_linked_user description]
     * @return [type] [description]
     */
    public function view_read_linked_user() {
        // Vérification de l'accessibilité sur l'élément
        $this->checkAccessibility();
        // Récupération des variables GET
        $retourformulaire = $this->f->get_submitted_get_value('retourformulaire') !== null ? $this->f->get_submitted_get_value('retourformulaire') : '';
        $idxformulaire = $this->f->get_submitted_get_value('idxformulaire') !== null ? $this->f->get_submitted_get_value('idxformulaire') : '';
        $obj = 'om_utilisateur';
        // Objet à charger
        // Construction de l'url du sousformulaire d'ajout à appeler
        $url = OM_ROUTE_SOUSFORM."&obj=".$obj;
        $url .= "&idx=".$this->getVal('om_utilisateur_lie');
        $url .= "&action=103";
        $url .= "&retourformulaire=".$retourformulaire;
        $url .= "&idxformulaire=".$idxformulaire;
        $url .= "&retour=tab";
        // Affichage du container permettant le rafraîchissement du contenu
        // dans le cas des action-direct.
        printf('
            <div id="sousform-href" data-href="%s">
            </div>',
            $url
        );
        // Affichage du container permettant de charger le retour de la requête
        // ajax récupérant le sous formulaire.
        printf('
            <div id="sousform-%s">
            </div>
            <script>
            ajaxIt(\'%s\', \'%s\');
            </script>',
            $obj,
            $obj,
            $url
        );
    }

    /**
     * SURCHARGE
     *
     * Permet de modifier le fil d'Ariane depuis l'objet pour un sous-formulaire.
     *
     * @param string $ent Fil d'Ariane récupéréré
     *
     * @return            Fil d'Ariane
     */
    function getSubFormTitle($ent) {
        return '';
    }

}
