riojs 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/VERSION +1 -1
  2. data/public/images/sub-menu-indicator.png +0 -0
  3. data/public/javascripts/components/alert_box.js +34 -24
  4. data/public/javascripts/components/grid_view.js +32 -10
  5. data/public/javascripts/components/input.js +6 -0
  6. data/public/javascripts/components/lightbox.js +137 -141
  7. data/public/javascripts/components/list_view.js +2 -2
  8. data/public/javascripts/components/menu.js +93 -50
  9. data/public/javascripts/components/overlay.js +117 -118
  10. data/public/javascripts/components/popup.js +213 -0
  11. data/public/javascripts/components/toggle_button.js +3 -2
  12. data/public/javascripts/lib/console/docs/files.html +1 -1
  13. data/public/javascripts/lib/console/docs/index.html +1 -1
  14. data/public/javascripts/lib/console/docs/symbols/Object.html +1 -1
  15. data/public/javascripts/lib/console/docs/symbols/_global_.html +1 -1
  16. data/public/javascripts/lib/console/docs/symbols/rio.Application.html +1 -1
  17. data/public/javascripts/lib/console/docs/symbols/rio.Attr.html +1 -1
  18. data/public/javascripts/lib/console/docs/symbols/rio.Binding.html +1 -1
  19. data/public/javascripts/lib/console/docs/symbols/rio.Component.html +1 -1
  20. data/public/javascripts/lib/console/docs/symbols/rio.Cookie.html +1 -1
  21. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask#initialize.html +1 -1
  22. data/public/javascripts/lib/console/docs/symbols/rio.DelayedTask.html +1 -1
  23. data/public/javascripts/lib/console/docs/symbols/rio.JsTemplate.html +1 -1
  24. data/public/javascripts/lib/console/docs/symbols/rio.Juggernaut.html +1 -1
  25. data/public/javascripts/lib/console/docs/symbols/rio.Model.html +1 -1
  26. data/public/javascripts/lib/console/docs/symbols/rio.Page.html +1 -1
  27. data/public/javascripts/lib/console/docs/symbols/rio.Utils.html +1 -1
  28. data/public/javascripts/lib/console/docs/symbols/rio.html +1 -1
  29. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_model.js.html +506 -493
  30. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_page.js.html +5 -5
  31. data/public/javascripts/lib/console/docs/symbols/src/public_javascripts_lib_protohack.js.html +126 -123
  32. data/public/javascripts/lib/model.js +18 -5
  33. data/public/javascripts/lib/page.js +5 -5
  34. data/public/javascripts/lib/protohack.js +12 -9
  35. data/public/javascripts/specs/lib/model_spec.js +13 -0
  36. data/public/stylesheets/components/alert_box.css +5 -1
  37. data/public/stylesheets/components/menu.css +17 -17
  38. data/public/stylesheets/components/popup.css +18 -0
  39. metadata +5 -2
@@ -13,10 +13,11 @@ rio.components.ToggleButton = rio.Component.create(rio.components.Base, {
13
13
  href: "",
14
14
  onclick: "return false;"
15
15
  });
16
- linkHtml.observe("click", function() {
16
+ linkHtml.observe("click", function(e) {
17
17
  this.setState(!this.getState());
18
18
  this.fire("toggle");
19
- }.bind(this));
19
+ e.stop();
20
+ }.bindAsEventListener(this));
20
21
  return linkHtml;
21
22
  }
22
23
  }
@@ -573,7 +573,7 @@ ul.inheritsList
573
573
  </div>
574
574
  <div class="fineprint" style="clear:both">
575
575
 
576
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
576
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
577
577
  </div>
578
578
  </body>
579
579
  </html>
@@ -317,7 +317,7 @@ ul.inheritsList
317
317
  </div>
318
318
  <div class="fineprint" style="clear:both">
319
319
 
320
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
320
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
321
321
  </div>
322
322
  </body>
323
323
  </html>
@@ -285,7 +285,7 @@ ul.inheritsList
285
285
  <!-- ============================== footer ================================= -->
286
286
  <div class="fineprint" style="clear:both">
287
287
 
288
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:26 GMT-0500 (CDT)
288
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:22 GMT-0500 (CDT)
289
289
  </div>
290
290
  </body>
291
291
  </html>
@@ -407,7 +407,7 @@ ul.inheritsList
407
407
  <!-- ============================== footer ================================= -->
408
408
  <div class="fineprint" style="clear:both">
409
409
 
410
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:26 GMT-0500 (CDT)
410
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:22 GMT-0500 (CDT)
411
411
  </div>
412
412
  </body>
413
413
  </html>
@@ -960,7 +960,7 @@ ul.inheritsList
960
960
  <!-- ============================== footer ================================= -->
961
961
  <div class="fineprint" style="clear:both">
962
962
 
963
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
963
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
964
964
  </div>
965
965
  </body>
966
966
  </html>
@@ -1069,7 +1069,7 @@ ul.inheritsList
1069
1069
  <!-- ============================== footer ================================= -->
1070
1070
  <div class="fineprint" style="clear:both">
1071
1071
 
1072
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
1072
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
1073
1073
  </div>
1074
1074
  </body>
1075
1075
  </html>
@@ -266,7 +266,7 @@ ul.inheritsList
266
266
  <!-- ============================== footer ================================= -->
267
267
  <div class="fineprint" style="clear:both">
268
268
 
269
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
269
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
270
270
  </div>
271
271
  </body>
272
272
  </html>
@@ -413,7 +413,7 @@ ul.inheritsList
413
413
  <!-- ============================== footer ================================= -->
414
414
  <div class="fineprint" style="clear:both">
415
415
 
416
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
416
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
417
417
  </div>
418
418
  </body>
419
419
  </html>
@@ -537,7 +537,7 @@ ul.inheritsList
537
537
  <!-- ============================== footer ================================= -->
538
538
  <div class="fineprint" style="clear:both">
539
539
 
540
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
540
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
541
541
  </div>
542
542
  </body>
543
543
  </html>
@@ -264,7 +264,7 @@ ul.inheritsList
264
264
  <!-- ============================== footer ================================= -->
265
265
  <div class="fineprint" style="clear:both">
266
266
 
267
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
267
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
268
268
  </div>
269
269
  </body>
270
270
  </html>
@@ -385,7 +385,7 @@ ul.inheritsList
385
385
  <!-- ============================== footer ================================= -->
386
386
  <div class="fineprint" style="clear:both">
387
387
 
388
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
388
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
389
389
  </div>
390
390
  </body>
391
391
  </html>
@@ -265,7 +265,7 @@ ul.inheritsList
265
265
  <!-- ============================== footer ================================= -->
266
266
  <div class="fineprint" style="clear:both">
267
267
 
268
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
268
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
269
269
  </div>
270
270
  </body>
271
271
  </html>
@@ -323,7 +323,7 @@ ul.inheritsList
323
323
  <!-- ============================== footer ================================= -->
324
324
  <div class="fineprint" style="clear:both">
325
325
 
326
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
326
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
327
327
  </div>
328
328
  </body>
329
329
  </html>
@@ -816,7 +816,7 @@ ul.inheritsList
816
816
  <!-- ============================== footer ================================= -->
817
817
  <div class="fineprint" style="clear:both">
818
818
 
819
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
819
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
820
820
  </div>
821
821
  </body>
822
822
  </html>
@@ -377,7 +377,7 @@ ul.inheritsList
377
377
  <!-- ============================== footer ================================= -->
378
378
  <div class="fineprint" style="clear:both">
379
379
 
380
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
380
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
381
381
  </div>
382
382
  </body>
383
383
  </html>
@@ -611,7 +611,7 @@ ul.inheritsList
611
611
  <!-- ============================== footer ================================= -->
612
612
  <div class="fineprint" style="clear:both">
613
613
 
614
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
614
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:23 GMT-0500 (CDT)
615
615
  </div>
616
616
  </body>
617
617
  </html>
@@ -500,7 +500,7 @@ iiii jjjj
500
500
  <!-- ============================== footer ================================= -->
501
501
  <div class="fineprint" style="clear:both">
502
502
 
503
- Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Tue Apr 20 2010 22:45:27 GMT-0500 (CDT)
503
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> 2.0.2 on Mon Apr 26 2010 13:58:22 GMT-0500 (CDT)
504
504
  </div>
505
505
  </body>
506
506
  </html>
@@ -576,500 +576,513 @@
576
576
  <span class='line'>569</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
577
577
  <span class='line'>570</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
578
578
  <span class='line'>571</span>
579
- <span class='line'>572</span> </span><span class="NAME">belongsTo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">args</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
580
- <span class='line'>573</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
581
- <span class='line'>574</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">;</span><span class="WHIT">
582
- <span class='line'>575</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">args</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
583
- <span class='line'>576</span> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
584
- <span class='line'>577</span> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
585
- <span class='line'>578</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
586
- <span class='line'>579</span> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">;</span><span class="WHIT">
587
- <span class='line'>580</span> </span><span class="PUNC">}</span><span class="WHIT">
588
- <span class='line'>581</span> </span><span class="NAME">this.attrAccessor</span><span class="PUNC">(</span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
589
- <span class='line'>582</span> </span><span class="NAME">this.clientOnlyAttr</span><span class="PUNC">(</span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
590
- <span class='line'>583</span>
591
- <span class='line'>584</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.className</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">associationName.classize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
592
- <span class='line'>585</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">foreignKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.foreignKey</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"Id"</span><span class="PUNC">;</span><span class="WHIT">
593
- <span class='line'>586</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">"get-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
594
- <span class='line'>587</span>
595
- <span class='line'>588</span> </span><span class="NAME">this.prototype</span><span class="PUNC">[</span><span class="NAME">getName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.prototype</span><span class="PUNC">[</span><span class="NAME">getName</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">wrap</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">proceed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
596
- <span class='line'>589</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="STRN">"_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
597
- <span class='line'>590</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setAssociation</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
598
- <span class='line'>591</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">associationId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="STRN">"_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">foreignKey</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
599
- <span class='line'>592</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">foundValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">find</span><span class="PUNC">(</span><span class="NAME">associationId</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
600
- <span class='line'>593</span> </span><span class="NAME">asynchronous</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT">
601
- <span class='line'>594</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
602
- <span class='line'>595</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="STRN">"set-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">foundValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
603
- <span class='line'>596</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
604
- <span class='line'>597</span> </span><span class="NAME">setAssociation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
605
- <span class='line'>598</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">foreignKey</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="NAME">setAssociation</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
606
- <span class='line'>599</span> </span><span class="PUNC">}</span><span class="WHIT">
607
- <span class='line'>600</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">proceed.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$A</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
608
- <span class='line'>601</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
609
- <span class='line'>602</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
610
- <span class='line'>603</span>
611
- <span class='line'>604</span> </span><span class="NAME">_parametersFromJsonParameters</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
612
- <span class='line'>605</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">rio.Parameters</span><span class="PUNC">(</span><span class="WHIT">
613
- <span class='line'>606</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inject</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">acc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
614
- <span class='line'>607</span> </span><span class="NAME">acc</span><span class="PUNC">[</span><span class="NAME">p.camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
615
- <span class='line'>608</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">acc</span><span class="PUNC">;</span><span class="WHIT">
616
- <span class='line'>609</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
617
- <span class='line'>610</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
618
- <span class='line'>611</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
619
- <span class='line'>612</span>
620
- <span class='line'>613</span> </span><span class="NAME">_processIncludedCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
621
- <span class='line'>614</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">json.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
622
- <span class='line'>615</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">include</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
623
- <span class='line'>616</span> </span><span class="NAME">params</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._parametersFromJsonParameters</span><span class="PUNC">(</span><span class="NAME">include.parameters</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
624
- <span class='line'>617</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">include.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">url</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
625
- <span class='line'>618</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">params.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
626
- <span class='line'>619</span> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">include.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">_collectionEntityFromJson</span><span class="PUNC">(</span><span class="NAME">include.json</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">params</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
627
- <span class='line'>620</span> </span><span class="PUNC">}</span><span class="WHIT">
628
- <span class='line'>621</span> </span><span class="PUNC">}</span><span class="WHIT">
629
- <span class='line'>622</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
630
- <span class='line'>623</span>
631
- <span class='line'>624</span> </span><span class="NAME">_filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
632
- <span class='line'>625</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">inJson._set</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
633
- <span class='line'>626</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ceFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
634
- <span class='line'>627</span> </span><span class="NAME">model._processIncludedCollectionEntities</span><span class="PUNC">(</span><span class="NAME">inJson._set.include</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
635
- <span class='line'>628</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
636
- <span class='line'>629</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">rio.Model.filterJson</span><span class="PUNC">(</span><span class="NAME">inJson._set.self</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ceFunction</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
637
- <span class='line'>630</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
638
- <span class='line'>631</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">rio.Model.filterJson</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
639
- <span class='line'>632</span> </span><span class="PUNC">}</span><span class="WHIT">
640
- <span class='line'>633</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
641
- <span class='line'>634</span>
642
- <span class='line'>635</span> </span><span class="NAME">_filterAndProcessJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
643
- <span class='line'>636</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
644
- <span class='line'>637</span> </span><span class="NAME">results</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
645
- <span class='line'>638</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
646
- <span class='line'>639</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
647
- <span class='line'>640</span>
648
- <span class='line'>641</span> </span><span class="NAME">_collectionEntityFromJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
649
- <span class='line'>642</span> </span><span class="COMM">// In case multiple identical queries were made simultaneously</span><span class="WHIT">
650
- <span class='line'>643</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
651
- <span class='line'>644</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
652
- <span class='line'>645</span> </span><span class="PUNC">}</span><span class="WHIT">
653
- <span class='line'>646</span>
654
- <span class='line'>647</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">result</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
655
- <span class='line'>648</span> </span><span class="COMM">// This may cause bugs. It should map the results of _filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="WHIT">
656
- <span class='line'>649</span> </span><span class="COMM">// and execute them after them map to prevent reification collisions</span><span class="WHIT">
657
- <span class='line'>650</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">modelJson</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">result</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
658
- <span class='line'>651</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">modelJson.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
659
- <span class='line'>652</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
660
- <span class='line'>653</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="PUNC">;</span><span class="WHIT">
661
- <span class='line'>654</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
662
- <span class='line'>655</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lazyNew</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
663
- <span class='line'>656</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">modelJson.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
664
- <span class='line'>657</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
665
- <span class='line'>658</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">modelJson</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
666
- <span class='line'>659</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
667
- <span class='line'>660</span> </span><span class="NAME">lazyNew.__lazyNew</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
668
- <span class='line'>661</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">lazyNew</span><span class="PUNC">;</span><span class="WHIT">
669
- <span class='line'>662</span> </span><span class="PUNC">}</span><span class="WHIT">
670
- <span class='line'>663</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
671
- <span class='line'>664</span>
672
- <span class='line'>665</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.CollectionEntity.create</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
673
- <span class='line'>666</span> </span><span class="NAME">model</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT">
674
- <span class='line'>667</span> </span><span class="NAME">values</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">,</span><span class="WHIT">
675
- <span class='line'>668</span> </span><span class="NAME">condition</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">parameters.conditionFunction</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
676
- <span class='line'>669</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
677
- <span class='line'>670</span> </span><span class="NAME">collectionEntity.prepare</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
678
- <span class='line'>671</span> </span><span class="NAME">collectionEntity.prepare</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
679
- <span class='line'>672</span> </span><span class="COMM">// prevent the initialization from double adding the entities</span><span class="WHIT">
680
- <span class='line'>673</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldAdd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.add</span><span class="PUNC">;</span><span class="WHIT">
681
- <span class='line'>674</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
682
- <span class='line'>675</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
683
- <span class='line'>676</span> </span><span class="NAME">this.add</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
684
- <span class='line'>677</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">timesToLoop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.length</span><span class="PUNC">;</span><span class="WHIT">
685
- <span class='line'>678</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">toRemove</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
686
- <span class='line'>679</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">timesToLoop</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
687
- <span class='line'>680</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">__lazyNew</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
688
- <span class='line'>681</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">modelInstance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
689
- <span class='line'>682</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.include</span><span class="PUNC">(</span><span class="NAME">modelInstance</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
690
- <span class='line'>683</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">modelInstance</span><span class="PUNC">;</span><span class="WHIT">
691
- <span class='line'>684</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
692
- <span class='line'>685</span> </span><span class="NAME">toRemove.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
693
- <span class='line'>686</span> </span><span class="PUNC">}</span><span class="WHIT">
694
- <span class='line'>687</span> </span><span class="PUNC">}</span><span class="WHIT">
695
- <span class='line'>688</span> </span><span class="PUNC">}</span><span class="WHIT">
696
- <span class='line'>689</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">toRemove.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
697
- <span class='line'>690</span> </span><span class="NAME">this.splice</span><span class="PUNC">(</span><span class="NAME">toRemove</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
698
- <span class='line'>691</span> </span><span class="PUNC">}</span><span class="WHIT">
699
- <span class='line'>692</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
700
- <span class='line'>693</span> </span><span class="NAME">this.add</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">oldAdd</span><span class="PUNC">;</span><span class="WHIT">
701
- <span class='line'>694</span> </span><span class="PUNC">}</span><span class="WHIT">
702
- <span class='line'>695</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
703
- <span class='line'>696</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
704
- <span class='line'>697</span> </span><span class="COMM">// Ultimately we shouldn't need to do this</span><span class="WHIT">
705
- <span class='line'>698</span> </span><span class="COMM">// This is required if when parsing eager loaded json collections</span><span class="WHIT">
706
- <span class='line'>699</span> </span><span class="COMM">// contain individual entities that need to be added to other collection entities</span><span class="WHIT">
707
- <span class='line'>700</span> </span><span class="COMM">// and the entity representing the eager collection is never loaded, hence prepared.</span><span class="WHIT">
708
- <span class='line'>701</span> </span><span class="NAME">collectionEntity.prepare</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
709
- <span class='line'>702</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">defer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
710
- <span class='line'>703</span> </span><span class="NAME">this.putCollectionEntity</span><span class="PUNC">(</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
711
- <span class='line'>704</span>
712
- <span class='line'>705</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="PUNC">;</span><span class="WHIT">
713
- <span class='line'>706</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
714
- <span class='line'>707</span>
715
- <span class='line'>708</span> </span><span class="NAME">_clientOnlyAttrs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
716
- <span class='line'>709</span>
717
- <span class='line'>710</span> </span><span class="NAME">clientOnlyAttr</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attrName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
718
- <span class='line'>711</span> </span><span class="NAME">this._clientOnlyAttrs.push</span><span class="PUNC">(</span><span class="NAME">attrName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
719
- <span class='line'>712</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
579
+ <span class='line'>572</span> </span><span class="NAME">_belongsToAssociations</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
580
+ <span class='line'>573</span> </span><span class="NAME">belongsTo</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">args</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
581
+ <span class='line'>574</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
582
+ <span class='line'>575</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">;</span><span class="WHIT">
583
+ <span class='line'>576</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">args</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
584
+ <span class='line'>577</span> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
585
+ <span class='line'>578</span> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
586
+ <span class='line'>579</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
587
+ <span class='line'>580</span> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args</span><span class="PUNC">;</span><span class="WHIT">
588
+ <span class='line'>581</span> </span><span class="PUNC">}</span><span class="WHIT">
589
+ <span class='line'>582</span> </span><span class="NAME">options.className</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.className</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">associationName.classize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
590
+ <span class='line'>583</span> </span><span class="NAME">options.foreignKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.foreignKey</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"Id"</span><span class="PUNC">;</span><span class="WHIT">
591
+ <span class='line'>584</span>
592
+ <span class='line'>585</span> </span><span class="NAME">this._belongsToAssociations</span><span class="PUNC">[</span><span class="NAME">associationName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">;</span><span class="WHIT">
593
+ <span class='line'>586</span>
594
+ <span class='line'>587</span> </span><span class="NAME">this.attrAccessor</span><span class="PUNC">(</span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
595
+ <span class='line'>588</span> </span><span class="NAME">this.clientOnlyAttr</span><span class="PUNC">(</span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
596
+ <span class='line'>589</span>
597
+ <span class='line'>590</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">getName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="STRN">"get-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
598
+ <span class='line'>591</span>
599
+ <span class='line'>592</span> </span><span class="NAME">this.prototype</span><span class="PUNC">[</span><span class="NAME">getName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.prototype</span><span class="PUNC">[</span><span class="NAME">getName</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">wrap</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">proceed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
600
+ <span class='line'>593</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="STRN">"_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
601
+ <span class='line'>594</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">setAssociation</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
602
+ <span class='line'>595</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">associationId</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="STRN">"_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">options.foreignKey</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
603
+ <span class='line'>596</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">foundValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">find</span><span class="PUNC">(</span><span class="NAME">associationId</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
604
+ <span class='line'>597</span> </span><span class="NAME">asynchronous</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT">
605
+ <span class='line'>598</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
606
+ <span class='line'>599</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="STRN">"set-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">associationName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="NAME">foundValue</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
607
+ <span class='line'>600</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
608
+ <span class='line'>601</span> </span><span class="NAME">setAssociation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
609
+ <span class='line'>602</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">options.foreignKey</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="NAME">setAssociation</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
610
+ <span class='line'>603</span> </span><span class="PUNC">}</span><span class="WHIT">
611
+ <span class='line'>604</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">proceed.apply</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">$A</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
612
+ <span class='line'>605</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
613
+ <span class='line'>606</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
614
+ <span class='line'>607</span>
615
+ <span class='line'>608</span> </span><span class="NAME">_parametersFromJsonParameters</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
616
+ <span class='line'>609</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">rio.Parameters</span><span class="PUNC">(</span><span class="WHIT">
617
+ <span class='line'>610</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inject</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">acc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
618
+ <span class='line'>611</span> </span><span class="NAME">acc</span><span class="PUNC">[</span><span class="NAME">p.camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">params</span><span class="PUNC">[</span><span class="NAME">p</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
619
+ <span class='line'>612</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">acc</span><span class="PUNC">;</span><span class="WHIT">
620
+ <span class='line'>613</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="WHIT">
621
+ <span class='line'>614</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
622
+ <span class='line'>615</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
623
+ <span class='line'>616</span>
624
+ <span class='line'>617</span> </span><span class="NAME">_processIncludedCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
625
+ <span class='line'>618</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">json.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
626
+ <span class='line'>619</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">include</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
627
+ <span class='line'>620</span> </span><span class="NAME">params</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._parametersFromJsonParameters</span><span class="PUNC">(</span><span class="NAME">include.parameters</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
628
+ <span class='line'>621</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">include.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">url</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
629
+ <span class='line'>622</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">params.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
630
+ <span class='line'>623</span> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">include.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">_collectionEntityFromJson</span><span class="PUNC">(</span><span class="NAME">include.json</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">params</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
631
+ <span class='line'>624</span> </span><span class="PUNC">}</span><span class="WHIT">
632
+ <span class='line'>625</span> </span><span class="PUNC">}</span><span class="WHIT">
633
+ <span class='line'>626</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
634
+ <span class='line'>627</span>
635
+ <span class='line'>628</span> </span><span class="NAME">_filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
636
+ <span class='line'>629</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">inJson._set</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
637
+ <span class='line'>630</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ceFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
638
+ <span class='line'>631</span> </span><span class="NAME">model._processIncludedCollectionEntities</span><span class="PUNC">(</span><span class="NAME">inJson._set.include</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
639
+ <span class='line'>632</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
640
+ <span class='line'>633</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">rio.Model.filterJson</span><span class="PUNC">(</span><span class="NAME">inJson._set.self</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">ceFunction</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
641
+ <span class='line'>634</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
642
+ <span class='line'>635</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">rio.Model.filterJson</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
643
+ <span class='line'>636</span> </span><span class="PUNC">}</span><span class="WHIT">
644
+ <span class='line'>637</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
645
+ <span class='line'>638</span>
646
+ <span class='line'>639</span> </span><span class="NAME">_filterAndProcessJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
647
+ <span class='line'>640</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="PUNC">(</span><span class="NAME">inJson</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
648
+ <span class='line'>641</span> </span><span class="NAME">results</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
649
+ <span class='line'>642</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
650
+ <span class='line'>643</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
651
+ <span class='line'>644</span>
652
+ <span class='line'>645</span> </span><span class="NAME">_collectionEntityFromJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
653
+ <span class='line'>646</span> </span><span class="COMM">// In case multiple identical queries were made simultaneously</span><span class="WHIT">
654
+ <span class='line'>647</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
655
+ <span class='line'>648</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
656
+ <span class='line'>649</span> </span><span class="PUNC">}</span><span class="WHIT">
657
+ <span class='line'>650</span>
658
+ <span class='line'>651</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">result</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
659
+ <span class='line'>652</span> </span><span class="COMM">// This may cause bugs. It should map the results of _filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="WHIT">
660
+ <span class='line'>653</span> </span><span class="COMM">// and execute them after them map to prevent reification collisions</span><span class="WHIT">
661
+ <span class='line'>654</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">modelJson</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">result</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
662
+ <span class='line'>655</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">modelJson.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
663
+ <span class='line'>656</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
664
+ <span class='line'>657</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="PUNC">;</span><span class="WHIT">
665
+ <span class='line'>658</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
666
+ <span class='line'>659</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">lazyNew</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
667
+ <span class='line'>660</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">modelJson.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
668
+ <span class='line'>661</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
669
+ <span class='line'>662</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">modelJson</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
670
+ <span class='line'>663</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
671
+ <span class='line'>664</span> </span><span class="NAME">lazyNew.__lazyNew</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
672
+ <span class='line'>665</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">lazyNew</span><span class="PUNC">;</span><span class="WHIT">
673
+ <span class='line'>666</span> </span><span class="PUNC">}</span><span class="WHIT">
674
+ <span class='line'>667</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
675
+ <span class='line'>668</span>
676
+ <span class='line'>669</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.CollectionEntity.create</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
677
+ <span class='line'>670</span> </span><span class="NAME">model</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT">
678
+ <span class='line'>671</span> </span><span class="NAME">values</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">,</span><span class="WHIT">
679
+ <span class='line'>672</span> </span><span class="NAME">condition</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">parameters.conditionFunction</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT">
680
+ <span class='line'>673</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
681
+ <span class='line'>674</span> </span><span class="NAME">collectionEntity.prepare</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
682
+ <span class='line'>675</span> </span><span class="NAME">collectionEntity.prepare</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
683
+ <span class='line'>676</span> </span><span class="COMM">// prevent the initialization from double adding the entities</span><span class="WHIT">
684
+ <span class='line'>677</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldAdd</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.add</span><span class="PUNC">;</span><span class="WHIT">
685
+ <span class='line'>678</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
686
+ <span class='line'>679</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">;</span><span class="WHIT">
687
+ <span class='line'>680</span> </span><span class="NAME">this.add</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
688
+ <span class='line'>681</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">timesToLoop</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.length</span><span class="PUNC">;</span><span class="WHIT">
689
+ <span class='line'>682</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">toRemove</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
690
+ <span class='line'>683</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">&lt;</span><span class="NAME">timesToLoop</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
691
+ <span class='line'>684</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">__lazyNew</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
692
+ <span class='line'>685</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">modelInstance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
693
+ <span class='line'>686</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">this.include</span><span class="PUNC">(</span><span class="NAME">modelInstance</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
694
+ <span class='line'>687</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">modelInstance</span><span class="PUNC">;</span><span class="WHIT">
695
+ <span class='line'>688</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
696
+ <span class='line'>689</span> </span><span class="NAME">toRemove.push</span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
697
+ <span class='line'>690</span> </span><span class="PUNC">}</span><span class="WHIT">
698
+ <span class='line'>691</span> </span><span class="PUNC">}</span><span class="WHIT">
699
+ <span class='line'>692</span> </span><span class="PUNC">}</span><span class="WHIT">
700
+ <span class='line'>693</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="PUNC">=</span><span class="NAME">toRemove.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
701
+ <span class='line'>694</span> </span><span class="NAME">this.splice</span><span class="PUNC">(</span><span class="NAME">toRemove</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
702
+ <span class='line'>695</span> </span><span class="PUNC">}</span><span class="WHIT">
703
+ <span class='line'>696</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">finally</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
704
+ <span class='line'>697</span> </span><span class="NAME">this.add</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">oldAdd</span><span class="PUNC">;</span><span class="WHIT">
705
+ <span class='line'>698</span> </span><span class="PUNC">}</span><span class="WHIT">
706
+ <span class='line'>699</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
707
+ <span class='line'>700</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
708
+ <span class='line'>701</span> </span><span class="COMM">// Ultimately we shouldn't need to do this</span><span class="WHIT">
709
+ <span class='line'>702</span> </span><span class="COMM">// This is required if when parsing eager loaded json collections</span><span class="WHIT">
710
+ <span class='line'>703</span> </span><span class="COMM">// contain individual entities that need to be added to other collection entities</span><span class="WHIT">
711
+ <span class='line'>704</span> </span><span class="COMM">// and the entity representing the eager collection is never loaded, hence prepared.</span><span class="WHIT">
712
+ <span class='line'>705</span> </span><span class="NAME">collectionEntity.prepare</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
713
+ <span class='line'>706</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">defer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
714
+ <span class='line'>707</span> </span><span class="NAME">this.putCollectionEntity</span><span class="PUNC">(</span><span class="NAME">url</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"#"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">parameters.ajaxParameters</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
715
+ <span class='line'>708</span>
716
+ <span class='line'>709</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">collectionEntity</span><span class="PUNC">;</span><span class="WHIT">
717
+ <span class='line'>710</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
718
+ <span class='line'>711</span>
719
+ <span class='line'>712</span> </span><span class="NAME">_clientOnlyAttrs</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
720
720
  <span class='line'>713</span>
721
- <span class='line'>714</span> </span><span class="NAME">_identityCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
722
- <span class='line'>715</span>
723
- <span class='line'>716</span> </span><span class="NAME">getFromCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
724
- <span class='line'>717</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
725
- <span class='line'>718</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
726
- <span class='line'>719</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
727
- <span class='line'>720</span>
728
- <span class='line'>721</span> </span><span class="NAME">putInCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
729
- <span class='line'>722</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cacheKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
730
- <span class='line'>723</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
731
- <span class='line'>724</span> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
732
- <span class='line'>725</span> </span><span class="PUNC">}</span><span class="WHIT">
733
- <span class='line'>726</span> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
734
- <span class='line'>727</span> </span><span class="NAME">this.addToCollectionEntities</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
735
- <span class='line'>728</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
736
- <span class='line'>729</span>
737
- <span class='line'>730</span> </span><span class="NAME">removeFromCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
738
- <span class='line'>731</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cacheKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
739
- <span class='line'>732</span> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
740
- <span class='line'>733</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
741
- <span class='line'>734</span>
742
- <span class='line'>735</span> </span><span class="NAME">_collectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
743
- <span class='line'>736</span> </span><span class="NAME">putCollectionEntity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
744
- <span class='line'>737</span> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
745
- <span class='line'>738</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
746
- <span class='line'>739</span>
747
- <span class='line'>740</span> </span><span class="NAME">addToCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
748
- <span class='line'>741</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">;</span><span class="WHIT">
749
- <span class='line'>742</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
750
- <span class='line'>743</span> </span><span class="NAME">ces</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">add</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
751
- <span class='line'>744</span> </span><span class="PUNC">}</span><span class="WHIT">
752
- <span class='line'>745</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
753
- <span class='line'>746</span>
754
- <span class='line'>747</span> </span><span class="NAME">updateInCollectionEntites</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
755
- <span class='line'>748</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">;</span><span class="WHIT">
756
- <span class='line'>749</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
757
- <span class='line'>750</span> </span><span class="NAME">ces</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
758
- <span class='line'>751</span> </span><span class="PUNC">}</span><span class="WHIT">
759
- <span class='line'>752</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
760
- <span class='line'>753</span>
761
- <span class='line'>754</span> </span><span class="NAME">removeFromCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
762
- <span class='line'>755</span> </span><span class="NAME">Object.values</span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">collectionEntity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
763
- <span class='line'>756</span> </span><span class="NAME">collectionEntity.remove</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
764
- <span class='line'>757</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
765
- <span class='line'>758</span> </span><span class="PUNC">}</span><span class="WHIT">
766
- <span class='line'>759</span>
767
- <span class='line'>760</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
768
- <span class='line'>761</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
769
- <span class='line'>762</span>
770
- <span class='line'>763</span> </span><span class="NAME">hasChannel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
771
- <span class='line'>764</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
721
+ <span class='line'>714</span> </span><span class="NAME">clientOnlyAttr</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">attrName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
722
+ <span class='line'>715</span> </span><span class="NAME">this._clientOnlyAttrs.push</span><span class="PUNC">(</span><span class="NAME">attrName</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
723
+ <span class='line'>716</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
724
+ <span class='line'>717</span>
725
+ <span class='line'>718</span> </span><span class="NAME">_identityCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
726
+ <span class='line'>719</span>
727
+ <span class='line'>720</span> </span><span class="NAME">getFromCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
728
+ <span class='line'>721</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
729
+ <span class='line'>722</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
730
+ <span class='line'>723</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
731
+ <span class='line'>724</span>
732
+ <span class='line'>725</span> </span><span class="NAME">putInCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
733
+ <span class='line'>726</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cacheKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
734
+ <span class='line'>727</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
735
+ <span class='line'>728</span> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
736
+ <span class='line'>729</span> </span><span class="PUNC">}</span><span class="WHIT">
737
+ <span class='line'>730</span> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
738
+ <span class='line'>731</span> </span><span class="NAME">this.addToCollectionEntities</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
739
+ <span class='line'>732</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
740
+ <span class='line'>733</span>
741
+ <span class='line'>734</span> </span><span class="NAME">removeFromCache</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
742
+ <span class='line'>735</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">cacheKey</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">id.cacheKey</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">id</span><span class="PUNC">;</span><span class="WHIT">
743
+ <span class='line'>736</span> </span><span class="KEYW">delete</span><span class="WHIT"> </span><span class="NAME">this._identityCache</span><span class="PUNC">[</span><span class="NAME">cacheKey</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
744
+ <span class='line'>737</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
745
+ <span class='line'>738</span>
746
+ <span class='line'>739</span> </span><span class="NAME">_collectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
747
+ <span class='line'>740</span> </span><span class="NAME">putCollectionEntity</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">key</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
748
+ <span class='line'>741</span> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">value</span><span class="PUNC">;</span><span class="WHIT">
749
+ <span class='line'>742</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
750
+ <span class='line'>743</span>
751
+ <span class='line'>744</span> </span><span class="NAME">addToCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
752
+ <span class='line'>745</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">;</span><span class="WHIT">
753
+ <span class='line'>746</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
754
+ <span class='line'>747</span> </span><span class="NAME">ces</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">add</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
755
+ <span class='line'>748</span> </span><span class="PUNC">}</span><span class="WHIT">
756
+ <span class='line'>749</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
757
+ <span class='line'>750</span>
758
+ <span class='line'>751</span> </span><span class="NAME">updateInCollectionEntites</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
759
+ <span class='line'>752</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._collectionEntities</span><span class="PUNC">;</span><span class="WHIT">
760
+ <span class='line'>753</span> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">key</span><span class="WHIT"> </span><span class="KEYW">in</span><span class="WHIT"> </span><span class="NAME">ces</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
761
+ <span class='line'>754</span> </span><span class="NAME">ces</span><span class="PUNC">[</span><span class="NAME">key</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">update</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
762
+ <span class='line'>755</span> </span><span class="PUNC">}</span><span class="WHIT">
763
+ <span class='line'>756</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
764
+ <span class='line'>757</span>
765
+ <span class='line'>758</span> </span><span class="NAME">removeFromCollectionEntities</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
766
+ <span class='line'>759</span> </span><span class="NAME">Object.values</span><span class="PUNC">(</span><span class="NAME">this._collectionEntities</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">collectionEntity</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
767
+ <span class='line'>760</span> </span><span class="NAME">collectionEntity.remove</span><span class="PUNC">(</span><span class="NAME">value</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
768
+ <span class='line'>761</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
769
+ <span class='line'>762</span> </span><span class="PUNC">}</span><span class="WHIT">
770
+ <span class='line'>763</span>
771
+ <span class='line'>764</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
772
772
  <span class='line'>765</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
773
- <span class='line'>766</span>
774
- <span class='line'>767</span> </span><span class="NAME">channel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
775
- <span class='line'>768</span> </span><span class="NAME">model.addMethods</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
776
- <span class='line'>769</span> </span><span class="NAME">broadcast</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
777
- <span class='line'>770</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$A</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
778
- <span class='line'>771</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
779
- <span class='line'>772</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
780
- <span class='line'>773</span> </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
781
- <span class='line'>774</span> </span><span class="NAME">method</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="PUNC">,</span><span class="WHIT">
782
- <span class='line'>775</span> </span><span class="NAME">args</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT">
783
- <span class='line'>776</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
784
- <span class='line'>777</span>
785
- <span class='line'>778</span> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Ajax.Request</span><span class="PUNC">(</span><span class="STRN">"/push/broadcast"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
786
- <span class='line'>779</span> </span><span class="NAME">asynchronous</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
787
- <span class='line'>780</span> </span><span class="NAME">method</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"get"</span><span class="PUNC">,</span><span class="WHIT">
788
- <span class='line'>781</span> </span><span class="NAME">evalJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
789
- <span class='line'>782</span> </span><span class="NAME">evalJS</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
790
- <span class='line'>783</span> </span><span class="NAME">parameters</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
791
- <span class='line'>784</span> </span><span class="NAME">channel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.channelName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
792
- <span class='line'>785</span> </span><span class="NAME">message</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">body</span><span class="PUNC">)</span><span class="WHIT">
793
- <span class='line'>786</span> </span><span class="PUNC">}</span><span class="WHIT">
794
- <span class='line'>787</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
795
- <span class='line'>788</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
796
- <span class='line'>789</span>
797
- <span class='line'>790</span> </span><span class="NAME">channelName</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
798
- <span class='line'>791</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
799
- <span class='line'>792</span> </span><span class="PUNC">}</span><span class="WHIT">
800
- <span class='line'>793</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
801
- <span class='line'>794</span>
802
- <span class='line'>795</span> </span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
803
- <span class='line'>796</span> </span><span class="NAME">hasChannel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
804
- <span class='line'>797</span>
805
- <span class='line'>798</span> </span><span class="NAME">receiveBroadcast</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
806
- <span class='line'>799</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
807
- <span class='line'>800</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
808
- <span class='line'>801</span> </span><span class="NAME">instance</span><span class="PUNC">[</span><span class="NAME">options.method</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">apply</span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options.args</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
809
- <span class='line'>802</span> </span><span class="PUNC">}</span><span class="WHIT">
810
- <span class='line'>803</span> </span><span class="PUNC">}</span><span class="WHIT">
811
- <span class='line'>804</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
812
- <span class='line'>805</span> </span><span class="PUNC">}</span><span class="WHIT">
813
- <span class='line'>806</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
814
- <span class='line'>807</span>
815
- <span class='line'>808</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">args.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">ATTR</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
816
- <span class='line'>809</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">initializers</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
817
- <span class='line'>810</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">initializers.resource</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
818
- <span class='line'>811</span> </span><span class="NAME">model.resource</span><span class="PUNC">(</span><span class="NAME">initializers.resource</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
819
- <span class='line'>812</span> </span><span class="PUNC">}</span><span class="WHIT">
820
- <span class='line'>813</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.channel</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
821
- <span class='line'>814</span> </span><span class="NAME">model.channel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
822
- <span class='line'>815</span> </span><span class="PUNC">}</span><span class="WHIT">
823
- <span class='line'>816</span>
824
- <span class='line'>817</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.hasMany</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
825
- <span class='line'>818</span> </span><span class="NAME">initializers.hasMany.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
826
- <span class='line'>819</span> </span><span class="NAME">model.hasMany</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
827
- <span class='line'>820</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
828
- <span class='line'>821</span> </span><span class="PUNC">}</span><span class="WHIT">
829
- <span class='line'>822</span>
830
- <span class='line'>823</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.belongsTo</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
831
- <span class='line'>824</span> </span><span class="NAME">initializers.belongsTo.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
832
- <span class='line'>825</span> </span><span class="NAME">model.belongsTo</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
833
- <span class='line'>826</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
834
- <span class='line'>827</span> </span><span class="PUNC">}</span><span class="WHIT">
835
- <span class='line'>828</span>
836
- <span class='line'>829</span> </span><span class="PUNC">(</span><span class="NAME">initializers.clientOnlyAttrs</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">clientOnlyAttr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
837
- <span class='line'>830</span> </span><span class="NAME">model.clientOnlyAttr</span><span class="PUNC">(</span><span class="NAME">clientOnlyAttr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
838
- <span class='line'>831</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
773
+ <span class='line'>766</span>
774
+ <span class='line'>767</span> </span><span class="NAME">hasChannel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
775
+ <span class='line'>768</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
776
+ <span class='line'>769</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
777
+ <span class='line'>770</span>
778
+ <span class='line'>771</span> </span><span class="NAME">channel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
779
+ <span class='line'>772</span> </span><span class="NAME">model.addMethods</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="WHIT">
780
+ <span class='line'>773</span> </span><span class="NAME">broadcast</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
781
+ <span class='line'>774</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">$A</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
782
+ <span class='line'>775</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args.shift</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
783
+ <span class='line'>776</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">body</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
784
+ <span class='line'>777</span> </span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
785
+ <span class='line'>778</span> </span><span class="NAME">method</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">methodName</span><span class="PUNC">,</span><span class="WHIT">
786
+ <span class='line'>779</span> </span><span class="NAME">args</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">args</span><span class="WHIT">
787
+ <span class='line'>780</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
788
+ <span class='line'>781</span>
789
+ <span class='line'>782</span> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Ajax.Request</span><span class="PUNC">(</span><span class="STRN">"/push/broadcast"</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
790
+ <span class='line'>783</span> </span><span class="NAME">asynchronous</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
791
+ <span class='line'>784</span> </span><span class="NAME">method</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="STRN">"get"</span><span class="PUNC">,</span><span class="WHIT">
792
+ <span class='line'>785</span> </span><span class="NAME">evalJSON</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
793
+ <span class='line'>786</span> </span><span class="NAME">evalJS</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
794
+ <span class='line'>787</span> </span><span class="NAME">parameters</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
795
+ <span class='line'>788</span> </span><span class="NAME">channel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.channelName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
796
+ <span class='line'>789</span> </span><span class="NAME">message</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">Object.toJSON</span><span class="PUNC">(</span><span class="NAME">body</span><span class="PUNC">)</span><span class="WHIT">
797
+ <span class='line'>790</span> </span><span class="PUNC">}</span><span class="WHIT">
798
+ <span class='line'>791</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
799
+ <span class='line'>792</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
800
+ <span class='line'>793</span>
801
+ <span class='line'>794</span> </span><span class="NAME">channelName</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
802
+ <span class='line'>795</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="STRN">"."</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
803
+ <span class='line'>796</span> </span><span class="PUNC">}</span><span class="WHIT">
804
+ <span class='line'>797</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
805
+ <span class='line'>798</span>
806
+ <span class='line'>799</span> </span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
807
+ <span class='line'>800</span> </span><span class="NAME">hasChannel</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
808
+ <span class='line'>801</span>
809
+ <span class='line'>802</span> </span><span class="NAME">receiveBroadcast</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
810
+ <span class='line'>803</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
811
+ <span class='line'>804</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
812
+ <span class='line'>805</span> </span><span class="NAME">instance</span><span class="PUNC">[</span><span class="NAME">options.method</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">apply</span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">options.args</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
813
+ <span class='line'>806</span> </span><span class="PUNC">}</span><span class="WHIT">
814
+ <span class='line'>807</span> </span><span class="PUNC">}</span><span class="WHIT">
815
+ <span class='line'>808</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
816
+ <span class='line'>809</span> </span><span class="PUNC">}</span><span class="WHIT">
817
+ <span class='line'>810</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
818
+ <span class='line'>811</span>
819
+ <span class='line'>812</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">args.length</span><span class="WHIT"> </span><span class="PUNC">></span><span class="WHIT"> </span><span class="NUMB">0</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">ATTR</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
820
+ <span class='line'>813</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">initializers</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">args.last</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
821
+ <span class='line'>814</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Object.isString</span><span class="PUNC">(</span><span class="NAME">initializers.resource</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
822
+ <span class='line'>815</span> </span><span class="NAME">model.resource</span><span class="PUNC">(</span><span class="NAME">initializers.resource</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
823
+ <span class='line'>816</span> </span><span class="PUNC">}</span><span class="WHIT">
824
+ <span class='line'>817</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.channel</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
825
+ <span class='line'>818</span> </span><span class="NAME">model.channel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
826
+ <span class='line'>819</span> </span><span class="PUNC">}</span><span class="WHIT">
827
+ <span class='line'>820</span>
828
+ <span class='line'>821</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.hasMany</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
829
+ <span class='line'>822</span> </span><span class="NAME">initializers.hasMany.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
830
+ <span class='line'>823</span> </span><span class="NAME">model.hasMany</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
831
+ <span class='line'>824</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
832
+ <span class='line'>825</span> </span><span class="PUNC">}</span><span class="WHIT">
833
+ <span class='line'>826</span>
834
+ <span class='line'>827</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.belongsTo</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
835
+ <span class='line'>828</span> </span><span class="NAME">initializers.belongsTo.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
836
+ <span class='line'>829</span> </span><span class="NAME">model.belongsTo</span><span class="PUNC">(</span><span class="NAME">h</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
837
+ <span class='line'>830</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
838
+ <span class='line'>831</span> </span><span class="PUNC">}</span><span class="WHIT">
839
839
  <span class='line'>832</span>
840
- <span class='line'>833</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
841
- <span class='line'>834</span> </span><span class="NAME">model.undoEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
842
- <span class='line'>835</span> </span><span class="PUNC">}</span><span class="WHIT">
840
+ <span class='line'>833</span> </span><span class="PUNC">(</span><span class="NAME">initializers.clientOnlyAttrs</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">clientOnlyAttr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
841
+ <span class='line'>834</span> </span><span class="NAME">model.clientOnlyAttr</span><span class="PUNC">(</span><span class="NAME">clientOnlyAttr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
842
+ <span class='line'>835</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
843
843
  <span class='line'>836</span>
844
- <span class='line'>837</span> </span><span class="NAME">rio.Model.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">initializers.methods</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
845
- <span class='line'>838</span> </span><span class="PUNC">}</span><span class="WHIT">
846
- <span class='line'>839</span>
847
- <span class='line'>840</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">;</span><span class="WHIT">
848
- <span class='line'>841</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
849
- <span class='line'>842</span>
850
- <span class='line'>843</span> </span><span class="NAME">_findAllRequests</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
851
- <span class='line'>844</span> </span><span class="NAME">afterActiveQueries</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
852
- <span class='line'>845</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
853
- <span class='line'>846</span> </span><span class="NAME">this._findAllRequests.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">far</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
854
- <span class='line'>847</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">far._complete</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
855
- <span class='line'>848</span> </span><span class="NAME">count</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
856
- <span class='line'>849</span> </span><span class="NAME">far.options.onComplete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">far.options.onComplete</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">wrap</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">proceed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
857
- <span class='line'>850</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">proceed</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
858
- <span class='line'>851</span> </span><span class="NAME">count</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
859
- <span class='line'>852</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">fcn</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
860
- <span class='line'>853</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
861
- <span class='line'>854</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
862
- <span class='line'>855</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
863
- <span class='line'>856</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">fcn</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
864
- <span class='line'>857</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
865
- <span class='line'>858</span>
866
- <span class='line'>859</span> </span><span class="NAME">filterJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
867
- <span class='line'>860</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">json.attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">json.attributes</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
868
- <span class='line'>861</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.environment.includeRootInJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">Object.values</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">;</span><span class="WHIT">
869
- <span class='line'>862</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
870
- <span class='line'>863</span>
871
- <span class='line'>864</span> </span><span class="NAME">remoteCreate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
872
- <span class='line'>865</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
873
- <span class='line'>866</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
874
- <span class='line'>867</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteCreate</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
875
- <span class='line'>868</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
876
- <span class='line'>869</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
877
- <span class='line'>870</span> </span><span class="PUNC">}</span><span class="WHIT">
878
- <span class='line'>871</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
879
- <span class='line'>872</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote create error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
880
- <span class='line'>873</span> </span><span class="PUNC">}</span><span class="WHIT">
881
- <span class='line'>874</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
882
- <span class='line'>875</span>
883
- <span class='line'>876</span> </span><span class="NAME">remoteUpdate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
884
- <span class='line'>877</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
885
- <span class='line'>878</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
886
- <span class='line'>879</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteUpdate</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
887
- <span class='line'>880</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
888
- <span class='line'>881</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
889
- <span class='line'>882</span> </span><span class="PUNC">}</span><span class="WHIT">
890
- <span class='line'>883</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
891
- <span class='line'>884</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote update error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
892
- <span class='line'>885</span> </span><span class="PUNC">}</span><span class="WHIT">
893
- <span class='line'>886</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
894
- <span class='line'>887</span>
895
- <span class='line'>888</span> </span><span class="NAME">remoteDestroy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
896
- <span class='line'>889</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
897
- <span class='line'>890</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
898
- <span class='line'>891</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteDestroy</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
899
- <span class='line'>892</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
900
- <span class='line'>893</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
901
- <span class='line'>894</span> </span><span class="PUNC">}</span><span class="WHIT">
902
- <span class='line'>895</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
903
- <span class='line'>896</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote destroy error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
904
- <span class='line'>897</span> </span><span class="PUNC">}</span><span class="WHIT">
905
- <span class='line'>898</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
906
- <span class='line'>899</span>
907
- <span class='line'>900</span> </span><span class="NAME">doRemoteCreate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
908
- <span class='line'>901</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
909
- <span class='line'>902</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
910
- <span class='line'>903</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
911
- <span class='line'>904</span> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">options.json</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
912
- <span class='line'>905</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
913
- <span class='line'>906</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
914
- <span class='line'>907</span> </span><span class="PUNC">}</span><span class="WHIT">
915
- <span class='line'>908</span>
916
- <span class='line'>909</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
917
- <span class='line'>910</span> </span><span class="NAME">undoFunction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">model.undoEnabled</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
918
- <span class='line'>911</span> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">fromCache.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
919
- <span class='line'>912</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
920
- <span class='line'>913</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
921
- <span class='line'>914</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
922
- <span class='line'>915</span>
923
- <span class='line'>916</span> </span><span class="NAME">doRemoteUpdate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
924
- <span class='line'>917</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
925
- <span class='line'>918</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
926
- <span class='line'>919</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
927
- <span class='line'>920</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
928
- <span class='line'>921</span> </span><span class="PUNC">}</span><span class="WHIT">
929
- <span class='line'>922</span>
930
- <span class='line'>923</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">json</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">options.json</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
931
- <span class='line'>924</span>
932
- <span class='line'>925</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
933
- <span class='line'>926</span>
934
- <span class='line'>927</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
935
- <span class='line'>928</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">instance.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
936
- <span class='line'>929</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
937
- <span class='line'>930</span> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">instance.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">updateAttributes</span><span class="PUNC">(</span><span class="NAME">oldState</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
938
- <span class='line'>931</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
939
- <span class='line'>932</span> </span><span class="NAME">results.undoFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="PUNC">;</span><span class="WHIT">
940
- <span class='line'>933</span> </span><span class="PUNC">}</span><span class="WHIT">
941
- <span class='line'>934</span>
942
- <span class='line'>935</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">without</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inject</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">acc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
943
- <span class='line'>936</span> </span><span class="NAME">acc</span><span class="PUNC">[</span><span class="NAME">k.camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
944
- <span class='line'>937</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">acc</span><span class="PUNC">;</span><span class="WHIT">
945
- <span class='line'>938</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
946
- <span class='line'>939</span> </span><span class="NAME">instance.updateAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">skipSave</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
947
- <span class='line'>940</span> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">updateInCollectionEntites</span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
948
- <span class='line'>941</span>
949
- <span class='line'>942</span> </span><span class="NAME">instance._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">instance.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
950
- <span class='line'>943</span>
951
- <span class='line'>944</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">;</span><span class="WHIT">
952
- <span class='line'>945</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
953
- <span class='line'>946</span>
954
- <span class='line'>947</span> </span><span class="NAME">doRemoteDestroy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
955
- <span class='line'>948</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
956
- <span class='line'>949</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
957
- <span class='line'>950</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
958
- <span class='line'>951</span>
959
- <span class='line'>952</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
960
- <span class='line'>953</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
961
- <span class='line'>954</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fromCache.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
962
- <span class='line'>955</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
963
- <span class='line'>956</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fromCache.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
964
- <span class='line'>957</span> </span><span class="NAME">instance._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT">
965
- <span class='line'>958</span> </span><span class="NAME">instance.save</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
966
- <span class='line'>959</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
967
- <span class='line'>960</span> </span><span class="NAME">results.undoFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="PUNC">;</span><span class="WHIT">
968
- <span class='line'>961</span> </span><span class="PUNC">}</span><span class="WHIT">
969
- <span class='line'>962</span>
970
- <span class='line'>963</span> </span><span class="NAME">fromCache.removeFromCaches</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
971
- <span class='line'>964</span>
972
- <span class='line'>965</span> </span><span class="NAME">fromCache.fire</span><span class="PUNC">(</span><span class="STRN">"destroy"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
973
- <span class='line'>966</span> </span><span class="PUNC">}</span><span class="WHIT">
974
- <span class='line'>967</span>
975
- <span class='line'>968</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">;</span><span class="WHIT">
976
- <span class='line'>969</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
977
- <span class='line'>970</span>
978
- <span class='line'>971</span> </span><span class="NAME">remoteTransaction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">transactionData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
979
- <span class='line'>972</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">transactionData.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
980
- <span class='line'>973</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
981
- <span class='line'>974</span> </span><span class="COMM">// TODO: Two potential bugs here</span><span class="WHIT">
982
- <span class='line'>975</span> </span><span class="COMM">//</span><span class="WHIT">
983
- <span class='line'>976</span> </span><span class="COMM">// 1) Need to execute this in a rio.Attr.transaction</span><span class="WHIT">
984
- <span class='line'>977</span> </span><span class="COMM">// 2) Need to get back the collection entity process functions from _filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="WHIT">
985
- <span class='line'>978</span> </span><span class="COMM">// and run them at the end. Otherwise we might have reification collisions.</span><span class="WHIT">
986
- <span class='line'>979</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">resultSets</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">transactionData.transaction.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
987
- <span class='line'>980</span> </span><span class="KEYW">switch</span><span class="PUNC">(</span><span class="NAME">t.action</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
988
- <span class='line'>981</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"create"</span><span class="PUNC">:</span><span class="WHIT">
989
- <span class='line'>982</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteCreate</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
990
- <span class='line'>983</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"update"</span><span class="PUNC">:</span><span class="WHIT">
991
- <span class='line'>984</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteUpdate</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
992
- <span class='line'>985</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"destroy"</span><span class="PUNC">:</span><span class="WHIT">
993
- <span class='line'>986</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteDestroy</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
994
- <span class='line'>987</span> </span><span class="PUNC">}</span><span class="WHIT">
995
- <span class='line'>988</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
996
- <span class='line'>989</span>
997
- <span class='line'>990</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">undos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">resultSets.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r.undoFunction</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">compact</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
998
- <span class='line'>991</span>
999
- <span class='line'>992</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">undos.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1000
- <span class='line'>993</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1001
- <span class='line'>994</span> </span><span class="NAME">undos.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">undo</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1002
- <span class='line'>995</span> </span><span class="NAME">undo</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1003
- <span class='line'>996</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1004
- <span class='line'>997</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1005
- <span class='line'>998</span> </span><span class="PUNC">}</span><span class="WHIT">
1006
- <span class='line'>999</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1007
- <span class='line'>1000</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote transaction error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1008
- <span class='line'>1001</span> </span><span class="PUNC">}</span><span class="WHIT">
1009
- <span class='line'>1002</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1010
- <span class='line'>1003</span>
1011
- <span class='line'>1004</span> </span><span class="NAME">extend</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1012
- <span class='line'>1005</span>
1013
- <span class='line'>1006</span> </span><span class="NAME">extension.__initialize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension.initialize</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
1014
- <span class='line'>1007</span> </span><span class="NAME">extension.initialize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1015
- <span class='line'>1008</span> </span><span class="NAME">this.__model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">;</span><span class="WHIT">
1016
- <span class='line'>1009</span>
1017
- <span class='line'>1010</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1018
- <span class='line'>1011</span> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1019
- <span class='line'>1012</span> </span><span class="NAME">this._id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.id</span><span class="PUNC">;</span><span class="WHIT">
1020
- <span class='line'>1013</span> </span><span class="PUNC">}</span><span class="WHIT">
1021
- <span class='line'>1014</span>
1022
- <span class='line'>1015</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.constructor</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">rio.Id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1023
- <span class='line'>1016</span> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1024
- <span class='line'>1017</span> </span><span class="NAME">this.setId</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1025
- <span class='line'>1018</span> </span><span class="PUNC">}</span><span class="WHIT">
1026
- <span class='line'>1019</span>
1027
- <span class='line'>1020</span> </span><span class="PUNC">(</span><span class="NAME">this.__initialize.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1028
- <span class='line'>1021</span>
1029
- <span class='line'>1022</span> </span><span class="COMM">// Add the hasManyAssocitation#create methods</span><span class="WHIT">
1030
- <span class='line'>1023</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">model._hasManyAssociations</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">hasManyName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1031
- <span class='line'>1024</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._hasManyAssociations</span><span class="PUNC">[</span><span class="NAME">hasManyName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1032
- <span class='line'>1025</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">hasManyName</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">createOptions</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1033
- <span class='line'>1026</span> </span><span class="COMM">// In the case that the entity is still new, we should preload the association</span><span class="WHIT">
1034
- <span class='line'>1027</span> </span><span class="COMM">// to make sure no entries are missed</span><span class="WHIT">
1035
- <span class='line'>1028</span> </span><span class="COMM">// TODO: before we can wrap in isNew, we need to make the spec fixture proxy include created entities</span><span class="WHIT">
1036
- <span class='line'>1029</span> </span><span class="COMM">// if (this.isNew()) {</span><span class="WHIT">
1037
- <span class='line'>1030</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="STRN">"get-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">hasManyName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1038
- <span class='line'>1031</span> </span><span class="COMM">// }</span><span class="WHIT">
1039
- <span class='line'>1032</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.clone</span><span class="PUNC">(</span><span class="NAME">options.parameters</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1040
- <span class='line'>1033</span> </span><span class="NAME">parameters</span><span class="PUNC">[</span><span class="NAME">options.foreignKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1041
- <span class='line'>1034</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">create</span><span class="PUNC">(</span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="NAME">createOptions</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1042
- <span class='line'>1035</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1043
- <span class='line'>1036</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1044
- <span class='line'>1037</span>
1045
- <span class='line'>1038</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.hasChannel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1046
- <span class='line'>1039</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.push</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1047
- <span class='line'>1040</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">addChannel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1048
- <span class='line'>1041</span> </span><span class="NAME">rio.push.addChannel</span><span class="PUNC">(</span><span class="NAME">this.channelName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1049
- <span class='line'>1042</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1050
- <span class='line'>1043</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.temporary</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1051
- <span class='line'>1044</span> </span><span class="NAME">options.id.doAfterReification</span><span class="PUNC">(</span><span class="NAME">addChannel</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1052
- <span class='line'>1045</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1053
- <span class='line'>1046</span> </span><span class="NAME">addChannel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1054
- <span class='line'>1047</span> </span><span class="PUNC">}</span><span class="WHIT">
1055
- <span class='line'>1048</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1056
- <span class='line'>1049</span> </span><span class="NAME">rio.warn</span><span class="PUNC">(</span><span class="STRN">"Attempted to add a channel without an available push server"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1057
- <span class='line'>1050</span> </span><span class="PUNC">}</span><span class="WHIT">
1058
- <span class='line'>1051</span> </span><span class="PUNC">}</span><span class="WHIT">
1059
- <span class='line'>1052</span>
1060
- <span class='line'>1053</span> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1061
- <span class='line'>1054</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1062
- <span class='line'>1055</span> </span><span class="NAME">model.putInCache</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1063
- <span class='line'>1056</span> </span><span class="PUNC">}</span><span class="WHIT">
1064
- <span class='line'>1057</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.temporary</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">options.id.temporary</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1065
- <span class='line'>1058</span> </span><span class="NAME">this._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1066
- <span class='line'>1059</span> </span><span class="PUNC">}</span><span class="WHIT">
1067
- <span class='line'>1060</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1068
- <span class='line'>1061</span>
1069
- <span class='line'>1062</span> </span><span class="NAME">rio.Attr.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1070
- <span class='line'>1063</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1071
- <span class='line'>1064</span>
1072
- <span class='line'>1065</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1073
- <span class='line'>1066</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Model"</span><span class="PUNC">;</span><span class="WHIT">
1074
- <span class='line'>1067</span> </span><span class="PUNC">}</span><span class="WHIT">
1075
- <span class='line'>1068</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>
844
+ <span class='line'>837</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">initializers.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
845
+ <span class='line'>838</span> </span><span class="NAME">model.undoEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
846
+ <span class='line'>839</span> </span><span class="PUNC">}</span><span class="WHIT">
847
+ <span class='line'>840</span>
848
+ <span class='line'>841</span> </span><span class="NAME">rio.Model.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">initializers.methods</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
849
+ <span class='line'>842</span> </span><span class="PUNC">}</span><span class="WHIT">
850
+ <span class='line'>843</span>
851
+ <span class='line'>844</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">;</span><span class="WHIT">
852
+ <span class='line'>845</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
853
+ <span class='line'>846</span>
854
+ <span class='line'>847</span> </span><span class="NAME">_findAllRequests</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
855
+ <span class='line'>848</span> </span><span class="NAME">afterActiveQueries</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">fcn</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
856
+ <span class='line'>849</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
857
+ <span class='line'>850</span> </span><span class="NAME">this._findAllRequests.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">far</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
858
+ <span class='line'>851</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">far._complete</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
859
+ <span class='line'>852</span> </span><span class="NAME">count</span><span class="PUNC">++</span><span class="PUNC">;</span><span class="WHIT">
860
+ <span class='line'>853</span> </span><span class="NAME">far.options.onComplete</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">far.options.onComplete</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">wrap</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">proceed</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
861
+ <span class='line'>854</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">proceed</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
862
+ <span class='line'>855</span> </span><span class="NAME">count</span><span class="PUNC">--</span><span class="PUNC">;</span><span class="WHIT">
863
+ <span class='line'>856</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">fcn</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
864
+ <span class='line'>857</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="PUNC">;</span><span class="WHIT">
865
+ <span class='line'>858</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
866
+ <span class='line'>859</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
867
+ <span class='line'>860</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">count</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">fcn</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
868
+ <span class='line'>861</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
869
+ <span class='line'>862</span>
870
+ <span class='line'>863</span> </span><span class="NAME">filterJson</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
871
+ <span class='line'>864</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">json.attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">json.attributes</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
872
+ <span class='line'>865</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.environment.includeRootInJson</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="NAME">Object.values</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">;</span><span class="WHIT">
873
+ <span class='line'>866</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
874
+ <span class='line'>867</span>
875
+ <span class='line'>868</span> </span><span class="NAME">remoteCreate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
876
+ <span class='line'>869</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
877
+ <span class='line'>870</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
878
+ <span class='line'>871</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteCreate</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
879
+ <span class='line'>872</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
880
+ <span class='line'>873</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
881
+ <span class='line'>874</span> </span><span class="PUNC">}</span><span class="WHIT">
882
+ <span class='line'>875</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
883
+ <span class='line'>876</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote create error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
884
+ <span class='line'>877</span> </span><span class="PUNC">}</span><span class="WHIT">
885
+ <span class='line'>878</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
886
+ <span class='line'>879</span>
887
+ <span class='line'>880</span> </span><span class="NAME">remoteUpdate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
888
+ <span class='line'>881</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
889
+ <span class='line'>882</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
890
+ <span class='line'>883</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteUpdate</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
891
+ <span class='line'>884</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
892
+ <span class='line'>885</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
893
+ <span class='line'>886</span> </span><span class="PUNC">}</span><span class="WHIT">
894
+ <span class='line'>887</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
895
+ <span class='line'>888</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote update error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
896
+ <span class='line'>889</span> </span><span class="PUNC">}</span><span class="WHIT">
897
+ <span class='line'>890</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
898
+ <span class='line'>891</span>
899
+ <span class='line'>892</span> </span><span class="NAME">remoteDestroy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
900
+ <span class='line'>893</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
901
+ <span class='line'>894</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
902
+ <span class='line'>895</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteDestroy</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
903
+ <span class='line'>896</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
904
+ <span class='line'>897</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="NAME">results.undoFunction</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
905
+ <span class='line'>898</span> </span><span class="PUNC">}</span><span class="WHIT">
906
+ <span class='line'>899</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
907
+ <span class='line'>900</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote destroy error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
908
+ <span class='line'>901</span> </span><span class="PUNC">}</span><span class="WHIT">
909
+ <span class='line'>902</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
910
+ <span class='line'>903</span>
911
+ <span class='line'>904</span> </span><span class="NAME">doRemoteCreate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
912
+ <span class='line'>905</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
913
+ <span class='line'>906</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
914
+ <span class='line'>907</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
915
+ <span class='line'>908</span> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">options.json</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
916
+ <span class='line'>909</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
917
+ <span class='line'>910</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
918
+ <span class='line'>911</span> </span><span class="PUNC">}</span><span class="WHIT">
919
+ <span class='line'>912</span>
920
+ <span class='line'>913</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
921
+ <span class='line'>914</span> </span><span class="NAME">undoFunction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">model.undoEnabled</span><span class="WHIT"> </span><span class="PUNC">?</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
922
+ <span class='line'>915</span> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">fromCache.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">destroy</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
923
+ <span class='line'>916</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">null</span><span class="WHIT">
924
+ <span class='line'>917</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
925
+ <span class='line'>918</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
926
+ <span class='line'>919</span>
927
+ <span class='line'>920</span> </span><span class="NAME">doRemoteUpdate</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
928
+ <span class='line'>921</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
929
+ <span class='line'>922</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
930
+ <span class='line'>923</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
931
+ <span class='line'>924</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
932
+ <span class='line'>925</span> </span><span class="PUNC">}</span><span class="WHIT">
933
+ <span class='line'>926</span>
934
+ <span class='line'>927</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">json</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._filterAndProcessJson</span><span class="PUNC">(</span><span class="NAME">options.json</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
935
+ <span class='line'>928</span>
936
+ <span class='line'>929</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
937
+ <span class='line'>930</span>
938
+ <span class='line'>931</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
939
+ <span class='line'>932</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">instance.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
940
+ <span class='line'>933</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
941
+ <span class='line'>934</span> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">instance.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">updateAttributes</span><span class="PUNC">(</span><span class="NAME">oldState</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
942
+ <span class='line'>935</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
943
+ <span class='line'>936</span> </span><span class="NAME">results.undoFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="PUNC">;</span><span class="WHIT">
944
+ <span class='line'>937</span> </span><span class="PUNC">}</span><span class="WHIT">
945
+ <span class='line'>938</span>
946
+ <span class='line'>939</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">json</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">without</span><span class="PUNC">(</span><span class="STRN">"id"</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">inject</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">acc</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">k</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
947
+ <span class='line'>940</span> </span><span class="NAME">acc</span><span class="PUNC">[</span><span class="NAME">k.camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">json</span><span class="PUNC">[</span><span class="NAME">k</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
948
+ <span class='line'>941</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">acc</span><span class="PUNC">;</span><span class="WHIT">
949
+ <span class='line'>942</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
950
+ <span class='line'>943</span> </span><span class="NAME">instance.updateAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">skipSave</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
951
+ <span class='line'>944</span> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">updateInCollectionEntites</span><span class="PUNC">(</span><span class="NAME">instance</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
952
+ <span class='line'>945</span>
953
+ <span class='line'>946</span> </span><span class="NAME">instance._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">instance.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
954
+ <span class='line'>947</span>
955
+ <span class='line'>948</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">;</span><span class="WHIT">
956
+ <span class='line'>949</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
957
+ <span class='line'>950</span>
958
+ <span class='line'>951</span> </span><span class="NAME">doRemoteDestroy</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
959
+ <span class='line'>952</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.name</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
960
+ <span class='line'>953</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">fromCache</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.getFromCache</span><span class="PUNC">(</span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
961
+ <span class='line'>954</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">results</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
962
+ <span class='line'>955</span>
963
+ <span class='line'>956</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">fromCache</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
964
+ <span class='line'>957</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.undoEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
965
+ <span class='line'>958</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">fromCache.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
966
+ <span class='line'>959</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
967
+ <span class='line'>960</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">instance</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">(</span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="PUNC">{</span><span class="NAME">id</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">fromCache.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">oldState</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
968
+ <span class='line'>961</span> </span><span class="NAME">instance._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="PUNC">;</span><span class="WHIT">
969
+ <span class='line'>962</span> </span><span class="NAME">instance.save</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
970
+ <span class='line'>963</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
971
+ <span class='line'>964</span> </span><span class="NAME">results.undoFunction</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">processUndo</span><span class="PUNC">;</span><span class="WHIT">
972
+ <span class='line'>965</span> </span><span class="PUNC">}</span><span class="WHIT">
973
+ <span class='line'>966</span>
974
+ <span class='line'>967</span> </span><span class="NAME">fromCache.removeFromCaches</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
975
+ <span class='line'>968</span>
976
+ <span class='line'>969</span> </span><span class="NAME">fromCache.fire</span><span class="PUNC">(</span><span class="STRN">"destroy"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
977
+ <span class='line'>970</span> </span><span class="PUNC">}</span><span class="WHIT">
978
+ <span class='line'>971</span>
979
+ <span class='line'>972</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">results</span><span class="PUNC">;</span><span class="WHIT">
980
+ <span class='line'>973</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
981
+ <span class='line'>974</span>
982
+ <span class='line'>975</span> </span><span class="NAME">remoteTransaction</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">transactionData</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
983
+ <span class='line'>976</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">transactionData.transactionKey</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">rio.environment.transactionKey</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
984
+ <span class='line'>977</span> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
985
+ <span class='line'>978</span> </span><span class="COMM">// TODO: Two potential bugs here</span><span class="WHIT">
986
+ <span class='line'>979</span> </span><span class="COMM">//</span><span class="WHIT">
987
+ <span class='line'>980</span> </span><span class="COMM">// 1) Need to execute this in a rio.Attr.transaction</span><span class="WHIT">
988
+ <span class='line'>981</span> </span><span class="COMM">// 2) Need to get back the collection entity process functions from _filterAndProcessJsonWhileAccumulatingCollectionEntities</span><span class="WHIT">
989
+ <span class='line'>982</span> </span><span class="COMM">// and run them at the end. Otherwise we might have reification collisions.</span><span class="WHIT">
990
+ <span class='line'>983</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">resultSets</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">transactionData.transaction.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
991
+ <span class='line'>984</span> </span><span class="KEYW">switch</span><span class="PUNC">(</span><span class="NAME">t.action</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
992
+ <span class='line'>985</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"create"</span><span class="PUNC">:</span><span class="WHIT">
993
+ <span class='line'>986</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteCreate</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
994
+ <span class='line'>987</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"update"</span><span class="PUNC">:</span><span class="WHIT">
995
+ <span class='line'>988</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteUpdate</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
996
+ <span class='line'>989</span> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="STRN">"destroy"</span><span class="PUNC">:</span><span class="WHIT">
997
+ <span class='line'>990</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.Model.doRemoteDestroy</span><span class="PUNC">(</span><span class="NAME">t</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
998
+ <span class='line'>991</span> </span><span class="PUNC">}</span><span class="WHIT">
999
+ <span class='line'>992</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1000
+ <span class='line'>993</span>
1001
+ <span class='line'>994</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">undos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">resultSets.map</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">r</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">r.undoFunction</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">compact</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1002
+ <span class='line'>995</span>
1003
+ <span class='line'>996</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">undos.empty</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1004
+ <span class='line'>997</span> </span><span class="NAME">rio.Undo.registerUndo</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1005
+ <span class='line'>998</span> </span><span class="NAME">undos.each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">undo</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1006
+ <span class='line'>999</span> </span><span class="NAME">undo</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1007
+ <span class='line'>1000</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1008
+ <span class='line'>1001</span> </span><span class="PUNC">}</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1009
+ <span class='line'>1002</span> </span><span class="PUNC">}</span><span class="WHIT">
1010
+ <span class='line'>1003</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1011
+ <span class='line'>1004</span> </span><span class="NAME">rio.error</span><span class="PUNC">(</span><span class="NAME">e</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"Remote transaction error!"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1012
+ <span class='line'>1005</span> </span><span class="PUNC">}</span><span class="WHIT">
1013
+ <span class='line'>1006</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1014
+ <span class='line'>1007</span>
1015
+ <span class='line'>1008</span> </span><span class="NAME">extend</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1016
+ <span class='line'>1009</span>
1017
+ <span class='line'>1010</span> </span><span class="NAME">extension.__initialize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">extension.initialize</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="NAME">Prototype.emptyFunction</span><span class="PUNC">;</span><span class="WHIT">
1018
+ <span class='line'>1011</span> </span><span class="NAME">extension.initialize</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1019
+ <span class='line'>1012</span> </span><span class="NAME">this.__model</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model</span><span class="PUNC">;</span><span class="WHIT">
1020
+ <span class='line'>1013</span>
1021
+ <span class='line'>1014</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">==</span><span class="WHIT"> </span><span class="NAME">undefined</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1022
+ <span class='line'>1015</span> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1023
+ <span class='line'>1016</span> </span><span class="NAME">this._id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options.id</span><span class="PUNC">;</span><span class="WHIT">
1024
+ <span class='line'>1017</span> </span><span class="PUNC">}</span><span class="WHIT">
1025
+ <span class='line'>1018</span>
1026
+ <span class='line'>1019</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.constructor</span><span class="WHIT"> </span><span class="PUNC">!=</span><span class="WHIT"> </span><span class="NAME">rio.Id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1027
+ <span class='line'>1020</span> </span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model.id</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1028
+ <span class='line'>1021</span> </span><span class="NAME">this.setId</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1029
+ <span class='line'>1022</span> </span><span class="PUNC">}</span><span class="WHIT">
1030
+ <span class='line'>1023</span>
1031
+ <span class='line'>1024</span> </span><span class="COMM">// Set assiated id's from belongsTo associations</span><span class="WHIT">
1032
+ <span class='line'>1025</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">model._belongsToAssociations</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">belongsToName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1033
+ <span class='line'>1026</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">associationValue</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="PUNC">[</span><span class="NAME">belongsToName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1034
+ <span class='line'>1027</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">associationValue</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1035
+ <span class='line'>1028</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">belongsToOptions</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._belongsToAssociations</span><span class="PUNC">[</span><span class="NAME">belongsToName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1036
+ <span class='line'>1029</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="STRN">"_"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">belongsToOptions.foreignKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">associationValue.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1037
+ <span class='line'>1030</span> </span><span class="PUNC">}</span><span class="WHIT">
1038
+ <span class='line'>1031</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1039
+ <span class='line'>1032</span>
1040
+ <span class='line'>1033</span> </span><span class="PUNC">(</span><span class="NAME">this.__initialize.bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">(</span><span class="NAME">options</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1041
+ <span class='line'>1034</span>
1042
+ <span class='line'>1035</span> </span><span class="COMM">// Add the hasManyAssocitation#create methods</span><span class="WHIT">
1043
+ <span class='line'>1036</span> </span><span class="NAME">Object.keys</span><span class="PUNC">(</span><span class="NAME">model._hasManyAssociations</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">each</span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">hasManyName</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1044
+ <span class='line'>1037</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">model._hasManyAssociations</span><span class="PUNC">[</span><span class="NAME">hasManyName</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
1045
+ <span class='line'>1038</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="NAME">hasManyName</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">create</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="NAME">createOptions</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1046
+ <span class='line'>1039</span> </span><span class="COMM">// In the case that the entity is still new, we should preload the association</span><span class="WHIT">
1047
+ <span class='line'>1040</span> </span><span class="COMM">// to make sure no entries are missed</span><span class="WHIT">
1048
+ <span class='line'>1041</span> </span><span class="COMM">// TODO: before we can wrap in isNew, we need to make the spec fixture proxy include created entities</span><span class="WHIT">
1049
+ <span class='line'>1042</span> </span><span class="COMM">// if (this.isNew()) {</span><span class="WHIT">
1050
+ <span class='line'>1043</span> </span><span class="KEYW">this</span><span class="PUNC">[</span><span class="PUNC">(</span><span class="STRN">"get-"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">hasManyName</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">camelize</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1051
+ <span class='line'>1044</span> </span><span class="COMM">// }</span><span class="WHIT">
1052
+ <span class='line'>1045</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Object.clone</span><span class="PUNC">(</span><span class="NAME">options.parameters</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1053
+ <span class='line'>1046</span> </span><span class="NAME">parameters</span><span class="PUNC">[</span><span class="NAME">options.foreignKey</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.getId</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1054
+ <span class='line'>1047</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">rio.models</span><span class="PUNC">[</span><span class="NAME">options.className</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">create</span><span class="PUNC">(</span><span class="NAME">Object.extend</span><span class="PUNC">(</span><span class="NAME">createOptions</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parameters</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1055
+ <span class='line'>1048</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1056
+ <span class='line'>1049</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1057
+ <span class='line'>1050</span>
1058
+ <span class='line'>1051</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">model.hasChannel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1059
+ <span class='line'>1052</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">rio.push</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1060
+ <span class='line'>1053</span> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">addChannel</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1061
+ <span class='line'>1054</span> </span><span class="NAME">rio.push.addChannel</span><span class="PUNC">(</span><span class="NAME">this.channelName</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1062
+ <span class='line'>1055</span> </span><span class="PUNC">}</span><span class="PUNC">.</span><span class="NAME">bind</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1063
+ <span class='line'>1056</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.temporary</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1064
+ <span class='line'>1057</span> </span><span class="NAME">options.id.doAfterReification</span><span class="PUNC">(</span><span class="NAME">addChannel</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1065
+ <span class='line'>1058</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1066
+ <span class='line'>1059</span> </span><span class="NAME">addChannel</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1067
+ <span class='line'>1060</span> </span><span class="PUNC">}</span><span class="WHIT">
1068
+ <span class='line'>1061</span> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1069
+ <span class='line'>1062</span> </span><span class="NAME">rio.warn</span><span class="PUNC">(</span><span class="STRN">"Attempted to add a channel without an available push server"</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1070
+ <span class='line'>1063</span> </span><span class="PUNC">}</span><span class="WHIT">
1071
+ <span class='line'>1064</span> </span><span class="PUNC">}</span><span class="WHIT">
1072
+ <span class='line'>1065</span>
1073
+ <span class='line'>1066</span> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">options</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1074
+ <span class='line'>1067</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">model.url</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1075
+ <span class='line'>1068</span> </span><span class="NAME">model.putInCache</span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1076
+ <span class='line'>1069</span> </span><span class="PUNC">}</span><span class="WHIT">
1077
+ <span class='line'>1070</span> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">options.id</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">options.id.temporary</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">options.id.temporary</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1078
+ <span class='line'>1071</span> </span><span class="NAME">this._lastSavedState</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.attributeState</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1079
+ <span class='line'>1072</span> </span><span class="PUNC">}</span><span class="WHIT">
1080
+ <span class='line'>1073</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
1081
+ <span class='line'>1074</span>
1082
+ <span class='line'>1075</span> </span><span class="NAME">rio.Attr.extend</span><span class="PUNC">(</span><span class="NAME">model</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">extension</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
1083
+ <span class='line'>1076</span> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
1084
+ <span class='line'>1077</span>
1085
+ <span class='line'>1078</span> </span><span class="NAME">toString</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
1086
+ <span class='line'>1079</span> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">"Model"</span><span class="PUNC">;</span><span class="WHIT">
1087
+ <span class='line'>1080</span> </span><span class="PUNC">}</span><span class="WHIT">
1088
+ <span class='line'>1081</span> </span><span class="PUNC">}</span><span class="PUNC">;</span></pre></body></html>