i-framework-lite/.svn/pristine/cb/cb68211d72aa5b56c26bb770bbf...

387 lines
12 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String cntx = request.getContextPath();
%>
<!doctype html>
<html lang="ko">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<%@ include file="/WEB-INF/include/include-header3.jspf" %>
<!-- Multi Select-->
<link href="<c:url value='/vendor/bootstrap-multiselect-2.0/dist/css/bootstrap-multiselect.css' />" rel="stylesheet">
<script src="<c:url value='/vendor/bootstrap-multiselect-2.0/dist/js/bootstrap-multiselect.js' />"></script>
<style type="text/css">
.col-sm-3,.col-sm-4 {
position: relative;
width: 100%;
padding-right: 15px;
padding-left: 15px;
padding-top: 15px;
padding-bottom: 15px;
}
.valign-wrapper {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.bd-example {
position: relative;
padding: 5px;
border: solid #dee2e6;
margin-right: 0;
margin-left: 0;
border-width: 1px;
border-radius: .25rem .25rem .25rem .25rem;
}
.mb-3, .my-3 {
margin-bottom: 0rem!important;
}
</style>
<meta name="theme-color" content="#7952b3">
<title>user info</title>
</head>
<body>
<form id="frm" name="frm" enctype="multipart/form-data">
<input type="hidden" class="form-control" id="use_yn" name="use_yn">
<input type="hidden" class="form-control" id="p_code" name="p_code">
<input type="hidden" class="form-control" id="grade" name="grade">
<input type="hidden" class="form-control" id="img_type" name="img_type">
<div class="container-fluid">
<div class="row">
<div class="col-4">
<div>
<i class="far fa-caret-square-right"></i>&nbsp;<label class="form-label" style="font-size: 1.3em; font-weight: 700;">이미지목록</label>
</div>
<table
id="table"
class="table-sm"
data-virtual-scroll="true"
data-sort-name="id"
data-sort-order="asc"
data-height="400"
data-sortable="true"
data-pagination="false"
data-search="false"
data-single-select="true"
data-click-to-select="true"
data-show-toggle="false"
data-use-row-attr-func="true"
data-reorderable-rows="false"
style="text-align: center;">
<thead style="text-align: center;">
<tr>
<th data-field="IMG_ID" data-width="25%">이미지ID</th>
<th data-field="IMG_NM" data-width="25%">이미지명</th>
<th data-field="IMG_FILE_NM" data-width="30%">파일명</th>
<th data-field="IMG_PATH" data-visible="false">이미지경로</th>
<th data-field="IMG_TYPE" data-visible="false">이미지타입</th>
<th data-field="IMG_TYPE_NM" data-width="20%">이미지타입</th>
<th data-field="CUSTOM1" data-visible="false">커스텀1</th>
</tr>
</thead>
</table>
</div>
<div class="col-6">
<div class="col-md">
<i class="far fa-caret-square-right"></i>&nbsp;<label class="form-label" style="font-size: 1.3em; font-weight: 700;">이미지상세</label>
</div>
<div class="bd-example">
<div class="row mb-3">
<div class="col-12">
<div class="row mb-3">
<label for="img_id" class="col-sm-3 col-form-label">이미지ID</label>
<div class="col-sm-9 valign-wrapper">
<input type="text" class="form-control" id="img_id" name="img_id" autocomplete="new-password" style="width: 95%;">
</div>
</div>
</div>
<div class="col-12">
<div class="row mb-3">
<label for="img_nm" class="col-sm-3 col-form-label">이미지명</label>
<div class="col-sm-9 valign-wrapper">
<input type="text" class="form-control" id="img_nm" name="img_nm" autocomplete="new-password" style="width: 95%;">
</div>
</div>
</div>
<div class="col-12">
<div class="row mb-3">
<label for="center_order" class="col-sm-3 col-form-label">이미지타입</label>
<div class="col-sm-3 valign-wrapper">
<select id="selImgType" name="selImgType" style="width: 100px">
</select>
</div>
</div>
</div>
<div class="col-12">
<div class="row mb-3">
<label for="center_order" class="col-sm-3 col-form-label">이미지정보</label>
<div class="col-sm-9 valign-wrapper">
<div class="col-4" style="padding-left: 0px;">
<div class="card" style="height: 20vh; width:100%;">
<img id="bg_img" class="img-thumbnail" style="height: 100%; width:100%;">
</div>
</div>
<div class="col-8">
<div class="row mb-3">
<label for="img_path" class="col-sm-4 col-form-label">경로</label>
<div class="col-sm-8 valign-wrapper">
<input type="text" class="form-control" id="img_path" value="images/bg/" disabled>
</div>
</div>
<div class="row mb-3">
<label for="img_file_nm" class="col-sm-4 col-form-label">파일명</label>
<div class="col-sm-8 valign-wrapper">
<input type="text" class="form-control" id="img_file_nm" disabled>
</div>
</div>
<div class="row mb-3" style="text-align: right;">
<label for="bg_file" class="col-sm-4 col-form-label"></label>
<div class="col-sm-8 valign-wrapper">
<input id="btnBrowse" type="button" value="Browse..." onclick="document.getElementById('loadFile').click();" />
<input type="file" style="display:none;" id="loadFile" name="loadFile" onchange="setThumbnail(event);"/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-12">
<div class="row mb-3">
<label for="custom1" class="col-sm-3 col-form-label">커스텀1</label>
<div class="col-sm-9 valign-wrapper">
<input type="text" class="form-control" id="custom1" name="custom1" style="width: 95%;">
</div>
</div>
</div>
</div>
</div>
<br>
<div class="col-md">
<button type="button" class="btn btn-sm btn-primary" id="btnSave">저장</button>
<button type="button" class="btn btn-secondary btn-sm" id="btnCancel">취소</button>
</div>
</div>
</div>
</div>
</form>
<script>
function setThumbnail(event) {
var reader = new FileReader();
reader.onload = function(event) {
//var img = document.createElement("img");
//img.setAttribute("src", event.target.result);
$("#bg_img").attr("src", event.target.result);
var bg_path = "";
if($('#selImgType').val() == "C"){
bg_path = "images/ci/";
}else if($('#selImgType').val() == "B"){
bg_path = "images/bg/";
}
$("#img_path").val(bg_path);
var imgArr = $("#loadFile").val().split("\\");
if(imgArr != null){
$("#img_file_nm").val(imgArr[2]);
}
//document.querySelector("div#image_container").appendChild(img);
};
reader.readAsDataURL(event.target.files[0]);
}
$("#selImgType").change(function(e) {
if($('#selImgType').val() == "C"){
bg_path = "images/ci/";
}else if($('#selImgType').val() == "B"){
bg_path = "images/bg/";
}
$("#img_path").val(bg_path);
});
$("#btnSave").click(function(e) {
setData();
if(updateCheck()){
updateInfo();
}else{
insertInfo();
}
});
function updateCheck(){
var updateflag = false;
var img_id = $('#img_id').val();
var dataarray = $('#table').bootstrapTable('getData');
for (var i=0; i<dataarray.length; i++){
if(img_id == dataarray[i].IMG_ID){
updateflag = true;
}
}
return updateflag;
}
function updateInfo(){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<c:url value='/updateImageInfo'/>",
data : queryString,
type:"post",
datatype:"json",
success:function(args){
$('#table').bootstrapTable('load', args.list);
alert("저장됐습니다");
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
function insertInfo(){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<c:url value='/insertImageInfo'/>",
data : queryString,
type:"post",
enctype: 'multipart/form-data',
datatype:"json",
success:function(args){
$('#table').bootstrapTable('load', args.list);
alert("저장됐습니다");
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
function setData(){
}
function resetElements(){
$('#center_id').val("");
$('#user_id').val("");
$('#user_name').val("");
$('#passwd').val("");
$('#grade').val("");
$('#custom1').val("");
$('#custom2').val("");
}
$(function() {
$('#dbid').val("0");
$('#table').bootstrapTable();
getImgTypeList();
getData();
});
function setImage(img_type, id, name, file, path){
if(img_type == "B"){
$('#bg_info').val(id);
$('#bg_path').val(path);
$('#bg_file').val(file);
$('#bg_nm').val(name);
$("#bg_img").attr("src", "/" + path + file+ "");
}else if(img_type == "C"){
$('#ci_info').val(id);
$('#ci_path').val(path);
$('#ci_file').val(file);
$('#ci_nm').val(name);
$("#ci_img").attr("src", "/" + path + file+ "");
}
}
function fn_openPop(obj){
//document.frm.IDX.value = obj[0].id;
fncPop_Click();
}
function fncPopup(imgtype){
goPage_Popup('<%=cntx%>/image_selector?IMG_TYPE=' + imgtype, '880', '500','no', 'pop_image_' + imgtype);
}
var popupX = (document.body.offsetWidth / 2) - (900 / 2);
//&nbsp;만들 팝업창 좌우 크기의 1/2 만큼 보정값으로 빼주었음
var popupY= (document.body.offsetHeight / 2) - (600 / 2);
//&nbsp;만들 팝업창 상하 크기의 1/2 만큼 보정값으로 빼주었음
//팝업화면 띄우기
function goPage_Popup(pagename, Wsize, Hsize, ScrollYn, scrnm){
var id=window.open(pagename,scrnm,"toolbar=no,directories=no, width="+Wsize+", height="+Hsize+", top="+popupY+", left="+popupX+", scrollbars="+ScrollYn+", status=no,resizable=no, menubar=no");
id.focus();
}
function getData(){
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<c:url value='/getImageInfo_Manage'/>",
data : queryString,
type:"post",
datatype:"json",
success:function(args){
$('#table').bootstrapTable('load', args.list);
resetElements();
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
//권한 리스트 조회
function getImgTypeList(){
document.getElementById('use_yn').value = "ALL";
document.getElementById('p_code').value = "A003";
var queryString = $("form[name=frm]").serialize() ;
$.ajax({
url:"<%=cntx%>/getComCode",
type:"post",
data : queryString,
datatype:"json",
success:function(args){
var frm1 = document.frm;
for(var i=0; i<args.list.length; i++){
op = new Option();
op.value = args.list[i].CODE;
op.text = args.list[i].CODE_NAME;
frm1.selImgType.options.add(op);
}
},
error : function(x,o,e){
var msg = "에러발생 \n" + x.status + " : " + o + " : " + e;
alert(msg);
}
});
}
//Table onClick이벤트시 유저 데이터 세팅
$('#table').bootstrapTable({
onClickRow: function (row, el, field) {
$('#img_id').val(row.IMG_ID);
$('#img_nm').val(row.IMG_NM);
$('#img_file_nm').val(row.IMG_FILE_NM);
$('#img_path').val(row.IMG_PATH);
$('#selImgType').val(row.IMG_TYPE);
$('#custom1').val(row.CUSTOM1);
$("#bg_img").attr("src", "/" + row.IMG_PATH + row.IMG_FILE_NM+ "");
}
});
</script>
</body>
</html>