From a58bade1d3ac8cf9e7209af6b45b4ced4f2e13ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2020 00:59:57 +0000 Subject: [PATCH 01/24] Bump websocket-extensions from 0.1.3 to 0.1.4 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a8a7a214..90d4fe20 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10804,9 +10804,9 @@ } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "webworkify": { From 3c7c89ebbb2886ea99f8880a2e5681ce4ec152ce Mon Sep 17 00:00:00 2001 From: Jordan Gabriel Date: Tue, 13 Oct 2020 20:45:51 -0300 Subject: [PATCH 02/24] Termo de uso --- src/app/app.module.ts | 2 + .../components/footer/footer.component.html | 3 + .../register/register.component.html | 40 +++--- .../components/register/register.component.ts | 63 ++++----- .../term-of-use/term-of-use.component.css | 0 .../term-of-use/term-of-use.component.html | 124 ++++++++++++++++++ .../term-of-use/term-of-use.component.spec.ts | 25 ++++ .../term-of-use/term-of-use.component.ts | 15 +++ src/app/core/app-routing.module.ts | 10 +- 9 files changed, 226 insertions(+), 56 deletions(-) create mode 100644 src/app/components/term-of-use/term-of-use.component.css create mode 100644 src/app/components/term-of-use/term-of-use.component.html create mode 100644 src/app/components/term-of-use/term-of-use.component.spec.ts create mode 100644 src/app/components/term-of-use/term-of-use.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index dfd96dda..88e67d0b 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -70,6 +70,7 @@ import { RouteReuseStrategy } from '@angular/router'; import { CustomReuseStrategy } from './core/router/custom-reuse-strategy'; import { InputSearchModule } from './components/input-search/input-search.module'; import { DonatePageComponent } from './components/book/donate-page/donate-page.component'; +import { TermOfUseComponent } from './components/term-of-use/term-of-use.component'; @NgModule({ declarations: [ @@ -102,6 +103,7 @@ import { DonatePageComponent } from './components/book/donate-page/donate-page.c MainUsersComponent, PrivacyPolicyComponent, CookieConsentComponent, + TermOfUseComponent, ], imports: [ BrowserModule, diff --git a/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html index 5e48af03..05a08e1d 100644 --- a/src/app/components/footer/footer.component.html +++ b/src/app/components/footer/footer.component.html @@ -34,6 +34,9 @@
Páginas
  • Política de privacidade
  • +
  • + Termo de uso +
  • diff --git a/src/app/components/register/register.component.html b/src/app/components/register/register.component.html index b0bcf902..0c8c1692 100644 --- a/src/app/components/register/register.component.html +++ b/src/app/components/register/register.component.html @@ -87,13 +87,8 @@

    Registro

    - +
    @@ -129,14 +124,8 @@

    Registro

    - +
    @@ -269,19 +258,24 @@

    Registro

    +
    +
    + + +
    +
    +
    - + Cancelar
    - + \ No newline at end of file diff --git a/src/app/components/register/register.component.ts b/src/app/components/register/register.component.ts index d61b8767..509842d7 100644 --- a/src/app/components/register/register.component.ts +++ b/src/app/components/register/register.component.ts @@ -48,34 +48,35 @@ export class RegisterComponent implements OnInit, OnDestroy { city: ['', [Validators.required]], state: ['', [Validators.required]], country: ['', [Validators.required]], - allowSendingEmail: [true, null] + allowSendingEmail: [true, null], + aceptTermOfUse: [true, null], }, { validator: PasswordValidation.MatchPassword }); } - ngOnInit() {} + ngOnInit() { } registerUser() { if (this.formGroup.valid) { this._scUser.register(this.formGroup.value) - .pipe( - takeUntil(this._destroySubscribes$) - ) - .subscribe( - data => { - if (data.success || data.authenticated) { - this._toastr.success('Registro realizado com sucesso'); - this._router.navigate(['/']); - } else { - this._toastr.error(data.messages[0]); + .pipe( + takeUntil(this._destroySubscribes$) + ) + .subscribe( + data => { + if (data.success || data.authenticated) { + this._toastr.success('Registro realizado com sucesso'); + this._router.navigate(['/']); + } else { + this._toastr.error(data.messages[0]); + } + }, + error => { + this._toastr.error(error); } - }, - error => { - this._toastr.error(error); - } - ); + ); } } @@ -83,20 +84,20 @@ export class RegisterComponent implements OnInit, OnDestroy { this.isGettingAddress = true; this._AddressService.getAddressByPostalCode(postalCode) - .pipe( - takeUntil(this._destroySubscribes$) - ) - .subscribe((address: Address) => { - this.address = address; - this.address.country = 'Brasil'; - this.formGroup.controls['street'].setValue(this.address.street.substring(0, 80)); - this.formGroup.controls['complement'].setValue(this.address.complement.substring(0, 50)); - this.formGroup.controls['neighborhood'].setValue(this.address.neighborhood.substring(0, 50)); - this.formGroup.controls['city'].setValue(this.address.city.substring(0, 50)); - this.formGroup.controls['state'].setValue(this.address.state.substring(0, 30)); - this.formGroup.controls['country'].setValue(this.address.country.substring(0, 50)); - this.isGettingAddress = false; - }); + .pipe( + takeUntil(this._destroySubscribes$) + ) + .subscribe((address: Address) => { + this.address = address; + this.address.country = 'Brasil'; + this.formGroup.controls['street'].setValue(this.address.street.substring(0, 80)); + this.formGroup.controls['complement'].setValue(this.address.complement.substring(0, 50)); + this.formGroup.controls['neighborhood'].setValue(this.address.neighborhood.substring(0, 50)); + this.formGroup.controls['city'].setValue(this.address.city.substring(0, 50)); + this.formGroup.controls['state'].setValue(this.address.state.substring(0, 30)); + this.formGroup.controls['country'].setValue(this.address.country.substring(0, 50)); + this.isGettingAddress = false; + }); } ngOnDestroy() { diff --git a/src/app/components/term-of-use/term-of-use.component.css b/src/app/components/term-of-use/term-of-use.component.css new file mode 100644 index 00000000..e69de29b diff --git a/src/app/components/term-of-use/term-of-use.component.html b/src/app/components/term-of-use/term-of-use.component.html new file mode 100644 index 00000000..772bd108 --- /dev/null +++ b/src/app/components/term-of-use/term-of-use.component.html @@ -0,0 +1,124 @@ +
    +

    Termos de Uso

    + +

    1. Termos

    +

    + Ao acessar ao site Sharebook, concorda em cumprir estes termos de serviço, todas as leis e regulamentos aplicáveis + ​​e concorda que é responsável pelo cumprimento de todas as leis locais aplicáveis. Se você não concordar com algum + desses termos, está proibido de usar ou acessar este site. Os materiais contidos neste site são protegidos pelas + leis de direitos autorais e marcas comerciais aplicáveis. +

    + +

    + 2. Uso de Licença +

    +

    + É concedida permissão para baixar temporariamente uma cópia dos materiais (informações ou software) no site + Sharebook , apenas para visualização transitória pessoal e não comercial. Esta é a concessão de uma licença, não uma + transferência de título e, sob esta licença, você não pode: +

    +

    1 - Modificar ou copiar os materiais;

    +

    2 - Usar os materiais para qualquer finalidade comercial ou para exibição pública (comercial ou não comercial);

    +

    3 - Tentar descompilar ou fazer engenharia reversa de qualquer software contido no site Sharebook;

    +

    4 - Remover quaisquer direitos autorais ou outras notações de propriedade dos materiais;

    +

    5 - Transferir os materiais para outra pessoa ou 'espelhe' os materiais em qualquer outro servidor.

    +

    Esta licença será automaticamente rescindida se você violar alguma dessas restrições e poderá ser rescindida por + Sharebook a qualquer momento. Ao encerrar a visualização desses materiais ou após o término desta licença, você deve + apagar todos os materiais baixados em sua posse, seja em formato eletrónico ou impresso.

    + + +

    + 3. Isenção de responsabilidade +

    + +

    1 - Os materiais no site da Sharebook são fornecidos 'como estão'. Sharebook não oferece garantias, expressas ou + implícitas, e, por este meio, isenta e nega todas as outras garantias, incluindo, sem limitação, garantias + implícitas ou condições de comercialização, adequação a um fim específico ou não violação de propriedade intelectual + ou outra violação de direitos.

    + +

    2 - Além disso, o Sharebook não garante ou faz qualquer representação relativa à precisão, aos resultados prováveis + ​​ou à confiabilidade do uso dos materiais em seu site ou de outra forma relacionado a esses materiais ou em sites + vinculados a este site.

    + +

    + 4. Limitações +

    + +

    + Em nenhum caso o Sharebook ou seus fornecedores serão responsáveis ​​por quaisquer danos (incluindo, sem limitação, + danos por perda de dados ou lucro ou devido a interrupção dos negócios) decorrentes do uso ou da incapacidade de + usar os materiais em Sharebook, mesmo que Sharebook ou um representante autorizado da Sharebook tenha sido + notificado oralmente ou por escrito da possibilidade de tais danos. Como algumas jurisdições não permitem limitações + em garantias implícitas, ou limitações de responsabilidade por danos conseqüentes ou incidentais, essas limitações + podem não se aplicar a você. +

    + +
    Precisão dos materiais
    + +

    Os materiais exibidos no site da Sharebook podem incluir erros técnicos, tipográficos ou fotográficos. Sharebook + não garante que qualquer material em seu site seja preciso, completo ou atual. Sharebook pode fazer alterações nos + materiais contidos em seu site a qualquer momento, sem aviso prévio. No entanto, Sharebook não se compromete a + atualizar os materiais.

    + + +

    + 5. Links +

    +

    + O Sharebook não analisou todos os sites vinculados ao seu site e não é responsável pelo conteúdo de nenhum site + vinculado. A inclusão de qualquer link não implica endosso por Sharebook do site. O uso de qualquer site vinculado é + por conta e risco do usuário. +

    + +
    Modificações
    + +

    O Sharebook pode revisar estes termos de serviço do site a qualquer momento, sem aviso prévio. Ao usar este site, + você concorda em ficar vinculado à versão atual desses termos de serviço.

    + +
    Lei aplicável
    + +

    Estes termos e condições são regidos e interpretados de acordo com as leis do Sharebook e você se submete + irrevogavelmente à jurisdição exclusiva dos tribunais naquele estado ou localidade.

    + +

    6. Consentimento para Tratamento de Dados

    + +

    O Titular concorda com o + tratamento de seus dados pessoais para finalidade específica, em conformidade com a Lei nº 13.709 – Lei Geral de + Proteção de Dados Pessoais (LGPD). + + Ao manifestar sua aceitação para com o presente termo, o Titular consente e concorda que a Câmara Brasileira do + Livro, CNPJ nº 60.762.942/0001-81, com sede na Rua Cristiano Viana, 91 – Pinheiros, São Paulo / SP, telefone: 11 + 3069-1300, e-mail sac@isbn.org.br, doravante denominada Controladora, tome decisões referentes ao tratamento de seus + dados pessoais, dados referentes as empresas em que atuem os usuários ou dados necessários ao usufruto de serviços + ofertados pela CBL, bem como realize o tratamento de tais dados, envolvendo operações como as que se referem a + coleta, produção, recepção, classificação, utilização, acesso, reprodução, transmissão, distribuição, processamento, + arquivamento, armazenamento, eliminação, avaliação ou controle da informação, modificação, comunicação, + transferência, difusão ou extração.

    + +
    Segurança dos Dados
    +

    + A Controladora responsabiliza-se pela manutenção de medidas de segurança, técnicas e administrativas aptas a + proteger os dados pessoais de acessos não autorizados e de situações acidentais ou ilícitas de destruição, perda, + alteração, comunicação ou qualquer forma de tratamento inadequado ou ilícito. + + Em conformidade ao art. 48 da Lei nº 13.709, o Controlador comunicará ao Titular e à Autoridade Nacional de Proteção + de Dados (ANPD) a ocorrência de incidente de segurança que possa acarretar risco ou dano relevante ao Titular.

    + +
    Direitos do Titular
    + +

    O Titular tem direito a obter da Controladora, em relação aos dados por ele tratados, a qualquer momento e mediante + requisição: I - confirmação da existência de tratamento; II - acesso aos dados; III - correção de dados incompletos, + inexatos ou desatualizados; IV - anonimização, bloqueio ou eliminação de dados desnecessários, excessivos ou + tratados em desconformidade com o disposto na Lei nº 13.709; V - portabilidade dos dados a outro fornecedor de + serviço ou produto, mediante requisição expressa e observados os segredos comercial e industrial, de acordo com a + regulamentação do órgão controlador; V - portabilidade dos dados a outro fornecedor de serviço ou produto, mediante + requisição expressa, de acordo com a regulamentação da autoridade nacional, observados os segredos comercial e + industrial; VI - eliminação dos dados pessoais tratados com o consentimento do titular, exceto nas hipóteses + previstas no art. 16 da Lei nº 13.709; VII - informação das entidades públicas e privadas com as quais o controlador + realizou uso compartilhado de dados; VIII - informação sobre a possibilidade de não fornecer consentimento e sobre + as consequências da negativa; IX - revogação do consentimento, nos termos do § 5º do art. 8º da Lei nº 13.709.

    + +
    Direito de Revogação do Consentimento
    + +

    Este consentimento poderá ser revogado pelo Titular, a qualquer momento, mediante solicitação via e-mail ou + correspondência ao Controlador.

    \ No newline at end of file diff --git a/src/app/components/term-of-use/term-of-use.component.spec.ts b/src/app/components/term-of-use/term-of-use.component.spec.ts new file mode 100644 index 00000000..0580b22a --- /dev/null +++ b/src/app/components/term-of-use/term-of-use.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TermOfUseComponent } from './term-of-use.component'; + +describe('TermOfUseComponent', () => { + let component: TermOfUseComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TermOfUseComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TermOfUseComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/term-of-use/term-of-use.component.ts b/src/app/components/term-of-use/term-of-use.component.ts new file mode 100644 index 00000000..be89d509 --- /dev/null +++ b/src/app/components/term-of-use/term-of-use.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-term-of-use', + templateUrl: './term-of-use.component.html', + styleUrls: ['./term-of-use.component.css'] +}) +export class TermOfUseComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/core/app-routing.module.ts b/src/app/core/app-routing.module.ts index 3f220fc5..9fc1529a 100644 --- a/src/app/core/app-routing.module.ts +++ b/src/app/core/app-routing.module.ts @@ -1,4 +1,5 @@ -import { NgModule } from '@angular/core'; + +import { NgModule, Component } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { AuthGuardUser } from './guards/auth.guard.user'; import { AuthGuardAdmin } from './guards/auth.guard.admin'; @@ -21,6 +22,7 @@ import { DonationsComponent } from '../components/book/donations/donations.compo import { AboutComponent } from '../components/about/about.component'; import { DonatePageComponent } from '../components/book/donate-page/donate-page.component'; import { PrivacyPolicyComponent } from '../components/privacy-policy/privacy-policy.component'; +import { TermOfUseComponent } from './../components/term-of-use/term-of-use.component'; const routes: Routes = [ { @@ -117,6 +119,10 @@ const routes: Routes = [ path: 'politica-privacidade', component: PrivacyPolicyComponent }, + { + path: 'termo-uso', + component: TermOfUseComponent + }, // otherwise redirect to home { path: '**', @@ -132,4 +138,4 @@ const routes: Routes = [ ], exports: [RouterModule] }) -export class AppRoutingModule {} +export class AppRoutingModule { } From b094ff9b162a83ef1076a24718f570486b6c91a0 Mon Sep 17 00:00:00 2001 From: Jordan Gabriel Date: Tue, 3 Nov 2020 19:35:26 -0300 Subject: [PATCH 03/24] =?UTF-8?q?Lista=20de=20Ebooks=20na=20P=C3=A1gina=20?= =?UTF-8?q?inicial?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.module.ts | 4 +- .../components/footer/footer.component.html | 2 +- src/app/components/home/home.component.html | 181 +++++++++--------- src/app/components/home/home.component.ts | 15 +- .../register/register.component.html | 8 +- .../components/register/register.component.ts | 2 +- .../term-of-use/term-of-use.component.ts | 15 -- .../terms-of-use.component.css} | 0 .../terms-of-use.component.html} | 0 .../terms-of-use.component.spec.ts} | 14 +- .../terms-of-use/terms-of-use.component.ts | 15 ++ src/app/core/app-routing.module.ts | 6 +- src/app/core/services/book/book.service.ts | 8 +- 13 files changed, 146 insertions(+), 124 deletions(-) delete mode 100644 src/app/components/term-of-use/term-of-use.component.ts rename src/app/components/{term-of-use/term-of-use.component.css => terms-of-use/terms-of-use.component.css} (100%) rename src/app/components/{term-of-use/term-of-use.component.html => terms-of-use/terms-of-use.component.html} (100%) rename src/app/components/{term-of-use/term-of-use.component.spec.ts => terms-of-use/terms-of-use.component.spec.ts} (50%) create mode 100644 src/app/components/terms-of-use/terms-of-use.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 88e67d0b..5df474fd 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -70,7 +70,7 @@ import { RouteReuseStrategy } from '@angular/router'; import { CustomReuseStrategy } from './core/router/custom-reuse-strategy'; import { InputSearchModule } from './components/input-search/input-search.module'; import { DonatePageComponent } from './components/book/donate-page/donate-page.component'; -import { TermOfUseComponent } from './components/term-of-use/term-of-use.component'; +import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.component'; @NgModule({ declarations: [ @@ -103,7 +103,7 @@ import { TermOfUseComponent } from './components/term-of-use/term-of-use.compone MainUsersComponent, PrivacyPolicyComponent, CookieConsentComponent, - TermOfUseComponent, + TermsOfUseComponent, ], imports: [ BrowserModule, diff --git a/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html index 05a08e1d..937b5dc9 100644 --- a/src/app/components/footer/footer.component.html +++ b/src/app/components/footer/footer.component.html @@ -35,7 +35,7 @@
    Páginas
    Política de privacidade
  • - Termo de uso + Termos de uso
  • diff --git a/src/app/components/home/home.component.html b/src/app/components/home/home.component.html index 677091ce..2f4bbc12 100644 --- a/src/app/components/home/home.component.html +++ b/src/app/components/home/home.component.html @@ -1,10 +1,6 @@ -Escolha o livro. Leve para casa. Não custa nada. +Escolha o livro. Leve para casa. Não custa nada. -

    Autor em destaque

    -
    -
    -
    - -
    -
    - Meg Mendes - Autora e Organizadora -
    -
    -
    -

    - Meg Mendes (organizadora) - "Grimm, contos para sonhos - horripilantes”
    - Meg Mendes é formada em Engenharia Civil e agora estudante de Letras, - escreveu seu primeiro romance aos 15 anos, mas nunca o publicou. A - antologia “Por baixo d’água” é sua primeira seleção, onde possui dois - contos; além de sua participação em mais de vinte antologias. Faz parte - do “Clube dos Cinco” e é membro da ABERST (Associação Brasileira dos - Escritores de Romance Policial, Suspense e Terror) desde julho de 2018. - Atualmente dedica-se ao projeto “Contos Coletivos” onde, junto a um time - de autores, escrevem contos de vários gêneros, publicados semanalmente - no blog de mesmo nome (coletivodoscontos.blogspot.com). É organizadora - das antologias “Grimm – Contos para sonhos horripilantes” e “Aventuras - no País das Maravilhas” +

    Autor em destaque

    +
    +
    +
    + +
    +
    + Meg Mendes - Autora e Organizadora +
    +
    +
    +

    + Meg Mendes (organizadora) - "Grimm, contos para sonhos + horripilantes”
    + Meg Mendes é formada em Engenharia Civil e agora estudante de Letras, + escreveu seu primeiro romance aos 15 anos, mas nunca o publicou. A + antologia “Por baixo d’água” é sua primeira seleção, onde possui dois + contos; além de sua participação em mais de vinte antologias. Faz parte + do “Clube dos Cinco” e é membro da ABERST (Associação Brasileira dos + Escritores de Romance Policial, Suspense e Terror) desde julho de 2018. + Atualmente dedica-se ao projeto “Contos Coletivos” onde, junto a um time + de autores, escrevem contos de vários gêneros, publicados semanalmente + no blog de mesmo nome (coletivodoscontos.blogspot.com). É organizadora + das antologias “Grimm – Contos para sonhos horripilantes” e “Aventuras + no País das Maravilhas” -

    +

    - Os irmãos Grimm foram acadêmicos, linguistas, poetas e escritores que - nasceram no então Condado de Hesse-Darmstadt, atual Alemanha. Os dois - dedicaram-se ao registro de várias fábulas infantis, ganhando assim - grande notoriedade, notoriedade essa que, gradativamente, tomou - proporções globais. Seus contos servem de inspiração até hoje para - crianças e adultos. Pensando nisso, nossa antologia retoma a essência - original dos contos que eram feitos para assustar as crianças. - Trabalhamos com contos que poucos conhecem, mas que fazem parte da mais - bela coletânea. Todos são bem-vindos para mergulhar no mundo de Jacob e - Wilhelm Grimm... + Os irmãos Grimm foram acadêmicos, linguistas, poetas e escritores que + nasceram no então Condado de Hesse-Darmstadt, atual Alemanha. Os dois + dedicaram-se ao registro de várias fábulas infantis, ganhando assim + grande notoriedade, notoriedade essa que, gradativamente, tomou + proporções globais. Seus contos servem de inspiração até hoje para + crianças e adultos. Pensando nisso, nossa antologia retoma a essência + original dos contos que eram feitos para assustar as crianças. + Trabalhamos com contos que poucos conhecem, mas que fazem parte da mais + bela coletânea. Todos são bem-vindos para mergulhar no mundo de Jacob e + Wilhelm Grimm... -

    - É disso que trata o livro Grimm, contos para sonhos horripilantes, agora - disponível (Grátis) no Sharebook. Confira. -

    +

    + É disso que trata o livro Grimm, contos para sonhos horripilantes, agora + disponível (Grátis) no Sharebook. Confira. +

    - Eu quero esse livro! + Eu quero esse + livro! -

    -

    - - Você é escritor e deseja estar no programa de destaque do Sharebook? - -
    - Então entre em contato através do link abaixo! -

    - - Eu quero ser Autor Destaque! +

    +

    + + Você é escritor e deseja estar no programa de destaque do Sharebook? + +
    + Então entre em contato através do link abaixo! +

    + + Eu quero ser Autor Destaque! +
    -
    - - - - - -

     

    +

     

    - + -
    -
    - - Seja um apoiador do Sharebook. - -
    -
    +
    +
    + + Seja um apoiador do Sharebook. + +
    +
    \ No newline at end of file diff --git a/src/app/components/home/home.component.ts b/src/app/components/home/home.component.ts index 945ebfd8..07b03b95 100644 --- a/src/app/components/home/home.component.ts +++ b/src/app/components/home/home.component.ts @@ -14,10 +14,13 @@ export class HomeComponent implements OnInit, OnDestroy { public availableBooks: Book[] = []; public random15NewBooks: Book[] = []; public hasBook: Boolean = true; + public hasEbook: Boolean = true; + public randomEbooks: Book[] = []; + private _destroySubscribes$ = new Subject(); - constructor(private _scBook: BookService) {} + constructor(private _scBook: BookService) { } ngOnInit() { this._scBook @@ -27,6 +30,16 @@ export class HomeComponent implements OnInit, OnDestroy { this.availableBooks = books; this.hasBook = books.length > 0 ? true : false; }); + + this._scBook + .getRandomEbooks() + .pipe(takeUntil(this._destroySubscribes$)) + .subscribe((ebooks) => { + this.randomEbooks = ebooks; + console.log(ebooks); + this.hasEbook = ebooks.length > 0 ? true : false; + }); + } ngOnDestroy() { diff --git a/src/app/components/register/register.component.html b/src/app/components/register/register.component.html index 0c8c1692..877791dd 100644 --- a/src/app/components/register/register.component.html +++ b/src/app/components/register/register.component.html @@ -258,12 +258,13 @@

    Registro

    +
    -
    @@ -276,6 +277,9 @@

    Registro

    Cancelar + + + \ No newline at end of file diff --git a/src/app/components/register/register.component.ts b/src/app/components/register/register.component.ts index 509842d7..2dcdb57a 100644 --- a/src/app/components/register/register.component.ts +++ b/src/app/components/register/register.component.ts @@ -49,7 +49,7 @@ export class RegisterComponent implements OnInit, OnDestroy { state: ['', [Validators.required]], country: ['', [Validators.required]], allowSendingEmail: [true, null], - aceptTermOfUse: [true, null], + acceptTermOfUse: [false, null], }, { validator: PasswordValidation.MatchPassword }); diff --git a/src/app/components/term-of-use/term-of-use.component.ts b/src/app/components/term-of-use/term-of-use.component.ts deleted file mode 100644 index be89d509..00000000 --- a/src/app/components/term-of-use/term-of-use.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-term-of-use', - templateUrl: './term-of-use.component.html', - styleUrls: ['./term-of-use.component.css'] -}) -export class TermOfUseComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/src/app/components/term-of-use/term-of-use.component.css b/src/app/components/terms-of-use/terms-of-use.component.css similarity index 100% rename from src/app/components/term-of-use/term-of-use.component.css rename to src/app/components/terms-of-use/terms-of-use.component.css diff --git a/src/app/components/term-of-use/term-of-use.component.html b/src/app/components/terms-of-use/terms-of-use.component.html similarity index 100% rename from src/app/components/term-of-use/term-of-use.component.html rename to src/app/components/terms-of-use/terms-of-use.component.html diff --git a/src/app/components/term-of-use/term-of-use.component.spec.ts b/src/app/components/terms-of-use/terms-of-use.component.spec.ts similarity index 50% rename from src/app/components/term-of-use/term-of-use.component.spec.ts rename to src/app/components/terms-of-use/terms-of-use.component.spec.ts index 0580b22a..438fcddc 100644 --- a/src/app/components/term-of-use/term-of-use.component.spec.ts +++ b/src/app/components/terms-of-use/terms-of-use.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { TermOfUseComponent } from './term-of-use.component'; +import { TermsOfUseComponent } from './terms-of-use.component'; -describe('TermOfUseComponent', () => { - let component: TermOfUseComponent; - let fixture: ComponentFixture; +describe('TermsOfUseComponent', () => { + let component: TermsOfUseComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ TermOfUseComponent ] + declarations: [TermsOfUseComponent] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(TermOfUseComponent); + fixture = TestBed.createComponent(TermsOfUseComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/src/app/components/terms-of-use/terms-of-use.component.ts b/src/app/components/terms-of-use/terms-of-use.component.ts new file mode 100644 index 00000000..f42ea2a4 --- /dev/null +++ b/src/app/components/terms-of-use/terms-of-use.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-terms-of-use', + templateUrl: './terms-of-use.component.html', + styleUrls: ['./terms-of-use.component.css'] +}) +export class TermsOfUseComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/core/app-routing.module.ts b/src/app/core/app-routing.module.ts index 9fc1529a..5795ecaf 100644 --- a/src/app/core/app-routing.module.ts +++ b/src/app/core/app-routing.module.ts @@ -22,7 +22,7 @@ import { DonationsComponent } from '../components/book/donations/donations.compo import { AboutComponent } from '../components/about/about.component'; import { DonatePageComponent } from '../components/book/donate-page/donate-page.component'; import { PrivacyPolicyComponent } from '../components/privacy-policy/privacy-policy.component'; -import { TermOfUseComponent } from './../components/term-of-use/term-of-use.component'; +import { TermsOfUseComponent } from '../components/terms-of-use/terms-of-use.component'; const routes: Routes = [ { @@ -120,8 +120,8 @@ const routes: Routes = [ component: PrivacyPolicyComponent }, { - path: 'termo-uso', - component: TermOfUseComponent + path: 'termos-de-uso', + component: TermsOfUseComponent }, // otherwise redirect to home { diff --git a/src/app/core/services/book/book.service.ts b/src/app/core/services/book/book.service.ts index 2776bee4..293d5cee 100644 --- a/src/app/core/services/book/book.service.ts +++ b/src/app/core/services/book/book.service.ts @@ -19,7 +19,7 @@ export class BookService { constructor( private _http: HttpClient, @Inject(APP_CONFIG) private config: AppConfig - ) {} + ) { } public getAll() { return this._http.get(`${this.config.apiEndpoint}/book/1/9999`); @@ -31,6 +31,12 @@ export class BookService { ); } + public getRandomEbooks() { + return this._http.get( + `${this.config.apiEndpoint}/book/random15ebooks` + ); + } + public getRandom15Books() { return this._http.get( `${this.config.apiEndpoint}/book/Random15Books` From 6091ded79375be480dff4f168aee0420d424e068 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 13:35:48 +0000 Subject: [PATCH 04/24] Bump http-proxy from 1.18.0 to 1.18.1 Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1. - [Release notes](https://github.com/http-party/node-http-proxy/releases) - [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md) - [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1) Signed-off-by: dependabot[bot] --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 90d4fe20..9e26c680 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "frontend", - "version": "1.0.0", + "version": "v4.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4662,9 +4662,9 @@ "dev": true }, "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", From 636d45ae3440be757d0b839238eb804422780815 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2020 18:16:27 +0000 Subject: [PATCH 05/24] Bump elliptic from 6.5.2 to 6.5.3 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e26c680..47730bbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2889,9 +2889,9 @@ "dev": true }, "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", From e2266712b1ec19f9a28f8a577b1e9c411871fb2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 19 Jul 2020 23:34:05 +0000 Subject: [PATCH 06/24] Bump lodash from 4.17.15 to 4.17.19 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 47730bbc..8ec732eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6016,9 +6016,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash.clonedeep": { "version": "4.5.0", From 4d7b58cf86e126be3773dd0b4fe2eb47d4cc7e15 Mon Sep 17 00:00:00 2001 From: Marcio JF Santos Date: Fri, 11 Dec 2020 11:52:31 -0300 Subject: [PATCH 07/24] =?UTF-8?q?Ajuste=20no=20texto=20de=20'Quando=20ser?= =?UTF-8?q?=C3=A1=20anunciado=20ganhador'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/components/book/details/details.component.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/components/book/details/details.component.ts b/src/app/components/book/details/details.component.ts index 2d228a95..f89fa0f4 100644 --- a/src/app/components/book/details/details.component.ts +++ b/src/app/components/book/details/details.component.ts @@ -108,11 +108,11 @@ export class DetailsComponent implements OnInit, OnDestroy { new Date().getTime() / (3600 * 24 * 1000) ); - this.daysToChoose = chooseDate - todayDate; - this.chooseDateInfo = - !this.daysToChoose || this.daysToChoose <= 0 - ? 'Hoje' - : 'Daqui a ' + this.daysToChoose + ' dia(s)'; + this.daysToChoose = chooseDate - todayDate; + const daysLeftMessage = (this.daysToChoose && this.daysToChoose) > 1 ? 'Daqui a ' + this.daysToChoose + ' dia(s)' : 'Daqui a ' + this.daysToChoose + ' dia'; + const isToday = (!this.daysToChoose || this.daysToChoose <= 0); + this.chooseDateInfo = isToday ? 'Hoje' : daysLeftMessage; + if (this.myUser.name) { switch (book.freightOption) { From bc1524fc6c270d0a749e96adfd669404d331f1c5 Mon Sep 17 00:00:00 2001 From: Marcio JF Santos Date: Fri, 11 Dec 2020 16:17:54 -0300 Subject: [PATCH 08/24] Update details.component.ts --- src/app/components/book/details/details.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/book/details/details.component.ts b/src/app/components/book/details/details.component.ts index f89fa0f4..98e0d1f2 100644 --- a/src/app/components/book/details/details.component.ts +++ b/src/app/components/book/details/details.component.ts @@ -109,7 +109,7 @@ export class DetailsComponent implements OnInit, OnDestroy { ); this.daysToChoose = chooseDate - todayDate; - const daysLeftMessage = (this.daysToChoose && this.daysToChoose) > 1 ? 'Daqui a ' + this.daysToChoose + ' dia(s)' : 'Daqui a ' + this.daysToChoose + ' dia'; + const daysLeftMessage = (this.daysToChoose && this.daysToChoose > 1) ? 'Daqui a ' + this.daysToChoose + ' dia(s)' : 'Daqui a ' + this.daysToChoose + ' dia'; const isToday = (!this.daysToChoose || this.daysToChoose <= 0); this.chooseDateInfo = isToday ? 'Hoje' : daysLeftMessage; From 356346c9416b49363c6fb988a6514c0819d1a029 Mon Sep 17 00:00:00 2001 From: Raffaello Damgaard Date: Sat, 12 Dec 2020 19:13:37 -0300 Subject: [PATCH 09/24] Sem parenteses quando daysToChoose > 1 --- src/app/components/book/details/details.component.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/components/book/details/details.component.ts b/src/app/components/book/details/details.component.ts index 98e0d1f2..468851b7 100644 --- a/src/app/components/book/details/details.component.ts +++ b/src/app/components/book/details/details.component.ts @@ -102,16 +102,16 @@ export class DetailsComponent implements OnInit, OnDestroy { const chooseDate = Math.floor( new Date(this.bookInfo.chooseDate).getTime() / - (3600 * 24 * 1000) + (3600 * 24 * 1000) ); const todayDate = Math.floor( new Date().getTime() / (3600 * 24 * 1000) ); - this.daysToChoose = chooseDate - todayDate; - const daysLeftMessage = (this.daysToChoose && this.daysToChoose > 1) ? 'Daqui a ' + this.daysToChoose + ' dia(s)' : 'Daqui a ' + this.daysToChoose + ' dia'; + this.daysToChoose = chooseDate - todayDate; + const daysLeftMessage = (this.daysToChoose && this.daysToChoose > 1) ? 'Daqui a ' + this.daysToChoose + ' dias' : 'Daqui a 1 dia'; const isToday = (!this.daysToChoose || this.daysToChoose <= 0); - this.chooseDateInfo = isToday ? 'Hoje' : daysLeftMessage; + this.chooseDateInfo = isToday ? 'Hoje' : daysLeftMessage; if (this.myUser.name) { From 886fa5443a76c64ef5dcde8b7bea6d93c19d13c0 Mon Sep 17 00:00:00 2001 From: AewInformatica Date: Sat, 2 Jan 2021 16:50:13 -0300 Subject: [PATCH 10/24] email sempre em minusculo + fix exceeds maximum line length of 140 --- src/app/components/book/details/details.component.ts | 4 +++- src/app/components/register/register.component.css | 3 +++ src/app/components/register/register.component.html | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/components/book/details/details.component.ts b/src/app/components/book/details/details.component.ts index 468851b7..ab7afe71 100644 --- a/src/app/components/book/details/details.component.ts +++ b/src/app/components/book/details/details.component.ts @@ -109,7 +109,9 @@ export class DetailsComponent implements OnInit, OnDestroy { ); this.daysToChoose = chooseDate - todayDate; - const daysLeftMessage = (this.daysToChoose && this.daysToChoose > 1) ? 'Daqui a ' + this.daysToChoose + ' dias' : 'Daqui a 1 dia'; + const daysLeftMessage = (this.daysToChoose && this.daysToChoose > 1) + ? 'Daqui a ' + this.daysToChoose + ' dias' + : 'Daqui a 1 dia'; const isToday = (!this.daysToChoose || this.daysToChoose <= 0); this.chooseDateInfo = isToday ? 'Hoje' : daysLeftMessage; diff --git a/src/app/components/register/register.component.css b/src/app/components/register/register.component.css index 7b26272a..0efa4f6a 100644 --- a/src/app/components/register/register.component.css +++ b/src/app/components/register/register.component.css @@ -11,3 +11,6 @@ form i.fa { position: relative; padding-left: 45px !important; } +.lowerCase { + text-transform : lowercase; +} diff --git a/src/app/components/register/register.component.html b/src/app/components/register/register.component.html index 877791dd..dbabb9eb 100644 --- a/src/app/components/register/register.component.html +++ b/src/app/components/register/register.component.html @@ -26,7 +26,7 @@

    Registro

    - +
    From b0676191b3f765bc7b1a5edb5ed592be9b2abdc0 Mon Sep 17 00:00:00 2001 From: AewInformatica Date: Sat, 2 Jan 2021 17:50:21 -0300 Subject: [PATCH 11/24] ajuste para email minusculo na tela de login --- src/app/components/login/login.component.css | 3 +++ src/app/components/login/login.component.html | 12 +++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/app/components/login/login.component.css b/src/app/components/login/login.component.css index 7b26272a..c8515221 100644 --- a/src/app/components/login/login.component.css +++ b/src/app/components/login/login.component.css @@ -6,6 +6,9 @@ form i.fa { font-size: 22px; z-index: 99; } +.lowerCase { + text-transform : lowercase; +} .form-control { position: relative; diff --git a/src/app/components/login/login.component.html b/src/app/components/login/login.component.html index c5756149..e697e1b0 100644 --- a/src/app/components/login/login.component.html +++ b/src/app/components/login/login.component.html @@ -5,7 +5,7 @@

    Login

    - +
    @@ -39,14 +39,8 @@

    Login

    - +

    From 0b8157d12e562e0f2a9657dc5c0cc50c2fdacc20 Mon Sep 17 00:00:00 2001 From: AewInformatica Date: Sat, 2 Jan 2021 17:52:24 -0300 Subject: [PATCH 12/24] ajuste para email minusculo na tela de login --- src/app/core/helpers/error.interceptor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/core/helpers/error.interceptor.ts b/src/app/core/helpers/error.interceptor.ts index 8e2c3377..efd0b293 100644 --- a/src/app/core/helpers/error.interceptor.ts +++ b/src/app/core/helpers/error.interceptor.ts @@ -7,7 +7,7 @@ import { AuthenticationService } from '../services/authentication/authentication @Injectable() export class ErrorInterceptor implements HttpInterceptor { - constructor(private authenticationService: AuthenticationService) {} + constructor(private authenticationService: AuthenticationService) { } intercept(request: HttpRequest, next: HttpHandler): Observable> { return next.handle(request).pipe( @@ -15,7 +15,7 @@ export class ErrorInterceptor implements HttpInterceptor { if (err.status === 401) { // auto logout if 401 response returned from api this.authenticationService.logout(); - location.reload(true); + location.reload(); } const error = err.error.messages || err.statusText; From 465251496dfe897b689d53c03dfd3aedb581ece1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Apr 2021 02:56:37 +0000 Subject: [PATCH 13/24] Bump elliptic from 6.5.3 to 6.5.4 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] --- package-lock.json | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ec732eb..55d73f57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2889,18 +2889,26 @@ "dev": true }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } } }, "emojis-list": { From 40872076c433a0b853fa243090ade284b3962de5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Apr 2021 02:56:37 +0000 Subject: [PATCH 14/24] Bump y18n from 3.2.1 to 3.2.2 Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ec732eb..d33eba3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -367,9 +367,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true }, "yargs": { @@ -10931,9 +10931,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -10972,9 +10972,9 @@ "optional": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true, "optional": true } From 8115dbcc216879e40026980ed2ce19fcabbfbf21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Apr 2021 03:29:33 +0000 Subject: [PATCH 15/24] Bump yargs-parser from 5.0.0 to 5.0.1 Bumps [yargs-parser](https://github.com/yargs/yargs-parser) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/yargs/yargs-parser/releases) - [Changelog](https://github.com/yargs/yargs-parser/blob/v5.0.1/CHANGELOG.md) - [Commits](https://github.com/yargs/yargs-parser/compare/v5.0.0...v5.0.1) Signed-off-by: dependabot[bot] --- package-lock.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d761aa..27cca9be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10989,13 +10989,14 @@ } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", "dev": true, "optional": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" }, "dependencies": { "camelcase": { From a621704d081b7521e356598d3d590d4b7fee4bb8 Mon Sep 17 00:00:00 2001 From: Vinnyvalente Date: Sat, 24 Apr 2021 19:23:22 -0300 Subject: [PATCH 16/24] Novo Modal Winner --- package-lock.json | 2 +- src/app/app.module.ts | 5 +- .../book/donations/donations.component.ts | 29 ++++++++++ .../winner-users/winner-users.component.css | 29 ++++++++++ .../winner-users/winner-users.component.html | 57 +++++++++++++++++++ .../winner-users.component.spec.ts | 29 ++++++++++ .../winner-users/winner-users.component.ts | 46 +++++++++++++++ 7 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 src/app/components/book/winner-users/winner-users.component.css create mode 100644 src/app/components/book/winner-users/winner-users.component.html create mode 100644 src/app/components/book/winner-users/winner-users.component.spec.ts create mode 100644 src/app/components/book/winner-users/winner-users.component.ts diff --git a/package-lock.json b/package-lock.json index cb8b93ec..27cca9be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11026,4 +11026,4 @@ "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" } } -} \ No newline at end of file +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 5df474fd..8f4cfd39 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -63,6 +63,7 @@ import { RequestComponent } from './components/book/request/request.component'; import { TrackingComponent } from './components/book/tracking/tracking.component'; import { FacilitatorNotesComponent } from './components/book/facilitator-notes/facilitator-notes.component'; import { MainUsersComponent } from './components/book/main-users/main-users.component'; +import { WinnerUsersComponent } from './components/book/winner-users/winner-users.component'; import { ConfirmationDialogComponent } from './core/directives/confirmation-dialog/confirmation-dialog.component'; import { ConfirmationDialogService } from './core/services/confirmation-dialog/confirmation-dialog.service'; @@ -101,6 +102,7 @@ import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.comp TrackingComponent, FacilitatorNotesComponent, MainUsersComponent, + WinnerUsersComponent, PrivacyPolicyComponent, CookieConsentComponent, TermsOfUseComponent, @@ -154,9 +156,10 @@ import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.comp TrackingComponent, FacilitatorNotesComponent, MainUsersComponent, + WinnerUsersComponent, ], bootstrap: [AppComponent], }) export class AppModule { - constructor(protected _googleAnalyticsService: GoogleAnalyticsService) {} // <-- We inject the service here to keep it alive whole time + constructor(protected _googleAnalyticsService: GoogleAnalyticsService) { } // <-- We inject the service here to keep it alive whole time } diff --git a/src/app/components/book/donations/donations.component.ts b/src/app/components/book/donations/donations.component.ts index 9e8ec746..0934cbee 100644 --- a/src/app/components/book/donations/donations.component.ts +++ b/src/app/components/book/donations/donations.component.ts @@ -13,6 +13,8 @@ import { DonateComponent } from '../donate/donate.component'; import { ConfirmationDialogService } from 'src/app/core/services/confirmation-dialog/confirmation-dialog.service'; import { ToastrService } from 'ngx-toastr'; import { getStatusDescription } from 'src/app/core/utils/getStatusDescription'; +import { MainUsersComponent } from '../main-users/main-users.component'; +import { WinnerUsersComponent } from '../winner-users/winner-users.component'; @Component({ selector: 'app-donations', @@ -23,6 +25,7 @@ export class DonationsComponent implements OnInit, OnDestroy { donatedBooks = new Array(); tableSettings: any; isLoading: boolean; + statusBtnWinner: boolean; private _destroySubscribes$ = new Subject(); @@ -61,6 +64,10 @@ export class DonationsComponent implements OnInit, OnDestroy { '' + ' '; + const btnShowWinnerInfo = + '' + + ' '; + this.tableSettings = { columns: { title: { @@ -129,6 +136,10 @@ export class DonationsComponent implements OnInit, OnDestroy { name: 'CancelDonation', title: btnCancelDonation, }, + { + name: 'ShowWinnerInfo', + title: btnShowWinnerInfo, + }, ], position: 'right', // left|right }, @@ -299,6 +310,24 @@ export class DonationsComponent implements OnInit, OnDestroy { break; } + case 'ShowWinnerInfo': { + + if (event.data.status !== BookDonationStatus.WAITING_SEND) { + alert( + `Não há ganhadores para este livro!` + ); + return; + } + const modalRef = this._modalService.open(WinnerUsersComponent, { + backdropClass: 'light-blue-backdrop', + centered: true, + }); + + modalRef.componentInstance.bookId = event.data.id; + modalRef.componentInstance.bookTitle = event.data.title; + break; + } + } } diff --git a/src/app/components/book/winner-users/winner-users.component.css b/src/app/components/book/winner-users/winner-users.component.css new file mode 100644 index 00000000..1b7028d8 --- /dev/null +++ b/src/app/components/book/winner-users/winner-users.component.css @@ -0,0 +1,29 @@ +.carousel-indicators { + position: absolute; + bottom: 0; + margin: 0; + left: 0; + right: 0; + width: auto; +} + +.carousel-indicators li, +.carousel-indicators li.active { + float: left; + margin: 0; + border-radius: 0; + border: 0; + background: #ccc; +} + +.carousel-indicators li.active { + background: black; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E") !important; +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E") !important; +} diff --git a/src/app/components/book/winner-users/winner-users.component.html b/src/app/components/book/winner-users/winner-users.component.html new file mode 100644 index 00000000..50f5cc8f --- /dev/null +++ b/src/app/components/book/winner-users/winner-users.component.html @@ -0,0 +1,57 @@ +

    + + \ No newline at end of file diff --git a/src/app/components/book/winner-users/winner-users.component.spec.ts b/src/app/components/book/winner-users/winner-users.component.spec.ts new file mode 100644 index 00000000..e8841cae --- /dev/null +++ b/src/app/components/book/winner-users/winner-users.component.spec.ts @@ -0,0 +1,29 @@ +import { AppConfigModule } from '../../../app-config.module'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WinnerUsersComponent } from './winner-users.component'; + +describe('WinnerUsersComponent', () => { + let component: WinnerUsersComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [WinnerUsersComponent], + imports: [HttpClientTestingModule, AppConfigModule], + providers: [NgbActiveModal], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(WinnerUsersComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/book/winner-users/winner-users.component.ts b/src/app/components/book/winner-users/winner-users.component.ts new file mode 100644 index 00000000..24b0f724 --- /dev/null +++ b/src/app/components/book/winner-users/winner-users.component.ts @@ -0,0 +1,46 @@ +import { Component, OnInit, Input, OnDestroy } from '@angular/core'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; + +import { BookService } from 'src/app/core/services/book/book.service'; +import { UserInfo } from 'src/app/core/models/userInfo'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +@Component({ + selector: 'app-winner-users', + templateUrl: './winner-users.component.html', + styleUrls: ['./winner-users.component.css'] +}) +export class WinnerUsersComponent implements OnInit, OnDestroy { + @Input() bookId; + @Input() bookTitle; + + isLoading: Boolean; + winnerUsers: UserInfo[] = []; + + private _destroySubscribes$ = new Subject(); + + constructor(public activeModal: NgbActiveModal, private _scBook: BookService) { } + + ngOnInit() { + this.isLoading = true; + this._scBook.getMainUsers(this.bookId) + .pipe( + takeUntil(this._destroySubscribes$) + ) + .subscribe( + resp => { + this.isLoading = false; + this.winnerUsers[0] = !!resp.winner ? resp.winner : ''; + }, + error => { + this.isLoading = false; + } + ); + } + + ngOnDestroy() { + this._destroySubscribes$.next(); + this._destroySubscribes$.complete(); + } +} From 6bca071e293b09ef5a45bdb422499f0d3257ad48 Mon Sep 17 00:00:00 2001 From: Vinnyvalente Date: Wed, 28 Apr 2021 20:33:19 -0300 Subject: [PATCH 17/24] Ajustes recomendados no pullrequest --- src/app/components/book/donations/donations.component.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/components/book/donations/donations.component.ts b/src/app/components/book/donations/donations.component.ts index 0934cbee..3679f575 100644 --- a/src/app/components/book/donations/donations.component.ts +++ b/src/app/components/book/donations/donations.component.ts @@ -9,11 +9,9 @@ import { BookService } from '../../../core/services/book/book.service'; import { BookDonationStatus } from '../../../core/models/BookDonationStatus'; import { TrackingComponent } from '../tracking/tracking.component'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { DonateComponent } from '../donate/donate.component'; import { ConfirmationDialogService } from 'src/app/core/services/confirmation-dialog/confirmation-dialog.service'; import { ToastrService } from 'ngx-toastr'; import { getStatusDescription } from 'src/app/core/utils/getStatusDescription'; -import { MainUsersComponent } from '../main-users/main-users.component'; import { WinnerUsersComponent } from '../winner-users/winner-users.component'; @Component({ @@ -312,9 +310,11 @@ export class DonationsComponent implements OnInit, OnDestroy { } case 'ShowWinnerInfo': { - if (event.data.status !== BookDonationStatus.WAITING_SEND) { + if (event.data.status !== BookDonationStatus.WAITING_SEND && + event.data.status !== BookDonationStatus.SENT && + event.data.status !== BookDonationStatus.RECEIVED) { alert( - `Não há ganhadores para este livro!` + `Não há ganhador para este livro!` ); return; } From 059ba555056e2b5fedd6f3fcaafa21f4555a7574 Mon Sep 17 00:00:00 2001 From: Luciano Souza Date: Sun, 2 May 2021 17:42:32 -0300 Subject: [PATCH 18/24] Permitido que o ganhador veja o doador --- src/app/app.module.ts | 5 +- .../donor-modal/donor-modal.component.css | 3 + .../donor-modal/donor-modal.component.html | 42 ++++++++ .../donor-modal/donor-modal.component.spec.ts | 25 +++++ .../book/donor-modal/donor-modal.component.ts | 49 +++++++++ .../book/main-users/main-users.component.ts | 33 +++--- .../book/requesteds/requesteds.component.html | 11 +- .../book/requesteds/requesteds.component.ts | 102 ++++++++++++------ src/app/core/models/MyRequest.ts | 33 ++++++ src/app/core/models/UserInfoBook.ts | 7 ++ src/app/core/services/book/book.service.ts | 8 +- 11 files changed, 262 insertions(+), 56 deletions(-) create mode 100644 src/app/components/book/donor-modal/donor-modal.component.css create mode 100644 src/app/components/book/donor-modal/donor-modal.component.html create mode 100644 src/app/components/book/donor-modal/donor-modal.component.spec.ts create mode 100644 src/app/components/book/donor-modal/donor-modal.component.ts create mode 100644 src/app/core/models/MyRequest.ts create mode 100644 src/app/core/models/UserInfoBook.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 5df474fd..11d36ac5 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -71,6 +71,7 @@ import { CustomReuseStrategy } from './core/router/custom-reuse-strategy'; import { InputSearchModule } from './components/input-search/input-search.module'; import { DonatePageComponent } from './components/book/donate-page/donate-page.component'; import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.component'; +import { DonorModalComponent } from './components/book/donor-modal/donor-modal.component'; @NgModule({ declarations: [ @@ -104,6 +105,7 @@ import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.comp PrivacyPolicyComponent, CookieConsentComponent, TermsOfUseComponent, + DonorModalComponent, ], imports: [ BrowserModule, @@ -154,9 +156,10 @@ import { TermsOfUseComponent } from './components/terms-of-use/terms-of-use.comp TrackingComponent, FacilitatorNotesComponent, MainUsersComponent, + DonorModalComponent ], bootstrap: [AppComponent], }) export class AppModule { - constructor(protected _googleAnalyticsService: GoogleAnalyticsService) {} // <-- We inject the service here to keep it alive whole time + constructor(protected _googleAnalyticsService: GoogleAnalyticsService) { } // <-- We inject the service here to keep it alive whole time } diff --git a/src/app/components/book/donor-modal/donor-modal.component.css b/src/app/components/book/donor-modal/donor-modal.component.css new file mode 100644 index 00000000..ad050c4a --- /dev/null +++ b/src/app/components/book/donor-modal/donor-modal.component.css @@ -0,0 +1,3 @@ +section { + text-align: center; +} diff --git a/src/app/components/book/donor-modal/donor-modal.component.html b/src/app/components/book/donor-modal/donor-modal.component.html new file mode 100644 index 00000000..392c29d7 --- /dev/null +++ b/src/app/components/book/donor-modal/donor-modal.component.html @@ -0,0 +1,42 @@ + + + + + diff --git a/src/app/components/book/donor-modal/donor-modal.component.spec.ts b/src/app/components/book/donor-modal/donor-modal.component.spec.ts new file mode 100644 index 00000000..60443cba --- /dev/null +++ b/src/app/components/book/donor-modal/donor-modal.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DonorModalComponent } from './donor-modal.component'; + +describe('DonorModalComponent', () => { + let component: DonorModalComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ DonorModalComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DonorModalComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/book/donor-modal/donor-modal.component.ts b/src/app/components/book/donor-modal/donor-modal.component.ts new file mode 100644 index 00000000..aa42cd85 --- /dev/null +++ b/src/app/components/book/donor-modal/donor-modal.component.ts @@ -0,0 +1,49 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; + +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; + +import { BookService } from 'src/app/core/services/book/book.service'; +import { UserInfoBook } from 'src/app/core/models/UserInfoBook'; +import { User } from 'src/app/core/models/user'; +import { UserService } from 'src/app/core/services/user/user.service'; + +@Component({ + selector: 'app-donor-modal', + templateUrl: './donor-modal.component.html', + styleUrls: ['./donor-modal.component.css'] +}) +export class DonorModalComponent implements OnInit { + @Input() bookId; + @Input() bookTitle; + + showDonor = false; + userInfo$: Observable; + + constructor(public activeModal: NgbActiveModal, + private readonly _bookService: BookService, + private readonly _userService: UserService) { } + + ngOnInit() { + this.userInfo$ = this._bookService.getMainUsers(this.bookId).pipe( + map(userInfo => { + + const loggedUser = this.getLoggedUser(); + if (loggedUser.email === userInfo.winner.email) { + this.showDonor = true; + } + + return userInfo; + }) + ); + } + + private getLoggedUser(): User { + let loggedUser = new User(); + if (this._userService.getLoggedUserFromLocalStorage()) { + loggedUser = this._userService.getLoggedUserFromLocalStorage(); + } + return loggedUser; + } +} diff --git a/src/app/components/book/main-users/main-users.component.ts b/src/app/components/book/main-users/main-users.component.ts index a51f4a1d..752f6258 100644 --- a/src/app/components/book/main-users/main-users.component.ts +++ b/src/app/components/book/main-users/main-users.component.ts @@ -20,26 +20,27 @@ export class MainUsersComponent implements OnInit, OnDestroy { private _destroySubscribes$ = new Subject(); - constructor(public activeModal: NgbActiveModal, private _scBook: BookService) {} + constructor(public activeModal: NgbActiveModal, private _scBook: BookService) { } ngOnInit() { this.isLoading = true; this._scBook.getMainUsers(this.bookId) - .pipe( - takeUntil(this._destroySubscribes$) - ) - .subscribe( - resp => { - this.isLoading = false; - - this.mainUsers[0] = !!resp.donor ? resp.donor : ''; - this.mainUsers[1] = !!resp.facilitator ? resp.facilitator : ''; - this.mainUsers[2] = !!resp.winner ? resp.winner : ''; - }, - error => { - this.isLoading = false; - } - ); + .pipe( + takeUntil(this._destroySubscribes$) + ) + .subscribe( + resp => { + this.isLoading = false; + const emptyUserInfo = new UserInfo(); + this.mainUsers[0] = !!resp.donor ? resp.donor : emptyUserInfo; + this.mainUsers[1] = !!resp.facilitator ? resp.facilitator : emptyUserInfo; + this.mainUsers[2] = !!resp.winner ? resp.winner : emptyUserInfo; + + }, + error => { + this.isLoading = false; + } + ); } ngOnDestroy() { diff --git a/src/app/components/book/requesteds/requesteds.component.html b/src/app/components/book/requesteds/requesteds.component.html index b23c4651..fc859569 100644 --- a/src/app/components/book/requesteds/requesteds.component.html +++ b/src/app/components/book/requesteds/requesteds.component.html @@ -1,13 +1,16 @@

    Meus Pedidos

    -
    + + -
    -
    - + +
    + +

    Voltar

    +
    diff --git a/src/app/components/book/requesteds/requesteds.component.ts b/src/app/components/book/requesteds/requesteds.component.ts index fd323af1..33b6a1a0 100644 --- a/src/app/components/book/requesteds/requesteds.component.ts +++ b/src/app/components/book/requesteds/requesteds.component.ts @@ -1,9 +1,13 @@ import { Component, OnInit, OnDestroy } from '@angular/core'; -import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { Subject, Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; + +import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { BookService } from '../../../core/services/book/book.service'; import { BookRequestStatus, getStatusDescription } from '../../../core/models/BookRequestStatus'; +import { MyRequest } from 'src/app/core/models/MyRequest'; +import { DonorModalComponent } from '../donor-modal/donor-modal.component'; @Component({ selector: 'app-requesteds', @@ -11,25 +15,36 @@ import { BookRequestStatus, getStatusDescription } from '../../../core/models/Bo styleUrls: ['./requesteds.component.css'], }) export class RequestedsComponent implements OnInit, OnDestroy { - requestedBooks = new Array(); + requestedBooks$: Observable; tableSettings: any; - isLoading: boolean; private _destroySubscribes$ = new Subject(); - constructor(private _bookService: BookService) {} + constructor(private _bookService: BookService, private _modalService: NgbModal) { } ngOnInit() { - this.isLoading = true; + this.buscarDados(); + this.inicializarTabela(); + } + + private buscarDados() { + this.requestedBooks$ = this._bookService.getRequestedBooks(1, 9999) + .pipe( + map(requestedBooks => { + requestedBooks.items.map(item => { + const badgeColor = this.getBadgeColor(item.status); + item.status = this.addBadgeToStatusColumn(badgeColor, item.status); + }); - this._bookService - .getRequestedBooks(1, 9999) - .pipe(takeUntil(this._destroySubscribes$)) - .subscribe((resp) => { - this.requestedBooks = resp.items; - this.addBadgeToStatusColumn(); - this.isLoading = false; - }); + return requestedBooks; + }) + ); + } + + private inicializarTabela() { + const btnShowUserBookInfo = + '' + + ' '; this.tableSettings = { columns: { @@ -44,14 +59,22 @@ export class RequestedsComponent implements OnInit, OnDestroy { status: { title: 'Status', width: '25%', - type: 'html', - }, + type: 'html' + } }, actions: { delete: false, edit: false, add: false, update: false, + columnTitle: 'Doador', + custom: [ + { + name: 'showUserBookInfo', + title: btnShowUserBookInfo, + } + ], + position: 'right' }, attr: { class: 'table table-bordered table-hover table-striped', @@ -60,24 +83,39 @@ export class RequestedsComponent implements OnInit, OnDestroy { }; } - public addBadgeToStatusColumn() { - this.requestedBooks.forEach((book) => { - let badgeColor = ''; + private getBadgeColor(status: string): string { + let badgeColor = ''; + switch (status) { + case BookRequestStatus.DONATED: + badgeColor = 'success'; + break; + case BookRequestStatus.REFUSED: + badgeColor = 'danger'; + break; + default: + badgeColor = 'light'; + break; + } + return badgeColor; + } - switch (book.status) { - case BookRequestStatus.DONATED: - badgeColor = 'success'; - break; - case BookRequestStatus.REFUSED: - badgeColor = 'danger'; - break; - default: - badgeColor = 'light'; - break; - } + private addBadgeToStatusColumn(badgeColor: string, itemStatus): string { + return `${getStatusDescription(itemStatus)}`; + } - book.status = `${getStatusDescription(book.status)}`; - }); + onCustomActionColum(event) { + switch (event.action) { + case 'showUserBookInfo': { + const modalRef = this._modalService.open(DonorModalComponent, { + backdropClass: 'light-blue-backdrop', + centered: true, + }); + + modalRef.componentInstance.bookId = event.data.bookId; + modalRef.componentInstance.bookTitle = event.data.title; + break; + } + } } ngOnDestroy() { diff --git a/src/app/core/models/MyRequest.ts b/src/app/core/models/MyRequest.ts new file mode 100644 index 00000000..d923a5c0 --- /dev/null +++ b/src/app/core/models/MyRequest.ts @@ -0,0 +1,33 @@ +export class MyRequest { + page: number; + itemsPerPage: number; + totalItems: number; + items?: [ + { + requestId?: string; + title?: string; + author?: string; + status?: string; + bookStatus?: string; + trackingNumber?: string; + bookId?: string; + slug?: string; + } + ]; + + constructor(myRequest?: MyRequest) { + this.page = 0; + this.itemsPerPage = 0; + this.totalItems = 0; + this.items = [{ + requestId: '', + title: '', + author: '', + status: '', + bookStatus: '', + trackingNumber: '', + bookId: '', + slug: '' + }]; + } +} diff --git a/src/app/core/models/UserInfoBook.ts b/src/app/core/models/UserInfoBook.ts new file mode 100644 index 00000000..140f8802 --- /dev/null +++ b/src/app/core/models/UserInfoBook.ts @@ -0,0 +1,7 @@ +import { UserInfo } from './userInfo'; + +export class UserInfoBook { + donor: UserInfo; + facilitator: UserInfo; + winner: UserInfo; +} diff --git a/src/app/core/services/book/book.service.ts b/src/app/core/services/book/book.service.ts index 293d5cee..d998b36c 100644 --- a/src/app/core/services/book/book.service.ts +++ b/src/app/core/services/book/book.service.ts @@ -1,3 +1,4 @@ +import { UserInfoBook } from './../../models/UserInfoBook'; import { Injectable, Inject } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { Book } from '../../models/book'; @@ -10,6 +11,7 @@ import { TrackingNumberBookVM } from '../../models/trackingNumberBookVM'; import { FacilitatorNotes } from '../../models/facilitatorNotes'; import { Observable } from 'rxjs'; import { Requesters } from '../../models/requesters'; +import { MyRequest } from '../../models/MyRequest'; @Injectable({ providedIn: 'root', @@ -129,7 +131,7 @@ export class BookService { } public getRequestedBooks(page: number, items: number) { - return this._http.get( + return this._http.get( `${this.config.apiEndpoint}/book/MyRequests/${page}/${items}` ); } @@ -167,8 +169,8 @@ export class BookService { ); } - public getMainUsers(bookId: string) { - return this._http.get( + public getMainUsers(bookId: string): Observable { + return this._http.get( `${this.config.apiEndpoint}/book/MainUsers/${bookId}` ); } From 9e1b9a3627ac067ca3082693cac502875afb99d3 Mon Sep 17 00:00:00 2001 From: Luciano Souza Date: Sun, 2 May 2021 18:10:13 -0300 Subject: [PATCH 19/24] Ajustes para atender o sonar --- .../book/donor-modal/donor-modal.component.html | 2 +- .../book/requesteds/requesteds.component.ts | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/app/components/book/donor-modal/donor-modal.component.html b/src/app/components/book/donor-modal/donor-modal.component.html index 392c29d7..cea9a3ba 100644 --- a/src/app/components/book/donor-modal/donor-modal.component.html +++ b/src/app/components/book/donor-modal/donor-modal.component.html @@ -9,7 +9,7 @@
    diff --git a/src/app/components/book/winner-users/winner-users.component.ts b/src/app/components/book/winner-users/winner-users.component.ts index 24b0f724..1281f032 100644 --- a/src/app/components/book/winner-users/winner-users.component.ts +++ b/src/app/components/book/winner-users/winner-users.component.ts @@ -31,7 +31,7 @@ export class WinnerUsersComponent implements OnInit, OnDestroy { .subscribe( resp => { this.isLoading = false; - this.winnerUsers[0] = !!resp.winner ? resp.winner : ''; + this.winnerUsers[0] = !!resp.winner ? resp.winner : null; }, error => { this.isLoading = false; From 962bdc60b71c53036826e58159b4a8728fcea489 Mon Sep 17 00:00:00 2001 From: Raffaello Damgaard Date: Mon, 3 May 2021 14:14:33 -0300 Subject: [PATCH 21/24] Desabilitando e-books temporariamente. --- src/app/components/home/home.component.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/components/home/home.component.html b/src/app/components/home/home.component.html index 8f736fe4..2ae8abba 100644 --- a/src/app/components/home/home.component.html +++ b/src/app/components/home/home.component.html @@ -66,6 +66,7 @@

    Livros em destaque

    + From a011f19a18d80e4ca316bd11e3847dc714115da6 Mon Sep 17 00:00:00 2001 From: Raffaello Damgaard Date: Mon, 3 May 2021 14:16:12 -0300 Subject: [PATCH 22/24] Pequeno ajuste na tela Meus pedidos. --- .../book/requesteds/requesteds.component.ts | 17 +++++++++++++++-- src/app/core/models/MyRequest.ts | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/app/components/book/requesteds/requesteds.component.ts b/src/app/components/book/requesteds/requesteds.component.ts index b6765209..f0205da7 100644 --- a/src/app/components/book/requesteds/requesteds.component.ts +++ b/src/app/components/book/requesteds/requesteds.component.ts @@ -33,7 +33,9 @@ export class RequestedsComponent implements OnInit, OnDestroy { map(requestedBooks => { requestedBooks.items.map(item => { const badgeColor = this.getBadgeColor(item.status); + item.statusCode = item.status; item.status = this.addBadgeToStatusColumn(badgeColor, item.status); + }); return requestedBooks; @@ -43,8 +45,8 @@ export class RequestedsComponent implements OnInit, OnDestroy { private inicializarTabela() { const btnShowUserBookInfo = - '' + - ' '; + '' + + ' '; this.tableSettings = { columns: { @@ -104,6 +106,17 @@ export class RequestedsComponent implements OnInit, OnDestroy { } onCustomActionColum(event) { + + if (event.data.statusCode === BookRequestStatus.AWAITING_ACTION) { + alert('Por favor aguarde a decisão do doador.'); + return; + } + + if (event.data.statusCode === BookRequestStatus.REFUSED) { + alert('Você não é o ganhador desse livro. =/'); + return; + } + const modalRef = this._modalService.open(DonorModalComponent, { backdropClass: 'light-blue-backdrop', centered: true, diff --git a/src/app/core/models/MyRequest.ts b/src/app/core/models/MyRequest.ts index d923a5c0..d2a77bd8 100644 --- a/src/app/core/models/MyRequest.ts +++ b/src/app/core/models/MyRequest.ts @@ -8,6 +8,7 @@ export class MyRequest { title?: string; author?: string; status?: string; + statusCode: string; bookStatus?: string; trackingNumber?: string; bookId?: string; @@ -24,6 +25,7 @@ export class MyRequest { title: '', author: '', status: '', + statusCode: '', bookStatus: '', trackingNumber: '', bookId: '', From 4fb712cfec0ad465ed13cdf7d7401379ed955f2c Mon Sep 17 00:00:00 2001 From: Luciano Souza Date: Mon, 3 May 2021 19:45:45 -0300 Subject: [PATCH 23/24] =?UTF-8?q?Corre=C3=A7=C3=B5es=20na=20verifica=C3=A7?= =?UTF-8?q?=C3=A3o=20do=20doador,=20e=20dados=20mostrados?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../donor-modal/donor-modal.component.html | 26 +++++---------- .../book/donor-modal/donor-modal.component.ts | 33 ++++++++----------- .../book/requesteds/requesteds.component.ts | 9 ++--- 3 files changed, 28 insertions(+), 40 deletions(-) diff --git a/src/app/components/book/donor-modal/donor-modal.component.html b/src/app/components/book/donor-modal/donor-modal.component.html index cea9a3ba..41ae6c1f 100644 --- a/src/app/components/book/donor-modal/donor-modal.component.html +++ b/src/app/components/book/donor-modal/donor-modal.component.html @@ -8,32 +8,24 @@
    diff --git a/src/app/components/book/donor-modal/donor-modal.component.ts b/src/app/components/book/donor-modal/donor-modal.component.ts index aa42cd85..f2f1edb9 100644 --- a/src/app/components/book/donor-modal/donor-modal.component.ts +++ b/src/app/components/book/donor-modal/donor-modal.component.ts @@ -6,8 +6,6 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { BookService } from 'src/app/core/services/book/book.service'; import { UserInfoBook } from 'src/app/core/models/UserInfoBook'; -import { User } from 'src/app/core/models/user'; -import { UserService } from 'src/app/core/services/user/user.service'; @Component({ selector: 'app-donor-modal', @@ -17,33 +15,30 @@ import { UserService } from 'src/app/core/services/user/user.service'; export class DonorModalComponent implements OnInit { @Input() bookId; @Input() bookTitle; + @Input() messageBody; + loading: boolean; - showDonor = false; userInfo$: Observable; constructor(public activeModal: NgbActiveModal, - private readonly _bookService: BookService, - private readonly _userService: UserService) { } + private readonly _bookService: BookService) { } ngOnInit() { - this.userInfo$ = this._bookService.getMainUsers(this.bookId).pipe( - map(userInfo => { + this.loading = true; + if (this.messageBody === '') { + this.getDonor(); + } else { + this.loading = false; + } + } - const loggedUser = this.getLoggedUser(); - if (loggedUser.email === userInfo.winner.email) { - this.showDonor = true; - } + private getDonor() { + this.userInfo$ = this._bookService.getMainUsers(this.bookId).pipe( + map(userInfo => { + this.loading = false; return userInfo; }) ); } - - private getLoggedUser(): User { - let loggedUser = new User(); - if (this._userService.getLoggedUserFromLocalStorage()) { - loggedUser = this._userService.getLoggedUserFromLocalStorage(); - } - return loggedUser; - } } diff --git a/src/app/components/book/requesteds/requesteds.component.ts b/src/app/components/book/requesteds/requesteds.component.ts index f0205da7..4f27604d 100644 --- a/src/app/components/book/requesteds/requesteds.component.ts +++ b/src/app/components/book/requesteds/requesteds.component.ts @@ -17,6 +17,7 @@ import { DonorModalComponent } from '../donor-modal/donor-modal.component'; export class RequestedsComponent implements OnInit, OnDestroy { requestedBooks$: Observable; tableSettings: any; + private _messageToModalBody: string; private _destroySubscribes$ = new Subject(); @@ -106,15 +107,14 @@ export class RequestedsComponent implements OnInit, OnDestroy { } onCustomActionColum(event) { + this._messageToModalBody = ''; if (event.data.statusCode === BookRequestStatus.AWAITING_ACTION) { - alert('Por favor aguarde a decisão do doador.'); - return; + this._messageToModalBody = 'Por favor aguarde a decisão do doador.'; } if (event.data.statusCode === BookRequestStatus.REFUSED) { - alert('Você não é o ganhador desse livro. =/'); - return; + this._messageToModalBody = 'Você não é o ganhador desse livro. =/'; } const modalRef = this._modalService.open(DonorModalComponent, { @@ -124,6 +124,7 @@ export class RequestedsComponent implements OnInit, OnDestroy { modalRef.componentInstance.bookId = event.data.bookId; modalRef.componentInstance.bookTitle = event.data.title; + modalRef.componentInstance.messageBody = this._messageToModalBody; } ngOnDestroy() { From d5c53d90ae225abd594cb3a261f5d6a133938d4d Mon Sep 17 00:00:00 2001 From: Luciano Souza Date: Tue, 4 May 2021 14:18:20 -0300 Subject: [PATCH 24/24] =?UTF-8?q?Ajuste=20para=20build=20em=20produ=C3=A7?= =?UTF-8?q?=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/book/donor-modal/donor-modal.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/components/book/donor-modal/donor-modal.component.html b/src/app/components/book/donor-modal/donor-modal.component.html index 41ae6c1f..063f518b 100644 --- a/src/app/components/book/donor-modal/donor-modal.component.html +++ b/src/app/components/book/donor-modal/donor-modal.component.html @@ -14,11 +14,11 @@
    - +
    {{messageBody}}
    - +
    Doador

    Nome: {{ donor.name }}

    E-mail: {{ donor.email }}