Fixed FELIX-5018 : [webconsole] "create factory configuration" link for config screen
https://issues.apache.org/jira/browse/FELIX-5018
Applied path provided by Balazs Zsoldos
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1702443 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
index f6154ff..ad81d18 100644
--- a/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
+++ b/webconsole/src/main/java/org/apache/felix/webconsole/internal/configuration/ConfigManager.java
@@ -53,6 +53,7 @@
static final String PID = "pid"; //$NON-NLS-1$
static final String FACTORY_PID = "factoryPid"; //$NON-NLS-1$
static final String PLACEHOLDER_PID = "[Temporary PID replaced by real PID upon save]"; //$NON-NLS-1$
+ static final String FACTORY_CREATE = "factoryCreate"; //$NON-NLS-1$
static final String ACTION_CREATE = "create"; //$NON-NLS-1$
static final String ACTION_DELETE = "delete"; //$NON-NLS-1$
@@ -411,6 +412,8 @@
DefaultVariableResolver vars = ( ( DefaultVariableResolver ) WebConsoleUtil.getVariableResolver( request ) );
vars.put( "__data__", json.toString() ); //$NON-NLS-1$
vars.put( "selectedPid", pid != null ? pid : ""); //$NON-NLS-1$ //$NON-NLS-2$
+ boolean factoryCreate = "true".equals(request.getParameter(FACTORY_CREATE)); //$NON-NLS-1$
+ vars.put( "factoryCreate", Boolean.valueOf(factoryCreate)); //$NON-NLS-1$
vars.put( "param.apply", ACTION_APPLY ); //$NON-NLS-1$
vars.put( "param.create", ACTION_CREATE ); //$NON-NLS-1$
vars.put( "param.unbind", ACTION_UNBIND ); //$NON-NLS-1$
diff --git a/webconsole/src/main/resources/res/ui/config.js b/webconsole/src/main/resources/res/ui/config.js
index 9c66195..963ba00 100644
--- a/webconsole/src/main/resources/res/ui/config.js
+++ b/webconsole/src/main/resources/res/ui/config.js
@@ -695,5 +695,8 @@
} else {
configContent.addClass('ui-helper-hidden');
}
- if (selectedPid) configure(selectedPid);
+ if(selectedPid) {
+ if(factoryCreate) configure(selectedPid, true);
+ else configure(selectedPid);
+ }
});
\ No newline at end of file
diff --git a/webconsole/src/main/resources/templates/config.html b/webconsole/src/main/resources/templates/config.html
index e357fe5..bba09c0 100644
--- a/webconsole/src/main/resources/templates/config.html
+++ b/webconsole/src/main/resources/templates/config.html
@@ -4,6 +4,7 @@
// data
var configData = ${__data__};
var selectedPid = '${selectedPid}';
+var factoryCreate = ${factoryCreate};
var i18n = { // i18n
stat_ok : '${config.status.ok}', // "Configuration Admin Service is running.";
stat_missing : '${config.status.missing}', //"Configuration Admin Service is not installed/running."