diff --git a/resources/WebContent/page/ConfigPage.tmpl b/resources/WebContent/page/ConfigPage.tmpl
index 5d5f1f9..143573e 100644
--- a/resources/WebContent/page/ConfigPage.tmpl
+++ b/resources/WebContent/page/ConfigPage.tmpl
@@ -1,20 +1,30 @@
-
+
Service Status
-
+
| Service |
- Status |
- Action |
+ Description |
+ Actions |
-
+ {{! #data}}
+
| {{.getName()}} |
- |
- [EDIT][DISABLE][REMOVE] |
+ {{.getValue()}} |
+
+
+ {{^.enabled}}{{/.enabled}}
+ {{#.enabled}}{{/.enabled}}
+
+ |
+ {{! /data}}
-
+
\ No newline at end of file
diff --git a/src/wa/server/page/ServicePage.java b/src/wa/server/page/ServicePage.java
index 133aa48..567bc28 100644
--- a/src/wa/server/page/ServicePage.java
+++ b/src/wa/server/page/ServicePage.java
@@ -50,11 +50,13 @@ public class ServicePage implements WAPage {
private ServiceStatusPage rootStatusPage;
private ArrayList services;
private ArrayList statusPages;
+ private ArrayList configPages;
public ServicePage(PluginManager pluginManager){
this.services = pluginManager.toArray(WAService.class);
this.rootStatusPage = new ServiceStatusPage(pluginManager);
this.statusPages = new ArrayList<>();
+ this.configPages = new ArrayList<>();
WANavigation nav = WANavigation.createRootNav(NAVIGATION_NAME);
nav.setResource(this);
@@ -64,8 +66,10 @@ public class ServicePage implements WAPage {
WANavigation serviceNav = nav.createSubNav(plugin.getName());
serviceNav.setResource(plugin);
for(WAServiceConfig conf : plugin.getConfigurations()){
+ ConfigPage page = new ConfigPage(conf);
+ configPages.add(page);
serviceNav.createSubNav(conf.getName())
- .setResource(new ConfigPage(conf));
+ .setResource(page);
}
}
}
@@ -79,15 +83,20 @@ public class ServicePage implements WAPage {
Map request) {
try {
-
- int index = services.indexOf(context.getBreadcrumb().get(1).getResource());
- if (index >= 0) {
+ Object resource = context.getBreadcrumb().get(context.getBreadcrumb().size()-1).getResource();
+ int index;
+ if((index = configPages.indexOf(resource)) >= 0){
+ return configPages.get(index).htmlResponse(context, client_info, session, cookie, request);
+ }
+ else if ((index = services.indexOf(resource)) >= 0) {
WAService obj = services.get(index);
ServiceStatusPage statusPage = statusPages.get(index);
Templator tmpl = new Templator(FileUtil.find(TMPL_FILE));
tmpl.set("service_status",
statusPage.htmlResponse(context, client_info, session, cookie, request).compile());
+ //tmpl.set("service_logs",
+ // statusPage.htmlResponse(context, client_info, session, cookie, request).compile());
return tmpl;
}
else{ // root page
diff --git a/src/wa/server/plugin/apache/ApacheService.java b/src/wa/server/plugin/apache/ApacheService.java
index 0168253..5f3b24d 100644
--- a/src/wa/server/plugin/apache/ApacheService.java
+++ b/src/wa/server/plugin/apache/ApacheService.java
@@ -39,9 +39,7 @@ public class ApacheService implements WAService {
private ApacheStatus status;
private ApacheInstaller installer;
- private WAServiceConfig[] config = new WAServiceConfig[]{
- new ApacheConfigVirtualHost()
- };
+ private WAServiceConfig[] config;
@Override
public String getName() {
@@ -64,6 +62,10 @@ public class ApacheService implements WAService {
@Override
public WAServiceConfig[] getConfigurations() {
+ if(config == null)
+ config = new WAServiceConfig[]{
+ new ApacheConfigVirtualHost()
+ };
return config;
}
}