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
