diff --git a/src/index.html b/src/index.html index 7019f98..9be70c3 100644 --- a/src/index.html +++ b/src/index.html @@ -7,6 +7,8 @@ + diff --git a/src/script/components/IndexPage.js b/src/script/components/IndexPage.js index 2db0dfa..9977e6a 100644 --- a/src/script/components/IndexPage.js +++ b/src/script/components/IndexPage.js @@ -1,4 +1,6 @@ import DB from "./../utils/DB"; +import SortArr from "./SortArr"; +let sortArr = new SortArr(); let db = new DB(); let placeRender = document.querySelector(".workPlace"); @@ -36,9 +38,12 @@ class IndexPage { # - ФИО + ФИО + + Должность - Дата Начало + Дата Начало + Дата Конца @@ -46,6 +51,7 @@ class IndexPage { `; + this.addHandlerEvent(); }); }); } @@ -54,5 +60,25 @@ class IndexPage { Нехватает данных! Добавьте отпуск для сотрудников (кнопочка выше) ;`; } + + addHandlerEvent() { + let btnSortByFioАscending = document.querySelector(".sortByFioАscending"); + let btnSortByFioDescending = document.querySelector(".sortByFioDescending"); + btnSortByFioАscending.addEventListener( + "click", + eventForSort("employees", "sortByFioАscending") + ); + btnSortByFioDescending.addEventListener( + "click", + eventForSort("employees", "sortByFioDescending") + ); + function eventForSort(nameDB, sortBy) { + return () => { + db.fetch(nameDB).then(arr => { + sortArr.sort(arr, sortBy); + }); + }; + } + } } export default IndexPage; diff --git a/src/script/components/SortArr.js b/src/script/components/SortArr.js new file mode 100644 index 0000000..7e057b0 --- /dev/null +++ b/src/script/components/SortArr.js @@ -0,0 +1,42 @@ +class SortArr { + sort(arr, order) { + if (order === "sortByFioАscending") { + arr.sort(this.sortByFioАscending); + } else if (order === "sortByFioDescending") { + arr.sort(this.sortByFioDescending); + } else if (order === "sortByDateFromАscending") { + arr.sort(this.sortByDateFromАscending); + } else arr.sort(this.sortByDateFromDescending); + console.log(arr); + } + sortByFioАscending(personA, personB) { + if (personA.name > personB.name) { + return 1; + } else if (personA.name < personB.name) { + return -1; + } + } + sortByFioDescending(personA, personB) { + if (personA.name < personB.name) { + return 1; + } else if (personA.name > personB.name) { + return -1; + } + } + sortByDateFromАscending(personA, personB) { + if (personA.dateFrom > personB.dateFrom) { + return 1; + } else if (personA.dateFrom < personB.dateFrom) { + return -1; + } + } + sortByDateFromDescending(personA, personB) { + if (personA.dateFrom < personB.dateFrom) { + return 1; + } else if (personA.dateFrom > personB.dateFrom) { + return -1; + } + } +} + +export default SortArr; diff --git a/src/style/main.css b/src/style/main.css index f8bac38..424dd9b 100644 --- a/src/style/main.css +++ b/src/style/main.css @@ -18,3 +18,7 @@ .past { background-color: #f8d7da !important; } +.fa { + margin-left: 5px; + font-size: 20px; +}