Hi Manu,

Server-side JS is meant to be the "view controller" which creates the "view
model" for the "view" (HBS template). So, I think its fine to process a
data-structure (model) retrieved from back-end in order to create the view
model.

On Fri, Jan 20, 2017 at 5:19 PM, Indunil Upeksha Rathnayake <
[email protected]> wrote:

> Hi Manuranga,
>
> Thanks for your response.
>
> 1) Yeah we can do like that as well, if we only using the existing
> attributes in the object which retrieved from the service. But here, we are
> passing some values which are not directly exposed from the service (ex:
> claimLabel - from the OSGI service we get the claim URI, but here we are
> passing the URI without the claim dialect). Since UUF still not supporting
> custom helpers, it's not possible to write a function helper and handle it
> in hbs side right? or is there some other way to handle it?
>
> 2) We are getting set of claims that need to be shown in UI, by calling an
> OSGI service(claims which relates to a specific claim profile). So that
> those are not already defined in hbs. Every field
> labels/validations(required fields/regex patterns/read only fields etc) in
> the UI, will be populated from those claims. So that all the claims should
> be sent to the front-end JS.
>
> Thanks and Regards
>
> On Fri, Jan 20, 2017 at 3:04 PM, Manuranga Perera <[email protected]> wrote:
>
>> @Indunil
>> 1. Without the for loop can we just do sendToClient("signupClaims",
>> claimProfile.claims); will that work?
>> 2. Why do need to send all the claims to front-end JS anyway? aren't
>> those already used in HBS?
>>
>> @Sajith
>> 1. I keep seeing people trying to manually convert java to json. Can we
>> give a better option? maybe have callOSGiServiceAsJson?
>>
>>
>>
>> On Fri, Jan 20, 2017 at 7:17 AM, Indunil Upeksha Rathnayake <
>> [email protected]> wrote:
>>
>>> Hi,
>>>
>>> Thanks all for your responses.  Yes in my case it doesn't need to
>>> convert boolean to string. But if needed, as sajith mentioned, seems like
>>> have to import that class in the script with Java.type Nashorn
>>> extension.
>>>
>>> Thanks and Regards
>>>
>>> On Fri, Jan 20, 2017 at 10:52 AM, SajithAR Ariyarathna <
>>> [email protected]> wrote:
>>>
>>>> Hi Indunil,
>>>>
>>>> Seems like the problem is in your script.
>>>>
>>>> Boolean.toString(claimForProfile[i].getRequired())
>>>>
>>>>  I believe your intention here is to call
>>>> java.lang.Boolean#toString(boolean b) method, right? But Nashorn
>>>> doesn't know that, because you haven't imported java.lang.Boolean class
>>>> in your script. In order to use a Java class in your script, first you have
>>>> to import that class in your script with Java.type Nashorn extension
>>>> [1]. (see 'call Java class' sample in the features-app sample)
>>>> Since you haven't imported java.lang.Boolean class, Nashorn thinks
>>>> Boolean.toString is a JS function, thus it is serialized to "function
>>>> Boolean() { [native code] }".
>>>>
>>>> Anyway, You don't need to convert boolean values to strings here. So
>>>> let's remove Boolean.toString
>>>>
>>>> [1] https://docs.oracle.com/javase/8/docs/technotes/guides/s
>>>> cripting/prog_guide/javascript.html#A1147187
>>>>
>>>> Thanks.
>>>>
>>>> On Fri, Jan 20, 2017 at 10:13 AM, SajithAR Ariyarathna <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi Indunil,
>>>>>>
>>>>>> claimProfileMap["required"] = Boolean.toString(claimForProfile[i].
>>>>>> getRequired());
>>>>>>
>>>>> I don't see a particular reason to convert boolean to string. You can
>>>>> just use the boolean value directly.
>>>>>
>>>>> Anyhow, we will fix this.
>>>>> Thanks.
>>>>>
>>>>> On Fri, Jan 20, 2017 at 7:47 AM, Indunil Upeksha Rathnayake <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> The code segment I have used as follows.
>>>>>>
>>>>>> function getProfile() {
>>>>>>     var claimProfile;
>>>>>>     try {
>>>>>>         // Get Claim Profile
>>>>>>         claimProfile = 
>>>>>> callOSGiService("org.wso2.is.portal.user.client.api.ProfileMgtClientService",
>>>>>>             "getProfile", ["self-signUp"]);
>>>>>>     } catch(e) {
>>>>>>         return {errorMessage: "Failed to retrieve the claim profile."};
>>>>>>     }
>>>>>>     var claimForProfile = claimProfile.claims;
>>>>>>
>>>>>>     var claimProfileArray = [];
>>>>>>
>>>>>>     for (var i = 0; i < claimForProfile.length; i++) {
>>>>>>         var claimProfileMap = {};
>>>>>>         claimProfileMap["displayName"] = 
>>>>>> claimForProfile[i].getDisplayName();
>>>>>>         claimProfileMap["claimURI"] = claimForProfile[i].getClaimURI();
>>>>>>         if (claimForProfile[i].getDefaultValue()) {
>>>>>>             claimProfileMap["defaultValue"] = 
>>>>>> claimForProfile[i].getDefaultValue();
>>>>>>         }
>>>>>>         claimProfileMap["claimLabel"] = 
>>>>>> claimForProfile[i].getClaimURI().replace("http://wso2.org/claims/";, "");
>>>>>>         claimProfileMap["required"] = 
>>>>>> Boolean.toString(claimForProfile[i].getRequired());
>>>>>>         claimProfileMap["regex"] = claimForProfile[i].getRegex();
>>>>>>         claimProfileMap["readonly"] = 
>>>>>> Boolean.toString(claimForProfile[i].getReadonly());
>>>>>>         claimProfileMap["dataType"] = claimForProfile[i].getDataType();
>>>>>>         claimProfileArray[i] = claimProfileMap;
>>>>>>     }
>>>>>>     sendToClient("signupClaims", claimProfileArray);
>>>>>>     return {
>>>>>>         "signupClaims": claimProfileArray
>>>>>>     };
>>>>>> }
>>>>>>
>>>>>> ​
>>>>>> Thanks and Regards
>>>>>>
>>>>>>
>>>>>> On Thu, Jan 19, 2017 at 10:03 PM, Manuranga Perera <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> when sending boolean value as a string(converting boolean to string
>>>>>>>> using "Boolean.toString()"
>>>>>>>
>>>>>>> Not very clear what you are saying here. Can you please show the
>>>>>>> code.
>>>>>>>
>>>>>>> On Thu, Jan 19, 2017 at 4:23 PM, Danushka Fernando <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> HI
>>>>>>>> Seems its calling [1] and [2] is something its getting called. When
>>>>>>>> we have a boolean as a string probably that happens. But not sure 
>>>>>>>> that's
>>>>>>>> expected.
>>>>>>>>
>>>>>>>> [1] https://github.com/google/gson/blob/0636635cbffa08157bdb
>>>>>>>> d558b1212e4d806474eb/gson/src/main/java/com/google/gson/Gson
>>>>>>>> .java#L580
>>>>>>>> [2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/
>>>>>>>> Reference/Global_Objects/Object/toSource
>>>>>>>>
>>>>>>>> Thanks & Regards
>>>>>>>> Danushka Fernando
>>>>>>>> Senior Software Engineer
>>>>>>>> WSO2 inc. http://wso2.com/
>>>>>>>> Mobile : +94716332729 <+94%2071%20633%202729>
>>>>>>>>
>>>>>>>> On Thu, Jan 19, 2017 at 7:43 PM, Indunil Upeksha Rathnayake <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> It's returning {"signupClaims": claimProfileArray} from the
>>>>>>>>> onRequest() method. claimProfileArray is an array with several
>>>>>>>>> map objects. I have just tested and found that this error comes when
>>>>>>>>> sending boolean value as a string(converting boolean to string using
>>>>>>>>> "Boolean.toString()").
>>>>>>>>> As an example like this.
>>>>>>>>> [{"claimURI":"http://wso2.org/claims/givenname","required":"true"},
>>>>>>>>> {"claimURI":"http://wso2.org/claims/lastname","required":"true"}].
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> But passing as a boolean value it works. Is that an acceptable
>>>>>>>>> behavior?
>>>>>>>>>
>>>>>>>>> Thanks and Regards
>>>>>>>>>
>>>>>>>>> On Thu, Jan 19, 2017 at 7:08 PM, Kishanthan Thangarajah <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> We are using gson to serialize the json sent to client [1]. But
>>>>>>>>>> we need the sample data used here to test what could be the issue.
>>>>>>>>>>
>>>>>>>>>> [1] https://github.com/wso2/carbon-uuf/blob/master/component
>>>>>>>>>> s/uuf-renderablecreator-hbs/src/main/java/org/wso2/carbon/uu
>>>>>>>>>> f/renderablecreator/hbs/impl/js/JsFunctionsImpl.java#L152
>>>>>>>>>>
>>>>>>>>>> On Thu, Jan 19, 2017 at 7:04 PM, Manuranga Perera <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> I think it's a java object. I think we need to use something
>>>>>>>>>>> like gson here
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Jan 19, 2017 at 1:30 PM, Kishanthan Thangarajah <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Can we have the json object to investigate this?
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Jan 19, 2017 at 6:22 PM, SajithAR Ariyarathna <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> +{UUF Team]
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Jan 19, 2017 at 5:34 PM, Indunil Upeksha Rathnayake <
>>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Having some problem when using sendToClient() method in the
>>>>>>>>>>>>>> UUF Server Side JS API. I am trying to send an array with a set 
>>>>>>>>>>>>>> of map
>>>>>>>>>>>>>> elements as in [1] including some boolean values. When we are 
>>>>>>>>>>>>>> sending this
>>>>>>>>>>>>>> value to client side using the sendToClient(), it's injecting
>>>>>>>>>>>>>> the variables to the "js" placeholder in the layout. But when 
>>>>>>>>>>>>>> evaluating
>>>>>>>>>>>>>> the variable, boolean values are not stored as it is but as 
>>>>>>>>>>>>>> follows.
>>>>>>>>>>>>>> *function Boolean() { [native code] }*
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Seems like in there, it's getting the value of
>>>>>>>>>>>>>> "booleanVaribale.constructor". I'm using uuf version "1.0.0-m9".
>>>>>>>>>>>>>> Is this expectable or an issue?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1] [ {"claimURI":"http://wso2.org/claims/givenname
>>>>>>>>>>>>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.org%2Fclaims%2Fgivenname&sa=D&sntz=1&usg=AFQjCNHhpHtMY1eVUFZfM8A2n2iOnajUvg>
>>>>>>>>>>>>>> ","required":"function Boolean() { [native code] }"},
>>>>>>>>>>>>>> {"claimURI":"http://wso2.org/claims/lastname
>>>>>>>>>>>>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.org%2Fclaims%2Flastname&sa=D&sntz=1&usg=AFQjCNGDQuIZMXiN8WMbgitjy9uIJ_jKDw>
>>>>>>>>>>>>>> ","required":"function Boolean() { [native code] }"}]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks and Regards
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Indunil Upeksha Rathnayake
>>>>>>>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>>>>>>>> Email    [email protected]
>>>>>>>>>>>>>> Mobile   0772182255
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Sajith Janaprasad Ariyarathna
>>>>>>>>>>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>>>>>>>>>>> <https://wso2.com/signature>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Kishanthan Thangarajah*
>>>>>>>>>>>> Technical Lead,
>>>>>>>>>>>> Platform Technologies Team,
>>>>>>>>>>>> WSO2, Inc.
>>>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>>>
>>>>>>>>>>>> Mobile - +94773426635 <+94%2077%20342%206635>
>>>>>>>>>>>> Blog - *http://kishanthan.wordpress.com
>>>>>>>>>>>> <http://kishanthan.wordpress.com>*
>>>>>>>>>>>> Twitter - *http://twitter.com/kishanthan
>>>>>>>>>>>> <http://twitter.com/kishanthan>*
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Dev mailing list
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> With regards,
>>>>>>>>>>> *Manu*ranga Perera.
>>>>>>>>>>>
>>>>>>>>>>> phone : 071 7 70 20 50
>>>>>>>>>>> mail : [email protected]
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Kishanthan Thangarajah*
>>>>>>>>>> Technical Lead,
>>>>>>>>>> Platform Technologies Team,
>>>>>>>>>> WSO2, Inc.
>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>
>>>>>>>>>> Mobile - +94773426635 <+94%2077%20342%206635>
>>>>>>>>>> Blog - *http://kishanthan.wordpress.com
>>>>>>>>>> <http://kishanthan.wordpress.com>*
>>>>>>>>>> Twitter - *http://twitter.com/kishanthan
>>>>>>>>>> <http://twitter.com/kishanthan>*
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Indunil Upeksha Rathnayake
>>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>>> Email    [email protected]
>>>>>>>>> Mobile   0772182255
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Dev mailing list
>>>>>>>> [email protected]
>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> With regards,
>>>>>>> *Manu*ranga Perera.
>>>>>>>
>>>>>>> phone : 071 7 70 20 50
>>>>>>> mail : [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Indunil Upeksha Rathnayake
>>>>>> Software Engineer | WSO2 Inc
>>>>>> Email    [email protected]
>>>>>> Mobile   0772182255
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> [email protected]
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sajith Janaprasad Ariyarathna
>>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>>> <https://wso2.com/signature>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Sajith Janaprasad Ariyarathna
>>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>>> <https://wso2.com/signature>
>>>>
>>>
>>>
>>>
>>> --
>>> Indunil Upeksha Rathnayake
>>> Software Engineer | WSO2 Inc
>>> Email    [email protected]
>>> Mobile   0772182255
>>>
>>
>>
>>
>> --
>> With regards,
>> *Manu*ranga Perera.
>>
>> phone : 071 7 70 20 50
>> mail : [email protected]
>>
>
>
>
> --
> Indunil Upeksha Rathnayake
> Software Engineer | WSO2 Inc
> Email    [email protected]
> Mobile   0772182255
>



-- 
Sajith Janaprasad Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
<https://wso2.com/signature>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to