Update ember with emberjs/ember.js#718 merged

This commit is contained in:
Piotr Sarnacki 2012-07-30 13:25:21 +02:00
parent b099a8e2bb
commit a3c4468b5a
3 changed files with 340 additions and 208 deletions

View File

@ -4036,9 +4036,7 @@ DS.RESTAdapter = DS.Adapter.extend({
data: query,
success: function(json) {
this.sideload(store, type, json, plural);
setTimeout(function() {
recordArray.load(json[plural]);
}, 10);
recordArray.load(json[plural]);
}
});
},

View File

@ -1,5 +1,5 @@
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {
@ -142,8 +142,8 @@ window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprec
})();
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {
@ -12090,6 +12090,10 @@ Ember.View = Ember.Object.extend(Ember.Evented,
_parentView: null,
// allow navigation between the next and previous views
prevView: null,
nextView: null,
// return the current view, not including virtual views
concreteView: Ember.computed(function() {
if (!this.isVirtual) { return this; }
@ -13401,10 +13405,22 @@ var DOMManager = {
});
},
after: function(view, nextView) {
nextView._insertElementLater(function() {
var element = view.$();
element.after(nextView.$());
after: function(parentView, view, newView) {
newView._insertElementLater(function() {
var nextView;
var prevView = view;
while (prevView !== null && prevView.get('state') !== 'inDOM') {
prevView=prevView.get('prevView');
}
var element;
if (prevView === null) {
element = parentView.$();
element.prepend(newView.$());
} else {
element = prevView.$();
element.after(newView.$());
}
});
},
@ -13677,7 +13693,13 @@ Ember.View.states.inBuffer = {
var buffer = view.buffer;
childView = this.createChildView(childView, options);
view._childViews.push(childView);
var childViews = get(view, '_childViews');
if (childViews.length > 0) {
childViews[childViews.length-1].nextView = childView;
childView.prevView = childViews[childViews.length-1];
}
childViews.push(childView);
childView.renderToBuffer(buffer);
@ -14096,6 +14118,10 @@ Ember.ContainerView = Ember.View.extend({
view = this.createChildView(viewName);
}
if (idx>0) {
_childViews[idx-1].nextView = view;
view.prevView = _childViews[idx-1];
}
_childViews[idx] = view;
}, this);
@ -14211,7 +14237,7 @@ Ember.ContainerView = Ember.View.extend({
*/
_scheduleInsertion: function(view, prev) {
if (prev) {
prev.domManager.after(prev, view);
prev.domManager.after(this, prev, view);
} else {
this.domManager.prepend(this, view);
}
@ -14532,6 +14558,15 @@ Ember.CollectionView = Ember.ContainerView.extend(
if (removingAll) { childView.removedFromDOM = true; }
childView.destroy();
}
// If there is an element before the ones we deleted
if (start>0) {
childViews[start-1].set('nextView', start<childViews.length ? childViews[start] : null);
}
// if there is an element after the ones we deleted
if (start<childViews.length) {
childViews[start].set('prevView', start>0 ? childViews[start-1] : null);
}
},
/**
@ -14572,6 +14607,11 @@ Ember.CollectionView = Ember.ContainerView.extend(
contentIndex: idx
});
// link together the chain of addedViews
if (addedViews.length>0) {
view.set('prevView', addedViews[addedViews.length-1]);
addedViews[addedViews.length-1].set('nextView', view);
}
addedViews.push(view);
}
} else {
@ -14582,6 +14622,20 @@ Ember.CollectionView = Ember.ContainerView.extend(
addedViews.push(emptyView);
set(this, 'emptyView', emptyView);
}
if (added>0) {
// if there is a childview before the ones we're adding
if (start>0) {
childViews.objectAt(start-1).set('nextView', addedViews[0]);
addedViews[0].set('prevView', childViews.objectAt(start-1));
}
// if there is a childview after the ones we're adding
if (start<childViews.length) {
childViews.objectAt(start).set('prevView', addedViews[addedViews.length-1]);
addedViews[addedViews.length-1].set('nextView', childViews.objectAt(start));
}
}
childViews.replace(start, 0, addedViews);
},
@ -17888,11 +17942,25 @@ var DOMManager = {
});
},
after: function(view, nextView) {
nextView._insertElementLater(function() {
var morph = view.morph;
morph.after(nextView.outerHTML);
nextView.outerHTML = null;
after: function(parentView, view, newView) {
newView._insertElementLater(function() {
var morph;
var nextView;
var prevView = view;
// Find a previous item that actually exists in the page
while (prevView !== null && prevView.get('state') === 'destroyed') {
prevView=prevView.get('prevView');
}
if (prevView === null) {
morph = parentView.get('morph');
morph.prepend(newView.outerHTML);
newView.outerHTML = null;
} else {
morph = prevView.morph;
morph.after(newView.outerHTML);
newView.outerHTML = null;
}
});
},
@ -20570,8 +20638,8 @@ Ember.onLoad('application', bootstrap);
})();
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {

View File

@ -1952,8 +1952,8 @@ Handlebars.VM = {
Handlebars.template = Handlebars.VM.template;
;
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {
@ -2096,8 +2096,8 @@ window.ember_deprecateFunc = Ember.deprecateFunc("ember_deprecateFunc is deprec
})();
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {
@ -14044,6 +14044,10 @@ Ember.View = Ember.Object.extend(Ember.Evented,
_parentView: null,
// allow navigation between the next and previous views
prevView: null,
nextView: null,
// return the current view, not including virtual views
concreteView: Ember.computed(function() {
if (!this.isVirtual) { return this; }
@ -15355,10 +15359,22 @@ var DOMManager = {
});
},
after: function(view, nextView) {
nextView._insertElementLater(function() {
var element = view.$();
element.after(nextView.$());
after: function(parentView, view, newView) {
newView._insertElementLater(function() {
var nextView;
var prevView = view;
while (prevView !== null && prevView.get('state') !== 'inDOM') {
prevView=prevView.get('prevView');
}
var element;
if (prevView === null) {
element = parentView.$();
element.prepend(newView.$());
} else {
element = prevView.$();
element.after(newView.$());
}
});
},
@ -15631,7 +15647,13 @@ Ember.View.states.inBuffer = {
var buffer = view.buffer;
childView = this.createChildView(childView, options);
view._childViews.push(childView);
var childViews = get(view, '_childViews');
if (childViews.length > 0) {
childViews[childViews.length-1].nextView = childView;
childView.prevView = childViews[childViews.length-1];
}
childViews.push(childView);
childView.renderToBuffer(buffer);
@ -16050,6 +16072,10 @@ Ember.ContainerView = Ember.View.extend({
view = this.createChildView(viewName);
}
if (idx>0) {
_childViews[idx-1].nextView = view;
view.prevView = _childViews[idx-1];
}
_childViews[idx] = view;
}, this);
@ -16165,7 +16191,7 @@ Ember.ContainerView = Ember.View.extend({
*/
_scheduleInsertion: function(view, prev) {
if (prev) {
prev.domManager.after(prev, view);
prev.domManager.after(this, prev, view);
} else {
this.domManager.prepend(this, view);
}
@ -16486,6 +16512,15 @@ Ember.CollectionView = Ember.ContainerView.extend(
if (removingAll) { childView.removedFromDOM = true; }
childView.destroy();
}
// If there is an element before the ones we deleted
if (start>0) {
childViews[start-1].set('nextView', start<childViews.length ? childViews[start] : null);
}
// if there is an element after the ones we deleted
if (start<childViews.length) {
childViews[start].set('prevView', start>0 ? childViews[start-1] : null);
}
},
/**
@ -16526,6 +16561,11 @@ Ember.CollectionView = Ember.ContainerView.extend(
contentIndex: idx
});
// link together the chain of addedViews
if (addedViews.length>0) {
view.set('prevView', addedViews[addedViews.length-1]);
addedViews[addedViews.length-1].set('nextView', view);
}
addedViews.push(view);
}
} else {
@ -16536,6 +16576,20 @@ Ember.CollectionView = Ember.ContainerView.extend(
addedViews.push(emptyView);
set(this, 'emptyView', emptyView);
}
if (added>0) {
// if there is a childview before the ones we're adding
if (start>0) {
childViews.objectAt(start-1).set('nextView', addedViews[0]);
addedViews[0].set('prevView', childViews.objectAt(start-1));
}
// if there is a childview after the ones we're adding
if (start<childViews.length) {
childViews.objectAt(start).set('prevView', addedViews[addedViews.length-1]);
addedViews[addedViews.length-1].set('nextView', childViews.objectAt(start));
}
}
childViews.replace(start, 0, addedViews);
},
@ -19842,11 +19896,25 @@ var DOMManager = {
});
},
after: function(view, nextView) {
nextView._insertElementLater(function() {
var morph = view.morph;
morph.after(nextView.outerHTML);
nextView.outerHTML = null;
after: function(parentView, view, newView) {
newView._insertElementLater(function() {
var morph;
var nextView;
var prevView = view;
// Find a previous item that actually exists in the page
while (prevView !== null && prevView.get('state') === 'destroyed') {
prevView=prevView.get('prevView');
}
if (prevView === null) {
morph = parentView.get('morph');
morph.prepend(newView.outerHTML);
newView.outerHTML = null;
} else {
morph = prevView.morph;
morph.after(newView.outerHTML);
newView.outerHTML = null;
}
});
},
@ -22524,8 +22592,8 @@ Ember.onLoad('application', bootstrap);
})();
// Version: v0.9.8.1-672-gd7e24ac
// Last commit: d7e24ac (2012-07-26 09:35:30 -0700)
// Version: v0.9.8.1-675-g417213d
// Last commit: 417213d (2012-07-30 13:06:36 +0200)
(function() {
@ -26575,9 +26643,7 @@ DS.RESTAdapter = DS.Adapter.extend({
data: query,
success: function(json) {
this.sideload(store, type, json, plural);
setTimeout(function() {
recordArray.load(json[plural]);
}, 10);
recordArray.load(json[plural]);
}
});
},