Resolve "Ping конференции в списке конференций" Closes #68 See merge request romanov73/ng-tracker!69
280 lines
17 KiB
HTML
280 lines
17 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en"
|
||
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||
layout:decorator="default" xmlns:th="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/html">
|
||
<head>
|
||
<link rel="stylesheet" href="../css/grant.css"/>
|
||
</head>
|
||
<body>
|
||
|
||
<div class="container" layout:fragment="content">
|
||
<section id="grant">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-lg-12 text-center">
|
||
<h2 class="section-heading text-uppercase">Редактирование гранта</h2>
|
||
<div th:replace="grants/fragments/grantNavigationFragment"/>
|
||
</div>
|
||
</div>
|
||
<hr/>
|
||
<div class="row">
|
||
<div class="col-lg-12">
|
||
<form id="grant-form" method="post" th:action="@{'/grants/grant?id='+ *{id == null ? '' : id} + ''}"
|
||
th:object="${grantDto}">
|
||
<div class="row">
|
||
<div class="col-md-6 col-sm-12">
|
||
<input type="hidden" name="id" th:field="*{id}"/>
|
||
<div class="form-group">
|
||
<label for="title">Название:</label>
|
||
<input class="form-control" id="title" type="text"
|
||
placeholder="Название гранта"
|
||
th:field="*{title}"/>
|
||
<p th:if="${#fields.hasErrors('title')}" th:errors="*{title}"
|
||
class="alert alert-danger">Incorrect title</p>
|
||
<p class="help-block text-danger"></p>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="status">Статус:</label>
|
||
<select class="form-control" th:field="*{status}" id="status">
|
||
<option th:each="status : ${allStatuses}" th:value="${status}"
|
||
th:text="${status.statusName}">Status
|
||
</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="comment">Комментарий:</label>
|
||
<textarea class="form-control" rows="3" id="comment"
|
||
th:field="*{comment}"></textarea>
|
||
</div>
|
||
<div class="form-group">
|
||
<label>Дедлайны показателей:</label>
|
||
<input type="hidden" th:field="*{removedDeadlineIds}"/>
|
||
<div class="row" th:each="deadline, rowStat : *{deadlines}">
|
||
<input type="hidden" th:field="*{deadlines[__${rowStat.index}__].id}"/>
|
||
<div class="col-6 div-deadline-date">
|
||
<input type="date" class="form-control form-deadline-date" name="deadline"
|
||
th:field="*{deadlines[__${rowStat.index}__].date}"/>
|
||
</div>
|
||
<div class="col-4 div-deadline-description">
|
||
<input class="form-control" type="text" placeholder="Описание"
|
||
th:field="*{deadlines[__${rowStat.index}__].description}"/>
|
||
</div>
|
||
<div class="col-2">
|
||
<button type="submit"
|
||
class="btn btn-danger float-right btn-delete-deadline "
|
||
id="removeDeadline" name="removeDeadline"
|
||
th:value="${rowStat.index}">
|
||
<span aria-hidden="true">
|
||
<i class="fa fa-times"/>
|
||
</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<p th:if="${#fields.hasErrors('deadlines')}" th:errors="*{deadlines}"
|
||
class="alert alert-danger">Incorrect title</p>
|
||
</div>
|
||
<div class="form-group">
|
||
<input type="submit" id="addDeadline" name="addDeadline" class="btn btn-primary"
|
||
value="Добавить дедлайн"/>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="loader">Загрузить заявку:</label>
|
||
<div id="loader">
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-6 col-sm-12">
|
||
<label data-toggle="collapse"
|
||
href="#collapse-filter"
|
||
aria-expanded="false"
|
||
aria-controls="collapse-filter">Фильтр рабочей группы
|
||
</label>
|
||
<div th:class="${grantDto.wasLeader || grantDto.hasAge || grantDto.hasDegree} ?
|
||
'form-check' : 'form-check collapse'" id="collapse-filter">
|
||
<div class="row">
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f1"
|
||
th:field="*{wasLeader}" th:onclick="|$('#filter').click();|"/>
|
||
<label class="form-check-label" for="f1">Был руководителем проекта</label>
|
||
</div>
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f2"
|
||
th:field="*{hasAge}" th:onclick="|$('#filter').click();|"/>
|
||
<label class="form-check-label" for="f2">Младше 35 лет</label>
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f3"
|
||
th:field="*{hasDegree}" th:onclick="|$('#filter').click();|"/>
|
||
<label class="form-check-label" for="f3">Cтепень к.т.н.</label>
|
||
</div>
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f4"/>
|
||
<label class="form-check-label" for="f4">Более 3-х публикаций в
|
||
scopus</label>
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f5"/>
|
||
<label class="form-check-label" for="f5">Наличие ВАК статей</label> <br/>
|
||
</div>
|
||
<div class="col">
|
||
<input class="form-check-input" type="checkbox" id="f6"/>
|
||
<label class="form-check-label" for="f6">Наименьшая загруженность</label>
|
||
</div>
|
||
</div>
|
||
<input type="submit" hidden="hidden" id="filter" name="filterUsers"
|
||
value="Применить фильтр"/>
|
||
<hr/>
|
||
</div>
|
||
<div class="form-group">
|
||
<label>Руководитель проекта:</label>
|
||
<select class="form-control" th:field="*{leaderId}" id="leaderId"
|
||
onchange="updateAuthors();">
|
||
<option selected="selected" hidden="hidden" th:value="-1">-- Выберите
|
||
руководителя --
|
||
</option>
|
||
<option th:each="leader : ${allAuthors}" th:value="${leader.id}"
|
||
th:text="${leader.lastName}"> Руководитель
|
||
</option>
|
||
</select>
|
||
<p th:if="${#fields.hasErrors('leaderId')}" th:errors="*{leaderId}"
|
||
class="alert alert-danger">Choose leader</p>
|
||
<p class="help-block text-danger"></p>
|
||
</div>
|
||
<div class="form-group">
|
||
<label>Участники гранта:</label>
|
||
<select class="selectpicker form-control" multiple="true" data-live-search="true"
|
||
title="-- Выберите участников --" id="authors"
|
||
th:field="*{authorIds}" data-size="5">
|
||
<option th:each="author : ${allAuthors}" th:value="${author.id}"
|
||
th:text="${author.lastName}"> Участник
|
||
</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label>Список статей:</label>
|
||
<div class="row">
|
||
<div class="col-8">
|
||
<select class="selectpicker form-control" multiple="true"
|
||
data-live-search="true"
|
||
title="Прикрепить статью" id="allPapers"
|
||
th:field="*{paperIds}" data-size="5">
|
||
<option th:each="paper : ${allPapers}" th:value="${paper.id}"
|
||
th:text="${paper.title}">Статья для прикрепления
|
||
</option>
|
||
</select>
|
||
</div>
|
||
<div class="col-4 div-view-paper">
|
||
<a th:onclick="|$('#attachPaper').click();|">
|
||
<span aria-hidden="true">
|
||
<label>Отобразить</label>
|
||
</span>
|
||
</a>
|
||
</div>
|
||
<input type="submit" hidden="hidden" id="attachPaper" name="attachPaper"
|
||
value="Отобразить прикрепленную статью"/>
|
||
</div>
|
||
<div class="row">
|
||
<input th:type="hidden" th:field="*{papers}"/>
|
||
<div class="form-control list-group div-selected-papers" id="selected-papers">
|
||
<div th:each="paper, rowStat : *{papers}">
|
||
<div class="col">
|
||
<a th:href="@{'/papers/paper?id=' + *{papers[__${rowStat.index}__].id} + ''}">
|
||
<img class="icon-paper" src="/img/conference/paper.png"/>
|
||
<span th:text="*{papers[__${rowStat.index}__].title}">
|
||
Название статьи
|
||
</span>
|
||
</a>
|
||
</div>
|
||
<div class="col">
|
||
<label>Статус: </label>
|
||
<span th:text="*{papers[__${rowStat.index}__].status.statusName}">
|
||
Статус статьи
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div th:if="*{project} == null">
|
||
<input type="submit" name="createProject" class="btn btn-primary"
|
||
value="Добавить проект"/>
|
||
</div>
|
||
<input type = "hidden" th:field="*{project.id}"/>
|
||
</div>
|
||
</div>
|
||
<div class="clearfix"></div>
|
||
<div class="col-lg-12">
|
||
<div class="form-group">
|
||
<button id="sendMessageButton" name="save" class="btn btn-success text-uppercase"
|
||
type="submit">
|
||
Сохранить
|
||
</button>
|
||
<button id="cancelButton" class="btn btn-default text-uppercase" href="/grants/grants">
|
||
Отмена
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<script type="text/javascript" src="/js/file-loader.js"></script>
|
||
<script>
|
||
/*<![CDATA[*/
|
||
$(document).ready(function () {
|
||
new FileLoader({
|
||
div: "loader",
|
||
url: urlFileUpload,
|
||
maxSize: 1.5,
|
||
extensions: ["doc", "docx", "xls", "jpg", "pdf", "txt", "png"],
|
||
callback: function (response) {
|
||
showFeedbackMessage("Файл успешно загружен");
|
||
console.debug(response);
|
||
}
|
||
});
|
||
$('.selectpicker').selectpicker();
|
||
});
|
||
/*]]>*/
|
||
|
||
|
||
|
||
|
||
</script>
|
||
<script type="text/javascript">
|
||
function updateAuthors() {
|
||
$("#authors").val('default');
|
||
$("#authors").selectpicker("refresh");
|
||
$("#authors").children('option:disabled').prop('disabled', false);
|
||
var lid = $("#leaderId option:selected").val();
|
||
$("#authors [value='" + lid + "']").attr("disabled", "disabled");
|
||
}
|
||
|
||
</script>
|
||
|
||
<script>
|
||
function viewdiv(id) {
|
||
var el = document.getElementById(id);
|
||
var link = document.getElementById('toggleLink');
|
||
if (el.style.display == "block") {
|
||
el.style.display = "none";
|
||
link.innerText = link.getAttribute('data-text-hide');
|
||
} else {
|
||
el.style.display = "block";
|
||
link.innerText = link.getAttribute('data-text-show');
|
||
}
|
||
}
|
||
|
||
|
||
</script>
|
||
</div>
|
||
</body>
|
||
</html>
|