Read the statement by Michael Teeuw here.
read csv-data and put it in an array
-
@Perlchamp need to specify width of td
By default, a browser will adjust table columns to fit the contents of the table. However, if you want to control the width of each column, you can do so by adjusting the width of each
or of a single row. if you had th, then you could see the length of the names as they go by, and then adjust the th width before sending the content to MM…
-
width:27px; is placed in css
but this://bodyTDimage.id = "birthday-td-image";
works. i really have to write html-text in the module-file ?
-
@Perlchamp eh? commenting out a line?
have a th is the same as what you have document.createElement(“th”)
-
wrong line, moment:
//bodyTDimage.className = "td-image";
this works, but unformatted, of course
i don’t like things like:
innerHTLM = tags, tags, tags … -
@Perlchamp eh? where is that?
-
getDom:
getDom: function() { var self = this; var wrapper = document.createElement("div"); // tell MM to call and get our content Log.log(JSON.stringify(this.active_birthdays)) if ((moment() > this.midnight) || (!this.loaded)) { var month = moment().month(); var year = moment().year(); var monthName = moment().format("MMMM"); var monthLength = moment().daysInMonth(); // create table var wrapper = document.createElement("table"); wrapper.className = 'table'; wrapper.id = 'birthday-table'; // create header var tHeader = document.createElement("thead"); tHeader.className = "thead"; tHeader.id = "birthday-thead"; var headerTR = document.createElement("tr"); headerTR.className = "tr-head"; headerTR.id = "birthday-tr-head"; var headerTH = document.createElement("th"); headerTH.colSpan = "2"; headerTH.scope = "col"; headerTH.className = "th-head"; headerTH.id = "birthday-th-head"; headerTH.innerHTML = " "; headerTR.appendChild(headerTH); tHeader.appendChild(headerTR); wrapper.appendChild(tHeader); // Create TFOOT section -- currently used for debugging only var tFooter = document.createElement('tfoot'); tFooter.className = "tfoot"; tFooter.id = "birthday-tfoot"; var footerTR = document.createElement("tr"); footerTR.className = "tr-foot"; footerTR.id = "birthday-tr-foot"; var footerTD = document.createElement("td"); footerTD.colSpan ="2"; footerTD.className = "td-foot"; footerTD.id = "birthday-td-foot"; if (this.config.debugging) { footerTD.innerHTML = "Birthdaylist is currently in DEBUG mode!<br />Please see console log."; } else { footerTD.innerHTML = " "; } footerTR.appendChild(footerTD); tFooter.appendChild(footerTR); wrapper.appendChild(tFooter); // create TBODY section with day names var tBody = document.createElement("tBody"); tBody.className = "tbody"; tBody.id = "birthday-tbody"; for(var birthday of Object.keys(this.active_birthdays)) { for(var person of this.active_birthdays[birthday]) { //var m = document.createElement('div'); // create looped row section var bodyTR = document.createElement("tr"); bodyTR.className = "tr-body"; bodyTR.id = "birthday-tr-body"; var bodyTDimage = document.createElement("td"); //bodyTDimage.className = "td-image"; bodyTDimage.id = "birthday-td-image"; if (birthday.charAt(0) === "0") { birthday = birthday.replace("0",""); birthday = birthday.substring(0,1); } bodyTDimage.innerText = birthday.substring(0,2); var bodyTD = document.createElement("td"); bodyTD.className = "td-body"; bodyTD.id = "birthday-td-body"; bodyTD.innerHTML = person.name + " <span class=\"age-span\">" + person.age + "</span>"; //m.innerText = birthday + ' ' + person.name + ' age=' + person.age; //wrapper.appendChild(m); bodyTR.appendChild(bodyTDimage); bodyTR.appendChild(bodyTD); tBody.appendChild(bodyTR); wrapper.appendChild(tBody); } } // pass the created content back to MM to add to DOM. return wrapper; } this.loaded = true; /* // var bodyAgeSpan = document.createElement("span"); // bodyAgeSpan.className = "age-span"; // bodyAgeSpan.id = "birthday-age-span"; // bodyAgeSpan.innerHTML = " 46"; // bodyTD.appendChild(bodyAgeSpan); } */ },
-
@Perlchamp fiddling with it here… technically you are supposed to have a text element as a child of the td
< table> < tr> < td> value < /td>
var n = document.createTextNode(value);
-
var bodyTR = document.createElement("tr"); // bodyTR.className = "tr-body"; bodyTR.id = "birthday-tr-body"; tBody.appendChild(bodyTR); var bodyTDimage = document.createElement("td"); // bodyTDimage.className = "td-image"; bodyTDimage.id = "birthday-td-image"; // bodyTDimage.innerHTML = birthday; bodyTR.appendChild(bodyTDimage); bodyTDimage.appendChild(document.createTextNode(birthday)); var bodyTD = document.createElement("td"); // bodyTD.className = "td-body"; bodyTD.id = "birthday-td-body"; // bodyTD.innerTEXT = person.name ; bodyTD.appendChild(document.createTextNode(person.name)); bodyTR.appendChild(bodyTD); var ageTD = document.createElement("td"); // bodyTD.className = "td-body"; ageTD.id = "birthday-td-age"; //ageTD.innerTEXT = person.age ; ageTD.appendChild(document.createTextNode(person.age)); bodyTR.appendChild(ageTD);
and set the class for the text element
-
you were too fast !!
to your information:
table needs a header (thead, tr, th) and a footer (tfoot, tr, td), and, of
course a boda (tbody, tr, td), my cose, where a put html-tags in the table and text without variable works fine.
but later, if i should dissapointed, i will try this. -
@Perlchamp >where a put html-tags in the table
its exactly the same as writing the html
they don’t NEED a thead/tfoot, these are optional
you could create a big text string of the html < table>… < /table>
and then assign that text string to the wrapper div innerHTML.same result…