1<#assign theme_images_path = request["theme-display"]["path-theme-images"] />
2<#assign formMessagesPath = request["theme-display"]["path-theme-images"]?replace("/images", "/html/form-messages.html") />
3
4<#assign traduzioni = {} />
5<#if Campo.getSiblings()?has_content>
6 <#list Campo.getSiblings() as cur_Campo>
7 <#if cur_Campo.getData()?has_content && cur_Campo.Etichetta.getData()?has_content>
8 <#assign traduzioni = traduzioni + {cur_Campo.getData(), cur_Campo.Etichetta.getData()} />
9 </#if>
10 </#list>
11</#if>
12
13<div id="greyLayout" class="affiGlassPane text-center" ng-show="submitting">
14 <i class="fa fa-spinner fa-spin fa-3x"> </i>
15</div>
16
17<div id="ptl-registrazione-step-1" class="hidden">
18
19 <h2 class="title-view registra">${traduzioni['LBL_TITOLO']}</h2>
20 <h2 ng-show="!utenzaNuovaTrovata" class="title-view conferma hidden">${traduzioni['LBL_TITOLO_CONFERMA']}</h2>
21 <h2 ng-show="utenzaNuovaTrovata" class="title-view conferma hidden">${traduzioni['LBL_TITOLO_AVVISO_UNISCI_UTENZE']}</h2>
22 <div id="LBL_ERRORE_INTERNO" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_INTERNO">${traduzioni['LBL_ERRORE_INTERNO']}</div>
23 <div id="LBL_MAIL_NOT_VALID" class="portlet-msg-error" role="alert" ng-show="LBL_MAIL_NOT_VALID">${traduzioni['LBL_MAIL_NOT_VALID']}</div>
24 <div id="LBL_ERRORE_UTENTE_PRESENTE" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_UTENTE_PRESENTE">${traduzioni['LBL_ERRORE_UTENTE_PRESENTE']}</div>
25 <div id="LBL_ERRORE_RECUPERO_BENEFICIARIO" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_RECUPERO_BENEFICIARIO">${traduzioni['LBL_ERRORE_RECUPERO_BENEFICIARIO']}</div>
26 <div id="LBL_ERRORE_PRODOTTO_REGISTRED" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_PRODOTTO_REGISTRED">${traduzioni['LBL_ERRORE_PRODOTTO_REGISTRED']}</div>
27 <div id="LBL_ERRORE_PRODOTTO_REGISTRED_ALTRO_CIRCUITO" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_PRODOTTO_REGISTRED_ALTRO_CIRCUITO">${traduzioni['LBL_ERRORE_PRODOTTO_REGISTRED_ALTRO_CIRCUITO']}</div>
28 <div id="LBL_ERRORE_UTENTE_NON_CONFERMATO" class="portlet-msg-info" role="alert" ng-show="LBL_ERRORE_UTENTE_NON_CONFERMATO">${traduzioni['LBL_ERRORE_UTENTE_NON_CONFERMATO']}</div>
29 <div id="LBL_ERRORE_CODICE_FISCALE" class="portlet-msg-error" role="alert" ng-show="LBL_ERRORE_CODICE_FISCALE">${traduzioni['LBL_ERRORE_CODICE_FISCALE']}</div>
30 <div class="alert alert-error" role="alert" ng-show="LBL_PASSWORD_NO_MATCH">${traduzioni['LBL_PASSWORD_NO_MATCH']}</div>
31 <div id="LBL_SUCCESSO_FORM" class="portlet-msg-info alert alert-success" role="status" ng-show="LBL_SUCCESSO_FORM">${traduzioni['LBL_SUCCESSO_FORM']}</div>
32
33 <div ng-show="!LBL_SUCCESSO_FORM&&!LBL_ERRORE_UTENTE_NON_CONFERMATO">
34
35 <div class="row registra">
36 <div class="col-sm-12 reseller-hidden">
37 <div class="alert alert-success">
38 <p>${traduzioni['LBL_VECCHIE_CREDENZIALI']} <a href="/web/portale-beneficiari/login?p_p_id=58&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=2&_58_struts_action=%2Flogin%2Fforgot_password">${traduzioni['LBL_FORGOT_PASSWORD_2']}</a></p>
39 <div class="row">
40 <div class="col-sm-4 buttons pull-right">
41 <a type="button" class="btn btn-primary" href="/web/portale-beneficiari/login">${traduzioni['LBL_ACCEDI']}</a>
42 </div>
43 </div>
44 </div>
45 </div>
46 </div>
47
48 <div class="row registra">
49 <div class="col-sm-12">
50 <p>${traduzioni['LBL_DESCRIZIONE']}</p>
51 </div>
52 </div>
53
54 <div ng-show="!utenzaNuovaTrovata" class="row conferma hidden">
55 <div class="col-sm-12">
56 <p>${traduzioni['LBL_DESCRIZIONE_CONFERMA']}</p>
57 </div>
58 </div>
59
60 <#-- <div class="row registra">
61 <div class="social-logins">
62 <div class="col-sm-3 social-login fb">
63 <a href="#">
64 <img class="pull-left" alt="" src="${theme_images_path}/social-icons/fb-icon.svg" />
65 <p class="ralewayregular">${traduzioni['LBL_FACEBOOK']}</p>
66 </a>
67 </div>
68 <div class="col-sm-3 social-login tw">
69 <a href="#">
70 <img class="pull-left alt="" src="${theme_images_path}/social-icons/tw-icon.svg" />
71 <p class="ralewayregular">${traduzioni['LBL_TWITTER']}</p>
72 </a>
73 </div>
74 <div class="col-sm-3 social-login gp">
75 <a href="#">
76 <img class="pull-left alt="" src="${theme_images_path}/social-icons/gp-icon.svg" />
77 <p class="ralewayregular">${traduzioni['LBL_GOOGLEPLUS']}</p>
78 </a>
79 </div>
80 <div class="col-sm-3 social-login in">
81 <a href="#">
82 <img class="pull-left alt="" src="${theme_images_path}/social-icons/in-icon.svg" />
83 <p class="ralewayregular">${traduzioni['LBL_LINKEDIN']}</p>
84 </a>
85 </div>
86 </div>
87 </div> -->
88
89
90 <div>
91
92 <div class="row conferma" ng-show="utenzaNuovaTrovata">
93 <div class="col-sm-12">
94 <h5 class="section-title">${traduzioni['LBL_TITOLO_AVVISO_UNISCI_UTENZE_1']}</h5>
95 <p>${traduzioni['LBL_AVVISO_UNISCI_UTENZE']} <b>{{ email }} ${traduzioni['LBL_AVVISO_UNISCI_UTENZE_2']}</b> ${traduzioni['LBL_AVVISO_UNISCI_UTENZE_3']}</p>
96 <p><b>${traduzioni['LBL_AVVISO_UNISCI_UTENZE_4']}</b> ${traduzioni['LBL_AVVISO_UNISCI_UTENZE_5']}</p>
97 </div>
98 </div>
99
100 <#-- <h5 class="section-title">${traduzioni['LBL_SEZIONE_ACCESSO']}</h5> -->
101
102 <div class="row conferma" ng-show="!utenzaNuovaTrovata">
103 <div class="col-sm-12">
104 <div class="alert alert-success" role="status">
105 <p>${traduzioni['LBL_PROSSIMO_ACCESSO']}</p>
106 <p><span class="ralewaybold">${traduzioni['LBL_AVVISO_EMAIL']}</span></p>
107 </div>
108 </div>
109 </div>
110
111 <div class="row">
112 <div class="col-sm-12">
113 <div class="form-group" ng-class="{ 'has-error' : userForm.email.$invalid && (!userForm.email.$pristine || submitted) }">
114 <label for="email">
115 ${traduzioni['LBL_EMAIL']}
116 <span class="asterisk" ng-show="!utenzaNuovaTrovata"> *</span>
117 </label>
118 <input type="email" class="form-control" id="email" name="email" ng-model="email" ng-maxlength="75" required ng-readonly="utenzaNuovaTrovata" <#-- ng-blur="conferma == 1 && !utenzaNuovaTrovata && checkEsistenzaUtenza($event)" -->>
119 <div class="help-block" ng-messages="userForm.email.$error" ng-if="submitted && !userForm.email.$pristine">
120 <div ng-messages-include="${formMessagesPath}"></div>
121 </div>
122 </div>
123 </div>
124 </div>
125
126 <div class="row hidden" hidden>
127 <div class="col-sm-1">
128 <div class="form-group" ng-class="{ 'has-error' : userForm.unisciutenze.$invalid && (!userForm.unisciutenze.$pristine || submitted) }">
129 <label for="unisciutenze">
130 ${traduzioni['LBL_UNISCI_UTENZE']!"LBL_UNISCI_UTENZE"}
131 <span class="asterisk"> *</span>
132 </label>
133 <input type="checkbox" hidden class="form-control hidden" id="unisciutenze" name="unisciutenze" ng-model="utenzaNuovaTrovata" ng-required="utenzaNuovaTrovata" readonly>
134 <div class="help-block" ng-messages="userForm.unisciutenze.$error" ng-if="submitted && !userForm.unisciutenze.$pristine">
135 <div ng-messages-include="${formMessagesPath}"></div>
136 </div>
137 </div>
138 </div>
139 </div>
140
141 <div class="row conferma" ng-show="!utenzaNuovaTrovata">
142 <div class="col-sm-12">
143 <div class="alert alert-success" role="status">
144 <p>${traduzioni['LBL_AVVISO_PASSWORD']} <span class="ralewaybold">${traduzioni['LBL_AVVISO_PASSWORD_2']}</span></p>
145 </div>
146 </div>
147 </div>
148
149 <div class="row">
150 <div ng-class="{ 'col-sm-6' : !utenzaNuovaTrovata , 'col-sm-12' : utenzaNuovaTrovata }" ng-show="!utenzaNuovaTrovata">
151 <div class="form-group" ng-class="{ 'has-error' : userForm.password.$invalid && !userForm.password.$pristine }">
152 <label for="password">
153 ${traduzioni['LBL_PASSWORD']}
154 <i class="fa fa-info-circle" ng-show="!utenzaNuovaTrovata" title="${traduzioni['LBL_INFO_PASSWORD']}" data-toggle="tooltip" tooltip></i>
155 <i class="fa fa-info-circle" ng-show="utenzaNuovaTrovata" title="${traduzioni['LBL_INFO_PASSWORD_TITOLARI']}" data-toggle="tooltip" tooltip></i>
156 <span class="asterisk"> *</span>
157 </label>
158 <input type="password" class="form-control" id="password" name="password" ng-model="password" ng-minlength="{{ !utenzaNuovaTrovata ? 8 : 1 }}" ng-maxlength="20" <#-- ng-pattern="/^(?=.*\d)(?=.*[a-z]).{8,20}$/i" --> <#-- c -->rpattern="/^(?=.{8,})(?!.*[\s])(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[_.!@$*=\-?]).*$/" <#-- condition="{{ !utenzaNuovaTrovata }}" --> ng-required="!utenzaNuovaTrovata" autocomplete="off">
159 <div class="help-block" ng-messages="userForm.password.$error" ng-if="submitted && !userForm.password.$pristine">
160 <div ng-messages-include="${formMessagesPath}"></div>
161 </div>
162 </div>
163 </div>
164 <div class="col-sm-6" ng-show="!utenzaNuovaTrovata">
165 <div class="form-group" ng-class="{ 'has-error' : userForm.confermapassword.$invalid && !userForm.confermapassword.$pristine }">
166 <label for="confermapassword">
167 ${traduzioni['LBL_RIPETI_PASSWORD']}
168 <i class="fa fa-info-circle" title="${traduzioni['LBL_INFO_PASSWORD']}" data-toggle="tooltip" tooltip></i>
169 <span class="asterisk"> *</span>
170 </label>
171 <input type="password" class="form-control" id="confermapassword" name="confermapassword" ng-model="confermaPassword" ng-disabled="userForm.password.$invalid" compare-to="password" ng-required="!utenzaNuovaTrovata" autocomplete="off">
172 <div class="help-block" ng-messages="userForm.confermapassword.$error" ng-if="submitted && userForm.password.$valid && !userForm.confermapassword.$pristine">
173 <div ng-messages-include="${formMessagesPath}"></div>
174 </div>
175 </div>
176 </div>
177 <div class="col-sm-12" ng-show="utenzaNuovaTrovata">
178 <div class="form-group" ng-class="{ 'has-error' : userForm.passwordunisci.$invalid && !userForm.passwordunisci.$pristine }">
179 <label for="passwordunisci">
180 ${traduzioni['LBL_PASSWORD']}
181 <i class="fa fa-info-circle" title="${traduzioni['LBL_INFO_PASSWORD_TITOLARI']}" data-toggle="tooltip" tooltip></i>
182 <#-- <span class="asterisk"> *</span> -->
183 </label>
184 <input type="password" class="form-control" id="passwordunisci" name="passwordunisci" ng-model="passwordunisci" ng-required="utenzaNuovaTrovata" readonly autocomplete="off">
185 <div class="help-block" ng-messages="userForm.passwordunisci.$error" ng-if="submitted && userForm.password.$valid && !userForm.passwordunisci.$pristine">
186 <div ng-messages-include="${formMessagesPath}"></div>
187 </div>
188 </div>
189 </div>
190 </div>
191 <div class="row">
192 <div class="col-sm-12" ng-show="!utenzaNuovaTrovata">
193 <em>${traduzioni['LBL_INFO_PASSWORD_SHORT']}</em>
194 </div>
195 <div class="col-sm-12 text-right" ng-show="utenzaNuovaTrovata">
196 <em>${traduzioni['LBL_FORGOT_PASSWORD']}<#-- <a href="/login?p_p_id=58&p_p_lifecycle=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-1&p_p_col_count=2&_58_struts_action=%2Flogin%2Fforgot_password">${traduzioni['LBL_FORGOT_PASSWORD_2']}</a> --></em>
197 </div>
198 </div>
199
200 <br>
201
202 <div class="sezione-dati" ng-show="!utenzaNuovaTrovata">
203
204 <h5 class="section-title">${traduzioni['LBL_SEZIONE_DATI']}</h5>
205
206 <div class="row">
207 <div class="col-sm-6">
208 <div class="form-group" ng-class="{ 'has-error' : userForm.nome.$invalid }">
209 <label for="nome">
210 ${traduzioni['LBL_NOME']}
211 <span class="asterisk"> *</span>
212 </label>
213 <input type="text" class="form-control" id="nome" name="nome" ng-model="nome" ng-maxlength="50" rpattern="/^[a-zA-ZÀ-ÿ ']+(?: +[A-ZÀ-ÿa-z ']+)*$/" ng-required="!utenzaNuovaTrovata">
214 <div class="help-block" ng-messages="userForm.nome.$error" ng-if="submitted">
215 <div ng-messages-include="${formMessagesPath}"></div>
216 </div>
217 </div>
218 </div>
219 <div class="col-sm-6">
220 <div class="form-group" ng-class="{ 'has-error' : userForm.cognome.$invalid }">
221 <label for="cognome">
222 ${traduzioni['LBL_COGNOME']}
223 <span class="asterisk"> *</span>
224 </label>
225 <input type="text" class="form-control" id="cognome" name="cognome" ng-model="cognome" ng-maxlength="50" rpattern="/^[a-zA-ZÀ-ÿ ']+(?: +[A-ZÀ-ÿa-z ']+)*$/" ng-required="!utenzaNuovaTrovata">
226 <div class="help-block" ng-messages="userForm.cognome.$error" ng-if="submitted">
227 <div ng-messages-include="${formMessagesPath}"></div>
228 </div>
229 </div>
230 </div>
231 </div>
232 <#-- <div class="row">
233 <div class="col-sm-6">
234 <div class="form-group" ng-class="{ 'has-error' : userForm.cellulare.$invalid }">
235 <label for="cellulare">${traduzioni['LBL_CELLULARE']}
236 ## <span class="asterisk"> *</span>
237 </label>
238 <input type="text" class="form-control" id="cellulare" name="cellulare" ng-model="cellulare" maxlength="16" ng-maxlength="16" input-telefono>
239 <div class="help-block" ng-messages="userForm.cellulare.$error" ng-if="submitted">
240 <div ng-messages-include="${formMessagesPath}"></div>
241 </div>
242 </div>
243 </div>
244 <div class="col-sm-6">
245 <div class="form-group" ng-class="{ 'has-error' : userForm.telefono.$invalid }">
246 <label for="telefono">${traduzioni['LBL_TELEFONO']}
247 </label>
248 <input type="tel" class="form-control" id="telefono" name="telefono" ng-model="telefono" maxlength="16" ng-maxlength="16" input-telefono>
249 <div class="help-block" ng-messages="userForm.telefono.$error" ng-if="submitted">
250 <div ng-messages-include="${formMessagesPath}"></div>
251 </div>
252 </div>
253 </div>
254 </div>
255 <div class="row">
256 <div class="col-sm-12">
257 <div class="form-group" ng-class="{ 'has-error' : userForm.azienda.$invalid }">
258 <label for="azienda">${traduzioni['LBL_AZIENDA']}</label>
259 <input type="text" class="form-control" id="azienda" name="azienda" ng-model="azienda" ng-maxlength="200">
260 <div class="help-block" ng-messages="userForm.azienda.$error" ng-if="submitted">
261 <div ng-messages-include="${formMessagesPath}"></div>
262 </div>
263 </div>
264 </div>
265 </div> -->
266 <div class="row">
267 <div class="col-sm-6">
268 <div class="form-group" ng-class="{ 'has-error' : userForm.codicefiscale.$invalid }">
269 <label for="codicefiscale">${traduzioni['LBL_CODICE_FISCALE']}
270 <#-- <i class="fa fa-info-circle" title="${traduzioni['LBL_INFO_CODICE_FISCALE']}" data-toggle="tooltip" tooltip></i> -->
271 <span class="asterisk" <#-- ng-if="indirizzoNascita.citta" -->> *</span>
272 </label>
273 <input type="text" class="form-control" id="codicefiscale" name="codicefiscale" ng-model="codiceFiscale" <#-- ng-pattern="/^[a-z]{6}\d{2}[abcdehlmprst]\d{2}[a-z]\d{3}[a-z]$/i" --> ng-minlength="16" ng-maxlength="16" maxlength="16" <#-- ng-required="indirizzoNascita.citta" --> ng-required="!utenzaNuovaTrovata">
274 <div class="help-block" ng-messages="userForm.codicefiscale.$error" ng-if="submitted">
275 <div ng-messages-include="${formMessagesPath}"></div>
276 </div>
277 </div>
278 </div>
279 <div class="col-sm-6">
280 <div class="form-group" ng-class="{ 'has-error' : userForm.sesso.$invalid }">
281 <label for="sesso">${traduzioni['LBL_SESSO']}
282 <span class="asterisk"> *</span>
283 </label>
284 <select class="form-control" id="sesso" name="sesso" ng-model="sesso" ng-required="!utenzaNuovaTrovata">
285 <option value="M">${traduzioni['LBL_MASCHIO']}</option>
286 <option value="F">${traduzioni['LBL_FEMMINA']}</option>
287 </select>
288 <div class="help-block" ng-messages="userForm.sesso.$error" ng-if="submitted">
289 <div ng-messages-include="${formMessagesPath}"></div>
290 </div>
291 </div>
292 </div>
293 </div>
294 <div class="row">
295 <div class="col-sm-6">
296 <div class="form-group" ng-class="{ 'has-error' : userForm.datanascita.$invalid }">
297 <label for="datanascita">${traduzioni['LBL_DATA_NASCITA']}
298 <span class="asterisk" <#-- ng-if="codiceFiscale" -->> *</span>
299 </label>
300 <div class="input-group date">
301 <input type="text" class="form-control" id="datanascita" name="datanascita" ng-model="dataNascita" placeholder="gg/mm/aaaa" datepicker
302 ng-pattern="/(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d/" data-mask="99/99/9999" <#-- ng-required="codiceFiscale" --> ng-required="!utenzaNuovaTrovata">
303 <span class="input-group-addon">
304 <img title="..." alt="..." src="${theme_images_path}/calendar.png">
305 <i class="icon-calendar-empty"></i>
306 </span>
307 </div>
308 <div class="help-block" ng-messages="userForm.datanascita.$error" ng-if="submitted">
309 <div ng-messages-include="${formMessagesPath}"></div>
310 </div>
311 </div>
312 </div>
313 <div class="col-sm-6">
314 <div class="form-group" ng-class="{ 'has-error' : userForm.nazionenascita.$invalid }">
315 <label for="nazionenascita">${traduzioni['LBL_NAZIONE_NASCITA']}
316 <span class="asterisk" <#-- ng-if="codiceFiscale" -->> *</span>
317 </label>
318 <select class="form-control" id="nazionenascita" name="nazionenascita" ng-model="selectedNazioneNascita" ng-options="nazione.nazione for nazione in nazioni track by nazione.codiceStato" <#-- ng-required="codiceFiscale" --> ng-required="!utenzaNuovaTrovata" ng-change="svuotaNazione(selectedNazioneNascita,indirizzoNascita)">
319 <option value=""></option>
320 </select>
321 <div class="help-block" ng-messages="userForm.nazionenascita.$error" ng-if="submitted">
322 <div ng-messages-include="${formMessagesPath}"></div>
323 </div>
324 </div>
325 </div>
326 </div>
327 <div class="row">
328 <div class="col-sm-6">
329 <div class="form-group" ng-class="{ 'has-error' : userForm.provincianascita.$invalid }">
330 <label for="provincianascita">${traduzioni['LBL_PROVINCIA_NASCITA']}
331 <span class="asterisk" ng-if="<#-- codiceFiscale && --> selectedNazioneNascita.codiceStato == 'ITL'"> *</span>
332 </label>
333 <select class="form-control" id="provincianascita" name="provincianascita" ng-model="selectedProvinciaNascita" ng-disabled="selectedNazioneNascita.codiceStato != 'ITL'" ng-options="provincia.denominazioneProvincia for provincia in province track by provincia.codiceProvincia" ng-required="!utenzaNuovaTrovata && <#-- codiceFiscale && --> selectedNazioneNascita.codiceStato == 'ITL'">
334 <option value=""></option>
335 </select>
336 <#-- input class="hidden" name="codiceprovincia" value="{{selectedProvinciaNascita.codiceProvincia}}" aria-hidden="true" />
337 <input class="hidden" name="descprovincia" value="{{selectedProvinciaNascita.denominazioneProvincia}}" aria-hidden="true" / -->
338 <div class="help-block" ng-messages="userForm.provincianascita.$error" ng-if="submitted">
339 <div ng-messages-include="${formMessagesPath}"></div>
340 </div>
341 </div>
342 </div>
343 <div class="col-sm-6">
344 <div class="form-group" ng-class="{ 'has-error' : userForm.comunenascita.$invalid && !userForm.comunenascita.$pristine }">
345 <label for="comunenascita">${traduzioni['LBL_COMUNE_NASCITA']}
346 <#-- <i class="fa fa-info-circle" title="${traduzioni['LBL_INFO_COMUNE']}" data-toggle="tooltip" tooltip></i> -->
347 <span class="asterisk" ng-if="<#-- codiceFiscale && --> selectedNazioneNascita.codiceStato == 'ITL'"> *</span>
348 </label>
349 <input type="text" class="form-control" id="comunenascita" name="comunenascita" ng-model="indirizzoNascita.cittaIntera" ng-disabled="selectedNazioneNascita.codiceStato != 'ITL'" autocomplete="off" ng-required="!utenzaNuovaTrovata && <#-- codiceFiscale && --> selectedNazioneNascita.codiceStato == 'ITL'"/>
350 <div class="help-block" ng-messages="userForm.comunenascita.$error" ng-if="submitted && !userForm.comunenascita.$pristine">
351 <div ng-messages-include="${formMessagesPath}"></div>
352 </div>
353 </div>
354 </div>
355 </div>
356 <div class="row">
357 <div class="col-sm-6">
358 <div class="form-group" ng-class="{ 'has-error' : userForm.cellulare.$invalid }">
359 <label for="cellulare">${traduzioni['LBL_CELLULARE']}
360 <#-- <span class="asterisk"> *</span> -->
361 </label>
362 <input type="text" class="form-control" id="cellulare" name="cellulare" ng-model="cellulare" maxlength="16" ng-maxlength="16" input-telefono>
363 <div class="help-block" ng-messages="userForm.cellulare.$error" ng-if="submitted">
364 <div ng-messages-include="${formMessagesPath}"></div>
365 </div>
366 </div>
367 </div>
368 <#-- <div class="col-sm-6">
369 <div class="form-group" ng-class="{ 'has-error' : userForm.telefono.$invalid }">
370 <label for="telefono">${traduzioni['LBL_TELEFONO']}
371 </label>
372 <input type="tel" class="form-control" id="telefono" name="telefono" ng-model="telefono" maxlength="16" ng-maxlength="16" input-telefono>
373 <div class="help-block" ng-messages="userForm.telefono.$error" ng-if="submitted">
374 <div ng-messages-include="${formMessagesPath}"></div>
375 </div>
376 </div>
377 </div> -->
378 </div>
379
380 <h5 class="section-title">${traduzioni['LBL_SEZIONE_INDIRIZZI']}</h5>
381
382 <div class="row">
383 <div class="col-sm-6">
384 <div class="form-group" ng-class="{ 'has-error' : userForm.nazionecorrispondenza.$invalid <#-- && !userForm.nazionecorrispondenza.$pristine --> }">
385 <label for="nazionecorrispondenza">${traduzioni['LBL_NAZIONE_CORRISPONDENZA']}
386 <#-- <span class="asterisk" ng-if="codiceFiscale"> *</span> -->
387 </label>
388 <select class="form-control" id="nazionecorrispondenza" name="nazionecorrispondenza" ng-model="selectedNazioneCorrispondenza" ng-options="nazione.nazione for nazione in nazioni track by nazione.codiceStato" <#-- ng-required="codiceFiscale" --> <#-- ng-required="!utenzaNuovaTrovata" --> ng-change="svuotaNazione(selectedNazioneCorrispondenza,indirizzoCorrispondenza)">
389 <option value=""></option>
390 </select>
391 <div class="help-block" ng-messages="userForm.nazionecorrispondenza.$error" ng-if="submitted <#-- && !userForm.nazionecorrispondenza.$pristine -->">
392 <div ng-messages-include="${formMessagesPath}"></div>
393 </div>
394 </div>
395 </div>
396 <div class="col-sm-6">
397 <div class="form-group" ng-class="{ 'has-error' : userForm.provinciacorrispondenza.$invalid && !userForm.provinciacorrispondenza.$pristine }">
398 <label for="provinciacorrispondenza">${traduzioni['LBL_PROVINCIA_CORRISPONDENZA']}
399 <span class="asterisk" ng-if="selectedNazioneCorrispondenza.codiceStato == 'ITL'"> *</span>
400 </label>
401 <select class="form-control" id="provinciacorrispondenza" name="provinciacorrispondenza" ng-model="selectedProvinciaCorrispondenza" ng-disabled="selectedNazioneCorrispondenza.codiceStato != 'ITL'" ng-options="provincia.denominazioneProvincia for provincia in province track by provincia.codiceProvincia" ng-required="!utenzaNuovaTrovata && selectedNazioneCorrispondenza.codiceStato == 'ITL'">
402 <option value=""></option>
403 </select>
404 <#-- input class="hidden" name="codiceprovincia" value="{{selectedProvinciaCorrispondenza.codiceProvincia}}" aria-hidden="true"/>
405 <input class="hidden" name="descprovincia" value="{{selectedProvinciaCorrispondenza.denominazioneProvincia}}" aria-hidden="true"/ -->
406 <div class="help-block" ng-messages="userForm.provinciacorrispondenza.$error" ng-if="submitted && !userForm.provinciacorrispondenza.$pristine">
407 <div ng-messages-include="${formMessagesPath}"></div>
408 </div>
409 </div>
410 </div>
411 </div>
412 <div class="row">
413 <div class="col-sm-6">
414 <div class="form-group" ng-class="{ 'has-error' : userForm.comunecorrispondenza.$invalid && !userForm.comunecorrispondenza.$pristine }">
415 <label for="comunecorrispondenza">${traduzioni['LBL_COMUNE_CORRISPONDENZA']}
416 <span class="asterisk" ng-if="selectedNazioneCorrispondenza.codiceStato == 'ITL'"> *</span>
417 </label>
418 <input type="text" class="form-control" id="comunecorrispondenza" name="comunecorrispondenza" ng-model="indirizzoCorrispondenza.cittaIntera" ng-disabled="selectedNazioneCorrispondenza.codiceStato != 'ITL'" autocomplete="off" ng-required="!utenzaNuovaTrovata && selectedNazioneCorrispondenza.codiceStato == 'ITL'"/>
419 <div class="help-block" ng-messages="userForm.comunecorrispondenza.$error" ng-if="submitted && !userForm.comunecorrispondenza.$pristine">
420 <div ng-messages-include="${formMessagesPath}"></div>
421 </div>
422 </div>
423 </div>
424 <div class="col-sm-6">
425 <div class="form-group" ng-class="{ 'has-error' : userForm.capcorrispondenza.$invalid && !userForm.capcorrispondenza.$pristine }">
426 <label for="capcorrispondenza">${traduzioni['LBL_CAP_CORRISPONDENZA']}
427 <span class="asterisk" ng-if="selectedNazioneCorrispondenza.codiceStato == 'ITL'"> *</span>
428 </label>
429 <input type="text" class="form-control" id="capcorrispondenza" name="capcorrispondenza" ng-model="indirizzoCorrispondenza.cap" ng-disabled="selectedNazioneCorrispondenza.codiceStato != 'ITL'" ng-maxlength="10" autocomplete="off" ng-required="!utenzaNuovaTrovata && selectedNazioneCorrispondenza.codiceStato == 'ITL'"/>
430 <div class="help-block" ng-messages="userForm.capcorrispondenza.$error" ng-if="submitted && !userForm.capcorrispondenza.$pristine">
431 <div ng-messages-include="${formMessagesPath}"></div>
432 </div>
433 </div>
434 </div>
435 </div>
436 <div class="row">
437 <div class="col-sm-8">
438 <div class="form-group" ng-class="{ 'has-error' : userForm.indirizzocorrispondenza.$invalid && !userForm.indirizzocorrispondenza.$pristine }">
439 <label for="indirizzocorrispondenza">${traduzioni['LBL_INDIRIZZO_CORRISPONDENZA']}
440 <#-- <span class="asterisk" ng-if="#*codiceFiscale && *# selectedNazioneCorrispondenza.codiceStato == 'ITL'"> *</span> -->
441 </label>
442 <input type="text" class="form-control" id="indirizzocorrispondenza" name="indirizzocorrispondenza" ng-model="indirizzoCorrispondenza.indirizzo" ng-disabled="selectedNazioneCorrispondenza.codiceStato != 'ITL' && !indirizzoCorrispondenza.cittaIntera" ng-maxlength="200" autocomplete="off" <#-- ng-required="selectedNazioneCorrispondenza.codiceStato == 'ITL'" -->/>
443 <i id="indirizzocorrispondenza-spinner" class="fa fa-spinner fa-spin indirizzo-spinner" style="display:none;"></i>
444 <div class="help-block" ng-messages="userForm.indirizzocorrispondenza.$error" ng-if="submitted && !userForm.indirizzocorrispondenza.$pristine">
445 <div ng-messages-include="${formMessagesPath}"></div>
446 </div>
447 </div>
448 </div>
449 <div class="col-sm-4">
450 <div class="form-group" ng-class="{ 'has-error' : userForm.civicocorrispondenza.$invalid && !userForm.civicocorrispondenza.$pristine }">
451 <label for="civicocorrispondenza">${traduzioni['LBL_CIVICO_CORRISPONDENZA']}</label>
452 <input type="text" class="form-control" id="civicocorrispondenza" name="civicocorrispondenza" ng-model="indirizzoCorrispondenza.civico" ng-maxlength="10" autocomplete="off" ng-disabled="!indirizzoCorrispondenza.indirizzo" >
453 <div class="help-block" ng-messages="userForm.civicocorrispondenza.$error" ng-if="submitted && !userForm.civicocorrispondenza.$pristine">
454 <div ng-messages-include="${formMessagesPath}"></div>
455 </div>
456 </div>
457 </div>
458 </div>
459
460 <div class="row">
461 <div class="col-sm-12">
462 <#-- <p>Dopo aver visionato integralmente l'informativa ex art. 13 d.lgs. 196/2003 visibile al link privacy presente nella home page del sito internet www.edenred.it, autorizzo Edenred Spa al trattamento dei miei dati personali.</p> -->
463 <p class="ralewaybold">${traduzioni['LBL_DECRETO']}</p>
464 <#-- <p>${traduzioni['LBL_INFORMATIVA']} <a href="http://www.edenred.it/informativa-beneficiari" target="_blank">${traduzioni['LBL_PRIVACY_LINK']}</a>.</p>
465 <p>${traduzioni['LBL_INFORMATIVA_PUNTI']}</p>
466 <ul class="container-fluid">
467 <li>${traduzioni['LBL_INFORMATIVA_PUNTO_1']}</li>
468 <li>${traduzioni['LBL_INFORMATIVA_PUNTO_2']}</li>
469 </ul>
470 <p>${traduzioni['LBL_LIBERATORIA']}</p> -->
471 </div>
472 </div>
473
474 <div class="row">
475 <div class="col-sm-12">
476 <div class="form-group" ng-class="{ 'has-error' : userForm.liberatoria.$invalid }">
477 <div class="checkbox">
478 <label for="liberatoria-si" id="check-privacy">
479 <input type="checkbox" id="liberatoria-si" value="1" name="liberatoria" ng-model="liberatoria" ng-required="!utenzaNuovaTrovata">
480 <div class="text">${traduzioni['LBL_DICHIARAZIONE_1']} <span class="ralewaybold"><a href="http://www.edenred.it/informativa-beneficiari" target="_blank">${traduzioni['LBL_PRIVACY_LINK']}</a></span> ${traduzioni['LBL_DICHIARAZIONE_2']}</div>
481 </label>
482 </div>
483 <#-- <div class="radio">
484 <label for="liberatoria-no">
485 <input type="radio" id="liberatoria-no" value="0" name="liberatoria" ng-model="liberatoria" required>
486 <span class="ralewaybold">${traduzioni['LBL_NO']}</span>${traduzioni['LBL_NO_ESTESO']}
487 </label>
488 </div> -->
489 <div class="help-block" ng-messages="userForm.liberatoria.$error" ng-if="!userForm.liberatoria.$pristine">
490 <div ng-messages-include="${formMessagesPath}"></div>
491 </div>
492 </div>
493 </div>
494 </div>
495
496 <div class="row">
497 <div class="col-sm-12">
498 <p class="ralewaybold"><span id="intestazione-consensi">${traduzioni['LBL_LIBERATORIA_CONFERMA']}</span></p>
499 </div>
500 </div>
501
502 <div id="blocco-consensi">
503
504 <div class="row">
505 <div class="col-sm-12">
506 <p>${traduzioni['LBL_LIBERATORIA_STATISTICHE']}</p>
507 </div>
508 </div>
509
510 <div class="row">
511 <div class="col-sm-12">
512 <div class="form-group" ng-class="{ 'has-error' : userForm.statistiche.$invalid && !userForm.statistiche.$pristine }">
513 <div class="radio">
514 <label for="statistiche-si">
515 <input type="radio" id="statistiche-si" value="1" name="statistiche" ng-model="statistiche" ng-required="!utenzaNuovaTrovata">
516 <span class="ralewaybold">${traduzioni['LBL_SI']}</span>${traduzioni['LBL_SI_ESTESO']}
517 </label>
518 </div>
519 <div class="radio">
520 <label for="statistiche-no">
521 <input type="radio" id="statistiche-no" value="0" name="statistiche" ng-model="statistiche" ng-required="!utenzaNuovaTrovata">
522 <span class="ralewaybold">${traduzioni['LBL_NO']}</span>${traduzioni['LBL_NO_ESTESO']}
523 </label>
524 </div>
525 <div class="help-block" ng-messages="userForm.statistiche.$error" ng-if="!userForm.statistiche.$pristine">
526 <div ng-messages-include="${formMessagesPath}"></div>
527 </div>
528 </div>
529 </div>
530 </div>
531
532 <div class="row">
533 <div class="col-sm-12">
534 <p>${traduzioni['LBL_LIBERATORIA_PROFILAZIONE']}</p>
535 </div>
536 </div>
537
538 <div class="row">
539 <div class="col-sm-12">
540 <div class="form-group" ng-class="{ 'has-error' : userForm.profilazione.$invalid && !userForm.profilazione.$pristine }">
541 <div class="radio">
542 <label for="profilazione-si">
543 <input type="radio" id="profilazione-si" value="1" name="profilazione" ng-model="profilazione" ng-required="!utenzaNuovaTrovata">
544 <span class="ralewaybold">${traduzioni['LBL_SI']}</span>${traduzioni['LBL_SI_ESTESO']}
545 </label>
546 </div>
547 <div class="radio">
548 <label for="profilazione-no">
549 <input type="radio" id="profilazione-no" value="0" name="profilazione" ng-model="profilazione" ng-required="!utenzaNuovaTrovata">
550 <span class="ralewaybold">${traduzioni['LBL_NO']}</span>${traduzioni['LBL_NO_ESTESO']}
551 </label>
552 </div>
553 <div class="help-block" ng-messages="userForm.profilazione.$error" ng-if="!userForm.profilazione.$pristine">
554 <div ng-messages-include="${formMessagesPath}"></div>
555 </div>
556 </div>
557 </div>
558 </div>
559
560 <div class="row">
561 <div class="col-sm-12">
562 <p>${traduzioni['LBL_LIBERATORIA_STATISTICHE_TERZI']}</p>
563 </div>
564 </div>
565
566 <div class="row">
567 <div class="col-sm-12">
568 <div class="form-group" ng-class="{ 'has-error' : userForm.statisticheTerzi.$invalid && !userForm.statisticheTerzi.$pristine }">
569 <div class="radio">
570 <label for="statisticheTerzi-si">
571 <input type="radio" id="statisticheTerzi-si" value="1" name="statisticheTerzi" ng-model="statisticheTerzi" ng-required="!utenzaNuovaTrovata">
572 <span class="ralewaybold">${traduzioni['LBL_SI']}</span>${traduzioni['LBL_SI_ESTESO']}
573 </label>
574 </div>
575 <div class="radio">
576 <label for="statisticheTerzi-no">
577 <input type="radio" id="statisticheTerzi-no" value="0" name="statisticheTerzi" ng-model="statisticheTerzi" ng-required="!utenzaNuovaTrovata">
578 <span class="ralewaybold">${traduzioni['LBL_NO']}</span>${traduzioni['LBL_NO_ESTESO']}
579 </label>
580 </div>
581 <div class="help-block" ng-messages="userForm.statisticheTerzi.$error" ng-if="!userForm.statisticheTerzi.$pristine">
582 <div ng-messages-include="${formMessagesPath}"></div>
583 </div>
584 </div>
585 </div>
586 </div>
587
588 <div class="row">
589 <div class="col-sm-12">
590 <p>${traduzioni['LBL_LIBERATORIA_PROFILAZIONE_TERZI']}</p>
591 </div>
592 </div>
593
594 <div class="row">
595 <div class="col-sm-12">
596 <div class="form-group" ng-class="{ 'has-error' : userForm.profilazioneTerzi.$invalid && !userForm.profilazioneTerzi.$pristine }">
597 <div class="radio">
598 <label for="profilazioneTerzi-si">
599 <input type="radio" id="profilazioneTerzi-si" value="1" name="profilazioneTerzi" ng-model="profilazioneTerzi" ng-required="!utenzaNuovaTrovata">
600 <span class="ralewaybold">${traduzioni['LBL_SI']}</span>${traduzioni['LBL_SI_ESTESO']}
601 </label>
602 </div>
603 <div class="radio">
604 <label for="profilazioneTerzi-no">
605 <input type="radio" id="profilazioneTerzi-no" value="0" name="profilazioneTerzi" ng-model="profilazioneTerzi" ng-required="!utenzaNuovaTrovata">
606 <span class="ralewaybold">${traduzioni['LBL_NO']}</span>${traduzioni['LBL_NO_ESTESO']}
607 </label>
608 </div>
609 <div class="help-block" ng-messages="userForm.profilazioneTerzi.$error" ng-if="!userForm.profilazioneTerzi.$pristine">
610 <div ng-messages-include="${formMessagesPath}"></div>
611 </div>
612 </div>
613 </div>
614 </div>
615
616 </div>
617
618 <div class="row">
619 <div class="col-sm-12 save-user registra">
620 <button type="button" class="btn btn-primary pull-right" ng-click="submitted=true;submitForm(userForm.$valid)" <#-- ng-show="liberatoria==1" ng-disabled="liberatoria!=1" -->>${traduzioni['LBL_REGISTRATI']}</button>
621 </div>
622 </div>
623
624 </div>
625
626 <div class="row">
627 <div class="col-sm-7 save-user conferma hidden">
628 <#-- <button type="button" class="btn btn-secondary btn-block" ng-show="utenzaNuovaTrovata" ng-click="LBL_PASSWORD_NO_MATCH = false; email = ''; password = ''; confermaPassword = ''; utenzaNuovaTrovata = false">${traduzioni['LBL_ANNULLA_UNISCI_UTENZE']}</button> -->
629 </div>
630 <div class="col-sm-offset-1 col-sm-4 save-user conferma hidden">
631 <button type="button" class="btn btn-primary" ng-click="submitted=true;submitForm(userForm.$valid)" <#-- ng-show="liberatoria==1" ng-disabled="liberatoria!=1" -->>{{ utenzaNuovaTrovata ? "${traduzioni['LBL_CONFERMA_ACCEDI']}" : "${traduzioni['LBL_CONFERMA']}" }}</button>
632 </div>
633 </div>
634
635
636 <br>
637 <div id="error_message" class="alert alert-error hidden" role="alert" ng-hide="userForm.$valid">${traduzioni['LBL_ERRORE_FORM']}</div>
638 <div id="success_message" class="alert alert-success hidden" role="status">${traduzioni['LBL_SUCCESSO_FORM']}</div>
639 <div id="info_message" class="alert alert-success hidden" role="status"></div>
640
641
642 <#-- <div class="row">
643 <div class="col-sm-4 buttons">
644 <button type="button" class="btn btn-secondary" ng-click="switchFormView()">Registra/Conferma</button>
645 </div>
646 </div> -->
647
648 <!--
649
650 <div type="text" id="comuni-suggestion" auto-complete url="comuniFromProvincia" placeholder="Comune" />
651 -->
652
653 </div>
654 </div>
655</div>
656
657
658<script>
659if (typeof beneficiarioJsonFromPortlet == 'undefined') {
660 var beneficiarioJsonFromPortlet='{}';
661}
662var jsonObj = beneficiarioJsonFromPortlet;
663
664var app = angular.module('registrazione-step-1', ['ngMessages', 'ngAria']);
665
666
667
668app.directive('compareTo', [function () {
669return {
670 require: 'ngModel',
671 link: function (scope, elem, attrs, ctrl) {
672 var firstPassword = "#" + attrs.compareTo;
673 /*console.log("firstPassword", firstPassword);*/
674 elem.add(firstPassword).on('keyup', function () {
675 scope.$apply(function () {
676 /*console.log(scope);*/
677 var v = elem.val()===$(firstPassword).val();
678 /*console.log("elem.val()", elem.val());
679 console.log("$(firstPassword).val()", $(firstPassword).val());
680 console.log("v", v);*/
681 ctrl.$setValidity('compareTo', v);
682 });
683 });
684 }
685}
686}]);
687
688
689app.directive('datepicker', function() {
690 return {
691 restrict: 'A',
692 require : 'ngModel',
693 link : function (scope, element, attrs, ngModel) {
694
695 if (!ngModel) return;
696
697 ngModel.$render = function() {
698 element.parent().datepicker('update', ngModel.$viewValue || '');
699 };
700
701 var localId = "${locale}";
702 element.parent().datepicker({
703 format: "dd/mm/yyyy",
704 endDate: "0d",
705 maxViewMode: 2,
706 language: localId.substr(0, 2),
707 forceParse: false,
708 autoclose: true,
709 defaultViewDate: { year: 1980, month: 0, day: 1 },
710 startView: 2
711 }).on("changeDate",function(event){
712 scope.$apply(function() {
713 ngModel.$setViewValue(event.date);
714 });
715 })
716 }
717 }
718});
719
720
721app.directive('inputTelefono', function () {
722 return {
723 require: 'ngModel',
724 link: function (scope, element, attr, ngModelCtrl) {
725 function fromUser(text) {
726 if (text) {
727 var transformedInput = text.replace(/[^-0-9+ .]/g, '');
728
729 if (transformedInput !== text) {
730 ngModelCtrl.$setViewValue(transformedInput);
731 ngModelCtrl.$render();
732 }
733 return transformedInput;
734 }
735 //return undefined;
736 return "";
737 }
738 ngModelCtrl.$parsers.push(fromUser);
739 }
740 };
741});
742
743
744app.directive('jsonText', function() {
745 return {
746 restrict: 'A',
747 require: 'ngModel',
748 link: function(scope, element, attr, ngModel) {
749 function into(input) {
750 return JSON.parse(input);
751 }
752 function out(data) {
753 return JSON.stringify(data);
754 }
755 ngModel.$parsers.push(into);
756 ngModel.$formatters.push(out);
757
758 scope.$watch(attr.ngModel, function(newValue) {
759 element[0].value = out(newValue);
760 }, true);
761
762 }
763 };
764});
765
766app.directive("select", function() {
767 return {
768 restrict: "E",
769 require: "?ngModel",
770 scope: false,
771 link: function (scope, element, attrs, ngModel) {
772 if (!ngModel) {
773 return;
774 }
775 element.bind("keyup", function() {
776 element.triggerHandler("change");
777 })
778 }
779 }
780});
781
782
783
784app.controller('PBEN-Ctrl-registrazione-step-1', ['$scope', '$q', 'migrazioneService', '$filter', function ($scope, $q, migrazioneService, $filter) {
785
786
787 $scope.username = "";
788 $scope.email = "";
789 $scope.password = "";
790 $scope.confermaPassword = "";
791 $scope.nome = "";
792 $scope.cognome = "";
793 $scope.telefono = "";
794 $scope.cellulare = "";
795 $scope.azienda = "";
796 $scope.codiceFiscale = "";
797 $scope.sesso = "";
798 $scope.dataNascita = "";
799 $scope.nazioni = [];
800 $scope.province = [];
801 $scope.indirizzoNascita = {
802 "citta":"",
803 "cittaIntera":"",
804 "provincia":"",
805 "nazione":"",
806 "codComune": "",
807 "codProvincia": "",
808 "codNazione":""
809 };
810 $scope.selectedNazioneNascita;
811 $scope.selectedProvinciaNascita;
812 $scope.indirizzoCorrispondenza = {
813 citta:"",
814 cittaIntera:"",
815 provincia:"",
816 nazione:"",
817 codComune: "",
818 codProvincia: "",
819 codNazione:""
820 };
821 $scope.selectedNazioneCorrispondenza;
822 $scope.selectedProvinciaCorrispondenza;
823 $scope.liberatoria = "";
824 $scope.statistiche = "";
825 $scope.profilazione = "";
826 $scope.statisticheTerzi = "";
827 $scope.profilazioneTerzi = "";
828 $scope.vm = {};
829 $scope.vm.customOpt = {};
830 $scope.vm.setDate = setDate;
831 $scope.vm.setDefault = setDefault;
832
833 $scope.conferma = "0";
834 $scope.utenzaNuovaTrovata = false;
835 $scope.passwordunisci = "xxxxxxxx";
836 $scope.isSubmitting = false;
837
838 $scope.submittedCion = false;
839 $scope.submitting = false;
840
841 <#-- MANNAGGIA - URGE REFACTOR -->
842 $scope.LBL_SUCCESSO_FORM=false;
843 $scope.LBL_ERRORE_CODICE_FISCALE=false;
844 $scope.LBL_ERRORE_UTENTE_NON_CONFERMATO=false;
845 $scope.LBL_ERRORE_UTENTE_PRESENTE=false;
846 $scope.LBL_ERRORE_INTERNO=false;
847 $scope.LBL_MAIL_NOT_VALID=false;
848 $scope.LBL_ERRORE_RECUPERO_BENEFICIARIO=false;
849 $scope.LBL_ERRORE_PRODOTTO_REGISTRED=false;
850 $scope.LBL_ERRORE_PRODOTTO_REGISTRED_ALTRO_CIRCUITO=false;
851
852
853 $scope.checkEsistenzaUtenza = checkEsistenzaUtenza;
854
855 $scope.portletNamespace
856 $scope.resourceUrl;
857
858
859 function checkEsistenzaUtenza() {
860 if(!$scope.userForm.email.$pristine && !$scope.userForm.email.$invalid){
861 $scope.submitting = true;
862 return migrazioneService.checkBeneficiarioExist($scope.resourceUrl, $scope.portletNamespace, $scope.email)
863 .then(function(data) {
864 console.log("checkEsistenzaUtenza", data);
865 if(data != null && data != "undefined" && data != "" && data["code"] == '200' ){
866 console.log("if", data["message"]);
867 $scope.utenzaNuovaTrovata = data["message"] == "true" ? true : false;
868 if ($scope.utenzaNuovaTrovata) {
869 $scope.password = "";
870 }
871 }
872 else {
873 console.log("else", false);
874 $scope.utenzaNuovaTrovata = false;
875 }
876 }).catch(function(data) {
877 console.log("catch", false);
878 $scope.utenzaNuovaTrovata = false;
879 }).finally(function() {
880 $scope.submitting = false;
881 });
882 }
883 }
884
885
886 $scope.selectNazione = function(indirizzo) {
887 for (var nazioneIndex in this.nazioni) {
888 if (indirizzo &&
889 indirizzo.codNazione &&
890 this.nazioni[nazioneIndex].codiceStato == indirizzo.codNazione) {
891 switch(indirizzo) {
892 case this.indirizzoNascita:
893 $scope.selectedNazioneNascita = this.nazioni[nazioneIndex];
894 break;
895 case this.indirizzoCorrispondenza:
896 $scope.selectedNazioneCorrispondenza = this.nazioni[nazioneIndex];
897 break;
898 case this.indirizzoResidenza:
899 $scope.selectedNazioneResidenza = this.nazioni[nazioneIndex];
900 break;
901 }
902 }
903 }
904 $scope.$apply();
905 }
906
907
908 $scope.selectProvincia = function(indirizzo) {
909 for (var provinciaIndex in this.province) {
910 if (indirizzo &&
911 indirizzo.codProvincia &&
912 this.province[provinciaIndex].codiceProvincia == indirizzo.codProvincia) {
913 switch(indirizzo) {
914 case this.indirizzoNascita:
915 $scope.selectedProvinciaNascita = this.province[provinciaIndex];
916 break;
917 case this.indirizzoCorrispondenza:
918 $scope.selectedProvinciaCorrispondenza = this.province[provinciaIndex];
919 break;
920 case this.indirizzoResidenza:
921 $scope.selectedProvinciaResidenza = this.province[provinciaIndex];
922 break;
923 }
924 }
925 }
926 $scope.$apply();
927 }
928
929
930 function setDate(optin) {
931 optin.date = $filter('date')(new Date(), "dd/MM/yyyy HH:mm:ss");
932 }
933
934 function setDefault(optin) {
935 optin.value = false;
936 }
937
938
939 $scope.submitForm = function(isValid) {
940 $scope.submitting = true;
941 if(!$scope.submittedCion){
942 if (isValid) {
943 jQuery('#error_message').addClass("hidden");
944 $scope.submitted = true;
945 $scope.submittedCion = true;
946 $('form#datiRegistrazioneBeneficiario').submit();
947 }
948 else {
949 angular.forEach($scope.userForm.$error.required, function(field) {
950 jQuery('#error_message').removeClass("hidden");
951 field.$setDirty();
952 });
953 $scope.submitting = false;
954 }
955 }
956 };
957
958
959 $scope.svuotaNazione = function(selectedNazione, indirizzo) {
960 //alert("svuotaNazione");
961 if(selectedNazione == undefined || selectedNazione.codiceStato != 'ITL')
962 {
963 indirizzo.citta = "";
964 indirizzo.cittaIntera = "";
965 indirizzo.cap = "";
966 indirizzo.codComune = "";
967 indirizzo.codProvincia = "";
968 indirizzo.codNazione = "";
969 indirizzo.civico = "";
970 indirizzo.indirizzo = "";
971
972 switch(indirizzo) {
973 case this.indirizzoNascita:
974 $scope.selectedProvinciaNascita = undefined;
975 break;
976 case this.indirizzoCorrispondenza:
977 $scope.selectedProvinciaCorrispondenza = undefined;
978 break;
979 case this.indirizzoResidenza:
980 $scope.selectedProvinciaResidenza = undefined;
981 break;
982 }
983 }
984 }
985
986
987 $scope.switchForm = function(value) {
988 if(value == 1){
989 $(".conferma").removeClass("hidden").fadeIn();
990 $(".registra").addClass("hidden").fadeIn();
991 }
992 else if(value == 0){
993 $(".registra").removeClass("hidden").fadeIn();
994 $(".conferma").addClass("hidden").fadeIn();
995 }
996 }
997
998
999 $scope.switchFormView = function() {
1000 $(".registra, .conferma").toggleClass("hidden").fadeIn();
1001 $(document).scrollTop( $("#header").offset().top );
1002 }
1003
1004
1005 $scope.updateComune = function(indirizzo, codComune, codProvincia, callback, flgVisibilita) {
1006 var _indirizzo = indirizzo;
1007 var _scope = this;
1008 getComuniFromStradarioPortlet(codProvincia, flgVisibilita,
1009 function(listaComuni) {
1010 //alert("Update bello "+flgVisibilita);
1011 var comune;
1012 //console.log(JSON.stringify(listaComuni) + " codComune: " + codComune);
1013 for (var comuneId in listaComuni) {
1014 if (listaComuni[comuneId].codiceComune == codComune) {
1015 //console.log(" codComune: " + codComune);
1016 comune = listaComuni[comuneId];
1017 //console.log(listaComuni[comuneId].denominazioneAbbreviataComune);
1018 _indirizzo.citta = listaComuni[comuneId].denominazioneAbbreviataComune;
1019 _indirizzo.cittaIntera = listaComuni[comuneId].denominazioneComune;
1020 //_indirizzo.codComune = listaComuni[comuneId].codiceComune;
1021 //console.log("updated comune");
1022 $scope.$apply();
1023 //console.log($scope.indirizzoNascita);
1024 break;
1025 }
1026 }
1027
1028 if ( callback) {
1029 callback(_scope);
1030 }
1031 }
1032 );
1033 };
1034
1035
1036 $scope.updateNazioni = function(nazioniList) {
1037 this.nazioni = nazioniList;
1038 <#-- this.selectedNazioneNascita = {nazione:'ITALY', codiceStato:'ITL'}; -->
1039 <#-- this.selectedNazioneCorrispondenza = {nazione:'ITALY', codiceStato:'ITL'}; -->
1040 }
1041
1042
1043 $scope.updateProvince = function(provinceList) {
1044 this.province = provinceList;
1045 }
1046
1047
1048 $scope.updateStrada = function(indirizzo, codStrada, cap, callback) {
1049 var _indirizzo = indirizzo;
1050 getStradeByCapFromStradarioPortlet(cap,
1051 function(stradeResult) {
1052 var via;
1053 for (var stradaIndex in stradeResult) {
1054 if (stradeResult[stradaIndex].codice == codStrada) {
1055 _indirizzo.via = stradeResult[stradaIndex].descBreveComposta;
1056 //console.log("updated strada");
1057 $scope.$apply();
1058 $("#greyLayout").hide();
1059 break;
1060 }
1061 }
1062 if ( callback ) {
1063 callback();
1064 }
1065 }
1066 );
1067 };
1068
1069
1070 $scope.updateUserData = function(userObject, callback) {
1071 <#-- console.log("updateUserData", userObject); -->
1072
1073 this.utenzaNuovaTrovata = utenzaNuovaTrovata;
1074
1075 this.username = userObject.username;
1076 <#-- this.password = userObject.password; -->
1077 <#-- this.confermaPassword = userObject.password; -->
1078 this.nome = userObject.nome;
1079 this.cognome = userObject.cognome;
1080 this.dataNascita = userObject.dataNascita ? jQuery.datepicker.formatDate('dd/mm/yy', new Date(userObject.dataNascita)) : "";
1081 this.sesso = userObject.sesso;
1082 this.codiceFiscale = userObject.codFiscale;
1083 this.azienda = userObject.azienda;
1084 this.funzioneAziendale = userObject.funzAziendale;
1085 this.email = userObject.email;
1086 this.telefono = userObject.telefono;
1087 this.cellulare = userObject.cellulare;
1088 this.liberatoria = !!userObject.consensoDati;
1089 this.statistiche = userObject.consensoMarketing;
1090 this.profilazione = userObject.consensoProfilazione;
1091 this.statisticheTerzi = userObject.consensoMarketingTerzi;
1092 this.profilazioneTerzi = userObject.consensoProfilazioneTerzi;
1093
1094
1095 <#-- for (var nazioneIndex in this.nazioni) {
1096 if (this.nazioni[nazioneIndex].codiceStato == userObject.nascitaNazione) {
1097 this.selectedNazioneNascita = this.nazioni[nazioneIndex];
1098 break;
1099 }
1100 }
1101 if(userObject.nascitaProvincia){
1102 for (var provinciaIndex in this.province) {
1103 if (this.province[provinciaIndex].codiceProvincia == userObject.nascitaProvincia) {
1104 this.selectedProvinciaNascita = this.province[provinciaIndex];
1105 break;
1106 }
1107 }
1108 }
1109 for (var nazioneIndex in this.nazioni) {
1110 if (this.nazioni[nazioneIndex].codiceStato == userObject.domicNazione) {
1111 this.selectedNazioneCorrispondenza = this.nazioni[nazioneIndex];
1112 break;
1113 }
1114 }
1115 if(userObject.domicProvincia){
1116 for (var provinciaIndex in this.province) {
1117 if (this.province[provinciaIndex].codiceProvincia == userObject.domicProvincia) {
1118 this.selectedProvinciaCorrispondenza = this.province[provinciaIndex];
1119 break;
1120 }
1121 }
1122 }
1123 $scope.$apply(); -->
1124
1125
1126 this.indirizzoNascita = {
1127 "codNazione": userObject.nascitaNazione,
1128 "codProvincia": userObject.nascitaProvincia,
1129 "codComune": userObject.nascitaComune,
1130 };
1131
1132 var _codComuneNascita = userObject.nascitaComune;
1133 var _codProvinciaNascita = userObject.nascitaProvincia;
1134 var _codNazioneNascita = userObject.nascitaNazione;
1135
1136 this.indirizzoCorrispondenza = {
1137 "codNazione": userObject.domicNazione,
1138 "codProvincia": userObject.domicProvincia,
1139 "codComune": userObject.domicComune,
1140 "cap": userObject.domicCap,
1141 "indirizzo": userObject.domicIndirizzo,
1142 "civico": userObject.domicCivico
1143 };
1144
1145 var _codComuneCorrispondenza = userObject.domicComune;
1146 var _codProvinciaCorrispondenza = userObject.domicProvincia;
1147 var _codNazioneCorrispondenza = userObject.domicNazione;
1148
1149 var clb = function(angularScope) {
1150 var _codStradaCorrispondenza = userObject.domicStrada;
1151 var _capCorrispondenza = userObject.domicCap;
1152
1153 var clb1 = function() {
1154 $scope.$apply();
1155
1156 if (callback) {
1157 callback();
1158 }
1159
1160 };
1161
1162 clb1();
1163 }
1164 if (userObject.nascitaProvincia && userObject.nascitaComune) {
1165 <#-- console.log("updating comune Nascita with code -> " + _codComuneNascita + " and codProvinciaNascita -> " + _codProvinciaNascita); -->
1166 <#-- console.log($scope.indirizzoNascita); -->
1167 $scope.updateComune($scope.indirizzoNascita, _codComuneNascita, _codProvinciaNascita, clb, "TUTTI");
1168 } else {
1169 clb();
1170 }
1171 if (userObject.domicProvincia && userObject.domicComune) {
1172 <#-- console.log("updating comune Corrispondenza with code -> " + _codComuneCorrispondenza + " and codProvinciaCorrispondenza -> " + _codProvinciaCorrispondenza); -->
1173 $scope.updateComune($scope.indirizzoCorrispondenza, _codComuneCorrispondenza, _codProvinciaCorrispondenza, clb, "VISIBILE");
1174 } else {
1175 clb();
1176 }
1177 };
1178
1179}]);
1180
1181
1182var Globali = {};
1183Globali.path_images = "${theme_images_path}";
1184
1185function getDatiConferma(username, success, failure) {
1186 success(jsonObj["anagrafica"]);
1187}
1188
1189AUI().ready( function(){
1190 angular.bootstrap(document.getElementById("datiRegistrazioneBeneficiario"),['registrazione-step-1']);
1191
1192 var angularScope = angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope();
1193
1194 angularScope.resourceUrl = getRegioniResourceUrl;
1195 angularScope.portletNamespace = portletNamespace;
1196 <#-- angularScope.checkEsistenzaUtenza(); -->
1197
1198 var messageId = $('#message-register-user').text();
1199 if(messageId){
1200 angularScope[messageId]=true;
1201 angularScope.$apply();
1202 }
1203 <#-- $('#'+messageId).removeClass("hidden"); -->
1204
1205 if(jsonObj && jsonObj["anagrafica"] && jsonObj["anagrafica"].circCd != "0000")
1206 angularScope.conferma = "1";
1207
1208
1209 <#-- Controllo disabilitato per permettere il salvataggio dei dati inseriti -->
1210 <#-- if(angularScope.conferma != "1") { -->
1211 var beneficiarioValues = $('#user-field-values').text();
1212 if (beneficiarioValues && beneficiarioValues != "null") {
1213 jsonObj = jQuery.parseJSON(beneficiarioValues);
1214 <#-- json.dataNascita = json.dataNascita ? jQuery.datepicker.formatDate('dd/mm/yy', new Date(json.dataNascita)) : ""; -->
1215 <#-- console.log("json", jsonObj); -->
1216 angularScope.updateUserData(jsonObj,"");
1217 if (jsonObj.nascitaComune)
1218 $('#comunenascita').removeAttr("readonly");
1219 if (jsonObj.domicComune)
1220 $('#comunecorrispondenza').removeAttr("readonly");
1221 }
1222 <#-- } -->
1223
1224 <#-- if(jsonObj) { -->
1225
1226 <#-- var username = jsonObj["anagrafica"].username; -->
1227
1228 doExecuteFunctionWithTimeout(10000,false,
1229
1230
1231 function(checkIfCanProceed){
1232
1233
1234 <#-- getDatiConferma(
1235 username,
1236 function(userObject){ -->
1237 if ( checkIfCanProceed() ) {
1238 <#-- console.log("checkIfCanProceed"); -->
1239 var angularScope = angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope();
1240 var clb = function(){
1241 getNazioniFromStradarioPortlet(function(listaNazioni){
1242 <#-- console.log("getNazioniFromStradarioPortlet", listaNazioni); -->
1243 angularScope.updateNazioni(listaNazioni);
1244 angularScope.selectNazione(angularScope.indirizzoNascita);
1245 angularScope.selectNazione(angularScope.indirizzoCorrispondenza);
1246
1247 getProvinceFromStradarioPortlet(function(listaProvince){
1248 angularScope.updateProvince(listaProvince);
1249 angularScope.selectProvincia(angularScope.indirizzoNascita);
1250 doEnhanceStradarioPortlet(angularScope,"provincianascita","capnascita","comunenascita","indirizzonascitaX","indirizzonascita-spinnerX","civiconascitaX",{
1251 getIndirizzo: function() { return angularScope.indirizzoNascita; },
1252 getSelectedProvincia: function() { return angularScope.selectedProvinciaNascita; }
1253 }, "TUTTI");
1254 angularScope.selectProvincia(angularScope.indirizzoCorrispondenza);
1255 doEnhanceStradarioPortlet(angularScope,"provinciacorrispondenza","capcorrispondenza","comunecorrispondenza","indirizzocorrispondenzaX","indirizzocorrispondenza-spinnerX","civicocorrispondenzaX",{
1256 getIndirizzo: function() { return angularScope.indirizzoCorrispondenza; },
1257 getSelectedProvincia: function() { return angularScope.selectedProvinciaCorrispondenza; }
1258 }, "VISIBILE");
1259 });
1260 });
1261 };
1262 <#-- console.log("angularScope", jsonObj && jsonObj["anagrafica"]); -->
1263 if(jsonObj && jsonObj["anagrafica"])
1264 angularScope.updateUserData(jsonObj["anagrafica"],clb);
1265 else
1266 clb();
1267
1268
1269 }<#--
1270 }, function(resCode) {
1271 if ( checkIfCanProceed() ){
1272 console.log("ERROR: getDatiConferma resultCode -> " + resCode);
1273 angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope().selectProvincia(this.indirizzoNascita);
1274 angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope().selectProvincia(this.indirizzoCorrispondenza);
1275
1276 angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope().selectNazione(this.indirizzoNascita);
1277 angular.element(document.getElementById('datiRegistrazioneBeneficiario')).scope().selectNazione(this.indirizzoCorrispondenza);
1278 }
1279 }
1280 ); -->
1281
1282
1283 },
1284
1285 function(){
1286
1287 jQuery('#datiRegistrazioneBeneficiario').hide();
1288 alert("Il server non ha risposto nei tempi massimi previsti. Aggiornare la pagina e in caso di persistenza di questo messaggio avvertire l'assistenza",false,true);
1289
1290
1291 });
1292
1293 <#-- } -->
1294 <#-- else{
1295 getNazioniFromStradarioPortlet(function(listaNazioni){
1296 console.log("getNazioniFromStradarioPortlet", listaNazioni);
1297 angularScope.updateNazioni(listaNazioni);
1298 angularScope.selectNazione(angularScope.indirizzoNascita);
1299 angularScope.selectNazione(angularScope.indirizzoCorrispondenza);
1300
1301 getProvinceFromStradarioPortlet(function(listaProvince){
1302 console.log("getProvinceFromStradarioPortlet", listaProvince);
1303 angularScope.updateProvince(listaProvince);
1304 angularScope.selectProvincia(angularScope.indirizzoNascita);
1305 doEnhanceStradarioPortlet(angularScope,"provincianascita","capnascita","comunenascita","indirizzonascitaX","indirizzonascita-spinnerX","civiconascitaX",{
1306 getIndirizzo: function() { return angularScope.indirizzoNascita; },
1307 getSelectedProvincia: function() { return angularScope.selectedProvinciaNascita; }
1308 }, "TUTTI");
1309 angularScope.selectProvincia(angularScope.indirizzoCorrispondenza);
1310 doEnhanceStradarioPortlet(angularScope,"provinciacorrispondenza","capcorrispondenza","comunecorrispondenza","indirizzocorrispondenzaX","indirizzocorrispondenza-spinnerX","civicocorrispondenzaX",{
1311 getIndirizzo: function() { return angularScope.indirizzoCorrispondenza; },
1312 getSelectedProvincia: function() { return angularScope.selectedProvinciaCorrispondenza; }
1313 }, "VISIBILE");
1314 });
1315 });
1316 updateWithOldValues();
1317 } -->
1318
1319
1320 angularScope.switchForm(angularScope.conferma);
1321
1322
1323 $("#ptl-registrazione-step-1").removeClass("hidden").fadeIn();
1324 <#-- $("#greyLayout").hide(); -->
1325
1326 <#-- function updateWithOldValues(){
1327 var beneficiarioValues = $('#user-field-values').text();
1328 if (beneficiarioValues) {
1329 var json = jQuery.parseJSON(beneficiarioValues);
1330 ## json.dataNascita = json.dataNascita ? jQuery.datepicker.formatDate('dd/mm/yy', new Date(json.dataNascita)) : "";
1331 console.log("json", json);
1332 angularScope.updateUserData(json,"");
1333 if (json.nascitaComune)
1334 $('#comunenascita').removeAttr("readonly");
1335 if (json.domicComune)
1336 $('#comunecorrispondenza').removeAttr("readonly");
1337 }
1338 } -->
1339});
1340
1341
1342
1343(function() {
1344 'use strict';
1345
1346 angular
1347 .module('registrazione-step-1')
1348 .factory('migrazioneService', migrazioneService);
1349
1350 migrazioneService.$inject = ['$http', '$q'];
1351
1352 function migrazioneService($http, $q) {
1353 var service = {
1354 checkBeneficiarioExist: checkBeneficiarioExist
1355 };
1356 return service;
1357
1358 function checkBeneficiarioExist(resourceUrl, portletNamespace, email) {
1359 var deferred = $q.defer();
1360 var methodName = "checkBeneficiarioExist";
1361 var data = portletNamespace + "ope=" + methodName + "&" + portletNamespace + "email=" + email;
1362 var config = {
1363 headers : {
1364 'Content-Type': 'application/x-www-form-urlencoded'
1365 }
1366 }
1367 <#-- console.log(resourceUrl); -->
1368 <#-- console.log(data); -->
1369 <#-- console.log(config); -->
1370 $http.post(resourceUrl, data, config)
1371 .then(beneficiarioExist)
1372 .catch(checkBeneficiarioExistFailed);
1373
1374 function beneficiarioExist(response) {
1375 console.log('beneficiarioExist', response.data);
1376 return deferred.resolve(response.data);
1377 }
1378
1379 function checkBeneficiarioExistFailed(error) {
1380 console.log('checkBeneficiarioExistFailed ' + error);
1381 return $q.reject(error);
1382 }
1383
1384 return deferred.promise;
1385 }
1386
1387 }
1388
1389})();
1390
1391
1392
1393(function() {
1394 'use strict';
1395
1396 angular
1397 .module('registrazione-step-1')
1398 .directive("rpattern", function() {
1399 return {
1400 restrict: "A",
1401 require: "ngModel",
1402 link: function(scope, el, attrs, ngModel) {
1403 var validator, patternValidator,
1404 pattern = attrs.rpattern,
1405 required = true;
1406 <#-- console.log("rpattern" , pattern); -->
1407 if( pattern ) {
1408 if (pattern.match(/^\/(.*)\/$/)) {
1409 pattern = new RegExp(pattern.substr(1, pattern.length - 2));
1410 patternValidator = function(value) {
1411 return validate(pattern, value)
1412 };
1413 }
1414 else {
1415 patternValidator = function(value) {
1416 var patternObj = scope.$eval(pattern);
1417 if (!patternObj || !patternObj.test) {
1418 throw new Error('Expected ' + pattern + ' to be a RegExp but was ' + patternObj);
1419 }
1420 return validate(patternObj, value);
1421 };
1422 }
1423 }
1424
1425 ngModel.$formatters.push(patternValidator);
1426 ngModel.$parsers.push(patternValidator);
1427
1428 attrs.$observe("required", function(newval) {
1429 <#-- console.log("rpattern" , newval); -->
1430 required = newval;
1431 patternValidator(ngModel.$viewValue);
1432 });
1433
1434 function validate(regexp, value) {
1435 if( value == null || value === "" || !required || regexp.test(value) ) {
1436 ngModel.$setValidity('pattern', true);
1437 <#-- console.log("rpattern validate" , !required || regexp.test(value)) -->
1438 <#-- console.log("rpattern validate true" , value); -->
1439 return value;
1440 }
1441 else {
1442 ngModel.$setValidity('pattern', false);
1443 <#-- console.log("rpattern validate" , !required || regexp.test(value)) -->
1444 <#-- console.log("rpattern validate false" , value); -->
1445 return value;
1446 }
1447 }
1448 }
1449 };
1450 });
1451
1452})();
1453
1454
1455(function() {
1456 'use strict';
1457
1458 angular
1459 .module('registrazione-step-1')
1460 .directive("cpattern", function() {
1461 return {
1462 restrict: "A",
1463 require: "ngModel",
1464 link: function(scope, el, attrs, ngModel) {
1465 var validator, patternValidator,
1466 pattern = attrs.cpattern,
1467 condition = false;
1468 <#-- console.log("cpattern" , pattern); -->
1469 if( pattern ) {
1470 if (pattern.match(/^\/(.*)\/$/)) {
1471 pattern = new RegExp(pattern.substr(1, pattern.length - 2));
1472 patternValidator = function(value) {
1473 <#-- console.log("pattern" + pattern + value); -->
1474 return validate(pattern, value)
1475 };
1476 }
1477 else {
1478 patternValidator = function(value) {
1479 var patternObj = scope.$eval(pattern);
1480 if (!patternObj || !patternObj.test) {
1481 throw new Error('Expected ' + pattern + ' to be a RegExp but was ' + patternObj);
1482 }
1483 <#-- console.log("patternObj"); -->
1484 return validate(patternObj, value);
1485 };
1486 }
1487 }
1488
1489 ngModel.$formatters.push(patternValidator);
1490 ngModel.$parsers.push(patternValidator);
1491
1492 attrs.$observe("condition", function(newval) {
1493 <#-- console.log("cpattern interpolated condition " + condition); -->
1494 <#-- console.log("cpattern interpolated newval " + newval); -->
1495 condition = (newval === true || newval == "true");
1496 <#-- console.log("cpattern interpolated new condition " + condition); -->
1497 patternValidator(ngModel.$viewValue);
1498 <#-- console.log("observe " + condition + " " + ngModel.$viewValue); -->
1499 });
1500
1501 function validate(regexp, value) {
1502 <#-- console.log("validate " + regexp + " " + value + " condition " + condition + " condizioni (value == null)" + (value == null) + " (value === '')" + (value === "") + " (condition)" + condition + " (!condition)" + (!condition) + " regexp.test(value)" + regexp.test(value)); -->
1503 if( value == null || value === "" || !condition || regexp.test(value) ) {
1504 ngModel.$setValidity('pattern', true);
1505 <#-- console.log("cpattern validate" , !condition || regexp.test(value)) -->
1506 <#-- console.log("cpattern validate true" , value); -->
1507 return value;
1508 }
1509 else {
1510 ngModel.$setValidity('pattern', false);
1511 <#-- console.log("cpattern validate" , !condition || regexp.test(value)) -->
1512 <#-- console.log("cpattern validate false" , value); -->
1513 return;
1514 }
1515 }
1516 }
1517 };
1518 });
1519
1520})();
1521
1522
1523</script>