|
|
|
@ -92,7 +92,7 @@
|
|
|
|
|
class="alert alert-danger">Incorrect title</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<div class="form-group" id="files-list">
|
|
|
|
|
<label>Файлы:</label>
|
|
|
|
|
<th:block th:each="file, rowStat : *{files}">
|
|
|
|
|
<div class="row" th:id="|files${rowStat.index}|"
|
|
|
|
@ -100,6 +100,7 @@
|
|
|
|
|
<input type="hidden" th:field="*{files[__${rowStat.index}__].id}"/>
|
|
|
|
|
<input type="hidden" th:field="*{files[__${rowStat.index}__].deleteFlag}"/>
|
|
|
|
|
<input type="hidden" th:field="*{files[__${rowStat.index}__].name}"/>
|
|
|
|
|
<input type="hidden" th:field="*{files[__${rowStat.index}__].tmpFileName}"/>
|
|
|
|
|
<div class="col-2">
|
|
|
|
|
<a class="btn btn-danger float-right"
|
|
|
|
|
th:onclick="|$('#files${rowStat.index}\\.deleteFlag').val('true'); $('#files${rowStat.index}').hide(); |">
|
|
|
|
@ -111,6 +112,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</th:block>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-check">
|
|
|
|
@ -189,15 +191,72 @@
|
|
|
|
|
div: "loader",
|
|
|
|
|
url: urlFileUpload,
|
|
|
|
|
maxSize: 1.5,
|
|
|
|
|
extensions: ["doc", "docx", "xls", "jpg", "pdf", "txt", "png"],
|
|
|
|
|
extensions: [],
|
|
|
|
|
callback: function (response) {
|
|
|
|
|
showFeedbackMessage("Файл успешно загружен");
|
|
|
|
|
console.debug(response);
|
|
|
|
|
|
|
|
|
|
addNewFile(response);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
$('.selectpicker').selectpicker();
|
|
|
|
|
});
|
|
|
|
|
/*]]>*/
|
|
|
|
|
function addNewFile(fileNames) {
|
|
|
|
|
var filesList = $("#files-list");
|
|
|
|
|
var fileNumber = $("#files-list div.row").length;
|
|
|
|
|
|
|
|
|
|
var newFileRow = $("<div/>")
|
|
|
|
|
.attr("id", 'files' + fileNumber)
|
|
|
|
|
.addClass("row");
|
|
|
|
|
|
|
|
|
|
var idInput = $("<input/>")
|
|
|
|
|
.attr("type", "hidden")
|
|
|
|
|
.attr("id", "files" + fileNumber + ".id")
|
|
|
|
|
.attr("value", '')
|
|
|
|
|
.attr("name", "files[" + fileNumber + "].id");
|
|
|
|
|
newFileRow.append(idInput);
|
|
|
|
|
|
|
|
|
|
var flagInput = $("<input/>")
|
|
|
|
|
.attr("type", "hidden")
|
|
|
|
|
.attr("id", "files" + fileNumber + ".deleteFlag")
|
|
|
|
|
.attr("value", "false")
|
|
|
|
|
.attr("name", "files[" + fileNumber + "].deleteFlag");
|
|
|
|
|
newFileRow.append(flagInput);
|
|
|
|
|
|
|
|
|
|
var nameInput = $("<input/>")
|
|
|
|
|
.attr("type", "hidden")
|
|
|
|
|
.attr("id", "files" + fileNumber + ".name")
|
|
|
|
|
.attr("value", tmpFileName[1])
|
|
|
|
|
.attr("name", "files[" + fileNumber + "].name");
|
|
|
|
|
newFileRow.append(nameInput);
|
|
|
|
|
|
|
|
|
|
var tmpFileNameInput = $("<input/>")
|
|
|
|
|
.attr("type", "hidden")
|
|
|
|
|
.attr("id", "files" + fileNumber + ".tmpFileName")
|
|
|
|
|
.attr("value", tmpFileName[0])
|
|
|
|
|
.attr("name", "files[" + fileNumber + "].tmpFileName");
|
|
|
|
|
newFileRow.append(tmpFileNameInput);
|
|
|
|
|
|
|
|
|
|
var nextDiv = $("<div/>")
|
|
|
|
|
.addClass("col-2");
|
|
|
|
|
|
|
|
|
|
var nextA = $("<a/>")
|
|
|
|
|
.addClass("btn btn-danger float-right")
|
|
|
|
|
.attr("onclick", "$('#files" + fileNumber + "\\\\.deleteFlag').val('true'); $('#files" + fileNumber + "').hide();")
|
|
|
|
|
.append(($("<span/>").attr("aria-hidden", "true")).append($("<i/>").addClass("fa fa-times")))
|
|
|
|
|
;
|
|
|
|
|
nextDiv.append(nextA)
|
|
|
|
|
newFileRow.append(nextDiv);
|
|
|
|
|
|
|
|
|
|
var nameDiv = $("<div/>")
|
|
|
|
|
.addClass("col-10")
|
|
|
|
|
.append($("<div/>").text(tmpFileName[1]));
|
|
|
|
|
newFileRow.append(nameDiv);
|
|
|
|
|
|
|
|
|
|
$("#files-list").append(newFileRow);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|