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."