// Utworzenie modułu dla podstawowej funkcjonalności aplikacji A-Mail.
var aMailServices = angular.module('AMail', []);

// Konfiguracja mapowań między adresami URL, szablonami i kontrolerami.
function emailRouteConfig($routeProvider) {
  $routeProvider.
    when('/', {
      controller: ListController,
      templateUrl: 'list.html'
    }).
// Zwróć uwagę, że dla widoku szczegółowego podajemy sparametryzowany komponent URL
// przez umieszczenie dwukropka przed identyfikatorem.
    when('/view/:id', {
      controller: DetailController,
      templateUrl: 'detail.html'
    }).
    otherwise({
      redirectTo: '/'
    });
}

// Konfiguracja trasy, aby mogła być znaleziona przez aplikację A-Mail.
aMailServices.config(emailRouteConfig);

// Kilka przykładowych wiadomości e-mail.
messages = [{
  id: 0, sender: 'janek@dowolnyadres.pl', subject: 'Witaj, stary przyjacielu',
  date: 'Dec 7, 2013 12:32:00', recipients: ['grzegorz@dowolnyadres.pl'],
  message: 'Cześć, czy możemy się w najbliższym czasie spotkać na obiedzie?'
  +'Znajdzie się wiele okazji, które będziemy świętować w tym roku.'
}, {
  id: 1,  sender: 'maria@dowolnyadres.pl',
  subject: 'Gdzie zapodziałeś mojego laptopa?',
  date: 'Dec 7, 2013 8:15:12', recipients: ['grzegorz@dowolnyadres.pl'],
  message: 'Byłam przekonana, że zostawiłeś go w szufladzie mojego biurka.'
  +'Niestety, tam go nie ma.'
}, {
  id: 2, sender: 'bartek@dowolnyadres.pl', subject: 'Zaginął pyton',
  date: 'Dec 6, 2013 20:35:02', recipients: ['grzegorz@dowolnyadres.pl'],
  message: 'Nie ma powodu do paniki, ale mój pyton uciekł z terrarium.'
  +'Nie porusza się zbyt szybko, po prostu zadzwoń, jeśli go zobaczysz.'
} ];

// Umieszczenie wiadomości w szablonie listy.
function ListController($scope) {
  $scope.messages = messages;
}

// Pobranie z trasy identyfikatora wiadomości (wyodrębnienie z adresu URL)
// i użycie go do wyszukania odpowiedniego obiektu wiadomości.
function DetailController($scope, $routeParams) {
  $scope.message = messages[$routeParams.id];
}
