From c1fe12cdb7681622aa4e2a36d1d172cf4de82cc7 Mon Sep 17 00:00:00 2001
From: HOHL ' + labelEventDate +' Créé par ' + creator + ' le ' + event.creation_date + '
+modifyAppointmentFormMessages.labelUrlRedirectAfterCreation=URL to redirect to after creating an appointment
+modifyAppointmentFormMessages.pageTitle=Modify form messages
+modifyCalendarMultiSlots.messageSurbooking=Warning, non-canceled appointments are attached to the slots you have modified. There will be overbooking on the slots {0}
+modifyCalendarSlots.errorDayHasAppointment=It is impossible to modify the end time of a slot associated with a day that has at least one appointment. Please delete this or these appointments before continuing.
+modifyCalendarSlots.errorTimeEndBeforeTimeStart=The end time of a slot must be after its start time
+modifyCalendarSlots.errorWeekIsOpenFo=The week is open on the FO calendar! Please disable the form to edit this week.
+modifyCalendarSlots.messageOverload=(*) Slots marked with an asterisk are specific to this week
+modifyCalendarSlots.messageSlotUpdated=The slot has been successfully modified
+modifyCalendarSlots.messageSurbooking=Warning, non-canceled appointments are attached to the slot you have modified. There will be overbooking on this slot
+modifyCalendarSlots.messageValidatedAppointmentsImpacted=Warning, non-canceled appointments are attached to the slot you have modified. Remember to cancel them
+modifyCalendarSlots.pageTitle=Modify a slot
+modifyCalendarSlots.warningModifiyingEndingTime=Warning, modifying the end time of a slot will automatically reset all following slots for that day
+modifyEntry.buttonApply=Apply
+modifyEntry.titleComment=Modifying a comment for the form
+modifyEntry.titleGroup=Modifying a group for the form
+modifyEntry.titleQuestion=Modifying a question for the form
+modifyField.address=Address
+modifyField.manageConditionalQuestion.rowConditionalQuestion=Associated conditional questions
+modifyField.manageConditionalQuestion.title=List of conditional questions
+modifyField.manageConditionalQuestion.titleGoOut=Exit
+modifyField.title=Modify a response to the question
+modifySlot.helpModifyEndSlot=If you change the end time of the slot to a time that is not a multiple of the usual slot time, select below the option chosen for the following slots
+modifySlot.labelCapacityChange=Capacity change
+modifySlot.labelClose=Close
+modifySlot.labelDate=Slot date
+modifySlot.labelMaxCapacityForThisSlot=Maximum capacity for this slot
+modifySlot.labelNewCapacity=New capacity
+modifySlot.labelNoValue=Do not modify
+modifySlot.labelOpen=Open
+modifySlot.labelOpenHelp=Choose whether you want to open, close, or do nothing for the selected slot(s).
+modifySlot.labelSlotStatus=Status of the slot(s)
+modifySlot.notShiftSlot=Do not shift the following slots.
+modifySlot.shiftSlot=Shift the following slots from the specified end time.
+modify_comment.labelEndingValidityDate.help=End date of comment validity
+modify_comment.labelEndingValidityDate=To
+modify_comment.labelEndingValidityTime=at
+modify_comment.labelStartingValidityDate.help=Start date of comment validity
+modify_comment.labelStartingValidityDate=From
+modify_comment.labelStartingValidityTime=at
+modify_comment.pageTitle=Modify a comment
+move.name=Move
+moveAll.name=Move all
+moveDown.title=Move down
+moveUp.title=Move up
+myAppointments.labelAppointmentFormTitle=Type of appointment
+myAppointments.labelDateAppointment=Date
+myAppointments.labelTime=Time
+myAppointments.name=My appointments
+name=Appointment
+nbConsecutiveSlots.help=Enter the maximum number of places (value >= 1)
+nbConsecutiveSlots=Number of places for consecutive slots
+pageTitle=Manage appointments by calendar
+pageTitle=Manage appointments by filter
+pageTitle=Task form
+pageTitle=View appointment
+nbPlacesToTakeForm.labelNbPlaces=Number of people
+nbPlacesToTakeForm.labelPeople=People
+nbPlacesToTakeForm.labelValidate=Validate
+permission.label.addComment=Create Comments
+permission.label.changeAppointmentStatus=Validate or Cancel an appointment
+permission.label.changeState=Activate/Deactivate a form
+permission.label.createAppointment=Create an appointment
+permission.label.createForm=Create an appointment form
+permission.label.deleteAppointment=Delete an appointment
+permission.label.deleteForm=Delete a form
+permission.label.deleteMassAppointment=Delete appointments
+permission.label.exportMassAppointment=Export results
+permission.label.moderateComment=Moderate Comments
+permission.label.modifyAdvancedSettingForm=Edit the advanced settings of a form
+permission.label.modifyForm=Edit a form
+permission.label.viewAppointment=View an appointment
+permission.label.viewForm=View a form
+plugin.description=Manage appointment requests
+portlet.appointmentFormListPortlet.name=List of appointment request forms
+provider=City Hall of Paris
+reference=Reference
+portlet.appointmentFormListPortlet.name=List of Appointment Request Forms
+regularExpression.label=Verification rule
+removeCalendarTemplate.confirmRemoveTemplate=Do you really want to delete this template?
+removeCalendarTemplate.infoTemplateRemoved=The template has been successfully deleted
+site_properties.description=Number of places for multiple time slots
+site_properties.name=Number of places
+site_property.nbplaces.help=Enter the maximum number of places
+site_property.nbplaces=Enter the maximum number of places
+specificDay.pageTitle=Day view
+specificWeek.pageTitle=Specific week
+startingDateOfSearch=From
+taskFormWorkflow.pageTitle=Task form
+task_notify_appointment_comment_config.label_comment=The Comment
+task_notify_appointment_comment_config.label_creation_date=Comment creation date
+task_notify_appointment_comment_config.label_creator_user_name=Name of the user who created the comment
+task_notify_appointment_comment_config.label_date_end_validity=End date of comment validity
+task_notify_appointment_comment_config.label_date_start_validity=Start date of comment validity
+task_notify_appointment_comment_config.label_form_id=Form ID
+task_notify_appointment_comment_config.label_form_titlet=Form Title
+task_notify_appointment_comment_config.label_message=Email Content
+task_notify_appointment_comment_config.label_sender_name=Email Sender Name
+task_notify_appointment_comment_config.label_subject=Email Subject
+task_notify_appointment_comment_config.label_time_end_validityt=End time of comment validity
+task_notify_appointment_comment_config.label_time_start_validity=Start time of comment validity
+task_notify_appointment_comment_config.title=Notification Message Configuration
+title=Appointment date
+title=Create a category
+title=Modify a category
+type.name=Type
+typicalWeek.buttonLabelCreate=Create typical week
+typicalWeek.pageTitle=Typical week
+validation.appointment.Email.email=Please enter a valid email address
+validation.appointment.Email.notEmpty=Please enter an email address
+validation.appointment.Email.size=Email address must be less than 255 characters
+validation.appointment.EmailConfirmation.email=Please enter a confirmation email address
+validation.appointment.FirstName.NoSpecialCharacter=The first name must not contain special characters
+validation.appointment.FirstName.notEmpty=Please enter a first name
+validation.appointment.FirstName.size=First name must contain less than 255 characters
+validation.appointment.Icon.notEmpty=Please add an icon for the form
+validation.appointment.LastName.NoSpecialCharacter=The last name must not contain special characters
+validation.appointment.LastName.notEmpty=Please enter a last name
+validation.appointment.LastName.size=Last name must contain less than 255 characters
+validation.appointment.NbBookedSeat.error=There are not enough available seats for your request. Please choose another time slot.
+validation.appointment.NbBookedSeat.notEmpty=Number of seats must not be empty.
+validation.appointment.NbBookedSeat.notNumberFormat=The number of seats must be an integer.
+validation.appointment.NbMaxAppointmentsOnAPeriod.error=The maximum number of allowed appointments has been reached for this period
+validation.appointment.NbMaxAppointmentsOnCategory.error=The maximum number of allowed appointments has been reached! To make another appointment, please cancel one of your following appointments: {0}
+validation.appointment.NbMinDaysBetweenTwoAppointments.error=You cannot make an appointment on this date. The number of days since your last appointment is not sufficient.
+validation.appointment.formNoMoreValid=The form is no longer valid
+validation.appointment.formNotActive=The form is not active
+validation.appointment.noAvailableSlot=No available time slot
+validation.appointment.noStartingValidityDate=The form has no starting validity date
+validation.appointmentform.Description.notEmpty=The Description field must not be empty.
+validation.appointmentform.NbWeeksToDisplay.notEmpty=The Number of weeks to display field must be at least one.
+validation.appointmentform.Title.notEmpty=The Title field must not be empty.
+validation.appointmentform.Title.size=The Title field must not contain more than 255 characters.
+validation.appointmentform.fromTimeSeizure.notEmpty=The Form seizure duration field must not be empty.
+validation.week.color.notEmpty=Please choose a color
+validation.week.color.size=The color must contain less than 255 characters
+validation.week.description.notEmpty=Please enter a description
+validation.week.description.size=The description must contain less than 255 characters
+validation.week.name.notEmpty=Please enter a name
+validation.week.name.size=The name must contain less than 255 characters
+value.name=Value
+viewAppointment.pageTitle=Visualization of an appointment
+viewAppointmentFormMessages.labelAppointmentTakenBy=Appointment taken by
+viewAppointmentFormMessages.labelAppointmentUser=in front-office
+viewAppointmentFormMessages.labelAppointmentUserBO=in back-office by
+week.toApplay=Applied Week:
+wf.action.success=Success
+xpage.form.noValue=No value
+xpage.formList.labelFormList=List of forms
+xpage.formList.noForm=No form is currently enabled
\ No newline at end of file
diff --git a/citelibre-rendezvous/webapp/WEB-INF/conf/override/classes/fr/paris/lutece/plugins/appointment/resources/appointment_messages_en.properties b/citelibre-rendezvous/webapp/WEB-INF/conf/override/classes/fr/paris/lutece/plugins/appointment/resources/appointment_messages_en.properties
new file mode 100644
index 0000000..1ff369b
--- /dev/null
+++ b/citelibre-rendezvous/webapp/WEB-INF/conf/override/classes/fr/paris/lutece/plugins/appointment/resources/appointment_messages_en.properties
@@ -0,0 +1,651 @@
+BoOverbooking.help=Allow overbooking when making appointments using the BO form
+BoOverbooking=Allow overbooking on BO side
+Cancel=Cancel
+CancelAppointment=Cancel appointment
+Display=Display
+Email=Email
+FirstName=First Name
+From=From
+LastName=Last Name
+Loading=Loading appointments
+ManageAppointmentForm.description=Manage appointments
+ManageAppointmentForm.name=Manage appointments
+OpenFriday=Open on Friday
+OpenMonday=Open on Monday
+OpenSaturday=Open on Saturday
+OpenSunday=Open on Sunday
+OpenThursday=Open on Thursday
+OpenTuesday=Open on Tuesday
+OpenWednesday=Open on Wednesday
+PhoneNumber=Phone Number
+Save=Save
+Status=Status
+The=The
+Title=Title
+To=To
+actions.label=Actions
+adminFeature.ManageAppointmentForm.description=Appointment management
+adminFeature.ManageAppointmentForm.name=Manage appointments
+adminFeature.manageCalendarTemplates.name=Manage calendar templates
+adminFeature.manageCategories.description=Manage Categories
+adminFeature.manageCategories.name=Categories Management
+adminFeature.manageComment.description=Comments and Notification Management
+adminFeature.manageComment.name=Comments and Notification Management
+annual.calendar.pageTitle=Annual View
+annual.label.daySpecifity=Days with specificities
+anonymization.form.help=Form ID
+appointment.message.error.nbplacestotake.toobig=The number of places your entered is too big.
+appointment.name.create=Make new appointment
+appointment.name=Appointment
+appointmentApp.calendar=Calendar
+appointmentApp.choiceOfDate=Choice of date
+appointmentApp.confirmation=Confirmation
+appointmentApp.defaultTitle=Request an appointment
+appointmentApp.enteringInformation=Entering information
+appointmentApp.infos=Enable/Disable all appointments
+appointmentApp.next=Next
+appointmentApp.nextDay=Next day
+appointmentApp.nextWeek=Next week
+appointmentApp.prev=Previous
+appointmentApp.previousDay=Previous day
+appointmentApp.previousWeek=Previous week
+appointmentApp.recap.title=Summary
+appointmentApp.validation.title=Validation of input
+appointmentApp.validation=Validation of input
+appointmentApp.validationText=Please check that the information entered is correct and click on validate
+appointmentCalendar.labelChooseDate=Choose a date
+appointmentCalendar.labelLegendSlotAvaiable=Available
+appointmentCalendar.labelLegendSlotNotAvaiable=Not available
+appointmentForm.name=Appointment request form
+assign.typicalWeek.defaultTitle=Assign Typical Week
+buttonAdd=Add a category
+calendarTemplate.labelDescriptionBlank=The description of the template must not be empty
+calendarTemplate.labelDescriptionSize=The description of the template must not exceed 255 characters
+calendarTemplate.labelTemplatePathBlank=Please choose a file for the template
+calendarTemplate.labelTitleBlank=The title of the template must not be empty
+cancelAppointment.labelRefAppointment=Appointment reference
+cancelAppointment.labelTimeAppointment=Appointment time
+cancelAppointment.pageTitle=I want to cancel this appointment
+clearAddress=Clear address
+columnAdmin=Assigned administrator
+columnEmail=Email
+columnFirstName=First Name
+columnFormCategory=Category
+columnFormTitle=Form
+columnId=Id
+columnLabel=Label
+columnLabelNbMaxAppointments=Maximum number of allowed appointments
+columnLastName=Last Name
+columnName=Login
+columnNbBookedSeats=Seats
+columnNumberOfBookedseatsPerAppointment=Number of booked seats
+columnPhoneNumber=Phone Number
+columnState=State
+comment.name=Comment
+confirmRemoveAppointment=Are you sure you want to delete this appointment?
+confirmRemoveCategory=Are you sure you want to delete this category?
+confirmRemoveMassAppointment=Are you sure you want to delete these appointments?
+confirmRemoveWeekDefinition=Are you sure you want to delete this week definition?
+copyEntry.title=Copy of question {0}
+createAppointmentForm.LabelWeekType=Definition of the first week type
+createAppointmentForm.accesscontrol.label.help=Select the access control associated with the form
+createAppointmentForm.accesscontrol.label=Access control
+createAppointmentForm.label.BoOverbooking.help=Allow overbooking when making appointments on the BO side
+createAppointmentForm.label.BoOverbooking=Allow overbooking on the BO side
+createAppointmentForm.labelActiveAuthentication=Enable authentication
+createAppointmentForm.labelAnonymizable.genattField=Anonymizable
+createAppointmentForm.labelAnonymizable=Anonymize user information (name, first name, and email)
+createAppointmentForm.labelAnonymizePattern.help=%f Form ID, %g Random GUID, %n Random number
+createAppointmentForm.labelAnonymizePattern=Anonymization pattern
+createAppointmentForm.labelAppointmentTitlesAsked=Number of people involved
+createAppointmentForm.labelCalendarTemplate=Calendar template
+createAppointmentForm.labelCapacityPerSlot.help=Maximum theoretical capacity per time slot (value >= 1)
+createAppointmentForm.labelCapacityPerSlot=Maximum Theoretical Capacity per Slot
+createAppointmentForm.labelCategory=Form Category
+createAppointmentForm.labelColor=Week Color
+createAppointmentForm.labelDateEndValidity.help=Format DD/MM/YYYY. The form will be unavailable after this date
+createAppointmentForm.labelDateEndValidity=End date of form validity
+createAppointmentForm.labelDateStartValidity.help=Format DD/MM/YYYY. The form will be unavailable before this date
+createAppointmentForm.labelDateStartValidity=Start date of form validity
+createAppointmentForm.labelDescriptionRule=Week Description
+createAppointmentForm.labelDurationAppointments.help=In minutes. Pay attention to the duration of opening slots. For example, if you have 20-minute slots with a daily schedule from 9am to 7:30pm, the system cannot create the last slot and blocks the opening.
+createAppointmentForm.labelDurationAppointments=Average duration of appointments
+createAppointmentForm.labelEnableCaptcha=Enable Captcha
+createAppointmentForm.labelEnableMandatoryEmail=Enable mandatory email entry
+createAppointmentForm.labelIconForm=Add an icon to the form
+createAppointmentForm.labelMaxCapacityPerSlot.help=Maximum number of people for a slot
+createAppointmentForm.labelMaxCapacityPerSlot=Maximum capacity per slot
+createAppointmentForm.labelMaxPeoplePerAppointment.help=Maximum number of bookable seats for the same person for the same slot
+createAppointmentForm.labelMaxPeoplePerAppointment=Maximum number of bookable seats
+createAppointmentForm.labelMinTimeBeforeAppointment.help=In hours. Minimum time between the current time and the proposed time of the first slot (without taking into account opening hours; 0: no constraint)
+createAppointmentForm.labelMinTimeBeforeAppointment=Minimum time before making an appointment
+createAppointmentForm.labelName=Week Name
+createAppointmentForm.labelNbDaysBeforeNewAppointment.help=In days. Defines the minimum number of days for a user before making another appointment (0: no constraint)
+createAppointmentForm.labelNbDaysBeforeNewAppointment=Minimum duration between two appointments (in number of days)
+createAppointmentForm.labelNbDaysForMaxAppointments.help=Indicate in number of days the period over which the user can make the n appointments previously specified. (0: no constraint)
+createAppointmentForm.labelNbDaysForMaxAppointments=Period
+createAppointmentForm.labelNbMaxAppointments.help=Indicate the maximum number of appointments that a user is allowed to make in a given period (period to be defined below) (0: no constraint)
+createAppointmentForm.labelNbMaxAppointments=Maximum number of allowed appointments in a given period
+createAppointmentForm.labelNumberOfBookedseatsPerAppointment=Number of seats to book
+createAppointmentForm.labelReference.help=Indicates a reference prefix for appointments (Leave blank for no reference)
+createAppointmentForm.labelReference=Appointment Reference
+createAppointmentForm.labelRole=User Role
+createAppointmentForm.labelTimeEnd.help=Daily schedule for the end of appointments (HH:MM). The end time should not be earlier than the start time.
+createAppointmentForm.labelTimeEnd=End Time for Appointments
+createAppointmentForm.labelTimeStart.help=Daily schedule for the start of appointments (HH:MM)
+createAppointmentForm.labelTimeStart=Start Time for Appointments
+createAppointmentForm.labelTitle=Form Title
+createAppointmentForm.labelTitleDaysOpen=Opening Days
+createAppointmentForm.labelWorkflow=Workflow
+createAppointmentForm.labelWorkgroup=Workgroup
+createAppointmentForm.title=Create an appointment form
+createCategory.label=Category label
+createCategory.labelNbMaxAppointments.help=Maximum number of authorized appointments (0: no constraint)
+createCategory.labelNbMaxAppointments=Maximum number of authorized appointments
+createEntry.buttonApplyAndManageResponse=Save and manage responses
+createEntry.buttonApplyAndManageVerification=Save and manage verifications
+createEntry.labelAttributeName=Session attribute
+createEntry.labelAttributeNameComment=Name of the session attribute to retrieve (e.g. FORM_ID_DEMAND, FORM_USER_GUID...)
+createEntry.labelCSSClass=CSS classes
+createEntry.labelCSSClassComment=The CSS classes of the field must be separated by a space
+createEntry.labelConfirmField=Confirmation field for input
+createEntry.labelConfirmFieldTitle=Confirmation field title
+createEntry.labelExportBinary=Export binaries
+createEntry.labelExportBinaryComment=Check this box if you want to have binaries in the exports of the form responses.
+createEntry.labelExportBinaryWarning=Exporting binaries can slow down the export operations of the form responses.
+createEntry.labelFileMaxSize=Maximum file size (in bytes)
+createEntry.labelHeight=Height of the text area
+createEntry.labelHelpMessage=Help
+createEntry.labelHelpMessageComment=If text is entered, a help icon will appear on the screen. By clicking on it, the user can view this text.
+createEntry.labelHelpSqlQuery=Query structure: SELECT column_numeric_id, column_text FROM table
+createEntry.labelMandatory=Mandatory
+createEntry.labelMandatoryCheckBoxHelp=All checkboxes must be checked
+createEntry.labelMandatoryCommentForEntryTypeSession=Check this box if you want to display the form only if there is a value in this session attribute.
+createEntry.labelMandatoryErrorMessage=Error message if no value is entered
+createEntry.labelMandatoryErrorMessageHelp=Leave blank to display the default error message.
+createEntry.labelMaxFiles=Maximum number of files
+createEntry.labelMaxSizeEnter=Maximum length of entered text
+createEntry.labelOnlyDisplayInBack=Display this field only in the back office
+createEntry.labelPrefix=Prefix
+createEntry.labelPrefixComment=Numbering prefix
+createEntry.labelPresentation=Presentation model
+createEntry.labelSqlQuery=SQL query
+createEntry.labelThumbnailHeight=Maximum thumbnail height
+createEntry.labelThumbnailWidth=Maximum thumbnail width
+createEntry.labelTitleComment=Statement of the question asked
+createEntry.labelType=Question type
+createEntry.labelUniqueField=Test the uniqueness of the response
+createEntry.labelUseRichText=Use a rich text editor
+createEntry.labelUseRichTextComment=Check to add a BBCode editor
+createEntry.labelWidth=Text box length
+createEntry.manageField.buttonInsert=Create a response
+createEntry.manageField.buttonItemsPerPage=Modify
+createEntry.manageField.labelFieldNumber=Number of responses
+createEntry.manageField.labelItemsPerPage=Number of lines per page
+createEntry.manageField.rowConditionalQuestion=Conditional questions
+createEntry.manageField.rowDefaultValue=default value
+createEntry.manageField.rowOrder=Order
+createEntry.manageField.rowValue=value
+createEntry.manageField.title=Response list
+createEntry.manageField.titleCopy=Copy
+createEntry.manageField.titleDisable=Disable
+createEntry.manageField.titleEnable=Enable
+createEntry.manageRegularExpression.labelInsertComment=The selected regular expressions will be used to control user input. Example: When asking for the respondent's email address, a check on the presence of @ can be performed by selecting the appropriate regular expression.
+createEntry.manageRegularExpression.rowTitle=Rule name
+createEntry.manageRegularExpression.rowValidExemple=Valid example
+createEntry.manageRegularExpression.title=List of used checks
+createEntry.selectPresentationInLine=In line
+createEntry.selectPresentationNotInLine=In column
+createEntry.titleComment=Creating a comment for the form
+createEntry.titleQuestion=Creating a question for the form
+createField.labelNoDisplayTitle=Do not display the response title
+createField.title=Create a response to the question
+createForm=Create an appointment form
+createModifyCalendarTemplate.infoTemplateCreated=The template has been created successfully
+createModifyCalendarTemplate.infoTemplateUpdated=The template has been successfully updated
+createModifyCalendarTemplate.labelTemplatePath=HTML file of the template
+createModifyCalendarTemplate.pageTitleModify=Modify a template
+create_comment.labelComment.help=Comment
+create_comment.labelComment=Comment
+create_comment.labelEndingValidityDate.help=End date of comment validity
+create_comment.labelEndingValidityDate=To
+create_comment.labelEndingValidityTime=at
+create_comment.labelIdForm.help=Form identifier
+create_comment.labelIdForm=Identifier
+create_comment.labelMailingList.help=Mailing list to notify
+create_comment.labelMailingList=Notification list
+create_comment.labelNoNotification=No notification
+create_comment.labelStartingValidityDate.help=Start date of comment validity
+create_comment.labelStartingValidityDate=From
+create_comment.labelStartingValidityTime=at
+create_comment.pageTitle=Add a comment
+create_comment.title=Create a comment
+create_comment_label=Content
+daemon.slotDaemon.description=Slot deletion daemon in memory whose slot start date is less than the current date
+daemon.slotDaemon.name=Slot deletion daemon in memory whose slot start date is less than the current date
+dashboard.formList=Appointment forms list
+dateAppointment.title=Date of the appointment
+defaultValue.name=Default value
+delete.title=Delete
+description=Appointment request management
+displayAppointmentForm.labelReset=Reset
+displayAppointmentForm.labelValidate=Validate
+displayAppointmentForm.labelValidateAndChangeDate=Validate and change the appointment date
+endingDateOfSearch=To
+error.appointmentform.endingValidityDateBeforeNow=The end date of validity entered has passed. Please modify it before activating the form.
+error.appointmentform.noStartingValidityDate=You must enter a start date of validity before activating the form
+export.async.message=Your request is being processed. The file will be available on the 'My File Requests' screen in a few minutes.
+export.file.description=Excel File
+export.modal.button.ko=Cancel
+export.modal.button.ok=OK
+export.modal.title=Select fields to export
+formAddress=Form address
+formList=Appointment form list
+formMessages.defaultFieldConfirmationEmailHelp=Help for the email confirmation field
+formMessages.defaultFieldConfirmationEmailTitle=Confirm your email
+help.formAddress=Form Address Help
+info.advancedparameters.removed=Advanced parameters removed
+info.advancedparameters.updated=Advanced parameters modified
+info.appointment.created=The appointment has been successfully created
+info.appointment.emailerror=The maximum number of appointments for this email has been reached
+info.appointment.removed=Appointment(s) removed
+info.appointment.updated=The appointment has been successfully updated
+info.appointmentFormMessages.updated=Form messages modified
+info.appointmentform.closingDayImport=Closing days imported
+info.appointmentform.created=Appointment form created
+info.appointmentform.removed=Appointment form removed
+info.appointmentform.updated=Form modified
+info.category.created=Category created
+info.category.removed=Category removed
+info.category.updated=Category modified
+info.comment.created=Comment created
+info.comment.error=Please check the entered fields
+info.comment.removed=Comment deleted
+info.comment.rights=You do not have the required rights
+info.comment.updated=Comment updated
+info.globalparameters.updated=Global parameters modified
+insert=Add
+isMultislotAppointment.help=This option allows taking appointments for a group of people spread over multiple slots. Warning! This choice is irreversible once the form is created.
+isMultislotAppointment=Enable taking appointments on multiple slots
+label.addComment=Add comments
+label.addressDescription=Form Address Description
+label.changeAppointmentStatus=Approve/cancel an appointment
+label.changeState=Activate/deactivate an appointment form
+label.createAppointment=Create an appointment
+label.deleteAppointment=Delete an appointment
+label.deleteForm=Delete an appointment form
+label.deleteMassAppointment=Delete appointments
+label.OpenFriday=Open on Friday
+label.OpenMonday=Open on Monday
+label.OpenSaturday=Open on Saturday
+label.OpenSunday=Open on Sunday
+label.OpenThursday=Open on Thursday
+label.OpenTuesday=Open on Tuesday
+label.OpenWednesday=Open on Wednesday
+label.addressDescription=Description form address
+label.clearAddress=Delete the address
+label.displayOnPortlet.help=Check to display the form on the portlet
+label.displayOnPortlet=Display the form on the portlet
+label.displayTitleFo.help=Check to display the form title in the Front Office
+label.displayTitleFo=Display the title in Front Office
+label.exportMassAppointment=Export result
+label.moderateComment=Moderate comments
+label.modifyAdvancedSettingForm=Modify advanced settings of a form
+label.modifyForm=Modify an appointment form
+label.formAddress=Appointment location
+label.insert=Add
+label.isMultislotAppointment.help=Allow the creation of appointments for several people on consecutive slots. Warning ! Can't be changed after from creation.
+label.isMultislotAppointment=Activate multi-slot appointments
+label.labelNbConsecutiveSlots=Number of consecutive slots (1 per person)
+label.nbConsecutiveSlots.help=Set the maximum number of places (value >= 1)
+label.nbConsecutiveSlots=Number places to take for consecutive slots.
+label.nbWeeksToDisplay.help=Number of weeks to display to users (including the current week)
+label.nbWeeksToDisplay=Number of weeks
+label.overbooking=Allow overbooking
+label.viewAppointment=View an appointment
+label.viewForm=View an appointment form
+label=Category label
+labelAddTemplate=Create a template
+labelCancel=Cancel
+labelCancelAppointment=Cancel appointment
+labelDescription=Description
+labelModifyAppointment=Modify appointment
+labelModifyDateAppointment=Modify appointment date
+labelNbConsecutiveSlots=Number of consecutive slots (1 per person)
+labelNbMaxAppointments.help=Indicate the maximum number of appointments a user is allowed to make (0: no constraint)
+labelNbMaxAppointments=Maximum number of allowed appointments
+labelNbPlaces=Number of people
+labelPeople=people
+labelReport=Report
+labelSearch=Search
+labelTemplatePathSize=The title of the template must not exceed 255 characters
+labelValidate=Validate
+labelValidateAppointment=Approve appointment
+labelViewAppointment=View appointment
+labelDisplay=Display
+labelEmail=Email
+labelFirstName=First Name
+labelFrom=from
+labelLastName=Last Name
+labelLoading=Loading appointments
+labelPhoneNumber=Phone Number
+labelReport= Report
+labelSave=Save
+labelStatus=Status
+labelTemplatePathSize=The title of the template must not be more than 255 characters
+labelThe=The
+labelTitle=Title
+labelTo=to
+manage.appointmentforms.title=Manage Appointment Forms
+manageAppointmentCalendar.pageTitle=Appointment management by calendar
+manageAppointmentForms.Copy=Duplicate of
+manageAppointmentForms.buttonAdd=Create a form
+manageAppointmentForms.labelConfig=Config
+manageAppointmentForms.labelCopy=Duplicate
+manageAppointmentForms.labelDisable=Disable
+manageAppointmentForms.labelEnable=Enable
+manageAppointmentForms.labelManageAppointments=Manage Appointments
+manageAppointmentForms.labelModifyMessages=Messages
+manageAppointmentForms.labelManageAppointments=Appointments management
+manageAppointmentForms.labelModifyMessages=Edit messages
+manageAppointmentForms.labelPlanning=Planning
+manageAppointments.columnAdmin=Administrator
+manageAppointments.columnDateAppointmentTaken=Taken on:
+manageAppointments.columnEmail=Email
+manageAppointments.columnFirstName=First Name
+manageAppointments.columnFormCategory=Category
+manageAppointments.columnFormTitle=Form Title
+manageAppointments.columnLastName=Last Name
+manageAppointments.columnName=Login
+manageAppointments.columnNbBookedSeats=Places
+manageAppointments.columnNumberOfBookedseatsPerAppointment=Number of booked places
+manageAppointments.columnPhoneNumber=Phone Number
+manageAppointments.columnState=Status
+manageAppointments.endingDateOfSearch=To
+manageAppointments.labelModifyAppointment=Edit appointment
+manageAppointments.labelModifyDateAppointment=Modify the date of the appointment
+manageAppointments.labelSearch=Search
+manageAppointments.labelValidateAppointment=Confirm the appointment
+manageAppointments.labelViewAppointment=View appointment
+manageAppointments.nbMaxAppointmentsForExport=To much appointments to export. Please refine the search
+manageAppointments.pageTitle=Appointment management by filter
+manageAppointments.reference=reference
+manageAppointments.startingDateOfSearch=From
+manageCalendarSlots.chooseThisSlot=Choose this slot
+manageCalendarSlots.labelAddAppointment=Book this slot
+manageCalendarSlots.labelClosed=Closed
+manageCalendarSlots.labelEdit=Ongoing reservation
+manageCalendarSlots.labelEditFull=No space available at the moment
+manageCalendarSlots.labelFriday=Friday
+manageCalendarSlots.labelFull=Full
+manageCalendarSlots.labelMonday=Monday
+manageCalendarSlots.labelSaturday=Saturday
+manageCalendarSlots.labelSunday=Sunday
+manageCalendarSlots.labelThursday=Thursday
+manageCalendarSlots.labelTuesday=Tuesday
+manageCalendarSlots.labelWednesday=Wednesday
+manageCalendarTemplates.labelTemplatePath=Template path
+manageCalendarTemplates.name=Manage calendar templates
+manageCategories.description=Category manager
+manageCategories.name=Manage categories
+manageComment.description=Manage comments and notifications
+manageComment.name=Manage comments and notifications
+manageHolidays.labelClosinglabelFormatFile=Format: .xlsx
+manageHolidays.labelImport=Import closing days
+manage_comments.buttonAdd=Add a comment
+manage_comments.columnEndingValidityDate=To
+manage_comments.columnIdForm=Form
+manage_comments.columnStartingValidityDate=From
+manage_comments.columnUserCreator=User
+manage_comments.pageTitle=Manage comments
+manage_comments.title=List of Comments
+message.appointmentForm.placesMax=You can book as many places as you want
+message.cantRemove.activate.form=You cannot delete this form. You must first deactivate it.
+message.cantRemove.form=You cannot delete this form. You must first delete the appointments associated with this form
+message.cantRemoveEntry.resourceAttached=You cannot delete this field. You must first delete the associated appointments to this form
+message.cantRemoveEntry=You cannot delete this field: {0}
+message.categoryIsAffected.errorRemoveCategory=The category cannot be removed, one or more forms are affected by this category.
+message.confirmRemoveAppointmentForm=Are you sure you want to delete this appointment form?
+message.confirmRemoveComment=Are you sure you want to delete this comment?
+message.confirmRemoveEntry=Are you sure you want to delete this field?
+message.confirmRemoveField=Are you sure you want to delete this question?
+message.confirmRemoveMassAppointment=Are you sure you want to delete these appointments ?
+message.confirmRemoveWeekDefinition=Are you sure you want to delete these parameters for this date ?
+message.error.MaxAppointmentPeriode=You have exceeded the maximum number of appointments for this period
+message.error.appointment.edit.expired.time=The duration of the appointment creation/modification has expired. Please try again.
+message.error.appointmentOnSlot=The slots affected by this modification contain appointments. Please delete the appointments for this slot(s) before making any modifications.
+message.error.canNotCancelPassedAppointment=You can no longer cancel this appointment
+message.error.closingDayErrorImport=Error importing the file
+message.error.canNotCancelPassedAppointment=You can't cancel this appointment
+message.error.closingDayErrorImport=Error Importing File
+message.error.confirmEmail=The confirmation email is not valid
+message.error.dateAppointment=The date is not valid
+message.error.dateStartAfterTimeEnd=The end date of validity must not be earlier than the start date of validity
+message.error.durationAppointmentDayNotMultipleForm=Be careful with the duration of the opening slots. For example, if you have slots of 20 minutes with a day from 9am to 7:30pm, the system cannot create the last slot and blocks the opening
+message.error.errorModification=Oops! You cannot apply a week to dates prior to today
+message.error.fieldValue=The value field must not contain special characters or spaces
+message.error.formatDaysBeforeAppointment=The "Minimum appointment delay" field must be a valid integer
+message.error.formatDaysBeforeAppointmentMiddleSuperior=The "Average appointment duration" field must be less than the bounded start and end dates.
+message.error.lastWeekDefinition=You cannot delete the only definition of the typical week. You can possibly modify the parameters by applying the same validity date.
+message.error.multiSlot.numberOfSeatsBookedAndConcurrentAppointments=The maximum number of bookable seats must be equal to 1 because the option to make appointments on multiple slots is enabled.
+message.error.nbDaysBetweenTwoAppointments=Enabling email entry is mandatory when the minimum duration between two appointments is defined.
+message.error.nbMaxAppointmentsPerUser=Enabling email entry is mandatory when the maximum number of allowed appointments for a given period is defined.
+message.error.nbplacestotake.toobig=The number of places you entered is too large.
+message.error.noAppointmentFormSelected=Please select an appointment form.
+message.error.noAppointmentWithThisReference=No appointment with this reference
+message.error.noWorkingDayChecked=At least one day must be open
+message.error.numberOfSeatsBookedAndConcurrentAppointments=The maximum number of reserved seats must be less than or equal to the number of concurrent appointments.
+message.error.openSlots=Appointments are already booked for the days you want to close. The following closed days are not imported: {0}
+message.error.parsing.json=Error parsing data
+message.error.refreshDays.modifyFormHasAppointments=Appointments are associated with the upcoming weeks of this form. Please delete these appointments before modifying the form.
+message.error.removeWeek.date.passed=You cannot delete this week, it is applied in the past.
+message.error.removeWeek=Error when removing the week
+message.error.report.appointment=You cannot reschedule this appointment, it is no longer valid.
+message.error.rule.assigned=Please unassign the calendar week before deletion!
+message.error.slotCanNotEndAfterDayOrForm=A slot cannot end after the closing time of the form's day
+message.error.slotFull=The selected slot is no longer available. Please choose another one.
+message.error.startDateEmpty=Please enter a start date for the modifications.
+message.error.timeStartAfterTimeEnd=The end time must not be earlier than the start time
+message.error.unknownRef=The entered reference does not match any appointment
+message.error.week.assigned.past=You cannot edit this week, it is applied in the past.
+message.info.alreadyCancelled=This appointment has already been cancelled
+message.labelStatusNotValidated=Not validated
+message.labelStatusReserved=Reserved
+message.labelStatusUnreserved=Not reserved
+message.mandatory.entry=This field is mandatory.
+model.entity.appointmentform.attribute.calendarTemplateId=Calendar template
+model.entity.appointmentform.attribute.capacityPerSlot=Maximum theoretical capacity per time slot
+model.entity.appointmentform.attribute.dateEndValidity=End date of validity
+model.entity.appointmentform.attribute.dateStartValidity=Start date of validity
+model.entity.appointmentform.attribute.dateTaken=Date of appointment
+model.entity.appointmentform.attribute.durationAppointments=Appointment duration
+model.entity.appointmentform.attribute.hourTaken=Time of appointment
+model.entity.appointmentform.attribute.idForm=Identifier
+model.entity.appointmentform.attribute.isActive=Active
+model.entity.appointmentform.attribute.maxCapacityPerSlot=Number of simultaneous appointments
+model.entity.appointmentform.attribute.maxPeoplePerAppointment=Maximum number of reserved seats
+model.entity.appointmentform.attribute.nbConsecutiveSlots=Multiple time slots
+model.entity.appointmentform.attribute.nbWeeksToDisplay=Number of weeks to display to users
+model.entity.appointmentform.attribute.timeEnd=End time
+model.entity.appointmentform.attribute.timeStart=Start time
+modify.category.title=Edit category
+modifyAppointmentForm.deleteIcon=Delete the icon from the front office form
+modifyAppointmentForm.helpCancelUploadIcon=Cancel file upload
+modifyAppointmentForm.helpDateMin=Format DD/MM/YYYY. The modifications will only take effect from this date
+modifyAppointmentForm.helpFormatIcon=Format jpeg, png ..
+modifyAppointmentForm.labelInsertEntry=Insert a field
+modifyAppointmentForm.listDateOfModification=Parameter modification date
+modifyAppointmentForm.select=Select
+modifyAppointmentForm.selectAll=Select all
+modifyAppointmentForm.startDate=From
+modifyAppointmentForm.startEditForm=Date of modifications
+modifyAppointmentForm.title=Edit Appointment Form
+modifyAppointmentForm.titleAlterablesParameters=General Parameters
+modifyAppointmentForm.titleStructuralsParameters=Advanced Parameters
+modifyAppointmentFormEntries.pageTitle=Appointment Form
+modifyAppointmentFormMessages.labelCalendarDescription=Calendar help text
+modifyAppointmentFormMessages.labelCalendarFullLabel=Label indicating that a slot is full
+modifyAppointmentFormMessages.labelCalendarReserveLabel=Label indicating that a slot is open for reservation
+modifyAppointmentFormMessages.labelCalendarTitle=Calendar title in Front Office
+modifyAppointmentFormMessages.labelFieldEmailConfirmation=Confirmation email title
+modifyAppointmentFormMessages.labelFieldEmailConfirmationHelp=Help for the "confirmation email" field in Front Office
+modifyAppointmentFormMessages.labelFieldEmailHelp=Help for the "email" field in Front Office
+modifyAppointmentFormMessages.labelFieldEmailTitle=Title of the "email" field in Front Office
+modifyAppointmentFormMessages.labelFieldFirstNameHelp=Help for the "first name" field in Front Office
+modifyAppointmentFormMessages.labelFieldFirstNameTitle=Title of the "first name" field in Front Office
+modifyAppointmentFormMessages.labelFieldLastNameHelp=Help for the "last name" field in Front Office
+modifyAppointmentFormMessages.labelFieldLastNameTitle=Title of the "last name" field in Front Office
+modifyAppointmentFormMessages.labelLabelButtonRedirection=Label of the redirection button
+modifyAppointmentFormMessages.labelNoAvailableSlot=Text to display to the user when no slots are available
+modifyAppointmentFormMessages.labelTextAppointmentCanceled=Text to display to the user after canceling an appointment
+modifyAppointmentFormMessages.labelTextAppointmentCreated=Text to display to the user after creating an appointment
+modifyAppointmentFormMessages.labelTextAppointmentCreatedHelp=In the appointment creation text, you can use the following variables:
+modifyAppointmentFormMessages.labelUrlRedirectAfterCreation=URL to redirect to after creating an appointment
+modifyAppointmentFormMessages.pageTitle=Modify form messages
+modifyCalendarMultiSlots.messageSurbooking=Warning, non-canceled appointments are attached to the slots you have modified. There will be overbooking on the slots {0}
+modifyCalendarSlots.errorDayHasAppointment=It is impossible to modify the end time of a slot associated with a day that has at least one appointment. Please delete this or these appointments before continuing.
+modifyCalendarSlots.errorTimeEndBeforeTimeStart=The end time of a slot must be after its start time
+modifyCalendarSlots.errorWeekIsOpenFo=The week is open on the FO calendar! Please disable the form to edit this week.
+modifyCalendarSlots.messageOverload=(*) Slots marked with an asterisk are specific to this week
+modifyCalendarSlots.messageSlotUpdated=The slot has been successfully modified
+modifyCalendarSlots.messageSurbooking=Warning, non-canceled appointments are attached to the slot you have modified. There will be overbooking on this slot
+modifyCalendarSlots.messageValidatedAppointmentsImpacted=Warning, non-canceled appointments are attached to the slot you have modified. Remember to cancel them
+modifyCalendarSlots.pageTitle=Modify a slot
+modifyCalendarSlots.warningModifiyingEndingTime=Warning, modifying the end time of a slot will automatically reset all following slots for that day
+modifyEntry.buttonApply=Apply
+modifyEntry.titleComment=Modifying a comment for the form
+modifyEntry.titleGroup=Modifying a group for the form
+modifyEntry.titleQuestion=Modifying a question for the form
+modifyField.address=Address
+modifyField.manageConditionalQuestion.rowConditionalQuestion=Associated conditional questions
+modifyField.manageConditionalQuestion.title=List of conditional questions
+modifyField.manageConditionalQuestion.titleGoOut=Exit
+modifyField.title=Modify a response to the question
+modifySlot.helpModifyEndSlot=If you change the end time of the slot to a time that is not a multiple of the usual slot time, select below the option chosen for the following slots
+modifySlot.labelCapacityChange=Capacity change
+modifySlot.labelClose=Close
+modifySlot.labelDate=Slot date
+modifySlot.labelMaxCapacityForThisSlot=Maximum capacity for this slot
+modifySlot.labelNewCapacity=New capacity
+modifySlot.labelNoValue=Do not modify
+modifySlot.labelOpen=Open
+modifySlot.labelOpenHelp=Choose whether you want to open, close, or do nothing for the selected slot(s).
+modifySlot.labelSlotStatus=Status of the slot(s)
+modifySlot.notShiftSlot=Do not shift the following slots.
+modifySlot.shiftSlot=Shift the following slots from the specified end time.
+modify_comment.labelEndingValidityDate.help=End date of comment validity
+modify_comment.labelEndingValidityDate=To
+modify_comment.labelEndingValidityTime=at
+modify_comment.labelStartingValidityDate.help=Start date of comment validity
+modify_comment.labelStartingValidityDate=From
+modify_comment.labelStartingValidityTime=at
+modify_comment.pageTitle=Modify a comment
+move.name=Move
+moveAll.name=Move all
+moveDown.title=Move down
+moveUp.title=Move up
+myAppointments.labelAppointmentFormTitle=Type of appointment
+myAppointments.labelDateAppointment=Date
+myAppointments.labelTime=Time
+myAppointments.name=My appointments
+name=Appointment
+nbConsecutiveSlots.help=Enter the maximum number of places (value >= 1)
+nbConsecutiveSlots=Number of places for consecutive slots
+pageTitle=Manage appointments by calendar
+pageTitle=Manage appointments by filter
+pageTitle=Task form
+pageTitle=View appointment
+nbPlacesToTakeForm.labelNbPlaces=Number of people
+nbPlacesToTakeForm.labelPeople=People
+nbPlacesToTakeForm.labelValidate=Validate
+permission.label.addComment=Create Comments
+permission.label.changeAppointmentStatus=Validate or Cancel an appointment
+permission.label.changeState=Activate/Deactivate a form
+permission.label.createAppointment=Create an appointment
+permission.label.createForm=Create an appointment form
+permission.label.deleteAppointment=Delete an appointment
+permission.label.deleteForm=Delete a form
+permission.label.deleteMassAppointment=Delete appointments
+permission.label.exportMassAppointment=Export results
+permission.label.moderateComment=Moderate Comments
+permission.label.modifyAdvancedSettingForm=Edit the advanced settings of a form
+permission.label.modifyForm=Edit a form
+permission.label.viewAppointment=View an appointment
+permission.label.viewForm=View a form
+plugin.description=Manage appointment requests
+portlet.appointmentFormListPortlet.name=List of appointment request forms
+provider=City Hall of Paris
+reference=Reference
+portlet.appointmentFormListPortlet.name=List of Appointment Request Forms
+regularExpression.label=Verification rule
+removeCalendarTemplate.confirmRemoveTemplate=Do you really want to delete this template?
+removeCalendarTemplate.infoTemplateRemoved=The template has been successfully deleted
+site_properties.description=Number of places for multiple time slots
+site_properties.name=Number of places
+site_property.nbplaces.help=Enter the maximum number of places
+site_property.nbplaces=Enter the maximum number of places
+specificDay.pageTitle=Day view
+specificWeek.pageTitle=Specific week
+startingDateOfSearch=From
+taskFormWorkflow.pageTitle=Task form
+task_notify_appointment_comment_config.label_comment=The Comment
+task_notify_appointment_comment_config.label_creation_date=Comment creation date
+task_notify_appointment_comment_config.label_creator_user_name=Name of the user who created the comment
+task_notify_appointment_comment_config.label_date_end_validity=End date of comment validity
+task_notify_appointment_comment_config.label_date_start_validity=Start date of comment validity
+task_notify_appointment_comment_config.label_form_id=Form ID
+task_notify_appointment_comment_config.label_form_titlet=Form Title
+task_notify_appointment_comment_config.label_message=Email Content
+task_notify_appointment_comment_config.label_sender_name=Email Sender Name
+task_notify_appointment_comment_config.label_subject=Email Subject
+task_notify_appointment_comment_config.label_time_end_validityt=End time of comment validity
+task_notify_appointment_comment_config.label_time_start_validity=Start time of comment validity
+task_notify_appointment_comment_config.title=Notification Message Configuration
+title=Appointment date
+title=Create a category
+title=Modify a category
+type.name=Type
+typicalWeek.buttonLabelCreate=Create typical week
+typicalWeek.pageTitle=Typical week
+validation.appointment.Email.email=Please enter a valid email address
+validation.appointment.Email.notEmpty=Please enter an email address
+validation.appointment.Email.size=Email address must be less than 255 characters
+validation.appointment.EmailConfirmation.email=Please enter a confirmation email address
+validation.appointment.FirstName.NoSpecialCharacter=The first name must not contain special characters
+validation.appointment.FirstName.notEmpty=Please enter a first name
+validation.appointment.FirstName.size=First name must contain less than 255 characters
+validation.appointment.Icon.notEmpty=Please add an icon for the form
+validation.appointment.LastName.NoSpecialCharacter=The last name must not contain special characters
+validation.appointment.LastName.notEmpty=Please enter a last name
+validation.appointment.LastName.size=Last name must contain less than 255 characters
+validation.appointment.NbBookedSeat.error=There are not enough available seats for your request. Please choose another time slot.
+validation.appointment.NbBookedSeat.notEmpty=Number of seats must not be empty.
+validation.appointment.NbBookedSeat.notNumberFormat=The number of seats must be an integer.
+validation.appointment.NbMaxAppointmentsOnAPeriod.error=The maximum number of allowed appointments has been reached for this period
+validation.appointment.NbMaxAppointmentsOnCategory.error=The maximum number of allowed appointments has been reached! To make another appointment, please cancel one of your following appointments: {0}
+validation.appointment.NbMinDaysBetweenTwoAppointments.error=You cannot make an appointment on this date. The number of days since your last appointment is not sufficient.
+validation.appointment.formNoMoreValid=The form is no longer valid
+validation.appointment.formNotActive=The form is not active
+validation.appointment.noAvailableSlot=No available time slot
+validation.appointment.noStartingValidityDate=The form has no starting validity date
+validation.appointmentform.Description.notEmpty=The Description field must not be empty.
+validation.appointmentform.NbWeeksToDisplay.notEmpty=The Number of weeks to display field must be at least one.
+validation.appointmentform.Title.notEmpty=The Title field must not be empty.
+validation.appointmentform.Title.size=The Title field must not contain more than 255 characters.
+validation.appointmentform.fromTimeSeizure.notEmpty=The Form seizure duration field must not be empty.
+validation.week.color.notEmpty=Please choose a color
+validation.week.color.size=The color must contain less than 255 characters
+validation.week.description.notEmpty=Please enter a description
+validation.week.description.size=The description must contain less than 255 characters
+validation.week.name.notEmpty=Please enter a name
+validation.week.name.size=The name must contain less than 255 characters
+value.name=Value
+viewAppointment.pageTitle=Visualization of an appointment
+viewAppointmentFormMessages.labelAppointmentTakenBy=Appointment taken by
+viewAppointmentFormMessages.labelAppointmentUser=in front-office
+viewAppointmentFormMessages.labelAppointmentUserBO=in back-office by
+week.toApplay=Applied Week:
+wf.action.success=Success
+xpage.form.noValue=No value
+xpage.formList.labelFormList=List of forms
+xpage.formList.noForm=No form is currently enabled
\ No newline at end of file
diff --git a/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/appointment_commons.html b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/appointment_commons.html
new file mode 100644
index 0000000..a1474b6
--- /dev/null
+++ b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/appointment_commons.html
@@ -0,0 +1,768 @@
+<#macro commonsAppJS >
+
+
+
+
+
+
+
+<#-- -->
+
+
+
+
+
+
+
+
+
+
+#macro>
+<#macro headerTitle form=form >
+/* Add Form title */
+document.querySelector('#feature-title').innerHTML = '#i18n{appointment.adminFeature.ManageAppointmentForm.name} ${form.title!?js_string}';
+#macro>
+<#--
+-- Check if the checkbox must be checked or not
+-- @param code the checkbox code
+-- @param referecenlist the default values list
+-- @return the String 'checked="checked" if the checkbox must be checked, an empty String otherwise
+-->
+<#function getChecked code reference_list>
+<#if reference_list?has_content>
+<#list reference_list as reference_item>
+ <#if reference_item.code = code>
+ <#if reference_item.checked><#return "checked='checked'"><#else><#return "">#if>
+ #if>
+#list>
+#if>
+<#return "">
+#function>
+<#--
+-- Get the value of the parameter
+-- @param code the code of the parameter
+-- @param referecenlist the default values list
+-- @return the value of the parameter
+-->
+<#function getName code reference_list>
+ <#if reference_list?has_content>
+ <#list reference_list as reference_item>
+ <#if reference_item.code = code>
+ <#return reference_item.name>
+ #if>
+ #list>
+ #if>
+ <#return "">
+#function>
+<#--
+-- Get the field from a given title
+-- @param entry the entry
+-- @param fieldTitle the title
+-- @return the field
+-->
+<#function getField entry fieldTitle>
+ <#if entry.fields?? && entry.fields?has_content>
+ <#list entry.fields as field>
+ <#if field?? && field.title?? && field.title == fieldTitle>
+ <#return field>
+ #if>
+ #list>
+ #if>
+#function>
+<#--
+-- Get the field value from a given entry and a given title
+-- @param entry the entry
+-- @param fieldTitle the title
+-- @return the field
+-->
+<#function getFieldValue entry fieldTitle>
+ <#if getField( entry, fieldTitle )??>
+ <#assign field = getField( entry, fieldTitle )>
+ <#return field.value>
+ #if>
+ <#return "">
+#function>
+<#--
+-- Get the max files value of an entry
+-- @param entry the entry
+-- @return the number of max authorized uploaded files
+-->
+<#function getMaxFiles entry>
+ <#assign fieldMaxFiles = getFieldValueByCode( entry, "max_files" )>
+ <#if fieldMaxFiles?? && fieldMaxFiles != "">
+ <#return fieldMaxFiles>
+ #if>
+ <#return "1">
+#function>
+<#--
+-- Get the max size an uploaded file is authorized to have
+-- @param entry the entry
+-- @return the max size
+-->
+<#function getFileMaxSize entry>
+ <#assign fieldFileMaxSize = getFieldValueByCode( entry, "file_max_size" )>
+ <#if fieldFileMaxSize?? && fieldFileMaxSize != "">
+ <#return fieldFileMaxSize>
+ <#else>
+ <#if getField( entry, "option" )??>
+ <#assign fieldFileMaxSize = getFieldValueByCode( entry, "option" )>
+ <#return fieldFileMaxSize.width>
+ #if>
+ #if>
+ <#return "5242880">
+#function>
+<#--
+-- Check if the given entry must export the binary
+-- @param entry the entry
+-- @return true if it must export the binaries, false otherwise
+-->
+<#function exportBinary entry>
+ <#assign field = getFieldValue( entry, "export_binary" ) />
+ <#if field?? && field = "true">
+ <#return true />
+ #if>
+ <#return false />
+#function>
+<#--
+-- Get the field value from a given entry and a given title
+-- @param entry the entry
+-- @param fieldTitle the title
+-- @return the field
+-->
+<#function getFieldValueByCode entry fieldCode>
+ <#if getFieldByCode( entry, fieldCode )??>
+ <#assign field = getFieldByCode( entry, fieldCode )>
+ <#return field.value>
+ #if>
+ <#return "">
+#function>
+<#--
+-- Get the field from a given code
+-- @param entry the entry
+-- @param fieldCode the code
+-- @return the field
+-->
+<#function getFieldByCode entry fieldCode>
+ <#if entry.fields?? && entry.fields?has_content>
+ <#list entry.fields as field>
+ <#if field?? && field.code?? && field.code == fieldCode>
+ <#return field>
+ #if>
+ #list>
+ #if>
+#function>
+<#macro getCommentModal modalId modalTitle idComment idStartingDate idEndingDate idStartingTime idEndingTime action idForm mailingList locale=locale>
+<#switch modalId>
+<#case 'modify-comment'>
+ <#assign startDateLabel='#i18n{appointment.modify_comment.labelStartingValidityDate}'>
+ <#assign startTimeLabel='#i18n{appointment.modify_comment.labelStartingValidityTime}'>
+ <#assign endDateLabel='#i18n{appointment.modify_comment.labelEndingValidityDate}'>
+ <#assign endDateHelp='#i18n{appointment.modify_comment.labelEndingValidityDate}'>
+ <#assign endTimeLabel='#i18n{appointment.modify_comment.labelEndingValidityTime}'>
+<#break>
+<#default>
+ <#assign startDateLabel='#i18n{appointment.create_comment.labelStartingValidityDate}'>
+ <#assign startTimeLabel='#i18n{appointment.create_comment.labelStartingValidityTime}'>
+ <#assign endDateLabel='#i18n{appointment.create_comment.labelEndingValidityDate}'>
+ <#assign endDateHelp='#i18n{appointment.create_comment.labelEndingValidityDate}'>
+ <#assign endTimeLabel='#i18n{appointment.create_comment.labelEndingValidityTime}'>
+#switch>
+<@modal id=modalId >
+ <@modalHeader modalTitle=modalTitle />
+ <@modalBody>
+ <@tform action='jsp/admin/plugins/appointment/Comments.jsp' id='commentUpdate'>
+ <@input type='hidden' name='id_form' value='${idForm!}' />
+ <@input type='hidden' name='id_comment' id='id_comment' />
+ <@formGroup labelFor='comment' labelKey='#i18n{appointment.comment.name}' helpKey='#i18n{appointment.comment.name}' mandatory=true rows=2>
+ <@input type='textarea' name='comment' id=idComment richtext=true />
+ @formGroup>
+ <@formGroup labelFor='startingValidityDate' labelKey=startDateLabel mandatory=true rows=2>
+ <@inputGroup class='date' id='${idStartingDate}Group'>
+ <@input type='text' name='startingValidityDate' id=idStartingDate />
+ <@inputGroupItem type='text'>
+ <@icon style='calendar' />
+ @inputGroupItem>
+ @inputGroup>
+ @formGroup>
+ <@formGroup labelFor='startingValidityTime' labelKey=startTimeLabel rows=2>
+ <@inputGroup id='${idStartingTime}Group' class='date'>
+ <@input type='text' name='startingValidityTime' id=idStartingTime value='00:00' />
+ <@inputGroupItem type='text' >
+ <@icon style='clock' />
+ @inputGroupItem>
+ @inputGroup>
+ @formGroup>
+ <@formGroup labelFor=idEndingDate labelKey=endDateLabel mandatory=true rows=2>
+ <@inputGroup class='date' id='${idEndingDate}Group'>
+ <@input type='text' name='endingValidityDate' id=idEndingDate />
+ <@inputGroupItem type='text'>
+ <@icon style='calendar' />
+ @inputGroupItem>
+ @inputGroup>
+ @formGroup>
+ <@formGroup labelFor='endingValidityTime' labelKey=endTimeLabel rows=2>
+ <@inputGroup class='date' id='${idEndingTime}Group'>
+ <@input type='text' name='endingValidityTime' id=idEndingTime value='00:00' />
+ <@inputGroupItem type='text'>
+ <@icon style='clock' />
+ @inputGroupItem>
+ @inputGroup>
+ @formGroup>
+ <@formGroup labelFor='idMailingList' labelKey='#i18n{appointment.create_comment.labelMailingList}' helpKey='#i18n{appointment.create_comment.labelMailingList.help}' mandatory=false rows=2>
+ <#assign default='-1'>
+ <@select name="idMailingList" size='sm'>
+ <@option value='-1' label='#i18n{appointment.create_comment.labelNoNotification}' />
+ <#list mailing_list as item>
+ <#assign isSelected><#if default=item.code>true<#else>false#if>#assign>
+ <#assign label><#if !item.name?has_content>label="${i18n("portal.util.labelEmpty")}"<#else>${item.name}#if>#assign>
+ <@option value=item.code label=label selected=isSelected?boolean />
+ #list>
+ @select>
+ @formGroup>
+ <@formGroup rows=2>
+ <@btnGroup>
+ <@button type='submit' name='action_${action}' buttonIcon='save' title='#i18n{portal.util.labelValidate}' />
+ <@button type='submit' id='commentDelete' name='action_confirmRemoveComment' buttonIcon='trash' title='#i18n{portal.util.labelDelete}' color='danger' />
+ <@button type='button' params='data-bs-dismiss="modal"' title='#i18n{portal.util.labelCancel}' buttonIcon='times' color='default' />
+ @btnGroup>
+ @formGroup>
+ @tform>
+ @modalBody>
+@modal>
+
+#macro>
+<#macro btnComment >
+<#if permission_add_comment?boolean>
+ <@button id='toggle-add-comment' style='none' color='info mt-2 me-1' title='#i18n{appointment.create_comment.pageTitle}' hideTitle=[''] params='data-bs-toggle="modal" data-bs-target="#commentModal"' >
+ <@iconStack class='fa-xs'>
+ <@icon prefix='' style='far fa-comment fa-stack-2x' />
+ <@icon prefix='' style='fas fa-plus fa-stack-1x' />
+ @iconStack>
+ @button>
+#if>
+#macro>
+<#macro tabsComment tab>
+<@tabList id='${tab}-tab' params=' style="margin-top:15px"'>
+ <#if tab='comment'><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/Comments.jsp?view=manageComment' title='#i18n{appointment.manage_comments.title}' active=active />
+ <#if tab='notif'><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/NotificationCommentConfig.jsp?view=notificationConfig' title='#i18n{appointment.task_notify_appointment_comment_config.title}' active=active />
+@tabList>
+#macro>
+<#macro appointmentTabList tab form tabcontext>
+<#if tabcontext='slot'>
+ <#if tab="typicalWeek"><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${form.idForm}&context=slot' title='#i18n{appointment.typicalWeek.pageTitle}' active=active />
+ <#if tab="specificWeek"><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageSpecificWeek.jsp?view=manageSpecificWeek&id_form=${form.idForm}&context=slot' title='#i18n{appointment.specificWeek.pageTitle}' active=active />
+ <#if tab="year"><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAnnualCalendar.jsp?view=manageAnnualCalendar&id_form=${form.idForm}&context=slot' title='#i18n{appointment.annual.calendar.pageTitle}' active=active />
+ <#if tab="day"><#assign active = true /><#else><#assign active = false />#if>
+ <#if isDeskInstalled?? && isDeskInstalled><@tabLink href='jsp/admin/plugins/appointment/modules/desk/ManageAppointmentDesks.jsp?plugin_name=appointment-desk&id_form=${form.idForm}&context=slot' title='#i18n{appointment.specificDay.pageTitle}' active=active />#if>
+<#elseif tabcontext='app'>
+ <#if tab="calendar"><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointments.jsp?view=viewCalendarManageAppointment&id_form=${form.idForm}&context=app' title='#i18n{appointment.manageAppointmentCalendar.pageTitle}' active=active />
+ <#if tab="filter"><#assign active = true /><#else><#assign active = false />#if>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointments.jsp?view=manageAppointments&id_form=${form.idForm}&context=app' title='#i18n{appointment.manageAppointments.pageTitle}' active=active />
+ <#if tab='day'><#assign active = true /><#else><#assign active = false />#if>
+ <#if isDeskInstalled?? && isDeskInstalled><@tabLink href='jsp/admin/plugins/appointment/modules/desk/ManageAppointmentDesks.jsp?plugin_name=appointment-desk&id_form=${form.idForm}&context=app' title='#i18n{appointment.specificDay.pageTitle}' active=active />#if>
+<#else>
+ <#assign tabparams='data-menu="slot"'>
+ <#if isDeskInstalled?? && isDeskInstalled><@tabLink href='jsp/admin/plugins/appointment/modules/desk/ManageAppointmentDesks.jsp?plugin_name=appointment-desk&id_form=${form.idForm}&context=slot' title='#i18n{appointment.specificDay.pageTitle}' active=true params=tabparams />#if>
+ <#assign active = false />
+ <@tabLink href='jsp/admin/plugins/appointment/ManageSpecificWeek.jsp?view=manageSpecificWeek&id_form=${form.idForm}&context=slot' title='#i18n{appointment.specificWeek.pageTitle}' active=active params=tabparams/>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAnnualCalendar.jsp?view=manageAnnualCalendar&id_form=${form.idForm}&context=slot' title='#i18n{appointment.annual.calendar.pageTitle}' active=active params=tabparams/>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${form.idForm}&context=slot' title='#i18n{appointment.typicalWeek.pageTitle}' active=active params=tabparams/>
+ <#assign tabparams='data-menu="app"'>
+ <#assign active = false />
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointments.jsp?view=viewCalendarManageAppointment&id_form=${form.idForm}&context=app' title='#i18n{appointment.manageAppointmentCalendar.pageTitle}' active=active params=tabparams/>
+ <@tabLink href='jsp/admin/plugins/appointment/ManageAppointments.jsp?view=manageAppointments&id_form=${form.idForm}&context=app' title='#i18n{appointment.manageAppointments.pageTitle}' active=active params=tabparams/>
+ <#if isDeskInstalled?? && isDeskInstalled><@tabLink href='jsp/admin/plugins/appointment/modules/desk/ManageAppointmentDesks.jsp?plugin_name=appointment-desk&id_form=${form.idForm}&context=app' title='#i18n{appointment.specificDay.pageTitle}' active=true params=tabparams/>#if>
+#if>
+#macro>
+<#macro appointmentTabs tab form context >
+<@commonsAppJS />
+<@row id='${tab}-tab'>
+ <@columns>
+ <@tabs params=' style="margin-top:15px"'>
+ <@tabList>
+ <@appointmentTabList tab form context />
+ @tabList>
+ <@tabContent id='${tab}-content'>
+ <@messages errors=errors warnings=warnings infos=infos />
+ <#nested>
+ <#if formCalendarErrors??>
+
+ <#else>
+ <#if !tab?contains("filter")>
+ <#if !tab?contains("typicalWeek")>
+
'+ event.title + '
" + event.start.format('HH:mm') + " - " + event.end.format('HH:mm')+"
"; + } + } + <#else> + if( event.id != undefined || event.id != undefined ){ + json.content = "" + event.start.format('HH:mm') + " - " + event.end.format('HH:mm')+"
"; + } + #if> + const popover = new bootstrap.Popover( element.context, json ) + } + }); + /* If comment creation set currentDate from "commentContext" localstorage */ + const dtCurrent=localStorage.getItem('commentContext'); + if( dtCurrent !='' && dtCurrent != null ){ + localStorage.removeItem( 'commentContext' ); + calendar.fullCalendar( 'gotoDate', moment(dtCurrent,'DD-MM-YYYY')); + } + <#nested> +}); +#macro> diff --git a/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_annual_calendar.html b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_annual_calendar.html new file mode 100644 index 0000000..63cdeff --- /dev/null +++ b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_annual_calendar.html @@ -0,0 +1,195 @@ + + +<@appointmentTabs tab='year' form=appointmentform context='slot'> + <@row> + <@columns sm=10> + <@div id="calendar">@div> + @columns> + <@columns sm=2> + <@p params=' style="border-bottom: 1px solid #000;margin-bottom: 15px; padding:15px 0"'> + <@span params='style="border-radius: 50%;background-color:#DDD;width: 20px;height: 20px;display: inline-block;vertical-align: middle;"'>@span> #i18n{appointment.annual.label.daySpecifity} + @p> + <@ul class="list-unstyled"> + <#list listReservationRule as rule> + <@li class='py-2'> + <@aButton color='link btn-outline-default justify-content-start w-75' href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${id_form}&id_reservation_rule=${rule.idReservationRule}'> + <@icon prefix='fas fa-' style='circle me-2' params=' style="color:${rule.color!};"' /> ${rule.name} + @aButton> + @li> + #list> + @ul> + @columns> + @row> +@appointmentTabs> +<@div id="context-menu">@div> +<@modal id='event-modal' size='md' > + <@modalHeader modalTitle='#i18n{appointment.assign.typicalWeek.defaultTitle}' /> + <@modalBody> + <@tform id='form-validate' action='jsp/admin/plugins/appointment/ManageAnnualCalendar.jsp' params='enctype="multipart/form-data"'> + <@input type='hidden' name='action' value='doAssignWeek' /> + <@input type='hidden' name='id_form' value='${id_form}' /> + <@input type='hidden' name='id_week_definition' value='' /> + <@formGroup labelFor='date_of_apply' labelKey='#i18n{appointment.manageAppointments.startingDateOfSearch}' rows=2> + <@inputGroup> + <@input type='text' name='date_of_apply' id='date_of_apply' value="" /> + <@inputGroupItem type='text'> + <@icon style='calendar' /> + @inputGroupItem> + @inputGroup> + @formGroup> + <@formGroup labelFor='endingDate' labelKey='#i18n{appointment.manageAppointments.endingDateOfSearch}' rows=2> + <@inputGroup> + <@input type='text' name='ending_date_of_apply' id='ending_date_of_apply' value="" /> + <@inputGroupItem type='text'> + <@icon style='calendar' /> + @inputGroupItem> + @inputGroup> + @formGroup> + <@formGroup labelFor='type' labelKey='#i18n{appointment.week.toApplay}' rows=2> + <@select name='id_reservation_rule' id='id_reservation_rule'> + <#list listReservationRule as rule> + <@option value=rule.idReservationRule label=rule.name /> + #list> + @select> + @formGroup> + <@formGroup rows=2> + <@button type='submit' name='save' id='save' buttonIcon='check' title='#i18n{appointment.labelSave}' /> + <@button type='submit' name='delete' id='delete' title='#i18n{portal.util.labelDelete}' buttonIcon='trash' color='danger' /> + <@button type='button' params='data-bs-dismiss="modal"' title='#i18n{portal.util.labelCancel}' buttonIcon='times' color='default' /> + @formGroup> + @tform> + @modalBody> +@modal> + + + + + + + diff --git a/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_specific_week.html b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_specific_week.html new file mode 100644 index 0000000..466e809 --- /dev/null +++ b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_specific_week.html @@ -0,0 +1,134 @@ +<@appointmentTabs tab='specificWeek' form=appointmentform context='slot'/> + +<@getCommentModal 'commentModal' '#i18n{appointment.create_comment.pageTitle}' "comment" "startingValidityDate" "endingValidityDate" "idStartingTime" "idEndingTime" "doAddComment" id_form mailing_list /> + +<@getCommentModal 'modify-comment' '#i18n{appointment.modify_comment.pageTitle}' "comment" "modifyStartingValidityDate" "modifyEndingValidityDate" "idModifyStartingTime" "idModifyEndingTime" "doModifyComment" id_form mailing_list /> + +<@modal id='updatePlanningSlot' params='data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"'> + <@modalBody> + <@tform action='jsp/admin/plugins/appointment/ManageSpecificWeek.jsp'> + <@input type='hidden' name='action' value='doModifyListSlot' /> + <@input type='hidden' name='id_form' value='${appointmentform.idForm}' /> + <@input type='hidden' id='slotData' name='slotsData' value='' /> + <@input type='hidden' id='idWorkingDay' name='workingDay' value='' /> + <@input type='hidden' id='capacity' name='capacity' value='new_cap' /> + <@input type='hidden' id='date_of_display_slot' name='date_of_display' value='${date_of_display}' /> + <@formGroup labelKey='#i18n{appointment.modifySlot.labelDate}' rows=2> + <@staticText id="dtSlot">@staticText> + @formGroup> + <@formGroup labelFor='is_open' labelKey='#i18n{appointment.modifySlot.labelOpen}' helpKey='#i18n{appointment.modifySlot.labelOpenHelp}' rows=2> + <@checkBox name='is_open' id='is_open' value='true' checked=true /> + @formGroup> + <@formGroup labelFor='maxCapacity' labelKey='#i18n{appointment.modifySlot.labelMaxCapacityForThisSlot}' mandatory=true rows=2> + <@input type='number' id='maxCapacity' name='max_capacity' value='' min=0 max=99 maxlength=3 /> + @formGroup> + <@formGroup labelKey='#i18n{appointment.model.entity.appointmentform.attribute.timeStart}' rows=2> + <@staticText id='timeStart'>@staticText> + @formGroup> + <@formGroup labelFor='timeEnd' labelKey='#i18n{appointment.model.entity.appointmentform.attribute.timeEnd}' helpKey='#i18n{appointment.modifySlot.helpModifyEndSlot}' mandatory=true rows=2> + <@inputGroup> + <@input type='text' name='ending_time' id='timeEnd' value='' /> + <@inputGroupItem type='text'> + <@icon style='clock' /> + @inputGroupItem> + @inputGroup> + @formGroup> + <@formGroup labelFor='shift_slot' rows=2> + <@radioButton labelFor='shift_slot_false' labelKey='#i18n{appointment.modifySlot.notShiftSlot}' name='shift_slot' id='shift_slot_false' checked=true value='false' /> + <@radioButton labelFor='shift_slot_true' labelKey='#i18n{appointment.modifySlot.shiftSlot}' name='shift_slot' id='shift_slot_true' value='true' /> + @formGroup> + <@formGroup rows=2> + <@button type='submit' buttonIcon='check' name='modify' id='modify' title='#i18n{portal.util.labelModify}' /> + <@button color='secondary' title='#i18n{portal.util.labelCancel}' params=' data-bs-dismiss="modal" aria-label="#i18n{portal.util.labelCancel}"' /> + @formGroup> + @tform> + @modalBody> +@modal> +<@modal id='updatePlanningMultiSlot' params='data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"'> + <@modalBody> + <@tform action="jsp/admin/plugins/appointment/ManageSpecificWeek.jsp"> + <@input type='hidden' name='action' value='doModifyListSlot' /> + <@input type='hidden' name='id_form' value='${appointmentform.idForm}' /> + <@input type='hidden' id='slotsData' name='slotsData' value='' /> + <@input type='hidden' id='date_of_display_multi' name='date_of_display' value='${date_of_display}' /> + <@formGroup labelKey='#i18n{appointment.modifySlot.labelSlotStatus}' helpKey='#i18n{appointment.modifySlot.labelOpenHelp}' rows=2> + <@radioButton orientation='inline' labelFor='shift_slot_open' id='shift_slot_open' labelKey='#i18n{appointment.modifySlot.labelOpen}' name='is_open' value='true' /> + <@radioButton orientation='inline' labelFor='shift_slot_close' id='shift_slot_close' labelKey='#i18n{appointment.modifySlot.labelClose}' name='is_open' value='false' /> + <@radioButton orientation='inline' labelFor='shift_slot_null' id='shift_slot_null' labelKey='#i18n{appointment.modifySlot.labelNoValue}' name='is_open' value='' checked=true /> + @formGroup> + <@formGroup labelFor='shift_slot' rows=2> + <@radioButton labelFor='var_cap' labelKey='#i18n{appointment.modifySlot.labelCapacityChange}' name='capacity' id='var_cap' checked=true value='var_cap' /> + <@radioButton labelFor='new_cap' labelKey='Nouvelle capacité' name='capacity' id='new_cap' value='new_cap' /> + <@input type='number' id='newCapacity' name='max_capacity' value='0' min=-99 max=99 /> + @formGroup> + <@formGroup rows=2> + <@button type='submit' color='primary' title='#i18n{portal.util.labelValidate}' /> + <@button color='secondary' title='#i18n{portal.util.labelCancel}' params=' data-bs-dismiss="modal" aria-label="#i18n{portal.util.labelCancel}"' /> + @formGroup> + @tform> + @modalBody> +@modal> + + + + +<#include "/admin/util/editor/editor.html" /> +<@initEditor type='comment' /> \ No newline at end of file diff --git a/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_typical_week.html b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_typical_week.html new file mode 100644 index 0000000..bad7f98 --- /dev/null +++ b/citelibre-rendezvous/webapp/WEB-INF/templates/admin/plugins/appointment/slots/manage_typical_week.html @@ -0,0 +1,324 @@ +<@appointmentTabs tab='typicalWeek' form=appointmentform context='slot'> +<@row> + <@columns md=3> + <@tform class='mb-3' action='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp' params='enctype="multipart/form-data"' > + <@input type='hidden' name='id_form' value='${appointmentform.idForm}' /> + <@input type='hidden' name='view_manageTypicalWeek' value='' /> + <@button type='submit' id='btn-new-typicalweek' buttonIcon='plus' title='#i18n{appointment.typicalWeek.buttonLabelCreate}' /> + @tform> + <#if listReservationRule??> + <#assign active=false > + <#assign idx=0 > + <@listGroup> + <#list listReservationRule as item> + <#if id_reservation_rule?number=item.idReservationRule?number><#assign active=true ><#else><#assign active=false >#if> + <@listGroupItem class='d-flex align-items-center justify-content-between' active=active> + <@icon style='circle-filled' params=' style="color:${item.color!};"' /> + <@link href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${appointmentform.idForm}&id_reservation_rule=${item.idReservationRule}' label='${item.name}' class='w-100 p-3' /> + <#if active=true> + <@tform type='inline' action='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek' id='listOfDates' params=' enctype="multipart/form-data" style="margin-top:-2px"'> + <@input type='hidden' name='id_form' value='${appointmentform.idForm}' /> + <@input type='hidden' name='id_reservation_rule' value='${item.idReservationRule}' /> + <@btnGroup> + <@button type='button' hideTitle=['all'] class='btn-editappsearch' buttonIcon='edit' title='#i18n{portal.util.labelModify}' /> + <@button type='submit' name='action_confirmRemoveParameter' title='#i18n{portal.util.labelDelete}' hideTitle=['all'] buttonIcon='trash' color='danger' /> + <@button type='submit' name='action_copyTypicalWeek' title='#i18n{appointment.manageAppointmentForms.labelCopy}' hideTitle=['all'] buttonIcon='copy' /> + @btnGroup> + @tform> + <#else> + <@span>@span> + #if> + @listGroupItem> + <#assign idx++ > + #list> + @listGroup> + #if> + @columns> + <@columns md=9> + + <@div id="appointment_search"> + <#if id_reservation_rule != 0 > + <@tform action='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp' params='enctype="multipart/form-data"' boxed=true class='mb-3'> + <@input type='hidden' id='is_multislot_appointment' name='is_multislot_appointment' value='${appointmentform.isMultislotAppointment?then("true", "false")}'/> + <@input type='hidden' id='bo_overbooking' name='bo_overbooking' value='${appointmentform.boOverbooking?then("true", "false")}'/> + <@fieldSet legend='#i18n{appointment.modifyAppointmentForm.titleAlterablesParameters}'> + <@formGroup labelFor='name' labelKey='#i18n{appointment.createAppointmentForm.labelName}' mandatory=true> + <@input type='text' name='name' id='name' value='${appointmentform.name!\'\'}' maxlength=50 /> + @formGroup> + <@formGroup labelFor='descriptionRule' labelKey='#i18n{appointment.createAppointmentForm.labelDescriptionRule}' mandatory=true> + <@input type='textarea' name='description_rule' id='description_rule' maxlength=255 >${appointmentform.descriptionRule!}@input> + @formGroup> + <#if !appointmentform.isMultislotAppointment > + <@formGroup labelFor='max_people_per_appointment' mandatory=true labelKey='#i18n{appointment.createAppointmentForm.labelMaxPeoplePerAppointment}' helpKey='#i18n{appointment.createAppointmentForm.labelMaxPeoplePerAppointment.help}' mandatory=true> + <@input type='number' name='max_people_per_appointment' id='max_people_per_appointment' value=appointmentform.maxPeoplePerAppointment!'' maxlength=3 /> + @formGroup> + #if> + @fieldSet> + <@formGroup labelFor='color' labelKey='#i18n{appointment.createAppointmentForm.labelColor}' mandatory=true> + <@input type='color' id='color' name='color' value=appointmentform.color!'#3769D9' /> + @formGroup> + <@formGroup> + <@button type='submit' name='action_modifyGlobalParameters' title='#i18n{portal.util.labelModify}' buttonIcon='check' /> + <@aButton href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${appointmentform.idForm}&id_reservation_rule=${id_reservation_rule}' buttonIcon='times' title='#i18n{portal.util.labelCancel}' color='btn-default' /> + @formGroup> + @tform> + #if> + + <#if canUpdateAdvancedParam > + <@tform action='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp' params='enctype="multipart/form-data"'> + <@input type='hidden' name='id_form' value='${appointmentform.idForm}' /> + <@input type='hidden' id='bo_overbooking' name='bo_overbooking' value='${appointmentform.boOverbooking?then("true", "false")}'/> + <@input type='hidden' id='is_multislot_appointment' name='is_multislot_appointment' value='${appointmentform.isMultislotAppointment?then("true", "false")}'/> + <@input type='hidden' id='enableMandatoryEmail' name='enableMandatoryEmail' value='${appointmentform.enableMandatoryEmail?then("true", "false")}'/> + <@fieldSet legend='#i18n{appointment.modifyAppointmentForm.titleStructuralsParameters}'> + <#if id_reservation_rule == 0 > + <@formGroup labelFor='name' labelKey='#i18n{appointment.createAppointmentForm.labelName}' mandatory=true> + <@input type='text' name='name' id='name' value='${appointmentform.name!\'\'}' maxlength=50 /> + @formGroup> + <@formGroup labelFor='descriptionRule' labelKey='#i18n{appointment.createAppointmentForm.labelDescriptionRule}' mandatory=true> + <@input type='textarea' name='description_rule' id='description_rule' maxlength=255 >${appointmentform.descriptionRule!}@input> + @formGroup> + <#if !appointmentform.isMultislotAppointment > + <@formGroup labelFor='max_people_per_appointment' mandatory=true labelKey='#i18n{appointment.createAppointmentForm.labelMaxPeoplePerAppointment}' helpKey='#i18n{appointment.createAppointmentForm.labelMaxPeoplePerAppointment.help}' mandatory=true> + <@input type='number' name='max_people_per_appointment' id='max_people_per_appointment' value=appointmentform.maxPeoplePerAppointment!'' maxlength=3 /> + @formGroup> + #if> + <@formGroup labelFor='color' labelKey='#i18n{appointment.createAppointmentForm.labelColor}' mandatory=true> + <@input type='color' id='color' name='color' value=appointmentform.color!'#3769D9' /> + @formGroup> + #if> + <@formGroup labelFor='max_capacity_per_slot' labelKey='#i18n{appointment.createAppointmentForm.labelMaxCapacityPerSlot}' helpKey='#i18n{appointment.createAppointmentForm.labelMaxCapacityPerSlot.help}' mandatory=true> + <@input type='number' name='max_capacity_per_slot' id='max_capacity_per_slot' value=appointmentform.maxCapacityPerSlot!'' maxlength=3 /> + @formGroup> + <@formGroup labelFor='time_start' labelKey='#i18n{appointment.createAppointmentForm.labelTimeStart}' helpKey='#i18n{appointment.createAppointmentForm.labelTimeStart.help}' mandatory=true> + <@inputGroup> + <@inputGroupItem type='text'> + <@icon style='clock' /> + @inputGroupItem> + <@input type='text' name='time_start' id='time_start' value=appointmentform.timeStart!'' /> + @inputGroup> + @formGroup> + <@formGroup labelFor='time_end' labelKey='#i18n{appointment.createAppointmentForm.labelTimeEnd}' helpKey='#i18n{appointment.createAppointmentForm.labelTimeEnd.help}' mandatory=true> + <@inputGroup> + <@inputGroupItem type='text'> + <@icon style='clock' /> + @inputGroupItem> + <@input type='text' name='time_end' id='time_end' value=appointmentform.timeEnd!'' /> + @inputGroup> + @formGroup> + <@formGroup labelFor='duration_appointments' labelKey='#i18n{appointment.createAppointmentForm.labelDurationAppointments}' helpKey='#i18n{appointment.createAppointmentForm.labelDurationAppointments.help}' mandatory=true> + <@input type='number' name='duration_appointments' id='duration_appointments' value=appointmentform.durationAppointments!'' maxlength=3 /> + @formGroup> + <@formGroup labelFor='is_open_monday'> + <@checkBox labelFor='is_open_monday' labelKey='#i18n{appointment.label.OpenMonday}' name='is_open_monday' id='is_open_monday' value='true' checked=appointmentform.isOpenMonday!false /> + @formGroup> + <@formGroup labelFor='is_open_tuesday'> + <@checkBox labelFor='is_open_tuesday' labelKey='#i18n{appointment.label.OpenTuesday}' name='is_open_tuesday' id='is_open_tuesday' value='true' checked=appointmentform.isOpenTuesday!false /> + @formGroup> + <@formGroup labelFor='is_open_wednesday'> + <@checkBox labelFor='is_open_wednesday' labelKey='#i18n{appointment.label.OpenWednesday}' name='is_open_wednesday' id='is_open_wednesday' value='true' checked=appointmentform.isOpenWednesday!false /> + @formGroup> + <@formGroup labelFor='is_open_thursday'> + <@checkBox labelFor='is_open_thursday' labelKey='#i18n{appointment.label.OpenThursday}' name='is_open_thursday' id='is_open_thursday' value='true' checked=appointmentform.isOpenThursday!false /> + @formGroup> + <@formGroup labelFor='is_open_friday'> + <@checkBox labelFor='is_open_friday' labelKey='#i18n{appointment.label.OpenFriday}' name='is_open_friday' id='is_open_friday' value='true' checked=appointmentform.isOpenFriday!false /> + @formGroup> + <@formGroup labelFor='is_open_saturday'> + <@checkBox labelFor='is_open_saturday' labelKey='#i18n{appointment.label.OpenSaturday}' name='is_open_saturday' id='is_open_saturday' value='true' checked=appointmentform.isOpenSaturday!false /> + @formGroup> + <@formGroup labelFor='is_open_sunday'> + <@checkBox labelFor='is_open_sunday' labelKey='#i18n{appointment.label.OpenSunday}' name='is_open_sunday' id='is_open_sunday' value='true' checked=appointmentform.isOpenSunday!false /> + @formGroup> + @fieldSet> + <@formGroup> + <#if id_reservation_rule != 0 > + <@input type='hidden' name='action_modifyAdvancedParameters' value='' /> + <@button type='submit' title='#i18n{portal.util.labelModify}' buttonIcon='check' /> + <#else> + <@input type='hidden' name='action_createTypicalWeek' value='' /> + <@button type='submit' title='#i18n{portal.util.labelCreate}' buttonIcon='check' /> + #if> + <@input type='hidden' name='view_manageAppointmentForms' value='' /> + <@aButton href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${appointmentform.idForm}&id_reservation_rule=${id_reservation_rule}' buttonIcon='times' title='#i18n{portal.util.labelCancel}' color='btn-default' /> + @formGroup> + @tform> + #if> + @div> + <@div id="calendar">@div> + @columns> +@row> +@appointmentTabs> +<@modal id='updatePlanningSlot' params='data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"'> + <@modalBody> + <@tform action='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp'> + <@messages errors=errors infos=infos/> + <@input type="hidden" name="action" value="doModifyTimeSlot" /> + <@input type="hidden" id="idTimeSlot" name="id_time_slot" value="" /> + <@input type="hidden" id="idWorkingDay" name="id_working_day" value="" /> + <@input type="hidden" id="timeForm" name="id_form" value="${appointmentform.idForm}" /> + <@input type="hidden" name="id_reservation_rule" value="${id_reservation_rule}" /> + <@formGroup labelFor='timeIsOpen9' labelKey='#i18n{appointment.modifySlot.labelOpen}' helpKey='#i18n{appointment.modifySlot.labelOpenHelp}' rows=2> + <@checkBox name='is_open' id='timeIsOpen' value='true' /> + @formGroup> + <@formGroup labelFor='maxCapacity' labelKey='#i18n{appointment.modifySlot.labelMaxCapacityForThisSlot}' mandatory=true rows=2> + <@input type='number' name='max_capacity' id='maxCapacity' value='' min=0 max=99 maxlength=3 /> + @formGroup> + <@formGroup labelKey='#i18n{appointment.model.entity.appointmentform.attribute.timeStart}' rows=2> + <@staticText id='timeStart'>@staticText> + @formGroup> + <@formGroup labelFor='timeEnd' labelKey='#i18n{appointment.model.entity.appointmentform.attribute.timeEnd}' helpKey='#i18n{appointment.modifySlot.helpModifyEndSlot}' mandatory=true rows=2> + <@inputGroup> + <@input type='text' id='timeEnd' name='ending_time' value='' /> + <@inputGroupItem type='text'> + <@icon style='clock-o' /> + @inputGroupItem> + @inputGroup> + @formGroup> + <@formGroup labelFor='shift_slot' rows=2> + <@radioButton labelFor='shift_slotok' labelKey='#i18n{appointment.modifySlot.notShiftSlot}' id='shift_slotok' name='shift_slot' value='false' checked=true /> + <@radioButton labelFor='shift_slotnok' labelKey='#i18n{appointment.modifySlot.shiftSlot}' id='shift_slotnok' name='shift_slot' value='true' /> + @formGroup> + <@formGroup rows=2> + <@button type='submit' title='#i18n{portal.util.labelModify}' buttonIcon='check' /> + <@aButton href='jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp?view=manageTypicalWeek&id_form=${appointmentform.idForm}&id_reservation_rule=${id_reservation_rule}' buttonIcon='times' title='#i18n{portal.util.labelCancel}' color='btn-default' /> + @formGroup> + @tform> + @modalBody> +@modal> +<@modal id='updatePlanningMultiSlot' params='data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1"'> + <@modalBody> + <@tform action="jsp/admin/plugins/appointment/ManageAppointmentSlots.jsp"> + <@input type="hidden" name="action" value="doModifyListTimeSlot" /> + <@input type="hidden" id="timeForm" name="id_form" value="${appointmentform.idForm}" /> + <@input type="hidden" name="id_reservation_rule" value="${id_reservation_rule}" /> + <@input type="hidden" id="timeSlotData" name="timeSlotData" value="" /> + <@formGroup labelKey='#i18n{appointment.modifySlot.labelSlotStatus}' helpKey='#i18n{appointment.modifySlot.labelOpenHelp}' rows=2> + <@radioButton orientation='inline' labelFor='shift_slot_open' id='shift_slot_open' labelKey='#i18n{appointment.modifySlot.labelOpen}' name='is_open' value='true' /> + <@radioButton orientation='inline' labelFor='shift_slot_close' id='shift_slot_close' labelKey='#i18n{appointment.modifySlot.labelClose}' name='is_open' value='false' /> + <@radioButton orientation='inline' labelFor='shift_slot_null' id='shift_slot_null' labelKey='#i18n{appointment.modifySlot.labelNoValue}' name='is_open' value='' checked=true /> + @formGroup> + <@formGroup rows=2> + <@radioButton labelFor='var_cap' labelKey='#i18n{appointment.modifySlot.labelCapacityChange}' name='capacity' id='var_cap' checked=true value='var_cap' /> + <@radioButton labelFor='new_cap' labelKey='Nouvelle capacité' name='capacity' id='new_cap' value='new_cap' /> + <@input type='number' id='newCapacity' name='max_capacity' value='0' min=-99 max=99 /> + @formGroup> + <@formGroup rows=2> + <@button type='submit' color='primary' title='#i18n{portal.util.labelValidate}' /> + <@button color='secondary' title='#i18n{portal.util.labelCancel}' params='data-bs-dismiss="modal" aria-label="#i18n{portal.util.labelCancel}"' /> + @formGroup> + @tform> + @modalBody> +@modal> +<@getDatePickerBootstrap idField="date_of_modification" language=language /> + + + +<#include "/admin/util/editor/editor.html" /> +<@initEditor type='comment' /> \ No newline at end of file