detail pages

This commit is contained in:
Davide Alberani 2015-03-15 23:05:59 +01:00
parent 6a50a4d965
commit efe4e27a78
7 changed files with 67 additions and 19 deletions

View file

@ -0,0 +1,11 @@
<div class="container-fluid">
<div class="row">
<div class="col-md-10">
<h1><span class="label label-primary">{{event.title}}</span></h1>
<p>Date: {{event['begin-datetime']}}</p>
</div>
</div>
</div>

View file

@ -17,7 +17,7 @@
<ul class="events">
<li ng-repeat="event in events | filter:query | orderBy:orderProp">
<span>{{event.title}}</span>
<span><a href="/#/events/{{event.id}}">{{event.title}}</a></span>
<p>{{event['begin-datetime']}}</p>
</li>
</ul>

View file

@ -10,17 +10,17 @@ eventManApp.config(['$routeProvider',
templateUrl: 'persons-list.html',
controller: 'PersonsListCtrl'
}).
when('/persons/:personId', {
when('/persons/:personID', {
templateUrl: 'person-detail.html',
controller: 'PersonDetailCtrl'
controller: 'PersonDetailsCtrl'
}).
when('/events', {
templateUrl: 'events-list.html',
controller: 'EventsListCtrl'
}).
when('/events/:eventId', {
when('/events/:eventID', {
templateUrl: 'event-detail.html',
controller: 'EventDetailCtrl'
controller: 'EventDetailsCtrl'
}).
otherwise({
redirectTo: '/events'

View file

@ -14,6 +14,16 @@ eventManControllers.controller('EventsListCtrl', ['$scope', '$http',
);
eventManControllers.controller('EventDetailsCtrl', ['$scope', '$http', '$routeParams',
function ($scope, $http, $routeParams) {
$http.get("/events/" + $routeParams.eventID).success(function(data) {
$scope.event = data.event;
});
}]
);
eventManControllers.controller('PersonsListCtrl', ['$scope', '$http',
function ($scope, $http) {
$http.get('/persons').success(function(data) {
@ -23,3 +33,12 @@ eventManControllers.controller('PersonsListCtrl', ['$scope', '$http',
}]
);
eventManControllers.controller('PersonDetailsCtrl', ['$scope', '$http', '$routeParams',
function ($scope, $http, $routeParams) {
$http.get("/persons/" + $routeParams.personID).success(function(data) {
$scope.person = data.person;
});
}]
);

View file

@ -0,0 +1,11 @@
<div class="container-fluid">
<div class="row">
<div class="col-md-10">
<h1><span class="label label-primary">{{person.name}} {{person.surname}}</span></h1>
<p>Email: {{person.email}}</p>
</div>
</div>
</div>

View file

@ -17,8 +17,8 @@
<ul class="persons">
<li ng-repeat="person in persons | filter:query | orderBy:orderProp">
<span>{{person.name}}</span>&nbsp;<span>{{person.surname}}</span>
<p>{{person.snippet}}</p>
<a href="/#/persons/{{person.id}}"><span>{{person.name}}</span>&nbsp;<span>{{person.surname}}</span></a>
<p>{{person.email}}</p>
</li>
</ul>

View file

@ -11,7 +11,7 @@ import tornado.ioloop
import tornado.options
from tornado.options import define, options
import tornado.web
from tornado import gen, escape
from tornado import gen
class RootHandler(tornado.web.RequestHandler):
angular_app_path = os.path.join(os.path.dirname(__file__), "angular_app")
@ -20,26 +20,27 @@ class RootHandler(tornado.web.RequestHandler):
with open(self.angular_app_path + "/index.html", 'r') as fd:
self.write(fd.read())
MOCKUP_PERSONS = [
{'name': 'Silvia', 'surname': 'Castellari',
MOCKUP_PERSONS = {
1: {'name': 'Silvia', 'surname': 'Castellari',
'email': 'hackinbo.it@gmail.com',
'id': 1},
{'name': 'Daniele', 'surname': 'Castellari',
2: {'name': 'Daniele', 'surname': 'Castellari',
'email': 'hackinbo.it@gmail.com',
'id': 2},
{'name': 'Mario', 'surname': 'Anglani',
3: {'name': 'Mario', 'surname': 'Anglani',
'email': 'hackinbo.it@gmail.com',
'id': 3}]
'id': 3}
}
import datetime
MOCKUP_EVENTS = [
{'title': 'HackInBo 2015', 'begin-datetime': datetime.datetime(2015, 5, 23, 9, 0),
MOCKUP_EVENTS = {
1: {'title': 'HackInBo 2015', 'begin-datetime': datetime.datetime(2015, 5, 23, 9, 0),
'end-datetime': datetime.datetime(2015, 5, 24, 17, 0),
'location': 'Bologna', 'id': 1},
{'title': 'La fiera del carciofo', 'begin-datetime': datetime.datetime(2015, 6, 23, 9, 0),
2: {'title': 'La fiera del carciofo', 'begin-datetime': datetime.datetime(2015, 6, 23, 9, 0),
'end-datetime': datetime.datetime(2015, 6, 24, 17, 0),
'location': 'Gatteo a mare', 'id': 2},
]
}
import json
@ -55,13 +56,19 @@ json._default_encoder = ImprovedEncoder()
class PersonsHandler(tornado.web.RequestHandler):
@gen.coroutine
def get(self, id_=None):
self.write({'persons': MOCKUP_PERSONS})
if id_ is not None:
self.write({'person': MOCKUP_PERSONS[int(id_)]})
return
self.write({'persons': MOCKUP_PERSONS.values()})
class EventsHandler(tornado.web.RequestHandler):
@gen.coroutine
def get(self, id_=None):
self.write({'events': MOCKUP_EVENTS})
if id_ is not None:
self.write({'event': MOCKUP_EVENTS[int(id_)]})
return
self.write({'events': MOCKUP_EVENTS.values()})