Feat: App Positioning Feature Backend Implementation (#19514)
## Description Implements backend functionality for App Positioning (Auto Layout) Feature Fixes #19348 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - JUnit - Manual ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] PR is being merged under a feature flag ### QA activity: - [ ] Test plan has been approved by relevant developers - [ ] Test plan has been peer reviewed by QA - [ ] Cypress test cases have been added and approved by either SDET or manual QA - [ ] Organized project review call with relevant stakeholders after Round 1/2 of QA - [ ] Added Test Plan Approved label after reveiwing all Cypress test
This commit is contained in:
parent
9c30dadd31
commit
75a8cbf288
|
|
@ -114,6 +114,11 @@ public class Application extends BaseDomain {
|
||||||
|
|
||||||
NavigationSetting publishedNavigationSetting;
|
NavigationSetting publishedNavigationSetting;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
AppPositioning publishedAppPositioning;
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
|
AppPositioning unpublishedAppPositioning;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Earlier this was returning value of the updatedAt property in the base domain.
|
* Earlier this was returning value of the updatedAt property in the base domain.
|
||||||
|
|
@ -179,6 +184,8 @@ public class Application extends BaseDomain {
|
||||||
this.icon = application.getIcon();
|
this.icon = application.getIcon();
|
||||||
this.unpublishedAppLayout = application.getUnpublishedAppLayout() == null ? null : new AppLayout(application.getUnpublishedAppLayout().type);
|
this.unpublishedAppLayout = application.getUnpublishedAppLayout() == null ? null : new AppLayout(application.getUnpublishedAppLayout().type);
|
||||||
this.publishedAppLayout = application.getPublishedAppLayout() == null ? null : new AppLayout(application.getPublishedAppLayout().type);
|
this.publishedAppLayout = application.getPublishedAppLayout() == null ? null : new AppLayout(application.getPublishedAppLayout().type);
|
||||||
|
this.unpublishedAppPositioning = application.getUnpublishedAppPositioning() == null ? null : new AppPositioning(application.getUnpublishedAppPositioning().type);
|
||||||
|
this.publishedAppPositioning = application.getPublishedAppPositioning() == null ? null : new AppPositioning(application.getPublishedAppPositioning().type);
|
||||||
this.unpublishedCustomJSLibs = application.getUnpublishedCustomJSLibs();
|
this.unpublishedCustomJSLibs = application.getUnpublishedCustomJSLibs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -281,4 +288,36 @@ public class Application extends BaseDomain {
|
||||||
private Boolean showShareApp;
|
private Boolean showShareApp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AppPositioning getAppPositioning() {
|
||||||
|
return Boolean.TRUE.equals(viewMode) ? publishedAppPositioning : unpublishedAppPositioning;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppPositioning(AppPositioning appPositioning) {
|
||||||
|
if (Boolean.TRUE.equals(viewMode)) {
|
||||||
|
publishedAppPositioning = appPositioning;
|
||||||
|
} else {
|
||||||
|
unpublishedAppPositioning = appPositioning;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AppPositioning captures widget positioning Mode of the application
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
public static class AppPositioning {
|
||||||
|
Type type;
|
||||||
|
|
||||||
|
public AppPositioning(Type type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Type {
|
||||||
|
FIXED,
|
||||||
|
AUTO
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1011,6 +1011,7 @@ public class ApplicationPageServiceCEImpl implements ApplicationPageServiceCE {
|
||||||
application.setPublishedPages(pages);
|
application.setPublishedPages(pages);
|
||||||
|
|
||||||
application.setPublishedAppLayout(application.getUnpublishedAppLayout());
|
application.setPublishedAppLayout(application.getUnpublishedAppLayout());
|
||||||
|
application.setPublishedAppPositioning(application.getUnpublishedAppPositioning());
|
||||||
if (isPublishedManually) {
|
if (isPublishedManually) {
|
||||||
application.setLastDeployedAt(Instant.now());
|
application.setLastDeployedAt(Instant.now());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2210,6 +2210,7 @@ public class ApplicationServiceCETest {
|
||||||
String appName = "ApplicationServiceTest Publish Application";
|
String appName = "ApplicationServiceTest Publish Application";
|
||||||
testApplication.setName(appName);
|
testApplication.setName(appName);
|
||||||
testApplication.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
testApplication.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
||||||
|
testApplication.setAppPositioning(new Application.AppPositioning(Application.AppPositioning.Type.FIXED));
|
||||||
Mono<Application> applicationMono = applicationPageService.createApplication(testApplication, workspaceId)
|
Mono<Application> applicationMono = applicationPageService.createApplication(testApplication, workspaceId)
|
||||||
.flatMap(application -> applicationPageService.publish(application.getId(), true))
|
.flatMap(application -> applicationPageService.publish(application.getId(), true))
|
||||||
.then(applicationService.findByName(appName, MANAGE_APPLICATIONS))
|
.then(applicationService.findByName(appName, MANAGE_APPLICATIONS))
|
||||||
|
|
@ -2241,6 +2242,7 @@ public class ApplicationServiceCETest {
|
||||||
assertThat(newPage.getUnpublishedPage().getLayouts().get(0).getDsl()).isEqualTo(newPage.getPublishedPage().getLayouts().get(0).getDsl());
|
assertThat(newPage.getUnpublishedPage().getLayouts().get(0).getDsl()).isEqualTo(newPage.getPublishedPage().getLayouts().get(0).getDsl());
|
||||||
|
|
||||||
assertThat(application.getPublishedAppLayout()).isEqualTo(application.getUnpublishedAppLayout());
|
assertThat(application.getPublishedAppLayout()).isEqualTo(application.getUnpublishedAppLayout());
|
||||||
|
assertThat(application.getPublishedAppPositioning()).isEqualTo(application.getUnpublishedAppPositioning());
|
||||||
})
|
})
|
||||||
.verifyComplete();
|
.verifyComplete();
|
||||||
}
|
}
|
||||||
|
|
@ -2264,6 +2266,7 @@ public class ApplicationServiceCETest {
|
||||||
String appName = "Publish Application With Archived Page";
|
String appName = "Publish Application With Archived Page";
|
||||||
testApplication.setName(appName);
|
testApplication.setName(appName);
|
||||||
testApplication.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
testApplication.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
||||||
|
testApplication.setAppPositioning(new Application.AppPositioning(Application.AppPositioning.Type.FIXED));
|
||||||
Mono<Tuple3<NewAction, ActionCollection, NewPage>> resultMono = applicationPageService.createApplication(testApplication, workspaceId)
|
Mono<Tuple3<NewAction, ActionCollection, NewPage>> resultMono = applicationPageService.createApplication(testApplication, workspaceId)
|
||||||
.flatMap(application -> {
|
.flatMap(application -> {
|
||||||
PageDTO page = new PageDTO();
|
PageDTO page = new PageDTO();
|
||||||
|
|
@ -2364,6 +2367,7 @@ public class ApplicationServiceCETest {
|
||||||
public void publishApplication_withGitConnectedApp_success() {
|
public void publishApplication_withGitConnectedApp_success() {
|
||||||
GitApplicationMetadata gitData = gitConnectedApp.getGitApplicationMetadata();
|
GitApplicationMetadata gitData = gitConnectedApp.getGitApplicationMetadata();
|
||||||
gitConnectedApp.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
gitConnectedApp.setAppLayout(new Application.AppLayout(Application.AppLayout.Type.DESKTOP));
|
||||||
|
gitConnectedApp.setAppPositioning(new Application.AppPositioning(Application.AppPositioning.Type.FIXED));
|
||||||
|
|
||||||
Mono<Application> applicationMono = applicationService.update(gitConnectedApp.getId(), gitConnectedApp)
|
Mono<Application> applicationMono = applicationService.update(gitConnectedApp.getId(), gitConnectedApp)
|
||||||
.flatMap(updatedApp -> applicationPageService.publish(updatedApp.getId(), gitData.getBranchName(), true))
|
.flatMap(updatedApp -> applicationPageService.publish(updatedApp.getId(), gitData.getBranchName(), true))
|
||||||
|
|
@ -2394,6 +2398,7 @@ public class ApplicationServiceCETest {
|
||||||
assertThat(newPage.getDefaultResources()).isNotNull();
|
assertThat(newPage.getDefaultResources()).isNotNull();
|
||||||
|
|
||||||
assertThat(application.getPublishedAppLayout()).isEqualTo(application.getUnpublishedAppLayout());
|
assertThat(application.getPublishedAppLayout()).isEqualTo(application.getUnpublishedAppLayout());
|
||||||
|
assertThat(application.getPublishedAppPositioning()).isEqualTo(application.getUnpublishedAppPositioning());
|
||||||
})
|
})
|
||||||
.verifyComplete();
|
.verifyComplete();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user