backdrop-contrib / examples

Examples for Developers
GNU General Public License v2.0
7 stars 9 forks source link

Use the tempstore for the example_progressbar_ values #103

Closed avpaderno closed 4 months ago

avpaderno commented 5 months ago

As described in #79, the ajax_example_progressbar.inc file contains the following code.

function ajax_example_progressbar_progress($time) {
  $progress = array(
    'message' => t('Starting execute...'),
    'percentage' => -1,
  );

  $completed_percentage = config_get('ajax_example.settings', 'example_progressbar_' . $time);

  if ($completed_percentage) {
    $progress['message'] = t('Executing...');
    $progress['percentage'] = $completed_percentage;
  }

  backdrop_json_output($progress);
}

function ajax_example_progressbar_callback($form, &$form_state) {
  $variable_name = 'example_progressbar_' . $form_state['time'];
  $commands = array();

  config_set('ajax_example.settings', $variable_name, 10);
  sleep(2);
  config_set('ajax_example.settings', $variable_name, 40);
  sleep(2);
  config_set('ajax_example.settings', $variable_name, 70);
  sleep(2);
  config_set('ajax_example.settings', $variable_name, 90);
  sleep(2);
  config_set('ajax_example.settings', $variable_name, NULL);

  $commands[] = ajax_command_html('#progress-status', t('Executed.'));

  return array(
    '#type' => 'ajax',
    '#commands' => $commands,
  );
}

The content of $variable_name is not a configuration value, which would be necessary to import from a stage site to a production site; it is a temporary value that should be stored in the tempstore.