]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9702 expand root dir with branch on code page
authorStas Vilchik <stas.vilchik@sonarsource.com>
Thu, 28 Sep 2017 13:22:15 +0000 (15:22 +0200)
committerStas Vilchik <stas.vilchik@sonarsource.com>
Mon, 2 Oct 2017 13:12:06 +0000 (15:12 +0200)
server/sonar-web/src/main/js/apps/code/utils.ts

index cd60dff2dd98c6326427774b47a88021e2705af1..9e8c7c3ceb659feea501d1f372d33f687bb05885 100644 (file)
@@ -54,11 +54,12 @@ const PAGE_SIZE = 100;
 function requestChildren(
   componentKey: string,
   metrics: string[],
-  page: number
+  page: number,
+  branch?: string
 ): Promise<Component[]> {
-  return getChildren(componentKey, metrics, { p: page, ps: PAGE_SIZE }).then(r => {
+  return getChildren(componentKey, metrics, { branch, p: page, ps: PAGE_SIZE }).then(r => {
     if (r.paging.total > r.paging.pageSize * r.paging.pageIndex) {
-      return requestChildren(componentKey, metrics, page + 1).then(moreComponents => {
+      return requestChildren(componentKey, metrics, page + 1, branch).then(moreComponents => {
         return [...r.components, ...moreComponents];
       });
     }
@@ -66,8 +67,12 @@ function requestChildren(
   });
 }
 
-function requestAllChildren(componentKey: string, metrics: string[]): Promise<Component[]> {
-  return requestChildren(componentKey, metrics, 1);
+function requestAllChildren(
+  componentKey: string,
+  metrics: string[],
+  branch?: string
+): Promise<Component[]> {
+  return requestChildren(componentKey, metrics, 1, branch);
 }
 
 interface Children {
@@ -80,13 +85,13 @@ interface ExpandRootDirFunc {
   (children: Children): Promise<Children>;
 }
 
-function expandRootDir(metrics: string[]): ExpandRootDirFunc {
+function expandRootDir(metrics: string[], branch?: string): ExpandRootDirFunc {
   return function({ components, total, ...other }) {
     const rootDir = components.find(
       (component: Component) => component.qualifier === 'DIR' && component.name === '/'
     );
     if (rootDir) {
-      return requestAllChildren(rootDir.key, metrics).then(rootDirComponents => {
+      return requestAllChildren(rootDir.key, metrics, branch).then(rootDirComponents => {
         const nextComponents = without([...rootDirComponents, ...components], rootDir);
         const nextTotal = total + rootDirComponents.length - /* root dir */ 1;
         return { components: nextComponents, total: nextTotal, ...other };
@@ -161,7 +166,7 @@ export function retrieveComponentChildren(
 
   return getChildren(componentKey, metrics, { branch, ps: PAGE_SIZE, s: 'qualifier,name' })
     .then(prepareChildren)
-    .then(expandRootDir(metrics))
+    .then(expandRootDir(metrics, branch))
     .then(r => {
       addComponentChildren(componentKey, r.components, r.total, r.page);
       storeChildrenBase(r.components);
@@ -223,7 +228,7 @@ export function loadMoreChildren(
 
   return getChildren(componentKey, metrics, { branch, ps: PAGE_SIZE, p: page })
     .then(prepareChildren)
-    .then(expandRootDir(metrics))
+    .then(expandRootDir(metrics, branch))
     .then(r => {
       addComponentChildren(componentKey, r.components, r.total, r.page);
       storeChildrenBase(r.components);