On 04/03/2011 01:56 PM, Gerritjan Koekkoek wrote:
Hi,
I have the following livetable...(see below) (working perfectly!) My challenge is the following; the column countryCode is a string with a comma seperated list with country codes (1 to many) I've graphical flags representing a country and several macro's to display the flags when you feed them a string with countrycodes; #ArrayOfCounties($vCountryCodeString $vCountryCodeList) => translates a comma seperated string into a array #ShowAllFlags($vCountryCodeList) => shows all the flags of countryCodes in the array
What is the best way to dynamically show (in the display of the livetable) the flags of the countries represented in the countryCode collumn?
You can't do that from the server, since the UI is generated by JavaScript. You'll have to define a callback method that constructs the UI, and register it in the livetable options. A good example functions is in XWiki.AllAttachments which also outputs images, for the attachment type.
#set($columns = ["countryName" ,"languageText" ,"countryCode", "_actions" ]) #set($columnsProperties = { "countryName" : { "type" : "text", "link" : "view", "size" : 10, "filterable" : true, "sortable": true }, "language" : { "type" : "text", "link" : "view", "size" : 10, "filterable" : false, "sortable": false }, "countryCode" : { "type" : "text", "link" : "view", "size" : 10, "filterable" : false, "sortable": false }, "languageText" : { "type" : "text", "link" : "view", "size" : 10, "filterable" : true, "sortable": true }, "_avatar" : { "type" : "none", "link" : "none", "html" : "true", "sortable":false }, "_images" : { "type" : "none", "link" : "none", "html" : "true", "sortable":false }, "_attachments" : { "type" : "none", "link" : "none", "html" : "true", "sortable":false }, "_actions" : { "type" : "none", "link" : "none", "html" : "true", "sortable":false }, "doc.name" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.space" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.fullName" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.author" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.date" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.creator" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.creationDate" : { "type" : "text", "link" : "view", "size" : "10", "filterable" : true, "sortable": true }, "doc.title" : { "type" : "text", "link" : "view", "size" : "20", "filterable" : true, "sortable": true }, "_actions" : {"actions": ["edit","delete"], "displayName" : "Change"} })
#set($options = { "className":"CdLSAssociations.CdLS_ATD_CountryClass", "translationPrefix" : "cdls_atd_country.livetable.", "tagCloud" : true, "rowCount": 20, "maxPages" : 10, "selectedColumn" : "doc.title", "defaultOrder" : "asc" })
#livetable("cdls_atd_country" $columns $columnsProperties $options)
-- Sergiu Dumitriu http://purl.org/net/sergiu/