Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
app
public
test
.gitignore
jsconfig.json
package.json
readme.md
webpack.config.js

readme.md

Требуется разработать страницу добавления/редактирования и показа списка ранее добавленных пользователей.

Для этого требуется разработать и реализовать модель User, включающую в себя следующие поля:

  1. first_name — тип string, от 3 до 15 символов
  2. last_name — тип string, от 3 до 25 символов
  3. active — тип boolean, по умолчанию true
  4. age — тип number, целые числа в диапазоне от 18 до 55
  5. login — тип string, разрешённые символы — a-z, 0-9, _ и -
  6. password — тип string, минимум 8 символов
  7. role — тип number, один из {1: ‘Administrator’, 2: ‘Technician’, 3: ‘Manager’, 4: ‘Supervisor’}
  8. registered_on — тип number, таймстемп времени создания юзера

Модель должна валидироваться в соответствии с параметрами, описанными выше. Ошибки валидации должны попадать в связанную с моделью форму добавления/редактирования записи о пользователе.

Помимо этого требуется разработать и реализовать коллекцию моделей UsersCollection, наследующую от объекта Array.prototype следующие методы:

  1. forEach — простой обход сохранённых в коллекцию моделей
  2. map — обход с возвратом обработанных значений
  3. sort — сортировка моделей передаваемой функцией или по полю login, если функция не задана

Коллекция должна валидироваться на соответствие входных данных модели User, не позволяя внести что-либо иное. Коллекция также должна быть связана с таблицей на странице и пересобираться при изменении своих моделей. Данные в таблице выводятся в следующем формате:

  1. Role — сортируемое, выводятся текстовые названия ролей из объекта, описанного выше
  2. Login — сортируемое
  3. Full name — сортируемое, выводится на основе полей last_name и first_name, соединённых пробелом
  4. Age — сортируемое
  5. Registered on — сортируемое
  6. Active — в формате Yes/No

Сортировка на всех полях работает в обоих направлениях, как по возрастанию, так и по убыванию, и сочетается с дополнительной сортировкой по полю active — вначале показываем активных пользователей, затем неактивных

Результат можно увидеть здесь