Ejemplo n.º 1
0
 private function __buildDrawerHTML($filter)
 {
     $form = new XMLElement('form', NULL, array('action' => '', 'method' => 'get'));
     $range = ElasticSearchLogs::getDateRange();
     $label = new XMLElement('div', NULL, array('data-dateMin' => date('Y-m-d', strtotime($range->min)), 'data-dateMax' => date('Y-m-d', strtotime($range->max)), 'class' => 'label date-range'));
     $label->appendChild(new XMLElement('span', _('Date range')));
     $label->appendChild(new XMLElement('input', NULL, array('type' => 'text', 'placeholder' => __('From'), 'name' => 'filter[date_from]', 'value' => $filter->date_from, 'autocomplete' => 'off')));
     $label->appendChild(new XMLElement('span', __('to'), array('class' => 'conjunctive')));
     $label->appendChild(new XMLElement('input', NULL, array('type' => 'text', 'placeholder' => __('To'), 'name' => 'filter[date_to]', 'value' => $filter->date_to, 'autocomplete' => 'off')));
     $form->appendChild($label);
     // generate a random noun
     $password = General::generatePassword();
     $password = preg_replace('/[0-9]/', '', $password);
     // remove numbers
     preg_match('/([A-Z][a-z]+){1,}/', $password, $nouns);
     // split into separate words based on capitals
     $noun = strtolower(end($nouns));
     $label = new XMLElement('label', '<span>' . __('Query') . '</span>', array('class' => 'keywords'));
     $label->appendChild(new XMLElement('input', NULL, array('type' => 'text', 'placeholder' => __('e.g. %s', array($noun)), 'name' => 'filter[keywords]', 'value' => $filter->keywords)));
     $form->appendChild($label);
     $label = new XMLElement('div', __('Query returned an average of'), array('class' => 'label performance'));
     $span = new XMLElement('span');
     $span->appendChild(Widget::Select('filter[average_results][compare]', array(array('=', preg_match('/^\\=/', $filter->average_results), 'exactly'), array('<', preg_match('/^\\</', $filter->average_results), 'less than'), array('>', preg_match('/^\\>/', $filter->average_results), 'more than'))));
     $span->appendChild(new XMLElement('input', NULL, array('type' => 'text', 'name' => 'filter[average_results][value]', 'value' => trim($filter->average_results, '=<>'), 'autocomplete' => 'off', 'placeholder' => __('all'))));
     $span->appendChild(new XMLElement('span', ' ' . __('result(s)')));
     $label->appendChild($span);
     $form->appendChild($label);
     $label = new XMLElement('div', __('Users visited depth of'), array('class' => 'label performance'));
     $span = new XMLElement('span');
     $span->appendChild(Widget::Select('filter[average_depth][compare]', array(array('=', preg_match('/^\\=/', $filter->average_depth), 'exactly'), array('<', preg_match('/^\\</', $filter->average_depth), 'less than'), array('>', preg_match('/^\\>/', $filter->average_depth), 'more than'))));
     $span->appendChild(new XMLElement('input', NULL, array('type' => 'text', 'name' => 'filter[average_depth][value]', 'value' => trim($filter->average_depth, '=<>'), 'autocomplete' => 'off', 'placeholder' => __('all'))));
     $span->appendChild(new XMLElement('span', ' ' . __('page(s)')));
     $label->appendChild($span);
     $form->appendChild($label);
     $form->appendChild(new XMLElement('input', NULL, array('type' => 'submit', 'value' => __('Apply Filters'), 'class' => 'button create')));
     $form->appendChild(new XMLElement('input', NULL, array('type' => 'button', 'value' => __('Clear'), 'class' => 'button clear')));
     return $form;
 }