Beispiel #1
0
 /**
  * Validate that scheduled jobs are retrieved via API call
  */
 public function test_getscheduledjobs()
 {
     global $CFG, $DB;
     // Create a user.
     require_once $CFG->dirroot . '/user/lib.php';
     $user = new stdClass();
     $user->username = '******';
     $user->firstname = 'rlipfirstname';
     $user->lastname = 'rliplastname';
     $user->mnethostid = $CFG->mnet_localhost_id;
     $user->email = '*****@*****.**';
     $user->password = '******';
     $user->timezone = -5.0;
     $userid = user_create_user($user);
     // Create a scheduled job.
     $data = array('plugin' => 'dhexport_version1', 'period' => '5m', 'label' => 'bogus', 'type' => 'dhexport', 'userid' => $userid);
     $starttime = time();
     $ipid = rlip_schedule_add_job($data);
     $endtime = time();
     // Fetch jobs.
     $recordset = rlip_get_scheduled_jobs($data['plugin']);
     // Data validation.
     $this->assertTrue($recordset->valid());
     $current = $recordset->current();
     // Ip schedule fields.
     $this->assertEquals($current->plugin, $data['plugin']);
     // User fields.
     $this->assertEquals($current->username, $user->username);
     $this->assertEquals($current->firstname, $user->firstname);
     $this->assertEquals($current->lastname, $user->lastname);
     $this->assertEquals($current->timezone, $user->timezone);
     $this->assertEquals($current->lastruntime, 0);
     // Elis scheduled task field.
     $this->assertGreaterThanOrEqual($starttime + 5 * MINSECS, (int) $current->nextruntime);
     $this->assertGreaterThanOrEqual((int) $current->nextruntime, $endtime + 5 * MINSECS);
 }
Beispiel #2
0
 function display_default()
 {
     global $OUTPUT, $USER;
     $this->get_base_page_params();
     $display_name = $this->get_ip_plugin();
     // TBD: more user-friendly
     $ipscheds = rlip_get_scheduled_jobs($this->get_ip_plugin(), is_siteadmin() ? 0 : $USER->id);
     if (!empty($ipscheds) && $ipscheds->valid()) {
         echo $OUTPUT->notification(get_string("rlip_jobs_heading_jobs", 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left');
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_fullinstructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
         $table = new html_table();
         $table->head = array(get_string('rlip_jobs_header_label', 'local_datahub'), get_string('rlip_jobs_header_owner', 'local_datahub'), get_string('rlip_jobs_header_lastran', 'local_datahub'), get_string('rlip_jobs_header_nextrun', 'local_datahub'), get_string('rlip_jobs_header_modified', 'local_datahub'), '');
         $table->align = array('left', 'center', 'left', 'left', 'left', 'center');
         $table->size = array('5%', '15%', '25%', '25%', '25%', '5%');
         $table->data = array();
         $table->rowclasses = array();
         //TBD
         $edit = get_string('edit');
         $delete = get_string('delete');
         foreach ($ipscheds as $ipjob) {
             $ustr = "{$ipjob->username}<br/>(" . datahub_fullname($ipjob) . ')';
             $tz = $ipjob->timezone;
             $data = unserialize($ipjob->config);
             $lastruntime = !empty($ipjob->lastruntime) ? userdate($ipjob->lastruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('no_lastruntime', 'local_datahub');
             $nextruntime = !empty($ipjob->nextruntime) ? userdate($ipjob->nextruntime, '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub');
             $modified = !empty($data['timemodified']) ? userdate($data['timemodified'], '', $tz) . ' (' . usertimezone($tz) . ')' : get_string('na', 'local_datahub');
             $target = $this->get_new_page(array('id' => $ipjob->id, 'plugin' => $ipjob->plugin));
             $label = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '">' . $data['label'] . '</a>';
             $edit_link = '<a name="edit" href="' . $target->url->out(true, array('action' => 'form')) . '"><img alt="' . $edit . '" title="' . $edit . '" src="' . $OUTPUT->pix_url('t/edit') . '" /></a>';
             $delete_link = '<a name="delete" href="' . $target->url->out(true, array('action' => 'delete')) . '"><img alt="' . $delete . '" title="' . $delete . '" src="' . $OUTPUT->pix_url('t/delete') . '" /></a>';
             $table->rowclasses[] = '';
             //TBD
             $table->data[] = array($label, $ustr, $lastruntime, $nextruntime, $modified, "{$edit_link}&nbsp;{$delete_link}");
         }
         echo html_writer::table($table);
         echo $OUTPUT->notification(get_string('schedulingtime', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
     } else {
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_nojobs', 'local_datahub', get_string('pluginname', $display_name)), 'rlip_bold_header', 'left');
         echo $OUTPUT->notification(get_string('rlip_jobs_heading_instructions', 'local_datahub', $display_name), 'rlip_italic_header', 'left');
     }
     echo $OUTPUT->spacer();
     $submit = $this->get_new_page(array('action' => 'form', 'plugin' => $this->get_ip_plugin()));
     $this->add_submit_cancel_buttons($submit->url, get_string('rlip_new_job', 'local_datahub'));
 }