Skip to content

Commit

Permalink
Merge pull request #11891 from martndemus/deprecate-collection-view
Browse files Browse the repository at this point in the history
[BUGFIX release] Deprecate Ember.CollectionView
  • Loading branch information
rwjblue committed Jul 25, 2015
2 parents 7348ea1 + 79d53af commit e4f8032
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 3 deletions.
4 changes: 2 additions & 2 deletions packages/ember-views/lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import Renderer from 'ember-metal-views/renderer';
import { DeprecatedCoreView } from 'ember-views/views/core_view';
import { DeprecatedView } from 'ember-views/views/view';
import { DeprecatedContainerView } from 'ember-views/views/container_view';
import CollectionView from 'ember-views/views/collection_view';
import { DeprecatedCollectionView } from 'ember-views/views/collection_view';
import Component from 'ember-views/views/component';

import EventDispatcher from 'ember-views/system/event_dispatcher';
Expand Down Expand Up @@ -67,6 +67,7 @@ if (Ember.ENV._ENABLE_LEGACY_VIEW_SUPPORT) {
Ember.View.cloneStates = cloneStates;
Ember.View._Renderer = Renderer;
Ember.ContainerView = DeprecatedContainerView;
Ember.CollectionView = DeprecatedCollectionView;
}

Ember._Renderer = Renderer;
Expand All @@ -84,7 +85,6 @@ Ember.SelectOptgroup = SelectOptgroup;

Ember.TextSupport = TextSupport;
Ember.ComponentLookup = ComponentLookup;
Ember.CollectionView = CollectionView;
Ember.Component = Component;
Ember.EventDispatcher = EventDispatcher;

Expand Down
25 changes: 25 additions & 0 deletions packages/ember-views/lib/views/collection_view.js
Original file line number Diff line number Diff line change
Expand Up @@ -450,4 +450,29 @@ function buildItemViewProps(template, attrs) {
return props;
}

function viewDeprecationMessage() {
Ember.deprecate(`Ember.CollectionView is deprecated. Consult the Deprecations Guide for a migration strategy.`,
!!Ember.ENV._ENABLE_LEGACY_VIEW_SUPPORT,
{
url: 'http://emberjs.com/deprecations/v1.x/#toc_ember-collectionview',
id: 'ember-views.collection-view-deprecated',
until: '2.4.0'
});
}

var DeprecatedCollectionView = CollectionView.extend({
init() {
viewDeprecationMessage();
this._super(...arguments);
}
});

DeprecatedCollectionView.reopen = function() {
viewDeprecationMessage();
CollectionView.reopen(...arguments);
return this;
};

export default CollectionView;

export { DeprecatedCollectionView };
18 changes: 17 additions & 1 deletion packages/ember-views/tests/views/collection_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import run from 'ember-metal/run_loop';
import { Mixin } from 'ember-metal/mixin';
import { fmt } from 'ember-runtime/system/string';
import jQuery from 'ember-views/system/jquery';
import CollectionView from 'ember-views/views/collection_view';
import CollectionView, { DeprecatedCollectionView } from 'ember-views/views/collection_view';
import View from 'ember-views/views/view';
import Registry from 'container/registry';
import compile from 'ember-template-compiler/system/compile';
Expand Down Expand Up @@ -670,3 +670,19 @@ QUnit.test('Collection with style attribute supports changing content', function
view.get('content').pushObject('baz');
});
});

QUnit.module('DeprecatedCollectionView');

QUnit.test('calling reopen on DeprecatedCollectionView delegates to CollectionView', function() {
expect(2);
var originalReopen = CollectionView.reopen;
var obj = {};

CollectionView.reopen = function(arg) { ok(arg === obj); };

expectDeprecation(() => {
DeprecatedCollectionView.reopen(obj);
}, /Ember.CollectionView is deprecated./);

CollectionView.reopen = originalReopen;
});

0 comments on commit e4f8032

Please sign in to comment.