diff --git a/platform/commonUI/about/bundle.json b/platform/commonUI/about/bundle.json
index 142241449c..88a43b5eb3 100644
--- a/platform/commonUI/about/bundle.json
+++ b/platform/commonUI/about/bundle.json
@@ -31,6 +31,11 @@
"key": "AboutController",
"depends": [ "versions[]", "$window" ],
"implementation": "AboutController.js"
+ },
+ {
+ "key": "LicenseController",
+ "depends": [ "licenses[]" ],
+ "implementation": "LicenseController.js"
}
],
"routes": [
diff --git a/platform/commonUI/about/res/templates/licenses.html b/platform/commonUI/about/res/templates/licenses.html
index c3af087cd9..9aafaa22f1 100644
--- a/platform/commonUI/about/res/templates/licenses.html
+++ b/platform/commonUI/about/res/templates/licenses.html
@@ -1 +1,33 @@
-Placeholder for open source licenses.
\ No newline at end of file
+
+
+
+
+
+ This software includes components released under the following licenses.
+
+
+
+
+
+ | Name |
+ Version |
+ Author |
+ Description |
+ License |
+
+
+
+
+ | {{license.name}} |
+ {{license.version}} |
+ {{license.author}} |
+ {{license.description}} |
+ {{license.license}} |
+
+
+
+
\ No newline at end of file
diff --git a/platform/commonUI/about/src/LicenseController.js b/platform/commonUI/about/src/LicenseController.js
new file mode 100644
index 0000000000..4fd707b7bf
--- /dev/null
+++ b/platform/commonUI/about/src/LicenseController.js
@@ -0,0 +1,27 @@
+/*global define*/
+
+define(
+ [],
+ function () {
+ "use strict";
+
+ /**
+ * Provides extension-introduced licenses information to the
+ * licenses route.
+ * @constructor
+ */
+ function LicenseController(licenses) {
+ return {
+ /**
+ * Get license information.
+ * @returns {Array} license extensions
+ */
+ licenses: function () {
+ return licenses;
+ }
+ };
+ }
+
+ return LicenseController;
+ }
+);
\ No newline at end of file
diff --git a/platform/commonUI/about/test/LicenseControllerSpec.js b/platform/commonUI/about/test/LicenseControllerSpec.js
new file mode 100644
index 0000000000..b7afe03b43
--- /dev/null
+++ b/platform/commonUI/about/test/LicenseControllerSpec.js
@@ -0,0 +1,30 @@
+/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/
+
+define(
+ ['../src/LicenseController'],
+ function (LicenseController) {
+ "use strict";
+
+ describe("The License controller", function () {
+ var testLicenses,
+ controller;
+
+ beforeEach(function () {
+ testLicenses = [
+ { name: "A" },
+ { name: "B" },
+ { name: "C" }
+ ];
+ controller = new LicenseController(testLicenses);
+ });
+
+ it("exposes license information", function () {
+ // LicenseController is just there to pass licenses[]
+ // extensions down to the template.
+ expect(controller.licenses()).toEqual(testLicenses);
+ });
+
+ });
+
+ }
+);
\ No newline at end of file
diff --git a/platform/commonUI/about/test/suite.json b/platform/commonUI/about/test/suite.json
index e626ff9b7a..7b3b90142a 100644
--- a/platform/commonUI/about/test/suite.json
+++ b/platform/commonUI/about/test/suite.json
@@ -1,4 +1,5 @@
[
"AboutController",
+ "LicenseController",
"LogoController"
]
\ No newline at end of file
diff --git a/platform/commonUI/browse/bundle.json b/platform/commonUI/browse/bundle.json
index 613164573a..d4e7a85036 100644
--- a/platform/commonUI/browse/bundle.json
+++ b/platform/commonUI/browse/bundle.json
@@ -119,6 +119,26 @@
"implementation": "creation/CreateActionProvider.js",
"depends": [ "typeService", "dialogService", "creationService" ]
}
+ ],
+ "licenses": [
+ {
+ "name": "screenfull.js",
+ "version": "1.2.0",
+ "description": "Wrapper for cross-browser usage of fullscreen API.",
+ "author": "Sindre Sorhus",
+ "website": "https://github.com/sindresorhus/screenfull.js/",
+ "license": "MIT",
+ "link": "https://github.com/sindresorhus/screenfull.js/blob/gh-pages/license"
+ },
+ {
+ "name": "Math.uuid.js",
+ "version": "1.4",
+ "description": "Unique identifer generation (code adapted.)",
+ "author": "Robert Kieffer",
+ "website": "https://github.com/broofa/node-uuid",
+ "license": "MIT",
+ "link": "http://opensource.org/licenses/MIT"
+ }
]
}
}
\ No newline at end of file
diff --git a/platform/commonUI/general/bundle.json b/platform/commonUI/general/bundle.json
index 00e73a1568..9ca5549096 100644
--- a/platform/commonUI/general/bundle.json
+++ b/platform/commonUI/general/bundle.json
@@ -152,6 +152,26 @@
"templateUrl": "templates/controls/switcher.html",
"uses": [ "view" ]
}
+ ],
+ "licenses": [
+ {
+ "name": "Modernizr",
+ "version": "2.6.2",
+ "description": "Browser/device capability finding.",
+ "author": "Faruk Ateş",
+ "website": "http://modernizr.com",
+ "license": "MIT",
+ "link": "http://modernizr.com/license/"
+ },
+ {
+ "name": "Normalize.css",
+ "version": "1.1.2",
+ "description": "Browser style normalization.",
+ "author": "Nicolas Gallagher, Jonathan Neal",
+ "website": "http://necolas.github.io/normalize.css/",
+ "license": "MIT",
+ "link": "https://github.com/necolas/normalize.css/blob/master/LICENSE.md"
+ }
]
}
}
diff --git a/platform/framework/bundle.json b/platform/framework/bundle.json
index 057e9287d0..2b7494b83d 100644
--- a/platform/framework/bundle.json
+++ b/platform/framework/bundle.json
@@ -13,5 +13,61 @@
}
},
"extensions": {
+ "licenses": [
+ {
+ "name": "Blanket.js",
+ "version": "1.1.5",
+ "description": "Code coverage measurement and reporting.",
+ "author": "Alex Seville",
+ "website": "http://blanketjs.org/",
+ "license": "MIT",
+ "link": "http://opensource.org/licenses/MIT"
+ },
+ {
+ "name": "Jasmine",
+ "version": "1.3.1",
+ "description": "Unit testing.",
+ "author": "Pivotal Labs",
+ "website": "http://jasmine.github.io/",
+ "license": "MIT",
+ "link": "http://opensource.org/licenses/MIT"
+ },
+ {
+ "name": "RequireJS",
+ "version": "2.1.9",
+ "description": "Script loader.",
+ "author": "The Dojo Foundation",
+ "website": "http://requirejs.org/",
+ "license": "MIT",
+ "link": "https://github.com/jrburke/requirejs/blob/master/LICENSE"
+ },
+ {
+ "name": "AngularJS",
+ "version": "1.2.26",
+ "description": "Client-side web application framework.",
+ "author": "Google",
+ "website": "http://angularjs.org/",
+ "license": "MIT",
+ "link": "https://github.com/angular/angular.js/blob/master/LICENSE"
+ },
+ {
+ "name": "Angular-Route",
+ "version": "1.2.26",
+ "description": "Client-side view routing.",
+ "author": "Google",
+ "website": "http://angularjs.org/",
+ "license": "MIT",
+ "link": "https://github.com/angular/angular.js/blob/master/LICENSE"
+ },
+ {
+ "name": "ES6-Promise",
+ "version": "2.0.0",
+ "description": "Promise polyfill for pre-ECMAScript 6 browsers.",
+ "author": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
+ "website": "https://github.com/jakearchibald/es6-promise",
+ "license": "MIT",
+ "link": "https://github.com/jakearchibald/es6-promise/blob/master/LICENSE"
+ }
+ ]
}
}
\ No newline at end of file
diff --git a/platform/telemetry/bundle.json b/platform/telemetry/bundle.json
index bad85512b0..1541e12026 100644
--- a/platform/telemetry/bundle.json
+++ b/platform/telemetry/bundle.json
@@ -44,6 +44,17 @@
"implementation": "TelemetrySubscriber.js",
"depends": [ "$q", "$timeout" ]
}
+ ],
+ "licenses": [
+ {
+ "name": "Moment.js",
+ "version": "2.7.0",
+ "author": "Tim Wood, Iskren Chernev, Moment.js contributors",
+ "description": "Time/date parsing/formatting.",
+ "website": "http://momentjs.com",
+ "license": "MIT",
+ "link": "https://raw.githubusercontent.com/moment/moment/develop/LICENSE"
+ }
]
}
}
\ No newline at end of file