From 7654953b33e2e9c0b22cca810b62dd1322e1dd2b Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 19 Oct 2026 19:13:10 +0300 Subject: [PATCH] Solution --- .github/workflows/test.yml-template | 29 +++++++++++++++++++++++++++++ README.md | 6 +++--- src/scripts/main.js | 29 +++++++++++++++++++++++++++++ src/styles/main.scss | 23 +++++++++++++---------- 4 files changed, 74 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/test.yml-template diff --git a/.github/workflows/test.yml-template b/.github/workflows/test.yml-template new file mode 100644 index 000000000..44ac4e963 --- /dev/null +++ b/.github/workflows/test.yml-template @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm start & sleep 5 && npm test + - name: Upload tests report(cypress mochaawesome merged HTML report) + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: report + path: reports diff --git a/README.md b/README.md index a4241d05f..50dc03ecd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ 1. Replace `` with your Github username in the link - - [DEMO LINK](https://.github.io/js_task_generate_table_DOM/) + - [DEMO LINK](https://Denis-Melnikov-dev.github.io/js_task_generate_table_DOM/) 2. Follow [this instructions](https://mate-academy.github.io/layout_task-guideline/) - Run `npm run test` command to test your code; - Run `npm run test:only -- -n` to run fast test ignoring linter; @@ -14,12 +14,12 @@ Okay, now we know what is a table, and can do some magic. In `main.js`, you already have imported file `people.json`. Variable `people` contains an array of people, you can check it by using `console.log`. Your task today is to convert this array to table rows. -Your layout for start: +Your layout for start: ![Preview](./src/images/preview.png) From the preview, you can see that table has 6 headers, but our data does not contain age and century. Yes, you need to calculate them by yourself. - + ##### Steps to do this challenge: 1) For each person from `people` array create table row with 6 table cells (name, gender, born, died, age, century) 2) Find a table with class `dashboard` in the document. diff --git a/src/scripts/main.js b/src/scripts/main.js index 7d4a5db04..0fcc35413 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -358,3 +358,32 @@ const people = [ console.log(people); // you can remove it // write your code here + +const table = document.querySelector('.dashboard'); + +for (const person of people) { + const newRow = document.createElement('tr'); + + table.append(newRow); + + const personData = []; + + personData[0] = person.name; + + if (person.sex === 'm') { + personData[1] = 'Male'; + } else { + personData[1] = 'Female'; + } + personData[2] = person.born; + personData[3] = person.died; + personData[4] = String(+person.died - +person.born); + personData[5] = Math.ceil(person.died / 100); + + for (let i = 0; i < personData.length; i++) { + const newTD = document.createElement('td'); + + newTD.textContent = personData[i]; + newRow.append(newTD); + } +} diff --git a/src/styles/main.scss b/src/styles/main.scss index 86e5d60d1..0f246e6b1 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,14 +1,17 @@ body { - background-image: linear-gradient(45deg, #e25644, #7e7cf9); - background-attachment: fixed; display: flex; - justify-content: center; align-items: center; + justify-content: center; + + box-sizing: border-box; min-height: 100vh; + margin: 0; padding: 100px; + font-family: Roboto, sans-serif; - margin: 0; - box-sizing: border-box; + + background-image: linear-gradient(45deg, #e25644, #7e7cf9); + background-attachment: fixed; } table { @@ -18,8 +21,8 @@ table { } tr { - background: #fff; color: #808080; + background: #fff; } tr:nth-child(2n + 1) { @@ -27,14 +30,14 @@ tr:nth-child(2n + 1) { } table tr:first-child { - background: #e25644; color: #fff; + background: #e25644; } td, th { - text-align: left; padding: 18px; + text-align: left; } table tr:last-child td:first-child { @@ -54,7 +57,7 @@ table tr:first-child th:last-child { } tr:not(:first-child):hover { - background: #f5f5f5; - color: #585858; cursor: pointer; + color: #585858; + background: #f5f5f5; }