You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/05/10 01:00:13 UTC
[11/43] git commit: Move www/ and merges/ into app/.
Move www/ and merges/ into app/.
The structure is now:
app/
merges/
android/
ios/
www/
config.xml
All code, tests and docs are updated and everything is still working. This
is a breaking change for old projects, but it's fairly easy to perform the
move manually:
$ mkdir app
$ mv www/config.xml app
$ mv www app
$ mv merges app
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/740ff28d
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/740ff28d
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/740ff28d
Branch: refs/heads/master
Commit: 740ff28d73e0275a47cb16ff86b2d8542b0662fa
Parents: 2f39840
Author: Braden Shepherdson <br...@gmail.com>
Authored: Tue Apr 9 10:12:56 2013 -0400
Committer: Braden Shepherdson <br...@gmail.com>
Committed: Tue Apr 9 11:11:34 2013 -0400
----------------------------------------------------------------------
README.md | 81 +-
bootstrap.js | 4 +-
spec/config_parser.spec.js | 3 +-
spec/create.spec.js | 5 +-
spec/metadata/android_parser.spec.js | 8 +-
spec/metadata/blackberry_parser.spec.js | 10 +-
spec/metadata/ios_parser.spec.js | 8 +-
spec/platform.spec.js | 4 +-
spec/serve.spec.js | 2 +-
src/compile.js | 3 +-
src/create.js | 10 +-
src/emulate.js | 2 +-
src/metadata/android_parser.js | 6 +-
src/metadata/blackberry_parser.js | 10 +-
src/metadata/ios_parser.js | 4 +-
src/platform.js | 6 +-
src/plugin.js | 4 +-
src/prepare.js | 2 +-
src/serve.js | 2 +-
src/util.js | 9 +
templates/app/config.xml | 49 +
templates/app/www/css/index.css | 100 +
templates/app/www/img/cordova.png | Bin 0 -> 19932 bytes
templates/app/www/index.html | 24 +
templates/app/www/js/index.js | 20 +
templates/app/www/res/icon/cordova_128.png | Bin 0 -> 11401 bytes
templates/app/www/res/icon/cordova_16.png | Bin 0 -> 1699 bytes
templates/app/www/res/icon/cordova_24.png | Bin 0 -> 2215 bytes
templates/app/www/res/icon/cordova_256.png | Bin 0 -> 27408 bytes
templates/app/www/res/icon/cordova_32.png | Bin 0 -> 2843 bytes
templates/app/www/res/icon/cordova_48.png | Bin 0 -> 4111 bytes
templates/app/www/res/icon/cordova_512.png | Bin 0 -> 39830 bytes
templates/app/www/res/icon/cordova_64.png | Bin 0 -> 5463 bytes
templates/app/www/res/icon/cordova_android_36.png | Bin 0 -> 3096 bytes
templates/app/www/res/icon/cordova_android_48.png | Bin 0 -> 4090 bytes
templates/app/www/res/icon/cordova_android_72.png | Bin 0 -> 6080 bytes
templates/app/www/res/icon/cordova_android_96.png | Bin 0 -> 7685 bytes
templates/app/www/res/icon/cordova_bb_80.png | Bin 0 -> 7287 bytes
templates/app/www/res/icon/cordova_ios_114.png | Bin 0 -> 7869 bytes
templates/app/www/res/icon/cordova_ios_144.png | Bin 0 -> 11706 bytes
templates/app/www/res/icon/cordova_ios_57.png | Bin 0 -> 3908 bytes
templates/app/www/res/icon/cordova_ios_72.png | Bin 0 -> 4944 bytes
.../app/www/res/screen/android_hdpi_landscape.png | Bin 0 -> 218302 bytes
.../app/www/res/screen/android_hdpi_portrait.png | Bin 0 -> 222148 bytes
.../app/www/res/screen/android_ldpi_landscape.png | Bin 0 -> 42616 bytes
.../app/www/res/screen/android_ldpi_portrait.png | Bin 0 -> 42034 bytes
.../app/www/res/screen/android_mdpi_landscape.png | Bin 0 -> 92347 bytes
.../app/www/res/screen/android_mdpi_portrait.png | Bin 0 -> 90555 bytes
.../app/www/res/screen/android_xhdpi_landscape.png | Bin 0 -> 489604 bytes
.../app/www/res/screen/android_xhdpi_portrait.png | Bin 0 -> 504508 bytes
.../www/res/screen/blackberry_transparent_300.png | Bin 0 -> 15823 bytes
.../www/res/screen/blackberry_transparent_400.png | Bin 0 -> 11001 bytes
templates/app/www/res/screen/ipad_landscape.png | Bin 0 -> 407370 bytes
templates/app/www/res/screen/ipad_portrait.png | Bin 0 -> 422441 bytes
.../app/www/res/screen/ipad_retina_landscape.png | Bin 0 -> 1534088 bytes
.../app/www/res/screen/ipad_retina_portrait.png | Bin 0 -> 1610434 bytes
templates/app/www/res/screen/iphone_landscape.png | Bin 0 -> 92301 bytes
templates/app/www/res/screen/iphone_portrait.png | Bin 0 -> 93897 bytes
.../app/www/res/screen/iphone_retina_landscape.png | Bin 0 -> 339639 bytes
.../app/www/res/screen/iphone_retina_portrait.png | Bin 0 -> 350593 bytes
.../app/www/res/screen/windows_phone_portrait.jpg | Bin 0 -> 11483 bytes
templates/app/www/spec.html | 50 +
templates/app/www/spec/helper.js | 11 +
templates/app/www/spec/index.js | 49 +
.../app/www/spec/lib/jasmine-1.2.0/MIT.LICENSE | 20 +
.../app/www/spec/lib/jasmine-1.2.0/jasmine-html.js | 616 ++++
.../app/www/spec/lib/jasmine-1.2.0/jasmine.css | 81 +
.../app/www/spec/lib/jasmine-1.2.0/jasmine.js | 2529 +++++++++++++++
templates/www/config.xml | 49 -
templates/www/css/index.css | 100 -
templates/www/img/cordova.png | Bin 19932 -> 0 bytes
templates/www/index.html | 24 -
templates/www/js/index.js | 20 -
templates/www/res/icon/cordova_128.png | Bin 11401 -> 0 bytes
templates/www/res/icon/cordova_16.png | Bin 1699 -> 0 bytes
templates/www/res/icon/cordova_24.png | Bin 2215 -> 0 bytes
templates/www/res/icon/cordova_256.png | Bin 27408 -> 0 bytes
templates/www/res/icon/cordova_32.png | Bin 2843 -> 0 bytes
templates/www/res/icon/cordova_48.png | Bin 4111 -> 0 bytes
templates/www/res/icon/cordova_512.png | Bin 39830 -> 0 bytes
templates/www/res/icon/cordova_64.png | Bin 5463 -> 0 bytes
templates/www/res/icon/cordova_android_36.png | Bin 3096 -> 0 bytes
templates/www/res/icon/cordova_android_48.png | Bin 4090 -> 0 bytes
templates/www/res/icon/cordova_android_72.png | Bin 6080 -> 0 bytes
templates/www/res/icon/cordova_android_96.png | Bin 7685 -> 0 bytes
templates/www/res/icon/cordova_bb_80.png | Bin 7287 -> 0 bytes
templates/www/res/icon/cordova_ios_114.png | Bin 7869 -> 0 bytes
templates/www/res/icon/cordova_ios_144.png | Bin 11706 -> 0 bytes
templates/www/res/icon/cordova_ios_57.png | Bin 3908 -> 0 bytes
templates/www/res/icon/cordova_ios_72.png | Bin 4944 -> 0 bytes
.../www/res/screen/android_hdpi_landscape.png | Bin 218302 -> 0 bytes
templates/www/res/screen/android_hdpi_portrait.png | Bin 222148 -> 0 bytes
.../www/res/screen/android_ldpi_landscape.png | Bin 42616 -> 0 bytes
templates/www/res/screen/android_ldpi_portrait.png | Bin 42034 -> 0 bytes
.../www/res/screen/android_mdpi_landscape.png | Bin 92347 -> 0 bytes
templates/www/res/screen/android_mdpi_portrait.png | Bin 90555 -> 0 bytes
.../www/res/screen/android_xhdpi_landscape.png | Bin 489604 -> 0 bytes
.../www/res/screen/android_xhdpi_portrait.png | Bin 504508 -> 0 bytes
.../www/res/screen/blackberry_transparent_300.png | Bin 15823 -> 0 bytes
.../www/res/screen/blackberry_transparent_400.png | Bin 11001 -> 0 bytes
templates/www/res/screen/ipad_landscape.png | Bin 407370 -> 0 bytes
templates/www/res/screen/ipad_portrait.png | Bin 422441 -> 0 bytes
templates/www/res/screen/ipad_retina_landscape.png | Bin 1534088 -> 0 bytes
templates/www/res/screen/ipad_retina_portrait.png | Bin 1610434 -> 0 bytes
templates/www/res/screen/iphone_landscape.png | Bin 92301 -> 0 bytes
templates/www/res/screen/iphone_portrait.png | Bin 93897 -> 0 bytes
.../www/res/screen/iphone_retina_landscape.png | Bin 339639 -> 0 bytes
.../www/res/screen/iphone_retina_portrait.png | Bin 350593 -> 0 bytes
.../www/res/screen/windows_phone_portrait.jpg | Bin 11483 -> 0 bytes
templates/www/spec.html | 50 -
templates/www/spec/helper.js | 11 -
templates/www/spec/index.js | 49 -
templates/www/spec/lib/jasmine-1.2.0/MIT.LICENSE | 20 -
.../www/spec/lib/jasmine-1.2.0/jasmine-html.js | 616 ----
templates/www/spec/lib/jasmine-1.2.0/jasmine.css | 81 -
templates/www/spec/lib/jasmine-1.2.0/jasmine.js | 2529 ---------------
116 files changed, 3648 insertions(+), 3633 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index f177fbd..291c037 100644
--- a/README.md
+++ b/README.md
@@ -53,45 +53,47 @@ A Cordova application built with cordova-cli will have the following directory s
myApp/
|--.cordova/
- |-- merges/
- | |-- android/
- | |-- blackberry/
- | `-- ios/
+ |-- app/
+ | |-- merges/
+ | | |-- android/
+ | | |-- blackberry/
+ | | `-- ios/
+ | |-- www/
+ | `-- config.xml
|-- platforms/
| |-- android/
| |-- blackberry/
| `-- ios/
- |-- plugins/
- `-- www/
+ `-- plugins/
## .cordova/
This directory identifies a tree as a cordova project. Simple configuration information is stored in here (such as BlackBerry environment variables).
Commands other than `create` operate against the project directory itself, rather than the current directory - a search up the current directory's parents is made to find the project directory. Thus, any command (other than `create`) can be used from any subdirectory whose parent is a cordova project directory (same as git).
-## merges/
-Platform-specific web assets (HTML, CSS and JavaScript files) are contained within appropriate subfolders in this directory. These are deployed during a `prepare` to the appropriate native directory. Files placed under `merges/` will override matching files in the `www/` folder for the relevant platform. A quick example, assuming a project structure of:
+## app/
- merges/
- |-- ios/
- | `-- app.js
- |-- android/
- | `-- android.js
- www/
- `-- app.js
+Contains your app-specific content: its `www/` files, any `merges/`, and the `config.xml`. If you want to keep your app in source control, this directory should be the top of the repository.
-After building the Android and iOS projects, the Android application will contain both `app.js` and `android.js`. However, the iOS application will only contain an `app.js`, and it will override the "common" `app.js` located inside the `www/` folder above.
-## platforms/
-Platforms added to your application will have the native application project structures laid out within this directory.
+### app/merges/
+Platform-specific web assets (HTML, CSS and JavaScript files) are contained within appropriate subfolders in this directory. These are deployed during a `prepare` to the appropriate native directory. Files placed under `app/merges/` will override matching files in the `app/www/` folder for the relevant platform. A quick example, assuming a project structure of:
-## plugins/
-Any added plugins will be extracted or copied into this directory.
+ app/
+ |-- merges/
+ | |-- ios/
+ | | `-- app.js
+ | `-- android/
+ | `-- android.js
+ `--www/
+ `-- app.js
-## www/
-Contains the project's web artifacts, such as .html, .css and .js files. These are your main application assets. The config.xml file within this directory is very important; read on to the next section!
+After building the Android and iOS projects, the Android application will contain both `app.js` and `android.js`. However, the iOS application will only contain an `app.js`, and it will be the one from `app/merges/ios/app.js`, overriding the "common" `app.js` located inside `app/www/`.
-### Your Blanket: www/config.xml
+### app/www/
+Contains the project's web artifacts, such as .html, .css and .js files. These are your main application assets. They will be copied on a `cordova prepare` to each platform's www directory.
+
+### Your Blanket: app/config.xml
This file is what you should be editing to modify your application's metadata. Any time you run any cordova-cli commands, the tool will look at the contents of `config.xml` and use all relevant info from this file to define native application information. cordova-cli supports changing your application's data via the following elements inside the `config.xml` file:
@@ -100,6 +102,12 @@ This file is what you should be editing to modify your application's metadata. A
- The whitelist can be modified using the `<access>` elements. Make sure the `origin` attribute of your `<access>` element points to a valid URL (you can use `*` as wildcard). For more information on the whitelisting syntax, see the [docs.phonegap.com](http://docs.phonegap.com/en/2.2.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide). You can use either attribute `uri` ([BlackBerry-proprietary](https://developer.blackberry.com/html5/documentation/access_element_834677_11.html)) or `origin` ([standards-compliant](http://www.w3.org/TR/widgets-access/#attributes)) to denote the domain.
- Platform-specific preferences can be customized via `<preference>` tags. See [docs.phonegap.com](http://docs.phonegap.com/en/2.3.0/guide_project-settings_index.md.html#Project%20Settings) for a list of preferences you can use.
+## platforms/
+Platforms added to your application will have the native application project structures laid out within this directory.
+
+## plugins/
+Any added plugins will be extracted or copied into this directory.
+
# Hooks
Projects created by cordova-cli have `before` and `after` hooks for each [project command](#project_commands). There are two types of hooks: project-specific ones and module-level ones.
@@ -130,19 +138,20 @@ This example shows how to create a project from scratch named KewlApp with iOS a
The directory structure of KewlApp now looks like this:
KewlApp/
- |- .cordova/
- |- mergess/
- |- android/
- `- ios/
- |- platforms/
- |- android/
- | `- …
- `- ios/
- `- …
- |- plugins/
- `- Kewlio/
- `- www/
- `- index.html
+ |-- .cordova/
+ |-- app/
+ | |-- merges/
+ | | |-- android/
+ | | `-- ios/
+ | `- www/
+ | `-- index.html
+ |-- platforms/
+ | |-- android/
+ | | `-- …
+ | `-- ios/
+ | `-- …
+ `-- plugins/
+ `-- Kewlio/
# Contributing
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/bootstrap.js
----------------------------------------------------------------------
diff --git a/bootstrap.js b/bootstrap.js
index f96df76..2012bbd 100644
--- a/bootstrap.js
+++ b/bootstrap.js
@@ -50,7 +50,7 @@ shell.rm('-rf', cordovaDir);
create(cordovaDir);
var platformsDir = path.join(cordovaDir, 'platforms');
// kill the stupid spec shit!
-shell.rm('-rf', path.join(cordovaDir, 'www', 'spec'));
+shell.rm('-rf', path.join(cordovaDir, 'app', 'www', 'spec'));
var end = n(platforms.length, function() {
// Check that we are installing globally into a root-only directory.
@@ -91,7 +91,7 @@ platforms.forEach(function(platform) {
// copy over to full cordova project test fixture
shell.mkdir('-p', platformDir);
shell.cp('-rf', path.join(fix_path, '*'), platformDir);
- shell.mkdir('-p',path.join(cordovaDir,'merges',platform));
+ shell.mkdir('-p',path.join(util.appDir(cordovaDir),'merges',platform));
// set permissions on executables
var scripts_path = path.join(fix_path, 'cordova');
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/config_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/config_parser.spec.js b/spec/config_parser.spec.js
index 99bc717..3745c90 100644
--- a/spec/config_parser.spec.js
+++ b/spec/config_parser.spec.js
@@ -24,7 +24,8 @@ var cordova = require('../cordova'),
config_parser = require('../src/config_parser'),
tempDir = path.join(__dirname, '..', 'temp'),
et = require('elementtree'),
- xml = path.join(tempDir, 'www', 'config.xml');
+ util = require('../src/util'),
+ xml = util.projectConfig(tempDir);
describe('config.xml parser', function () {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/create.spec.js
----------------------------------------------------------------------
diff --git a/spec/create.spec.js b/spec/create.spec.js
index fcb3e76..da4e544 100644
--- a/spec/create.spec.js
+++ b/spec/create.spec.js
@@ -2,6 +2,7 @@ var cordova = require('../cordova'),
path = require('path'),
shell = require('shelljs'),
fs = require('fs'),
+ util = require('../src/util'),
tempDir = path.join(__dirname, '..', 'temp');
describe('create command', function () {
@@ -54,14 +55,14 @@ describe('create command', function () {
expect(fs.lstatSync(path.join(tempDir, '.cordova', 'config.json')).isFile()).toBe(true);
- expect(fs.readFileSync(path.join(tempDir, 'www', 'config.xml')).toString('utf8')).toMatch(/<name>balls<\/name>/);
+ expect(fs.readFileSync(util.projectConfig(tempDir)).toString('utf8')).toMatch(/<name>balls<\/name>/);
});
it('should create a cordova project in the specified dir with specified name and id if provided', function() {
cordova.create(tempDir, "birdy.nam.nam", "numnum");
expect(fs.lstatSync(path.join(tempDir, '.cordova', 'config.json')).isFile()).toBe(true);
- var config = fs.readFileSync(path.join(tempDir, 'www', 'config.xml')).toString('utf8');
+ var config = fs.readFileSync(util.projectConfig(tempDir)).toString('utf8');
expect(config).toMatch(/<name>numnum<\/name>/);
expect(config).toMatch(/id="birdy\.nam\.nam"/);
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/metadata/android_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/android_parser.spec.js b/spec/metadata/android_parser.spec.js
index d051c6f..b7d106c 100644
--- a/spec/metadata/android_parser.spec.js
+++ b/spec/metadata/android_parser.spec.js
@@ -30,7 +30,7 @@ var android_parser = require('../../src/metadata/android_parser'),
project_path = path.join(projects_path, 'cordova'),
android_project_path = path.join(project_path, 'platforms', 'android');
-var www_config = path.join(project_path, 'www', 'config.xml');
+var www_config = util.projectConfig(project_path);
var original_www_config = fs.readFileSync(www_config, 'utf-8');
describe('android project parser', function() {
@@ -158,7 +158,7 @@ describe('android project parser', function() {
});
describe('update_www method', function() {
it('should update all www assets', function() {
- var newFile = path.join(project_path, 'www', 'somescript.js');
+ var newFile = path.join(util.projectWww(project_path), 'somescript.js');
this.after(function() {
shell.rm('-f', newFile);
});
@@ -173,7 +173,7 @@ describe('android project parser', function() {
});
describe('update_overrides method',function() {
- var mergesPath = path.join(project_path, 'merges', 'android');
+ var mergesPath = path.join(util.appDir(project_path), 'merges', 'android');
var newFile = path.join(mergesPath, 'merge.js');
beforeEach(function() {
shell.mkdir('-p', mergesPath);
@@ -188,7 +188,7 @@ describe('android project parser', function() {
});
it('should copy a file from merges over a file in www', function() {
- var newFileWWW = path.join(project_path, 'www','merge.js');
+ var newFileWWW = path.join(util.projectWww(project_path), 'merge.js');
fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function() {
shell.rm('-rf', newFileWWW);
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/blackberry_parser.spec.js b/spec/metadata/blackberry_parser.spec.js
index 12d5294..ada1727 100644
--- a/spec/metadata/blackberry_parser.spec.js
+++ b/spec/metadata/blackberry_parser.spec.js
@@ -30,7 +30,7 @@ var blackberry_parser = require('../../src/metadata/blackberry_parser'),
project_path = path.join(projects_path, 'cordova'),
blackberry_project_path = path.join(project_path, 'platforms', 'blackberry');
-var www_config = path.join(project_path, 'www', 'config.xml');
+var www_config = util.projectConfig(project_path);
var original_www_config = fs.readFileSync(www_config, 'utf-8');
describe('blackberry project parser', function() {
@@ -128,7 +128,7 @@ describe('blackberry project parser', function() {
describe('update_www method', function() {
it('should update all www assets', function() {
- var newFile = path.join(project_path, 'www', 'somescript.js');
+ var newFile = path.join(util.projectWww(project_path), 'somescript.js');
this.after(function() {
shell.rm('-f', newFile);
});
@@ -137,7 +137,7 @@ describe('blackberry project parser', function() {
expect(fs.existsSync(path.join(blackberry_project_path, 'www', 'somescript.js'))).toBe(true);
});
it('should not overwrite the blackberry-specific config.xml', function() {
- var www_cfg = fs.readFileSync(path.join(project_path, 'www', 'config.xml'), 'utf-8');
+ var www_cfg = fs.readFileSync(util.projectConfig(project_path), 'utf-8');
parser.update_www();
var bb_cfg = fs.readFileSync(blackberry_config, 'utf-8');
expect(bb_cfg).not.toBe(www_cfg);
@@ -145,7 +145,7 @@ describe('blackberry project parser', function() {
});
describe('update_overrides method',function() {
- var mergesPath = path.join(project_path, 'merges', 'blackberry');
+ var mergesPath = path.join(util.appDir(project_path), 'merges', 'blackberry');
var newFile = path.join(mergesPath, 'merge.js');
beforeEach(function() {
shell.mkdir('-p', mergesPath);
@@ -161,7 +161,7 @@ describe('blackberry project parser', function() {
});
it('should copy a file from merges over a file in www', function() {
- var newFileWWW = path.join(project_path, 'www','merge.js');
+ var newFileWWW = path.join(util.projectWww(project_path), 'merge.js');
fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function() {
shell.rm('-rf', newFileWWW);
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/metadata/ios_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/ios_parser.spec.js b/spec/metadata/ios_parser.spec.js
index dbd4816..e1f92a6 100644
--- a/spec/metadata/ios_parser.spec.js
+++ b/spec/metadata/ios_parser.spec.js
@@ -30,7 +30,7 @@ ios_path = path.join(projects_path, 'native', 'ios_fixture'),
project_path = path.join(projects_path, 'cordova'),
ios_project_path = path.join(project_path, 'platforms', 'ios');
-var www_config = path.join(project_path, 'www', 'config.xml');
+var www_config = util.projectConfig(project_path);
var original_www_config = fs.readFileSync(www_config, 'utf-8');
describe('ios project parser', function () {
@@ -147,7 +147,7 @@ describe('ios project parser', function () {
describe('update_www method', function () {
it('should update all www assets', function () {
- var newFile = path.join(project_path, 'www', 'somescript.js');
+ var newFile = path.join(util.projectWww(project_path), 'somescript.js');
this.after(function () {
shell.rm('-f', newFile);
});
@@ -162,7 +162,7 @@ describe('ios project parser', function () {
});
describe('update_overrides method', function () {
- var mergesPath = path.join(project_path, 'merges', 'ios');
+ var mergesPath = path.join(util.appDir(project_path), 'merges', 'ios');
var newFile = path.join(mergesPath, 'merge.js');
beforeEach(function() {
shell.mkdir('-p', mergesPath);
@@ -178,7 +178,7 @@ describe('ios project parser', function () {
});
it('should copy a file from merges over a file in www', function () {
- var newFileWWW = path.join(project_path, 'www', 'merge.js');
+ var newFileWWW = path.join(util.projectWww(project_path), 'merge.js');
fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function () {
shell.rm('-rf', newFileWWW);
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/platform.spec.js
----------------------------------------------------------------------
diff --git a/spec/platform.spec.js b/spec/platform.spec.js
index b8dedec..c2c173f 100644
--- a/spec/platform.spec.js
+++ b/spec/platform.spec.js
@@ -136,7 +136,7 @@ describe('platform command', function() {
shell.mkdir('-p', a_path);
fs.writeFileSync(path.join(a_path, 'poo.xcodeproj'), 'hi', 'utf-8');
shell.mkdir('-p', path.join(a_path, 'poo'));
- shell.cp(path.join(cordova_project, 'www', 'config.xml'), path.join(a_path, 'poo', 'config.xml'));
+ shell.cp(util.projectConfig(cordova_project), path.join(a_path, 'poo', 'config.xml'));
sh.mostRecentCall.args[2](0, '');
};
beforeEach(function() {
@@ -166,7 +166,7 @@ describe('platform command', function() {
shell.mkdir('-p', path.join(a_path, 'www'));
fs.writeFileSync(path.join(a_path, 'project.properties'), 'hi', 'utf-8');
fs.writeFileSync(path.join(a_path, 'build.xml'), 'hi', 'utf-8');
- shell.cp(path.join(cordova_project, 'www', 'config.xml'), path.join(a_path, 'www', 'config.xml'));
+ shell.cp(util.projectConfig(cordova_project), path.join(a_path, 'www', 'config.xml'));
sh.mostRecentCall.args[2](0, '');
};
beforeEach(function() {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/spec/serve.spec.js
----------------------------------------------------------------------
diff --git a/spec/serve.spec.js b/spec/serve.spec.js
index 8d00cab..080c273 100644
--- a/spec/serve.spec.js
+++ b/spec/serve.spec.js
@@ -119,7 +119,7 @@ xdescribe('serve command', function() {
it('should serve from top-level www if the file exists there', function() {
var payload = 'This is test file.';
- fs.writeFileSync(path.join(tempDir, 'www', 'test.html'), payload);
+ fs.writeFileSync(path.join(util.projectWww(tempDir), 'test.html'), payload);
test_serve('android', '/test.html', payload)();
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/compile.js
----------------------------------------------------------------------
diff --git a/src/compile.js b/src/compile.js
index 521451f..0e8951a 100644
--- a/src/compile.js
+++ b/src/compile.js
@@ -58,8 +58,7 @@ module.exports = function compile(platforms, callback) {
throw new Error('Current working directory is not a Cordova-based project.');
}
- var xml = path.join(projectRoot, 'www', 'config.xml');
- var assets = path.join(projectRoot, 'www');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
if (arguments.length === 0 || (platforms instanceof Array && platforms.length === 0)) {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/create.js
----------------------------------------------------------------------
diff --git a/src/create.js b/src/create.js
index 0f7c8a6..66ab225 100644
--- a/src/create.js
+++ b/src/create.js
@@ -21,7 +21,8 @@ var path = require('path'),
fs = require('fs'),
shell = require('shelljs'),
help = require('./help'),
- config_parser = require('./config_parser');
+ config_parser = require('./config_parser'),
+ util = require('./util');
var DEFAULT_NAME = "HelloCordova",
DEFAULT_ID = "io.cordova.hellocordova";
@@ -59,8 +60,9 @@ module.exports = function create (dir, id, name) {
// Create basic project structure.
shell.mkdir('-p', dotCordova);
shell.mkdir('-p', path.join(dir, 'platforms'));
- shell.mkdir('-p', path.join(dir, 'merges'));
shell.mkdir('-p', path.join(dir, 'plugins'));
+ shell.mkdir('-p', path.join(dir, 'app'));
+ shell.mkdir('-p', path.join(dir, 'app', 'merges'));
var hooks = path.join(dotCordova, 'hooks');
shell.mkdir('-p', hooks);
@@ -95,10 +97,10 @@ module.exports = function create (dir, id, name) {
}));
// Copy in base template
- shell.cp('-r', path.join(__dirname, '..', 'templates', 'www'), dir);
+ shell.cp('-r', path.join(__dirname, '..', 'templates', 'app'), dir);
// Write out id and name to config.xml
- var configPath = path.join(dir, 'www', 'config.xml');
+ var configPath = util.projectConfig(dir);
var config = new config_parser(configPath);
config.packageName(id);
config.name(name);
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/emulate.js
----------------------------------------------------------------------
diff --git a/src/emulate.js b/src/emulate.js
index 7acb441..523b5e0 100644
--- a/src/emulate.js
+++ b/src/emulate.js
@@ -60,7 +60,7 @@ module.exports = function emulate (platforms, callback) {
throw new Error('Current working directory is not a Cordova-based project.');
}
- var xml = path.join(projectRoot, 'www', 'config.xml');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
if (arguments.length === 0 || (platforms instanceof Array && platforms.length === 0)) {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/metadata/android_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/android_parser.js b/src/metadata/android_parser.js
index 3dfaf22..70e952a 100644
--- a/src/metadata/android_parser.js
+++ b/src/metadata/android_parser.js
@@ -90,7 +90,7 @@ module.exports.prototype = {
var android_cfg_xml = new config_parser(this.android_config);
// clean out all existing access elements first
android_cfg_xml.access.remove();
- // add only the ones specified in the www/config.xml file
+ // add only the ones specified in the app/config.xml file
config.access.get().forEach(function(uri) {
android_cfg_xml.access.add(uri);
});
@@ -128,7 +128,7 @@ module.exports.prototype = {
update_www:function() {
var projectRoot = util.isCordova(this.path);
- var www = path.join(projectRoot, 'www');
+ var www = util.projectWww(projectRoot);
var platformWww = path.join(this.path, 'assets');
// remove stock platform assets
shell.rm('-rf', this.www_dir());
@@ -144,7 +144,7 @@ module.exports.prototype = {
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var merges_path = path.join(projectRoot, 'merges', 'android');
+ var merges_path = path.join(util.appDir(projectRoot), 'merges', 'android');
if (fs.existsSync(merges_path)) {
var overrides = path.join(merges_path, '*');
shell.cp('-rf', overrides, this.www_dir());
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/metadata/blackberry_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/blackberry_parser.js b/src/metadata/blackberry_parser.js
index b2cad4b..5bd6d84 100644
--- a/src/metadata/blackberry_parser.js
+++ b/src/metadata/blackberry_parser.js
@@ -91,7 +91,7 @@ module.exports.prototype = {
update_www:function() {
var projectRoot = util.isCordova(this.path);
- var www = path.join(projectRoot, 'www');
+ var www = util.projectWww(projectRoot);
var platformWww = this.www_dir();
var finalWww = path.join(this.path, 'finalwww');
@@ -110,12 +110,8 @@ module.exports.prototype = {
shell.cp('-rf', path.join(platformWww, 'ext*'), finalWww);
shell.cp('-rf', path.join(platformWww, 'res'), finalWww);
- // Copy everything over from platform-agnostic www, except config.xml
- var cfg_www = path.join(www, 'config.xml');
- var temp_cfg = path.join(projectRoot, 'config.xml');
- shell.mv(cfg_www, temp_cfg);
+ // Copy everything over from platform-agnostic www.
shell.cp('-rf', path.join(www, '*'), finalWww);
- shell.mv(temp_cfg, cfg_www);
// Delete the old platform www, and move the final project over
shell.rm('-rf', platformWww);
@@ -126,7 +122,7 @@ module.exports.prototype = {
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var merges_path = path.join(projectRoot, 'merges', 'blackberry');
+ var merges_path = path.join(util.appDir(projectRoot), 'merges', 'blackberry');
if (fs.existsSync(merges_path)) {
var overrides = path.join(merges_path, '*');
shell.cp('-rf', overrides, this.www_dir());
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/metadata/ios_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/ios_parser.js b/src/metadata/ios_parser.js
index ee235dc..e3b19fd 100644
--- a/src/metadata/ios_parser.js
+++ b/src/metadata/ios_parser.js
@@ -139,7 +139,7 @@ module.exports.prototype = {
update_www:function() {
var projectRoot = util.isCordova(this.path);
- var www = path.join(projectRoot, 'www');
+ var www = util.projectWww(projectRoot);
var project_www = this.www_dir();
// remove the stock www folder
@@ -156,7 +156,7 @@ module.exports.prototype = {
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var merges_path = path.join(projectRoot, 'merges', 'ios');
+ var merges_path = path.join(util.appDir(projectRoot), 'merges', 'ios');
if (fs.existsSync(merges_path)) {
var overrides = path.join(merges_path, '*');
shell.cp('-rf', overrides, this.www_dir());
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/platform.js
----------------------------------------------------------------------
diff --git a/src/platform.js b/src/platform.js
index 7044fb4..a5db481 100644
--- a/src/platform.js
+++ b/src/platform.js
@@ -45,7 +45,7 @@ module.exports = function platform(command, targets, callback) {
end;
var createOverrides = function(target) {
- shell.mkdir('-p', path.join(projectRoot, 'merges', target));
+ shell.mkdir('-p', path.join(cordova_util.appDir(projectRoot), 'merges', target));
};
if (arguments.length === 0) command = 'ls';
@@ -56,7 +56,7 @@ module.exports = function platform(command, targets, callback) {
});
}
- var xml = path.join(projectRoot, 'www', 'config.xml');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
switch(command) {
@@ -125,7 +125,7 @@ module.exports = function platform(command, targets, callback) {
targets.forEach(function(target) {
hooks.fire('before_platform_rm');
shell.rm('-rf', path.join(projectRoot, 'platforms', target));
- shell.rm('-rf', path.join(projectRoot, 'merges', target));
+ shell.rm('-rf', path.join(cordova_util.appDir(projectRoot), 'merges', target));
hooks.fire('after_platform_rm');
});
break;
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/plugin.js
----------------------------------------------------------------------
diff --git a/src/plugin.js b/src/plugin.js
index bbe04b3..c2fdc02 100644
--- a/src/plugin.js
+++ b/src/plugin.js
@@ -39,10 +39,8 @@ module.exports = function plugin(command, targets, callback) {
var hooks = new hooker(projectRoot);
- var projectWww = path.join(projectRoot, 'www');
-
// Grab config info for the project
- var xml = path.join(projectWww, 'config.xml');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
var platforms = cordova_util.listPlatforms(projectRoot);
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/prepare.js
----------------------------------------------------------------------
diff --git a/src/prepare.js b/src/prepare.js
index f5164eb..7b30c29 100644
--- a/src/prepare.js
+++ b/src/prepare.js
@@ -44,7 +44,7 @@ module.exports = function prepare(platforms, callback) {
throw new Error('Current working directory is not a Cordova-based project.');
}
- var xml = path.join(projectRoot, 'www', 'config.xml');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
if (arguments.length === 0 || (platforms instanceof Array && platforms.length === 0)) {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/serve.js
----------------------------------------------------------------------
diff --git a/src/serve.js b/src/serve.js
index 1967628..771f64f 100644
--- a/src/serve.js
+++ b/src/serve.js
@@ -96,7 +96,7 @@ module.exports.config = function (platform, port, callback) {
throw new Error('Current working directory is not a Cordova-based project.');
}
- var xml = path.join(projectRoot, 'www', 'config.xml');
+ var xml = cordova_util.projectConfig(projectRoot);
var cfg = new config_parser(xml);
// Retrieve the platforms.
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/src/util.js
----------------------------------------------------------------------
diff --git a/src/util.js b/src/util.js
index 6bd78da..4620e03 100644
--- a/src/util.js
+++ b/src/util.js
@@ -62,5 +62,14 @@ module.exports = {
return fs.readdirSync(path.join(project_dir, 'platforms')).filter(function(p) {
return core_platforms.indexOf(p) > -1;
});
+ },
+ projectWww: function(projectDir) {
+ return path.join(projectDir, 'app', 'www');
+ },
+ appDir: function(projectDir) {
+ return path.join(projectDir, 'app');
+ },
+ projectConfig: function(projectDir) {
+ return path.join(projectDir, 'app', 'config.xml');
}
};
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/config.xml
----------------------------------------------------------------------
diff --git a/templates/app/config.xml b/templates/app/config.xml
new file mode 100644
index 0000000..206bc56
--- /dev/null
+++ b/templates/app/config.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns = "http://www.w3.org/ns/widgets"
+ xmlns:gap = "http://phonegap.com/ns/1.0"
+ id = "io.cordova.hello-cordova"
+ version = "2.0.0">
+ <name>Hello Cordova</name>
+
+ <description>
+ A sample Apache Cordova application that responds to the deviceready event.
+ </description>
+
+ <author href="http://cordova.io" email="callback-dev@incubator.apache.org">
+ Apache Cordova Team
+ </author>
+
+ <icon src="res/icon/cordova_512.png" width="512" height="512" />
+ <icon src="res/icon/cordova_android_96.png" width="96" height="96" gap:platform="android" />
+ <icon src="res/icon/cordova_bb_80.png" width="80" height="80" gap:platform="blackberry" />
+ <icon src="res/icon/cordova_ios_144.png" width="144" height="144" gap:platform="ios" />
+
+ <gap:splash src="res/screen/android_hdpi_landscape.png" width="800" height="480" gap:platform="android" />
+ <gap:splash src="res/screen/android_hdpi_portrait.png" width="480" height="800" gap:platform="android" />
+ <gap:splash src="res/screen/android_ldpi_landscape.png" width="320" height="200" gap:platform="android" />
+ <gap:splash src="res/screen/android_ldpi_portrait.png" width="200" height="320" gap:platform="android" />
+ <gap:splash src="res/screen/android_mdpi_landscape.png" width="480" height="320" gap:platform="android" />
+ <gap:splash src="res/screen/android_mdpi_portrait.png" width="320" height="480" gap:platform="android" />
+ <gap:splash src="res/screen/android_xhdpi_landscape.png" width="1280" height="720" gap:platform="android" />
+ <gap:splash src="res/screen/android_xhdpi_portrait.png" width="720" height="1280" gap:platform="android" />
+ <gap:splash src="res/screen/blackberry_transparent_300.png" width="300" height="300" gap:platform="blackberry" />
+ <gap:splash src="res/screen/blackberry_transparent_400.png" width="200" height="200" gap:platform="blackberry" />
+ <gap:splash src="res/screen/ipad_landscape.png" width="1024" height="748" gap:platform="ios" />
+ <gap:splash src="res/screen/ipad_portrait.png" width="768" height="1004" gap:platform="ios" />
+ <gap:splash src="res/screen/ipad_retina_landscape.png" width="2048" height="1496" gap:platform="ios" />
+ <gap:splash src="res/screen/ipad_retina_portrait.png" width="1536" height="2008" gap:platform="ios" />
+ <gap:splash src="res/screen/iphone_landscape.png" width="480" height="320" gap:platform="ios" />
+ <gap:splash src="res/screen/iphone_portrait.png" width="320" height="480" gap:platform="ios" />
+ <gap:splash src="res/screen/iphone_retina_landscape.png" width="960" height="640" gap:platform="ios" />
+ <gap:splash src="res/screen/iphone_retina_portrait.png" width="640" height="960" gap:platform="ios" />
+ <gap:splash src="res/screen/windows_phone_portrait.jpg" width="480" height="800" gap:platform="winphone" />
+
+ <feature name="http://api.phonegap.com/1.0/device" />
+
+ <preference name="phonegap-version" value="1.9.0" />
+ <preference name="orientation" value="default" />
+ <preference name="target-device" value="universal" />
+ <preference name="fullscreen" value="false" />
+
+ <access origin="*" />
+</widget>
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/css/index.css
----------------------------------------------------------------------
diff --git a/templates/app/www/css/index.css b/templates/app/www/css/index.css
new file mode 100644
index 0000000..c869f87
--- /dev/null
+++ b/templates/app/www/css/index.css
@@ -0,0 +1,100 @@
+html,
+body {
+ height:100%;
+ font-size:12px;
+ width:100%;
+}
+
+html {
+ display:table;
+}
+
+body {
+ background-color:#A7A7A7;
+ background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+ background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+ background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%);
+ background-image:-webkit-gradient(
+ linear,
+ left top,
+ left bottom,
+ color-stop(0, #A7A7A7),
+ color-stop(0.51, #E4E4E4)
+ );
+ display:table-cell;
+ font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif;
+ text-transform:uppercase;
+ vertical-align:middle;
+}
+
+.app {
+ background-image:url(../img/cordova.png);
+ background-repeat:no-repeat;
+ margin:0px auto;
+ width:275px;
+}
+
+h1 {
+ font-size:2em;
+ font-weight:300;
+ margin:0px;
+ overflow:visible;
+ padding:0px;
+ text-align:center;
+}
+
+.status {
+ background-color:#333333;
+ border-radius:4px;
+ -webkit-border-radius:4px;
+ color:#FFFFFF;
+ font-size:1em;
+ margin:0px auto;
+ padding:2px 10px;
+ text-align:center;
+ width:100%;
+ max-width:175px;
+}
+
+.status.complete {
+ background-color:#4B946A;
+}
+
+.hide {
+ display:none;
+}
+
+@keyframes fade {
+ from { opacity: 1.0; }
+ 50% { opacity: 0.4; }
+ to { opacity: 1.0; }
+}
+
+@-webkit-keyframes fade {
+ from { opacity: 1.0; }
+ 50% { opacity: 0.4; }
+ to { opacity: 1.0; }
+}
+
+.blink {
+ animation:fade 3000ms infinite;
+ -webkit-animation:fade 3000ms infinite;
+}
+
+/* portrait */
+/* @media screen and (max-aspect-ratio: 1/1) */
+.app {
+ background-position:center top;
+ height:100px; /* adds enough room for text */
+ padding:180px 0px 0px 0px; /* background height - shadow offset */
+}
+
+/* lanscape (when wide enough) */
+@media screen and (min-aspect-ratio: 1/1) and (min-width:445px) {
+ .app {
+ background-position:left center;
+ height:140px; /* height + padding = background image size */
+ padding-left:170px; /* background width */
+ padding-top:60px; /* center the text */
+ }
+}
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/img/cordova.png
----------------------------------------------------------------------
diff --git a/templates/app/www/img/cordova.png b/templates/app/www/img/cordova.png
new file mode 100644
index 0000000..e8169cf
Binary files /dev/null and b/templates/app/www/img/cordova.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/index.html
----------------------------------------------------------------------
diff --git a/templates/app/www/index.html b/templates/app/www/index.html
new file mode 100644
index 0000000..202af51
--- /dev/null
+++ b/templates/app/www/index.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta name = "format-detection" content = "telephone=no"/>
+ <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width;" />
+ <link rel="stylesheet" type="text/css" href="css/index.css" />
+ <title>Hello Cordova</title>
+ </head>
+ <body>
+ <div class="app">
+ <h1>Apache Cordova</h1>
+ <div id="deviceready">
+ <p class="status pending blink">Connecting to Device</p>
+ <p class="status complete blink hide">Device is Ready</p>
+ </div>
+ </div>
+ <script type="text/javascript" src="cordova.js"></script>
+ <script type="text/javascript" src="js/index.js"></script>
+ <script type="text/javascript">
+ app.initialize();
+ </script>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/js/index.js
----------------------------------------------------------------------
diff --git a/templates/app/www/js/index.js b/templates/app/www/js/index.js
new file mode 100644
index 0000000..6140331
--- /dev/null
+++ b/templates/app/www/js/index.js
@@ -0,0 +1,20 @@
+var app = {
+ initialize: function() {
+ this.bind();
+ },
+ bind: function() {
+ document.addEventListener('deviceready', this.deviceready, false);
+ },
+ deviceready: function() {
+ // note that this is an event handler so the scope is that of the event
+ // so we need to call app.report(), and not this.report()
+ app.report('deviceready');
+ },
+ report: function(id) {
+ console.log("report:" + id);
+ // hide the .pending <p> and show the .complete <p>
+ document.querySelector('#' + id + ' .pending').className += ' hide';
+ var completeElem = document.querySelector('#' + id + ' .complete');
+ completeElem.className = completeElem.className.split('hide').join('');
+ }
+};
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_128.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_128.png b/templates/app/www/res/icon/cordova_128.png
new file mode 100644
index 0000000..3516df3
Binary files /dev/null and b/templates/app/www/res/icon/cordova_128.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_16.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_16.png b/templates/app/www/res/icon/cordova_16.png
new file mode 100644
index 0000000..54e19c5
Binary files /dev/null and b/templates/app/www/res/icon/cordova_16.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_24.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_24.png b/templates/app/www/res/icon/cordova_24.png
new file mode 100644
index 0000000..c7d43ad
Binary files /dev/null and b/templates/app/www/res/icon/cordova_24.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_256.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_256.png b/templates/app/www/res/icon/cordova_256.png
new file mode 100644
index 0000000..e1cd0e6
Binary files /dev/null and b/templates/app/www/res/icon/cordova_256.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_32.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_32.png b/templates/app/www/res/icon/cordova_32.png
new file mode 100644
index 0000000..734fffc
Binary files /dev/null and b/templates/app/www/res/icon/cordova_32.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_48.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_48.png b/templates/app/www/res/icon/cordova_48.png
new file mode 100644
index 0000000..8ad8bac
Binary files /dev/null and b/templates/app/www/res/icon/cordova_48.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_512.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_512.png b/templates/app/www/res/icon/cordova_512.png
new file mode 100644
index 0000000..c9465f3
Binary files /dev/null and b/templates/app/www/res/icon/cordova_512.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_64.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_64.png b/templates/app/www/res/icon/cordova_64.png
new file mode 100644
index 0000000..03b3849
Binary files /dev/null and b/templates/app/www/res/icon/cordova_64.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_android_36.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_android_36.png b/templates/app/www/res/icon/cordova_android_36.png
new file mode 100644
index 0000000..cd5032a
Binary files /dev/null and b/templates/app/www/res/icon/cordova_android_36.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_android_48.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_android_48.png b/templates/app/www/res/icon/cordova_android_48.png
new file mode 100644
index 0000000..e79c606
Binary files /dev/null and b/templates/app/www/res/icon/cordova_android_48.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_android_72.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_android_72.png b/templates/app/www/res/icon/cordova_android_72.png
new file mode 100644
index 0000000..4d27634
Binary files /dev/null and b/templates/app/www/res/icon/cordova_android_72.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_android_96.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_android_96.png b/templates/app/www/res/icon/cordova_android_96.png
new file mode 100644
index 0000000..ec7ffbf
Binary files /dev/null and b/templates/app/www/res/icon/cordova_android_96.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_bb_80.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_bb_80.png b/templates/app/www/res/icon/cordova_bb_80.png
new file mode 100644
index 0000000..f86a27a
Binary files /dev/null and b/templates/app/www/res/icon/cordova_bb_80.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_ios_114.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_ios_114.png b/templates/app/www/res/icon/cordova_ios_114.png
new file mode 100644
index 0000000..efd9c37
Binary files /dev/null and b/templates/app/www/res/icon/cordova_ios_114.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_ios_144.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_ios_144.png b/templates/app/www/res/icon/cordova_ios_144.png
new file mode 100644
index 0000000..dd819da
Binary files /dev/null and b/templates/app/www/res/icon/cordova_ios_144.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_ios_57.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_ios_57.png b/templates/app/www/res/icon/cordova_ios_57.png
new file mode 100644
index 0000000..c795fc4
Binary files /dev/null and b/templates/app/www/res/icon/cordova_ios_57.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/icon/cordova_ios_72.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/icon/cordova_ios_72.png b/templates/app/www/res/icon/cordova_ios_72.png
new file mode 100644
index 0000000..b1cfde7
Binary files /dev/null and b/templates/app/www/res/icon/cordova_ios_72.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_hdpi_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_hdpi_landscape.png b/templates/app/www/res/screen/android_hdpi_landscape.png
new file mode 100644
index 0000000..a61e2b1
Binary files /dev/null and b/templates/app/www/res/screen/android_hdpi_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_hdpi_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_hdpi_portrait.png b/templates/app/www/res/screen/android_hdpi_portrait.png
new file mode 100644
index 0000000..5d6a28a
Binary files /dev/null and b/templates/app/www/res/screen/android_hdpi_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_ldpi_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_ldpi_landscape.png b/templates/app/www/res/screen/android_ldpi_landscape.png
new file mode 100644
index 0000000..f3934cd
Binary files /dev/null and b/templates/app/www/res/screen/android_ldpi_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_ldpi_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_ldpi_portrait.png b/templates/app/www/res/screen/android_ldpi_portrait.png
new file mode 100644
index 0000000..65ad163
Binary files /dev/null and b/templates/app/www/res/screen/android_ldpi_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_mdpi_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_mdpi_landscape.png b/templates/app/www/res/screen/android_mdpi_landscape.png
new file mode 100644
index 0000000..a1b697c
Binary files /dev/null and b/templates/app/www/res/screen/android_mdpi_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_mdpi_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_mdpi_portrait.png b/templates/app/www/res/screen/android_mdpi_portrait.png
new file mode 100644
index 0000000..ea15693
Binary files /dev/null and b/templates/app/www/res/screen/android_mdpi_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_xhdpi_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_xhdpi_landscape.png b/templates/app/www/res/screen/android_xhdpi_landscape.png
new file mode 100644
index 0000000..79f2f09
Binary files /dev/null and b/templates/app/www/res/screen/android_xhdpi_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/android_xhdpi_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/android_xhdpi_portrait.png b/templates/app/www/res/screen/android_xhdpi_portrait.png
new file mode 100644
index 0000000..c2e8042
Binary files /dev/null and b/templates/app/www/res/screen/android_xhdpi_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/blackberry_transparent_300.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/blackberry_transparent_300.png b/templates/app/www/res/screen/blackberry_transparent_300.png
new file mode 100644
index 0000000..b548bdc
Binary files /dev/null and b/templates/app/www/res/screen/blackberry_transparent_300.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/blackberry_transparent_400.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/blackberry_transparent_400.png b/templates/app/www/res/screen/blackberry_transparent_400.png
new file mode 100644
index 0000000..3facdf9
Binary files /dev/null and b/templates/app/www/res/screen/blackberry_transparent_400.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/ipad_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/ipad_landscape.png b/templates/app/www/res/screen/ipad_landscape.png
new file mode 100644
index 0000000..04be5ac
Binary files /dev/null and b/templates/app/www/res/screen/ipad_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/ipad_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/ipad_portrait.png b/templates/app/www/res/screen/ipad_portrait.png
new file mode 100644
index 0000000..41e839d
Binary files /dev/null and b/templates/app/www/res/screen/ipad_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/ipad_retina_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/ipad_retina_landscape.png b/templates/app/www/res/screen/ipad_retina_landscape.png
new file mode 100644
index 0000000..95c542d
Binary files /dev/null and b/templates/app/www/res/screen/ipad_retina_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/ipad_retina_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/ipad_retina_portrait.png b/templates/app/www/res/screen/ipad_retina_portrait.png
new file mode 100644
index 0000000..aae1862
Binary files /dev/null and b/templates/app/www/res/screen/ipad_retina_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/iphone_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/iphone_landscape.png b/templates/app/www/res/screen/iphone_landscape.png
new file mode 100644
index 0000000..d154883
Binary files /dev/null and b/templates/app/www/res/screen/iphone_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/iphone_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/iphone_portrait.png b/templates/app/www/res/screen/iphone_portrait.png
new file mode 100644
index 0000000..6fcba56
Binary files /dev/null and b/templates/app/www/res/screen/iphone_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/iphone_retina_landscape.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/iphone_retina_landscape.png b/templates/app/www/res/screen/iphone_retina_landscape.png
new file mode 100644
index 0000000..0165669
Binary files /dev/null and b/templates/app/www/res/screen/iphone_retina_landscape.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/iphone_retina_portrait.png
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/iphone_retina_portrait.png b/templates/app/www/res/screen/iphone_retina_portrait.png
new file mode 100644
index 0000000..bd24886
Binary files /dev/null and b/templates/app/www/res/screen/iphone_retina_portrait.png differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/res/screen/windows_phone_portrait.jpg
----------------------------------------------------------------------
diff --git a/templates/app/www/res/screen/windows_phone_portrait.jpg b/templates/app/www/res/screen/windows_phone_portrait.jpg
new file mode 100644
index 0000000..9f95387
Binary files /dev/null and b/templates/app/www/res/screen/windows_phone_portrait.jpg differ
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/spec.html
----------------------------------------------------------------------
diff --git a/templates/app/www/spec.html b/templates/app/www/spec.html
new file mode 100644
index 0000000..83d7d2e
--- /dev/null
+++ b/templates/app/www/spec.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Jasmine Spec Runner</title>
+
+ <!-- jasmine source -->
+ <link rel="shortcut icon" type="image/png" href="spec/lib/jasmine-1.2.0/jasmine_favicon.png">
+ <link rel="stylesheet" type="text/css" href="spec/lib/jasmine-1.2.0/jasmine.css">
+ <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine.js"></script>
+ <script type="text/javascript" src="spec/lib/jasmine-1.2.0/jasmine-html.js"></script>
+
+ <!-- include source files here... -->
+ <script type="text/javascript" src="js/index.js"></script>
+
+ <!-- include spec files here... -->
+ <script type="text/javascript" src="spec/helper.js"></script>
+ <script type="text/javascript" src="spec/index.js"></script>
+
+ <script type="text/javascript">
+ (function() {
+ var jasmineEnv = jasmine.getEnv();
+ jasmineEnv.updateInterval = 1000;
+
+ var htmlReporter = new jasmine.HtmlReporter();
+
+ jasmineEnv.addReporter(htmlReporter);
+
+ jasmineEnv.specFilter = function(spec) {
+ return htmlReporter.specFilter(spec);
+ };
+
+ var currentWindowOnload = window.onload;
+
+ window.onload = function() {
+ if (currentWindowOnload) {
+ currentWindowOnload();
+ }
+ execJasmine();
+ };
+
+ function execJasmine() {
+ jasmineEnv.execute();
+ }
+ })();
+ </script>
+ </head>
+ <body>
+ <div id="stage" style="display:none;"></div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/spec/helper.js
----------------------------------------------------------------------
diff --git a/templates/app/www/spec/helper.js b/templates/app/www/spec/helper.js
new file mode 100644
index 0000000..9f99445
--- /dev/null
+++ b/templates/app/www/spec/helper.js
@@ -0,0 +1,11 @@
+afterEach(function() {
+ document.getElementById('stage').innerHTML = '';
+});
+
+var helper = {
+ trigger: function(obj, name) {
+ var e = document.createEvent('Event');
+ e.initEvent(name, true, true);
+ obj.dispatchEvent(e);
+ }
+};
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/spec/index.js
----------------------------------------------------------------------
diff --git a/templates/app/www/spec/index.js b/templates/app/www/spec/index.js
new file mode 100644
index 0000000..121cf63
--- /dev/null
+++ b/templates/app/www/spec/index.js
@@ -0,0 +1,49 @@
+describe('app', function() {
+ describe('initialize', function() {
+ it('should bind deviceready', function() {
+ runs(function() {
+ spyOn(app, 'deviceready');
+ app.initialize();
+ helper.trigger(window.document, 'deviceready');
+ });
+
+ waitsFor(function() {
+ return (app.deviceready.calls.length > 0);
+ }, 'deviceready should be called once', 500);
+
+ runs(function() {
+ expect(app.deviceready).toHaveBeenCalled();
+ });
+ });
+ });
+
+ describe('deviceready', function() {
+ it('should report that it fired', function() {
+ spyOn(app, 'report');
+ app.deviceready();
+ expect(app.report).toHaveBeenCalledWith('deviceready');
+ });
+ });
+
+ describe('report', function() {
+ beforeEach(function() {
+ var el = document.getElementById('stage');
+ el.innerHTML = ['<div id="deviceready">',
+ ' <p class="status pending">Pending</p>',
+ ' <p class="status complete hide">Complete</p>',
+ '</div>'].join('\n');
+ });
+
+ it('should show the completion state', function() {
+ app.report('deviceready');
+ var el = document.querySelector('#deviceready .complete:not(.hide)');
+ expect(el).toBeTruthy();
+ });
+
+ it('should hide the pending state', function() {
+ app.report('deviceready');
+ var el = document.querySelector('#deviceready .pending.hide');
+ expect(el).toBeTruthy();
+ });
+ });
+});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/740ff28d/templates/app/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
----------------------------------------------------------------------
diff --git a/templates/app/www/spec/lib/jasmine-1.2.0/MIT.LICENSE b/templates/app/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
new file mode 100644
index 0000000..7c435ba
--- /dev/null
+++ b/templates/app/www/spec/lib/jasmine-1.2.0/MIT.LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2008-2011 Pivotal Labs
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.