detail pages
This commit is contained in:
parent
6a50a4d965
commit
efe4e27a78
7 changed files with 67 additions and 19 deletions
11
angular_app/event-detail.html
Normal file
11
angular_app/event-detail.html
Normal 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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
8
angular_app/js/app.js
vendored
8
angular_app/js/app.js
vendored
|
@ -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'
|
||||||
|
|
19
angular_app/js/controllers.js
vendored
19
angular_app/js/controllers.js
vendored
|
@ -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;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
);
|
||||||
|
|
||||||
|
|
11
angular_app/person-detail.html
Normal file
11
angular_app/person-detail.html
Normal 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>
|
||||||
|
|
|
@ -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> <span>{{person.surname}}</span>
|
<a href="/#/persons/{{person.id}}"><span>{{person.name}}</span> <span>{{person.surname}}</span></a>
|
||||||
<p>{{person.snippet}}</p>
|
<p>{{person.email}}</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
|
@ -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()})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue