detail pages
This commit is contained in:
джерело
6a50a4d965
коміт
efe4e27a78
7 змінених файлів з 67 додано та 19 видалено
11
angular_app/event-detail.html
Звичайний файл
11
angular_app/event-detail.html
Звичайний файл
|
@ -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">
|
||||
<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>
|
||||
|
|
8
angular_app/js/app.js
сторонній
8
angular_app/js/app.js
сторонній
|
@ -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'
|
||||
|
|
19
angular_app/js/controllers.js
сторонній
19
angular_app/js/controllers.js
сторонній
|
@ -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;
|
||||
});
|
||||
}]
|
||||
);
|
||||
|
||||
|
|
11
angular_app/person-detail.html
Звичайний файл
11
angular_app/person-detail.html
Звичайний файл
|
@ -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">
|
||||
<li ng-repeat="person in persons | filter:query | orderBy:orderProp">
|
||||
<span>{{person.name}}</span> <span>{{person.surname}}</span>
|
||||
<p>{{person.snippet}}</p>
|
||||
<a href="/#/persons/{{person.id}}"><span>{{person.name}}</span> <span>{{person.surname}}</span></a>
|
||||
<p>{{person.email}}</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -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()})
|
||||
|
||||
|
||||
|
||||
|
|
Завантаження…
Посилання в новій задачі