You are here

function crm_core_data_import_dashboard_form in CRM Core 7

Page callback for data import dashboard.

1 string reference to 'crm_core_data_import_dashboard_form'
crm_core_data_import_menu in modules/crm_core_data_import/crm_core_data_import.module
Implements hook_menu().

File

modules/crm_core_data_import/crm_core_data_import.admin.inc, line 10
Configuration pages for CRM Core Data Import.

Code

function crm_core_data_import_dashboard_form($form, &$form_state) {
  $items = array();
  $available = _crm_core_data_import_get_tasks();
  crm_core_ui_ctools_add_dropbutton_files();
  foreach ($available as $key => $importer) {
    $importer = crm_core_data_import_load_importer($key);

    // Operations.
    $links = array();
    $links[] = l(t('Edit source'), 'admin/structure/crm-core/data-import/' . $key . '/source-selection');
    $links[] = l(t('Edit source settings'), 'admin/structure/crm-core/data-import/' . $key . '/source-settings');
    if (!empty($importer->source_plugin->sourceMapping)) {
      $links[] = l(t('Edit source mapping'), 'admin/structure/crm-core/data-import/' . $key . '/source-mapping');
    }
    $links[] = l(t('Edit field mapping'), 'admin/structure/crm-core/data-import/' . $key . '/field-mapping');
    $links[] = l(t('Edit settings'), 'admin/structure/crm-core/data-import/' . $key . '/settings');
    $links[] = l(t('Delete'), 'admin/structure/crm-core/data-import/' . $key . '/delete');
    $stats = _crm_core_data_import_migration_statistic_get($importer);
    $items[$key] = array(
      'title' => $importer->title,
      'description' => $importer->description,
      'lastimport' => empty($importer->lastimport) ? t('Unknown') : format_date($importer->lastimport, 'custom', 'Y-m-d H:i:s'),
      'status' => _crm_core_data_import_migration_status($stats['status']),
      'items' => $stats['total'],
      'imported' => $stats['imported'],
      'unprocessed' => $stats['total'] - $stats['processed'],
      'operations' => theme('crm_core_ui_ctools_dropbutton', array(
        'ops_count' => count($links),
        'links' => $links,
        'index' => $key,
      )),
    );
  }
  $form['operation'] = array(
    '#type' => 'select',
    '#title' => t('With selected:'),
    '#options' => array(
      'import' => t('Start import'),
      'rollback' => t('Rollback'),
      'deregister' => t('Remove migration settings'),
    ),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Go'),
  );
  $form['items'] = array(
    '#type' => 'tableselect',
    '#header' => array(
      'title' => t('Title'),
      'description' => t('Description'),
      'status' => t('Status'),
      'items' => t('Items'),
      'imported' => t('Imported'),
      'unprocessed' => t('Unprocessed'),
      'lastimport' => t('Last imported'),
      'operations' => t('Operations'),
    ),
    '#options' => $items,
    '#empty' => t('No items available'),
  );
  $form['#attached']['css'][] = _crm_core_data_import_css_path();
  return $form;
}