326 lines
17 KiB
Plaintext
326 lines
17 KiB
Plaintext
@model NP.Model.VMMM
|
|
<header class="panel-heading bg-light" id="thistabbox">
|
|
<ul class="nav nav-tabs nav-justified">
|
|
<li class="@(Model.TabIdx == 0 ? "active" : "")"><a href="/CC/BHs" onclick="bglayer()" data-toggle="tabx">게시판관리</a></li>
|
|
<li class="@(Model.TabIdx == 1 ? "active" : "")"><a href="/MM/PUs" onclick="bglayer()" data-toggle="tabx">팝업관리</a></li>
|
|
<li class="@(Model.TabIdx == 2 ? "active" : "")"><a href="/MM/PGs" onclick="bglayer()" data-toggle="tabx">페이지관리</a></li>
|
|
</ul>
|
|
</header>
|
|
<div class="tar buttonbox"><a href="#" onclick="javascript:reg(0, 0, '', '-');" class="btn btn-s-xs btn-info" id="idid">Top메뉴추가</a></div>
|
|
<section class="panel panel-default">
|
|
<header class="panel-heading font-bold">메뉴 트리</header>
|
|
<div class="panel-body" id="treebox" style="overflow-y: auto;">
|
|
<div style="">
|
|
<ul class="box" id="menutree" style="list-style: none; padding-left: 20px;">
|
|
@foreach (var m in Model.MenuPages)
|
|
{
|
|
var hasChild = Model.MenuPages.Where(w => w.PPNo == m.PNo).Count() > 0;
|
|
<li data-id="@m.PNo" data-pid="@m.PPNo" data-porder="@m.POrder" class="pno@(m.PNo) @(Model.IntVal == m.PNo ?"focusli":"") ppno@(m.PPNo) depth@(m.PDepth) @(m.PDepth > 0 ? "draggable" : "") @(hasChild ? "isparent" : "") mg-l-@(m.PDepth) opened" style="@(m.PDepth == 0 ?"border-top: 1px solid #ddd;padding-top: 15px; padding-bottom: 5px;":"")">
|
|
<a href="#" class="navicon"><span class="glyphicon glyphicon-@(hasChild ? "asterisk":"asterisk")"></span></a>
|
|
<a href="#" class="naviname" onclick="reg(@m.PNo, @m.PDepth, '@(m.PPNo==null?"":m.PPNo.ToString())', '@(m.PPageName??"-")', this);">@m.PageName (@(m.PageDesc??"-"))</a>
|
|
<a href="#" class="btn btn-xxs btn-info btn-child" onclick="reg(0, @(m.PDepth+1), @m.PNo, '@m.PageName', this);" style="margin-left: 10px;">하위메뉴추가</a>
|
|
</li>
|
|
if (m.PDepth > 0)
|
|
{
|
|
@:
|
|
<li class="drop-desc drop-bottom"> </li>
|
|
}
|
|
}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<form id="mform" method="post" action="/MM/PGs">
|
|
@Html.HiddenFor(m => m.TabIdx)
|
|
@Html.HiddenFor(m=>m.IntVal)
|
|
</form>
|
|
<div id="thisfindbox" class="findbox summernoteparentfixedbox" style="right: 50px; z-index: 1041; top: 0; bottom: 0; overflow: auto; left: 100px;">
|
|
<input type="hidden" id="pno" />
|
|
<input type="hidden" id="ppno" />
|
|
<input type="hidden" id="pdepth" />
|
|
<h4><i class="fa fa-bars"></i> <span id="pcap">페이지등록수정</span><a href="#" class="btn btn-default btn-xs f-r" onclick="$('#thisfindbox').slideUp('fast'); $('#bglayer').hide();">닫기</a></h4>
|
|
<dl id="ppagebox"><dt>상위메뉴</dt><dd> <label id="ppagename" style="color: #0094ff; font-weight: bold;">-</label></dd></dl>
|
|
<dl><dt>페이지유형</dt><dd> @Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:폴더메뉴;1:HTML페이지;2:DB페이지" }, { "name", "pagetype" } })</dd></dl>
|
|
<dl><dt>메뉴순서</dt><dd><input type="text" class="form-control disp-init int text-center" style="width: 100px;height: auto;" id="porder" maxlength="50" /></dd></dl>
|
|
<dl><dt>페이지이름</dt><dd><input type="text" class="form-control disp-init" id="pagename" maxlength="50" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>페이지설명</dt><dd><input type="text" class="form-control disp-init" id="pagedesc" maxlength="50" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>페이지URL</dt><dd><input type="text" class="form-control disp-init" id="pageurl" maxlength="50" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>페이지상태</dt><dd> @Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "1:보임;3:탭메뉴;5:탭하위;4:팝업;2:GNB숨김;0:숨김" }, { "name", "isopen" } })</dd></dl>
|
|
<dl><dt>메뉴권한</dt><dd> @Html.Partial("./Partial/Radio", null, new ViewDataDictionary() { { "valuetext", "0:전체;11:기업인사담당자;3:일반사용자" }, { "name", "usertype" } })</dd></dl>
|
|
<dl><dt>참조코드</dt><dd><input type="text" class="form-control disp-init" id="refcode" maxlength="25" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>이미지참조코드</dt><dd><input type="text" class="form-control disp-init" id="imagecode" maxlength="25" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>배경타이틀</dt><dd><input type="text" class="form-control disp-init" id="bgtitle" maxlength="100" style="width: 100%; height: auto;" /></dd></dl>
|
|
<dl><dt>배경설명</dt><dd><input type="text" class="form-control disp-init" id="bgdesc" maxlength="1000" style="width: 100%; height: auto;" /></dd></dl>
|
|
<div id="wrap" style="padding-top: 0;">
|
|
<div class="container" id="subPage" style="padding-bottom: 0; max-width: initial;">
|
|
<textarea name="pagehtml" id="pagehtml"></textarea>
|
|
</div>
|
|
</div>
|
|
<div style="height: 60px;" id="botempty"> </div>
|
|
<div class="text-center" style="position: absolute; bottom: 0; text-align: center; width: 100%; background-color: #41586e; left: 0; padding: 10px 0;" id="savebox">
|
|
<a href="#" class="btn btn-info btnadmin" onclick="save()" id="btnsave">저장</a>
|
|
|
|
<a href="#" class="btn btn-default btnadmin" onclick="$('#thisfindbox').slideUp('fast'); $('#bglayer').hide();">닫기</a>
|
|
</div>
|
|
<br />
|
|
</div>
|
|
|
|
@section styles{
|
|
@Html.Partial("./Partial/Summernotestyle")
|
|
<style type="text/css">
|
|
#wrap table tr td{text-align: left; overflow: visible;}
|
|
#wrap .note-editable table tr th, table.viewtable tr td{overflow: visible;}
|
|
.findbox dl {
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.findbox dl dt, .findbox dl dd {
|
|
height: 32px;
|
|
line-height: 32px;
|
|
}
|
|
|
|
.findbox dl dt {
|
|
float: left;
|
|
width: 100px;
|
|
background-color: #ddd;
|
|
text-align: center;
|
|
}
|
|
|
|
.findbox dl dd {
|
|
margin-left: 102px;
|
|
}
|
|
|
|
#menutree li {
|
|
line-height: 25px;
|
|
}
|
|
|
|
#menutree li:hover {
|
|
background-color: #ddd;
|
|
}
|
|
|
|
.btn-child {
|
|
background-color: #fff;
|
|
color: #555 !important;
|
|
}
|
|
|
|
section.panel.panel-default {
|
|
background-color: #fff;
|
|
}
|
|
.findbox .note-image-url.form-control{width: 100%; height: 30px;}
|
|
.focusli{color: red;}
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href="/css/www/common.css">
|
|
<link rel="stylesheet" type="text/css" href="/css/www/style.css">
|
|
<link rel="stylesheet" type="text/css" href="/css/www/slick.css">
|
|
<link rel="stylesheet" type="text/css" href="/css/www/animate.min.css">
|
|
}
|
|
@section scriptsHeader{
|
|
@Html.Partial("./Partial/Summernote")
|
|
}
|
|
@section scripts{
|
|
<script>
|
|
//$(window).on("resize", function () {
|
|
// resetsummernote();
|
|
//});
|
|
$(document).ready(function () {
|
|
if ('@(Model.IntVal)' != '0' && $("li.pno@(Model.IntVal)").length > 0) {
|
|
$("li.pno@(Model.IntVal)")[0].scrollIntoView();
|
|
}
|
|
$("#thisfindbox").on("scroll", function () {
|
|
$("#savebox").css("position", "relative");
|
|
$("#botempty").hide();
|
|
if ($(this).scrollTop() < 10) {$("#savebox").css("position", "absolute");$("#botempty").show();}
|
|
});
|
|
$('#pagehtml').summernote({
|
|
height: 400,
|
|
tabsize: 2,
|
|
callbacks: {
|
|
onImageUpload: function (files, editor, welEditable) {
|
|
var fdata = new FormData();
|
|
fdata.append('img', files[0]);
|
|
fdata.append('fd', "Editor");
|
|
uploadeditorimage(files, this, fdata, "cbupload()");
|
|
}
|
|
}
|
|
});
|
|
$("input[name=pagetype]").on("change", function () {
|
|
$("#pageurl").val("");
|
|
$('#pagehtml').summernote('code', "");
|
|
$("#pageurl").attr("readonly", "readonly");
|
|
$("div.note-editor.note-frame").hide();
|
|
if ($(this).val() == "1") {
|
|
//$("div.note-editor.note-frame").show();
|
|
resetsummernote();
|
|
}
|
|
else if ($(this).val() == "2") {
|
|
$("#pageurl").removeAttr("readonly");
|
|
}
|
|
});
|
|
});
|
|
function resetsummernote() {
|
|
if (getrv("pagetype") == "1") {
|
|
var cdata = $('#pagehtml').summernote('code');
|
|
$('#pagehtml').summernote("destroy");
|
|
$('#pagehtml').summernote({
|
|
height: 400,
|
|
tabsize: 2,
|
|
callbacks: {
|
|
onImageUpload: function (files, editor, welEditable) {
|
|
var fdata = new FormData();
|
|
fdata.append('img', files[0]);
|
|
fdata.append('fd', "Editor");
|
|
uploadeditorimage(files, this, fdata, "cbupload()");
|
|
}
|
|
}
|
|
});
|
|
$('#pagehtml').summernote('code', cdata);
|
|
}
|
|
}
|
|
function cbupload() {
|
|
if (_uploadeditorimagertn.Code == 1000) {
|
|
$(_uploadeditorimageitem).summernote('editor.insertImage', _uploadeditorimagertn.Obj.uri);
|
|
}
|
|
}
|
|
function reg(idx, depth, ppno, ppname, a) {
|
|
a = a || "";
|
|
if (a != "") {
|
|
$(".focusli").removeClass("focusli");
|
|
$(a).closest("li").addClass("focusli");
|
|
}
|
|
ppname = ppname || "-";
|
|
$("#pcap").text("페이지등록");
|
|
$("#pno").val(idx);
|
|
$("#ppno").val(ppno);
|
|
$("#pdepth").val(depth);
|
|
$("#pagetype1").prop("checked", true);
|
|
$("#pagename,#pagedesc,#pageurl, #refcode, #imagecode, #bgtitle, #bgdesc").val("");
|
|
$("#isopen1").prop("checked", true);
|
|
$("#usertype1").prop("checked", true);
|
|
$('#pagehtml').summernote('code', "");
|
|
$("#pageurl").attr("readonly", "readonly");
|
|
$("div.note-editor.note-frame").hide();
|
|
if (depth < 1) {
|
|
$("#ppagename").text(ppname);
|
|
}
|
|
if (idx < 1) {
|
|
$("#ppagename").text(ppname);
|
|
var porder = 1;
|
|
if (ppno == "") {
|
|
$.each($("#menutree li.depth" + depth), function (i, c) {
|
|
if (porder <= getInt($(c).attr("data-porder"))) {
|
|
porder = getInt($(c).attr("data-porder")) + 1;
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
$.each($("#menutree li.ppno" + ppno), function (i, c) {
|
|
if (porder <= getInt($(c).attr("data-porder"))) {
|
|
porder = getInt($(c).attr("data-porder")) + 1;
|
|
}
|
|
});
|
|
}
|
|
$("#porder").val(porder);
|
|
bglayer();
|
|
$("#thisfindbox").slideDown("fast", function () { $("#thisfindbox").scrollTop(0); $('#pagename').focus(); });
|
|
}
|
|
else {
|
|
$("#pcap").text("페이지수정");
|
|
$("#ppagename").text(ppname);
|
|
capp("/acommon/menupage", { pno: idx }, "cbgetmenupage", null, null, true, true);
|
|
}
|
|
}
|
|
function cbgetmenupage() {
|
|
if (capResult.Code == 1000) {
|
|
setrv("pagetype", capResultObj.PageType);
|
|
setv("porder", capResultObj.POrder);
|
|
setv("pagename", capResultObj.PageName);
|
|
setv("pagedesc", capResultObj.PageDesc);
|
|
setv("refcode", capResultObj.RefCode);
|
|
setv("imagecode", capResultObj.ImageCode);
|
|
setv("bgtitle", capResultObj.BGTitle2);
|
|
setv("bgdesc", capResultObj.BGDesc2);
|
|
setv("pageurl", capResultObj.PageUrl);
|
|
setrv("isopen", capResultObj.IsOpen);
|
|
setrv("usertype", capResultObj.UserType);
|
|
$('#pagehtml').summernote('code', capResultObj.PageHtml);
|
|
|
|
$("#pageurl").attr("readonly", "readonly");
|
|
$("div.note-editor.note-frame").hide();
|
|
if (capResultObj.PageType == 1) {
|
|
$("div.note-editor.note-frame").show();
|
|
}
|
|
else if (capResultObj.PageType == 2) {
|
|
$("#pageurl").removeAttr("readonly");
|
|
}
|
|
setTimeout(function () {
|
|
bglayer();
|
|
$("#thisfindbox").slideDown("fast", function () { $("#thisfindbox").scrollTop(0); $('#pagename').focus(); });
|
|
}, 10);
|
|
}
|
|
}
|
|
function save() {
|
|
var cdata = $('#pagehtml').summernote('code');
|
|
cdata = cdata == "<p><br></p>" ? "" : cdata;
|
|
if (check("pagename", null, "페이지이름을 입력해주세요.", true)) { }
|
|
else if ($("input[name='pagetype']:checked").val() == "2" && check("pageurl", null, "페이지URL을 입력해주세요.", true)) { }
|
|
else if ($("#pagetype2").prop("checked") && cdata.length < 1) { $('#pagehtml').summernote('focus'); msg2("html을 입력해주세요."); }
|
|
else if (confirm("저장하시겠습니까?")) {
|
|
capp("/acommon/savemenupage", {
|
|
PNo : val("pno"),PPNo : val("ppno"),PDepth: val("pdepth"),
|
|
PageType: getrv("pagetype"), POrder: val("porder"),
|
|
PageName: val("pagename"), PageDesc: val("pagedesc"), PageUrl: val("pageurl"), PageHtml: cdata, IsOpen: getrv("isopen"), RefCode: val("refcode"), ImageCode: val("imagecode"), BGTitle: val("bgtitle"), BGDesc: val("bgdesc"),
|
|
UserType: getrv("usertype")
|
|
}, "cbsave", null, null, true, true);
|
|
}
|
|
}
|
|
function cbsave() {
|
|
if (capResult.Code == 1000) { msg2("저장되었습니다."); $("#pagehtml").val(""); setv("IntVal", val("pno")); timesubmitauto(); }
|
|
else { msgadmin2(); }
|
|
}
|
|
function view(pno) {
|
|
_pno = pno;
|
|
capp("/acommon/popup", { pno: pno }, "cbview");
|
|
}
|
|
var _cro;
|
|
function cbview() {
|
|
if (capResult.Code == 1000) {
|
|
_cro = capResult.Obj;
|
|
setTimeout(function () {
|
|
$("#poptitle").text(_cro.PTitle);
|
|
$("#ifr01").css("height", _cro.PHeight + "px");
|
|
$("#popbox").css({
|
|
"width": (_cro.PWidth + 20) + "px",
|
|
"height": (_cro.PHeight + 80) + "px",
|
|
"left": _cro.LeftPX + "px",
|
|
"top": _cro.TopPX + "px",
|
|
"z-index": 10000 + _cro.ZIndex
|
|
});
|
|
var doc = $("#ifr01")[0].contentWindow.document;
|
|
doc.open();
|
|
doc.write("<head><meta http-equiv='Content-Type' content='text/html;charset=utf-8' />" +
|
|
"<script>function pf(){parent.hppopclick('" + getdb(_cro.PUrl) + "'); }<\/script><\/head>" +
|
|
"<body onclick='javascript:pf();' style='margin: 0;'>" + _cro.PContents + "<\/body>");
|
|
doc.close();
|
|
bglayer();
|
|
$("#popbox").show();
|
|
//$(r).html(phs[i].toString());
|
|
//document.getElementById('iframe1').contentWindow.document.write("<html><body>Hello world</body></html>");
|
|
//$(r)[0].contentWindow.document.write("<html><body>Hello world</body></html>");
|
|
//$(r)[0].contentWindow.document.write(phs[i].toString());
|
|
}, 10);
|
|
}
|
|
}
|
|
function hppopclick(url) {
|
|
url = url.toLowerCase().replace('http//', 'http://').replace('https//', 'https://');
|
|
if (url.toLowerCase().indexOf("http://") == 0 || url.toLowerCase().indexOf("http://") == 0) {
|
|
window.open(url);
|
|
}
|
|
else if (url != "") {
|
|
window.open("@(Model.StringVal)/"+url);
|
|
}
|
|
}
|
|
function popclose() {
|
|
|
|
}
|
|
</script>
|
|
} |