diff --git a/package.json b/package.json index d93c68a603f..2cbd5e141e9 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ "url": "http://github.com/torkelo/grafana.git" }, "devDependencies": { + "angular2": "2.0.0-beta.0", + "es6-promise": "^3.0.2", + "es6-shim": "^0.33.3", "expect.js": "~0.2.0", "glob": "~3.2.7", "grunt": "~0.4.0", @@ -32,6 +35,7 @@ "grunt-karma": "~0.8.3", "grunt-ng-annotate": "^0.9.2", "grunt-string-replace": "~0.2.4", + "grunt-systemjs-builder": "^0.2.5", "grunt-tslint": "^2.5.0", "grunt-typescript": "^0.8.0", "grunt-usemin": "3.0.0", @@ -48,15 +52,12 @@ "karma-script-launcher": "0.1.0", "load-grunt-tasks": "0.2.0", "mocha": "2.2.4", + "reflect-metadata": "0.1.2", "requirejs": "2.1.17", "rjs-build-analysis": "0.0.3", - "tslint": "^2.5.0-beta", - "angular2": "2.0.0-beta.0", - "systemjs": "0.19.6", - "es6-promise": "^3.0.2", - "es6-shim": "^0.33.3", - "reflect-metadata": "0.1.2", "rxjs": "5.0.0-beta.0", + "systemjs": "0.19.6", + "tslint": "^2.5.0-beta", "zone.js": "0.5.10" }, "engines": { @@ -74,6 +75,7 @@ "karma-sinon": "^1.0.3", "lodash": "^2.4.1", "sinon": "1.16.1", + "systemjs-builder": "^0.14.15", "typescript": "^1.7.5" } } diff --git a/public/app/core/utils/rangeutil.ts b/public/app/core/utils/rangeutil.ts index 56118dda3c3..b63af5b7538 100644 --- a/public/app/core/utils/rangeutil.ts +++ b/public/app/core/utils/rangeutil.ts @@ -1,8 +1,9 @@ /// -import moment = require('moment'); import _ = require('lodash'); -import angular = require('angular'); + +import angular from 'angular'; +import moment from 'moment'; import * as dateMath from './datemath'; var spans = { diff --git a/public/app/features/dashboard/timepicker/timepicker.ts b/public/app/features/dashboard/timepicker/timepicker.ts index bd81f633e96..3d3230b002b 100644 --- a/public/app/features/dashboard/timepicker/timepicker.ts +++ b/public/app/features/dashboard/timepicker/timepicker.ts @@ -1,11 +1,11 @@ /// /// -import angular = require('angular'); import _ = require('lodash'); -import moment = require('moment'); import kbn = require('app/core/utils/kbn'); +import angular from 'angular'; +import moment from 'moment'; import * as dateMath from 'app/core/utils/datemath'; import * as rangeUtil from 'app/core/utils/rangeutil'; diff --git a/public/app/grafana_app.ts b/public/app/grafana_app.ts index e864801ad7c..d2b2dbd6877 100644 --- a/public/app/grafana_app.ts +++ b/public/app/grafana_app.ts @@ -17,6 +17,9 @@ import bootstrap = require('bootstrap'); import kbn = require('app/core/utils/kbn'); import config = require('app/core/config'); +// import {Component} from 'vendor/npm/angular2/core'; +// console.log(Component); + export class GrafanaApp { registerFunctions: any; ngModuleDependencies: any[]; diff --git a/public/app/plugins/panels/table/editor.ts b/public/app/plugins/panels/table/editor.ts index 8d120856fdc..90d8fdfe59c 100644 --- a/public/app/plugins/panels/table/editor.ts +++ b/public/app/plugins/panels/table/editor.ts @@ -1,11 +1,11 @@ /// -import angular = require('angular'); -import $ = require('jquery'); import _ = require('lodash'); import kbn = require('app/core/utils/kbn'); -import moment = require('moment'); +import $ from 'jquery'; +import moment from 'moment'; +import angular from 'angular'; import {transformers} from './transformers'; export class TablePanelEditorCtrl { diff --git a/public/app/plugins/panels/table/module.ts b/public/app/plugins/panels/table/module.ts index 3f6f1002018..810b2a241bb 100644 --- a/public/app/plugins/panels/table/module.ts +++ b/public/app/plugins/panels/table/module.ts @@ -1,11 +1,11 @@ /// -import angular = require('angular'); -import $ = require('jquery'); import _ = require('lodash'); import kbn = require('app/core/utils/kbn'); -import moment = require('moment'); +import $ from 'jquery'; +import moment from 'moment'; +import angular from 'angular'; import {TablePanelCtrl} from './controller'; import {TableRenderer} from './renderer'; import {tablePanelEditor} from './editor'; diff --git a/public/app/plugins/panels/table/renderer.ts b/public/app/plugins/panels/table/renderer.ts index 530fb367521..26029c3babc 100644 --- a/public/app/plugins/panels/table/renderer.ts +++ b/public/app/plugins/panels/table/renderer.ts @@ -2,7 +2,7 @@ import _ = require('lodash'); import kbn = require('app/core/utils/kbn'); -import moment = require('moment'); +import moment from 'moment'; export class TableRenderer { formaters: any[]; diff --git a/public/app/systemjs.conf.js b/public/app/systemjs.conf.js index 2fb127405be..ebdea9f07fa 100644 --- a/public/app/systemjs.conf.js +++ b/public/app/systemjs.conf.js @@ -1,20 +1,21 @@ System.config({ defaultJSExtenions: true, + baseURL: 'public', paths: { - 'moment': 'public/vendor/moment.js', - "jquery": "public/vendor/jquery/dist/jquery.js", - 'lodash-src': 'public/vendor/lodash.js', - "lodash": 'public/app/core/lodash_extended.js', - "angular": "public/vendor/angular/angular.js", - "bootstrap": "public/vendor/bootstrap/bootstrap.js", - 'angular-route': 'public/vendor/angular-route/angular-route.js', - 'angular-sanitize': 'public/vendor/angular-sanitize/angular-sanitize.js', - "angular-ui": "public/vendor/angular-ui/ui-bootstrap-tpls.js", - "angular-strap": "public/vendor/angular-other/angular-strap.js", - "angular-dragdrop": "public/vendor/angular-native-dragdrop/draganddrop.js", - "angular-bindonce": "public/vendor/angular-bindonce/bindonce.js", - "spectrum": "public/vendor/spectrum.js", - "bootstrap-tagsinput": "public/vendor/tagsinput/bootstrap-tagsinput.js", + 'moment': 'vendor/moment.js', + "jquery": "vendor/jquery/dist/jquery.js", + 'lodash-src': 'vendor/lodash.js', + "lodash": 'app/core/lodash_extended.js', + "angular": "vendor/angular/angular.js", + "bootstrap": "vendor/bootstrap/bootstrap.js", + 'angular-route': 'vendor/angular-route/angular-route.js', + 'angular-sanitize': 'vendor/angular-sanitize/angular-sanitize.js', + "angular-ui": "vendor/angular-ui/ui-bootstrap-tpls.js", + "angular-strap": "vendor/angular-other/angular-strap.js", + "angular-dragdrop": "vendor/angular-native-dragdrop/draganddrop.js", + "angular-bindonce": "vendor/angular-bindonce/bindonce.js", + "spectrum": "vendor/spectrum.js", + "bootstrap-tagsinput": "vendor/tagsinput/bootstrap-tagsinput.js", "jquery.flot": "vendor/flot/jquery.flot", "jquery.flot.pie": "vendor/flot/jquery.flot.pie", "jquery.flot.events": "vendor/flot/jquery.flot.events", @@ -36,9 +37,6 @@ System.config({ }, map: { - 'vendor/npm/angular2': 'angular2', - app: 'public/app', - vendor: 'public/vendor', }, meta: { diff --git a/public/vendor/moment.js b/public/vendor/moment.js index da4fa163449..03a2460105d 100644 --- a/public/vendor/moment.js +++ b/public/vendor/moment.js @@ -2788,7 +2788,6 @@ globalScope.moment = moment; } } - debugger; // CommonJS module is defined if (hasModule) { diff --git a/public/views/index.html b/public/views/index.html index cda2abd45ac..a901e142b0e 100644 --- a/public/views/index.html +++ b/public/views/index.html @@ -62,6 +62,8 @@ + + diff --git a/tasks/systemjs_task.js b/tasks/systemjs_task.js new file mode 100644 index 00000000000..f35e99bbee9 --- /dev/null +++ b/tasks/systemjs_task.js @@ -0,0 +1,27 @@ +module.exports = function(grunt) { + "use strict"; + + grunt.registerTask('systemjs:build', function() { + var path = require("path"); + var Builder = require('systemjs-builder'); + var done = this.async(); + + // optional constructor options + // sets the baseURL and loads the configuration file + var builder = new Builder('public_gen', 'public_gen/app/systemjs.conf.js'); + console.log('Starting systemjs-builder'); + + builder + .bundle('app/app', 'public_gen/app/app.js') + .then(function() { + console.log('Build complete'); + done(); + }) + .catch(function(err) { + console.log('Build error'); + console.log(err); + done(); + }); + }); + +};