How to translate helptext for custom property

Member since: 2010

I have used PropertyStringList from AlloyTech template.

Now, bellow this property, it's written "Place items in separate lines".

How can I customize this per property? I have an ApiController for fetching custom translations, so I could just call the controller based on the property name. But, I don't have the reference to the name.

 

return declare("alloy.editors.StringList", [_Widget, _TemplatedMixin, _WidgetsInTemplateMixin, _CssStateMixin, _ValueRequiredMixin], {

        templateString: "<div class=\"dijitInline\">\
                            <div data-dojo-attach-point=\"stateNode, tooltipNode\">\
                                <div data-dojo-attach-point=\"textArea\" data-dojo-type=\"dijit.form.Textarea\" style=\"width: 300px\"></div>\
                            </div>\
                            <br />\
                            <span>${helptext}</span>\
                        </div>",

        baseClass: "epiStringList2",
                
        helptext: "Place items in separate lines",

...

    

What I basically want is just a possibility to call a function with property name. Any clues?

#73286 Jul 12, 2013 16:27
  • Member since: 2010

    Hi,

    What I actually need is to be able to either:

    - access $this.name in a function that I would call in helptext: function() { return giveMeTranslationForPageType(this.name); }, or

    - declare var pageTypeName = someObject.name; above return declare("alloy.editors.StringList", ...., so that I can access it in helptext: function().

    I am a backend developer, so pardon my lack of js knowledge :/

    #73442 Jul 22, 2013 11:25
  • Member since: 2010

    Got it! Perhaps there is a nicer way (if so, let me know), but the problem is fixed by adding data-dojo-attach-point to a helptext span and setting its innertext in postCreate event.

    templateString: "<div class=\"dijitInline\">\
                                <div data-dojo-attach-point=\"stateNode, tooltipNode\">\
                                    <div data-dojo-attach-point=\"textArea\" data-dojo-type=\"dijit.form.Textarea\" style=\"width: 300px\"></div>\
                                </div>\
                                <br />\
                                <span data-dojo-attach-point=\"helpTextLabel\">${helptext}</span>\
                            </div>",
    
    ...
                    
            helptext: "Separera objekt ovan genom radbrytningar",
    ...
    
            postCreate: function () {
                // call base implementation
                this.inherited(arguments);
    ...
    
                var translationUrl = '/api/translation/GetTranslationsOnDemand?id=' + this.name;
                var label = this.helpTextLabel;
                
                $.getJSON(translationUrl, function (data) {
                    if (data != 'undefined') { label.innerHTML = data; }
                });
            },

        

     

    #73488 Jul 24, 2013 10:25