/** * Run the module */ function run() { $sites = $this->_get_sites(); if (empty($sites)) { echo '<p>You must have editing access to at least one live Reason site for this module to work</p>' . "\n"; return; } $users = $this->_get_users(); if (empty($users)) { echo '<p>No users available.</p>' . "\n"; return; } echo '<div id="reviewChangesModule">' . "\n"; $d = new disco(); $d->add_element('start_date', 'textdate', array('prepopulate' => true, 'year_max' => carl_date('Y'), 'year_min' => '1000')); $d->add_required('start_date'); $d->add_element('end_date', 'textdate', array('year_max' => carl_date('Y'), 'year_min' => '1000')); $d->add_comments('end_date', form_comment('If no end date given, changes will be shown for just the start date')); $d->add_element('type', 'select', array('options' => $this->_prep_for_disco($this->_get_types()))); if (!empty($this->admin_page->request['type_id'])) { $d->set_value('type', $this->admin_page->request['type_id']); } $d->add_element('site', 'select', array('options' => $this->_prep_for_disco($sites))); if (!empty($this->admin_page->request['site_id'])) { $d->set_value('site', $this->admin_page->request['site_id']); } $d->add_element('user', 'select', array('options' => $this->_prep_for_disco($users))); if (!empty($this->admin_page->request['user'])) { $d->set_value('user', $this->admin_page->request['user']); } $d->add_element('sort', 'select', array('options' => array('DESC' => 'Descending', 'ASC' => 'Ascending'))); $d->set_actions(array('review' => 'Review')); $d->run(); if ($d->successfully_submitted()) { $end_date = $d->get_value('end_date') ? $d->get_value('end_date') : $d->get_value('start_date'); if ($end_date < $d->get_value('start_date')) { echo 'Please pick a end date on or after the start date.'; } else { echo $this->_get_changes_markup($d->get_value('start_date'), $end_date, $d->get_value('type'), $d->get_value('site'), $d->get_value('user'), $d->get_value('sort')); } } echo '</div>' . "\n"; }