Read the statement by Michael Teeuw here.
read csv-data and put it in an array
-
when I had a big pile of html objects to create I wrote a little routine to hide the 4 lines per object
where i have to place it ?
sam, take my going code and see by yourself. here is the css:
/* .birthdaylist .app { width: 200px; padding: 0px; } */ .birthdaylist .table { padding: 0px; margin: 0px; /* border: 1px solid white; width: 200px; */ } .birthdaylist .thead { } .birthdaylist .tr-head { } .birthdaylist header { letter-spacing: 0.1em; text-transform: uppercase; font-size: 20px; font-family: "Roboto Condensed", Arial, Helvetica, sans-serif; font-weight: 400; border-bottom: 1px solid #444444; line-height: 20px; padding-bottom: 5px; color: #ffffff; /* font-variant: small-caps; */ } .birthdaylist .tfoot { /* height: 10px; padding: 0px; margin: 0px; */ } .birthdaylist .tr-foot { /* height: 10px; padding: 0px; margin: 0px; */ } .birthdaylist .td-foot { line-height: 16px; font-size: 16px; font-family: "Roboto Condensed", Arial, Helvetica, sans-serif; padding: 0px; margin: 0px; /* border: 1px solid #444444; */ } .birthdaylist .tbody { } .birthdaylist .tr-body { } .birthdaylist .td-image { width: 27px; background-repeat: no-repeat; background-position: top left; background-image: url("/modules/birthdaylist/images/kalenderblatt.png"); font-size: 20px; color: #000000; font-weight: 400; line-height: 26px; vertical-align: top; text-align: center; margin: 0px; padding: 10px 0px 0px 0px; /* border: 1px solid orange; height: 28px; */ } .birthdaylist .td-body { font-size: 18px; text-transform: uppercase; color: #888888; letter-spacing: 0.1em; vertical-align: top; line-height: 22px; padding: 0px 0px 8px 8px; margin: 0px; /* border: 1px solid orange; height: 28px; font-variant: small-caps; width: 160px; */ } .birthdaylist span { color: orange; font-weight: bold; } -
@Perlchamp said in read csv-data and put it in an array:
where i have to place it ?
its just another routine like getDom()I put it right in front of getDom
-
and the parent-element itselfs get a 0 (null) as parent ?
-
@Perlchamp i usually don’t use it for wrapper, but yes… the routine would have to check and not set if parent null, same for id
-
doesn’t work (black screen) yet, BUT:
- the classes set in “” ?
- no use of appendchild ?
- the wrapper set in “” ?
i did :
- no
- correct
- no
question:
get i problems with this.create… because of “var self = this” ? -
my code (only table):
// create table var wrapper = this.createEl('table', "birthday-table", table , 0) //var wrapper = document.createElement("table"); //wrapper.className = 'table'; //wrapper.id = 'birthday-table'; // create header var tHeader = this.createEl('thead', "birthday-thead", thead , wrapper) //var tHeader = document.createElement("thead"); //tHeader.className = "thead"; //tHeader.id = "birthday-thead"; var headerTR = this.createEl('tr', "birthday-tr-head", tr-head , tHeader) //var headerTR = document.createElement("tr"); //headerTR.className = "tr-head"; //headerTR.id = "birthday-tr-head"; var headerTH = document.createElement("th"); //var headerTH = this.createEl('th', "birthday-th-head", th-head , headerTR) headerTH.colSpan = "2"; headerTH.scope = "col"; headerTH.innerHTML = " "; //headerTH.className = "th-head"; //headerTH.id = "birthday-th-head"; //headerTR.appendChild(headerTH); //tHeader.appendChild(headerTR); //wrapper.appendChild(tHeader); // Create TFOOT section -- currently used for debugging only var tFooter = this.createEl('tfoot', "birthday-tfood", tfoot , wrapper) //var tFooter = document.createElement('tfoot'); //tFooter.className = "tfoot"; //tFooter.id = "birthday-tfoot"; //var footerTR = document.createElement("tr"); var footerTR = this.createEl('tr', "birthday-tf-foot", tr-foot , tFooter) //footerTR.className = "tr-foot"; //footerTR.id = "birthday-tr-foot"; //var footerTD = document.createElement("td"); var footerTD = this.createEl('td', "birthday-td-foot", td-foot , footerTR) 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 = this.createEl('tBody', "birthday-tbody", tbody , wrapper) //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 = this.createEl('tr', "birthday-tr-body", tr-body , tBody) //var bodyTR = document.createElement("tr"); //bodyTR.className = "tr-body"; //bodyTR.id = "birthday-tr-body"; var bodyTDimage = this.createEl('td', "birthday-td-image", td-image , bodyTR) //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.innerHTML = birthday.substring(0,2); var bodyTD = this.createEl('td', "birthday-td-body", td-body , bodyTDimage) //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); } } -
@Perlchamp all except parent in quotes
tables parent is wrapper, wrappers parent is null/0
-
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 },
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