From d81889c24303f3ff11eccca44ecd54542bd33c5e Mon Sep 17 00:00:00 2001 From: ABNER SILVA DE OLIVEIRA Date: Thu, 25 Feb 2016 11:51:18 -0300 Subject: [PATCH] first typescript version. using webpack to compile and generate the noosfero.js bundled file. added 'npm start' script to allow run the webpack and gulp-serve concurrently --- .gitignore | 2 ++ package.json | 60 ++++++++++++++++++++++++++++++++++-------------------------- src/app/cms/cms.controller.js | 2 +- src/app/components/auth/auth.controller.js | 2 +- src/app/components/auth/auth.service.js | 2 +- src/app/components/navbar/navbar.directive.js | 2 +- src/app/components/noosfero-activities/activities.component.js | 2 +- src/app/components/noosfero-activities/activity/activity.component.js | 2 +- src/app/components/noosfero-articles/article/article.directive.js | 2 +- src/app/components/noosfero-articles/blog/blog.component.js | 2 +- src/app/components/noosfero-blocks/block.directive.js | 2 +- src/app/components/noosfero-blocks/link-list/link-list.component.js | 2 +- src/app/components/noosfero-blocks/main-block/main-block.component.js | 2 +- src/app/components/noosfero-blocks/members-block/members-block.component.js | 2 +- src/app/components/noosfero-blocks/profile-image/profile-image.component.js | 2 +- src/app/components/noosfero-blocks/recent-documents/recent-documents.component.js | 2 +- src/app/components/noosfero-boxes/boxes.component.js | 2 +- src/app/components/noosfero/noosfero-template.filter.js | 2 +- src/app/components/noosfero/noosfero.service.js | 2 +- src/app/components/noosfero/profile-image/profile-image.component.js | 2 +- src/app/content-viewer/content-viewer-actions.controller.js | 2 +- src/app/content-viewer/content-viewer.controller.js | 2 +- src/app/index.config.js | 32 ++++++++++++-------------------- src/app/index.config.ts | 15 +++++++++++++++ src/app/index.constants.js | 14 -------------- src/app/index.js | 39 +++++++++++++++++++++++++++++++++++++++ src/app/index.module.js | 38 +++++++++++++++++++++++++++----------- src/app/index.module.ts | 29 +++++++++++++++++++++++++++++ src/app/index.route.js | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------- src/app/index.route.ts | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/app/index.run.js | 27 ++++++++++----------------- src/app/index.run.ts | 11 +++++++++++ src/app/index.ts | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/app/main/main.controller.js | 2 +- src/app/profile-info/profile-info.controller.js | 2 +- src/app/profile/profile-home.controller.js | 2 +- src/app/profile/profile.controller.js | 2 +- src/index.html | 9 ++++----- style.css | 1 - tsconfig.json | 13 +++++++++++++ typings.json | 9 +++++++++ webpack.config.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 42 files changed, 473 insertions(+), 187 deletions(-) create mode 100644 src/app/index.config.ts delete mode 100644 src/app/index.constants.js create mode 100644 src/app/index.js create mode 100644 src/app/index.module.ts create mode 100644 src/app/index.route.ts create mode 100644 src/app/index.run.ts create mode 100644 src/app/index.ts delete mode 120000 style.css create mode 100644 tsconfig.json create mode 100644 typings.json create mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index 01b919d..8f84ae6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ coverage/ .idea/ .tmp/ dist/ +src/noosfero.js* +typings diff --git a/package.json b/package.json index 714a5e1..a80d082 100644 --- a/package.json +++ b/package.json @@ -3,50 +3,58 @@ "version": "0.0.0", "dependencies": {}, "scripts": { - "test": "gulp test" + "test": "gulp test", + "postinstall": "npm install -g bower && bower install", + "start": "concurrently \"webpack -w\" \"gulp serve\"" }, "devDependencies": { + "browser-sync": "~2.9.11", + "browser-sync-spa": "~1.0.3", + "chalk": "~1.1.1", + "del": "~2.0.2", + "eslint-plugin-angular": "~0.12.0", "estraverse": "~4.1.0", + "expose-loader": "^0.7.1", "gulp": "~3.9.0", - "gulp-autoprefixer": "~3.0.2", + "gulp-angular-filesort": "~1.1.1", "gulp-angular-templatecache": "~1.8.0", - "del": "~2.0.2", - "lodash": "~3.10.1", - "gulp-minify-css": "~1.2.1", + "gulp-autoprefixer": "~3.0.2", + "gulp-eslint": "~1.0.0", "gulp-filter": "~3.0.1", "gulp-flatten": "~0.2.0", - "gulp-eslint": "~1.0.0", - "eslint-plugin-angular": "~0.12.0", + "gulp-inject": "~3.0.0", "gulp-load-plugins": "~0.10.0", - "gulp-size": "~2.0.0", - "gulp-uglify": "~1.4.1", - "gulp-useref": "~1.3.0", - "gulp-util": "~3.0.6", + "gulp-minify-css": "~1.2.1", + "gulp-minify-html": "~1.0.4", "gulp-ng-annotate": "~1.1.0", - "gulp-replace": "~0.5.4", + "gulp-protractor": "~1.0.0", "gulp-rename": "~1.2.2", + "gulp-replace": "~0.5.4", "gulp-rev": "~6.0.1", "gulp-rev-replace": "~0.4.2", - "gulp-minify-html": "~1.0.4", - "gulp-inject": "~3.0.0", - "gulp-protractor": "~1.0.0", - "gulp-sourcemaps": "~1.6.0", "gulp-sass": "~2.0.4", - "gulp-angular-filesort": "~1.1.1", - "main-bower-files": "~2.9.0", - "wiredep": "~2.2.2", + "gulp-size": "~2.0.0", + "gulp-sourcemaps": "~1.6.0", + "gulp-typescript": "^2.12.0", + "gulp-uglify": "~1.4.1", + "gulp-useref": "~1.3.0", + "gulp-util": "~3.0.6", + "http-proxy-middleware": "~0.9.0", "karma": "~0.13.10", - "karma-jasmine": "~0.3.6", - "karma-phantomjs-launcher": "~0.2.1", - "phantomjs": "~1.9.18", "karma-angular-filesort": "~1.0.0", "karma-coverage": "~0.5.2", + "karma-jasmine": "~0.3.6", "karma-ng-html2js-preprocessor": "~0.2.0", - "browser-sync": "~2.9.11", - "browser-sync-spa": "~1.0.3", - "http-proxy-middleware": "~0.9.0", - "chalk": "~1.1.1", + "karma-phantomjs-launcher": "~0.2.1", + "lodash": "~3.10.1", + "main-bower-files": "~2.9.0", + "phantomjs": "~1.9.18", + "ts-loader": "^0.8.1", + "typescript": "^1.8.2", + "typings": "^0.6.8", "uglify-save-license": "~0.4.1", + "webpack": "^1.12.14", + "wiredep": "~2.2.2", "wrench": "~1.5.8" }, "engines": { diff --git a/src/app/cms/cms.controller.js b/src/app/cms/cms.controller.js index 1153ccb..4a4b06c 100644 --- a/src/app/cms/cms.controller.js +++ b/src/app/cms/cms.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('CmsController', CmsController); diff --git a/src/app/components/auth/auth.controller.js b/src/app/components/auth/auth.controller.js index ed6e866..1083a12 100644 --- a/src/app/components/auth/auth.controller.js +++ b/src/app/components/auth/auth.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('AuthController', AuthController); diff --git a/src/app/components/auth/auth.service.js b/src/app/components/auth/auth.service.js index 7cd3f8c..c6667fd 100644 --- a/src/app/components/auth/auth.service.js +++ b/src/app/components/auth/auth.service.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .factory('Session', Session) .factory('AuthService', AuthService); diff --git a/src/app/components/navbar/navbar.directive.js b/src/app/components/navbar/navbar.directive.js index 0a43e0d..dfe7d09 100644 --- a/src/app/components/navbar/navbar.directive.js +++ b/src/app/components/navbar/navbar.directive.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .directive('acmeNavbar', acmeNavbar); /** @ngInject */ diff --git a/src/app/components/noosfero-activities/activities.component.js b/src/app/components/noosfero-activities/activities.component.js index 8e73541..f8cb702 100644 --- a/src/app/components/noosfero-activities/activities.component.js +++ b/src/app/components/noosfero-activities/activities.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoActivities', { restrict: 'E', bindings: { diff --git a/src/app/components/noosfero-activities/activity/activity.component.js b/src/app/components/noosfero-activities/activity/activity.component.js index 1a431b0..8aa9fbb 100644 --- a/src/app/components/noosfero-activities/activity/activity.component.js +++ b/src/app/components/noosfero-activities/activity/activity.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoActivity', { restrict: 'E', bindings: { diff --git a/src/app/components/noosfero-articles/article/article.directive.js b/src/app/components/noosfero-articles/article/article.directive.js index b702424..99c5dd9 100644 --- a/src/app/components/noosfero-articles/article/article.directive.js +++ b/src/app/components/noosfero-articles/article/article.directive.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .directive('noosferoArticle', noosferoArticle); /** @ngInject */ diff --git a/src/app/components/noosfero-articles/blog/blog.component.js b/src/app/components/noosfero-articles/blog/blog.component.js index f9ab59b..c5db9d5 100644 --- a/src/app/components/noosfero-articles/blog/blog.component.js +++ b/src/app/components/noosfero-articles/blog/blog.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoBlog', { restrict: 'E', templateUrl: 'app/components/noosfero-articles/blog/blog.html', diff --git a/src/app/components/noosfero-blocks/block.directive.js b/src/app/components/noosfero-blocks/block.directive.js index ac6b365..9738af0 100644 --- a/src/app/components/noosfero-blocks/block.directive.js +++ b/src/app/components/noosfero-blocks/block.directive.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .directive('noosferoBlock', noosferoBlock); /** @ngInject */ diff --git a/src/app/components/noosfero-blocks/link-list/link-list.component.js b/src/app/components/noosfero-blocks/link-list/link-list.component.js index 8dd0fdb..fb5ce37 100644 --- a/src/app/components/noosfero-blocks/link-list/link-list.component.js +++ b/src/app/components/noosfero-blocks/link-list/link-list.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoLinkListBlock', { restrict: 'E', templateUrl: 'app/components/noosfero-blocks/link-list/link-list.html', diff --git a/src/app/components/noosfero-blocks/main-block/main-block.component.js b/src/app/components/noosfero-blocks/main-block/main-block.component.js index 45ca550..30c6943 100644 --- a/src/app/components/noosfero-blocks/main-block/main-block.component.js +++ b/src/app/components/noosfero-blocks/main-block/main-block.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoMainBlock', { restrict: 'E', templateUrl: 'app/components/noosfero-blocks/main-block/main-block.html', diff --git a/src/app/components/noosfero-blocks/members-block/members-block.component.js b/src/app/components/noosfero-blocks/members-block/members-block.component.js index c1ddafb..463efbe 100644 --- a/src/app/components/noosfero-blocks/members-block/members-block.component.js +++ b/src/app/components/noosfero-blocks/members-block/members-block.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoMembersBlock', { restrict: 'E', templateUrl: 'app/components/noosfero-blocks/members-block/members-block.html', diff --git a/src/app/components/noosfero-blocks/profile-image/profile-image.component.js b/src/app/components/noosfero-blocks/profile-image/profile-image.component.js index 5b76aeb..33946a1 100644 --- a/src/app/components/noosfero-blocks/profile-image/profile-image.component.js +++ b/src/app/components/noosfero-blocks/profile-image/profile-image.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoProfileImageBlock', { restrict: 'E', templateUrl: 'app/components/noosfero-blocks/profile-image/profile-image.html', diff --git a/src/app/components/noosfero-blocks/recent-documents/recent-documents.component.js b/src/app/components/noosfero-blocks/recent-documents/recent-documents.component.js index 5a864d2..cded10c 100644 --- a/src/app/components/noosfero-blocks/recent-documents/recent-documents.component.js +++ b/src/app/components/noosfero-blocks/recent-documents/recent-documents.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoRecentDocumentsBlock', { restrict: 'E', templateUrl: 'app/components/noosfero-blocks/recent-documents/recent-documents.html', diff --git a/src/app/components/noosfero-boxes/boxes.component.js b/src/app/components/noosfero-boxes/boxes.component.js index abefbfc..a95b81b 100644 --- a/src/app/components/noosfero-boxes/boxes.component.js +++ b/src/app/components/noosfero-boxes/boxes.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoBoxes', { restrict: 'E', bindings: { diff --git a/src/app/components/noosfero/noosfero-template.filter.js b/src/app/components/noosfero/noosfero-template.filter.js index 0128d91..c3c9997 100644 --- a/src/app/components/noosfero/noosfero-template.filter.js +++ b/src/app/components/noosfero/noosfero-template.filter.js @@ -1,7 +1,7 @@ (function() { 'use strict'; angular - .module("angular") + .module("noosferoApp") .filter("noosferoTemplateFilter", function() { return function(text, options) { for(var option in options) { diff --git a/src/app/components/noosfero/noosfero.service.js b/src/app/components/noosfero/noosfero.service.js index 1a075cb..bf7cdbe 100644 --- a/src/app/components/noosfero/noosfero.service.js +++ b/src/app/components/noosfero/noosfero.service.js @@ -1,7 +1,7 @@ (function() { 'use strict'; - angular.module('angular').factory('noosfero', function(Restangular, $q) { + angular.module('noosferoApp').factory('noosfero', function(Restangular, $q) { var currentProfile = $q.defer(); return { diff --git a/src/app/components/noosfero/profile-image/profile-image.component.js b/src/app/components/noosfero/profile-image/profile-image.component.js index 9dd34bd..c83939f 100644 --- a/src/app/components/noosfero/profile-image/profile-image.component.js +++ b/src/app/components/noosfero/profile-image/profile-image.component.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .component('noosferoProfileImage', { restrict: 'E', templateUrl: 'app/components/noosfero/profile-image/profile-image.html', diff --git a/src/app/content-viewer/content-viewer-actions.controller.js b/src/app/content-viewer/content-viewer-actions.controller.js index a54f2cb..30e8c14 100644 --- a/src/app/content-viewer/content-viewer-actions.controller.js +++ b/src/app/content-viewer/content-viewer-actions.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('ContentViewerActionsController', ContentViewerActionsController); diff --git a/src/app/content-viewer/content-viewer.controller.js b/src/app/content-viewer/content-viewer.controller.js index 4b5acf0..a83e37c 100644 --- a/src/app/content-viewer/content-viewer.controller.js +++ b/src/app/content-viewer/content-viewer.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('ContentViewerController', ContentViewerController); diff --git a/src/app/index.config.js b/src/app/index.config.js index 2568e98..4de2459 100644 --- a/src/app/index.config.js +++ b/src/app/index.config.js @@ -1,23 +1,15 @@ -(function() { - 'use strict'; - - angular - .module('angular') - .config(config); - - /** @ngInject */ - function config($logProvider, $locationProvider, RestangularProvider, $httpProvider, $provide) { +"use strict"; +/** @ngInject */ +function noosferoModuleConfig($logProvider, $locationProvider, RestangularProvider, $httpProvider, $provide) { $logProvider.debugEnabled(true); - $locationProvider.html5Mode({enabled: true}); - RestangularProvider.setBaseUrl('/api/v1'); + $locationProvider.html5Mode({ enabled: true }); + RestangularProvider.setBaseUrl("/api/v1"); RestangularProvider.setFullResponse(true); - $httpProvider.defaults.headers.post = {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'}; - - $provide.decorator('$uiViewScroll', function ($delegate, $document) { - return function (uiViewElement) { - $document.scrollToElementAnimated(uiViewElement); - }; + $httpProvider.defaults.headers.post = { "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" }; + $provide.decorator("$uiViewScroll", function ($delegate, $document) { + return function (uiViewElement) { + $document.scrollToElementAnimated(uiViewElement); + }; }); - } - -})(); +} +exports.noosferoModuleConfig = noosferoModuleConfig; diff --git a/src/app/index.config.ts b/src/app/index.config.ts new file mode 100644 index 0000000..1fb8a70 --- /dev/null +++ b/src/app/index.config.ts @@ -0,0 +1,15 @@ + +/** @ngInject */ +export function noosferoModuleConfig($logProvider, $locationProvider, RestangularProvider, $httpProvider, $provide) { + $logProvider.debugEnabled(true); + $locationProvider.html5Mode({ enabled: true }); + RestangularProvider.setBaseUrl("/api/v1"); + RestangularProvider.setFullResponse(true); + $httpProvider.defaults.headers.post = { "Content-Type": "application/x-www-form-urlencoded; charset=utf-8" }; + + $provide.decorator("$uiViewScroll", function($delegate, $document) { + return function(uiViewElement) { + $document.scrollToElementAnimated(uiViewElement); + }; + }); +} \ No newline at end of file diff --git a/src/app/index.constants.js b/src/app/index.constants.js deleted file mode 100644 index ed3dc71..0000000 --- a/src/app/index.constants.js +++ /dev/null @@ -1,14 +0,0 @@ -/* global moment:false */ -(function() { - 'use strict'; - - angular - .module('angular') - .constant('moment', moment) - .constant('AUTH_EVENTS', { - loginSuccess: 'auth-login-success', - loginFailed: 'auth-login-failed', - logoutSuccess: 'auth-logout-success' - }); - -})(); diff --git a/src/app/index.js b/src/app/index.js new file mode 100644 index 0000000..f7d511b --- /dev/null +++ b/src/app/index.js @@ -0,0 +1,39 @@ +"use strict"; +var index_module_1 = require("./index.module"); +var index_config_1 = require("./index.config"); +var index_run_1 = require("./index.run"); +var index_route_1 = require("./index.route"); +index_module_1.NoosferoApp.init(); +index_module_1.NoosferoApp.addConstants("moment", moment); +index_module_1.NoosferoApp.addConstants("AUTH_EVENTS", { + loginSuccess: "auth-login-success", + loginFailed: "auth-login-failed", + logoutSuccess: "auth-logout-success" +}); +index_module_1.NoosferoApp.addConfig(index_config_1.noosferoModuleConfig); +index_module_1.NoosferoApp.run(index_run_1.noosferoAngularRunBlock); +require("./cms/cms.controller.js"); +require("./components/auth/auth.controller.js"); +require("./components/auth/auth.service.js"); +require("./components/navbar/navbar.directive.js"); +require("./components/noosfero-activities/activities.component.js"); +require("./components/noosfero-activities/activity/activity.component.js"); +require("./components/noosfero-articles/article/article.directive.js"); +require("./components/noosfero-articles/blog/blog.component.js"); +require("./components/noosfero-blocks/block.directive.js"); +require("./components/noosfero-blocks/link-list/link-list.component.js"); +require("./components/noosfero-blocks/main-block/main-block.component.js"); +require("./components/noosfero-blocks/members-block/members-block.component.js"); +require("./components/noosfero-blocks/profile-image/profile-image.component.js"); +require("./components/noosfero-blocks/recent-documents/recent-documents.component.js"); +require("./components/noosfero-boxes/boxes.component.js"); +require("./components/noosfero/noosfero-template.filter.js"); +require("./components/noosfero/noosfero.service.js"); +require("./components/noosfero/profile-image/profile-image.component.js"); +require("./content-viewer/content-viewer-actions.controller.js"); +require("./content-viewer/content-viewer.controller.js"); +require("./main/main.controller.js"); +require("./profile-info/profile-info.controller.js"); +require("./profile/profile-home.controller.js"); +require("./profile/profile.controller.js"); +index_module_1.NoosferoApp.addConfig(index_route_1.routeConfig); diff --git a/src/app/index.module.js b/src/app/index.module.js index ce12a41..80a2847 100644 --- a/src/app/index.module.js +++ b/src/app/index.module.js @@ -1,11 +1,27 @@ -(function() { - 'use strict'; - - angular - .module('angular', ['ngAnimate', 'ngCookies', 'ngStorage', 'ngTouch', - 'ngSanitize', 'ngMessages', 'ngAria', 'restangular', - 'ui.router', 'ui.bootstrap', 'toastr', - 'angularMoment', 'angular.filter', 'akoenig.deckgrid', - 'angular-timeline', 'duScroll', 'oitozero.ngSweetAlert']); - -})(); +"use strict"; +var NoosferoApp = (function () { + function NoosferoApp() { + } + NoosferoApp.init = function () { + angular.module(NoosferoApp.appName, ["ngAnimate", "ngCookies", "ngStorage", "ngTouch", + "ngSanitize", "ngMessages", "ngAria", "restangular", + "ui.router", "ui.bootstrap", "toastr", + "angularMoment", "angular.filter", "akoenig.deckgrid", + "angular-timeline", "duScroll", "oitozero.ngSweetAlert"]); + }; + NoosferoApp.addConfig = function (configFunc) { + angular.module(NoosferoApp.appName).config(configFunc); + }; + NoosferoApp.addConstants = function (constantName, value) { + angular.module(NoosferoApp.appName).constant(constantName, value); + }; + NoosferoApp.addService = function (serviceName, value) { + angular.module(NoosferoApp.appName).service(serviceName, value); + }; + NoosferoApp.run = function (runFunction) { + angular.module(NoosferoApp.appName).run(runFunction); + }; + NoosferoApp.appName = "noosferoApp"; + return NoosferoApp; +}()); +exports.NoosferoApp = NoosferoApp; diff --git a/src/app/index.module.ts b/src/app/index.module.ts new file mode 100644 index 0000000..0cd9bc1 --- /dev/null +++ b/src/app/index.module.ts @@ -0,0 +1,29 @@ +export class NoosferoApp { + + static appName: string = "noosferoApp"; + + static init() { + angular.module(NoosferoApp.appName, ["ngAnimate", "ngCookies", "ngStorage", "ngTouch", + "ngSanitize", "ngMessages", "ngAria", "restangular", + "ui.router", "ui.bootstrap", "toastr", + "angularMoment", "angular.filter", "akoenig.deckgrid", + "angular-timeline", "duScroll", "oitozero.ngSweetAlert"]); + } + + static addConfig(configFunc: Function) { + angular.module(NoosferoApp.appName).config(configFunc); + } + + static addConstants(constantName: string, value: any) { + angular.module(NoosferoApp.appName).constant(constantName, value); + } + + static addService(serviceName: string, value: any) { + angular.module(NoosferoApp.appName).service(serviceName, value); + } + + static run(runFunction: Function) { + angular.module(NoosferoApp.appName).run(runFunction); + } +} + diff --git a/src/app/index.route.js b/src/app/index.route.js index 6af1d91..86ab0f7 100644 --- a/src/app/index.route.js +++ b/src/app/index.route.js @@ -1,83 +1,76 @@ -(function() { - 'use strict'; - - angular - .module('angular') - .config(routeConfig); - - function routeConfig($stateProvider, $urlRouterProvider) { +"use strict"; +/** @ngInject */ +function routeConfig($stateProvider, $urlRouterProvider) { $stateProvider - .state('main', { - url: '/', - templateUrl: 'app/main/main.html', - controller: 'MainController', - controllerAs: 'vm', + .state("main", { + url: "/", + templateUrl: "app/main/main.html", + controller: "MainController", + controllerAs: "vm", resolve: { - currentUser: function(AuthService) { - return AuthService.loginFromCookie(); - } + currentUser: function (AuthService) { + return AuthService.loginFromCookie(); + } } - }) - .state('main.profile.cms', { - url: '^/myprofile/:profile/cms', + }) + .state("main.profile.cms", { + url: "^/myprofile/:profile/cms", views: { - 'mainBlockContent': { - templateUrl: 'app/cms/cms.html', - controller: 'CmsController', - controllerAs: 'vm' - } + "mainBlockContent": { + templateUrl: "app/cms/cms.html", + controller: "CmsController", + controllerAs: "vm" + } } - }) - .state('main.profile.settings', { - url: '^/myprofile/:profile' - }) - .state('main.profile', { - url: '^/:profile', + }) + .state("main.profile.settings", { + url: "^/myprofile/:profile" + }) + .state("main.profile", { + url: "^/:profile", abstract: true, views: { - 'content': { - templateUrl: 'app/profile/profile.html', - controller: 'ProfileController', - controllerAs: 'vm' - } + "content": { + templateUrl: "app/profile/profile.html", + controller: "ProfileController", + controllerAs: "vm" + } } - }) - .state('main.profile.home', { - url: '', + }) + .state("main.profile.home", { + url: "", views: { - 'mainBlockContent': { - controller: 'ProfileHomeController', - controllerAs: 'vm' - } + "mainBlockContent": { + controller: "ProfileHomeController", + controllerAs: "vm" + } } - }) - .state('main.profile.info', { - url: '^/profile/:profile', + }) + .state("main.profile.info", { + url: "^/profile/:profile", views: { - 'mainBlockContent': { - templateUrl: 'app/profile-info/profile-info.html', - controller: 'ProfileInfoController', - controllerAs: 'vm' - } + "mainBlockContent": { + templateUrl: "app/profile-info/profile-info.html", + controller: "ProfileInfoController", + controllerAs: "vm" + } } - }) - .state('main.profile.page', { - url: '/{page:any}', + }) + .state("main.profile.page", { + url: "/{page:any}", views: { - 'mainBlockContent': { - templateUrl: 'app/content-viewer/page.html', - controller: 'ContentViewerController', - controllerAs: 'vm' - }, - 'actions@main': { - templateUrl: 'app/content-viewer/navbar-actions.html', - controller: 'ContentViewerActionsController', - controllerAs: 'vm' - } + "mainBlockContent": { + templateUrl: "app/content-viewer/page.html", + controller: "ContentViewerController", + controllerAs: "vm" + }, + "actions@main": { + templateUrl: "app/content-viewer/navbar-actions.html", + controller: "ContentViewerActionsController", + controllerAs: "vm" + } } - }); - - $urlRouterProvider.otherwise('/'); - } - -})(); + }); + $urlRouterProvider.otherwise("/"); +} +exports.routeConfig = routeConfig; diff --git a/src/app/index.route.ts b/src/app/index.route.ts new file mode 100644 index 0000000..88d8df2 --- /dev/null +++ b/src/app/index.route.ts @@ -0,0 +1,79 @@ + + +/** @ngInject */ +export function routeConfig($stateProvider, $urlRouterProvider) { + $stateProvider + .state("main", { + url: "/", + templateUrl: "app/main/main.html", + controller: "MainController", + controllerAs: "vm", + resolve: { + currentUser: function(AuthService) { + return AuthService.loginFromCookie(); + } + } + }) + .state("main.profile.cms", { + url: "^/myprofile/:profile/cms", + views: { + "mainBlockContent": { + templateUrl: "app/cms/cms.html", + controller: "CmsController", + controllerAs: "vm" + } + } + }) + .state("main.profile.settings", { + url: "^/myprofile/:profile" + }) + .state("main.profile", { + url: "^/:profile", + abstract: true, + views: { + "content": { + templateUrl: "app/profile/profile.html", + controller: "ProfileController", + controllerAs: "vm" + } + } + }) + .state("main.profile.home", { + url: "", + views: { + "mainBlockContent": { + controller: "ProfileHomeController", + controllerAs: "vm" + } + } + }) + .state("main.profile.info", { + url: "^/profile/:profile", + views: { + "mainBlockContent": { + templateUrl: "app/profile-info/profile-info.html", + controller: "ProfileInfoController", + controllerAs: "vm" + } + } + }) + .state("main.profile.page", { + url: "/{page:any}", + views: { + "mainBlockContent": { + templateUrl: "app/content-viewer/page.html", + controller: "ContentViewerController", + controllerAs: "vm" + }, + "actions@main": { + templateUrl: "app/content-viewer/navbar-actions.html", + controller: "ContentViewerActionsController", + controllerAs: "vm" + } + } + }); + + $urlRouterProvider.otherwise("/"); + } + + diff --git a/src/app/index.run.js b/src/app/index.run.js index de551b9..481c249 100644 --- a/src/app/index.run.js +++ b/src/app/index.run.js @@ -1,18 +1,11 @@ -(function() { - 'use strict'; - - angular - .module('angular') - .run(runBlock); - - /** @ngInject */ - function runBlock($log, Restangular, Session) { - Restangular.addFullRequestInterceptor(function(element, operation, route, url, headers) { - if(Session.getCurrentUser()) { - headers['Private-Token'] = Session.getCurrentUser().private_token; - } - return { headers: headers }; +"use strict"; +/** @ngInject */ +function noosferoAngularRunBlock($log, Restangular, Session) { + Restangular.addFullRequestInterceptor(function (element, operation, route, url, headers) { + if (Session.getCurrentUser()) { + headers["Private-Token"] = Session.getCurrentUser().private_token; + } + return { headers: headers }; }); - } - -})(); +} +exports.noosferoAngularRunBlock = noosferoAngularRunBlock; diff --git a/src/app/index.run.ts b/src/app/index.run.ts new file mode 100644 index 0000000..58c04c0 --- /dev/null +++ b/src/app/index.run.ts @@ -0,0 +1,11 @@ + +/** @ngInject */ +export function noosferoAngularRunBlock($log, Restangular, Session) { + Restangular.addFullRequestInterceptor(function(element, operation, route, url, headers) { + if (Session.getCurrentUser()) { + headers["Private-Token"] = Session.getCurrentUser().private_token; + } + return { headers: headers }; + }); +} + diff --git a/src/app/index.ts b/src/app/index.ts new file mode 100644 index 0000000..be4a6b4 --- /dev/null +++ b/src/app/index.ts @@ -0,0 +1,49 @@ +import {NoosferoApp} from "./index.module"; +import {noosferoModuleConfig} from "./index.config"; +import {noosferoAngularRunBlock} from "./index.run"; +import {routeConfig} from "./index.route"; + +declare var moment: any; + +NoosferoApp.init(); + +NoosferoApp.addConstants("moment", moment); +NoosferoApp.addConstants("AUTH_EVENTS", { + loginSuccess: "auth-login-success", + loginFailed: "auth-login-failed", + logoutSuccess: "auth-logout-success" +}); + + +NoosferoApp.addConfig(noosferoModuleConfig); + +NoosferoApp.run(noosferoAngularRunBlock); + +declare function require(module): any; + +require("./cms/cms.controller.js"); +require("./components/auth/auth.controller.js"); +require("./components/auth/auth.service.js"); +require("./components/navbar/navbar.directive.js"); +require("./components/noosfero-activities/activities.component.js"); +require("./components/noosfero-activities/activity/activity.component.js"); +require("./components/noosfero-articles/article/article.directive.js"); +require("./components/noosfero-articles/blog/blog.component.js"); +require("./components/noosfero-blocks/block.directive.js"); +require("./components/noosfero-blocks/link-list/link-list.component.js"); +require("./components/noosfero-blocks/main-block/main-block.component.js"); +require("./components/noosfero-blocks/members-block/members-block.component.js"); +require("./components/noosfero-blocks/profile-image/profile-image.component.js"); +require("./components/noosfero-blocks/recent-documents/recent-documents.component.js"); +require("./components/noosfero-boxes/boxes.component.js"); +require("./components/noosfero/noosfero-template.filter.js"); +require("./components/noosfero/noosfero.service.js"); +require("./components/noosfero/profile-image/profile-image.component.js"); +require("./content-viewer/content-viewer-actions.controller.js"); +require("./content-viewer/content-viewer.controller.js"); +require("./main/main.controller.js"); +require("./profile-info/profile-info.controller.js"); +require("./profile/profile-home.controller.js"); +require("./profile/profile.controller.js"); + +NoosferoApp.addConfig(routeConfig); diff --git a/src/app/main/main.controller.js b/src/app/main/main.controller.js index db15510..082027b 100644 --- a/src/app/main/main.controller.js +++ b/src/app/main/main.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('MainController', MainController); diff --git a/src/app/profile-info/profile-info.controller.js b/src/app/profile-info/profile-info.controller.js index cdf3e3f..9b87545 100644 --- a/src/app/profile-info/profile-info.controller.js +++ b/src/app/profile-info/profile-info.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('ProfileInfoController', ProfileInfoController); diff --git a/src/app/profile/profile-home.controller.js b/src/app/profile/profile-home.controller.js index 36f4633..a3c6c2f 100644 --- a/src/app/profile/profile-home.controller.js +++ b/src/app/profile/profile-home.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('ProfileHomeController', ProfileHomeController); diff --git a/src/app/profile/profile.controller.js b/src/app/profile/profile.controller.js index dccb0d5..afc8f5a 100644 --- a/src/app/profile/profile.controller.js +++ b/src/app/profile/profile.controller.js @@ -2,7 +2,7 @@ 'use strict'; angular - .module('angular') + .module('noosferoApp') .controller('ProfileController', ProfileController); diff --git a/src/index.html b/src/index.html index 04e169b..53fe124 100644 --- a/src/index.html +++ b/src/index.html @@ -1,5 +1,5 @@ - + @@ -33,10 +33,9 @@ - - - - + + + diff --git a/style.css b/style.css deleted file mode 120000 index 4476132..0000000 --- a/style.css +++ /dev/null @@ -1 +0,0 @@ -../noosfero/style.css \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4631c30 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "noImplicitAny": false, + "sourceMap": false + }, + "exclude": [ + "node_modules", + "typings/main", + "typings/main.d.ts" + ] +} \ No newline at end of file diff --git a/typings.json b/typings.json new file mode 100644 index 0000000..d81a333 --- /dev/null +++ b/typings.json @@ -0,0 +1,9 @@ +{ + "name": "angular", + "dependencies": {}, + "devDependencies": {}, + "ambientDependencies": { + "angular": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular.d.ts#1c4a34873c9e70cce86edd0e61c559e43dfa5f75", + "jquery": "github:DefinitelyTyped/DefinitelyTyped/jquery/jquery.d.ts#470954c4f427e0805a2d633636a7c6aa7170def8" + } +} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..4a63492 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,54 @@ +var argv = require("yargs").argv; +var path = require("path"); + +var extension = ".js"; +if (argv.production) { + extension = ".min.js" +} + +var uglifyLoaderConfig = { + // I want to uglify with mangling only app files, not thirdparty libs + test: /\.js$/, + exclude: /.spec.js/, // excluding .spec files + loader: "uglify" +}; + +var webpackConfig = { + entry: { + noosfero: './src/app/index.ts' + }, + + + output: { + path: path.join(__dirname, "src"), + filename: "[name]" + extension, + }, + resolve: { + // Add `.ts` and `.tsx` as a resolvable extension. + extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'] + }, + // Source maps support (or 'inline-source-map' also works) + devtool: 'source-map', + + module: { + loaders: [{ + test: /\.css$/, + loader: "style!css" + }, { + test: /\.scss$/, + loaders: ["style", "css?sourceMap", "sass?sourceMap"] + }, { + test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/, + loader: 'url-loader?limit=100000' + }, { + test: /\.tsx?$/, + loader: 'ts-loader' + }] + } +}; + +if (argv.production) { + webpackConfig.module.loaders.push(uglifyLoaderConfig); +} + +module.exports = webpackConfig; -- libgit2 0.21.2