|
|
|
|
@ -23,6 +23,7 @@ struct TableStructureView: View { |
|
|
|
|
@State private var structurePreset: PadelTournamentStructurePreset = .manual |
|
|
|
|
@State private var buildWildcards: Bool = true |
|
|
|
|
@FocusState private var stepperFieldIsFocused: Bool |
|
|
|
|
@State private var confirmReset: Bool = false |
|
|
|
|
|
|
|
|
|
func displayWarning() -> Bool { |
|
|
|
|
let unsortedTeamsCount = tournament.unsortedTeamsCount() |
|
|
|
|
@ -297,27 +298,7 @@ struct TableStructureView: View { |
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
RowButtonView("Remise-à-zéro", role: .destructive) { |
|
|
|
|
tournament.removeWildCards() |
|
|
|
|
tournament.deleteGroupStages() |
|
|
|
|
tournament.deleteStructure() |
|
|
|
|
|
|
|
|
|
if structurePreset != .manual { |
|
|
|
|
structurePreset = PadelTournamentStructurePreset.manual |
|
|
|
|
} else { |
|
|
|
|
_updatePreset() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
tournament.teamCount = teamCount |
|
|
|
|
tournament.groupStageCount = groupStageCount |
|
|
|
|
tournament.teamsPerGroupStage = teamsPerGroupStage |
|
|
|
|
tournament.qualifiedPerGroupStage = qualifiedPerGroupStage |
|
|
|
|
tournament.groupStageAdditionalQualified = groupStageAdditionalQualified |
|
|
|
|
|
|
|
|
|
do { |
|
|
|
|
try dataStore.tournaments.addOrUpdate(instance: tournament) |
|
|
|
|
} catch { |
|
|
|
|
Logger.error(error) |
|
|
|
|
} |
|
|
|
|
_reset() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
@ -376,6 +357,24 @@ struct TableStructureView: View { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.toolbar { |
|
|
|
|
if tournament.state() != .initial { |
|
|
|
|
ToolbarItem(placement: .topBarTrailing) { |
|
|
|
|
Button("Remise-à-zéro", systemImage: "trash", role: .destructive) { |
|
|
|
|
confirmReset.toggle() |
|
|
|
|
} |
|
|
|
|
.confirmationDialog("Remise-à-zéro", isPresented: $confirmReset, titleVisibility: .visible, actions: { |
|
|
|
|
Button("Tout effacer") { |
|
|
|
|
_reset() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Button("Annuler") { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
}, message: { |
|
|
|
|
Text("Vous êtes sur le point d'effacer le tableau et les poules déjà créés et perdre les matchs et scores correspondant.") |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ToolbarItem(placement: .confirmationAction) { |
|
|
|
|
if tournament.state() == .initial { |
|
|
|
|
ButtonValidateView { |
|
|
|
|
@ -420,6 +419,25 @@ struct TableStructureView: View { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private func _reset() { |
|
|
|
|
tournament.removeWildCards() |
|
|
|
|
tournament.deleteGroupStages() |
|
|
|
|
tournament.deleteStructure() |
|
|
|
|
|
|
|
|
|
if structurePreset != .manual { |
|
|
|
|
structurePreset = PadelTournamentStructurePreset.manual |
|
|
|
|
} else { |
|
|
|
|
_updatePreset() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
tournament.teamCount = teamCount |
|
|
|
|
tournament.groupStageCount = groupStageCount |
|
|
|
|
tournament.teamsPerGroupStage = teamsPerGroupStage |
|
|
|
|
tournament.qualifiedPerGroupStage = qualifiedPerGroupStage |
|
|
|
|
tournament.groupStageAdditionalQualified = groupStageAdditionalQualified |
|
|
|
|
|
|
|
|
|
dataStore.tournaments.addOrUpdate(instance: tournament) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private func _saveWithoutRebuild() { |
|
|
|
|
tournament.teamCount = teamCount |
|
|
|
|
|