diff --git a/ide/web/lib/templates/addons/bower_deps/bower.json_ b/ide/web/lib/templates/addons/bower_deps/bower.json_ deleted file mode 100644 index dfd69147d..000000000 --- a/ide/web/lib/templates/addons/bower_deps/bower.json_ +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "``projectName``", - "description": "", - "homepage": "", - "keywords": [ - ], - "author": "", - "private": true, - "dependencies": { - ``dependencies`` - } -} diff --git a/ide/web/lib/templates/addons/bower_deps/setup.json b/ide/web/lib/templates/addons/bower_deps/setup.json deleted file mode 100644 index 255dbc7c5..000000000 --- a/ide/web/lib/templates/addons/bower_deps/setup.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "files": [ - { "source": "bower.json_", "dest": "bower.json" } - ] -} diff --git a/ide/web/lib/templates/addons/bower_deps/template.dart b/ide/web/lib/templates/addons/bower_deps/template.dart deleted file mode 100644 index 0a289c729..000000000 --- a/ide/web/lib/templates/addons/bower_deps/template.dart +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -part of spark.templates; - -class BowerDepsTemplate extends SparkProjectTemplate { - BowerDepsTemplate( - String id, List globalVars, List localVars) - : super._(id, globalVars, localVars); -} diff --git a/ide/web/lib/templates/templates.dart b/ide/web/lib/templates/templates.dart index 617976ee6..2ba250f5e 100644 --- a/ide/web/lib/templates/templates.dart +++ b/ide/web/lib/templates/templates.dart @@ -15,7 +15,6 @@ import '../package_mgmt/bower_properties.dart'; import '../utils.dart' as utils; import '../workspace.dart'; -part 'addons/bower_deps/template.dart'; part 'chrome/chrome_app_polymer_js/template.dart'; part 'polymer/template.dart'; part 'polymer/polymer_element_dart/template.dart'; @@ -116,8 +115,6 @@ abstract class ProjectTemplate { } switch (id) { - case 'addons/bower_deps': - return new BowerDepsTemplate(id, globalVars, localVars); case 'chrome/chrome_app_polymer_js': return new ChromeAppWithPolymerJSTemplate(id, globalVars, localVars); case 'polymer/polymer_element_js': diff --git a/ide/web/spark.dart b/ide/web/spark.dart index 085c358a9..9ed9dc4b7 100644 --- a/ide/web/spark.dart +++ b/ide/web/spark.dart @@ -2241,16 +2241,7 @@ class BuildApkAction extends SparkActionWithDialog { class NewProjectAction extends SparkActionWithDialog { InputElement _nameElt; - - // TODO(ussuri): Eliminate this and dependencies as per BUG #3619. - static const _KNOWN_JS_PACKAGES = const { - 'polymer': 'Polymer/polymer#master', - 'core-elements': 'Polymer/core-elements#master', - 'paper-elements': 'Polymer/paper-elements#master' - }; - // Matches: "proj-template", "proj-template;polymer,core-elements". - // TODO(ussuri): Set to '([\/\w_-]+)' when fixing BUG #3619. - static final _TEMPLATE_REGEX = new RegExp(r'([\/\w_-]+)(;(([\w-],?)+))?'); + SelectElement get _typeElt => getElement('select[name="type"]'); NewProjectAction(Spark spark, Element dialog) : super(spark, "project-new", "New Project…", dialog) { @@ -2282,7 +2273,7 @@ class NewProjectAction extends SparkActionWithDialog { } ws.WorkspaceRoot root = filesystem.fileSystemAccess.getRootFor(location); - final List templates = []; + List templates; // TODO(ussuri): Can this no-op `return Future.value()` be removed? return new Future.value().then((_) { @@ -2291,33 +2282,11 @@ class NewProjectAction extends SparkActionWithDialog { new TemplateVar('sourceName', name.toLowerCase()) ]; - // Add a template for the main project type. - final SelectElement projectTypeElt = getElement('select[name="type"]'); - final Match match = _TEMPLATE_REGEX.matchAsPrefix(projectTypeElt.value); - assert(match.groupCount > 0); - final String templId = match.group(1); - final String jsDepsStr = match.group(3); - - _analyticsTracker.sendEvent('action', 'project-new', templId); - templates.add(new ProjectTemplate(templId, globalVars)); - - // Possibly also add a mix-in template for JS dependencies, if the - // project type requires them. - if (jsDepsStr != null) { - List jsDeps = []; - for (final depName in jsDepsStr.split(',')) { - final String depPath = _KNOWN_JS_PACKAGES[depName]; - assert(depPath != null); - jsDeps.add('"$depName": "$depPath"'); - } - if (jsDeps.isNotEmpty) { - final localVars = [ - new TemplateVar('dependencies', jsDeps.join(',\n ')) - ]; - templates.add( - new ProjectTemplate("addons/bower_deps", globalVars, localVars)); - } - } + _analyticsTracker.sendEvent('action', 'project-new', _typeElt.value); + + // Add templates to be used to create the project. + final List ids = _typeElt.value.split('+'); + templates = ids.map((id) => new ProjectTemplate(id, globalVars)); return new ProjectBuilder(location.entry, templates, spark).build(); }).then((_) { diff --git a/ide/web/spark_polymer_ui.html b/ide/web/spark_polymer_ui.html index 3d057a16d..d66463fc7 100644 --- a/ide/web/spark_polymer_ui.html +++ b/ide/web/spark_polymer_ui.html @@ -342,7 +342,7 @@ -