Issue #767894 by kim.pepper, sivaji, paranojik: Fixed Add a confirm form for feed delete.
parent
b5c0d297ab
commit
316b5edf9a
|
@ -46,6 +46,10 @@ function aggregator_view() {
|
|||
'title' => t('Edit'),
|
||||
'href' => "admin/config/services/aggregator/edit/feed/$feed->fid",
|
||||
);
|
||||
$links['delete'] = array(
|
||||
'title' => t('Delete'),
|
||||
'href' => "admin/config/services/aggregator/delete/feed/$feed->fid",
|
||||
);
|
||||
$links['remove'] = array(
|
||||
'title' => t('Remove items'),
|
||||
'href' => "admin/config/services/aggregator/remove/$feed->fid",
|
||||
|
|
|
@ -240,6 +240,10 @@ function aggregator_menu() {
|
|||
'access arguments' => array('administer news feeds'),
|
||||
'file' => 'aggregator.admin.inc',
|
||||
);
|
||||
$items['admin/config/services/aggregator/delete/feed/%aggregator_feed'] = array(
|
||||
'title' => 'Delete feed',
|
||||
'route_name' => 'aggregator_feed_delete',
|
||||
);
|
||||
$items['admin/config/services/aggregator/edit/category/%aggregator_category'] = array(
|
||||
'title' => 'Edit category',
|
||||
'page callback' => 'drupal_get_form',
|
||||
|
|
|
@ -4,9 +4,17 @@ aggregator_admin_settings:
|
|||
_form: '\Drupal\aggregator\Form\SettingsForm'
|
||||
requirements:
|
||||
_permission: 'administer news feeds'
|
||||
|
||||
aggregator_feed_items_delete:
|
||||
pattern: '/admin/config/services/aggregator/remove/{aggregator_feed}'
|
||||
defaults:
|
||||
_form: '\Drupal\aggregator\Form\FeedItemsDelete'
|
||||
requirements:
|
||||
_permission: 'administer news feeds'
|
||||
|
||||
aggregator_feed_delete:
|
||||
pattern: '/admin/config/services/aggregator/delete/feed/{aggregator_feed}'
|
||||
defaults:
|
||||
_form: '\Drupal\aggregator\Form\FeedDelete'
|
||||
requirements:
|
||||
_permission: 'administer news feeds'
|
||||
|
|
|
@ -139,15 +139,7 @@ class FeedFormController extends EntityFormControllerNG {
|
|||
*/
|
||||
public function delete(array $form, array &$form_state) {
|
||||
$feed = $this->getEntity($form_state);
|
||||
$feed->delete();
|
||||
watchdog('aggregator', 'Feed %feed deleted.', array('%feed' => $feed->label()));
|
||||
drupal_set_message(t('The feed %feed has been deleted.', array('%feed' => $feed->label())));
|
||||
if (arg(0) == 'admin') {
|
||||
$form_state['redirect'] = 'admin/config/services/aggregator';
|
||||
}
|
||||
else {
|
||||
$form_state['redirect'] = 'aggregator/sources';
|
||||
}
|
||||
$form_state['redirect'] = 'admin/config/services/aggregator/delete/feed/' . $feed->id();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\aggregator\Form\FeedDelete.
|
||||
*/
|
||||
|
||||
namespace Drupal\aggregator\Form;
|
||||
|
||||
|
||||
use Drupal\Core\Form\ConfirmFormBase;
|
||||
use Drupal\aggregator\Plugin\Core\Entity\Feed;
|
||||
|
||||
/**
|
||||
* Provides a form for deleting a feed.
|
||||
*/
|
||||
class FeedDelete extends ConfirmFormBase {
|
||||
|
||||
/**
|
||||
* The feed the being deleted.
|
||||
*
|
||||
* @var \Drupal\aggregator\Plugin\Core\Entity\Feed
|
||||
*/
|
||||
protected $feed;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFormID() {
|
||||
return 'aggregator_feed_delete_form';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getQuestion() {
|
||||
return t('Are you sure you want to delete the feed %feed?', array('%feed' => $this->feed->label()));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getCancelPath() {
|
||||
return 'admin/config/services/aggregator';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function getConfirmText() {
|
||||
return t('Delete');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function buildForm(array $form, array &$form_state, Feed $aggregator_feed = NULL) {
|
||||
$this->feed = $aggregator_feed;
|
||||
return parent::buildForm($form, $form_state);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function submitForm(array &$form, array &$form_state) {
|
||||
$this->feed->delete();
|
||||
watchdog('aggregator', 'Feed %feed deleted.', array('%feed' => $this->feed->label()));
|
||||
drupal_set_message(t('The feed %feed has been deleted.', array('%feed' => $this->feed->label())));
|
||||
if (arg(0) == 'admin') {
|
||||
$form_state['redirect'] = 'admin/config/services/aggregator';
|
||||
}
|
||||
else {
|
||||
$form_state['redirect'] = 'aggregator/sources';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -68,7 +68,7 @@ abstract class AggregatorTestBase extends WebTestBase {
|
|||
* Feed object representing the feed.
|
||||
*/
|
||||
function deleteFeed(Feed $feed) {
|
||||
$this->drupalPost('admin/config/services/aggregator/edit/feed/' . $feed->id(), array(), t('Delete'));
|
||||
$this->drupalPost('admin/config/services/aggregator/delete/feed/' . $feed->id(), array(), t('Delete'));
|
||||
$this->assertRaw(t('The feed %title has been deleted.', array('%title' => $feed->label())), 'Feed deleted successfully.');
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue