Skip to content

Latest commit

 

History

History

6-js

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

AJAX (Javascript, AJAX)

* id (BIGINT до 18 знаков, autoincrement, primary key, not null)
* login (VARCHAR до 255 знаков, ключ уникальности unique_User_login, not null)
* passwordSha (VARCHAR до 255 знаков, not null)
* creationTime (DATETIME, индекс index_User_creationTime, not null)

Запустите проект (поправьте profile.properties), убедитесь, что всё работает - регистрация+вход+выход, просмотр пользователей.

  • Переделайте форму входа в систему на использование AJAX.
  • Создайте сущность Article (статья, пост) c полями id, userId, title, text, creationTime (помним про внешний ключ и прочие детали) и соответствующие ей ArticleRepository, ArticleRepositoryImpl, ArticleService. По ссылке /article добавьте форму создания статьи (два поля: title типа input и text типа textarea, кнопка Create), которая будет работать посредством AJAX. Добавьте ссылку на создание статьи в меню, если пользователь авторизован.
  • На главной странице (IndexPage) добавьте вывод всех статей в обратном хронологическом порядке. Используйте AJAX для асинхронной подгрузке статей (используйте элемент template для задания шаблона статьи). Если вы справились с заданием из 2-го дз про разметку статьи, то используйте разметку/css из того задания.
  • Добавьте в Article поле/колонку hidden. Отображайте на главной только нескрытые статьи. Сделайте страницу /myArticles с таблицей своих статей (только id, title и колонка с кнопкой Hide/Show). Пусть таблица загружается без AJAX, просто выводится в шаблоне. Третий столбец должен содержать либо кнопку Hide, либо кнопку Show. При нажатии на кнопку должен уходить AJAX-запрос на изменение поля hidden и при успешном выполнении операции текст на кнопке и её действие должно актуализироваться. То есть сама страница должна работать без перезагрузок. Не забудьте проверить в бэкенде, что запрос пришел от автора статьи.
  • Добавьте пользователю булевское свойство/колонку admin (по умолчанию false). Если страницу /admin просматривает админ, то добавьте в таблицу колонку Admin. В этой колонке должен отображаться текущее значение admin пользователя и ссылка либо enable (для false), либо disable (для true). По нажатию на такую ссылку в бэкенд должен уходить AJAX-запрос с id пользователя, менять значение admin у этого пользователя, а в обработчике на успех надо перерисовать false<->true и enable<->disable. Иными словами управление добавить/удалить из админов должно происходить без перезагрузки страницы. Не забудьте проверить в бэкенде, что запрос пришел от админа.