club_update
Razmig Sarkissian 1 year ago
parent 3b80431498
commit 4d19fc4cb6
  1. 1
      PadelClub/Views/Cashier/CashierView.swift
  2. 8
      PadelClub/Views/Components/CopyPasteButtonView.swift
  3. 1
      PadelClub/Views/GroupStage/Components/GroupStageTeamView.swift
  4. 2
      PadelClub/Views/Navigation/Ongoing/OngoingView.swift
  5. 9
      PadelClub/Views/Player/Components/EditablePlayerView.swift
  6. 41
      PadelClub/Views/Player/PlayerDetailView.swift
  7. 44
      PadelClub/Views/Team/EditingTeamView.swift
  8. 1
      PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift
  9. 1
      PadelClub/Views/Tournament/Screen/TournamentCashierView.swift

@ -187,6 +187,7 @@ class CashierViewModel: ObservableObject {
struct CashierView: View { struct CashierView: View {
@EnvironmentObject var dataStore: DataStore @EnvironmentObject var dataStore: DataStore
@EnvironmentObject var tournament: TournamentStore
@EnvironmentObject var cashierViewModel: CashierViewModel @EnvironmentObject var cashierViewModel: CashierViewModel
var tournaments : [Tournament] var tournaments : [Tournament]

@ -15,13 +15,9 @@ struct CopyPasteButtonView: View {
Button { Button {
let pasteboard = UIPasteboard.general let pasteboard = UIPasteboard.general
pasteboard.string = pasteValue pasteboard.string = pasteValue
copied = true
} label: { } label: {
HStack(spacing: 0) { Label(copied ? "copié" : "copier", systemImage: "doc.on.doc").symbolVariant(copied ? .fill : .none)
Label(copied ? "copié" : "copier", systemImage: "doc.on.doc")
if copied == true {
Image(systemName: "checkmark")
}
}
} }
} }
} }

@ -42,6 +42,7 @@ struct GroupStageTeamView: View {
Section { Section {
ForEach(team.players()) { player in ForEach(team.players()) { player in
EditablePlayerView(player: player, editingOptions: [.licenceId, .name, .payment]) EditablePlayerView(player: player, editingOptions: [.licenceId, .name, .payment])
.environmentObject(tournament.tournamentStore)
} }
} }

@ -77,7 +77,7 @@ struct OngoingView: View {
} }
.pickerStyle(.segmented) .pickerStyle(.segmented)
.fixedSize() .fixedSize()
.offset(y: -4) .offset(y: -3)
} }
} }
} }

@ -39,6 +39,9 @@ struct EditablePlayerView: View {
Logger.error(error) Logger.error(error)
} }
} }
Button("Annuler", role: .cancel) {
shouldPresentLicenceIdEdition = false
}
} }
.alert("Prénom", isPresented: $presentFirstNameUpdate) { .alert("Prénom", isPresented: $presentFirstNameUpdate) {
TextField("Prénom", text: $player.firstName) TextField("Prénom", text: $player.firstName)
@ -49,6 +52,9 @@ struct EditablePlayerView: View {
Logger.error(error) Logger.error(error)
} }
} }
Button("Annuler", role: .cancel) {
presentFirstNameUpdate = false
}
} }
.alert("Nom", isPresented: $presentLastNameUpdate) { .alert("Nom", isPresented: $presentLastNameUpdate) {
TextField("Nom", text: $player.lastName) TextField("Nom", text: $player.lastName)
@ -59,6 +65,9 @@ struct EditablePlayerView: View {
Logger.error(error) Logger.error(error)
} }
} }
Button("Annuler", role: .cancel) {
presentLastNameUpdate = false
}
} }
.onChange(of: editedLicenceId) { .onChange(of: editedLicenceId) {
self.player.licenceId = editedLicenceId self.player.licenceId = editedLicenceId

@ -33,6 +33,8 @@ struct PlayerDetailView: View {
var body: some View { var body: some View {
Form { Form {
Section { Section {
Toggle("Joueur sur place", isOn: $player.hasArrived)
LabeledContent { LabeledContent {
TextField("Nom", text: $player.lastName) TextField("Nom", text: $player.lastName)
.keyboardType(.alphabet) .keyboardType(.alphabet)
@ -102,10 +104,6 @@ struct PlayerDetailView: View {
} }
} }
Section {
Toggle("Joueur sur place", isOn: $player.hasArrived)
}
Section { Section {
LabeledContent { LabeledContent {
TextField("Licence", text: $licenceId) TextField("Licence", text: $licenceId)
@ -119,9 +117,12 @@ struct PlayerDetailView: View {
} }
} label: { } label: {
Text("Licence") Text("Licence")
CopyPasteButtonView(pasteValue: player.licenceId?.strippedLicense)
} }
} footer: {
CopyPasteButtonView(pasteValue: player.licenceId?.strippedLicense)
}
Section {
LabeledContent { LabeledContent {
TextField("Téléphone", text: $phoneNumber) TextField("Téléphone", text: $phoneNumber)
.keyboardType(.namePhonePad) .keyboardType(.namePhonePad)
@ -134,9 +135,12 @@ struct PlayerDetailView: View {
} }
} label: { } label: {
Text("Téléphone") Text("Téléphone")
CopyPasteButtonView(pasteValue: player.phoneNumber)
} }
} footer: {
CopyPasteButtonView(pasteValue: player.phoneNumber)
}
Section {
LabeledContent { LabeledContent {
TextField("Email", text: $email) TextField("Email", text: $email)
.keyboardType(.emailAddress) .keyboardType(.emailAddress)
@ -149,8 +153,9 @@ struct PlayerDetailView: View {
} }
} label: { } label: {
Text("Email") Text("Email")
CopyPasteButtonView(pasteValue: player.email)
} }
} footer: {
CopyPasteButtonView(pasteValue: player.email)
} }
} }
@ -177,17 +182,19 @@ struct PlayerDetailView: View {
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar) .toolbarBackground(.visible, for: .navigationBar)
.toolbar { .toolbar {
ToolbarItem(placement: .keyboard) { if focusedField == ._rank || focusedField == ._computedRank {
Button("Valider") { ToolbarItem(placement: .keyboard) {
if focusedField == ._rank { Button("Valider") {
player.setComputedRank(in: tournament) if focusedField == ._rank {
player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) player.setComputedRank(in: tournament)
_save() player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory)
} else if focusedField == ._computedRank { _save()
player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) } else if focusedField == ._computedRank {
_save() player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory)
_save()
}
focusedField = nil
} }
focusedField = nil
} }
} }
} }

@ -60,14 +60,15 @@ struct EditingTeamView: View {
.environment(tournament) .environment(tournament)
} label: { } label: {
Text("Chercher à remplacer") Text("Chercher à remplacer")
.underline()
} }
} }
} }
Section { Section {
DatePicker(selection: $registrationDate) { DatePicker(selection: $registrationDate) {
Text("Date d'inscription") Text("Inscription")
Text(registrationDate.localizedWeekDay()) Text(registrationDate.localizedWeekDay().capitalized)
} }
if let callDate = team.callDate { if let callDate = team.callDate {
LabeledContent() { LabeledContent() {
@ -78,9 +79,7 @@ struct EditingTeamView: View {
} else { } else {
Text("Cette équipe n'a pas été convoquée") Text("Cette équipe n'a pas été convoquée")
} }
}
Section {
Toggle(isOn: hasArrived) { Toggle(isOn: hasArrived) {
Text("Équipe sur place") Text("Équipe sur place")
} }
@ -132,25 +131,28 @@ struct EditingTeamView: View {
})) { })) {
Text("Forfait") Text("Forfait")
} }
}
Section {
TextField("Nom de l'équipe", text: $name)
.autocorrectionDisabled()
.keyboardType(.alphabet)
.frame(maxWidth: .infinity)
.submitLabel(.done)
.onSubmit(of: .text) {
let trimmed = name.trimmed
if trimmed.isEmpty {
team.name = nil
} else {
team.name = trimmed
}
_save() LabeledContent {
} TextField("Nom", text: $name)
.autocorrectionDisabled()
.keyboardType(.alphabet)
.keyboardType(.alphabet)
.multilineTextAlignment(.trailing)
.frame(maxWidth: .infinity)
.submitLabel(.done)
.onSubmit(of: .text) {
let trimmed = name.trimmed
if trimmed.isEmpty {
team.name = nil
} else {
team.name = trimmed
}
_save()
}
} label: {
Text("Nom de l'équipe")
}
} }
Section { Section {

@ -164,6 +164,7 @@ struct InscriptionInfoView: View {
DisclosureGroup { DisclosureGroup {
ForEach(playersWithoutValidLicense) { ForEach(playersWithoutValidLicense) {
EditablePlayerView(player: $0, editingOptions: [.licenceId]) EditablePlayerView(player: $0, editingOptions: [.licenceId])
.environmentObject(tournament.tournamentStore)
} }
} label: { } label: {
LabeledContent { LabeledContent {

@ -152,6 +152,7 @@ struct TournamentCashierView: View {
} }
} }
.environment(tournament) .environment(tournament)
.environmentObject(tournament.tournamentStore)
.environmentObject(cashierViewModel) .environmentObject(cashierViewModel)
.navigationBarTitleDisplayMode(.inline) .navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar) .toolbarBackground(.visible, for: .navigationBar)

Loading…
Cancel
Save