Hi Hans,

It seems to me that it's ok from a licensing POV, just wanted to check with you 
about commented out lines

+#janrain.apiKey=9640f5bddc863ec419067d4bd07f9d15e45c177f
+#janrain.baseUrl=https://ofbizdemo.rpxnow.com
+#janrain.appName=ofbizdemo

I guess it's ok, right?

BTW I checked for Google Map, it seems using API v2 OOTB is still not a problem 
http://code.google.com/apis/maps/signup.html

Thanks

Jacques

Author: hansbak
Date: Tue Dec 27 07:39:43 2011
New Revision: 1224876

URL: http://svn.apache.org/viewvc?rev=1224876&view=rev
Log:
implement the basic janrain package, which enables the login via most social 
sites, but can not recognize if the same user if
logged in from 2 different sites. By default this function is disabled and will 
not change the functionality of the OFBiz login
procedure in any way

Added:
   ofbiz/trunk/specialpurpose/ecommerce/README   (with props)
   ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/
   
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
   (with props)
Modified:
   ofbiz/trunk/specialpurpose/ecommerce/build.xml
   ofbiz/trunk/specialpurpose/ecommerce/config/ecommerce.properties
   
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy
   ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
   
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl
   ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/login.ftl

Added: ofbiz/trunk/specialpurpose/ecommerce/README
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/README?rev=1224876&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/README (added)
+++ ofbiz/trunk/specialpurpose/ecommerce/README Tue Dec 27 07:39:43 2011
@@ -0,0 +1,31 @@
+How to use Janrain Engage Social Login.
+======================================
+
+1.Get API Key from http://www.janrain.com/products/engage/social-login.
+2.Configure file setting : ecommerce.properties you can put it
+          Example:
+          
--------------------------------------------------------------------------------
+            # -- Enable janrain engage (Y/ N) default N
+            janrain.enabled=N
+
+            # -- Janrain api key (secret)
+            janrain.apiKey=exampleKey
+
+            # -- Janrain application domain
+            janrain.baseUrl=https://example.rpxnow.com
+
+            # -- Janrain application name
+            janrain.appName=exampleAppName
+          
--------------------------------------------------------------------------------
+3.Restart the server.
+
+
+How to test Janrain Engage Social Login.
+=======================================
+
+1. Go to Login screen.
+2. Look the Social Login Widget and you can use these existing accounts to 
sign-in to your website.
+3. First time if account does not exists then system will create new account.
+4. After account existing in the system you can use "Social Login Widget" to 
login account.
+
+===================================================================================================

Propchange: ofbiz/trunk/specialpurpose/ecommerce/README
------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/ecommerce/README
------------------------------------------------------------------------------
   svn:mime-type = text/plain

Modified: ofbiz/trunk/specialpurpose/ecommerce/build.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/build.xml?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/build.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/build.xml Tue Dec 27 07:39:43 2011
@@ -41,10 +41,12 @@ under the License.
        <fileset dir="../../framework/service/build/lib" includes="*.jar"/>
        <fileset dir="../../framework/minilang/build/lib" includes="*.jar"/>
        <fileset dir="../../framework/common/build/lib" includes="*.jar"/>
+        <fileset dir="../../framework/webapp/build/lib" includes="*.jar"/>
        <fileset dir="../../applications/party/build/lib" includes="*.jar"/>
        <fileset dir="../../applications/product/build/lib" includes="*.jar"/>
        <fileset dir="../../applications/marketing/build/lib" includes="*.jar"/>
        <fileset dir="../../applications/order/build/lib" includes="*.jar"/>
        <fileset dir="../../applications/accounting/build/lib" 
includes="*.jar"/>
+        <fileset dir="../../applications/securityext/build/lib" 
includes="*.jar"/>
    </path>
</project>

Modified: ofbiz/trunk/specialpurpose/ecommerce/config/ecommerce.properties
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/config/ecommerce.properties?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/config/ecommerce.properties (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/config/ecommerce.properties Tue Dec 27 
07:39:43 2011
@@ -17,3 +17,24 @@
# under the License.
###############################################################################
convertProductPriceCurrency=true
+
+############################################
+# Janrain Engage
+############################################
+#example config
+#janrain.apiKey=9640f5bddc863ec419067d4bd07f9d15e45c177f
+#janrain.baseUrl=https://ofbizdemo.rpxnow.com
+#janrain.appName=ofbizdemo
+############################################
+
+# -- Enabled janrain engage (Y/ N) default N
+janrain.enabled=N
+
+# -- Janrain api key (secret)
+janrain.apiKey=
+
+# -- Janrain application domain
+janrain.baseUrl=
+
+# -- Janrain application name
+janrain.appName=

Added: 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java?rev=1224876&view=auto
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
 (added)
+++ 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
 Tue Dec 27 07:39:43 2011
@@ -0,0 +1,248 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ 
*******************************************************************************/
+package org.ofbiz.ecommerce.janrain;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+
+import javolution.util.FastMap;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilHttp;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericEntityException;
+import org.ofbiz.entity.GenericValue;
+import org.ofbiz.webapp.control.LoginWorker;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ * Java Helper Class for Janrain Engage
+ */
+public class JanrainHelper {
+
+    public static final String module = JanrainHelper.class.getName();
+    private static String apiKey = 
UtilProperties.getPropertyValue("ecommerce.properties", "janrain.apiKey");
+    private static String baseUrl = 
UtilProperties.getPropertyValue("ecommerce.properties", "janrain.baseUrl");
+    public JanrainHelper(String apiKey, String baseUrl) {
+        while (baseUrl.endsWith("/"))
+            baseUrl = baseUrl.substring(0, baseUrl.length() - 1);
+        this.apiKey = apiKey;
+        this.baseUrl = baseUrl;
+    }
+    public String getApiKey() { return apiKey; }
+    public String getBaseUrl() { return baseUrl; }
+    public static Element authInfo(String token) {
+        Map<String, Object> query = new HashMap<String, Object>();
+        query.put("token", token);
+        return apiCall("auth_info", query);
+    }
+    public HashMap<String, List<String>> allMappings() {
+        Element rsp = apiCall("all_mappings", null);
+        Element mappings_node = (Element)rsp.getFirstChild();
+        HashMap<String, List<String>> result = new HashMap<String, 
List<String>>();
+        NodeList mappings = getNodeList("/rsp/mappings/mapping", rsp);
+        for (int i = 0; i < mappings.getLength(); i++) {
+            Element mapping = (Element)mappings.item(i);
+            List<String> identifiers = new ArrayList<String>();
+            NodeList rk_list = getNodeList("primaryKey", mapping);
+            NodeList id_list = getNodeList("identifiers/identifier", mapping);
+            String remote_key = ((Element)rk_list.item(0)).getTextContent();
+            for (int j = 0; j < id_list.getLength(); j++) {
+                Element ident = (Element) id_list.item(j);
+                identifiers.add(ident.getTextContent());
+            }
+            result.put(remote_key, identifiers);
+        }
+        return result;
+    }
+    private NodeList getNodeList(String xpath_expr, Element root) {
+        XPathFactory factory = XPathFactory.newInstance();
+        XPath xpath = factory.newXPath();
+        try {
+            return (NodeList) xpath.evaluate(xpath_expr, root, 
XPathConstants.NODESET);
+        } catch (XPathExpressionException e) {
+            return null;
+        }
+    }
+    public List<String> mappings(Object primaryKey) {
+        Map<String, Object> query = new HashMap<String, Object>();
+        query.put("primaryKey", primaryKey);
+        Element rsp = apiCall("mappings", query);
+        Element oids = (Element)rsp.getFirstChild();
+        List<String> result = new ArrayList<String>();
+        NodeList nl = oids.getChildNodes();
+        for (int i = 0; i < nl.getLength(); i++) {
+            Element e = (Element)nl.item(i);
+            result.add(e.getTextContent());
+        }
+        return result;
+    }
+    public void map(String identifier, Object primaryKey) {
+        Map<String, Object> query = new HashMap<String, Object>();
+        query.put("identifier", identifier);
+        query.put("primaryKey", primaryKey);
+        apiCall("map", query);
+    }
+    public void unmap(String identifier, Object primaryKey) {
+        Map<String, Object> query = new HashMap<String, Object>();
+        query.put("identifier", identifier);
+        query.put("primaryKey", primaryKey);
+        apiCall("unmap", query);
+    }
+    private static Element apiCall(String methodName, Map<String, Object> 
partialQuery) {
+        Map<String, Object> query = null;
+        if (partialQuery == null) {
+            query = new HashMap<String, Object>();
+        } else {
+            query = new HashMap<String, Object>(partialQuery);
+        }
+        query.put("format", "xml");
+        query.put("apiKey", apiKey);
+        StringBuffer sb = new StringBuffer();
+        for (Iterator it = query.entrySet().iterator(); it.hasNext();) {
+            if (sb.length() > 0) sb.append('&');
+            try {
+                Map.Entry e = (Map.Entry)it.next();
+                sb.append(URLEncoder.encode(e.getKey().toString(), "UTF-8"));
+                sb.append('=');
+                sb.append(URLEncoder.encode(e.getValue().toString(), "UTF-8"));
+            } catch (UnsupportedEncodingException e) {
+                throw new RuntimeException("Unexpected encoding error", e);
+            }
+        }
+        String data = sb.toString();
+        try {
+            URL url = new URL(baseUrl + "/api/v2/" + methodName);
+            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
+            conn.setRequestMethod("POST");
+            conn.setDoOutput(true);
+            conn.connect();
+            OutputStreamWriter osw = new OutputStreamWriter(
+                conn.getOutputStream(), "UTF-8");
+            osw.write(data);
+            osw.close();
+
+            BufferedReader post = new BufferedReader(new 
InputStreamReader(conn.getInputStream()));
+            String line = "";
+            StringBuilder buf = new StringBuilder();
+            while ((line = post.readLine()) != null) {
+                 buf.append(line);
+            }
+            post.close();
+            Document tagXml = UtilXml.readXmlDocument(buf.toString());
+            Element response = (Element) tagXml.getDocumentElement();
+            if (!response.getAttribute("stat").equals("ok")) {
+                throw new RuntimeException("Unexpected API error");
+            }
+            return response;
+        } catch (MalformedURLException e) {
+            throw new RuntimeException("Unexpected URL error", e);
+        } catch (IOException e) {
+            throw new RuntimeException("Unexpected IO error", e);
+        } catch (ParserConfigurationException e) {
+            throw new RuntimeException("Unexpected XML error", e);
+        } catch (SAXException e) {
+            throw new RuntimeException("Unexpected XML error", e);
+        }
+    }
+
+    public static String janrainCheckLogin(HttpServletRequest request, 
HttpServletResponse response){
+        Delegator delegator = (Delegator) request.getAttribute("delegator");
+        String token =  request.getParameter("token");
+        String errMsg = "";
+        if (UtilValidate.isNotEmpty(token)) {
+            JanrainHelper janrainHelper = new JanrainHelper(apiKey, baseUrl);
+            Element authInfo = janrainHelper.authInfo(token);
+            Element profileElement = UtilXml.firstChildElement(authInfo, 
"profile");
+            Element nameElement = UtilXml.firstChildElement(profileElement, 
"name");
+
+            // profile element
+            String displayName = 
UtilXml.elementValue(UtilXml.firstChildElement(profileElement, "displayName"));
+            String email = 
UtilXml.elementValue(UtilXml.firstChildElement(profileElement, "email"));
+            String identifier = 
UtilXml.elementValue(UtilXml.firstChildElement(profileElement, "identifier"));
+            String preferredUsername = 
UtilXml.elementValue(UtilXml.firstChildElement(profileElement, 
"preferredUsername"));
+            String providerName = 
UtilXml.elementValue(UtilXml.firstChildElement(profileElement, "providerName"));
+            String url = UtilXml.elementValue(UtilXml.firstChildElement(profileElement, 
"url"));
+
+            // name element
+            String givenName = 
UtilXml.elementValue(UtilXml.firstChildElement(nameElement, "givenName"));
+            String familyName = 
UtilXml.elementValue(UtilXml.firstChildElement(nameElement, "familyName"));
+            String formatted = 
UtilXml.elementValue(UtilXml.firstChildElement(nameElement, "formatted"));
+
+            if (UtilValidate.isEmpty("preferredUsername")) {
+                errMsg = UtilProperties.getMessage("SecurityextUiLabels", 
"loginevents.username_not_found_reenter",
UtilHttp.getLocale(request));
+                request.setAttribute("_ERROR_MESSAGE_", errMsg);
+                return "error";
+            }
+
+            Map<String, String> result = FastMap.newInstance();
+            result.put("displayName", displayName);
+            result.put("email", email);
+            result.put("identifier", identifier);
+            result.put("preferredUsername", preferredUsername);
+            result.put("providerName", providerName);
+            result.put("url", url);
+            result.put("givenName", givenName);
+            result.put("familyName", familyName);
+            result.put("formatted", formatted);
+            request.setAttribute("userInfoMap", result);
+
+            try {
+                GenericValue userLogin = delegator.findByPrimaryKeyCache("UserLogin", 
UtilMisc.toMap("userLoginId",
preferredUsername));
+                if (UtilValidate.isNotEmpty(userLogin)) {
+                    LoginWorker.doBasicLogin(userLogin, request);
+                    LoginWorker.autoLoginSet(request, response);
+                    return "success";
+                } else {
+                    return "userLoginMissing";
+                }
+            } catch (GenericEntityException e) {
+                Debug.logError(e, "Error finding the userLogin for distributed 
cache clear", module);
+            }
+        }
+        return "success";
+    }
+}

Propchange: 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
------------------------------------------------------------------------------
   svn:eol-style = native

Propchange: 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
------------------------------------------------------------------------------
   svn:keywords = Date Rev Author URL Id

Propchange: 
ofbiz/trunk/specialpurpose/ecommerce/src/org/ofbiz/ecommerce/janrain/JanrainHelper.java
------------------------------------------------------------------------------
   svn:mime-type = text/plain

Modified: 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy
 (original)
+++ 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy
 Tue Dec 27 07:39:43 2011
@@ -16,6 +16,7 @@
 * specific language governing permissions and limitations
 * under the License.
 */
+
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.product.store.ProductStoreWorker;
@@ -49,3 +50,21 @@ if (previousParams) {
    previousParams = "";
}
context.previousParams = previousParams;
+
+//the parameters from janrain
+userInfoMap = request.getAttribute("userInfoMap");
+if (!userInfoMap) {
+    userInfoMap = request.getSession().getAttribute("userInfoMap");
+}
+if (userInfoMap) {
+    if (userInfoMap.givenName && userInfoMap.familyName) {
+        requestParameters.USER_FIRST_NAME = userInfoMap.givenName;
+        requestParameters.USER_LAST_NAME = userInfoMap.familyName;
+    } else if (userInfoMap.formatted) {
+        requestParameters.USER_FIRST_NAME = userInfoMap.formatted;
+    }
+    requestParameters.CUSTOMER_EMAIL = userInfoMap.email;
+    requestParameters.preferredUsername = userInfoMap.preferredUsername;
+    requestParameters.USERNAME = userInfoMap.preferredUsername;
+    request.getSession().setAttribute("userInfoMap", userInfoMap);
+}

Modified: 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml 
(original)
+++ 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml 
Tue Dec 27 07:39:43 2011
@@ -2012,7 +2012,7 @@ under the License.
        <security https="true" auth="false"/>
        <response name="success" type="view" value="showShoppingList" 
save-current-view="true"/>
    </request-map>
-
+
    <!-- Product Tags -->
    <request-map uri="addProductTags">
        <security https="false" auth="false"/>
@@ -2020,7 +2020,16 @@ under the License.
        <response name="success" type="view-last" save-current-view="true"/>
        <response name="error" type="view-last" save-current-view="true"/>
    </request-map>
-
+
+    <!-- ============== Janrain Engage ============== -->
+    <request-map uri="janrainCheckLogin">
+        <security https="true" auth="false"/>
+        <event type="java" path="org.ofbiz.ecommerce.janrain.JanrainHelper" 
invoke="janrainCheckLogin"/>
+        <response name="success" type="view" value="main"/>
+        <response name="error" type="view" value="login"/>
+        <response name="userLoginMissing" type="request" value="newcustomer"/>
+    </request-map>
+
    <!-- End of Request Mappings -->

    <!-- View Mappings -->

Modified: 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl 
(original)
+++ 
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl 
Tue Dec 27 07:39:43 2011
@@ -342,15 +342,22 @@ will generally always be reserved for th
    <legend><#if getUsername>${uiLabelMap.CommonUsername}</#if></legend>
    <#if getUsername>
      <@fieldErrors fieldName="USERNAME"/>
-      <div class="form-row inline">
-        <label for="UNUSEEMAIL">
-          <input type="checkbox" class="checkbox" name="UNUSEEMAIL" id="UNUSEEMAIL" 
value="on" onclick="setEmailUsername();"
onfocus="setLastFocused(this);"/> ${uiLabelMap.EcommerceUseEmailAddress}
-        </label>
-      </div>
+      <#if !requestParameters.preferredUsername?has_content>
+        <div class="form-row inline">
+          <label for="UNUSEEMAIL">
+            <input type="checkbox" class="checkbox" name="UNUSEEMAIL" id="UNUSEEMAIL" 
value="on" onclick="setEmailUsername();"
onfocus="setLastFocused(this);"/> ${uiLabelMap.EcommerceUseEmailAddress}
+          </label>
+        </div>
+      </#if>

      <div>
        <label for="USERNAME">${uiLabelMap.CommonUsername}*</label>
-        <input type="text" name="USERNAME" id="USERNAME" 
value="${requestParameters.USERNAME?if_exists}"
onfocus="clickUsername();" onchange="changeEmail();"/>
+        <#if requestParameters.preferredUsername?has_content>
+            <input type="text" name="showUserName" id="showUserName" 
value="${requestParameters.USERNAME?if_exists}"
disabled="disabled"/>
+            <input type="hidden" name="USERNAME" id="USERNAME" 
value="${requestParameters.USERNAME?if_exists}"/>
+        <#else>
+            <input type="text" name="USERNAME" id="USERNAME" 
value="${requestParameters.USERNAME?if_exists}"
onfocus="clickUsername();" onchange="changeEmail();"/>
+        </#if>
      </div>
    </#if>
  </fieldset>

Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/login.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/login.ftl?rev=1224876&r1=1224875&r2=1224876&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/login.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/login.ftl Tue Dec 27 
07:39:43 2011
@@ -16,35 +16,102 @@ KIND, either express or implied.  See th
specific language governing permissions and limitations
under the License.
-->
+<#assign janrainEnabled = 
Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("ecommerce.properties",
"janrain.enabled")>
+<#assign appName = 
Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("ecommerce.properties", 
"janrain.appName")>
+<#if janrainEnabled == "Y">
+<script type="text/javascript">
+(function() {
+    if (typeof window.janrain !== 'object') window.janrain = {};
+    window.janrain.settings = {};
+
+    janrain.settings.tokenUrl = '<@ofbizUrl fullPath="true" 
secure="true">janrainCheckLogin</@ofbizUrl>';

+    function isReady() { janrain.ready = true; };
+    if (document.addEventListener) {
+      document.addEventListener("DOMContentLoaded", isReady, false);
+    } else {
+      window.attachEvent('onload', isReady);
+    }
+
+    var e = document.createElement('script');
+    e.type = 'text/javascript';
+    e.id = 'janrainAuthWidget';
+
+    if (document.location.protocol === 'https:') {
+      e.src = 'https://rpxnow.com/js/lib/${appName}/engage.js';
+    } else {
+      e.src = 'http://widget-cdn.rpxnow.com/js/lib/${appName}/engage.js';
+    }
+
+    var s = document.getElementsByTagName('script')[0];
+    s.parentNode.insertBefore(e, s);
+})();
+</script>
<h1>${uiLabelMap.CommonLogin}</h1>
<div class="screenlet">
  <div class="screenlet-title-bar"><h3>${uiLabelMap.CommonRegistered}</h3></div>
  <div class="screenlet-body">
-  <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" 
class="horizontal">
-    <fieldset>
-      <div>
-        <label for="userName">${uiLabelMap.CommonUsername}</label>
-        <input type="text" id="userName" name="USERNAME" value="<#if
requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif
autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/>
-      </div>
-<#if autoUserLogin?has_content>
-      <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a
href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p>
-</#if>
-      <div>
-        <label for="password">${uiLabelMap.CommonPassword}:</label>
-        <input type="password" id="password" name="PASSWORD" value=""/>
-      </div>
-      <div>
-        <input type="submit" class="button" value="${uiLabelMap.CommonLogin}"/>
-      </div>
-      <div>
-        <label 
for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label>
-        <a 
href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a>
-      </div>
-    </fieldset>
-  </form>
+  <table width="100%" class="Signlogin">
+      <tr>
+          <td>
+          <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" 
class="horizontal">
+            <fieldset>
+              <div>
+                <label for="userName">${uiLabelMap.CommonUsername}</label>
+                <input type="text" id="userName" name="USERNAME" value="<#if
requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif
autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/>
+              </div>
+              <#if autoUserLogin?has_content>
+                <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a
href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p>
+              </#if>
+              <div>
+                <label for="password">${uiLabelMap.CommonPassword}:</label>
+                <input type="password" id="password" name="PASSWORD" value=""/>
+              </div>
+              <div>
+                <input type="submit" class="button" 
value="${uiLabelMap.CommonLogin}"/>
+              </div>
+              <div>
+                <label 
for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label>
+                <a 
href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a>
+              </div>
+            </fieldset>
+          </form>
+          </td>
+          <td><div id="janrainEngageEmbed"></div></td>
+      </tr>
+  </table>
  </div>
</div>
+<#else>
+<h1>${uiLabelMap.CommonLogin}</h1>
+<div class="screenlet">
+  <div 
class="screenlet-title-bar"><h3>${uiLabelMap.CommonRegistered}</h3></div>
+  <div class="screenlet-body">
+    <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" 
class="horizontal">
+      <fieldset>
+        <div>
+          <label for="userName">${uiLabelMap.CommonUsername}</label>
+          <input type="text" id="userName" name="USERNAME" value="<#if
requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif
autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/>
+        </div>
+        <#if autoUserLogin?has_content>
+          <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a
href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p>
+        </#if>
+        <div>
+          <label for="password">${uiLabelMap.CommonPassword}:</label>
+          <input type="password" id="password" name="PASSWORD" value=""/>
+        </div>
+        <div>
+          <input type="submit" class="button" 
value="${uiLabelMap.CommonLogin}"/>
+        </div>
+        <div>
+          <label 
for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label>
+          <a 
href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a>
+        </div>
+      </fieldset>
+    </form>
+  </div>
+</div>
+</#if>

<div class="screenlet">
  <div 
class="screenlet-title-bar"><h3>${uiLabelMap.CommonForgotYourPassword}</h3></div>


Reply via email to