- Создать
index.html
вwebapp
(0 мин.) - В
<head>
указать скрипты: (0 мин.)<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
- Создать класс
Table
используяReact
(гайд) (60 мин.)- Элемент должен принимать данные из json, список ключей и название таблицы
- Добавить элемент
<div id="table_container">
вindex.html
(0 мин.) - Создать функцию
updateData(table, query)
(10 мин.)- Создать массив
keys
и заполнить его ключами необходимыми для запрошенной таблицы - Используя
fetch
запросить json с адресаajax/$table?$query
- В
then
методе отрендеритьTable
внутри элемента сid="table_container"
с параметрамиdata
,table
,keys
иquery
- Создать массив
- В конце скрипта добавить вызов
updateData("user")
(0 мин.) - Создать функцию
handler(table, id)
(2 мин.)- Если
table == "user"
вызываетupdateData("authority", "userId=" + id)
- Если
table == "authority"
вызываетupdateData("activity", "authorityId=" + id)
- Если
- В классе
Table
при создании рядов указатьonClick
функцию (2 мин.)- Вызывает
handler
с названием текущей таблицы иid
из выбранного ряда
- Вызывает
- Создать класс
Form
используяReact
(30 мин.)- Рендерит форму и кнопку для отправки
- В
this.state.fields
хранит все поля из командной строки проинициализированные пустыми строками
- Добавить элемент
<div id="form_container">
вindex.html
(0 мин.) - В конце скрипта отрендерить
Form
используяReactDOM.render(React.createElement(Form), document.getElementById("form_container"))
(0 мин.) - Создать метод
Form.changeHandler(event)
(1 мин.)- Записывает значения изменившегося input поля в соответствующее поле класса:
this.state.fields[event.target.name] = event.target.value
- Записывает значения изменившегося input поля в соответствующее поле класса:
- В рендере класса
Form
элементам<input>
добавить параметрonChange=this.changeHandler
(2 мин.) - Создать метод
Form.send()
(30 мин.)- Отправить
POST
запрос с json с полями формы наajax/activity
- Получить ответ со статусом
- Если статус != 0 вывести его через
alert
- Иначе отрендерить таблицу заново используя метод
updateData()
и параметры из предыдущего запроса таблицы
- Отправить
- Создать метод
ActivityServlet.doPost()
(40 мин.)- Получить json из запроса и десериализовать его
- Собрать массив в формате массива с аргументами командной строки (
["-login", "xxx", "-pass", "xxx"]
) - Вызвать
App.run()
с массивом аргументов - Получить код возврата и записать его в
response
- В рендере класса
Form
кнопке для отправки добавить параметрonClick=this.send
(1 мин.)
Пункт плана | Оценка времени | Фактическое время |
---|---|---|
1. | 0 мин. | |
2. | 0 мин. | |
3. | 60 мин. | |
4. | 0 мин. | |
5. | 10 мин. | |
6. | 0 мин. | |
7. | 2 мин. | |
8. | 2 мин. | |
9. | 30 мин. | |
10. | 0 мин. | |
11. | 0 мин. | |
12. | 1 мин. | |
13. | 2 мин. | |
14. | 30 мин. | |
15. | 40 мин. | |
16. | 1 мин. |