Commit aa54e8a54ef0cd99f9b855183c002b9845e72e5b
1 parent
a7010295
Exists in
master
and in
14 other branches
Use bootstrap to init angular application
Showing
14 changed files
with
39 additions
and
144 deletions
Show diff stats
src/app/index.module.ts
| @@ -1,97 +0,0 @@ | @@ -1,97 +0,0 @@ | ||
| 1 | - | ||
| 2 | -/** | ||
| 3 | - * @ngdoc service | ||
| 4 | - * @name NoosferoApp | ||
| 5 | - * @description | ||
| 6 | - * The main NoosferoApp module class. It provide helper static methods used by | ||
| 7 | - * the module to initialize the application. | ||
| 8 | - */ | ||
| 9 | -export class NoosferoApp { | ||
| 10 | - | ||
| 11 | - /** | ||
| 12 | - * @ngdoc property | ||
| 13 | - * @name appName | ||
| 14 | - * @propertyOf NoosferoApp | ||
| 15 | - * @returns {string} the name of this application ('noosferoApp') | ||
| 16 | - */ | ||
| 17 | - static appName: string = "noosferoApp"; | ||
| 18 | - | ||
| 19 | - /** | ||
| 20 | - * @ngdoc property | ||
| 21 | - * @name angularModule | ||
| 22 | - * @propertyOf NoosferoApp | ||
| 23 | - * @returns {any} all the modules installed for this application | ||
| 24 | - */ | ||
| 25 | - static angularModule: any; | ||
| 26 | - | ||
| 27 | - /** | ||
| 28 | - * @ngdoc method | ||
| 29 | - * @name addConfig | ||
| 30 | - * @methodOf NoosferoApp | ||
| 31 | - * @param {Function} configFunc the configuration function to add | ||
| 32 | - * @descprition adds a configuration function to | ||
| 33 | - * the {@link NoosferoApp#angularModule} | ||
| 34 | - */ | ||
| 35 | - static addConfig(configFunc: Function) { | ||
| 36 | - NoosferoApp.angularModule.config(configFunc); | ||
| 37 | - } | ||
| 38 | - | ||
| 39 | - /** | ||
| 40 | - * @ngdoc method | ||
| 41 | - * @name addConstants | ||
| 42 | - * @methodOf NoosferoApp | ||
| 43 | - * @param {string} constantName the constant name | ||
| 44 | - * @param {any} value the constant value | ||
| 45 | - * @description adds a constant to the {@link NoosferoApp#angularModule} | ||
| 46 | - */ | ||
| 47 | - static addConstants(constantName: string, value: any) { | ||
| 48 | - NoosferoApp.angularModule.constant(constantName, value); | ||
| 49 | - } | ||
| 50 | - | ||
| 51 | - /** | ||
| 52 | - * @ngdoc method | ||
| 53 | - * @name addService | ||
| 54 | - * @methodOf NoosferoApp | ||
| 55 | - * @param {string} serviceName the service name | ||
| 56 | - * @param {any} value the service value | ||
| 57 | - * @description adds a service to the {@link NoosferoApp#angularModule} | ||
| 58 | - */ | ||
| 59 | - static addService(serviceName: string, value: any) { | ||
| 60 | - NoosferoApp.angularModule.service(serviceName, value); | ||
| 61 | - } | ||
| 62 | - | ||
| 63 | - /** | ||
| 64 | - * @ngdoc method | ||
| 65 | - * @name addFactory | ||
| 66 | - * @methodOf NoosferoApp | ||
| 67 | - * @param {string} factoryName the factory name | ||
| 68 | - * @param {any} value the factory value | ||
| 69 | - * @description adds a factory to the {@link NoosferoApp#angularModule} | ||
| 70 | - */ | ||
| 71 | - static addFactory(factoryName: string, value: any) { | ||
| 72 | - NoosferoApp.angularModule.factory(factoryName, value); | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - /** | ||
| 76 | - * @ngdoc method | ||
| 77 | - * @name addController | ||
| 78 | - * @methodOf NoosferoApp | ||
| 79 | - * @param {string} controllerName the controller name | ||
| 80 | - * @param {any} value the controller value | ||
| 81 | - * @description adds a controller to the {@link NoosferoApp#angularModule} | ||
| 82 | - */ | ||
| 83 | - static addController(controllerName: string, value: any) { | ||
| 84 | - NoosferoApp.angularModule.controller(controllerName, value); | ||
| 85 | - } | ||
| 86 | - | ||
| 87 | - /** | ||
| 88 | - * @ngdoc method | ||
| 89 | - * @name run | ||
| 90 | - * @methodOf NoosferoApp | ||
| 91 | - * @param {Function} runFunction the function to execute | ||
| 92 | - * @description runs a function using the {@link NoosferoApp#angularModule} | ||
| 93 | - */ | ||
| 94 | - static run(runFunction: Function) { | ||
| 95 | - NoosferoApp.angularModule.run(runFunction); | ||
| 96 | - } | ||
| 97 | -} |
src/app/index.ts
| 1 | -import {NoosferoApp} from "./index.module"; | 1 | +import {bootstrap} from "ng-forward"; |
| 2 | import {noosferoModuleConfig} from "./index.config"; | 2 | import {noosferoModuleConfig} from "./index.config"; |
| 3 | import {noosferoAngularRunBlock} from "./index.run"; | 3 | import {noosferoAngularRunBlock} from "./index.run"; |
| 4 | - | ||
| 5 | import {MainComponent} from "./main/main.component"; | 4 | import {MainComponent} from "./main/main.component"; |
| 6 | -import {bootstrap, bundle} from "ng-forward"; | ||
| 7 | - | ||
| 8 | import {AuthEvents} from "./login/auth-events"; | 5 | import {AuthEvents} from "./login/auth-events"; |
| 9 | -import {AuthController} from "./login/auth.controller"; | ||
| 10 | - | ||
| 11 | -import {Navbar} from "./layout/navbar/navbar"; | ||
| 12 | 6 | ||
| 13 | declare var moment: any; | 7 | declare var moment: any; |
| 14 | 8 | ||
| 15 | -let noosferoApp: any = bundle("noosferoApp", MainComponent, ["ngAnimate", "ngCookies", "ngStorage", "ngTouch", | ||
| 16 | - "ngSanitize", "ngMessages", "ngAria", "restangular", | ||
| 17 | - "ui.router", "ui.bootstrap", "toastr", "ngCkeditor", | ||
| 18 | - "angular-bind-html-compile", "angularMoment", "angular.filter", "akoenig.deckgrid", | ||
| 19 | - "angular-timeline", "duScroll", "oitozero.ngSweetAlert", | ||
| 20 | - "pascalprecht.translate", "tmh.dynamicLocale", "angularLoad", | ||
| 21 | - "angular-click-outside"]).publish(); | ||
| 22 | - | ||
| 23 | -NoosferoApp.angularModule = noosferoApp; | ||
| 24 | - | ||
| 25 | - | ||
| 26 | -NoosferoApp.addConstants("moment", moment); | ||
| 27 | -NoosferoApp.addConstants("AuthEvents", AuthEvents); | ||
| 28 | - | ||
| 29 | -NoosferoApp.addConfig(noosferoModuleConfig); | ||
| 30 | -NoosferoApp.run(noosferoAngularRunBlock); | 9 | +angular.module('noosfero.init', []).config(noosferoModuleConfig). |
| 10 | + run(noosferoAngularRunBlock). | ||
| 11 | + constant("moment", moment). | ||
| 12 | + constant("AuthEvents", AuthEvents); | ||
| 13 | +bootstrap(MainComponent); |
src/app/layout/blocks/main/main-block.component.spec.ts
| 1 | import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder'; | 1 | import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder'; |
| 2 | import {Input, provide, Component, StateConfig} from 'ng-forward'; | 2 | import {Input, provide, Component, StateConfig} from 'ng-forward'; |
| 3 | - | ||
| 4 | import {MainBlockComponent} from './main-block.component'; | 3 | import {MainBlockComponent} from './main-block.component'; |
| 5 | -import {NoosferoApp} from '../../../index.module'; | 4 | + |
| 6 | 5 | ||
| 7 | const tcb = new TestComponentBuilder(); | 6 | const tcb = new TestComponentBuilder(); |
| 8 | 7 | ||
| @@ -37,4 +36,4 @@ describe("Components", () => { | @@ -37,4 +36,4 @@ describe("Components", () => { | ||
| 37 | }); | 36 | }); |
| 38 | }); | 37 | }); |
| 39 | }); | 38 | }); |
| 40 | -}); | ||
| 41 | \ No newline at end of file | 39 | \ No newline at end of file |
| 40 | +}); |
src/app/login/auth.service.spec.ts
| @@ -17,7 +17,7 @@ describe("Services", () => { | @@ -17,7 +17,7 @@ describe("Services", () => { | ||
| 17 | let $rootScope: ng.IRootScopeService; | 17 | let $rootScope: ng.IRootScopeService; |
| 18 | let user: noosfero.User; | 18 | let user: noosfero.User; |
| 19 | 19 | ||
| 20 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 20 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 21 | $translateProvider.translations('en', {}); | 21 | $translateProvider.translations('en', {}); |
| 22 | })); | 22 | })); |
| 23 | 23 |
src/app/main/main.component.spec.ts
| 1 | - | ||
| 2 | import { provide, Component, componentStore, bundleStore } from "ng-forward"; | 1 | import { provide, Component, componentStore, bundleStore } from "ng-forward"; |
| 3 | import {MainComponent} from "./main.component"; | 2 | import {MainComponent} from "./main.component"; |
| 4 | import {TestComponentBuilder, ComponentFixture} from "ng-forward/cjs/testing/test-component-builder"; | 3 | import {TestComponentBuilder, ComponentFixture} from "ng-forward/cjs/testing/test-component-builder"; |
| 5 | 4 | ||
| 6 | -import {quickCreateComponent} from "./../../spec/helpers"; | 5 | +import {quickCreateComponent} from "../../spec/helpers"; |
| 6 | +import {getAngularServiceFactory} from "../../spec/helpers"; | ||
| 7 | 7 | ||
| 8 | -describe("MainComponent", function () { | 8 | +describe("MainComponent", function() { |
| 9 | 9 | ||
| 10 | let localFixture: ComponentFixture; | 10 | let localFixture: ComponentFixture; |
| 11 | let $state: angular.ui.IStateService; | 11 | let $state: angular.ui.IStateService; |
| 12 | let $q: ng.IQService; | 12 | let $q: ng.IQService; |
| 13 | - let authService: any = jasmine.createSpyObj("authService", ["loginFromCookie"]); | ||
| 14 | - let environmentService: any = jasmine.createSpyObj("environmentService", ["get"]); | 13 | + let $httpBackend: ng.IHttpBackendService; |
| 14 | + let authService: any = jasmine.createSpyObj("authService", ["loginFromCookie", "isAuthenticated", "subscribe"]); | ||
| 15 | + let environmentService: any = jasmine.createSpyObj("environmentService", ["get", "getCurrentEnvironment"]); | ||
| 15 | 16 | ||
| 16 | beforeEach(angular.mock.module("ui.router")); | 17 | beforeEach(angular.mock.module("ui.router")); |
| 17 | beforeEach(angular.mock.module("templates")); | 18 | beforeEach(angular.mock.module("templates")); |
| 19 | + beforeEach(angular.mock.module("pascalprecht.translate", ($translateProvider: angular.translate.ITranslateProvider) => { | ||
| 20 | + $translateProvider.translations('en', {}); | ||
| 21 | + })); | ||
| 18 | 22 | ||
| 19 | @Component({ | 23 | @Component({ |
| 20 | selector: "parent", | 24 | selector: "parent", |
| @@ -46,6 +50,7 @@ describe("MainComponent", function () { | @@ -46,6 +50,7 @@ describe("MainComponent", function () { | ||
| 46 | it("renders the main component only when the login and environment were resolved", (done) => { | 50 | it("renders the main component only when the login and environment were resolved", (done) => { |
| 47 | quickCreateComponent({ directives: [MainComponentParent], template: "<parent></parent>" }) | 51 | quickCreateComponent({ directives: [MainComponentParent], template: "<parent></parent>" }) |
| 48 | .then((fixture) => { | 52 | .then((fixture) => { |
| 53 | + fixture.debugElement.getLocal("$httpBackend").expectGET("/api/v1/environments/1/boxes").respond(200, {}); | ||
| 49 | localFixture = fixture; | 54 | localFixture = fixture; |
| 50 | // get the $state service to navigate between routes | 55 | // get the $state service to navigate between routes |
| 51 | $state = fixture.debugElement.getLocal("$state"); | 56 | $state = fixture.debugElement.getLocal("$state"); |
src/app/main/main.component.ts
| @@ -93,17 +93,23 @@ export class EnvironmentContent { | @@ -93,17 +93,23 @@ export class EnvironmentContent { | ||
| 93 | */ | 93 | */ |
| 94 | @Component({ | 94 | @Component({ |
| 95 | selector: 'main', | 95 | selector: 'main', |
| 96 | - template: '<div ng-view></div>', | 96 | + template: '<ui-view></ui-view>', |
| 97 | directives: [ | 97 | directives: [ |
| 98 | ArticleBlogComponent, ArticleViewComponent, BoxesComponent, BlockComponent, | 98 | ArticleBlogComponent, ArticleViewComponent, BoxesComponent, BlockComponent, |
| 99 | EnvironmentComponent, PeopleBlockComponent, DisplayContentBlockComponent, | 99 | EnvironmentComponent, PeopleBlockComponent, DisplayContentBlockComponent, |
| 100 | - LinkListBlockComponent, CommunitiesBlockComponent, HtmlEditorComponent, | 100 | + LinkListBlockComponent, CommunitiesBlockComponent, HtmlEditorComponent, ProfileComponent, |
| 101 | MainBlockComponent, RecentDocumentsBlockComponent, Navbar, SidebarComponent, ProfileImageBlockComponent, | 101 | MainBlockComponent, RecentDocumentsBlockComponent, Navbar, SidebarComponent, ProfileImageBlockComponent, |
| 102 | MembersBlockComponent, NoosferoTemplate, DateFormat, RawHTMLBlockComponent, StatisticsBlockComponent, | 102 | MembersBlockComponent, NoosferoTemplate, DateFormat, RawHTMLBlockComponent, StatisticsBlockComponent, |
| 103 | LoginBlockComponent, CustomContentComponent, PermissionDirective | 103 | LoginBlockComponent, CustomContentComponent, PermissionDirective |
| 104 | ].concat(plugins.mainComponents).concat(plugins.hotspots), | 104 | ].concat(plugins.mainComponents).concat(plugins.hotspots), |
| 105 | - | ||
| 106 | - providers: [AuthService, SessionService, NotificationService, BodyStateClassesService] | 105 | + providers: [AuthService, SessionService, NotificationService, BodyStateClassesService, |
| 106 | + "ngAnimate", "ngCookies", "ngStorage", "ngTouch", | ||
| 107 | + "ngSanitize", "ngMessages", "ngAria", "restangular", | ||
| 108 | + "ui.router", "ui.bootstrap", "toastr", "ngCkeditor", | ||
| 109 | + "angular-bind-html-compile", "angularMoment", "angular.filter", "akoenig.deckgrid", | ||
| 110 | + "angular-timeline", "duScroll", "oitozero.ngSweetAlert", | ||
| 111 | + "pascalprecht.translate", "tmh.dynamicLocale", "angularLoad", | ||
| 112 | + "angular-click-outside", "noosfero.init"] | ||
| 107 | }) | 113 | }) |
| 108 | @StateConfig([ | 114 | @StateConfig([ |
| 109 | { | 115 | { |
| @@ -147,5 +153,4 @@ export class EnvironmentContent { | @@ -147,5 +153,4 @@ export class EnvironmentContent { | ||
| 147 | } | 153 | } |
| 148 | } | 154 | } |
| 149 | ]) | 155 | ]) |
| 150 | -export class MainComponent { | ||
| 151 | -} | 156 | +export class MainComponent { } |
src/index.html
| 1 | <!doctype html> | 1 | <!doctype html> |
| 2 | -<html ng-app="noosferoApp"> | 2 | +<html> |
| 3 | <head> | 3 | <head> |
| 4 | <base href="/"> | 4 | <base href="/"> |
| 5 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
| @@ -25,7 +25,7 @@ | @@ -25,7 +25,7 @@ | ||
| 25 | <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | 25 | <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> |
| 26 | <![endif]--> | 26 | <![endif]--> |
| 27 | 27 | ||
| 28 | - <div ui-view></div> | 28 | + <main></main> |
| 29 | 29 | ||
| 30 | <script> | 30 | <script> |
| 31 | CKEDITOR_BASEPATH='/bower_components/ng-ckeditor/libs/ckeditor/'; | 31 | CKEDITOR_BASEPATH='/bower_components/ng-ckeditor/libs/ckeditor/'; |
src/lib/ng-noosfero-api/http/article.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let $httpBackend: ng.IHttpBackendService; | 8 | let $httpBackend: ng.IHttpBackendService; |
| 9 | let articleService: ArticleService; | 9 | let articleService: ArticleService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |
src/lib/ng-noosfero-api/http/block.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let $httpBackend: ng.IHttpBackendService; | 8 | let $httpBackend: ng.IHttpBackendService; |
| 9 | let blockService: BlockService; | 9 | let blockService: BlockService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |
src/lib/ng-noosfero-api/http/comment.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let $httpBackend: ng.IHttpBackendService; | 8 | let $httpBackend: ng.IHttpBackendService; |
| 9 | let commentService: CommentService; | 9 | let commentService: CommentService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |
src/lib/ng-noosfero-api/http/community.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let $httpBackend: ng.IHttpBackendService; | 8 | let $httpBackend: ng.IHttpBackendService; |
| 9 | let communityService: CommunityService; | 9 | let communityService: CommunityService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |
src/lib/ng-noosfero-api/http/profile.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let profileService: ProfileService; | 8 | let profileService: ProfileService; |
| 9 | let $rootScope: ng.IRootScopeService; | 9 | let $rootScope: ng.IRootScopeService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |
src/lib/ng-noosfero-api/http/restangular_service.spec.ts
| @@ -40,7 +40,7 @@ describe("Restangular Service - base Class", () => { | @@ -40,7 +40,7 @@ describe("Restangular Service - base Class", () => { | ||
| 40 | let objectRestService: ObjectRestService; | 40 | let objectRestService: ObjectRestService; |
| 41 | let rootObjectRestService: RootObjectRestService; | 41 | let rootObjectRestService: RootObjectRestService; |
| 42 | 42 | ||
| 43 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 43 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 44 | $translateProvider.translations('en', {}); | 44 | $translateProvider.translations('en', {}); |
| 45 | })); | 45 | })); |
| 46 | 46 |
src/plugins/comment_paragraph/http/comment-paragraph.service.spec.ts
| @@ -8,7 +8,7 @@ describe("Services", () => { | @@ -8,7 +8,7 @@ describe("Services", () => { | ||
| 8 | let $httpBackend: ng.IHttpBackendService; | 8 | let $httpBackend: ng.IHttpBackendService; |
| 9 | let commentParagraphService: CommentParagraphService; | 9 | let commentParagraphService: CommentParagraphService; |
| 10 | 10 | ||
| 11 | - beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | 11 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { |
| 12 | $translateProvider.translations('en', {}); | 12 | $translateProvider.translations('en', {}); |
| 13 | })); | 13 | })); |
| 14 | 14 |