Commit da67cdbb8afc6ed5bc3f9f6845494cb2c643b2d0
Exists in
master
and in
33 other branches
Merge branch 'ngforward' of softwarepublico.gov.br:noosfero-themes/angular-theme into ngforward
Showing
13 changed files
with
70 additions
and
25 deletions
Show diff stats
bower.json
... | ... | @@ -27,7 +27,10 @@ |
27 | 27 | "angular-timeline": "~1.6.2", |
28 | 28 | "angular-scroll": "~1.0.0", |
29 | 29 | "ngSweetAlert": "angular-sweetalert#~1.1.0", |
30 | - "angular-mocks": "^1.5.0" | |
30 | + "angular-mocks": "^1.5.0", | |
31 | + "angular-translate": "^2.10.0", | |
32 | + "angular-translate-loader-static-files": "^2.10.0", | |
33 | + "angular-translate-handler-log": "^2.10.0" | |
31 | 34 | }, |
32 | 35 | "devDependencies": { |
33 | 36 | "angular-mocks": "~1.5.0" | ... | ... |
src/app/components/auth/auth_service.spec.ts
... | ... | @@ -14,7 +14,9 @@ describe("Services", () => { |
14 | 14 | let $rootScope: ng.IRootScopeService; |
15 | 15 | let user: User; |
16 | 16 | |
17 | - beforeEach(angular.mock.module("noosferoApp")); | |
17 | + beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | |
18 | + $translateProvider.translations('en', {}); | |
19 | + })); | |
18 | 20 | |
19 | 21 | beforeEach(inject((_$httpBackend_: ng.IHttpBackendService, _$rootScope_: ng.IRootScopeService, _AuthService_: AuthService) => { |
20 | 22 | $httpBackend = _$httpBackend_; |
... | ... | @@ -77,4 +79,4 @@ describe("Services", () => { |
77 | 79 | |
78 | 80 | |
79 | 81 | }); |
80 | -}); | |
81 | 82 | \ No newline at end of file |
83 | +}); | ... | ... |
src/app/components/navbar/navbar.html
... | ... | @@ -8,7 +8,7 @@ |
8 | 8 | <span class="icon-bar"></span> |
9 | 9 | </button> |
10 | 10 | <a class="navbar-brand" ui-sref="main"> |
11 | - <span class="noosfero-logo"><img src="assets/images/logo-noosfero.png"></span> Noosfero | |
11 | + <span class="noosfero-logo"><img src="assets/images/logo-noosfero.png"></span> {{"noosfero.name" | translate}} | |
12 | 12 | </a> |
13 | 13 | </div> |
14 | 14 | |
... | ... | @@ -18,7 +18,7 @@ |
18 | 18 | |
19 | 19 | <ul class="nav navbar-nav navbar-right"> |
20 | 20 | <li ng-show="!ctrl.currentUser"> |
21 | - <a ng-href="#" ng-click="ctrl.openLogin()">Login</a> | |
21 | + <a ng-href="#" ng-click="ctrl.openLogin()">{{"navbar.login" | translate}}</a> | |
22 | 22 | </li> |
23 | 23 | |
24 | 24 | <li class="dropdown profile-menu" ng-show="ctrl.currentUser" dropdown> |
... | ... | @@ -28,14 +28,14 @@ |
28 | 28 | </a> |
29 | 29 | <ul class="dropdown-menu" dropdown-menu> |
30 | 30 | <li> |
31 | - <a ui-sref="main.profile.info({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-user"></i> Profile</a> | |
31 | + <a ui-sref="main.profile.info({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-user"></i> {{"navbar.profile" | translate}}</a> | |
32 | 32 | </li> |
33 | 33 | <li> |
34 | - <a target="_self" ui-sref="main.profile.settings({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-gear"></i> Settings</a> | |
34 | + <a target="_self" ui-sref="main.profile.settings({profile: ctrl.currentUser.person.identifier})"><i class="fa fa-fw fa-gear"></i> {{"navbar.settings" | translate}}</a> | |
35 | 35 | </li> |
36 | 36 | <li class="divider"></li> |
37 | 37 | <li> |
38 | - <a href="#" ng-click="ctrl.logout()"><i class="fa fa-fw fa-power-off"></i> Log Out</a> | |
38 | + <a href="#" ng-click="ctrl.logout()"><i class="fa fa-fw fa-power-off"></i> {{"navbar.logout" | translate}}</a> | |
39 | 39 | </li> |
40 | 40 | </ul> |
41 | 41 | </li> | ... | ... |
src/app/components/navbar/navbar.spec.ts
... | ... | @@ -72,7 +72,7 @@ describe("Components", () => { |
72 | 72 | AUTH_EVENTS |
73 | 73 | } |
74 | 74 | }) |
75 | - ], | |
75 | + ].concat(helpers.provideFilters("translateFilter")), | |
76 | 76 | directives: [Navbar], |
77 | 77 | template: '<acme-navbar></acme-navbar>' |
78 | 78 | }); |
... | ... | @@ -182,4 +182,4 @@ describe("Components", () => { |
182 | 182 | |
183 | 183 | |
184 | 184 | }); |
185 | -}); | |
186 | 185 | \ No newline at end of file |
186 | +}); | ... | ... |
src/app/components/noosfero-blocks/profile-image-block/profile-image-block.component.spec.ts
... | ... | @@ -10,22 +10,23 @@ const tcb = new TestComponentBuilder(); |
10 | 10 | const htmlTemplate: string = '<noosfero-profile-image-block [block]="ctrl.block" [owner]="ctrl.owner"></noosfero-profile-image-block>'; |
11 | 11 | |
12 | 12 | describe("Components", () => { |
13 | - | |
13 | + | |
14 | 14 | describe("Profile Image Block Component", () => { |
15 | 15 | |
16 | 16 | beforeEach(angular.mock.module("templates")); |
17 | - | |
17 | + | |
18 | 18 | @Component({ |
19 | 19 | selector: 'test-container-component', |
20 | 20 | template: htmlTemplate, |
21 | - directives: [ProfileImageBlock] | |
22 | - }) | |
21 | + directives: [ProfileImageBlock], | |
22 | + providers: helpers.provideFilters("translateFilter") | |
23 | + }) | |
23 | 24 | class BlockContainerComponent { |
24 | 25 | block = { type: 'Block' }; |
25 | 26 | owner = { name: 'profile-name' }; |
26 | 27 | constructor() { |
27 | 28 | } |
28 | - } | |
29 | + } | |
29 | 30 | |
30 | 31 | it("show image if present", () => { |
31 | 32 | helpers.tcb.createAsync(BlockContainerComponent).then(fixture => { |
... | ... | @@ -33,13 +34,13 @@ describe("Components", () => { |
33 | 34 | expect(elProfile.query('div.profile-image-block').length).toEqual(1); |
34 | 35 | }); |
35 | 36 | }); |
36 | - | |
37 | + | |
37 | 38 | it("has link to the profile", () => { |
38 | 39 | helpers.tcb.createAsync(BlockContainerComponent).then(fixture => { |
39 | 40 | var elProfile = fixture.debugElement.componentViewChildren[0]; |
40 | 41 | expect(elProfile.query('a.settings-link').length).toEqual(1); |
41 | - }); | |
42 | + }); | |
42 | 43 | }); |
43 | - | |
44 | + | |
44 | 45 | }); |
45 | -}); | |
46 | 46 | \ No newline at end of file |
47 | +}); | ... | ... |
src/app/components/noosfero-blocks/profile-image-block/profile-image-block.html
... | ... | @@ -2,5 +2,5 @@ |
2 | 2 | <a ui-sref="main.profile.info({profile: ctrl.owner.identifier})"> |
3 | 3 | <noosfero-profile-image [profile]="ctrl.owner"></noosfero-profile-image> |
4 | 4 | </a> |
5 | - <a class="settings-link" target="_self" ui-sref="main.profile.settings({profile: ctrl.owner.identifier})">Control panel</a> | |
5 | + <a class="settings-link" target="_self" ui-sref="main.profile.settings({profile: ctrl.owner.identifier})">{{"blocks.profile_image.control_panel" | translate}}</a> | |
6 | 6 | </div> | ... | ... |
src/app/index.config.ts
1 | 1 | |
2 | 2 | /** @ngInject */ |
3 | -export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationProvider: ng.ILocationProvider, RestangularProvider: restangular.IProvider, $httpProvider: ng.IHttpProvider, $provide: ng.auto.IProvideService) { | |
3 | +export function noosferoModuleConfig($logProvider: ng.ILogProvider, | |
4 | + $locationProvider: ng.ILocationProvider, | |
5 | + RestangularProvider: restangular.IProvider, | |
6 | + $httpProvider: ng.IHttpProvider, | |
7 | + $provide: ng.auto.IProvideService, | |
8 | + $translateProvider: angular.translate.ITranslateProvider) { | |
9 | + | |
4 | 10 | $logProvider.debugEnabled(true); |
5 | 11 | $locationProvider.html5Mode({ enabled: true }); |
6 | 12 | RestangularProvider.setBaseUrl("/api/v1"); |
... | ... | @@ -14,4 +20,15 @@ export function noosferoModuleConfig($logProvider: ng.ILogProvider, $locationPro |
14 | 20 | $document.scrollToElementAnimated(uiViewElement); |
15 | 21 | }; |
16 | 22 | }); |
17 | -} | |
18 | 23 | \ No newline at end of file |
24 | + configTranslation($translateProvider); | |
25 | +} | |
26 | + | |
27 | +function configTranslation($translateProvider: angular.translate.ITranslateProvider) { | |
28 | + $translateProvider.useStaticFilesLoader({ | |
29 | + prefix: '/languages/', | |
30 | + suffix: '.json' | |
31 | + }); | |
32 | + $translateProvider.useMissingTranslationHandlerLog(); | |
33 | + $translateProvider.preferredLanguage('en'); | |
34 | + $translateProvider.useSanitizeValueStrategy('escape'); | |
35 | +} | ... | ... |
src/app/index.ts
... | ... | @@ -17,7 +17,8 @@ let noosferoApp: any = bundle("noosferoApp", Main, ["ngAnimate", "ngCookies", "n |
17 | 17 | "ngSanitize", "ngMessages", "ngAria", "restangular", |
18 | 18 | "ui.router", "ui.bootstrap", "toastr", |
19 | 19 | "angularMoment", "angular.filter", "akoenig.deckgrid", |
20 | - "angular-timeline", "duScroll", "oitozero.ngSweetAlert"]).publish(); | |
20 | + "angular-timeline", "duScroll", "oitozero.ngSweetAlert", | |
21 | + "pascalprecht.translate"]).publish(); | |
21 | 22 | |
22 | 23 | NoosferoApp.angularModule = noosferoApp; |
23 | 24 | ... | ... |
src/lib/ng-noosfero-api/http/article.service.spec.ts
... | ... | @@ -9,7 +9,9 @@ describe("Services", () => { |
9 | 9 | let $httpBackend: ng.IHttpBackendService; |
10 | 10 | let articleService: ArticleService; |
11 | 11 | |
12 | - beforeEach(angular.mock.module("noosferoApp")); | |
12 | + beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | |
13 | + $translateProvider.translations('en', {}); | |
14 | + })); | |
13 | 15 | |
14 | 16 | beforeEach(inject((_$httpBackend_: ng.IHttpBackendService, _ArticleService_: ArticleService) => { |
15 | 17 | $httpBackend = _$httpBackend_; | ... | ... |
src/lib/ng-noosfero-api/http/profile.service.spec.ts
... | ... | @@ -9,7 +9,9 @@ describe("Services", () => { |
9 | 9 | let profileService: ProfileService; |
10 | 10 | let $rootScope: ng.IRootScopeService; |
11 | 11 | |
12 | - beforeEach(angular.mock.module("noosferoApp")); | |
12 | + beforeEach(angular.mock.module("noosferoApp", ($translateProvider: angular.translate.ITranslateProvider) => { | |
13 | + $translateProvider.translations('en', {}); | |
14 | + })); | |
13 | 15 | |
14 | 16 | beforeEach(inject((_$httpBackend_: ng.IHttpBackendService, _ProfileService_: ProfileService, _$rootScope_: ng.IRootScopeService) => { |
15 | 17 | $httpBackend = _$httpBackend_; | ... | ... |
typings.json
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 | "ambientDependencies": { |
6 | 6 | "angular": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular.d.ts#1c4a34873c9e70cce86edd0e61c559e43dfa5f75", |
7 | 7 | "angular-mocks": "github:DefinitelyTyped/DefinitelyTyped/angularjs/angular-mocks.d.ts", |
8 | + "angular-translate": "github:DefinitelyTyped/DefinitelyTyped/angular-translate/angular-translate.d.ts#19850bf86c876e0c2544842114878ece4664941a", | |
8 | 9 | "angular-ui-router": "github:DefinitelyTyped/DefinitelyTyped/angular-ui-router/angular-ui-router.d.ts#655f8c1bf3c71b0e1ba415b36309604f79326ac8", |
9 | 10 | "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#4de74cb527395c13ba20b438c3a7a419ad931f1c", |
10 | 11 | "jasmine": "github:DefinitelyTyped/DefinitelyTyped/jasmine/jasmine.d.ts#dd638012d63e069f2c99d06ef4dcc9616a943ee4", | ... | ... |