Hi All,

To do $subject, we are hoping to give a UUF client JS library. With the
client-side library, webapp developers will be able to render fragments and
push to zones similar to the server-side.

Functions in the library:

UUF.renderFragment(fragmentFullyQualifedName, templateFillingObject,
zoneName, mode)

Using this function webapp developers can render a fragment in the
client-side and push the content to a given zone.

Here,

*fragmentFullyQualifedName* - Fully qualified name
(<component-name>.<fragment-name>) of the fragment that you want to render.
e.g. "org.wso2.carbon.apimgt.store.api-grid"
*templateFillingObject* - JSON object which will be used to fill the
fragment's template. e.g. {name: "My API", version: "1.0.0"}

*zoneName* - Name of the zone that you want to push the rendered HTML. e.g.
"grid"

*mode* - Dictates how the pushing content orders with the existing content
in the zone. Mode can be "PREPEND" (put the pushing content before the
existing content), "APPEND" (put the pushing content after the existing
content) or "OVERWRITE" (replace the existing content with the pushing
content)


UUF.renderTemplate(hbsTemplate,  templateFillingObject, zoneName, mode)

Using this function webapp devs can render a given Handlebars template and
push it to a desired zone.

Here,

*hbsTemplate* - Handlebars template string


Bringing zones to the client-side.

When rendering a zone in the server-side, we can mark the start and end of
a zone's content with HTML comments.

e.g.

<!-- [UUF-ZONE]{"name": "grid", "position": "start"} -->
     <p>content of zone grid goes here</p>
     <div>here is a div</div>
     <p>some more stuff</p>
<!-- [UUF-ZONE]{"name": "grid", "position": "end"} -->

HTML comments can be identified by filtering nodes in the DOM. And further
filtering the comments that starts with [UUF-ZONE], we can identify UUF
zone marking comments. Jerad did a POC for this. In that we were able to
successfully identify zones and push content for all modes.


We are hoping to expose this library through the "uuf-client" fragment in
the common "foundation" component [1].

[1]
https://github.com/wso2/carbon-uuf-common/tree/master/components/org.wso2.carbon.uuf.common.foundation

WDYT?

Thanks.
-- 
Sajith Janaprasad Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
<https://wso2.com/signature>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to