Read the statement by Michael Teeuw here.
read csv-data and put it in an array
-
wrapper in quotes , too ?
-
@sdetweil if there is no data, then you still need to return something (empty div)
-
@Perlchamp wrapper is a div type, no id,class or parent
-
my code now does not work:
// create table var wrapper = this.createEl('table', "birthday-table", table , 0) // create header var tHeader = this.createEl('thead', "birthday-thead", thead , "") var headerTR = this.createEl('tr', "birthday-tr-head", tr-head , "tHeader") var headerTH = this.createEl('th', "birthday-th-head", th-head , "headerTR") headerTH.colSpan = "2"; headerTH.scope = "col"; headerTH.innerHTML = " "; // Create TFOOT section -- currently used for debugging only var tFooter = this.createEl('tfoot', "birthday-tfood", tfoot , "") var footerTR = this.createEl('tr', "birthday-tf-foot", tr-foot , "tFooter") var footerTD = this.createEl('td', "birthday-td-foot", td-foot , "footerTR") footerTD.colSpan ="2"; if (this.config.debugging) { footerTD.innerHTML = "Birthdaylist is currently in DEBUG mode! < br / > Please see console log."; } else { footerTD.innerHTML = " "; } // create TBODY section with day names var tBody = this.createEl('tBody', "birthday-tbody", tbody , "") for(var birthday of Object.keys(this.active_birthdays)) { for(var person of this.active_birthdays[birthday]) { // create looped row section var bodyTR = this.createEl('tr', "birthday-tr-body", tr-body , "tBody") var bodyTDimage = this.createEl('td', "birthday-td-image", td-image , "bodyTR") if (birthday.charAt(0) === "0") { birthday = birthday.replace("0",""); birthday = birthday.substring(0,1); } bodyTDimage.innerHTML = birthday.substring(0,2); var bodyTD = this.createEl('td', "birthday-td-body", td-body , "bodyTDimage") bodyTD.innerHTML = person.name + " < span class=\"age-span\" > " + person.age + " < /span > "; } } -
@Perlchamp said in read csv-data and put it in an array:
", thead ,
again all classes in quotes, ONLY parent NOT in quotes
var wrapper = this.createEl('table', "birthday-table", "table" , null) var tHeader = this.createEl('thead', "birthday-thead", "thead" , wrapper ) var headerTR = this.createEl('tr', "birthday-tr-head", "tr-head" , tHeader) var headerTH = this.createEl('th', "birthday-th-head", "th-head" , headerTR) -
does not work for me. complete getDom and your createEl :
createEl(type, id, class, parent){ var el = document.createElement(type); el.id = id; if(class); el.classname = class; parent.addChild(el); return el; }, getDom: function() { var self = this; var wrapper = document.createElement("div"); 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 = this.createEl("table", "birthday-table", "table" , null) // create header var tHeader = this.createEl('thead', "birthday-thead", "thead" , wrapper) var headerTR = this.createEl('tr', "birthday-tr-head", "tr-head" , tHeader) var headerTH = this.createEl('th', "birthday-th-head", "th-head" , headerTR) headerTH.colSpan = "2"; headerTH.scope = "col"; headerTH.innerHTML = " "; // Create TFOOT section -- currently used for debugging only var tFooter = this.createEl('tfoot', "birthday-tfood", "tfoot" , wrapper) var footerTR = this.createEl('tr', "birthday-tf-foot", "tr-foot" , tFooter) var footerTD = this.createEl('td', "birthday-td-foot", "td-foot" , footerTR) footerTD.colSpan ="2"; if (this.config.debugging) { footerTD.innerHTML = "Birthdaylist is currently in DEBUG mode!<br />Please see console log."; } else { footerTD.innerHTML = " "; } // create TBODY section with day names var tBody = this.createEl('tBody', "birthday-tbody", "tbody" , wrapper) for(var birthday of Object.keys(this.active_birthdays)) { for(var person of this.active_birthdays[birthday]) { var bodyTR = this.createEl('tr', "birthday-tr-body", "tr-body" , tBody) var bodyTDimage = this.createEl('td', "birthday-td-image", "td-image" , bodyTR) if (birthday.charAt(0) === "0") { birthday = birthday.replace("0",""); birthday = birthday.substring(0,1); } bodyTDimage.innerHTML = birthday.substring(0,2); var bodyTD = this.createEl('td', "birthday-td-body", "td-body" , bodyTDimage) bodyTD.innerHTML = person.name + " < span class=\"age-span\" > " + person.age + " < /span > "; } } return wrapper; } this.loaded = true; } }, -
@Perlchamp said in read csv-data and put it in an array:
// create table var table = this.createEl("table", "birthday-table", "table" , wrapper) // create header var tHeader = this.createEl('thead', "birthday-thead", "thead" , table) var headerTR = this.createEl('tr', "birthday-tr-head", "tr-head" , tHeader) var headerTH = this.createEl('th', "birthday-th-head", "th-head" , headerTR) headerTH.colSpan = "2"; headerTH.scope = "col"; headerTH.innerHTML = " "; // Create TFOOT section -- currently used for debugging only var tFooter = this.createEl('tfoot', "birthday-tfood", "tfoot" , table) var footerTR = this.createEl('tr', "birthday-tf-foot", "tr-foot" , tFooter) var footerTD = this.createEl('td', "birthday-td-foot", "td-foot" , footerTR) footerTD.colSpan ="2"; if (this.config.debugging) { footerTD.innerHTML = "Birthdaylist is currently in DEBUG mode!< br />Please see console log."; } else { footerTD.innerHTML = " "; } // create TBODY section with day names var tBody = this.createEl('tBody', "birthday-tbody", "tbody" , table) for(var birthday of Object.keys(this.active_birthdays)) { for(var person of this.active_birthdays[birthday]) { var bodyTR = this.createEl('tr', "birthday-tr-body", "tr-body" , tBody) var bodyTDimage = this.createEl('td', "birthday-td-image", "td-image" , bodyTR) if (birthday.charAt(0) === "0") { birthday = birthday.replace("0",""); birthday = birthday.substring(0,1); } bodyTDimage.innerHTML = birthday.substring(0,2); var bodyTD = this.createEl('td', "birthday-td-body", "td-body" , bodyTDimage) bodyTD.innerHTML = person.name + " < span class=\"age-span\" > " + person.age + " < /span > "; } }what the html fragments with the < and space, they don’t work if there is a space there, need it for the forum, but won’t actually work
-
@sdetweil said in read csv-data and put it in an array:
headerTH.innerHTML = " ";all things are empty when created, so don’t need this
-
@sdetweil said in read csv-data and put it in an array:
else { footerTD.innerHTML = " "; }don’t need this
-
fixed createEl routine
createEl : function (type, id, className, parent){ var el= document.createElement(type) if(id) el.id=id if(className) el.className=className if(parent) parent.appendChild(el) return el }, -
new getDom(), without header or footer
getDom: function() { var wrapper = this.createEl("div",null,null,null); if(Object.keys(this.active_birthdays).length>0){ // create your table and header here // create TBODY section with day names var tBody = this.createEl("tBody", "birthday-tbody", "tbody", wrapper ); for(var birthday of Object.keys(this.active_birthdays)){ for(var person of this.active_birthdays[birthday]){ var bodyTR = this.createEl("tr", "birthday-tr-body",null, tBody); var bodyTDimage = this.createEl("td","birthday-td-image", null, bodyTR ); bodyTDimage.appendChild(document.createTextNode(birthday)); var bodyTD = this.createEl("td", "birthday-td-body", null, bodyTR ); bodyTD.appendChild(document.createTextNode(person.name)); var ageTD = this.createEl("td","birthday-td-age", null, bodyTR ); ageTD.appendChild(document.createTextNode(person.age)); } } } // create your table footer here // pass the created content back to MM to add to DOM. return wrapper; } -
the classes are not addressed :

… without header and footer.
why the classes are null ? -
@Perlchamp sorry, typo
className with upper casecreateEl : function (type, id, className, parent, value){ var el= document.createElement(type) if(id) el.id=id if(className) el.className=className if(parent) parent.appendChild(el) if(value) el.appendChild(document.createTextNode(value)) return el }, -
i set the classes in uppercase, allthough in the css-file. but the classes are not adressed.
by the way. maybe there is a problem with TWO cells in a row, because the daynumbers are OVER the names. if you look at the picture i send before (not the last post), than you can see, that the daynumbers are in ONE row with the names … -
@Perlchamp well, part of the problem is the ID of the cells is the same for each row… removing id and class (which I don’t have)
workscells don’t NEED ids… but if u wanted, you would have to create a counter to append each loop to make the ids unique
new createEl which does text value too
createEl : function (type, id, className, parent, value){ var el= document.createElement(type) if(id) el.id=id if(className) el.className=className if(parent) parent.appendChild(el) if(value) el.appendChild(document.createTextNode(value)) return el },and table header
createTableHeader: function(parent, className, columnlabels){ var header = document.createElement("tr") for(columnName of columnlabels){ this.createEl("th",null,className, header,columnName) } parent.appendChild(header) return header },getdom()
// this is the major worker of the module, it provides the displayable content for this module getDom: function() { var wrapper = this.createEl("div",null,null,null); if(Object.keys(this.active_birthdays).length>0){ // create your table here var table = this.createEl("table", "birthday-table", null, wrapper ); // table header here, array of column names var table_header=this.createTableHeader(table, null, ["date","Name","age"]) // create TBODY section with day names var tBody = this.createEl("tBody", "birthday-tbody", null, table ); for(var birthday of Object.keys(this.active_birthdays)){ for(var person of this.active_birthdays[birthday]){ var bodyTR = this.createEl("tr", null,null, tBody); var bodyTDimage = this.createEl("td",null, null, bodyTR , birthday ); var bodyTD = this.createEl("td", null, null, bodyTR , person.name); var ageTD = this.createEl("td",null, null, bodyTR ,person.age ); } } } // create your table footer here // pass the created content back to MM to add to DOM. return wrapper; } -
ok, i’ve seen, the header function … uff, all is placed right (code).
i don’t see the day of birth. the first cell is still the problem :-( -
@Perlchamp with my code I see
I removed class
date Name age
12.05 Sam 69
02.05 Frank 81
02.05 Sue 81
05.05 mary 65
10.05 eee EEEEE 51
16.05 fff FFFFF 8
16.05 ggg GGGGG 32
27.05 hhh HHHHH 18 -
i have a calendar OVER the birthdaylist, so i DON#T need the month in the first cell. the FIRST cell has a calendar sheet as background-image, THOUGH i DON’T need the leading null of the day of birth. should be:
5 Sam 69
Mary 12
8 Frank 81
15 Sue 81
…
did you seen the images i did send ?
and, of course, people with the same day of birth without day of birth -
@Perlchamp no images email or text
(cannot do fixed font here)date Name age 12 Sam 69 2 Frank 81 Sue 81 5 mary 65 10 eee EEEEE 51 16 fff FFFFF 8 ggg GGGGG 32 27 hhh HHHHH 18code
getDom: function() { var wrapper = this.createEl("div",null,null,null); if(Object.keys(this.active_birthdays).length>0){ // create your table here var table = this.createEl("table", "birthday-table", null, wrapper ); // table header here, array of column names var table_header=this.createTableHeader(table,null, ["date","Name","age"]) // create TBODY section with day names var tBody = this.createEl("tBody", "birthday-tbody", null, table ); var birthdays_seen= {} for(var birthday of Object.keys(this.active_birthdays)){ for(var person of this.active_birthdays[birthday]){ var bodyTR = this.createEl("tr", null,null, tBody); var bd ="" if(birthdays_seen[birthday] == undefined){ bd =(birthday.startsWith("0")? birthday.substring(1): birthday).split('.')[0] birthdays_seen[birthday] = true } var bodyTDimage = this.createEl("td",null, null, bodyTR , bd ); var bodyTD = this.createEl("td", null, null, bodyTR , person.name); var ageTD = this.createEl("td",null, null, bodyTR ,person.age ); } } } // create your table footer here // pass the created content back to MM to add to DOM. return wrapper; } -
my code:
createEl : function (type, id, className, parent, value) { var el= document.createElement(type); if(id) el.id = id; if(className) el.className = className; if(parent) parent.appendChild(el); if(value) el.appendChild(document.createTextNode(value)); return el; }, createTableHeader: function(parent, className, columnlabels) { var header = document.createElement("tr"); for(columnName of columnlabels) { this.createEl("th", null, className, header, columnName); } parent.appendChild(header); return header; }, getDom: function() { var wrapper = this.createEl("div",null,null,null); 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(); if(Object.keys(this.active_birthdays).length>0) { // create table var table = this.createEl("table", "birthday-table", "TABLE" , wrapper) // create tableheader // create TBODY section with day names var tBody = this.createEl('tBody', "birthday-tbody", "TBODY" , table); for(var birthday of Object.keys(this.active_birthdays)) { for(var person of this.active_birthdays[birthday]) { var bodyTR = this.createEl('tr', "birthday-tr-body", "tr-body" , tBody); if (birthday.charAt(0) === "0") { birthday = birthday.replace("0",""); birthday = birthday.substring(0,1); } var bodyTDimage = this.createEl('td', "birthday-td-image", "TD-IMAGE" , bodyTR, birthday.substring(0,2)); var nameTD = this.createEl('td', "birthday-td-body", "TD-BODY" , bodyTR, person.name); var ageTD = this.createEl("td", "birthday-td-age", "TD-AGE", bodyTR ,person.age ); } } } // Create TFOOT section -- currently used for debugging only return wrapper; } this.loaded = true; },
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login