1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-20 14:54:15 +01:00

Merge branch 'dev' for release 6.3.20

This commit is contained in:
Du Peng 2024-04-15 15:24:16 +02:00
commit 88e9b6f76e
19 changed files with 59 additions and 27 deletions

View File

@ -2,7 +2,15 @@
## Next release
## v6.3.20 2024 Avril 15
- improvement: hide gender in member create/edit form if not required
- Fix a bug: unable to update member's profile
- Fix a bug: unable to show machine/training picture
- updates translations
## v6.3.19 2024 Avril 9
- Fix a bug: user is blocked in complete profile page after login
## v6.3.18 2024 Avril 8

View File

@ -129,6 +129,7 @@ export const UserProfileForm: React.FC<UserProfileFormProps> = ({ action, size,
* Callback triggered when the form is submitted: process with the user creation or update.
*/
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
setIsSuccessfullySubmitted(false);
if (showTermsAndConditionsInput) {
// When the form is submitted, we consider that the user should have accepted the terms and conditions,
// so we mark the field as dirty, even if he doesn't touch it. Like that, the error message is displayed.
@ -137,6 +138,9 @@ export const UserProfileForm: React.FC<UserProfileFormProps> = ({ action, size,
return handleSubmit((data: User) => {
['events_reservations', 'space_reservations', 'training_reservations', 'machine_reservations', 'all_projects', 'invoices', 'subscribed_plan', 'subscription'].forEach(key => delete data[key]);
if (!data.password) {
['current_password', 'password', 'password_confirmation'].forEach(key => delete data[key]);
}
MemberAPI[action](data)
.then(res => {
reset(res);
@ -185,7 +189,9 @@ export const UserProfileForm: React.FC<UserProfileFormProps> = ({ action, size,
<div className="fields-group">
<div className="personnal-data">
<h4>{t('app.shared.user_profile_form.personal_data')}</h4>
<GenderInput register={register} disabled={isDisabled} required={fieldsSettings.get('gender_required') === 'true'} tooltip={t('app.shared.user_profile_form.used_for_statistics')} />
{fieldsSettings.get('gender_required') === 'true' &&
<GenderInput register={register} disabled={isDisabled} required={fieldsSettings.get('gender_required') === 'true'} tooltip={t('app.shared.user_profile_form.used_for_statistics')} />
}
<div className="names">
<FormInput id="profile_attributes.last_name"
register={register}

View File

@ -367,3 +367,11 @@ Application.Filters.filter('currency', [function ($locale) {
: new Intl.NumberFormat(Fablab.intl_locale, { style: 'currency', currency: Fablab.intl_currency }).format(amount);
};
}]);
Application.Filters.filter('encodeURI', [function () {
return function (str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
return '%' + c.charCodeAt(0).toString(16);
});
};
}]);

View File

@ -2,7 +2,7 @@
<h4 class="text-sm m-t-sm" translate>{{ 'app.public.home.latest_documented_projects' }}</h4>
<uib-carousel interval="5000" disable-animation="true" active="activeSlide">
<uib-slide class="h480 cover r" ng-repeat="p in lastProjects track by $index" index="$index" style="background-image:url('{{p.project_image}}');">
<uib-slide class="h480 cover r" ng-repeat="p in lastProjects track by $index" index="$index" style="background-image:url('{{p.project_image | encodeURI}}');">
<div class="carousel-caption">
<h1 class="title"><a ui-sref="app.public.projects_show({id:p.slug})">{{p.name}}</a></h1>
</div>

View File

@ -117,7 +117,7 @@
<div class="projects-list">
<span ng-show="projects && (projects.length == 0)"> {{ 'app.public.projects_list.project_search_result_is_empty' | translate }} </span>
<div class="project-card" ng-repeat="project in projects" ng-click="showProject(project)">
<div class="project-image" style="background-image: url({{project.project_image}});">
<div class="project-image" style="background-image: url('{{project.project_image | encodeURI}}');">
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:&#xf03e;/font:'Font Awesome 5 Free'/icon" bs-holder ng-if="!project.project_image">
</div>

View File

@ -1,6 +1,6 @@
<div class="row m-t">
<div class="col-sm-offset-3 col-sm-6">
<div class="form-group" ng-class="{'has-error': adminForm['admin[statistic_profile_attributes][gender]'].$dirty && adminForm['admin[statistic_profile_attributes][gender]'].$invalid}">
<div ng-if="genderRequired" class="form-group" ng-class="{'has-error': adminForm['admin[statistic_profile_attributes][gender]'].$dirty && adminForm['admin[statistic_profile_attributes][gender]'].$invalid}">
<label class="checkbox-inline btn btn-default">
<input type="radio"
name="admin[statistic_profile_attributes][gender]"

View File

@ -52,7 +52,7 @@
<div class="panel-heading picture" ng-if="!space.space_image_attributes" ng-click="showSpace(space)">
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:&#xf03e;/font:'Font Awesome 5 Free'/icon" bs-holder class="img-responsive">
</div>
<div class="panel-heading picture" style="background-image:url('{{space.space_image_attributes.attachment_url}}')" ng-if="space.space_image_attributes" ng-click="showSpace(space)">
<div class="panel-heading picture" style="background-image:url('{{space.space_image_attributes.attachment_url | encodeURI}}')" ng-if="space.space_image_attributes" ng-click="showSpace(space)">
</div>
<div class="panel-body">
<h1 class="text-center m-b">{{space.name}}</h1>

View File

@ -25,7 +25,7 @@
<div class="panel-heading picture" ng-if="!training.training_image_attributes" ng-click="showTraining(training)">
<img src="data:image/png;base64," data-src="holder.js/100%x100%/text:&#xf03e;/font:'Font Awesome 5 Free'/icon" bs-holder class="img-responsive">
</div>
<div class="panel-heading picture" style="background-image:url('{{training.training_image_attributes.attachment_url}}')" ng-if="training.training_image_attributes" ng-click="showTraining(training)">
<div class="panel-heading picture" style="background-image:url('{{training.training_image_attributes.attachment_url | encodeURI}}')" ng-if="training.training_image_attributes" ng-click="showTraining(training)">
</div>
<div class="panel-body">
<h1 class="m-b text-center">{{training.name}}</h1>

View File

@ -1189,6 +1189,7 @@ de:
delete_this_partner: "Möchten Sie diesen Partner wirklich löschen? Dies kann nicht rückgängig gemacht werden."
partner_successfully_deleted: "Partner erfolgreich gelöscht."
unable_to_delete_the_partner: "Partner konnte nicht gelöscht werden."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Zugehöriger Plan"
groups: "Gruppen"
tags: "Stichworte"
@ -1847,10 +1848,10 @@ de:
address_is_required: "Adresse ist erforderlich"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "External identifier"
external_id_info_html: "You can set up an external identifier for your users, which cannot be modified by the user himself."
enable_external_id: "Enable the external ID"

View File

@ -1189,6 +1189,7 @@ en:
delete_this_partner: "Do you really want to delete this partner? This cannot be undone."
partner_successfully_deleted: "Partner successfully deleted."
unable_to_delete_the_partner: "Unable to delete the partner."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Associated plan"
groups: "Groups"
tags: "Tags"
@ -1847,10 +1848,10 @@ en:
address_is_required: "Address is required"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "External identifier"
external_id_info_html: "You can set up an external identifier for your users, which cannot be modified by the user himself."
enable_external_id: "Enable the external ID"

View File

@ -1189,6 +1189,7 @@ es-MX:
delete_this_partner: "¿Realmente desea eliminar este socio? Esto no se puede deshacer."
partner_successfully_deleted: "Socio eliminado correctamente."
unable_to_delete_the_partner: "No se puede eliminar el socio."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Plan asociado"
groups: "Grupos"
tags: "Etiquetas"
@ -1847,10 +1848,10 @@ es-MX:
address_is_required: "Dirección requerida"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "Identificador externo"
external_id_info_html: "Puede establecer un identificador externo para sus usuarios, que no podrá ser modificado por el propio usuario."
enable_external_id: "Activar el ID externo"

View File

@ -1189,6 +1189,7 @@ es:
delete_this_partner: "¿Realmente desea eliminar este socio? Esto no se puede deshacer."
partner_successfully_deleted: "Socio eliminado correctamente."
unable_to_delete_the_partner: "No se puede eliminar el socio."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Plan asociado"
groups: "Grupos"
tags: "Etiquetas"
@ -1847,10 +1848,10 @@ es:
address_is_required: "Dirección requerida"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "Identificador externo"
external_id_info_html: "Puede establecer un identificador externo para sus usuarios, que no podrá ser modificado por el propio usuario."
enable_external_id: "Activar el ID externo"

View File

@ -1189,6 +1189,7 @@ fr:
delete_this_partner: "Voulez-vous vraiment supprimer ce partenaire ? Cette opération est irréversible."
partner_successfully_deleted: "Le partenaire a bien été supprimé."
unable_to_delete_the_partner: "Impossible de supprimer le partenaire."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossible d'enregistrer ce partenaire. Veuillez vérifier qu'il n'y a pas déjà un utilisateur avec le même email."
associated_plan: "Abonnement associé"
groups: "Groupes"
tags: "Étiquettes"
@ -1847,10 +1848,10 @@ fr:
address_is_required: "Adresse requise"
gender: "Genre"
gender_is_required: "Genre requis"
gender_required_info: "Vous pouvez définir si le genre doit être requis, lors de l'enregistrement d'un nouvel utilisateur sur Fab-manager."
gender_required_info: "Vous pouvez désactiver le genre afin quil ne soit plus demandé, lors de l'enregistrement d'un nouvel utilisateur sur Fab-manager."
birthday: "Date de naissance"
birthday_is_required: "Date de naissance requise"
birthday_required_info: "Vous pouvez définir si la date de naissance doit être requis, lors de l'enregistrement d'un nouvel utilisateur sur Fab-manager."
birthday_required_info: "Vous pouvez définir si la date de naissance doit être requise, lors de l'enregistrement d'un nouvel utilisateur sur Fab-manager."
external_id: "Identifiant externe"
external_id_info_html: "Vous pouvez configurer un identifiant externe pour vos utilisateurs, qui ne pourra pas être modifié par l'utilisateur lui-même."
enable_external_id: "Activer l'identifiant externe"

View File

@ -1189,6 +1189,7 @@ it:
delete_this_partner: "Vuoi davvero eliminare questo partner? Questo non può essere annullato."
partner_successfully_deleted: "Partner eliminato con successo."
unable_to_delete_the_partner: "Impossibile eliminare il partner."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Piano associato"
groups: "Gruppi"
tags: "Etichette"
@ -1847,10 +1848,10 @@ it:
address_is_required: "L'indirizzo è obbligatorio"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "Identificatore esterno"
external_id_info_html: "È possibile impostare un identificatore esterno per i propri utenti, che non può essere modificato dall'utente stesso."
enable_external_id: "Abilita l'ID esterno"

View File

@ -1189,6 +1189,7 @@
delete_this_partner: "Vil du virkelig slette denne partneren? Dette kan ikke angres."
partner_successfully_deleted: "Partneren ble slettet."
unable_to_delete_the_partner: "Kan ikke slette partneren."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Tilknyttet plan"
groups: "Grupper"
tags: "Etiketter"
@ -1847,10 +1848,10 @@
address_is_required: "Adresse er påkrevd"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "External identifier"
external_id_info_html: "You can set up an external identifier for your users, which cannot be modified by the user himself."
enable_external_id: "Enable the external ID"

View File

@ -1189,6 +1189,7 @@ pt:
delete_this_partner: "Você realmente deseja excluir este parceiro? Isso não pode ser desfeito."
partner_successfully_deleted: "Parceiro excluído com sucesso."
unable_to_delete_the_partner: "Não é possível excluir o parceiro."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Plano associado"
groups: "Grupos"
tags: "Tags"
@ -1847,10 +1848,10 @@ pt:
address_is_required: "Endereço é obrigatório"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "External identifier"
external_id_info_html: "You can set up an external identifier for your users, which cannot be modified by the user himself."
enable_external_id: "Enable the external ID"

View File

@ -1189,6 +1189,7 @@ sv:
delete_this_partner: "Vill du verkligen ta bort denna partner? Detta kan inte ångras."
partner_successfully_deleted: "Samarbetspartnern har tagits bort."
unable_to_delete_the_partner: "Det går inte att ta bort samarbetspartnern."
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this partner. Please check that there isn't already a user with the same email."
associated_plan: "Associerad plan"
groups: "Grupper"
tags: "Taggar"
@ -1847,10 +1848,10 @@ sv:
address_is_required: "Adress måste fyllas i"
gender: "Gender"
gender_is_required: "Gender required"
gender_required_info: "You can define if the gender should be required to register a new user on Fab-manager."
gender_required_info: "You can disable the gender so that it is no longer requested when registering a new user on Fab-manager."
birthday: "Date of birth"
birthday_is_required: "Date of birth required"
birthday_required_info: "You can define if the date of birth number should be required to register a new user on Fab-manager."
birthday_required_info: "You can disable the date of birth so that it is no longer requested when registering a new user on Fab-manager."
external_id: "Extern identifierare"
external_id_info_html: "Du kan ställa in en extern identifierare för dina användare, som inte kan ändras av användaren själv."
enable_external_id: "Aktivera externt ID"

View File

@ -1189,6 +1189,7 @@ zu:
delete_this_partner: "crwdns25606:0crwdne25606:0"
partner_successfully_deleted: "crwdns25608:0crwdne25608:0"
unable_to_delete_the_partner: "crwdns25610:0crwdne25610:0"
unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "crwdns38212:0crwdne38212:0"
associated_plan: "crwdns25612:0crwdne25612:0"
groups: "crwdns25614:0crwdne25614:0"
tags: "crwdns25616:0crwdne25616:0"
@ -1847,10 +1848,10 @@ zu:
address_is_required: "crwdns26680:0crwdne26680:0"
gender: "crwdns38184:0crwdne38184:0"
gender_is_required: "crwdns38186:0crwdne38186:0"
gender_required_info: "crwdns38188:0crwdne38188:0"
gender_required_info: "crwdns38208:0crwdne38208:0"
birthday: "crwdns38190:0crwdne38190:0"
birthday_is_required: "crwdns38192:0crwdne38192:0"
birthday_required_info: "crwdns38194:0crwdne38194:0"
birthday_required_info: "crwdns38210:0crwdne38210:0"
external_id: "crwdns32051:0crwdne32051:0"
external_id_info_html: "crwdns36043:0crwdne36043:0"
enable_external_id: "crwdns32055:0crwdne32055:0"

View File

@ -1,6 +1,6 @@
{
"name": "fab-manager",
"version": "6.3.19",
"version": "6.3.20",
"description": "Fab-manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.",
"keywords": [
"fablab",