You are here

function ftools_form_features_admin_form_alter in Features Tools 7.2

Same name and namespace in other branches
  1. 7 ftools.module \ftools_form_features_admin_form_alter()

Implements hook_form_alter().

File

./ftools.module, line 56
ftools module

Code

function ftools_form_features_admin_form_alter(&$form, &$form_state) {
  $form['disable_ajax'] = array(
    '#type' => 'checkbox',
    '#title' => t('disable the features status ajax loading'),
    '#default_value' => variable_get('ftools_disable_features_page_js', 0),
  );
  $form['buttons']['submit']['#submit'][] = 'ftools_features_admin_form_submit';
  $form['buttons']['revert'] = array(
    '#type' => 'submit',
    '#value' => t('Revert them All'),
    '#attributes' => array(
      'onclick' => 'if(!confirm("Are you sure you want to revert all features? \\nThis action cannot be undone.")){return false;}',
    ),
    '#submit' => array(
      'ftools_features_revert_all_submit',
    ),
  );
  if (variable_get('ftools_disable_features_page_js', 0) == 0) {
    return;
  }
  drupal_add_css('table.features .admin-check, table.features .admin-default, table.features .admin-overridden, table.features .admin-rebuilding, table.features .admin-needs-review {
									display: inline!important;}', array(
    'type' => 'inline',
  ));
  $groups = array();
  foreach ($form['#features'] as $feature) {
    if (isset($feature->info['package'])) {
      $package_title = !empty($feature->info['package']) ? $feature->info['package'] : t('Other');
      $package = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $package_title));
      if (in_array($package, $groups)) {
        continue;
      }
      $groups[] = $package;
    }
  }
  foreach ($groups as $group) {
    foreach ($form[$group]['state'] as $feature_name => &$feature_status) {
      if ($form[$group]['status'][$feature_name]['#default_value'] == 0) {
        continue;
      }
      $status = features_get_storage($feature_name);
      $cls = "admin";
      switch ($status) {
        case 3:
          $cls .= "-rebuilding";
          $txt = "Rebuilding";
          break;
        case 2:
          $cls .= "-needs-review";
          $txt = "Needs review";
          break;
        case 1:
          $txt = "Overridden";
          $cls .= "-overridden";
          break;
        default:
          $txt = "Default";
          $cls .= "-default";
          break;
      }
      $cls .= " features-storage";
      $feature_status['#markup'] = l($txt, "admin/structure/features/{$feature_name}", array(
        'attributes' => array(
          'class' => $cls,
        ),
      ));
    }
  }
}