<?php
// This file is part of Moodle - https://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <https://www.gnu.org/licenses/>.

/**
 * Plugin version and other meta-data are defined here.
 *
 * @package     local_hshexport
 * @copyright   2024 Elke Kreim elke.kreim@hs-hannover.de
 * @license     https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

namespace local_hshexport\form;

use moodleform;

defined('MOODLE_INTERNAL') || die();

class evaluserexport extends moodleform {

    public function definition()
    {
        $mform = $this->_form;

        $introtext = get_string('evaluserexport_form_into', 'local_hshexport');
        $mform->addElement('html', '<div id="intor">' . $introtext . '</div>');

        $courseid = $this->_customdata['courseid'];
        $coursecontext = $this->_customdata['coursecontext'];
        $viewableroles = get_roles_used_in_context($coursecontext, false);
        $roles = role_fix_names($viewableroles, $coursecontext, ROLENAME_ALIAS);
        $options = [];
        foreach ($roles as $role) {
            $options[$role->id] = $role->localname;
        }

        $placeholder = get_string('course_code_placeholder', 'local_hshexport');
        $mform->addElement('text', 'course_code', get_string('course_code', 'local_hshexport'), 'maxlength="150" size="50" placeholder="'.$placeholder.'"');
        $mform->setType('course_code', PARAM_TEXT);
        $mform->addHelpButton('course_code', 'course_code', 'local_hshexport');
        $mform->setDefault('course_code', null);

        $roles = role_fix_names($viewableroles, $coursecontext, ROLENAME_ALIAS);

        $roles_checkboxes = [];

        foreach ($roles as $role) {
            $roles_checkboxes[] =& $mform->createElement('advcheckbox', 'role_'.$role->id, $role->localname, null, ['group' => 1], [null, $role->id]);
        }
        $mform->addGroup($roles_checkboxes, 'roles', get_string('select_roles', 'local_hshexport'), ['<br/>'], true);
        $mform->addHelpButton('roles', 'select_roles', 'local_hshexport');
        $mform->addGroupRule(
            'roles',
            get_string('noselectedroles', 'local_hshexport'),
            'required',
            null,
            1,
            'client'
        );

        $this->add_checkbox_controller(
            1,
            get_string("checkall", "local_hshexport")
        );

        $mform->addElement('hidden', 'courseid', $courseid);
        $mform->setType('courseid', PARAM_INT);

        $mform->addElement('hidden', 'coursecontextid', $coursecontext->id);
        $mform->setType('coursecontextid', PARAM_INT);

        $submitlabel = get_string('csvdownload', 'local_hshexport');
        $this->add_action_buttons(false, $submitlabel);

    }

    function validation($data, $files)
    {
        $errors = parent::validation($data, $files); // TODO: Change the autogenerated stub
        return $errors;
    }

}