/** * {@inheritdoc} */ public function log($level, $message, array $context = array()) { $classes = [RfcLogLevel::DEBUG => 'dblog-debug', RfcLogLevel::INFO => 'dblog-info', RfcLogLevel::NOTICE => 'dblog-notice', RfcLogLevel::WARNING => 'dblog-warning', RfcLogLevel::ERROR => 'dblog-error', RfcLogLevel::CRITICAL => 'dblog-critical', RfcLogLevel::ALERT => 'dblog-alert', RfcLogLevel::EMERGENCY => 'dblog-emerg']; // Processing and rendering follow the logic in DbLog::log and // DbLogController:overview. $parser = $this->container->get('logger.log_message_parser'); $date_formatter = $this->container->get('date.formatter'); $entity_manager = $this->container->get('entity.manager'); $user_storage = $entity_manager->getStorage('user'); $variables = $parser->parseMessagePlaceholders($message, $context); $message = $this->t((string) $message, $variables); $message = strip_tags($message); $username_element = ['#theme' => 'username', '#account' => $user_storage->load($context['uid'])]; $row = ['data' => [['class' => ['icon']], $this->t($context['channel']), $date_formatter->format($context['timestamp'], 'short'), $message, ['data' => $username_element], $context['link']], 'class' => [Html::getClass('dblog-' . $context['channel']), $classes[$level]]]; // Send ajax command to the fronted to insert the new row into the table // on the watchdog page. $insert_command = new BeforeCommand('#admin-dblog tr:eq(1)', $this->renderRow($row)); $commands[] = $insert_command->render(); $nodejs_message = (object) ['channel' => 'watchdog_dblog', 'commands' => $commands, 'callback' => 'nodejsWatchdog']; nodejs_send_content_channel_message($nodejs_message); }
/** * Tests the various Ajax Commands. */ function testAjaxCommands() { $form_path = 'ajax_forms_test_ajax_commands_form'; $web_user = $this->drupalCreateUser(array('access content')); $this->drupalLogin($web_user); $edit = array(); // Tests the 'add_css' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'add_css' command"))); $expected = new AddCssCommand('my/file.css'); $this->assertCommand($commands, $expected->render(), "'add_css' AJAX command issued with correct data."); // Tests the 'after' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'After': Click to put something after the div"))); $expected = new AfterCommand('#after_div', 'This will be placed after'); $this->assertCommand($commands, $expected->render(), "'after' AJAX command issued with correct data."); // Tests the 'alert' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'Alert': Click to alert"))); $expected = new AlertCommand(t('Alert')); $this->assertCommand($commands, $expected->render(), "'alert' AJAX Command issued with correct text."); // Tests the 'append' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'Append': Click to append something"))); $expected = new AppendCommand('#append_div', 'Appended text'); $this->assertCommand($commands, $expected->render(), "'append' AJAX command issued with correct data."); // Tests the 'before' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'before': Click to put something before the div"))); $expected = new BeforeCommand('#before_div', 'Before text'); $this->assertCommand($commands, $expected->render(), "'before' AJAX command issued with correct data."); // Tests the 'changed' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX changed: Click to mark div changed."))); $expected = new ChangedCommand('#changed_div'); $this->assertCommand($commands, $expected->render(), "'changed' AJAX command issued with correct selector."); // Tests the 'changed' command using the second argument. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX changed: Click to mark div changed with asterisk."))); $expected = new ChangedCommand('#changed_div', '#changed_div_mark_this'); $this->assertCommand($commands, $expected->render(), "'changed' AJAX command (with asterisk) issued with correct selector."); // Tests the 'css' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("Set the '#box' div to be blue."))); $expected = new CssCommand('#css_div', array('background-color' => 'blue')); $this->assertCommand($commands, $expected->render(), "'css' AJAX command issued with correct selector."); // Tests the 'data' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX data command: Issue command."))); $expected = new DataCommand('#data_div', 'testkey', 'testvalue'); $this->assertCommand($commands, $expected->render(), "'data' AJAX command issued with correct key and value."); // Tests the 'html' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX html: Replace the HTML in a selector."))); $expected = new HtmlCommand('#html_div', 'replacement text'); $this->assertCommand($commands, $expected->render(), "'html' AJAX command issued with correct data."); // Tests the 'insert' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX insert: Let client insert based on #ajax['method']."))); $expected = new InsertCommand('#insert_div', 'insert replacement text'); $this->assertCommand($commands, $expected->render(), "'insert' AJAX command issued with correct data."); // Tests the 'invoke' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX invoke command: Invoke addClass() method."))); $expected = new InvokeCommand('#invoke_div', 'addClass', array('error')); $this->assertCommand($commands, $expected->render(), "'invoke' AJAX command issued with correct method and argument."); // Tests the 'prepend' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'prepend': Click to prepend something"))); $expected = new PrependCommand('#prepend_div', 'prepended text'); $this->assertCommand($commands, $expected->render(), "'prepend' AJAX command issued with correct data."); // Tests the 'remove' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'remove': Click to remove text"))); $expected = new RemoveCommand('#remove_text'); $this->assertCommand($commands, $expected->render(), "'remove' AJAX command issued with correct command and selector."); // Tests the 'restripe' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'restripe' command"))); $expected = new RestripeCommand('#restripe_table'); $this->assertCommand($commands, $expected->render(), "'restripe' AJAX command issued with correct selector."); // Tests the 'settings' command. $commands = $this->drupalPostAjaxForm($form_path, $edit, array('op' => t("AJAX 'settings' command"))); $expected = new SettingsCommand(array('ajax_forms_test' => array('foo' => 42))); $this->assertCommand($commands, $expected->render(), "'settings' AJAX command issued with correct data."); }
/** * @covers \Drupal\Core\Ajax\BeforeCommand */ public function testBeforeCommand() { $command = new BeforeCommand('#page-title', '<p>New Text!</p>', array('my-setting' => 'setting')); $expected = array('command' => 'insert', 'method' => 'before', 'selector' => '#page-title', 'data' => '<p>New Text!</p>', 'settings' => array('my-setting' => 'setting')); $this->assertEquals($expected, $command->render()); }