Skip to content

Commit

Permalink
Fixed the manageables overview setup.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed Jul 8, 2017
1 parent acd05c9 commit 55dd6f3
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 13 deletions.
19 changes: 12 additions & 7 deletions rapidoid-web/src/main/java/org/rapidoid/goodies/Goodies.java
Expand Up @@ -4,12 +4,10 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.cls.Cls;
import org.rapidoid.dbadmin.DbAdmin;
import org.rapidoid.dbadmin.ManageableRdbms;
import org.rapidoid.goodies.discovery.DiscoveryIndexHandler;
import org.rapidoid.goodies.discovery.DiscoveryRegistrationHandler;
import org.rapidoid.goodies.discovery.DiscoveryState;
import org.rapidoid.group.Groups;
import org.rapidoid.gui.GUI;
import org.rapidoid.http.HttpUtils;
import org.rapidoid.http.HttpVerb;
Expand Down Expand Up @@ -117,17 +115,24 @@ public static void processes(Setup setup) {
}

public static void manageables(Setup setup) {
setup.page(uri("manageables")).mvc(new ManageablesOverviewPage());
setup.page(uri("manageables/{type}/{id}/*")).mvc(new ManageableDetailsPage());
String baseUri = uri("manageables");

ManageablesOverviewPage overview = new ManageablesOverviewPage()
.baseUri(baseUri);

setup.page(baseUri).mvc(overview);

ManageableDetailsPage details = new ManageableDetailsPage()
.baseUri(baseUri);

setup.page(uri("manageables/{type}/{id}/*")).mvc(details);
}

public static void dbAdmin(Setup setup) {
DbAdmin.bootstrap();

String baseUri = uri("db");

ManageablesOverviewPage overview = new ManageablesOverviewPage()
.groups(Groups.find(ManageableRdbms.class))
.groupType(ManageableRdbms.class)
.baseUri(baseUri);

setup.page(baseUri).mvc(overview);
Expand Down
Expand Up @@ -7,8 +7,6 @@
import org.rapidoid.group.Manageable;
import org.rapidoid.gui.GUI;
import org.rapidoid.gui.Grid;
import org.rapidoid.http.Current;
import org.rapidoid.http.Req;
import org.rapidoid.lambda.Mapper;
import org.rapidoid.u.U;
import org.rapidoid.util.Msc;
Expand Down Expand Up @@ -43,13 +41,15 @@ public class ManageablesOverviewPage extends GUI implements Callable<Object> {

private volatile Collection<? extends GroupOf<?>> groups;

private volatile Class<? extends Manageable> groupType;

private volatile String baseUri;

@Override
public Object call() throws Exception {

List<Object> info = U.list();
Collection<? extends GroupOf<?>> targetGroups = groups != null ? groups : Groups.all();
Collection<? extends GroupOf<?>> targetGroups = retrieveTargetGroups();

for (GroupOf<?> group : targetGroups) {
List<? extends Manageable> items = group.items();
Expand All @@ -65,6 +65,18 @@ public Object call() throws Exception {
return multi(info);
}

private Collection<? extends GroupOf<?>> retrieveTargetGroups() {
if (groups != null) {
return groups;
} else {
if (groupType != null) {
return Groups.find(groupType);
} else {
return Groups.all();
}
}
}

public static void addInfo(String baseUri, List<Object> info, List<String> nav, List<? extends Manageable> items) {
if (U.notEmpty(items)) {
List<String> columns = U.list(U.first(items).getManageableProperties());
Expand All @@ -89,10 +101,8 @@ protected static void addInfo(final String baseUri, List<Object> info, final Lis
@Override
public String map(Manageable item) throws Exception {

Req req = Current.request();

final List<String> uri = U.list(nav);
uri.add(0, baseUri);
uri.add(0, U.safe(baseUri));
uri.add(item.id());

return Msc.uri(U.arrayOf(uri));
Expand Down Expand Up @@ -120,4 +130,13 @@ public ManageablesOverviewPage baseUri(String baseUri) {
this.baseUri = baseUri;
return this;
}

public Class<? extends Manageable> groupType() {
return groupType;
}

public ManageablesOverviewPage groupType(Class<? extends Manageable> groupType) {
this.groupType = groupType;
return this;
}
}

0 comments on commit 55dd6f3

Please sign in to comment.