package steps;

use strict;
use vars qw(%installSteps @orderedInstallSteps);
use common;

#-######################################################################################
#- Steps table
#-######################################################################################
{
    my @installStepsFields = qw(text redoable onError hidden needs icon); 
    #entered reachable toBeDone next done;
    my @installSteps = (
  selectLanguage     => [ N_("Choose your language"), 1, 1, '', '', 'language' ],
  acceptLicense      => [ N_("License"), 1, -1, '', '', '' ],
  selectMouse        => [ N_("Configure mouse"), 1, 1, '1', '', 'mouse' ],
  setupSCSI          => [ N_("Hard drive detection"), 1, 0, '1', '', 'harddrive' ],
  selectInstallClass => [ N_("Select installation class"), 1, 1, '1', '', '' ],
  selectKeyboard     => [ N_("Choose your keyboard"), 1, 1, '1', "selectInstallClass", 'keyboard' ],
  miscellaneous      => [ N_("Security"), 1, 1, '', '', 'security' ],
  doPartitionDisks   => [ N_("Partitioning"), 1, 0, '', "selectInstallClass", 'partition' ],
  formatPartitions   => [ N_("Format partitions"), 1, -1, '1', "doPartitionDisks", 'partition' ],
  choosePackages     => [ N_("Choose packages to install"), 1, -2, '!$::expert', "formatPartitions", 'partition' ],
  installPackages    => [ N_("Install system"), 1, -1, '', ["formatPartitions", "selectInstallClass"], '' ],
  setRootPassword    => [ N_("Set root password"), 1, 1, '', "installPackages", 'rootpasswd' ],
  addUser            => [ N_("Add a user"), 1, 1, '', "installPackages", 'user' ],
  configureNetwork   => [ N_("Configure networking"), 1, 1, '1', "formatPartitions", 'network' ],
  setupBootloader    => [ N_("Install bootloader"), 1, 0, '', "installPackages", 'bootloader' ],
  configureX         => [ N_("Configure X"), 1, 1, '1', ["formatPartitions", "setupBootloader"], 'X' ],
  summary            => [ N_("Summary"), 1, 0, '', "installPackages", 'summary' ],
  configureServices  => [ N_("Configure services"), 1, 1, '!$::expert', "installPackages", 'services' ],
  installUpdates     => [ N_("Install system updates"), 1, 1, '',  ["installPackages", "configureNetwork", "summary"], '' ],
  exitInstall        => [ N_("Exit install"), 0, 0, '', '', 'exit' ],
);
    for (my $i = 0; $i < @installSteps; $i += 2) {
	my %h; @h{@installStepsFields} = @{ $installSteps[$i + 1] };
	$h{next}    = $installSteps[$i + 2];
	$h{entered} = 0;
	$h{onError} = $installSteps[$i + 2 * $h{onError}];
	$h{reachable} = !$h{needs};
	$installSteps{$installSteps[$i]} = \%h;
	push @orderedInstallSteps, $installSteps[$i];
    }
    $installSteps{first} = $installSteps[0];
}


1;