Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Completely remove the concept of isVirtual #10903

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 0 additions & 2 deletions packages/ember-application/lib/system/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import DOMHelper from "ember-htmlbars/system/dom-helper";
import SelectView from "ember-views/views/select";
import { OutletView } from "ember-routing-views/views/outlet";
import EmberView from "ember-views/views/view";
import _MetamorphView from "ember-views/views/metamorph_view";
import EventDispatcher from "ember-views/system/event_dispatcher";
import jQuery from "ember-views/system/jquery";
import Route from "ember-routing/system/route";
Expand Down Expand Up @@ -1014,7 +1013,6 @@ Application.reopenClass({

registry.injection('view', '_viewRegistry', '-view-registry:main');

registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());

registry.register('route:basic', Route, { instantiate: false });
Expand Down
4 changes: 1 addition & 3 deletions packages/ember-htmlbars/lib/system/component-node.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,10 +164,8 @@ export function createOrUpdateComponent(component, options, renderNode, env, att
if (options.parentView) {
options.parentView.appendChild(component);

// don't set the property on a virtual view, as they are invisible to
// consumers of the view API
if (options.viewName) {
set(get(options.parentView, 'concreteView'), options.viewName, component);
set(options.parentView, options.viewName, component);
}
}

Expand Down
2 changes: 0 additions & 2 deletions packages/ember-htmlbars/tests/compat/handlebars_get_test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import Ember from "ember-metal/core"; // Ember.lookup
import _MetamorphView from "ember-views/views/metamorph_view";
import EmberView from "ember-views/views/view";
import handlebarsGet from "ember-htmlbars/compat/handlebars-get";
import { Registry } from "ember-runtime/system/container";
Expand All @@ -19,7 +18,6 @@ QUnit.module("ember-htmlbars: compat - Ember.Handlebars.get", {
container = registry.container();
registry.optionsForType('template', { instantiate: false });
registry.optionsForType('helper', { instantiate: false });
registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},

Expand Down
2 changes: 0 additions & 2 deletions packages/ember-htmlbars/tests/helpers/bind_attr_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import Ember from "ember-metal/core"; // Ember.lookup
import run from "ember-metal/run_loop";
import Namespace from "ember-runtime/system/namespace";
import EmberView from "ember-views/views/view";
import _MetamorphView from "ember-views/views/metamorph_view";
import EmberObject from "ember-runtime/system/object";
import { A } from "ember-runtime/system/native_array";
import { computed } from "ember-metal/computed";
Expand Down Expand Up @@ -35,7 +34,6 @@ QUnit.module("ember-htmlbars: {{bind-attr}} [DEPRECATED]", {
registry = new Registry();
container = registry.container();
registry.optionsForType('template', { instantiate: false });
registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());

warnings = [];
Expand Down
1 change: 0 additions & 1 deletion packages/ember-htmlbars/tests/helpers/collection_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ QUnit.module("collection helper", {
container = registry.container();

registry.optionsForType('template', { instantiate: false });
// registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},

Expand Down
7 changes: 0 additions & 7 deletions packages/ember-htmlbars/tests/helpers/each_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import Ember from "ember-metal/core"; // Ember.lookup;
import EmberObject from "ember-runtime/system/object";
import run from "ember-metal/run_loop";
import EmberView from "ember-views/views/view";
import _MetamorphView from "ember-views/views/metamorph_view";
import LegacyEachView from "ember-views/views/legacy_each_view";
import { computed } from "ember-metal/computed";
import ArrayController from "ember-runtime/controllers/array_controller";
Expand Down Expand Up @@ -88,7 +87,6 @@ QUnit.module("the #each helper [DEPRECATED]", {
registry = new Registry();
container = registry.container();

registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
registry.register('view:-legacy-each', LegacyEachView);

Expand Down Expand Up @@ -574,8 +572,6 @@ QUnit.test("it supports {{itemViewClass=}} with tagName (DEPRECATED)", function(
container: container
});

//expectDeprecation(/Supplying a tagName to Metamorph views is unreliable and is deprecated./);

runAppend(view);
equal(view.$('ul').length, 1, 'rendered ul tag');
equal(view.$('ul li').length, 2, 'rendered 2 li tags');
Expand Down Expand Up @@ -681,8 +677,6 @@ QUnit.test("it supports {{emptyViewClass=}} with tagName (DEPRECATED)", function
container: container
});

//expectDeprecation(/Supplying a tagName to Metamorph views is unreliable and is deprecated./);

runAppend(view);

equal(view.$('b').length, 1, 'rendered b tag');
Expand Down Expand Up @@ -796,7 +790,6 @@ function testEachWithItem(moduleName, useBlockParams) {
registry = new Registry();
container = registry.container();

registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},
teardown() {
Expand Down
2 changes: 0 additions & 2 deletions packages/ember-htmlbars/tests/helpers/if_unless_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { Registry } from "ember-runtime/system/container";
import EmberView from "ember-views/views/view";
import ObjectProxy from "ember-runtime/system/object_proxy";
import EmberObject from "ember-runtime/system/object";
import _MetamorphView from 'ember-views/views/metamorph_view';
import compile from "ember-template-compiler/system/compile";

import { set } from 'ember-metal/property_set';
Expand All @@ -24,7 +23,6 @@ QUnit.module("ember-htmlbars: {{#if}} and {{#unless}} helpers", {
registry = new Registry();
container = registry.container();
registry.optionsForType('template', { instantiate: false });
registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},

Expand Down
2 changes: 0 additions & 2 deletions packages/ember-htmlbars/tests/helpers/view_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import TextField from 'ember-views/views/text_field';
import Namespace from 'ember-runtime/system/namespace';
import EmberObject from 'ember-runtime/system/object';
import ContainerView from 'ember-views/views/container_view';
import _MetamorphView from 'ember-views/views/metamorph_view';
import SafeString from 'htmlbars-util/safe-string';
import precompile from 'ember-template-compiler/compat/precompile';
import compile from "ember-template-compiler/system/compile";
Expand Down Expand Up @@ -49,7 +48,6 @@ QUnit.module("ember-htmlbars: {{#view}} helper", {
container = registry.container();
registry.optionsForType('template', { instantiate: false });
registry.optionsForType('helper', { instantiate: false });
registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},

Expand Down
2 changes: 0 additions & 2 deletions packages/ember-htmlbars/tests/integration/with_view_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import jQuery from 'ember-views/system/jquery';
import EmberView from 'ember-views/views/view';
import { Registry } from "ember-runtime/system/container";
import EmberObject from 'ember-runtime/system/object';
import _MetamorphView from 'ember-views/views/metamorph_view';
import compile from 'ember-template-compiler/system/compile';
import { runAppend, runDestroy } from "ember-runtime/tests/utils";

Expand All @@ -17,7 +16,6 @@ QUnit.module('ember-htmlbars: {{#with}} and {{#view}} integration', {
registry = new Registry();
container = registry.container();
registry.optionsForType('template', { instantiate: false });
registry.register('view:default', _MetamorphView);
registry.register('view:toplevel', EmberView.extend());
},

Expand Down
38 changes: 28 additions & 10 deletions packages/ember-routing-htmlbars/lib/keywords/render.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import Ember from "ember-metal/core"; // assert
import { get } from "ember-metal/property_get";
import EmberError from "ember-metal/error";
import create from 'ember-metal/platform/create';
import { isStream, read } from "ember-metal/streams/utils";
Expand Down Expand Up @@ -49,6 +50,12 @@ export default {
var context = params[1];

var container = env.container;

// The render keyword presumes it can work without a router. This is really
// only to satisfy the test:
//
// {{view}} should not override class bindings defined on a child view"
//
var router = container.lookup('router:main');

Ember.assert(
Expand All @@ -61,7 +68,7 @@ export default {
Ember.assert(
"You can only use the {{render}} helper once without a model object as " +
"its second argument, as in {{render \"post\" post}}.",
!router || !router._lookupActiveView(name)
!router || !router._lookupActiveComponentNode(name)
);
} else if (params.length !== 2) {
throw new EmberError("You must pass a templateName to render");
Expand All @@ -81,9 +88,15 @@ export default {
var view = container.lookup('view:' + name);
if (!view) {
view = container.lookup('view:default');
template = template || container.lookup(templateName);
}
view.ownerView = env.view.ownerView;
var viewHasTemplateSpecified = view && !!get(view, 'template');
if (!template && !viewHasTemplateSpecified) {
template = container.lookup(templateName);
}

if (view) {
view.ownerView = env.view.ownerView;
}

// provide controller override
var controllerName;
Expand Down Expand Up @@ -129,30 +142,35 @@ export default {
});
}

view.set('controller', controller);
if (view) {
view.set('controller', controller);
}
state.controller = controller;

hash.viewName = camelize(name);

if (router && params.length === 1) {
router._connectActiveView(name, view);
}


// var state = node.state;
// var parentView = scope.view;
if (template && template.raw) {
template = template.raw;
}

var options = {
component: view,
layout: null,
self: controller
};

if (view) {
options.component = view;
}

var componentNode = ComponentNode.create(node, env, hash, options, state.parentView, null, null, template);
state.componentNode = componentNode;

if (router && params.length === 1) {
router._connectActiveComponentNode(name, componentNode);
}

componentNode.render(env, hash, visitor);
},

Expand Down