207 lines
11 KiB
Plaintext
207 lines
11 KiB
Plaintext
|
|
@model dynamic
|
||
|
|
@{
|
||
|
|
var comment0type = (String)(ViewData["commenttype"] ?? "");
|
||
|
|
var baseno = Convert.ToInt64(ViewData["baseno"] ?? "");
|
||
|
|
var status = "";
|
||
|
|
}
|
||
|
|
<form enctype="multipart/form-data">
|
||
|
|
<div id="comment0box" class="commentbox">
|
||
|
|
<div id="comment0newinfo">#@Model.SCUserName</div>
|
||
|
|
<div>
|
||
|
|
<select id="comment0type" onchange="" class="form-control dev disp-init" style="width: 80px; vertical-align: top; height: 50px;">
|
||
|
|
<option value="메모">메모</option>
|
||
|
|
<option value="상담">상담</option>
|
||
|
|
</select>
|
||
|
|
<textarea class="dev form-control disp-init" id="comment0text" style="width: 470px;"></textarea>
|
||
|
|
<a id="comment0boxbtnsave" href="#" class="btn btn-primary" onclick="savecomment0(0);">댓글입력(shift+Enter)</a>
|
||
|
|
<a id="comment0boxbtnedit" style="display: none;" href="#" class="btn btn-primary" onclick="savecomment0(1);">댓글수정(shift+Enter)</a>
|
||
|
|
<a id="comment0boxbtnnew" href="#" class="btn btn-default" onclick="savecomment0(-1);">초기화</a>
|
||
|
|
</div>
|
||
|
|
<div class="comment0filebox" style="line-height: 15px;">
|
||
|
|
<a style="display: none; color: #0094ff; text-decoration: underline; vertical-align: top;" id="comment0filelist" href="/aCommon/DownFile?09090909" title="다운로드"> <span class="fileitem"><i class="fa fa-download"></i>OrgName</span></a>
|
||
|
|
<a id="comment0boxbtndelete" style="display: none;" href="#" class="btn btn-danger btn-xxs" onclick="savecomment0(-2);">삭제</a>
|
||
|
|
<input type="file" name="file" id="comment0file" />
|
||
|
|
</div>
|
||
|
|
<div class="commentlist" id="comment0list"></div>
|
||
|
|
</div>
|
||
|
|
</form>
|
||
|
|
<script>
|
||
|
|
$(document).ready(function () {
|
||
|
|
findcomment0();
|
||
|
|
$("#comment0text").on("keydown", function (e) {
|
||
|
|
if (e.shiftKey && e.keyCode == 13) {
|
||
|
|
savecomment0($("#comment0newinfo").html() == "" ? 0 : 1);
|
||
|
|
e.preventDefault();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
$("#comment0text2").on("keydown", function (e) {
|
||
|
|
if (e.shiftKey && e.keyCode == 13) {
|
||
|
|
savecomment0(2);
|
||
|
|
e.preventDefault();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
$("body").on("click", "#comment0list ul a.tran", function () {
|
||
|
|
var ul = $(this).closest("ul");
|
||
|
|
comment0boxdatainfo = ul.attr("data-info");
|
||
|
|
if ($(this).hasClass("cedit")) {
|
||
|
|
$("#comment0type").hide();
|
||
|
|
if ($(this).closest("ul").hasClass("depth0")) {
|
||
|
|
$("#comment0type").show();
|
||
|
|
}
|
||
|
|
$("#comment0newinfo").html("#" + ul.find("li span.username").first().text() + " " + ul.find("li span.date").first().text());
|
||
|
|
$("#comment0type").val(ul.find("li.memotype").attr("data-memotype"));
|
||
|
|
$("#comment0text").val(ul.find("li").eq(2).html().replace(/<br>/gi, '\n').replace(/<br\/>/gi, '\n').replace(/<br \/>/gi, '\n'));
|
||
|
|
$("#comment0text").hide(); $("#comment0text").show("fast");
|
||
|
|
$("#comment0file").val("");
|
||
|
|
$("#comment0file, #comment0filelist, #comment0boxbtndelete").hide();
|
||
|
|
if (getint(comment0boxdatainfo.split(':')[3]) > 0) {
|
||
|
|
$("#comment0filelist").show();
|
||
|
|
$("#comment0filelist").text(ul.find("span.fileitem").text());
|
||
|
|
$("#comment0filelist").attr("href", "/aCommon/DownFile?fno=" + comment0boxdatainfo.split(':')[3]);
|
||
|
|
$("#comment0boxbtndelete").show();
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
$("#comment0file").show();
|
||
|
|
}
|
||
|
|
$("#comment0boxbtnsave").hide();
|
||
|
|
$("#comment0boxbtnedit").show();
|
||
|
|
status = "cedit";
|
||
|
|
|
||
|
|
}
|
||
|
|
else if ($(this).hasClass("cdelete")) {
|
||
|
|
status = "cdelete";
|
||
|
|
if (confirm("삭제하시겠습니까?")) {
|
||
|
|
capp("/acommon/deletecomment", { cmtno: $(this).closest("ul").attr("data-cmtno") }, "cbcomment0delete");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if ($(this).hasClass("creply")) {
|
||
|
|
status = "creply";
|
||
|
|
$("#comment0list div.comment0reply, #comment0list div.comment0filebox").remove();
|
||
|
|
comment0boxpcmtno = $(this).closest("ul").attr("data-cmtno");
|
||
|
|
$(this).closest("ul").after("<div class=\"comment0reply\" style=\"margin-left: " + (getint($(this).closest("li").css("margin-left")) + 30) +"px\"><textarea placeholder=\"여기에 답댓글을 입력해주세요.\" class=\"dev form-control disp-init\" id=\"comment0text2\"></textarea><a href=\"#\" class=\"btn btn-info\" onclick=\"savecomment0(2);\">답댓글입력</a></div>" +
|
||
|
|
"<div class=\"comment0filebox\" style=\"line-height: 15px;margin-left: " + (getint($(this).closest("li").css("margin-left")) + 30) +"px\"><input type=\"file\" name=\"file\" id=\"comment0file2\" /></div>");
|
||
|
|
$("#comment0text2").focus();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
function cbcomment0delete() {
|
||
|
|
if (isCapOK()) {
|
||
|
|
findcomment0();
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
msg("권한이 없습니다.");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
var comment0boxdatainfo = "";//cno,pno,fgno,fileno,depth
|
||
|
|
var comment0boxpcmtno = 0;
|
||
|
|
function findcomment0() {
|
||
|
|
$("#comment0list div.comment0reply, #comment0list div.comment0filebox").remove();
|
||
|
|
comment0boxclear();
|
||
|
|
$("#comment0list ul").remove();
|
||
|
|
capp("/acommon/getcomment", { commenttype: @comment0type, baseno: @baseno}, "bindcomment0list", null, null, null, null, true);
|
||
|
|
}
|
||
|
|
function savecomment0(idx, a) {
|
||
|
|
if (idx > -1) {
|
||
|
|
if (idx == 2) {
|
||
|
|
if (getBytes(val("comment0text2")) < 1) {
|
||
|
|
focus("comment0text2");
|
||
|
|
msg("답댓글을 입력해주세요.");
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
var data = new FormData();
|
||
|
|
data.append("cmtno", 0);
|
||
|
|
data.append("pcmtno", comment0boxpcmtno);
|
||
|
|
data.append("commenttype", '@comment0type');
|
||
|
|
data.append("baseno", @baseno);
|
||
|
|
data.append("memo", val("comment0text2"));
|
||
|
|
data.append("memotype", val("comment0type"));
|
||
|
|
data.append("fgno", "");
|
||
|
|
if ($("#comment0file2")[0].files.length > 0) {
|
||
|
|
data.append("file", $("#comment0file2")[0].files[0]);
|
||
|
|
}
|
||
|
|
data.append("IsPassFile", false);
|
||
|
|
capfile("/acommon/savecomment", data, "findcomment0", false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
if (getBytes(val("comment0text")) < 1) {
|
||
|
|
focus("comment0text");
|
||
|
|
msg("댓글을 입력해주세요.");
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
var data = new FormData();
|
||
|
|
data.append("cmtno", comment0boxdatainfo == "" ? 0 : getint(comment0boxdatainfo.split(':')[0]));
|
||
|
|
data.append("pcmtno", comment0boxdatainfo == "" ? "" : comment0boxdatainfo.split(':')[1]);
|
||
|
|
data.append("commenttype", '@comment0type');
|
||
|
|
data.append("baseno", @baseno);
|
||
|
|
data.append("memo", val("comment0text"));
|
||
|
|
data.append("memotype", val("comment0type"));
|
||
|
|
data.append("IsPassFile", false);
|
||
|
|
data.append("fgno", comment0boxdatainfo == "" ? "" : comment0boxdatainfo.split(':')[2]);
|
||
|
|
if ($("#comment0file")[0].files.length > 0) {
|
||
|
|
data.append("file", $("#comment0file")[0].files[0]);
|
||
|
|
}
|
||
|
|
capfile("/acommon/savecomment", data, "findcomment0", false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else if (idx == -2) {
|
||
|
|
if (confirm("파일을 삭제하시겠습니까?")) {
|
||
|
|
capp("/acommon/deletefile", { key: comment0boxdatainfo.split(':')[3] }, "cbsavecomment0fd");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
comment0boxclear();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function cbsavecomment0fd() {
|
||
|
|
if (isCapOK()) {
|
||
|
|
$("#comment0file").show();
|
||
|
|
$("#comment0filelist, #comment0boxbtndelete").hide();
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
msg("권한이 없습니다.");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function comment0boxclear() {
|
||
|
|
$("#comment0type").show();
|
||
|
|
comment0boxdatainfo = "";
|
||
|
|
if (status == "" || isnulloremt(val("comment0type"))) {
|
||
|
|
$("#comment0type").val($("#comment0type option:first").val());
|
||
|
|
}
|
||
|
|
$("#comment0text").attr("placeholder", "");
|
||
|
|
$("#comment0newinfo").html("#@(Model.SCUserName)");
|
||
|
|
$("#comment0text, #comment0file").val("");
|
||
|
|
$("#comment0boxbtnsave, #comment0file").show();
|
||
|
|
$("#comment0boxbtnedit, #comment0filelist,#comment0boxbtndelete").hide();
|
||
|
|
}
|
||
|
|
function bindcomment0list() {
|
||
|
|
if (capResult.code == 1000) {
|
||
|
|
if ($("#comment0count").length == 1) {
|
||
|
|
$("#comment0count").text(bindComma3($(capResult.obj).length));
|
||
|
|
}
|
||
|
|
$.each($(capResult.obj), function (i, d) {
|
||
|
|
if (d.cdepth == 0) {
|
||
|
|
bindcomment0(d);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
function bindcomment0(d) {
|
||
|
|
$("#comment0list").append("<ul class=\"depth" + d.cdepth + "\" data-cmtno=\"" + d.cmtno + "\" data-info=\"" + (getdb(d.cmtno) + ":" + getdb(d.pcmtno) + ":" + getdb(d.fgno) + ":" + getdb(d.fileno) + ":"
|
||
|
|
+ d.cdepth) + "\"><li style=\"margin-left:" + (d.cdepth * 25) + "px\"><span class=\"username\">" + (d.cdepth > 0 ? "<i class=\"fa fa-share-square\"></i>" : "") + d.username + "</span><span class=\"date\">"
|
||
|
|
+ d.cdtymdhm + "</span><a " + (d.isdel == 1 || ('@(Model.IsAdmin ? 1:0)' == '0' && '@(Model.SCUserNo)' != d.cno.toString()) ? "style=\"display: none;\"" : "")
|
||
|
|
+ " href=\"#\" class=\"tran cedit\" title=\"Edit\"><i class=\"fa fa-edit\"></i></a><a "
|
||
|
|
+ (d.isdel == 1 || ('@(Model.IsAdmin?1:0)' == '0' && '@(Model.SCUserNo)' != d.cno.toString()) ? "style=\"display: none;\"" : "")
|
||
|
|
+ " href=\"#\" class=\"tran cdelete\" title=\"Delete\"><i class=\"fa fa-trash-o\"></i></a>" +
|
||
|
|
"<a " + (d.isdel == 1 ? "style=\"display: none;\"" : "") + " href=\"#\" class=\"tran creply\" title=\"Reply\" class=\"file\"><i class=\"fa fa-mail-forward\"></i></a>" +
|
||
|
|
(d.isdel == 1 || getdb(d.fileurl) == "" ? "" : "<a href=\"/aCommon/DownFile?fno="+d.fileno+"\" title=\"다운로드\"> <span class=\"fileitem\"><i class=\"fa fa-download\"></i>"+d.orgname+"</span></a>") +
|
||
|
|
"</li><li style=\"margin-left:" + ((d.cdepth * 25) + 10) + "px;"+(d.cdepth > 0 ? "display: none;":"")+"\" class=\"memotype\" data-memotype=\""+d.memotype+"\">[" + d.memotype +"]</li><li style=\"margin-left:" + ((d.cdepth * 25) + 10) + "px\" class=\"text\">" + (d.isdel == 1 ? "-삭제됨-" : d.memo.replace(/\n/gi, '<br />')) + "</li></ul>");
|
||
|
|
$.each($(capResult.obj), function (i, d2) {
|
||
|
|
if (d2.pcmtno == d.cmtno) {
|
||
|
|
bindcomment0(d2);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
status = "";
|
||
|
|
}
|
||
|
|
</script>
|