diff --git a/Gruntfile.js b/Gruntfile.js index d06b61ce..f323be5c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -147,10 +147,6 @@ module.exports = function (grunt) { src: ['**/*.map'], dest: 'examples/blog/build/', expand: true - }, - corejs: { - src: 'node_modules/core-js/build/core-stable.js', - dest: 'examples/blog/build/corejs.js' } }, diff --git a/Makefile b/Makefile index 1dc4b21a..2e8fc07a 100644 --- a/Makefile +++ b/Makefile @@ -18,9 +18,3 @@ build: test: @grunt test:local - -es6-test: - mocha --compilers js:mocha-traceur --recursive src/javascripts/ng-admin/es6/tests/ - -es6-watch: - ./node_modules/watch/cli.js "./node_modules/jspm/jspm.js bundle-sfx src/javascripts/ng-admin/es6/lib/main" src/javascripts/ng-admin/es6/lib/ diff --git a/UPGRADE-0.7.md b/UPGRADE-0.7.md index eb74378e..796165bf 100644 --- a/UPGRADE-0.7.md +++ b/UPGRADE-0.7.md @@ -1,3 +1,26 @@ # Upgrade to 0.7 +## Field factory + ng-admin 0.7 breaks compatibility with 0.5 and makes the "factories" configuration API compulsory. If your configuration uses `nga.field()`, it will still work woth 0.7. If it uses `new Field()`, you'll need to follow [the 0.6 upgrade guide](https://github.com/marmelab/ng-admin/blob/b3c7b1afc6a52651df6ba4454d8461620339b4da/UPGRADE-0.6.md). + +## Configuration factory + +Configuration is now done through a `ConfigurationFactory`. You can retrieve it directly from Angular DI. You just have to retrieve your application from this factory instead of the `NgAdminConfigurationProvider` as previously: + +``` js +- app.config(function (NgAdminConfigurationProvider, RestangularProvider) { ++ app.config(function (NgAdminConfigurationFactoryProvider, NgAdminConfigurationProvider, RestangularProvider) { +- var nga = NgAdminConfigurationProvider; ++ var nga = new NgAdminConfigurationFactoryProvider.$get(); + + // ... + +- nga.configure(admin); ++ NgAdminConfigurationProvider.configure(admin); + }); +``` + +## Entry constructor changes + +`Entry` class constructor has changed. You shouldn't use it directly, but if it is the case, new constructor takes three parameters: entityName, values and identifierValue. Only the two first ones are required. diff --git a/examples/blog/config.js b/examples/blog/config.js index 4f9bceee..ebf9cea1 100644 --- a/examples/blog/config.js +++ b/examples/blog/config.js @@ -4,8 +4,8 @@ var app = angular.module('myApp', ['ng-admin']); - app.config(function (NgAdminConfigurationProvider, RestangularProvider) { - var nga = new window.ngaConfigurationFactory(); + app.config(function (NgAdminConfigurationFactoryProvider, NgAdminConfigurationProvider, RestangularProvider) { + var nga = new NgAdminConfigurationFactoryProvider.$get(); function truncate(value) { if (!value) { diff --git a/examples/blog/index.html b/examples/blog/index.html index 67754471..200e1bcc 100644 --- a/examples/blog/index.html +++ b/examples/blog/index.html @@ -7,7 +7,6 @@ - diff --git a/package.json b/package.json index 1d3c221b..5f0cc87c 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "babel": "^4.6.0", "chai": "^2.1.0", "grunt": "~0.4.4", + "grunt-babel": "^4.0.0", "grunt-concurrent": "^0.5.0", "grunt-contrib-clean": "^0.6.0", "grunt-contrib-compass": "~0.7.2", @@ -32,7 +33,6 @@ "grunt-protractor-runner": "^1.1.4", "jasmine-core": "~2.1.3", "jshint-stylish": "~0.1.3", - "jspm": "^0.14.0", "karma": "~0.12.14", "karma-babel-preprocessor": "^4.0.0", "karma-chrome-launcher": "^0.1.4", @@ -44,23 +44,12 @@ "mocha": "^2.1.0", "mocha-traceur": "^2.1.0", "protractor": "~1.4.0", - "superagent": "^0.18.2", - "watch": "^0.14.0" + "superagent": "^0.18.2" }, "engines": { "node": ">=0.10.0" }, "scripts": { "test": "grunt test" - }, - "jspm": { - "directories": { - "lib": "src/javascripts/ng-admin/es6", - "packages": "jspm_packages" - }, - "configFile": "src/javascripts/ng-admin/es6/config.js", - "dependencies": { - "requirejs": "~2.1.14" - } } } diff --git a/src/javascripts/ng-admin.js b/src/javascripts/ng-admin.js index 91bef145..a666e59b 100644 --- a/src/javascripts/ng-admin.js +++ b/src/javascripts/ng-admin.js @@ -24,7 +24,8 @@ require.config({ 'textangular': 'bower_components/textAngular/dist/textAngular.min', 'angular-ui-codemirror': 'bower_components/angular-ui-codemirror/ui-codemirror.min', 'MainModule': 'ng-admin/Main/MainModule', - 'CrudModule': 'ng-admin/Crud/CrudModule' + 'CrudModule': 'ng-admin/Crud/CrudModule', + 'NgAdminConfigurationFactory': '../../build/ng-admin-configuration' }, shim: { 'restangular': { @@ -49,5 +50,16 @@ define(function (require) { require('MainModule'); require('CrudModule'); - angular.module('ng-admin', ['main', 'crud']); + var configurationFactory = require('NgAdminConfigurationFactory'); + + var factory = angular.module('NgAdminConfigurationFactory', []); + factory.provider('NgAdminConfigurationFactory', function() { + return { + $get: function() { + return new configurationFactory(); + } + }; + }); + + angular.module('ng-admin', ['main', 'crud', 'NgAdminConfigurationFactory']); }); diff --git a/src/javascripts/ng-admin/es6/config.js b/src/javascripts/ng-admin/es6/config.js deleted file mode 100644 index bbe27e1c..00000000 --- a/src/javascripts/ng-admin/es6/config.js +++ /dev/null @@ -1,8 +0,0 @@ -System.config({ - "baseURL": "/", - "transpiler": "babel", - "paths": { - "*": "*.js" - } -}); - diff --git a/src/javascripts/ng-admin/es6/lib/Application.js b/src/javascripts/ng-admin/es6/lib/Application.js index e7381110..71bfcffa 100644 --- a/src/javascripts/ng-admin/es6/lib/Application.js +++ b/src/javascripts/ng-admin/es6/lib/Application.js @@ -48,41 +48,28 @@ class Application { return url; } - layout() { - if (arguments.length) { - this._layout = arguments[0]; - return this; - } - - return this._layout; + layout(layout) { + if (!arguments.length) return this._layout; + this._layout = layout; + return this; } - title() { - if (arguments.length) { - this._title= arguments[0]; - return this; - } - - return this._title; + title(title) { + if (!arguments.length) return this._title; + this._title = title; + return this; } customTemplate(customTemplate) { - if (!arguments.length) { - return this._customTemplate; - } - + if (!arguments.length) return this._customTemplate; this._customTemplate = customTemplate; - return this; } - baseApiUrl() { - if (arguments.length) { - this._baseApiUrl = arguments[0]; - return this; - } - - return this._baseApiUrl; + baseApiUrl(url) { + if (!arguments.length) return this._baseApiUrl; + this._baseApiUrl = url; + return this; } addEntity(entity) { diff --git a/src/javascripts/ng-admin/es6/lib/Field/Field.js b/src/javascripts/ng-admin/es6/lib/Field/Field.js index 8843eac3..dd88943d 100644 --- a/src/javascripts/ng-admin/es6/lib/Field/Field.js +++ b/src/javascripts/ng-admin/es6/lib/Field/Field.js @@ -32,7 +32,6 @@ class Field { return this._label; } - /** @deprecated */ type() { if (arguments.length) { this._type = arguments[0]; @@ -42,7 +41,6 @@ class Field { return this._type; } - /** @deprecated */ name() { if (arguments.length) { this._name = arguments[0]; @@ -53,7 +51,6 @@ class Field { } - /** @deprecated */ order() { if (arguments.length) { this._order = arguments[0]; diff --git a/src/javascripts/ng-admin/es6/nga-configuration.js b/src/javascripts/ng-admin/es6/nga-configuration.js deleted file mode 100644 index d25a0aea..00000000 --- a/src/javascripts/ng-admin/es6/nga-configuration.js +++ /dev/null @@ -1,15 +0,0 @@ -require.config({ - paths: { - 'corejs': '../../../../node_modules/core-js/build/core-stable.js' - }, - shim: { - 'corejs': { - deps: ['corejs'] - } - } -}); - -define(function (require) { - 'use strict'; - require('lib/Factory.js'); -}); diff --git a/src/javascripts/ng-admin/es6/tests/lib/ApplicationTest.js b/src/javascripts/ng-admin/es6/tests/lib/ApplicationTest.js index c41f8648..8d6d2d38 100644 --- a/src/javascripts/ng-admin/es6/tests/lib/ApplicationTest.js +++ b/src/javascripts/ng-admin/es6/tests/lib/ApplicationTest.js @@ -27,10 +27,6 @@ describe('Application', function() { }); }); - describe('getRouteFor', function() { - // @TODO - }); - describe('layout', function() { it('using function without argument should be as getter', function() { var application = new Application(); diff --git a/src/javascripts/test/app-test.js b/src/javascripts/test/app-test.js index 3b0d2cd6..74e3da6b 100644 --- a/src/javascripts/test/app-test.js +++ b/src/javascripts/test/app-test.js @@ -35,9 +35,7 @@ requirejs.config({ 'nprogress': 'bower_components/nprogress/nprogress', 'MainModule': 'ng-admin/Main/MainModule', - 'CrudModule': 'ng-admin/Crud/CrudModule', - - 'Field': 'ng-admin/es6/lib/Field/Field' + 'CrudModule': 'ng-admin/Crud/CrudModule' }, shim: { 'angular': {