show/hide messages
[angular-mojolicious.git] / public / app / drzb2011 / registration-en.html
1 <!DOCTYPE HTML>
2 <html xmlns:ng="http://angularjs.org">
3 <head>
4 <meta charset="utf-8">
5 <script src="angular.js" ng:autobind></script>
6
7 <title>Conference registration</title>
8
9 <script src="database.js"></script>
10 <script src="registration.js"></script>
11
12 <link rel="stylesheet" href="registration.css" type="text/css">
13
14 </head>
15 <body>
16
17
18
19 <h1>Registration and Proposal Submission</h1>
20
21
22
23
24 <div class="root" ng:controller="Registration" ng:init="$window.$root = this;">
25
26
27 <div ng:show="! registration.$id && ! symposium.$id">
28 <p>
29 All participants (presenters, coauthors and visitors) have to register via on-line register system.
30 </p>
31
32 <p>
33 Abstract of oral presentation/poster has to be submitted only by first author or by presenting coauthor. Other coauthors do not have to submit the abstract, only register.
34 </p>
35
36 <p>
37 The organizers of symposia have to submit not only the symposium’s abstract, but the abstracts of every single paper within it (it has to be four of them). Authors of papers within symposium DO NOT submit their abstracts on their own, but register as symposium participants.
38 </p>
39
40 <p>
41 The organizers of round tables have to submit only abstract of the round table, while its participants have to register as round table participants.
42 </p>
43
44 <p>
45 The abstracts length should be between 1800 and 2000 characters (space included). 
46 </p>
47
48 <p>
49 One person can be author of maximum three papers, only one of them as first/presenting/single author.
50 </p>
51
52
53
54 </div>
55
56 <!--
57 <a name="{{$location.hash}}" >bla</a>
58 -->
59
60 <div style="margin-bottom: 40px" ng:show="registration.$id && last_saved.$equals(registration)">
61
62
63 </div>
64 <div ng:show="registration.$id || symposium">
65         <h2>{{registration.person.name}} {{registration.person.surname}}</h2>
66         <!--
67         <label>Institution: {{registration.person.inst}}</label>
68         <label>Address: {{registration.person.address1}}, {{registration.person.city}}, {{registration.person.zip}}, {{registration.person.country}}</label>
69         -->
70         <label ng:show="registration.type == 'participant'">Registration type: Registration only</label>
71         <label ng:show="registration.type == 'accomp'">Registration type: Accompanying person</label>
72         <label ng:show="registration.type == 'student'">Registration type: Student</label>
73         <label ng:show="registration.type == 'sparticipant'">Registration type: Symposium participant<span ng:show="registration.student == true">, student</span></label>
74         <label ng:show="registration.type == 'round'">Registration type: Round table organizer<span ng:show="registration.student == true">, student</span><p><b>Round table topic:</b> {{registration.work.title}}</label>
75         <label ng:show="registration.type == 'lecture'">Registration type: Oral presentation<span ng:show="registration.student == true">, student</span></label>
76         <label ng:show="registration.type == 'poster'">Registration type: Poster presentation<span ng:show="registration.student == true">, student</span></label>
77         <label ng:show="registration.type == 'poster' || registration.type == 'lecture'"><b>Title: </b>{{registration.work.title}}</label>
78         <div ng:show="registration.type == 'symposium'">
79                 <p>Symposium organizer</p>
80                 <label><b>Symposium topic: </b><i>{{registration.symposium.title}}</i></label>
81                 <!--
82                 <label>Summary:</label> {{registration.symposium.abstract}}
83                 <br><br>
84                 -->
85                 <blockquote>
86                 <label>Submitted papers:</label>
87                 <ol>
88                 <li ng:repeat="w in symposium.works">
89                 <!--
90                 <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
91                 -->
92                 <span ng:show="registration.$id != w.$id">{{w.title}}</span>
93                 <b ng:show="registration.$id == w.$id">{{w.title}}</b>
94                 </li>
95                 </ol>
96                 </blockquote>
97         </div>
98 </div>
99 <!--
100 <div ng:show="registration.$id || symposium">
101         <h2>Contact Information</h2>
102         <label>{{registration.person.name}} {{registration.person.surname}}</label>
103         <label>{{registration.person.inst}}</label>
104         <label>{{registration.person.address1}}</label>
105         <label>{{registration.person.city}}, {{registration.person.zip}}, {{registration.person.country}}</label>
106         <label ng:show="registration.type == 'participant'"><h3>Registration type</h3> no paper</label>
107         <div ng:show="registration.type == 'symposium'">
108                 <p>Symposium organizer</p>
109                 <h3>Symposium</h3>
110                 <label>Topic:</label><i>{{registration.symposium.title}}</i>
111                 <label>Summary:</label> {{registration.symposium.abstract}}
112                 <br><br>
113                 <label>Submitted papers for this symposium:</label>
114                 <ol>
115                 <li ng:repeat="w in symposium.works">
116                 <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
117                 <span ng:show="registration.$id != w.$id">{{w.title}}</span>
118                 <b ng:show="registration.$id == w.$id">{{w.title}}</b>
119                 </li>
120                 </ol>
121         </div>
122 </div>
123 -->
124
125
126 <div id="submission" ng:show="! registration.$id && ! symposium.$id">
127         <div>
128                 <h2>Registration Type</h2>
129                 <label><input type="radio" name="registration.type" value="participant" ng:required>Registration only</label>
130                 <label><input type="radio" name="registration.type" value="sparticipant" ng:required>Symposium/round table participant</label>
131                 <label><input type="radio" name="registration.type" value="symposium" ng:required>Symposium organizer</label>
132                 <label><input type="radio" name="registration.type" value="round" ng:required>Round table organizer</label>
133                 <label><input type="radio" name="registration.type" value="lecture" ng:required>Oral presentation</label>
134                 <label><input type="radio" name="registration.type" value="poster" ng:required>Poster presentation</label>
135         </div>
136                 <label><input type="radio" name="registration.type" value="student" ng:required ng:change="registration.dinner = 'no'">Student registration only</label>
137                 <label><input type="radio" name="registration.type" value="accomp" ng:required>Accompanying person</label>
138 </div>
139
140 <div id="participant" ng:show="! registration.$id && ! symposium.$id">
141
142         
143         <h2>Contact Information</h2>
144         <div class="labelTop">
145                 <div class="input input4">First name</div>
146                 <div class="input input4">Surname</div>
147         </div>
148         <div style="clear: both">
149                 <input class="input4" name="registration.person.name" ng:required>
150                 <input class="input4" name="registration.person.surname" ng:required>
151         </div>
152         <div class="labelTop">
153                 <div class="input input5">Institution</div>
154         </div>  
155         <div style="clear: both">
156                 <input class="input5" name="registration.person.inst">
157         </div>
158         <div class="labelTop">
159                 <div class="input input5">Address</div>
160         </div>  
161         <div style="clear: both">
162                 <input class="input5" name="registration.person.address1" ng:required>
163         </div>
164         <div class="labelTop">
165                 <div class="input input6">City</div>
166                 <div class="input input6">ZIP</div>
167                 <div class="input input6">Country</div>
168         </div>
169         <div style="clear: both">
170                 <input class="input6" name="registration.person.city" ng:required>
171                 <input class="input6" name="registration.person.zip">
172                 <input class="input6" name="registration.person.country">
173         </div>
174         <div class="labelTop">
175                 <div class="input input4">E-mail</div>
176                 <div class="input input4">Phone number</div>
177         </div>
178         <div style="clear: both">
179                 <input class="input4" name="registration.person.email" ng:validate="email" ng:required>
180                 <input class="input4" name="registration.person.phone">
181         </div>
182         <div ng:show="registration.type == 'lecture' || registration.type == 'poster' || registration.type == 'sparticipant' || registration.type == 'symposium' || registration.type == 'round'">
183                 <br><input type="checkbox" name="registration.student">Check this box if you are student.
184         </div>
185         <div style="clear: both; margin-top: 20px;">
186                 Will you join us for the welcome reception on Thursday at 20 hrs?<br/>
187                 <input type="radio" name="registration.reception" value="yes">Yes
188                 <input type="radio" name="registration.reception" value="no">No
189         </div>
190         <div ng:show="registration.type != 'student'" style="clear: both; margin-top: 20px;">
191                 Will you join us for the conference dinner on Friday at 20 hrs? (Dinner is included in the regostration fee.)<br/>
192                 <input type="radio" name="registration.dinner" value="yes">Yes
193                 <input type="radio" name="registration.dinner" value="no">No
194         </div>
195         
196 </div>
197
198
199         
200         <div ng:show="registration.type == 'sparticipant' && ! last_saved.$id">
201                 <h2>Symposium/round table topic</h2>
202                 <input class="input1" name="registration.sympattend" ng:required>
203         </div>
204
205
206 <div id="work" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp'">
207 <div ng:show="registration.type == 'symposium' && registration.symposium.work_nr < 4 && ! symposium.$id">
208
209         <h2>Symposium</h2>
210         <label for="registration.symposium.title">Topic:</label>
211                 <input class="input1" name="registration.symposium.title" ng:required>
212         <label>Organizer:</label>
213                 <!--
214                 <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
215                 -->
216                 <div class="inputOrg"><span ng:show="registration.person.name">{{registration.person.name}} {{registration.person.surname}}</span><span ng:show="registration.person.inst">, {{registration.person.inst}}</span><span ng:show="registration.person.email">, {{registration.person.email}}</span></div>
217                 <div class="clear" ng:repeat="organizer in registration.symposium.organizers">
218                 <input class="input2" name="organizer.name" ng:required>
219                 <input class="input2" name="organizer.surname" ng:required>
220                 <input class="input3" name="organizer.inst" >
221                 <input class="input2" name="organizer.email" ng:required ng:validate="email">
222                 <a href="" ng:click="registration.symposium.organizers.$remove(organizer)">X</a>
223                 </div>
224                 <div class="clear"><a class="addPerson" href="" ng:click="registration.symposium.organizers.$add()">Add another organizer</a></div>
225         <label>Summary (<span class="lengthCount">{{registration.symposium.abstract.length}}</span> / max. 2000 characters)</label>
226                 <textarea class="input1" name="registration.symposium.abstract" rows="10" ng:validate="max_length:2000" ng:required></textarea>
227                 
228                 <div ng:show="symposium">
229                         <b>Symposium:</b> {{registration.symposium.title}}
230                         <blockquote>
231                         <label>Submitted papers for this symposium:</label>
232                         <ol>
233                         <li ng:repeat="w in symposium.works">
234                         <!--
235                         <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
236                         -->
237                         <span ng:show="registration.$id != w.$id">{{w.title}}</span>
238                         <b ng:show="registration.$id == w.$id">{{w.title}}</b>
239                         </li>
240                         </ol>
241                         </blockquote>
242                 </div>
243 </div>
244
245 <div ng:show="registration.type && ! last_saved.$id">
246
247 <!--
248                 <div ng:show="symposium">
249                         <b>Symposium:</b> {{registration.symposium.title}}
250                         <blockquote>
251                         <label>Submitted papers for this symposium:</label>
252                         <ol>
253                         <li ng:repeat="w in symposium.works">
254                         <a ng:show="registration.$id != w.$id" href="#{{w.$id}}" >{{w.title}}</a>
255                         <b ng:show="registration.$id == w.$id">{{w.title}}</b>
256                         </li>
257                         </ol>
258                         </blockquote>
259                 </div>
260 -->
261 <h3 ng:show="registration.type == 'symposium'">Add Symposium Paper ({{registration.symposium.work_nr}})</h3>
262 <h2 ng:show="registration.type == 'lecture'">Oral Presentation Sumbission</h2>
263 <h2 ng:show="registration.type == 'poster'">Poster Presentation Sumbission</h2>
264 <h2 ng:show="registration.type == 'round'">Round Table Disscussion Sumbission</h2>
265
266
267 <label>Title:</label>
268         <input class="input1" name="registration.work.title" ng:required>
269 <div ng:show="registration.type != 'round'">
270 <label>Authors</label>
271         <div>
272                 <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
273         </div>
274         <div class="clear" ng:repeat="author in registration.work.authors">
275                 <input class="input2" name="author.name" ng:required>
276                 <input class="input2" name="author.surname" ng:required>
277                 <input class="input3" name="author.inst" >
278                 <input class="input2" name="author.email" ng:required ng:validate="email">
279                 <a href="" ng:click="registration.work.authors.$remove(author)">X</a>
280         </div>
281         <a class="addPerson" href="" ng:click="registration.work.authors.$add()">Add another author</a>
282 </div>
283 <div ng:show="registration.type == 'round'">
284 <label>Organizer:</label>
285         <!--
286         <div class="input input2">First name</div><div class="input input2">Surname</div><div class="input input3">Institution</div><div class="input input2">E-mail</div>
287         -->
288                 <div class="inputOrg"><span ng:show="registration.person.name">{{registration.person.name}} {{registration.person.surname}}</span><span ng:show="registration.person.inst">, {{registration.person.inst}}</span><span ng:show="registration.person.email">, {{registration.person.email}}</span></div>
289         <div class="clear" ng:repeat="organizer in registration.work.organizers">
290                 <input class="input2" name="organizer.name" ng:required>
291                 <input class="input2" name="organizer.surname" ng:required>
292                 <input class="input3" name="organizer.inst" >
293                 <input class="input2" name="organizer.email" ng:required ng:validate="email">
294                 <a href="" ng:click="registration.work.organizers.$remove(organizer)">X</a>
295         </div>
296         <div class="clear"><a class="addPerson" href="" ng:click="registration.work.organizers.$add()">Add another organizer</a></div>
297 </div>
298
299 <label>Abstract (<span class="lengthCount">{{registration.work.abstract.length}}</span> / max. 2000 characters)</label>
300         <textarea class="input1" name="registration.work.abstract" rows="10" ng:validate="max_length:2000" ng:required></textarea>
301
302
303 </div> <!-- ng:show="registration.type" -->
304 </div>
305
306 <div class="button" ng:show="! last_saved.$equals(registration) && $invalidWidgets.visible() == 0 && (symposium.$id || (registration.reception != null && registration.dinner != null))">
307 <input type="submit" value="Save" ng:click="save();" ng:show="! last_saved.$equals(registration) && $invalidWidgets.visible() == 0" >
308 </div>
309
310 <div ng:show="$invalidWidgets.visible() &gt; 0 || (! symposium.$id && (registration.dinner == null || registration.reception == null))" style="color:red; margin-top: 20px">Please fill all required fields correctly. 
311 <span ng:show="$invalidWidgets.visible() &gt; 0">Fields with orange border call for your attention. <!-- - {{$invalidWidgets.visible()}} left. --></span>
312 <span ng:show="(registration.reception == null || registration.dinner == null) && ! symposium.$id && registration.type != 'student'">
313 Decide about going to welcome reception and dinner.</span>
314 <span ng:show="(registration.reception == null || registration.dinner == null) && ! symposium.$id && registration.type == 'student'">
315 Decide about going to welcome reception.</span>
316 </div>
317
318
319 <div style="margin-bottom: 40px" ng:show="registration.$id && last_saved.$equals(registration)">
320
321         <div class="saved" ng:show="registration.type == 'participant' || registration.type == 'sparticipant' || registration.type == 'student' || registration.type == 'accomp' && ! symposium">
322                 <span class="saved2">Thank you! Your registration has been submitted successfully!</span>
323                 <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read registration fee payment instructions</a></div>
324                 <div class="gohome" ng:show="registration.type == 'student' || registration.student == true">
325                         You must provide a proof of your student status by e-mail sent to <a href="mailto:drzb@ffzg.hr">drzb@ffzg.hr</a>
326                 </div>
327                 <br><br>
328         </div>
329         <div class="saved" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp' && registration.symposium.work_nr == 4 && last_saved.$id">
330                 <span class="saved2">Thank you. Your proposal has been submitted successfully! <br></span>
331                 <span class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read conference fee payment instructions</a></span>
332                 
333         </div>
334         <div class="button button2" ng:show="registration.type != 'participant' && registration.type != 'sparticipant' && registration.type != 'student' && registration.type != 'accomp' && last_saved.$id && ! symposium">
335                 <span class="saved2">Thank you. Your proposal has been submitted successfully! <br></span>
336                 <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011-eng/registration/fee">Please read registration fee payment instructions</a></div>
337                 <div class="gohome" ng:show="registration.type == 'student' || registration.student == true">
338                         You must provide a proof of your student status by e-mail sent to <a href="mailto:drzb@ffzg.hr">drzb@ffzg.hr</a>
339                 <br>
340         </div>
341         
342 </div>
343         <div class="button button2" ng:show="last_saved.$id && symposium.$id && registration.symposium.work_nr < 4">
344                 <input type="reset" value="Submit another paper" ng:click="reset()"> 
345         </div>
346 <!--
347 <div class="button2" ng:show="registration.$id && registration.type != 'participant' && registration.type != 'sparticipant' && last_saved.$equals(registration)">
348         <input type="reset" value="Submit another paper" ng:click="reset()">
349         <div class="gohome"><a href="http://psihologija.ffzg.hr/drzb2011/">Go to conference home page</a></div>
350 </div>
351 -->
352
353 </div>
354 <!--
355 <div ng:show="registration.$id">
356 Permalink to <a href="#{{registration.$id}}">DRZB2011 registration</a> which you can bookmark
357 </div>
358 -->
359 <input type=checkbox name=debug style="float: right; clear: both">
360 <pre ng:show="debug">
361
362 dirty={{! last_saved.$equals(registration)}} invalid={{$invalidWidgets.visible()}}
363
364 registration = {{registration}}
365
366 last_saved = {{last_saved}}
367
368 master = {{master}}
369
370 symposium = {{symposium}}
371
372 $id={{$id}}
373 registration.$id={{registration.$id}}
374 </pre>
375
376
377 </body>
378 </html>