Davide Alberani 9 роки тому
батько
коміт
efe4e27a78

+ 11 - 0
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>
+

+ 1 - 1
angular_app/events-list.html

@@ -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>

+ 4 - 4
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 - 0
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 - 0
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>
+

+ 2 - 2
angular_app/persons-list.html

@@ -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>
 

+ 19 - 12
eventman_server.py

@@ -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()})