You are here

function openlayers_presets_ui_presets_manage_add_submit in Openlayers 6

Form submit for preset add form

File

modules/openlayers_presets_ui/includes/openlayers_presets_ui.ui.inc, line 633
This file holds the functions for the openlayers presets ui

Code

function openlayers_presets_ui_presets_manage_add_submit($form, &$form_state) {

  // Check for cancel
  if ($form_state['clicked_button']['#id'] == 'edit-openlayers-cancel') {
    $form_state['redirect'] = 'admin/settings/openlayers/presets/list';
  }

  // Only save if save button is pressed
  if ($form_state['clicked_button']['#id'] == 'edit-openlayers-save') {

    // Merge with original map data to account for data
    // that cannot be accounted for UI
    if (!empty($form_state['values']['default_map'])) {

      // Convert form, but keep empty values, so merging is subtractive
      $map = _openlayers_presets_ui_convert_form_to_map($form_state['values'], FALSE);
      $map = _openlayers_presets_ui_merge_maps($map, $form_state['values']['default_map']);
    }
    else {
      $map = _openlayers_presets_ui_convert_form_to_map($form_state['values']);
    }

    // Create preset array
    $preset = array(
      'preset_name' => $form_state['values']['preset_name'],
      'preset_title' => $form_state['values']['preset_title'],
      'preset_description' => $form_state['values']['preset_description'],
      'preset_data' => $map,
    );

    // Save preset
    $success = openlayers_save_preset($preset);

    // Redirect to edit page
    if ($success) {
      drupal_set_message(t('Map saved.'));
      $form_state['redirect'] = 'admin/settings/openlayers/presets/' . $preset['preset_name'] . '/edit';
    }
    else {
      form_set_error('openlayers', t('Error trying to save map'));
    }
  }
}