default number of slots
[angular-mojolicious.git] / angular-server.pl
index d51accd..09ca4b3 100755 (executable)
@@ -230,6 +230,8 @@ use iCal::Parser;
 
 plugin 'proxy';
 
+my $slot_regex = '(\d+)\s*mjesta';
+
 get '/reservations/get/(*url)' => sub {
        my $self = shift;
 
@@ -261,13 +263,16 @@ get '/reservations/get/(*url)' => sub {
 
        @events = map {
                foreach my $check_slot ( qw(
+                       DESCRIPTION
                        LOCATION
                        STATUS
                        SUMMARY
                )) {
                        next unless exists $_->{$check_slot};
-                       $_->{slots} = $1 if $_->{$check_slot} =~ m/(\d+)\s*mjesta/s;
+                       $_->{slots} = $1 if $_->{$check_slot} =~ m/$slot_regex/is;
                }
+               $_->{slots} ||= $1 if $ical->{cal}->{'X-WR-CALDESC'} =~ m/$slot_regex/s;
+               $_->{slots} ||= 15; # XXX default number of slots
                $_;
        } @events;
 
@@ -290,11 +295,11 @@ get '/reservations/events/:view_name' => sub {
                        language => 'javascript',
                        views => {
                                submited => {
-                                       map    => q|
+                                       map    => q|(
                                                function(doc) {
                                                        if ( doc.event && doc.event.UID ) emit(doc.event.UID, 1)
                                                }
-                                       |,
+                                       )|,
                                        reduce => q|_sum|,
                                }
                        }
@@ -307,6 +312,8 @@ get '/reservations/events/:view_name' => sub {
                $hash->{ $row->{key} } = $row->{value};
        }
 
+       $hash ||= {};
+
        _render_jsonp( $self, $hash );
 };