2 <html xmlns:ng="http://angularjs.org">
6 <script src="angular.js" ng:autobind></script>
8 <script src="http://code.angularjs.org/0.9.15/angular-0.9.15.min.js"
12 Calendar.$inject = ['$xhr', '$resource','$log'];
14 function Calendar($xhr,$resource,$log){
15 $log.info('Calendar');
18 , "/reservations/get/www.google.com/calendar/ical/8tg8ecg285qshtp75813jktqa0%40group.calendar.google.com/private-b9d68b530fde2c6060979f8a05aa0865/basic.ics"
19 , function(code, response){
20 $log.log('xhr calendar', code, response);
25 var Reservation = $resource('/data/reservations/prijava/:id');
26 this.reservation = new Reservation();
28 this.load_submited = function() {
30 , "/reservations/events/submited"
31 , function(code, response){
32 $log.log('xhr submited', code, response);
33 self.submited = response;
39 self.reservation.status = 'event';
41 this.select_event = function(c) {
42 $log.info('select_event', c);
43 self.reservation.event = c;
44 self.reservation.status = 'changed';
45 if (self.submited) self.reservation.slot_nr = ++self.submited[c.UID];
48 this.change_event = function() {
49 self.reservation.event = null;
50 self.reservation.status = 'event';
54 this.save_submission = function() {
55 if ( self.reservation && self.reservation.event ) {
56 $log.info('submit save');
57 self.reservation.status = 'saved';
58 self.reservation.$save();
61 $log.info('submit ignored');
67 // http://groups.google.com/group/angular/browse_thread/thread/af68afb22fd2d2ab/18fc5e3216a77e53?show_docid=18fc5e3216a77e53
70 <title>Reservations</title>
78 <div ng:controller="Calendar">
80 <h1>{{data.cal['X-WR-CALNAME']}}</h1>
82 <div>{{data.cal['X-WR-CALDESC'] | html}}</div>
85 <li ng:repeat="c in data.events" ng:show="reservation.status == 'event'">
86 {{c.DTSTART}} - {{c.DTEND}}
88 <span ng:show="! submited[c.UID] || submited[c.UID] < c.slots">
89 <a href="" ng:click="select_event(c)">{{c.SUMMARY}}</a>
90 <em ng:show="submited[c.UID]">prijava: {{submited[c.UID]}}</em>
91 <em ng:show="c.slots">mjesta: {{c.slots}}</em>
94 <span ng:show="submited[c.UID] >= c.slots">
96 <em>popunjena sva mjesta: {{c.slots}}</em>
99 <div>{{c.LOCATION}}</div>
100 <div ng:show="c.DESCRIPTION">
106 <div ng:show="reservation.error" style="background:#f88">{{reservation.error}}</div>
108 <form ng:show="reservation.status != 'event'">
110 <div ng:show="reservation.event" style="background: #ff8">
111 Vaša <b>{{reservation.status}}</b> prijava za
112 <b>{{reservation.event.SUMMARY}}</b>
113 u terminu {{reservation.event.DTSTART}} u trajanju od {{reservation.event.hours}} sata
114 <span ng:show="reservation.slot_nr">broj {{reservation.slot_nr}}</span>
115 <span ng:show="reservation.saved">je spremljena.</span>
116 <input type=button value="Potvrdi promjenu" ng:show="reservation.changed" ng:click="save_submission()">
118 <a href="" ng:click="change_event()">Promjeni termin</a>
122 ime: <input name="reservation.name" ng:required>
124 prezime: <input name="reservation.surname" ng:required>
126 e-mail: <input name="reservation.email" ng:required>
128 odsjek: <input name="reservation.odsjek" ng:required>
130 zvanje: <input name="reservation.zvanje">
132 područke/tema zaninimanja: <input name="reservation.porducje">
134 <input type=button ng:click="save_submission()" value="Prijavi me" ng:disable="$invalidWidgets.visible()">
137 <input name=debug type=checkbox>
138 <pre ng:show="debug">
139 reservation={{reservation}}
140 submited={{submited}}