To-Do-List 1.29

by velo_ninja

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dynamic Divs</title>
    <style>   </style>
    <script>
			//--------------
      let counterRows = 0;
      let counterNote = 0;    
      //--------------      
      function generateRows(data) {
        const body = document.body;
        for (const [key, value] of Object.entries(data)) {
          const row = createRow(value);
          body.appendChild(row);
        }
      }
      //---------------------------------------------          
      function createRow(data, parentElement) {  
        const row = document.createElement('div');
        row.classList.add('row');
        row.style.display = 'flex';
        for (let i = 0; i < data.ids.length; i++) {        
          const div = createDiv(data.ids[i], data.titles[i], data.colors[i]);    
          //-------GENERAL-STYLE------------
          div.style.padding = '10px';
          div.style.display = 'flex';
          div.style.alignItems = 'center';
          div.style.justifyContent = 'flex-start';
          div.style.flexBasis = `${data.percentages[i]}%`;          
          //-------[ COUNTER ]------------
          if(div.id==='divCounter') {          	      
            div.id = div.id+counterRows; 
            div.textContent = counterRows; 
            div.style.color = 'white';             
          } 
					//-------[ TITLE ]------------
          else if(div.id==='divTitle') {div.id = div.id+counterRows;} 
          //-------[ BUTTONS ]------------
          else if(div.id==='divButtons') {div.id = div.id+counterRows;
            let btn_EditTask = createButton('btnEditTask', 'Edit-Task', xxx, divTask.id); 
            let btn_DeleteTask = createButton('btnDeleteTask', 'Delete-Task', xxx, divTask.id); 
                         
            //--------------------------[BTN-ID]-[BTN-LABEL]-[BTN-FUNCTION]-[TARGET-DIV]---------------------
 ...

CSS

.row {border-bottom: 3px solid black !important;}

#divTask  {   
    width: 100%;
    height: 10px; /* Adjust the thickness of the underline */
    background: linear-gradient(to right, rgba(0, 100, 255, 0.5), rgba(100, 250, 55, 0.4)); /* Gradient color */
    border-radius: 5px; /* Rounded corners */
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.8); /* Shadow effect */
    display: flex;
    align-items: center; /* Corrected typo: align-items */
    justify-content: center;
}

#divNote  {  
  width: 100%; 
  background: linear-gradient(to right, rgba(0, 100, 255, 0.5), rgba(100, 250, 55, 0.8)); /* Gradient color */
  border-radius: 5px; /* Rounded corners */
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.8); /* Shadow effect */
}

JavaScript

/*
function generate_Checkbox(counter) {
        	let checkBoxId = 'chb' + document.querySelectorAll('#divF input[type="checkbox"]').length; // Generate unique ID
          let checkBox = document.createElement('input');
          checkBox.type = 'checkbox';
          checkBox.id = 'checkBox'+counter;
          checkBox.addEventListener('click', function() { console.log(checkboxId);   console.log(divFId);
              // Add your custom click handling logic here
          });
          
          return checkBox;
        }
        */