MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    read csv-data and put it in an array

    Scheduled Pinned Locked Moved Utilities
    313 Posts 3 Posters 440.2k Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      sdetweil
      last edited by sdetweil

      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
      
      },
      

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil
        last edited by

        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;
        	}
        

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        1 Reply Last reply Reply Quote 0
        • PerlchampP Offline
          Perlchamp
          last edited by Perlchamp

          the classes are not addressed :
          image
          … without header and footer.
          why the classes are null ?

          S 1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @Perlchamp
            last edited by sdetweil

            @Perlchamp sorry, typo
            className with upper case

            	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
            
            	},
            

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            1 Reply Last reply Reply Quote 0
            • PerlchampP Offline
              Perlchamp
              last edited by

              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 …

              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @Perlchamp
                last edited by sdetweil

                @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)
                works

                cells 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;
                	}
                

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                1 Reply Last reply Reply Quote 0
                • PerlchampP Offline
                  Perlchamp
                  last edited by

                  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 :-(

                  S 1 Reply Last reply Reply Quote 0
                  • S Offline
                    sdetweil @Perlchamp
                    last edited by sdetweil

                    @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

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    1 Reply Last reply Reply Quote 0
                    • PerlchampP Offline
                      Perlchamp
                      last edited by Perlchamp

                      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

                      S 1 Reply Last reply Reply Quote 0
                      • S Offline
                        sdetweil @Perlchamp
                        last edited by sdetweil

                        @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	18
                        
                        

                        code

                        	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;
                        	}
                        

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 26
                        • 27
                        • 28
                        • 29
                        • 30
                        • 31
                        • 32
                        • 28 / 32
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy