Hi Manu,
Please find my comments inline.
-1 *ifCond* and *selectIf*
I agree with your view. Since Mustache and Handlebars follow the *logic-less
template* approach, Caramel should also follow it.
However there are some circumstances where you have to put some logic in
the template. For example, in [1] we have used selectIf helper to determine
the proper CSS class for some action buttons. Before introducing
selectIf helper,
these CSS classes were hard-coded in this [2] .js file (which is in the
server-side). Hard-coding CSS classes is acceptable in HTML templates and
client-side JavaScripts, but not for other server-side .js or .jsg files.
That's why we introduced the selectIf helper.
+1 for *for*
>
The {{index}} expression has been introduced to the {{#each}} block helper
in Handlebars 3.0.3 version. However startIndex, endIndex and jump optional
parameters of the proposed for helper can be helpful. For example,
displaying only certain number of items based on a user input (see below
image). So, adding for helper will be helpful.
[image: Inline image 1]
[1]
https://github.com/sajithar/carbon-appmgt/blob/047b7831886f50f6e656ca9d56739d08003c7240/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/partials/list-assets-row.hbs#L50
[2]
https://github.com/sajithar/carbon-appmgt/blob/2d362df789eadc1b67e0edf41209380aa82bf7c1/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/renderers/controllers/assets_router.js#L39
Thanks.
On Wed, Aug 12, 2015 at 6:40 PM, Manuranga Perera <[email protected]> wrote:
> -1 *ifCond* and *selectIf*
> the reason we have separate *logic-less* temperating is to remove logic
> out of ui representation. this helper defeats whole purpose of having
> handlebars.
> different people have different opinions on this, see the discussion on
> https://github.com/wycats/handlebars.js/issues/616 . I personally don't
> like putting it in templates.
>
> It is better to do the necessary logic in the js/jag file and use the
> built in Helpers. is there any reason to not to do it this way?
>
> +1 for *for*
> but think it's there in new version anyway. is this one any different? if
> not we should just update to new Handlebars instead.
>
> On Wed, Aug 12, 2015 at 3:28 PM, Sajith Ariyarathna <[email protected]>
> wrote:
>
>> Hi All,
>>
>> For AppM we have implemented few custom Handlebars helpers [1]. Since
>> they are very helpful, we like to suggest them to add to the Caramel
>> framework. We suggest following 03 helpers.
>>
>> *ifCond*
>>
>> Conditional if block which can be used with a single logical expression.
>> ifCond helper supports ==, !=, ===, !==, <, <=, >, >=, &&, || and typeof
>> operators.
>> (see [2])
>>
>> *for*
>>
>> Iterates over an array and iteration manner can be customized. Also,
>> index of the current iteration can be access as {{index}}. (see [3])
>>
>> *selectIf*
>>
>> For the given value, outputs the result based on the specified
>> 'value-result' map. Very similar to the switch-case clause. (see [4])
>>
>>
>> Thanks.
>>
>> [1]
>> https://github.com/wso2/carbon-appmgt/blob/master/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/js/lib/handlebars/custom.handlebars.helpers.js
>> [2]
>> https://github.com/wso2/carbon-appmgt/blob/master/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/js/lib/handlebars/custom.handlebars.helpers.js#L92
>> [3]
>> https://github.com/wso2/carbon-appmgt/blob/master/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/js/lib/handlebars/custom.handlebars.helpers.js#L143
>> [4]
>> https://github.com/wso2/carbon-appmgt/blob/master/features/appmgt/org.wso2.carbon.appmgt.publisher.feature/src/main/resources/publisher/themes/mobileapp/js/lib/handlebars/custom.handlebars.helpers.js#L250
>>
>> --
>> Sajith Ariyarathna
>> Software Engineer; WSO2, Inc.; http://wso2.com/
>> mobile: +94 77 6602284, +94 71 3951048
>>
>
>
>
> --
> With regards,
> *Manu*ranga Perera.
>
> phone : 071 7 70 20 50
> mail : [email protected]
>
--
Sajith Ariyarathna
Software Engineer; WSO2, Inc.; http://wso2.com/
mobile: +94 77 6602284, +94 71 3951048
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev