Example #1
0
        $mform->setType('maxexeprocesses', PARAM_INT);
        if ($instance->maxexeprocesses) {
            $mform->setDefault('maxexeprocesses', $instance->maxexeprocesses);
        }
        $mform->addElement('submit', 'savelimitoptions', get_string('saveoptions', VPL));
    }
}
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('forms/executionlimits.php', array('id' => $id));
vpl_include_jsfile('hideshow.js');
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
//Display page
$vpl->print_header(get_string('execution', VPL));
$vpl->print_heading_with_help('resourcelimits');
$vpl->print_configure_tabs(basename(__FILE__));
$course = $vpl->get_course();
$fgp = $vpl->get_execution_fgm();
$mform = new mod_vpl_executionlimits_form('executionlimits.php', $vpl);
if ($fromform = $mform->get_data()) {
    if (isset($fromform->savelimitoptions)) {
        $instance = $vpl->get_instance();
        \mod_vpl\event\vpl_execution_limits_updated::log($vpl);
        $instance->maxexetime = $fromform->maxexetime;
        $instance->maxexememory = $fromform->maxexememory;
        $instance->maxexefilesize = $fromform->maxexefilesize;
        $instance->maxexeprocesses = $fromform->maxexeprocesses;
        if ($DB->update_record(VPL, $instance)) {
            vpl_notice(get_string('optionssaved', VPL));
        } else {
        $mform->disabledIf('evaluateonsubmission', 'evaluate', 'eq', 0);
        $mform->addElement('selectyesno', 'automaticgrading', get_string('automaticgrading', VPL));
        $mform->setDefault('automaticgrading', 1);
        $mform->disabledIf('automaticgrading', 'evaluate', 'eq', 0);
        $mform->addElement('submit', 'saveoptions', get_string('saveoptions', VPL));
    }
}
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('forms/executionoptions.php', array('id' => $id));
vpl_include_jsfile('hideshow.js');
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
//Display page
$vpl->print_header(get_string('execution', VPL));
$vpl->print_heading_with_help('executionoptions');
$vpl->print_configure_tabs(basename(__FILE__));
$course = $vpl->get_course();
$fgp = $vpl->get_execution_fgm();
$mform = new mod_vpl_executionoptions_form('executionoptions.php', $vpl);
if ($fromform = $mform->get_data()) {
    if (isset($fromform->saveoptions)) {
        $instance = $vpl->get_instance();
        \mod_vpl\event\vpl_execution_options_updated::log($vpl);
        $instance->basedon = $fromform->basedon;
        $instance->run = $fromform->run;
        $instance->debug = $fromform->debug;
        $instance->evaluate = $fromform->evaluate;
        $instance->evaluateonsubmission = $fromform->evaluate && $fromform->evaluateonsubmission;
        $instance->automaticgrading = $fromform->evaluate && $fromform->automaticgrading;
        if ($DB->update_record(VPL, $instance)) {
Example #3
0
 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 * @author Juan Carlos Rodríguez-del-Pino <*****@*****.**>
 */
require_once dirname(__FILE__) . '/../../../config.php';
require_once dirname(__FILE__) . '/../vpl.class.php';
require_once dirname(__FILE__) . '/../jail/jailserver_manager.class.php';
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('views/checkjailservers.php', array('id' => $id));
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
//Display page
$PAGE->requires->css(new moodle_url('/mod/vpl/css/checkjailservers.css'));
$course = $vpl->get_course();
$vpl->print_header(get_string('check_jail_servers', VPL));
$vpl->print_heading_with_help('check_jail_servers');
$vpl->print_configure_tabs(basename(__FILE__));
\mod_vpl\event\vpl_jail_servers_tested::log($vpl);
$servers = vpl_jailserver_manager::check_servers($vpl->get_instance()->jailservers);
$table = new html_table();
$table->head = array('#', get_string('server', VPL), get_string('currentstatus', VPL), get_string('lasterror', VPL), get_string('lasterrordate', VPL), get_string('totalnumberoferrors', VPL));
$table->align = array('right', 'left', 'left', 'left', 'left', 'right');
$table->data = array();
$num = 0;
$clean_url = !$vpl->has_capability(VPL_SETJAILS_CAPABILITY) || !$vpl->has_capability(VPL_MANAGE_CAPABILITY);
foreach ($servers as $server) {
    $serverurl = $server->server;
    if ($clean_url) {
        $serverurl = parse_url($serverurl, PHP_URL_HOST);
    }
    $num++;
Example #4
0
 * @author        Juan Carlos Rodríguez-del-Pino <*****@*****.**>
 */
require_once dirname(__FILE__) . '/../../../config.php';
require_once dirname(__FILE__) . '/../locallib.php';
require_once dirname(__FILE__) . '/../vpl.class.php';
require_once dirname(__FILE__) . '/../editor/editor_utility.php';
vpl_editor_util::generate_requires();
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$instance = $vpl->get_instance();
$vpl->prepare_page('forms/requiredfiles.php', array('id' => $id));
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
$fgp = $vpl->get_required_fgm();
$vpl->print_header(get_string('requestedfiles', VPL));
$vpl->print_heading_with_help('requestedfiles');
$vpl->print_configure_tabs(basename(__FILE__));
//TODO download in zip file
$options = array();
$options['restrictededitor'] = false;
$options['save'] = true;
$options['run'] = false;
$options['debug'] = false;
$options['evaluate'] = false;
$options['ajaxurl'] = "requiredfiles.json.php?id={$id}&action=";
$options['download'] = "../views/downloadrequiredfiles.php?id={$id}";
$options['resetfiles'] = false;
$options['minfiles'] = 0;
$options['maxfiles'] = $instance->maxfiles;
//Get files
$files = array();
            $mform->addElement('checkbox', 'keepfile' . $num, $filename);
            $mform->setDefault('keepfile' . $num, in_array($filename, $keeplist));
            $num++;
        }
        $mform->addElement('submit', 'savekeepfiles', get_string('saveoptions', VPL));
    }
}
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('forms/executionkeepfiles.php', array('id' => $id));
vpl_include_jsfile('hideshow.js');
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
//Display page
$vpl->print_header(get_string('execution', VPL));
$vpl->print_heading_with_help('keepfiles');
$vpl->print_configure_tabs(basename(__FILE__));
$course = $vpl->get_course();
$fgp = $vpl->get_execution_fgm();
$mform = new mod_vpl_executionkeepfiles_form('executionkeepfiles.php', $fgp);
if ($fromform = $mform->get_data()) {
    if (isset($fromform->savekeepfiles)) {
        $list = $fgp->getFileList();
        $nlist = count($list);
        $keeplist = array();
        for ($i = 0; $i < $nlist; $i++) {
            $name = 'keepfile' . $i;
            if (isset($fromform->{$name})) {
                $keeplist[] = $list[$i];
            }
        }
Example #6
0
            $onclick = 'onclick="return confirm(\'' . $menssage . '\')"';
            $buttongroup[] = $mform->createElement('submit', 'delete', get_string('delete'), $onclick);
        }
        $mform->addGroup($buttongroup);
    }
}
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('forms/variations.php', array('id' => $id));
vpl_include_jsfile('hideshow.js');
$vplid = $vpl->get_instance()->id;
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
$href = vpl_mod_href('forms/variations.php', 'id', $id);
$vpl->print_header(get_string('variations', VPL));
$vpl->print_heading_with_help('variations');
//Generate default form and check for action
if (optional_param('varid', -13, PARAM_INT) == -13) {
    //No variation saved
    $oform = new mod_vpl_variation_option_form($href, $vpl);
    if ($oform->is_cancelled()) {
        vpl_inmediate_redirect($href);
        //Reload page
    } elseif ($fromform = $oform->get_data()) {
        $fromform->id = $vplid;
        vpl_truncate_string($fromform->variationtitle, 255);
        \mod_vpl\event\vpl_variation_updated::log($vpl);
        $DB->update_record(VPL, $fromform);
        vpl_inmediate_redirect($href);
    }
    $vplinstmod = clone $vpl->get_instance();
Example #7
0
 * @author        Juan Carlos Rodríguez-del-Pino <*****@*****.**>
 */
require_once dirname(__FILE__) . '/../../../config.php';
require_once dirname(__FILE__) . '/../locallib.php';
require_once dirname(__FILE__) . '/../vpl.class.php';
require_once dirname(__FILE__) . '/../editor/editor_utility.php';
vpl_editor_util::generate_requires();
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$instance = $vpl->get_instance();
$vpl->prepare_page('forms/testcasesfile.php', array('id' => $id));
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
$fgp = $vpl->get_required_fgm();
$vpl->print_header(get_string('testcases', VPL));
$vpl->print_heading_with_help('testcases');
$vpl->print_configure_tabs(basename(__FILE__));
$options = array();
$options['restrictededitor'] = false;
$options['save'] = true;
$options['run'] = false;
$options['debug'] = false;
$options['evaluate'] = false;
$options['ajaxurl'] = "testcasesfile.json.php?id={$id}&action=";
$options['download'] = "../views/downloadexecutionfiles.php?id={$id}";
$options['resetfiles'] = false;
$options['minfiles'] = 1;
$options['maxfiles'] = 1;
//Get files
$fgp = $vpl->get_execution_fgm();
$files = array();
Example #8
0
 * @author Juan Carlos Rodríguez-del-Pino <*****@*****.**>
 */
require_once dirname(__FILE__) . '/../../../config.php';
require_once dirname(__FILE__) . '/../locallib.php';
require_once dirname(__FILE__) . '/../vpl.class.php';
require_once dirname(__FILE__) . '/../editor/editor_utility.php';
vpl_editor_util::generate_requires();
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$instance = $vpl->get_instance();
$vpl->prepare_page('forms/executionfiles.php', array('id' => $id));
$vpl->require_capability(VPL_MANAGE_CAPABILITY);
$fgp = $vpl->get_required_fgm();
$vpl->print_header(get_string('executionfiles', VPL));
$vpl->print_heading_with_help('executionfiles');
$vpl->print_configure_tabs(basename(__FILE__));
//TODO download in zip file
$options = array();
$options['restrictededitor'] = false;
$options['save'] = true;
$options['run'] = false;
$options['debug'] = false;
$options['evaluate'] = false;
$options['ajaxurl'] = "executionfiles.json.php?id={$id}&action=";
$options['download'] = "../views/downloadexecutionfiles.php?id={$id}";
$options['resetfiles'] = false;
$options['minfiles'] = 0;
$options['maxfiles'] = 100;
//Get files
$fgp = $vpl->get_execution_fgm();
        $mform->addElement('header', 'headersetjails', get_string('local_jail_servers', VPL));
        $mform->addElement('hidden', 'id', required_param('id', PARAM_INT));
        $mform->setType('id', PARAM_INT);
        $mform->addElement('textarea', 'jailservers', get_string('jail_servers_description', VPL), array('cols' => 45, 'rows' => 10, 'wrap' => 'off'));
        $mform->setType('jailservers', PARAM_RAW);
        $this->add_action_buttons();
    }
}
require_login();
$id = required_param('id', PARAM_INT);
$vpl = new mod_vpl($id);
$vpl->prepare_page('forms/local_jail_servers.php', array('id' => $id));
vpl_include_jsfile('hideshow.js');
$vpl->require_capability(VPL_SETJAILS_CAPABILITY);
$vpl->print_header(get_string('local_jail_servers', VPL));
$vpl->print_heading_with_help('local_jail_servers');
$vpl->print_configure_tabs(basename(__FILE__));
$mform = new mod_vpl_setjails_form('local_jail_servers.php');
//Display page
$course = $vpl->get_course();
if (!$mform->is_cancelled() && ($fromform = $mform->get_data())) {
    if (isset($fromform->jailservers)) {
        \mod_vpl\event\vpl_execution_localjails_updated::log($vpl);
        $instance = $vpl->get_instance();
        $instance->jailservers = s($fromform->jailservers);
        if ($DB->update_record(VPL, $instance)) {
            vpl_notice(get_string('saved', VPL));
        } else {
            vpl_error(get_string('notsaved', VPL));
        }
    } else {