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
- +
- - + + - + {{! #data}} + - - + + + {{! /data}}
ServiceStatusActionDescriptionActions
{{.getName()}}[EDIT][DISABLE][REMOVE]{{.getValue()}} + + {{^.enabled}}{{/.enabled}} + {{#.enabled}}{{/.enabled}} + +
- +
\ 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; } }