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"> <ul class="events">
<li ng-repeat="event in events | filter:query | orderBy:orderProp"> <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> <p>{{event['begin-datetime']}}</p>
</li> </li>
</ul> </ul>

View file

@ -10,17 +10,17 @@ eventManApp.config(['$routeProvider',
templateUrl: 'persons-list.html', templateUrl: 'persons-list.html',
controller: 'PersonsListCtrl' controller: 'PersonsListCtrl'
}). }).
when('/persons/:personId', { when('/persons/:personID', {
templateUrl: 'person-detail.html', templateUrl: 'person-detail.html',
controller: 'PersonDetailCtrl' controller: 'PersonDetailsCtrl'
}). }).
when('/events', { when('/events', {
templateUrl: 'events-list.html', templateUrl: 'events-list.html',
controller: 'EventsListCtrl' controller: 'EventsListCtrl'
}). }).
when('/events/:eventId', { when('/events/:eventID', {
templateUrl: 'event-detail.html', templateUrl: 'event-detail.html',
controller: 'EventDetailCtrl' controller: 'EventDetailsCtrl'
}). }).
otherwise({ otherwise({
redirectTo: '/events' 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', eventManControllers.controller('PersonsListCtrl', ['$scope', '$http',
function ($scope, $http) { function ($scope, $http) {
$http.get('/persons').success(function(data) { $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"> <ul class="persons">
<li ng-repeat="person in persons | filter:query | orderBy:orderProp"> <li ng-repeat="person in persons | filter:query | orderBy:orderProp">
<span>{{person.name}}</span>&nbsp;<span>{{person.surname}}</span> <a href="/#/persons/{{person.id}}"><span>{{person.name}}</span>&nbsp;<span>{{person.surname}}</span></a>
<p>{{person.snippet}}</p> <p>{{person.email}}</p>
</li> </li>
</ul> </ul>

View file

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