1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-13 23:48:55 +01:00
fab-manager/app/frontend/templates/shared/signupModal.html

327 lines
19 KiB
HTML
Raw Normal View History

2015-05-05 03:10:25 +02:00
<div class="modal-header">
2016-03-23 18:39:41 +01:00
<img ng-src="{{logoBlack.custom_asset_file_attributes.attachment_url}}" alt="{{logo.custom_asset_file_attributes.attachment}}" class="modal-logo"/>
<i class="fa fa-times close-modal-button" ng-click="dismiss()"></i>
<h1 translate>{{ 'app.public.common.create_your_account' }}</h1>
2015-05-05 03:10:25 +02:00
</div>
<div class="">
2016-03-23 18:39:41 +01:00
<uib-alert ng-repeat="alert in alerts" type="{{alert.type}}" close="closeAlert($index)">{{alert.msg}}</uib-alert>
2015-05-05 03:10:25 +02:00
<div class="well m-b-n">
2019-03-26 17:20:10 +01:00
<form role="form" name="signupForm" class="form-horizontal signup-form" novalidate autocomplete="off" ng-keydown="signupForm.$valid && $event.which == 13 && ok()">
2015-05-05 03:10:25 +02:00
<div class="form-group" ng-class="{'has-error': signupForm.gender.$dirty && signupForm.gender.$invalid}">
<div class="col-sm-12">
<label class="checkbox-inline">
2016-03-23 18:39:41 +01:00
<input type="radio"
name="gender"
ng-model="user.statistic_profile_attributes.gender"
2016-03-23 18:39:41 +01:00
value="true"
ng-required="genderRequired"/> {{ 'app.public.common.man' | translate }}
2015-05-05 03:10:25 +02:00
</label>
<label class="checkbox-inline">
2016-03-23 18:39:41 +01:00
<input type="radio"
name="gender"
ng-model="user.statistic_profile_attributes.gender"
value="false"/> {{ 'app.public.common.woman' | translate }}
2015-05-05 03:10:25 +02:00
</label>
2023-07-21 15:07:29 +02:00
<div class="fab-tooltip">
<span class="trigger"><i class="fa fa-question-circle"></i></span>
<div class="content" translate="">{{ 'app.public.common.used_for_statistics' }}</div>
</div>
<span ng-show="genderRequired" class="exponent m-l-xs"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.gender.$dirty && signupForm.gender.$error.required" translate>{{ 'app.public.common.gender_is_required'}}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group names-row">
2015-05-05 03:10:25 +02:00
<div class="col-sm-6" ng-class="{'has-error': signupForm.first_name.$dirty && signupForm.first_name.$invalid}">
<input type="text"
2016-03-23 18:39:41 +01:00
name="first_name"
ng-model="user.profile_attributes.first_name"
class="form-control"
placeholder="{{ 'app.public.common.your_first_name' | translate }}"
2016-03-23 18:39:41 +01:00
required>
2023-07-21 15:07:29 +02:00
<span class="exponent m-l-xs"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.first_name.$dirty && signupForm.first_name.$error.required" translate>{{ 'app.public.common.first_name_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
<div class="m-b visible-xs"></div>
<div class="col-sm-6" ng-class="{'has-error': signupForm.last_name.$dirty && signupForm.last_name.$invalid}">
<input type="text"
2016-03-23 18:39:41 +01:00
name="last_name"
ng-model="user.profile_attributes.last_name"
class="form-control"
placeholder="{{ 'app.public.common.your_surname' | translate }}"
2016-03-23 18:39:41 +01:00
required>
2023-07-21 15:07:29 +02:00
<span class="exponent m-l-xs"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.last_name.$dirty && signupForm.last_name.$error.required" translate>{{ 'app.public.common.surname_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.username.$dirty && signupForm.username.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-user"></i></span>
<input type="text"
2016-03-23 18:39:41 +01:00
name="username"
ng-model="user.username"
class="form-control"
placeholder="{{ 'app.public.common.your_pseudonym' | translate }}"
2016-03-23 18:39:41 +01:00
required>
2015-05-05 03:10:25 +02:00
</div>
2023-07-21 15:07:29 +02:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.username.$dirty && signupForm.username.$error.required" translate>{{ 'app.public.common.pseudonym_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.email.$dirty && signupForm.email.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
2016-03-23 18:39:41 +01:00
<input type="email"
name="email"
ng-pattern="/^[^@]+@[^\.]+\..{2,}$/"
2016-03-23 18:39:41 +01:00
ng-model="user.email"
class="form-control"
placeholder="{{ 'app.public.common.your_email_address' | translate }}"
2016-03-23 18:39:41 +01:00
required>
2015-05-05 03:10:25 +02:00
</div>
2023-07-21 15:07:29 +02:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.email.$dirty && signupForm.email.$error.required" translate>{{ 'app.public.common.email_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.password.$dirty && signupForm.password.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-key"></i></span>
2016-03-23 18:39:41 +01:00
<input type="password"
name="password"
ng-model="user.password"
class="form-control"
placeholder="{{ 'app.public.common.your_password' | translate }}"
2016-03-23 18:39:41 +01:00
required
ng-minlength="12">
2015-05-05 03:10:25 +02:00
</div>
2019-03-26 17:20:10 +01:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.password.$dirty && signupForm.password.$error.required" translate>{{ 'app.public.common.password_is_required' }}</span>
<span class="help-block" ng-show="signupForm.password.$dirty && signupForm.password.$error.minlength" translate>{{ 'app.public.common.password_is_too_short' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.password_confirmation.$dirty && signupForm.password_confirmation.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-key"></i></span>
2016-03-23 18:39:41 +01:00
<input type="password"
name="password_confirmation"
ng-model="user.password_confirmation"
class="form-control"
placeholder="{{ 'app.public.common.type_your_password_again' | translate }}"
required ng-minlength="8"
match="user.password">
2015-05-05 03:10:25 +02:00
</div>
2019-03-26 17:20:10 +01:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.password_confirmation.$dirty && signupForm.password_confirmation.$error.required" translate>{{ 'app.public.common.password_confirmation_is_required' }}</span>
<span class="help-block" ng-show="signupForm.password_confirmation.$error.match" translate>{{ 'app.public.common.password_does_not_match_with_confirmation' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
<div class="form-group">
<div class="col-sm-12 checkbox-group">
<input type="checkbox"
name="organization"
id="organization"
ng-model="user.organization"
value="false"/>
<label for="organization" translate>{{ 'app.public.common.i_am_an_organization' }}</label>
2023-07-21 15:07:29 +02:00
<div class="fab-tooltip m-l-xs">
<span class="trigger"><i class="fa fa-question-circle"></i></span>
<div class="content" translate="">{{ 'app.shared.user_profile_form.declare_organization_help' }}</div>
</div>
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-show="user.organization" ng-class="{'has-error': signupForm.organization_name.$dirty && signupForm.organization_name.$invalid}">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-building-o"></i></span>
<input type="text"
name="organization_name"
ng-model="user.invoicing_profile_attributes.organization_attributes.name"
class="form-control"
placeholder="{{ 'app.public.common.name_of_your_organization' | translate }}"
ng-required="user.organization">
</div>
2023-07-21 15:07:29 +02:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.organization_name.$dirty && signupForm.organization_name.$error.required" translate>{{ 'app.public.common.organization_name_is_required' }}</span>
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-show="user.organization" ng-class="{'has-error': signupForm.organization_address.$dirty && signupForm.organization_address.$invalid}">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-map-marker"></i></span>
<input type="text"
name="organization_address"
ng-model="user.invoicing_profile_attributes.organization_attributes.address_attributes.address"
class="form-control"
placeholder="{{ 'app.public.common.address_of_your_organization' | translate }}"
ng-required="user.organization">
</div>
2023-07-21 15:07:29 +02:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.organization_address.$dirty && signupForm.organization_address.$error.required" translate>{{ 'app.public.common.organization_address_is_required' }}</span>
</div>
</div>
<div ng-if="user.organization" ng-repeat="(i, profileCustomField) in profileCustomFields">
<div class="form-group required-row" ng-class="{'has-error': signupForm.user_profile_custom_fields{{i}}.$dirty && signupForm.user_profile_custom_fields{{i}}.$invalid}">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-building-o"></i></span>
<input type="text"
name="user_profile_custom_fields{{i}}"
ng-model="user.invoicing_profile_attributes.user_profile_custom_fields_attributes[i].value"
class="form-control"
placeholder="{{profileCustomField.label}}"
ng-required="profileCustomField.required">
</div>
2023-07-21 15:07:29 +02:00
<span ng-show="profileCustomField.required" class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.user_profile_custom_fields{{i}}.$dirty && signupForm.user_profile_custom_fields{{i}}.$error.required" translate translate-values="{FEILD: profileCustomField.label}">{{ 'app.public.common.profile_custom_field_is_required' }}</span>
</div>
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.group_id.$dirty && signupForm.group_id.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div>
<select ng-model="user.group_id" class="form-control" name="group_id" ng-options="g.id as g.name for g in enabledGroups" required>
<option value="" translate>{{ 'app.public.common.your_user_s_profile' }}</option>
2015-05-05 03:10:25 +02:00
</select>
2023-07-21 15:07:29 +02:00
<span class="exponent exponent-select"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
2015-05-05 03:10:25 +02:00
</div>
<span class="help-block" ng-show="signupForm.group_id.$dirty && signupForm.group_id.$error.required" translate>{{ 'app.public.common.user_s_profile_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
<div class="alert alert-warning" ng-show="hasProofOfIdentityTypes(user.group_id)">
<p class="text-sm">
<i class="fa fa-warning"></i>
<span translate translate-values="{GROUP: groupName(user.group_id)}">{{ 'app.public.common.user_supporting_documents_required' }}</span>
</p>
</div>
2015-05-05 03:10:25 +02:00
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.birthday.$dirty && signupForm.birthday.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-calendar-o"></i> </span>
<input type="text"
class="form-control"
name="birthday"
ng-model="user.statistic_profile_attributes.birthday"
2016-03-23 18:39:41 +01:00
uib-datepicker-popup="{{datePicker.format}}"
2015-05-05 03:10:25 +02:00
datepicker-options="datePicker.options"
is-open="datePicker.opened"
placeholder="{{ 'app.public.common.birth_date' | translate }}"
2015-05-05 03:10:25 +02:00
ng-click="openDatePicker($event)"
ng-required="birthdayRequired"/>
2015-05-05 03:10:25 +02:00
</div>
<span ng-show="birthdayRequired" class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span class="help-block" ng-show="signupForm.birthday.$dirty && signupForm.birthday.$error.required" translate>{{ 'app.public.common.birth_date_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
2019-03-26 17:20:10 +01:00
<div class="form-group required-row" ng-class="{'has-error': signupForm.phone.$dirty && signupForm.phone.$invalid}">
2015-05-05 03:10:25 +02:00
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-phone"></i> </span>
2016-03-23 18:39:41 +01:00
<input ng-model="user.profile_attributes.phone"
type="text"
name="phone"
class="form-control"
placeholder="{{ 'app.public.common.phone_number' | translate }}"
ng-required="phoneRequired">
2015-05-05 03:10:25 +02:00
</div>
<span ng-show="phoneRequired" class="exponent help-cursor" title="{{ 'app.public.common.used_for_reservation' | translate }}">
<i class="fa fa-asterisk" aria-hidden="true"></i>
</span>
<span class="help-block" ng-show="signupForm.phone.$dirty && signupForm.phone.$error.required" translate>{{ 'app.public.common.phone_number_is_required' }}</span>
2015-05-05 03:10:25 +02:00
</div>
</div>
<div class="form-group required-row">
<div class="col-sm-12">
<div class="input-group">
<span class="input-group-addon"><i class="fa fa-map-marker"></i> </span>
<input type="text"
name="address"
ng-model="user.invoicing_profile_attributes.address_attributes.address"
class="form-control"
placeholder="{{ 'app.public.common.address' | translate }}"
ng-required="addressRequired"/>
</div>
<span ng-show="addressRequired" class="exponent help-cursor" title="{{ 'app.public.common.used_for_invoicing' | translate }}">
<i class="fa fa-asterisk" aria-hidden="true"></i>
</span>
<span class="help-block" ng-show="signupForm.address.$dirty && signupForm.address.$error.required" translate>{{ 'app.public.common.address_is_required' }}</span>
</div>
</div>
2015-05-05 03:10:25 +02:00
<div class="form-group" ng-class="{'has-error': signupForm.is_allow_contact.$dirty && signupForm.is_allow_contact.$invalid}">
<div class="col-sm-12 checkbox-group">
2016-03-23 18:39:41 +01:00
<input type="checkbox"
name="is_allow_contact"
id="is_allow_contact"
2016-03-23 18:39:41 +01:00
ng-model="user.is_allow_contact"
2023-07-21 15:07:29 +02:00
value="false"/>
<label for="is_allow_contact" translate>{{ 'app.public.common.i_authorize_Fablab_users_registered_on_the_site_to_contact_me' }}</label>
<div class="fab-tooltip">
<span class="trigger"><i class="fa fa-question-circle"></i></span>
<div class="content" translate="">{{ 'app.public.common.public_profile' }}</div>
</div>
2015-05-05 03:10:25 +02:00
</div>
</div>
<div class="form-group" ng-class="{'has-error': signupForm.is_allow_newsletter.$dirty && signupForm.is_allow_newsletter.$invalid}">
<div class="col-sm-12 checkbox-group">
<input type="checkbox"
name="is_allow_newsletter"
id="is_allow_newsletter"
ng-model="user.is_allow_newsletter"
2023-07-21 15:07:29 +02:00
value="false"/>
<label for="is_allow_newsletter" translate>{{ 'app.public.common.i_accept_to_receive_information_from_the_fablab' }}</label>
</div>
</div>
2016-03-23 18:39:41 +01:00
<div class="form-group" ng-class="{'has-error': signupForm.cgu.$dirty && signupForm.cgu.$invalid}" ng-show="cgu">
<div class="col-sm-12 checkbox-group">
2016-03-23 18:39:41 +01:00
<input type="checkbox"
name="cgu"
id="cgu"
2016-03-23 18:39:41 +01:00
ng-model="user.cgu"
2023-07-21 15:07:29 +02:00
value="false"
2016-03-23 18:39:41 +01:00
ng-required="cgu != null"/>
2019-03-26 17:20:10 +01:00
<label for="cgu">
<span translate>{{ 'app.public.common.i_ve_read_and_i_accept_' }}</span>
<a href="{{cgu.custom_asset_file_attributes.attachment_url}}" target="_blank" translate>{{ 'app.public.common._the_fablab_policy' }}</a>
2019-03-26 17:20:10 +01:00
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span></label>
2015-05-05 03:10:25 +02:00
</div>
</div>
<div vc-recaptcha
key="recaptchaSiteKey"
class="flex-center"
ng-model="user.recaptcha"
ng-if="recaptchaSiteKey">
</div>
2019-03-26 17:20:10 +01:00
<span class="info-required">
<span class="exponent"><i class="fa fa-asterisk" aria-hidden="true"></i></span>
<span translate>{{ 'app.public.common.field_required' }}</span>
2019-03-26 17:20:10 +01:00
</span>
2016-03-23 18:39:41 +01:00
<div ng-if="!cgu">
<input type="hidden" name="cgu" ng-model="user.cgu" value="true">
</div>
2015-05-05 03:10:25 +02:00
</form>
</div>
</div>
<div class="modal-footer no-padder">
2023-11-27 16:21:07 +01:00
<button class="fab-button is-secondary button-full" ng-click="ok()" ng-disabled="signupForm.$invalid" translate>{{ 'app.shared.buttons.confirm' }}</button>
2019-03-26 17:20:10 +01:00
</div>