Changeset 159

Show
Ignore:
Timestamp:
08/19/08 17:07:59 (5 months ago)
Author:
johnbywater
Message:

[js]: more work to get event handling between ThreadFactletsController? and ThreadPageController? operational.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/microfacts/public/behaviour/app/controllers/threadfactlets_controller.js

    r158 r159  
    88//        this.views.push(new PageTitleView('Factlets')); 
    99//        this.addDefaultListeners(); 
     10        this.factlets = []; 
     11    }, 
     12     
     13    onFactletSelect: function (factlet) { 
     14        console.log("ThreadFactletsController saw factletSelect event"); 
     15        console.log(factlet); 
     16        // Todo: Indicate selected factlet. 
     17        // el = findElement(factlet); 
     18        // el.highLight(); 
     19    }, 
     20 
     21    onNewData: function(data) { 
     22//       if data is relevant to us: 
     23//            this.factlets.append ... 
    1024    }, 
    1125     
    1226    controls: { 
    13         '.factlet click': function (el) { 
     27        '.factlet click': function (e) { 
     28            var evt = new Event(e); 
    1429            console.log('Factlet in ThreadFactlets clicked.'); 
    15             console.log(el); 
    16             this.fireEvent('factletSelect', el); 
     30            console.log(evt.target.id); 
     31            var divId = evt.target.id; 
     32            // Todo: Acquire factlet from div id value. 
     33            var factlet = {'title': 'MyFactlet', 'id': divId};  
     34            this.fireEvent('factletSelect', factlet); 
    1735//            this.model.data.title = "Virgin Wolf"; 
    1836//            this.model.save(); 
  • trunk/microfacts/public/behaviour/app/controllers/threadpage_controller.js

    r158 r159  
    22    Extends: Controller, 
    33 
    4     onFactletSelect: function(el) { 
     4    onFactletSelect: function(factlet) { 
    55        console.log('ThreadPageController: saw factletSelect event'); 
    6         console.log(el); 
     6        console.log(factlet); 
     7        this.fireEvent('factletSelect', factlet); 
    78    }, 
    89     
    910    initialize: function (element) { 
     11        this.controllers = []; 
    1012        console.log('ThreadPageController: initialize'); 
    1113        element.getElements('.thread-factlets').each(function (el) { 
    12             var con = new ThreadFactletsController(el); 
    13             con.addEvent('factletSelect', this.onFactletSelect.bind(this)); 
     14            this.addController(new ThreadFactletsController(el)); 
    1415        }, this); 
     16        console.log(threadId); 
     17        this.model = Model.Resource('Thread', threadId); 
     18        console.log('Model is'); 
     19        console.log(this.model); 
     20    }, 
     21 
     22    addController: function(controller) { 
     23        this.controllers.push(controller); 
     24        controller.addEvent('factletSelect', this.onFactletSelect.bind(this)); 
     25        this.addEvent('factletSelect', controller.onFactletSelect.bind(controller)); 
    1526    } 
    1627}); 
  • trunk/microfacts/public/behaviour/load.js

    r158 r159  
    7777}); 
    7878 
     79loader.addModule({ 
     80    name: "thread", 
     81    type: "js", 
     82    path: "app/models/thread.js?" + Math.random(), 
     83    requires: ['model'], 
     84    varName: "Thread" 
     85}); 
     86 
    7987// ========= 
    8088// = Views = 
     
    114122    type: "js", 
    115123    path: "app/controllers/threadfactlets_controller.js?" + Math.random(), 
    116     requires: ['controller'], 
     124    requires: ['controller', 'thread'], 
    117125    varName: "ThreadFactletsController" 
    118126}); 
     
    165173    type: "js", 
    166174    path: "app/controllers/threadpage_controller.js?" + Math.random(), 
    167     requires: ['model', 'view', 'controller', 'threadfactletscontroller'], 
     175    requires: ['model', 'view', 'controller', 'thread', 'threadfactletscontroller'], 
    168176    varName: "TheadPageController" 
    169177}); 
  • trunk/microfacts/templates/thread/update.html

    r158 r159  
    1515  </head> 
    1616 
     17  <script type="text/javascript" charset="utf-8"> 
     18    var threadId = ${c.thread.id}; 
     19  </script> 
     20   
    1721  <body> 
    1822    <aside id="thread-control-${c.thread.id}" py:if="len(c.thread.factlets) > 0">