From 05d5dc152d809bcddda5da1b474813c22d4e0a18 Mon Sep 17 00:00:00 2001 From: daviddalbusco Date: Sun, 23 Sep 2018 13:24:47 +0200 Subject: [PATCH] feat(#2): reschedule viewings requests without any dates --- .../item-appointments-date-picker.ts | 15 +++++++---- .../pick-item-appointments.ts | 6 ++--- .../applicant-appointments.ts | 4 +-- .../reschedule-appointments.ts | 4 +-- .../item-appointments/item-appointments.html | 4 +-- .../applicant/abstract-applicant-selection.ts | 26 +++++++++---------- .../applicant-selection.page.html | 8 ++++-- .../applicant-selection.page.scss | 2 +- .../applicant-selection.page.ts | 26 ++++++++++--------- .../items/item-details/item-details.page.html | 1 + src/assets/i18n/de.json | 14 +++++----- src/assets/i18n/en.json | 12 ++++----- src/assets/i18n/fr.json | 18 ++++++------- src/assets/i18n/it.json | 16 ++++++------ 14 files changed, 84 insertions(+), 72 deletions(-) diff --git a/src/app/components/browse/item-appointments-date-picker/item-appointments-date-picker.ts b/src/app/components/browse/item-appointments-date-picker/item-appointments-date-picker.ts index 6a13db6..0242e31 100644 --- a/src/app/components/browse/item-appointments-date-picker/item-appointments-date-picker.ts +++ b/src/app/components/browse/item-appointments-date-picker/item-appointments-date-picker.ts @@ -31,7 +31,6 @@ export class ItemAppointmentsDatePickerComponent extends AbstractPickAppointment @Input() unavailableAppointmentDates: number[]; @Input() rejectedAppointmentDates: number[]; // In case of to_reschedule appointments - // Output selectedAppointmentsStartTime: number[] = new Array(); manyPossibleTimeSlots: boolean = true; @@ -122,11 +121,13 @@ export class ItemAppointmentsDatePickerComponent extends AbstractPickAppointment }); } - selectAppointments() { - if (this.hasSelectedAppointments()) { - this.notifiySelected.emit(this.selectedAppointmentsStartTime); + async selectAppointments() { + // User could send viewings requests without any dates selected + // as long as advertiser did not specified particular dates + if (!this.hasSelectedAppointments() && this.hasFavoritesDates()) { + await this.displayAlertAtLeastOneAppointment(); } else { - this.displayAlertAtLeastOneAppointment(); + this.notifiySelected.emit(this.selectedAppointmentsStartTime); } } @@ -246,6 +247,10 @@ export class ItemAppointmentsDatePickerComponent extends AbstractPickAppointment return Comparator.hasElements(this.selectedAppointmentsStartTime); } + private hasFavoritesDates(): boolean { + return Comparator.hasElements(this.favoriteDates); + } + swipeDatePicker($event: any) { this.swipeCard($event, this.scrollX.nativeElement); } diff --git a/src/app/components/browse/pick-item-appointments/pick-item-appointments.ts b/src/app/components/browse/pick-item-appointments/pick-item-appointments.ts index 5129e72..f146504 100644 --- a/src/app/components/browse/pick-item-appointments/pick-item-appointments.ts +++ b/src/app/components/browse/pick-item-appointments/pick-item-appointments.ts @@ -67,11 +67,11 @@ export class PickItemAppointmentsComponent extends AbstractItemsPage { schedule(selectedAppointmentStartTimes: number[]) { this.selectedAppointmentStartTimes = selectedAppointmentStartTimes; - this.subscriptionService.couldAddLike().then((result: boolean) => { + this.subscriptionService.couldAddLike().then(async (result: boolean) => { if (result) { - this.initAndDoSchedule(); + await this.initAndDoSchedule(); } else { - this.showProductModal(this.doProductCallback); + await this.showProductModal(this.doProductCallback); } }); } diff --git a/src/app/modals/advertise/applicant-appointments/applicant-appointments.ts b/src/app/modals/advertise/applicant-appointments/applicant-appointments.ts index dcbc7cd..c722f42 100644 --- a/src/app/modals/advertise/applicant-appointments/applicant-appointments.ts +++ b/src/app/modals/advertise/applicant-appointments/applicant-appointments.ts @@ -118,7 +118,7 @@ export class ApplicantAppointmentsModal extends AbstractApplicantSelectionPage { }); } - select(startTime: Date) { + async select(startTime: Date) { this.gaTrackEvent(this.platform, this.googleAnalyticsNativeService, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.CATEGORY.ADS.ADS, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.ACTION.ADS.APPLICANT.APPLICANT_SELECT); @@ -132,6 +132,6 @@ export class ApplicantAppointmentsModal extends AbstractApplicantSelectionPage { } } - this.updateAndExportToCalendar(this.RESOURCES.APPLICANT.STATUS.ACCEPTED, null); + await this.updateAndExportToCalendar(this.RESOURCES.APPLICANT.STATUS.ACCEPTED, null); } } diff --git a/src/app/modals/advertise/reschedule-appointments/reschedule-appointments.ts b/src/app/modals/advertise/reschedule-appointments/reschedule-appointments.ts index e938048..46f8fd2 100644 --- a/src/app/modals/advertise/reschedule-appointments/reschedule-appointments.ts +++ b/src/app/modals/advertise/reschedule-appointments/reschedule-appointments.ts @@ -79,7 +79,7 @@ export class RescheduleAppointmentsModal extends AbstractApplicantSelectionPage this.updatedSchedule = selectedDate; } - doReschedule() { + async doReschedule() { if (this.updatedSchedule == null) { this.displayAlertAtLeastOneAppointment(); return; @@ -89,7 +89,7 @@ export class RescheduleAppointmentsModal extends AbstractApplicantSelectionPage const previousSelectedDate: Date = this.applicant.selected; this.applicant.selected = this.updatedSchedule; - this.updateAndExportToCalendar(this.RESOURCES.APPLICANT.STATUS.ACCEPTED, previousSelectedDate); + await this.updateAndExportToCalendar(this.RESOURCES.APPLICANT.STATUS.ACCEPTED, previousSelectedDate); } isApplicantReschedule(): boolean { diff --git a/src/app/modals/browse/item-appointments/item-appointments.html b/src/app/modals/browse/item-appointments/item-appointments.html index 8e29969..03bc2b3 100644 --- a/src/app/modals/browse/item-appointments/item-appointments.html +++ b/src/app/modals/browse/item-appointments/item-appointments.html @@ -13,11 +13,11 @@ -

+

{{ 'ITEM_APPOINTMENTS.VIEWING_WHEN_TEXT_FLAT' | translate:{who: item.user.facebook.firstName == null ? '' : item.user.facebook.firstName} }}

-

+

{{ 'ITEM_APPOINTMENTS.VIEWING_WHEN_TEXT_SHARE' | translate:{who: item.user.facebook.firstName == null ? '' : item.user.facebook.firstName} }}

diff --git a/src/app/pages/advertise/applicant/abstract-applicant-selection.ts b/src/app/pages/advertise/applicant/abstract-applicant-selection.ts index 090599f..b9c0362 100644 --- a/src/app/pages/advertise/applicant/abstract-applicant-selection.ts +++ b/src/app/pages/advertise/applicant/abstract-applicant-selection.ts @@ -50,8 +50,8 @@ export abstract class AbstractApplicantSelectionPage extends AbstractPage { protected reschedule() { this.gaTrackEvent(this.platform, this.googleAnalyticsNativeService, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.CATEGORY.ADS.ADS, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.ACTION.ADS.APPLICANT.APPLICANT_RESCHEDULE); - this.setAllStatusCancelled().then(() => { - this.updateApplication(this.RESOURCES.APPLICANT.STATUS.TO_RESCHEDULE, null); + this.setAllStatusCancelled().then(async () => { + await this.updateApplication(this.RESOURCES.APPLICANT.STATUS.TO_RESCHEDULE, null); }); } @@ -81,8 +81,8 @@ export abstract class AbstractApplicantSelectionPage extends AbstractPage { this.exportToCalendar(self.user, self.item, updatedApplicant, newStatus, previousStatus, previousDate, loading); }); }, (errorResponse: HttpErrorResponse) => { - loading.dismiss().then(() => { - this.errorMsg(this.toastController, this.translateService, 'ERRORS.APPLICANT_SELECTION.NOT_UPDATED'); + loading.dismiss().then(async () => { + await this.errorMsg(this.toastController, this.translateService, 'ERRORS.APPLICANT_SELECTION.NOT_UPDATED'); }); }); }); @@ -155,11 +155,11 @@ export abstract class AbstractApplicantSelectionPage extends AbstractPage { }); } - protected updateAndExportToCalendar(newStatus: string, previousDate: Date) { + protected async updateAndExportToCalendar(newStatus: string, previousDate: Date) { if (this.user.userParams.appSettings.calendarExport === null && this.ENV_CORDOVA) { this.askUserAndExportIfNeeded(newStatus, previousDate); } else { - this.updateApplication(newStatus, previousDate); + await this.updateApplication(newStatus, previousDate); } } @@ -179,14 +179,14 @@ export abstract class AbstractApplicantSelectionPage extends AbstractPage { buttons: [ { text: data[3], - handler: () => { - this.updateUserAndUpdateApplication(false, newStatus, previousDate); + handler: async () => { + await this.updateUserAndUpdateApplication(false, newStatus, previousDate); } }, { text: data[2], - handler: () => { - this.updateUserAndUpdateApplication(true, newStatus, previousDate); + handler: async () => { + await this.updateUserAndUpdateApplication(true, newStatus, previousDate); } } ] @@ -194,15 +194,15 @@ export abstract class AbstractApplicantSelectionPage extends AbstractPage { confirm.present(); } else { - this.updateUserAndUpdateApplication(false, newStatus, previousDate); + await this.updateUserAndUpdateApplication(false, newStatus, previousDate); } } ); } - private updateUserAndUpdateApplication(choice: boolean, newStatus: string, previousDate: Date) { + private async updateUserAndUpdateApplication(choice: boolean, newStatus: string, previousDate: Date) { this.saveUserChoice(choice); - this.updateApplication(newStatus, previousDate); + await this.updateApplication(newStatus, previousDate); } private saveUserChoice(choice: boolean) { diff --git a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.html b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.html index 6f1dad1..0378859 100644 --- a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.html +++ b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.html @@ -41,8 +41,7 @@

-

{{'APPLICANT_SELECTION.NO_APPOINTMENTS_FOUND' | translate}}

-

{{ 'APPLICANT_SELECTION.NEW_REQUEST_TITLE' | translate:{who: applicant.user.facebook.firstName} }}

+

{{ 'APPLICANT_SELECTION.NEW_REQUEST_TITLE' | translate:{who: applicant.user.facebook.firstName} }}

@@ -55,6 +54,11 @@

{{ 'APPLICANT_SELECTION [bigButton]="false" [mediumButton]="true" [mediumButtonAds]="true" *ngIf="hasSelectedDates()" [icon]="'checkmark'" [label]="'APPLICANT_SELECTION.ACCEPT_REQUEST'"> + + +

diff --git a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.scss b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.scss index 5a1b0e9..15823d7 100644 --- a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.scss +++ b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.scss @@ -42,7 +42,7 @@ ion-card, ion-card.card-md { width: 100%; justify-content: center; align-items: center; - margin-bottom: 60px; + margin-bottom: 100px; app-big-button:first-of-type { margin-right: 24px; diff --git a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.ts b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.ts index fb7282b..df0489a 100644 --- a/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.ts +++ b/src/app/pages/advertise/applicant/applicant-selection/applicant-selection.page.ts @@ -122,10 +122,6 @@ export class ApplicantSelectionPage extends AbstractApplicantSelectionPage { } } - convertDate(selected: string): Date { - return new Date(selected); - } - // Agenda // Filter proposed dates with the one already scheduled, in case it changed @@ -220,22 +216,22 @@ export class ApplicantSelectionPage extends AbstractApplicantSelectionPage { myButtons.push({ text: data[2], - handler: () => { - this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.FOUND_SOMEONE_ELSE); + handler: async () => { + await this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.FOUND_SOMEONE_ELSE); } }); myButtons.push({ text: data[3], - handler: () => { - this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.NOT_ENOUGH_DETAILS); + handler: async () => { + await this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.NOT_ENOUGH_DETAILS); } }); myButtons.push({ text: data[4], - handler: () => { - this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.NO_REASON); + handler: async () => { + await this.declineWithReason(this.RESOURCES.APPLICANT.CANCELLATION.REASON.NO_REASON); } }); @@ -257,12 +253,12 @@ export class ApplicantSelectionPage extends AbstractApplicantSelectionPage { ); } - private declineWithReason(reason: string) { + private async declineWithReason(reason: string) { this.gaTrackEvent(this.platform, this.googleAnalyticsNativeService, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.CATEGORY.ADS.ADS, this.RESOURCES.GOOGLE.ANALYTICS.TRACKER.EVENT.ACTION.ADS.APPLICANT.APPLICANT_DECLINE); this.applicant.cancellation = new ApplicantCancellation(reason); - this.updateApplication(this.RESOURCES.APPLICANT.STATUS.CANCELLED, null); + await this.updateApplication(this.RESOURCES.APPLICANT.STATUS.CANCELLED, null); } isStatusNew(): boolean { @@ -316,6 +312,12 @@ export class ApplicantSelectionPage extends AbstractApplicantSelectionPage { modal.present(); } + doReschedule() { + if (this.isStatusNew() && !this.hasSelectedDates()) { + this.reschedule(); + } + } + protected finishUpdateApplication(updatedApplicant: Applicant) { this.callCallback(updatedApplicant); } diff --git a/src/app/pages/browse/items/item-details/item-details.page.html b/src/app/pages/browse/items/item-details/item-details.page.html index b1bb22a..decffcc 100644 --- a/src/app/pages/browse/items/item-details/item-details.page.html +++ b/src/app/pages/browse/items/item-details/item-details.page.html @@ -38,6 +38,7 @@ {{'ITEM_APPOINTMENTS.VIEWING_REQUEST_TITLE' | translate}} + diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 7d9b215..c2ce098 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -203,13 +203,13 @@ "PROPOSAL": "{{who}} bietet dir {{howmany}} mögliche Termine an; wähle eins aus, um die Anfrage anzunehmen", "PROPOSAL_SINGLE": "{{who}} bietet dir folgenden Termin an", "CONFIRM": "Annehmen", - "NO_APPOINTMENTS_FOUND": "Leider passen keine der vorgeschlagenen Termine mit deinem Kalender", "RESCHEDULE_IN_PROGRESS": "Du hast {{who}} für einen Besichtigungstermin angefragt", "CANCELLED": "Du hast die Besichtigungsanfrage von {{who}} abgelehnt", "APPOINTMENT_IN_THE_PAST": "Du hast die Wohnung bereits besichtigt", "APPOINTMENT_IN_THE_FUTURE": "Die Besichtigung mit {{who}} ist an folgendem Tag", "NEW_REQUEST_TITLE": "{{who}} möchte deine Wohnung besichtigen – möchtest du die Anfrage annehmen?", "ACCEPT_REQUEST": "Annehmen und Termin wählen", + "ACCEPT_REQUEST_CHAT": "Annehmen und chatten, um einen Termin zu vereinbaren", "REJECT_REQUEST": "Ablehnen", "NO_SELECTED_TIME": "Wähle einen Besichtigungstermin, um die Anfrage anzunehmen", "APPOINTMENT_SCHEDULED_FOR": { @@ -219,7 +219,7 @@ "ACTION_SHEET": { "ACCEPT": "Diese Besichtigungsanfrage annehmen", "DECLINE": "Diese Besichtigungsanfrage ablehnen", - "ASK_RESCHEDULE": "Neue Besichtigungstermine anfragen", + "ASK_RESCHEDULE": "Annehmen und chatten, um einen Termin zu vereinbaren", "FOUND_SOMEONE_ELSE": "Sorry, ich habe bereits jemand gefunden", "NOT_ENOUGH_DETAILS": "Das Profil enthält nicht genügend Informationen", "NO_REASON": "Ich möchte lieber noch andere Interessenten kennenlernen", @@ -643,7 +643,7 @@ "VIEWING_WHEN_TEXT_SHARE": "Wann kannst du die WG von {{who}} besichtigen?", "VIEWING_WHEN_TEXT_FLAT": "Wann kannst du die Wohnung von {{who}} besichtigen?", "SELECTED_COUNT": { - "NO_SELECTED_BROWSE": "Wähle eine oder mehrere Zeitfenster aus und erhöhe deine Chancen auf einen Termin", + "NO_SELECTED_BROWSE": "Wähle eine oder mehrere Zeitfenster aus, um den Termin zu vereinbaren", "SELECTED_COUNT_AVAILABILITY": { "SINGULAR": "Du hast {{count}} möglichen Termin ausgewählt", "PLURAL": "Du hast {{count}} mögliche Termine ausgewählt" @@ -651,7 +651,7 @@ "NO_SPECIAL_AVAILABILITY": "Du bist flexibel, was Besichtigungstermine angeht" }, "CONFIRM": "Bestätigen", - "SEND": "Senden", + "SEND": "Jetzt senden", "MISSING_PHONE": { "TITLE": "Deine Telefonnummer", "SUB_TITLE": "Unter dieser Nummer, die Personen mit denen du eine vereinbarte Besichtigung hast, können dich erreichen", @@ -660,9 +660,9 @@ }, "TIPS": { "SELECT_MANY_TIMESLOTS": { - "BEGIN": "Wähle", - "HIGHLIGHT": "mehrere Zeitfenster", - "END": "aus und erhöhe deine Chancen auf einen Termin!" + "BEGIN": "Füge hinzu", + "HIGHLIGHT": "deine Verfügbarkeit", + "END": "und erhöhe deine Chancen auf einen Termin!" }, "SELECT_MANY_DAYS": { "BEGIN": "Vielleicht sogar noch", diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index e92c5f5..c8b2ece 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -203,13 +203,13 @@ "PROPOSAL": "{{who}} offers you {{howmany}} possible time slots, select one of them to accept the request", "PROPOSAL_SINGLE": "{{who}} offers you this time slot", "CONFIRM": "Accept", - "NO_APPOINTMENTS_FOUND": "Unfortunately, none of the proposed time slots fit your calendar.", "RESCHEDULE_IN_PROGRESS": "You requested a viewing from {{who}}", "CANCELLED": "You declined {{who}}'s request", "APPOINTMENT_IN_THE_PAST": "The viewing with {{who}} already took place", "APPOINTMENT_IN_THE_FUTURE": "The viewing with {{who}} is the following date", "NEW_REQUEST_TITLE": "{{who}} has applied for a viewing, would you like to accept the request?", "ACCEPT_REQUEST": "Accept and select the viewing", + "ACCEPT_REQUEST_CHAT": "Accept and chat to schedule a viewing", "REJECT_REQUEST": "Reject", "NO_SELECTED_TIME": "Select a time slot to accept the request", "APPOINTMENT_SCHEDULED_FOR": { @@ -219,7 +219,7 @@ "ACTION_SHEET": { "ACCEPT": "Accept this request", "DECLINE": "Decline this request", - "ASK_RESCHEDULE": "Request new viewings' time slots", + "ASK_RESCHEDULE": "Accept and chat to schedule a viewing", "FOUND_SOMEONE_ELSE": "Sorry, I found someone else", "NOT_ENOUGH_DETAILS": "The profile does not contain enough information", "NO_REASON": "I rather like to meet other candidates", @@ -643,7 +643,7 @@ "VIEWING_WHEN_TEXT_SHARE": "When can you visit {{who}}'s flat?", "VIEWING_WHEN_TEXT_FLAT": "When can you visit {{who}}'s flat?", "SELECTED_COUNT": { - "NO_SELECTED_BROWSE": "Pick one or many time slots to increase your chances to get a viewing", + "NO_SELECTED_BROWSE": "Pick one or many time slots to get a viewing", "SELECTED_COUNT_AVAILABILITY": { "SINGULAR": "{{count}} potential time slot", "PLURAL": "{{count}} potential time slots" @@ -651,7 +651,7 @@ "NO_SPECIAL_AVAILABILITY": "You are flexible and have no special dates" }, "CONFIRM": "Confirm", - "SEND": "Send", + "SEND": "Send now", "MISSING_PHONE": { "TITLE": "Your phone number", "SUB_TITLE": "The persons with whom you have an appointment can reach you at this number", @@ -660,8 +660,8 @@ }, "TIPS": { "SELECT_MANY_TIMESLOTS": { - "BEGIN": "Select", - "HIGHLIGHT": "multiple time slots", + "BEGIN": "Add", + "HIGHLIGHT": "your availabilities", "END": "to increase your chances of getting a viewing!" }, "SELECT_MANY_DAYS": { diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 52408ea..24fbe5b 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -203,13 +203,13 @@ "PROPOSAL": "{{who}} te propose {{howmany}} rendez-vous potentiels, sélectionnes-en un pour accepter la demande", "PROPOSAL_SINGLE": "{{who}} te propose ce rendez-vous", "CONFIRM": "Accepter", - "NO_APPOINTMENTS_FOUND": "Malheureusement, aucun des rendez-vous proposés n'est compatible avec ton calendrier", "RESCHEDULE_IN_PROGRESS": "Tu as proposé un nouveau rendez-vous à {{who}}", "CANCELLED": "Tu as refusé la demande de visite de {{who}}", "APPOINTMENT_IN_THE_PAST": "Tu as déjà réalisé une visite avec {{who}}", "APPOINTMENT_IN_THE_FUTURE": "La visite de {{who}} est prévue à la date suivante", "NEW_REQUEST_TITLE": "{{who}} a répondu à ton annonce, souhaites-tu accepter sa demande de rendez-vous?", "ACCEPT_REQUEST": "Accepter et sélectionner le rendez-vous", + "ACCEPT_REQUEST_CHAT": "Accepter et chatter pour fixer un rendez-vous", "REJECT_REQUEST": "Rejeter", "NO_SELECTED_TIME": "Sélectionnes-en un pour accepter la demande", "APPOINTMENT_SCHEDULED_FOR": { @@ -217,9 +217,9 @@ "END": "" }, "ACTION_SHEET": { - "ACCEPT": "Accepter cette demande de visite", - "DECLINE": "Refuser cette demande de visite", - "ASK_RESCHEDULE": "Demander un nouveau rendez-vous", + "ACCEPT": "Accepter cette demande", + "DECLINE": "Refuser cette demande", + "ASK_RESCHEDULE": "Accepter et chatter pour fixer un rendez-vous", "FOUND_SOMEONE_ELSE": "Excuse-moi, j'ai déjà trouvé quelqu'un", "NOT_ENOUGH_DETAILS": "Le profil ne contient pas suffisamment d'informations", "NO_REASON": "Je préférais encore rencontrer d'autres candidats", @@ -643,7 +643,7 @@ "VIEWING_WHEN_TEXT_SHARE": "Quand peux-tu visiter la colocation de {{who}}?", "VIEWING_WHEN_TEXT_FLAT": "Quand peux-tu visiter l'appartement de {{who}}?", "SELECTED_COUNT": { - "NO_SELECTED_BROWSE": "Sélectionne une ou plusieurs propositions de créneau horaire afin d'augmenter tes chances d'obtenir un rendez-vous", + "NO_SELECTED_BROWSE": "Sélectionne une ou plusieurs propositions de créneau horaire pour obtenir un rendez-vous", "SELECTED_COUNT_AVAILABILITY": { "SINGULAR": "Tu as sélectionné {{count}} créneau horaire", "PLURAL": "Tu as sélectionné {{count}} créneaux horaires" @@ -651,7 +651,7 @@ "NO_SPECIAL_AVAILABILITY": "Aucune date spécifique, tu es flexible" }, "CONFIRM": "Confirmer", - "SEND": "Envoyer", + "SEND": "Envoyer maintenant", "MISSING_PHONE": { "TITLE": "Ton numéro de téléphone", "SUB_TITLE": "Les personnes avec lesquelles tu as un rendez-vous peuvent te joindre à ce numéro", @@ -660,8 +660,8 @@ }, "TIPS": { "SELECT_MANY_TIMESLOTS": { - "BEGIN": "Sélectionne", - "HIGHLIGHT": "plusieurs créneaux horaires", + "BEGIN": "Ajoute", + "HIGHLIGHT": "tes disponibilités", "END": "et augmente tes chances d'obtenir un rendez-vous" }, "SELECT_MANY_DAYS": { @@ -673,7 +673,7 @@ "BEGIN": "Cool, tu as sélectionné", "HIGHLIGHT": "{{count}} proposition", "HIGHLIGHTS": "{{count}} propositions", - "END": "de rendez-vous." + "END": "de rendez-vous" }, "SELECT_ZERO_COUNT": { "BEGIN": "Sélectionne", diff --git a/src/assets/i18n/it.json b/src/assets/i18n/it.json index 76c1482..a1f071f 100644 --- a/src/assets/i18n/it.json +++ b/src/assets/i18n/it.json @@ -203,13 +203,13 @@ "PROPOSAL": "{{who}} ti offre {{howmany}} possibili appuntamenti, selezionane uno per accettare la richiesta", "PROPOSAL_SINGLE": "{{who}} ti offre questo appuntamento", "CONFIRM": "Accetta", - "NO_APPOINTMENTS_FOUND": "Purtroppo nessuno degli appuntamenti proposti è compatibile con il tuo calendario", "RESCHEDULE_IN_PROGRESS": "Hai richiesto un appuntamento a {{who}} ", "CANCELLED": "Hai rifiutato la richiesta di visita di {{who}}", "APPOINTMENT_IN_THE_PAST": "Hai già effettuato la visita con {{who}}", "APPOINTMENT_IN_THE_FUTURE": "La visita con {{who}} si terrà il giorno seguente", "NEW_REQUEST_TITLE": "{{who}} è interessato a una visita, vuoi accettare la richiesta?", "ACCEPT_REQUEST": "Accetta e scegli l'appuntamento", + "ACCEPT_REQUEST_CHAT": "Accetta e chatta per fissare un appuntamento", "REJECT_REQUEST": "Rifiuta", "NO_SELECTED_TIME": "Scegli un appuntamento per accettare la richiesta", "APPOINTMENT_SCHEDULED_FOR": { @@ -217,9 +217,9 @@ "END": "" }, "ACTION_SHEET": { - "ACCEPT": "Accetta questa richiesta di visita", - "DECLINE": "Rifiuta questa richiesta di visita", - "ASK_RESCHEDULE": "Rihiedi nuovi appuntamenti", + "ACCEPT": "Accetta questa richiesta", + "DECLINE": "Rifiuta questa richiesta", + "ASK_RESCHEDULE": "Accetta e chatta per fissare un appuntamento", "FOUND_SOMEONE_ELSE": "Mi dispiace, ho già trovato qualcuno", "NOT_ENOUGH_DETAILS": "Questo profilo non contiene abbastanza informazioni", "NO_REASON": "Preferirei conoscere altri candidati", @@ -643,7 +643,7 @@ "VIEWING_WHEN_TEXT_SHARE": "Quando puoi visitare la stanza di {{who}}?", "VIEWING_WHEN_TEXT_FLAT": "Quando puoi visitare l'appartamento di {{who}}?", "SELECTED_COUNT": { - "NO_SELECTED_BROWSE": "Scegliendo una o più finestre temporali, aumenterai le tue possibilità di ottenere un appuntamento", + "NO_SELECTED_BROWSE": "Scegliendo una o più finestre temporali per ottenere un appuntamento", "SELECTED_COUNT_AVAILABILITY": { "SINGULAR": "Hai scelto {{count}} potenziale appuntamento", "PLURAL": "Hai scelto {{count}} potenziali appuntamenti" @@ -651,7 +651,7 @@ "NO_SPECIAL_AVAILABILITY": "Nessun appuntamento specifico, sei del tutto flessibile" }, "CONFIRM": "Conferma", - "SEND": "Invia", + "SEND": "Invia ora", "MISSING_PHONE": { "TITLE": "Il tuo numero di telefono", "SUB_TITLE": "Le persone con cui hai un appuntamento ti potranno contattare a questo numero", @@ -660,8 +660,8 @@ }, "TIPS": { "SELECT_MANY_TIMESLOTS": { - "BEGIN": "Scegliendo", - "HIGHLIGHT": "più finestre temporali", + "BEGIN": "Imposta", + "HIGHLIGHT": "la tua disponibilità", "END": ", aumenti le tue possibilità di ottenere un appuntamento" }, "SELECT_MANY_DAYS": {