diff --git a/src/main/angular/src/app/api/Subscribed.ts b/src/main/angular/src/app/api/Subscribed.ts index d77fdce..bba809a 100644 --- a/src/main/angular/src/app/api/Subscribed.ts +++ b/src/main/angular/src/app/api/Subscribed.ts @@ -20,10 +20,7 @@ export class Subscribed { set value(value: T | null) { if (!this.isSame(value)) { - if (this.subscription) { - this.subscription.unsubscribe(); - this.subscription = null; - } + this.unsubscribe(); if (value) { this.subscription = this.subscribe(value, next => this.value = next); } @@ -31,6 +28,13 @@ export class Subscribed { this._value = value; } + public unsubscribe() { + if (this.subscription) { + this.subscription.unsubscribe(); + this.subscription = null; + } + } + private isSame(value: T | null) { if (this._value === null) { return value === null; diff --git a/src/main/angular/src/app/api/common/Page.ts b/src/main/angular/src/app/api/common/Page.ts index 51d1745..a90508f 100644 --- a/src/main/angular/src/app/api/common/Page.ts +++ b/src/main/angular/src/app/api/common/Page.ts @@ -17,10 +17,10 @@ export class Page { static fromJson(fromJson: FromJson): FromJson> { return (json: any) => new Page( - validateNumber(json.size), - validateNumber(json.number), - validateNumber(json.totalPages), - validateNumber(json.totalElements), + validateNumber(json.page.size), + validateNumber(json.page.number), + validateNumber(json.page.totalPages), + validateNumber(json.page.totalElements), validateList(json.content, fromJson), ); } diff --git a/src/main/angular/src/app/pages/group/group/group.component.ts b/src/main/angular/src/app/pages/group/group/group.component.ts index 9402e4f..357d10e 100644 --- a/src/main/angular/src/app/pages/group/group/group.component.ts +++ b/src/main/angular/src/app/pages/group/group/group.component.ts @@ -77,6 +77,7 @@ export class GroupComponent implements OnInit, OnDestroy { this.timer.unsubscribe(); this.timer = undefined; } + this.group.unsubscribe(); } protected changeTitle(group: Group, title: string) { diff --git a/src/main/java/de/ph87/tools/web/WebConfig.java b/src/main/java/de/ph87/tools/web/WebConfig.java index 9c86b25..6685944 100644 --- a/src/main/java/de/ph87/tools/web/WebConfig.java +++ b/src/main/java/de/ph87/tools/web/WebConfig.java @@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; +import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; @@ -18,8 +19,11 @@ import org.springframework.web.servlet.resource.PathResourceResolver; import java.io.IOException; import java.util.List; +import static org.springframework.data.web.config.EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO; + @Configuration @RequiredArgsConstructor +@EnableSpringDataWebSupport(pageSerializationMode = VIA_DTO) public class WebConfig implements WebMvcConfigurer { @Override