Commit 38163636 authored by Joseph Olstad's avatar Joseph Olstad
Browse files

merge Issue #3278809 by joseph.olstad: safedelete link improvement for media ,...

merge Issue #3278809 by joseph.olstad: safedelete link improvement for media , usability improvements
parents 728afef0 dbf5b185
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -172,6 +172,14 @@ function safedelete_node_presave(Drupal\Core\Entity\EntityInterface $entity) {
 */
function safedelete_file_predelete(EntityInterface $entity) {

  $has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button');
  if (!$has_show_delete_permission) {
    $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button');
  }
  if ($has_show_delete_permission) {
    return;
  }

  $file_usage = \Drupal::service('file.usage');
  $usage = $file_usage->listUsage($entity);

@@ -284,9 +292,15 @@ function safedelete_form_alter(&$form, FormStateInterface $form_state, $form_id)
      else {
        $form['description']['#markup'] = $markup;
        // $form['actions']['submit']['#access'] = $show_button ? TRUE : FALSE;
	$has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button');
        if (!$has_show_delete_permission) {
          $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button');
	}
	if (!$has_show_delete_permission) {
          $form['actions']['submit']['#attributes'] = ['disabled' => $show_button ? 'enabled' : 'disabled'];
	}
      }
    }
    else if (strpos($form_id, 'media') !== FALSE) {
      AdminHelper::checkMediaReferencesMessage($mid, $bundle, $show_button, $markup, 'delete', $limit = 20);
      if ($show_button) {
+5 −1
Original line number Diff line number Diff line
@@ -10,3 +10,7 @@ safedelete view orphans report:
  title: 'View the orphaned node report'
  description: Users with this permission are allowed to view the orphaned node report.
  restrict access: TRUE
safedelete show delete button:
  title: 'Show delete button'
  description: Users with this permission are allowed to see the delete files button even if safedelete sees dependencies.
  restrict access: TRUE
+8 −6
Original line number Diff line number Diff line
@@ -63,14 +63,15 @@ class SafedeleteSettingsForm extends ConfigFormBase {
    $form['safearchive'] = [
      '#title' => t('Safe archive'),
      '#type' => 'checkbox',
      '#description' => t('This option will enable safe archive validation'),
      '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : FALSE
      '#description' => t('This option will enable safe archive validation (future option, not yet implemented)'),
      '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : TRUE,
      '#disabled' => TRUE,
    ];

    $form['delete_button'] = [
      '#title' => t('Show delete button'),
      '#type' => 'checkbox',
      '#description' => t('This option will show delete button in node delete form page, even when the node is associated with entities'),
      '#description' => t('This option will show delete button in the file delete form page, even when the file is associated with entities'),
      '#default_value' => (!empty($config->get('delete_button'))) ? $config->get('delete_button') : FALSE
    ];

@@ -132,11 +133,12 @@ class SafedeleteSettingsForm extends ConfigFormBase {
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $this->config('safedelete.settings')
      ->set('bundle', $form_state->getValue('bundle'))
      ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition'))
      ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink'))
      ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes'))
      ->set('delete_button', $form_state->getValue('delete_button'))
      ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes'))
      ->set('limit', $form_state->getValue('limit'))
      ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition'))
      ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink'))
      ->set('safearchive', $form_state->getValue('safearchive'))
      ->save();

    parent::submitForm($form, $form_state);