diff --git a/src/app/app.component.html b/src/app/app.component.html index 20c39afb..77174d93 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -2,4 +2,6 @@ + + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index fc19909c..dfd96dda 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -20,6 +20,7 @@ import { AboutComponent } from './components/about/about.component'; import { ContributeProjectComponent } from './components/contribute-project/contribute-project.component'; import { HeaderComponent } from './components/header/header.component'; import { FooterComponent } from './components/footer/footer.component'; +import { CookieConsentComponent } from './components/cookieconsent/cookieconsent.component'; import { FormComponent as BookFormComponent } from './components/book/form/form.component'; import { DetailsComponent as BookDetailComponent } from './components/book/details/details.component'; import { RegisterComponent } from './components/register/register.component'; @@ -51,7 +52,11 @@ import { ListComponent } from './components/book/list/list.component'; import { DonateComponent } from './components/book/donate/donate.component'; import { Ng2SmartTableModule } from 'ng2-smart-table'; import { NgbModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; -import { RecaptchaModule, RECAPTCHA_SETTINGS, RecaptchaSettings } from 'ng-recaptcha'; +import { + RecaptchaModule, + RECAPTCHA_SETTINGS, + RecaptchaSettings, +} from 'ng-recaptcha'; import { RecaptchaFormsModule } from 'ng-recaptcha/forms'; import { NgxMaskModule } from 'ngx-mask'; import { RequestComponent } from './components/book/request/request.component'; @@ -95,7 +100,8 @@ import { DonatePageComponent } from './components/book/donate-page/donate-page.c TrackingComponent, FacilitatorNotesComponent, MainUsersComponent, - PrivacyPolicyComponent + PrivacyPolicyComponent, + CookieConsentComponent, ], imports: [ BrowserModule, @@ -114,7 +120,7 @@ import { DonatePageComponent } from './components/book/donate-page/donate-page.c NgxMaskModule.forRoot(), InputSearchModule, BrowserAnimationsModule, - ToastrModule.forRoot() + ToastrModule.forRoot(), ], providers: [ AuthGuardUser, @@ -130,10 +136,12 @@ import { DonatePageComponent } from './components/book/donate-page/donate-page.c { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }, { provide: RECAPTCHA_SETTINGS, - useValue: { siteKey: '6LcxaXAUAAAAAGM8zgwQvgMuykwiBPgMr0P7sNL3' } as RecaptchaSettings + useValue: { + siteKey: '6LcxaXAUAAAAAGM8zgwQvgMuykwiBPgMr0P7sNL3', + } as RecaptchaSettings, }, { provide: RouteReuseStrategy, useClass: CustomReuseStrategy }, - AuthGuardAdmin + AuthGuardAdmin, // provider used to create fake backend // fakeBackendProvider ], @@ -143,9 +151,9 @@ import { DonatePageComponent } from './components/book/donate-page/donate-page.c ConfirmationDialogComponent, TrackingComponent, FacilitatorNotesComponent, - MainUsersComponent + MainUsersComponent, ], - bootstrap: [AppComponent] + bootstrap: [AppComponent], }) export class AppModule { constructor(protected _googleAnalyticsService: GoogleAnalyticsService) {} // <-- We inject the service here to keep it alive whole time diff --git a/src/app/components/cookieconsent/cookieconsent.component.html b/src/app/components/cookieconsent/cookieconsent.component.html new file mode 100644 index 00000000..25a0f26c --- /dev/null +++ b/src/app/components/cookieconsent/cookieconsent.component.html @@ -0,0 +1,7 @@ +
+ {{consent.text}}{{consent.link}} +
+ + +
+
diff --git a/src/app/components/cookieconsent/cookieconsent.component.scss b/src/app/components/cookieconsent/cookieconsent.component.scss new file mode 100644 index 00000000..885eeebc --- /dev/null +++ b/src/app/components/cookieconsent/cookieconsent.component.scss @@ -0,0 +1,50 @@ +.cookieconsent { + position: fixed; + z-index: 9999; + background: #f0f0f0; + width: 100%; + bottom: 0; + height: 160px; + display: flex; + align-items: center; + justify-content: space-evenly; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-direction: column; + span { + font-size: 1.1rem; + padding: 0 10px; + } + a { + color: #676767; + margin-left: 5px; + font-weight: bold; + cursor: pointer; + text-decoration: underline; + font-size: 1.1rem; + } + div { + width: 100%; + display: flex; + justify-content: space-evenly; + .btnaccept { + border: none; + padding: 10px 15px; + background: #444; + color: #fff; + margin-right: 25px; + outline: none; + border-radius: 0.25rem; + } + .btnclose { + background: none; + color: #444; + border: none; + outline: none; + } + } +} diff --git a/src/app/components/cookieconsent/cookieconsent.component.spec.ts b/src/app/components/cookieconsent/cookieconsent.component.spec.ts new file mode 100644 index 00000000..6613f1a8 --- /dev/null +++ b/src/app/components/cookieconsent/cookieconsent.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CookieconsentComponent } from './cookieconsent.component'; + +describe('CookieconsentComponent', () => { + let component: CookieconsentComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CookieconsentComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CookieconsentComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/cookieconsent/cookieconsent.component.ts b/src/app/components/cookieconsent/cookieconsent.component.ts new file mode 100644 index 00000000..ee573869 --- /dev/null +++ b/src/app/components/cookieconsent/cookieconsent.component.ts @@ -0,0 +1,35 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-cookie-consent', + templateUrl: './cookieconsent.component.html', + styleUrls: ['./cookieconsent.component.scss'], +}) +export class CookieConsentComponent implements OnInit { + public consent: any = { + text: + 'Esse site salva cookies para uma melhor experiência de usuário. Saiba mais lendo nossa', + link: 'Política de Privacidade.', + accept: 'Quero continuar', + close: 'Fechar', + }; + public consentHide: any = + localStorage.getItem('cookieconsent_status') == null + ? false + : localStorage.getItem('cookieconsent_status'); + constructor() {} + + ngOnInit() {} + + public consentUser(decision) { + switch (decision) { + case true: + localStorage.setItem('cookieconsent_status', 'true'); + this.consentHide = true; + break; + default: + this.consentHide = true; + break; + } + } +}