|
|
|
@ -83,30 +83,7 @@ struct ClubSearchView: View { |
|
|
|
ForEach(_filteredClubs()) { clubMark in |
|
|
|
ForEach(_filteredClubs()) { clubMark in |
|
|
|
Button { |
|
|
|
Button { |
|
|
|
let clubToEdit = club ?? Club.findOrCreate(name: clubMark.nom, code: clubMark.clubID) |
|
|
|
let clubToEdit = club ?? Club.findOrCreate(name: clubMark.nom, code: clubMark.clubID) |
|
|
|
|
|
|
|
_importClub(clubToEdit: clubToEdit, clubMarker: clubMark) |
|
|
|
if clubToEdit.creator == dataStore.user.id { |
|
|
|
|
|
|
|
if clubToEdit.name.isEmpty { |
|
|
|
|
|
|
|
clubToEdit.name = clubMark.nom |
|
|
|
|
|
|
|
clubToEdit.acronym = clubToEdit.automaticShortName() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
clubToEdit.code = clubMark.clubID |
|
|
|
|
|
|
|
clubToEdit.latitude = clubMark.lat |
|
|
|
|
|
|
|
clubToEdit.longitude = clubMark.lng |
|
|
|
|
|
|
|
clubToEdit.city = clubMark.ville |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if displayContext == .addition { |
|
|
|
|
|
|
|
do { |
|
|
|
|
|
|
|
try dataStore.clubs.addOrUpdate(instance: clubToEdit) |
|
|
|
|
|
|
|
if dataStore.user.clubs.contains(where: { $0 == clubToEdit.id }) == false { |
|
|
|
|
|
|
|
dataStore.user.clubs.append(clubToEdit.id) |
|
|
|
|
|
|
|
self.dataStore.saveUser() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch { |
|
|
|
|
|
|
|
Logger.error(error) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
dismiss() |
|
|
|
|
|
|
|
} label: { |
|
|
|
} label: { |
|
|
|
clubView(clubMark) |
|
|
|
clubView(clubMark) |
|
|
|
.frame(maxWidth: .infinity) |
|
|
|
.frame(maxWidth: .infinity) |
|
|
|
@ -308,6 +285,32 @@ struct ClubSearchView: View { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private func _importClub(clubToEdit: Club, clubMarker: ClubMarker) { |
|
|
|
|
|
|
|
if clubToEdit.creator == dataStore.user.id { |
|
|
|
|
|
|
|
if clubToEdit.name.isEmpty { |
|
|
|
|
|
|
|
clubToEdit.name = clubMark.nom |
|
|
|
|
|
|
|
clubToEdit.acronym = clubToEdit.automaticShortName() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
clubToEdit.code = clubMark.clubID |
|
|
|
|
|
|
|
clubToEdit.latitude = clubMark.lat |
|
|
|
|
|
|
|
clubToEdit.longitude = clubMark.lng |
|
|
|
|
|
|
|
clubToEdit.city = clubMark.ville |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if displayContext == .addition { |
|
|
|
|
|
|
|
do { |
|
|
|
|
|
|
|
try dataStore.clubs.addOrUpdate(instance: clubToEdit) |
|
|
|
|
|
|
|
if dataStore.user.clubs.contains(where: { $0 == clubToEdit.id }) == false { |
|
|
|
|
|
|
|
dataStore.user.clubs.append(clubToEdit.id) |
|
|
|
|
|
|
|
self.dataStore.saveUser() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch { |
|
|
|
|
|
|
|
Logger.error(error) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
dismiss() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private func _filteredClubs() -> [ClubMarker] { |
|
|
|
private func _filteredClubs() -> [ClubMarker] { |
|
|
|
clubMarkers.filter({ _isClubValidForSearchedTerms(club: $0) }) |
|
|
|
clubMarkers.filter({ _isClubValidForSearchedTerms(club: $0) }) |
|
|
|
} |
|
|
|
} |
|
|
|
|