--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
... | ... | @@ -474,7 +474,7 @@ |
| 474 | 474 |
if (!link) {
|
| 475 | 475 |
|
| 476 | 476 |
|
| 477 |
- if(!confirm("URL먼저 입력을 안하면 이미지에 URL 저장이 안됩니다.\n계속하시겠습니까?")){
|
|
| 477 |
+ if(!confirm("먼저 URL을 입력하지 않으면 이미지에 URL이 저장되지 않습니다. 계속하시겠습니까?")){
|
|
| 478 | 478 |
return false; |
| 479 | 479 |
} |
| 480 | 480 |
|
... | ... | @@ -1551,6 +1551,9 @@ |
| 1551 | 1551 |
|
| 1552 | 1552 |
} |
| 1553 | 1553 |
|
| 1554 |
+ |
|
| 1555 |
+ |
|
| 1556 |
+ |
|
| 1554 | 1557 |
</script> |
| 1555 | 1558 |
|
| 1556 | 1559 |
<!-- 로딩바 --> |
... | ... | @@ -2143,13 +2146,13 @@ |
| 2143 | 2146 |
<div class="btn_popup_wrap"> |
| 2144 | 2147 |
<button type="button" data-tooltip="popup03" class="btnType btnType7 tab2">자주보내는 번호</button> |
| 2145 | 2148 |
</div> |
| 2146 |
- <div class="btn_popup_wrap check_validity_wrap"> |
|
| 2149 |
+ <!-- <div class="btn_popup_wrap check_validity_wrap"> |
|
| 2147 | 2150 |
<button type="button" class="btnType btnType7 check_validity">오류 검사<i class="qmMark error_qm"></i></button> |
| 2148 | 2151 |
<div class="error_hover_cont send_hover_cont"> |
| 2149 | 2152 |
<p>휴대폰 번호 입력 시 해당 휴대폰 번호에 대한 형식이 어긋나거나 휴대폰 번호에 오류가 있는지 등을 검사하는 기능</p> |
| 2150 | 2153 |
<span>(예시) 010-1234-0001(O) / 010-12345-0001(X)</span> |
| 2151 | 2154 |
</div> |
| 2152 |
- </div> |
|
| 2155 |
+ </div> --> |
|
| 2153 | 2156 |
</div> |
| 2154 | 2157 |
</div> |
| 2155 | 2158 |
<div class="list_bottom clearfix"> |
--- src/main/webapp/js/kakao/ft/ftTabulator.js
+++ src/main/webapp/js/kakao/ft/ftTabulator.js
... | ... | @@ -20,46 +20,41 @@ |
| 20 | 20 |
tableL = new Tabulator(".callList_box", {
|
| 21 | 21 |
height:"255px", |
| 22 | 22 |
layout:"fitColumns", |
| 23 |
- //data:tabledata, |
|
| 24 |
- //autoColumns:true, |
|
| 25 | 23 |
headerHozAlign:"center", |
| 26 | 24 |
validationMode:"highlight", |
| 27 |
- //clipboard:false, |
|
| 28 |
- //clipboardCopySelector:"table", |
|
| 29 |
- //clipboardPasteAction:"insert", // insert, update, replace |
|
| 30 | 25 |
placeholder:"복사(Ctrl+C)한 내용을 여기에 붙여넣기(Ctrl+V) 해주세요.", //fit columns to width of table (optional) |
| 31 | 26 |
resizableColumns:false, |
| 32 | 27 |
columnDefaults:{ // 공통설정
|
| 33 | 28 |
hozAlign: "center", |
| 34 | 29 |
headerHozAlign: "center", |
| 35 |
- editor: "input", |
|
| 30 |
+ editor: false, |
|
| 36 | 31 |
editor: false |
| 37 | 32 |
}, |
| 38 | 33 |
columns:[ //Define Table Columns |
| 39 | 34 |
{formatter:"rowSelection", headerHozAlign:"center", titleFormatter:"rowSelection",clipboard:false, hozAlign:"center", width:5, headerSort:false, cellClick:function(e, cell){
|
| 40 | 35 |
cell.getRow().toggleSelect(); |
| 41 | 36 |
}}, |
| 42 |
- {title:"이름", hozAlign:"center", field:"name", editor:"input", validator:["maxLength:12"], cellEdited:function(cell){
|
|
| 37 |
+ {title:"이름", hozAlign:"center", field:"name", validator:["maxLength:12"], cellEdited:function(cell){
|
|
| 43 | 38 |
//cell - cell component |
| 44 | 39 |
fnReplCell(); |
| 45 | 40 |
}}, |
| 46 |
- {title:"휴대폰", hozAlign:"center", field:"phone", editor:"input", width:100, validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){
|
|
| 41 |
+ {title:"휴대폰", hozAlign:"center", field:"phone", width:100, validator:["required","minLength:10", "maxLength:12"], cellEdited:function(cell){
|
|
| 47 | 42 |
//cell - cell component |
| 48 | 43 |
fnDuplPhone(); |
| 49 | 44 |
}}, |
| 50 |
- {title:"[*1*]", hozAlign:"center", field:"rep1", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 45 |
+ {title:"[*1*]", hozAlign:"center", field:"rep1", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 51 | 46 |
//cell - cell component |
| 52 | 47 |
fnReplCell(); |
| 53 | 48 |
}}, |
| 54 |
- {title:"[*2*]", hozAlign:"center", field:"rep2", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 49 |
+ {title:"[*2*]", hozAlign:"center", field:"rep2", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 55 | 50 |
//cell - cell component |
| 56 | 51 |
fnReplCell(); |
| 57 | 52 |
}}, |
| 58 |
- {title:"[*3*]", hozAlign:"center", field:"rep3", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 53 |
+ {title:"[*3*]", hozAlign:"center", field:"rep3", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 59 | 54 |
//cell - cell component |
| 60 | 55 |
fnReplCell(); |
| 61 | 56 |
}}, |
| 62 |
- {title:"[*4*]", hozAlign:"center", field:"rep4", editor:"input", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 57 |
+ {title:"[*4*]", hozAlign:"center", field:"rep4", minWidth:60, validator:["maxLength:40"], cellEdited:function(cell){
|
|
| 63 | 58 |
//cell - cell component |
| 64 | 59 |
fnReplCell(); |
| 65 | 60 |
}}, |
... | ... | @@ -556,6 +551,207 @@ |
| 556 | 551 |
|
| 557 | 552 |
}); |
| 558 | 553 |
|
| 554 |
+ |
|
| 555 |
+ |
|
| 556 |
+ |
|
| 557 |
+ |
|
| 558 |
+ //받는사람 목록에 복사/붙여넣기 기능 처리 |
|
| 559 |
+ $('.callList_box').on('paste', function (e) {
|
|
| 560 |
+ console.log(' :: callList _box :: ');
|
|
| 561 |
+ |
|
| 562 |
+ var element = e.originalEvent.clipboardData.getData('text'); // 클립보드에 복사한 데이터 가져오기
|
|
| 563 |
+ |
|
| 564 |
+ var elmSplit= []; |
|
| 565 |
+ |
|
| 566 |
+ elmSplit = element.split("\n");
|
|
| 567 |
+ |
|
| 568 |
+ var elmLen = elmSplit.length; |
|
| 569 |
+ |
|
| 570 |
+ |
|
| 571 |
+ if(elmLen < 0){
|
|
| 572 |
+ |
|
| 573 |
+ alert("붙여넣을 연락처를 복사해주세요.");
|
|
| 574 |
+ return false; |
|
| 575 |
+ |
|
| 576 |
+ }else{
|
|
| 577 |
+ tableErrorData.length = 0; // 오류 번호 배열 초기화 |
|
| 578 |
+ |
|
| 579 |
+ var splitData = []; |
|
| 580 |
+ var realPhone = []; |
|
| 581 |
+ for(var i=0; i < elmLen; i++){
|
|
| 582 |
+ |
|
| 583 |
+ var splitStr = elmSplit[i]; |
|
| 584 |
+ var tabData = []; |
|
| 585 |
+ var comData = []; |
|
| 586 |
+ |
|
| 587 |
+ if(splitStr.indexOf('\t') != -1){
|
|
| 588 |
+ splitData = splitStr.split('\t'); //탭 구분으로 데이터 분할
|
|
| 589 |
+ }else if(splitStr.indexOf(',') != -1){
|
|
| 590 |
+ splitData = splitStr.split(','); //콤마 구분으로 데이터 분할
|
|
| 591 |
+ }else{
|
|
| 592 |
+ splitData = splitStr.split(' ');
|
|
| 593 |
+ } |
|
| 594 |
+ |
|
| 595 |
+ |
|
| 596 |
+ if(splitData.length == 0){// 데이터가 없는경우
|
|
| 597 |
+ |
|
| 598 |
+ alert("탭으로 구분하여 데이터를 복사해 주세요.");
|
|
| 599 |
+ return false; |
|
| 600 |
+ |
|
| 601 |
+ }else if(splitData.length == 1){// 데이터가 탭으로 구분이 없는 경우
|
|
| 602 |
+ |
|
| 603 |
+ for(var j=0; j < splitData.length; j++){
|
|
| 604 |
+ if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
|
|
| 605 |
+ //배열 끝에 데이터 추가해 주기 |
|
| 606 |
+ realPhone.push({phone: removeDash(splitData[j].trim()), name: ""});
|
|
| 607 |
+ } |
|
| 608 |
+ else {
|
|
| 609 |
+ if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
|
|
| 610 |
+ tableErrorData.push(splitData[j].trim()); |
|
| 611 |
+ } |
|
| 612 |
+ } |
|
| 613 |
+ } |
|
| 614 |
+ |
|
| 615 |
+ }else{//데이터가 탭으로 구분되어 이름, 연락처로 구분된 경우
|
|
| 616 |
+ |
|
| 617 |
+ var phone = ""; //핸드폰번호 |
|
| 618 |
+ var name = ""; //이름 |
|
| 619 |
+ var rep1 = ""; //치환문자1 |
|
| 620 |
+ var rep2 = ""; //치환문자2 |
|
| 621 |
+ var rep3 = ""; //치환문자3 |
|
| 622 |
+ var rep4 = ""; //치환문자4 |
|
| 623 |
+ var isPhoneValid = false; |
|
| 624 |
+ for(var j=0; j < splitData.length; j++){
|
|
| 625 |
+ |
|
| 626 |
+ if(j == 0){
|
|
| 627 |
+ |
|
| 628 |
+ name = splitData[j].trim(); |
|
| 629 |
+ |
|
| 630 |
+ } |
|
| 631 |
+ |
|
| 632 |
+ if(j == 1){
|
|
| 633 |
+ |
|
| 634 |
+ if(checkHpNum(splitData[j].trim())){//핸드폰 양식이 맞는지 확인
|
|
| 635 |
+ phone = removeDash(splitData[j].trim()); |
|
| 636 |
+ isPhoneValid = true; |
|
| 637 |
+ }else{
|
|
| 638 |
+ if (splitData[j].trim() != '' && splitData[j].trim() != null && splitData[j].trim() != undefined) {
|
|
| 639 |
+ tableErrorData.push(splitData[j].trim()); |
|
| 640 |
+ } |
|
| 641 |
+ } |
|
| 642 |
+ |
|
| 643 |
+ } |
|
| 644 |
+ |
|
| 645 |
+ if(j == 2){ //치환문자1
|
|
| 646 |
+ |
|
| 647 |
+ rep1 = splitData[j].trim(); |
|
| 648 |
+ |
|
| 649 |
+ } |
|
| 650 |
+ |
|
| 651 |
+ if(j == 3){ //치환문자2
|
|
| 652 |
+ |
|
| 653 |
+ rep2 = splitData[j].trim(); |
|
| 654 |
+ |
|
| 655 |
+ } |
|
| 656 |
+ |
|
| 657 |
+ if(j == 4){ //치환문자3
|
|
| 658 |
+ |
|
| 659 |
+ rep3 = splitData[j].trim(); |
|
| 660 |
+ |
|
| 661 |
+ } |
|
| 662 |
+ |
|
| 663 |
+ if(j == 5){ //치환문자4
|
|
| 664 |
+ |
|
| 665 |
+ rep4 = splitData[j].trim(); |
|
| 666 |
+ |
|
| 667 |
+ } |
|
| 668 |
+ |
|
| 669 |
+ } |
|
| 670 |
+ |
|
| 671 |
+ if (isPhoneValid == true) {
|
|
| 672 |
+ //배열 끝에 데이터 추가해 주기 |
|
| 673 |
+ realPhone.push({phone: phone, name: name, rep1 : rep1, rep2 : rep2, rep3 : rep3, rep4 : rep4 });
|
|
| 674 |
+ } |
|
| 675 |
+ |
|
| 676 |
+ }//else end |
|
| 677 |
+ |
|
| 678 |
+ } |
|
| 679 |
+ |
|
| 680 |
+ var recTableData = tableL.getRows(); // 받는사람 리스트의 전체 목록을 저장 |
|
| 681 |
+ var tableData = []; |
|
| 682 |
+ |
|
| 683 |
+ //기존 받는사람 리스트를 배열에 미리 담아둔다. |
|
| 684 |
+ if(recTableData.length > 0){
|
|
| 685 |
+ |
|
| 686 |
+ for(var j=0; j < recTableData.length; j++){
|
|
| 687 |
+ |
|
| 688 |
+ tableData.push({phone: removeDash(recTableData[j].getData().phone.trim()) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4, });
|
|
| 689 |
+ |
|
| 690 |
+ } |
|
| 691 |
+ |
|
| 692 |
+ } |
|
| 693 |
+ |
|
| 694 |
+ if(realPhone.length > 0){
|
|
| 695 |
+ |
|
| 696 |
+ for(var j=0; j < realPhone.length; j++){
|
|
| 697 |
+ |
|
| 698 |
+ tableData.push({phone: removeDash(realPhone[j].phone.trim()) , name: realPhone[j].name, rep1: realPhone[j].rep1, rep2: realPhone[j].rep2, rep3: realPhone[j].rep3, rep4: realPhone[j].rep4});
|
|
| 699 |
+ |
|
| 700 |
+ } |
|
| 701 |
+ |
|
| 702 |
+ } |
|
| 703 |
+ |
|
| 704 |
+ //tableData.push(realPhone); |
|
| 705 |
+ |
|
| 706 |
+ //중복 연락처 1개만 남기고 삭제하기 |
|
| 707 |
+ var removeDuplPhone = dupliPhoneData(tableData); |
|
| 708 |
+ |
|
| 709 |
+ //수신자 리스트에 전화번호 추가해주기 |
|
| 710 |
+ //tableL.addData(removeDuplPhone); |
|
| 711 |
+ tableL.setData(removeDuplPhone); |
|
| 712 |
+ |
|
| 713 |
+ totRows = tableL.getRows().length; |
|
| 714 |
+ updateTotCnt(totRows); //전체 데이터 갯수 구하기 |
|
| 715 |
+ |
|
| 716 |
+ var smsTxtArea = $('#smsTxtArea').val();
|
|
| 717 |
+ |
|
| 718 |
+ //일괄변환 문구 결제금액 처리 |
|
| 719 |
+ if(smsTxtArea.indexOf("[*이름*]") > -1
|
|
| 720 |
+ || smsTxtArea.indexOf("[*1*]") > -1
|
|
| 721 |
+ || smsTxtArea.indexOf("[*2*]") > -1
|
|
| 722 |
+ || smsTxtArea.indexOf("[*3*]") > -1
|
|
| 723 |
+ || smsTxtArea.indexOf("[*4*]") > -1){
|
|
| 724 |
+ |
|
| 725 |
+ fnReplCell_advc(); |
|
| 726 |
+ }else{
|
|
| 727 |
+ //결제 금액 구하기 |
|
| 728 |
+ totalPriceSum(totRows); |
|
| 729 |
+ } |
|
| 730 |
+ |
|
| 731 |
+ if (tableErrorData.length > 0) {
|
|
| 732 |
+ alert("올바르지 않은 휴대폰 번호가 "+ tableErrorData.length +" 건 있습니다.");
|
|
| 733 |
+ } |
|
| 734 |
+ |
|
| 735 |
+ |
|
| 736 |
+ // 미리보기 버튼 활성화 |
|
| 737 |
+ updateButtons(0); |
|
| 738 |
+ |
|
| 739 |
+ } |
|
| 740 |
+ |
|
| 741 |
+ }); |
|
| 742 |
+ |
|
| 743 |
+ |
|
| 744 |
+ |
|
| 745 |
+ |
|
| 746 |
+ |
|
| 747 |
+ |
|
| 748 |
+ |
|
| 749 |
+ |
|
| 750 |
+ |
|
| 751 |
+ |
|
| 752 |
+ |
|
| 753 |
+ |
|
| 754 |
+ |
|
| 559 | 755 |
}); |
| 560 | 756 |
|
| 561 | 757 |
var tableErrorData = []; |
... | ... | @@ -566,9 +762,9 @@ |
| 566 | 762 |
* 토탈 카운트 화면에 노출 |
| 567 | 763 |
* 변수 없는 리스트만 체크 |
| 568 | 764 |
*/ |
| 569 |
-function updateTotCnt(){
|
|
| 765 |
+function updateTotCnt(cnt){
|
|
| 570 | 766 |
|
| 571 |
- $("#rowTotCnt").text($('#wrap01_body .list_body').length);
|
|
| 767 |
+ $("#rowTotCnt").text(cnt);
|
|
| 572 | 768 |
|
| 573 | 769 |
} |
| 574 | 770 |
|
... | ... | @@ -927,3 +1123,8 @@ |
| 927 | 1123 |
} |
| 928 | 1124 |
|
| 929 | 1125 |
}); |
| 1126 |
+ |
|
| 1127 |
+ |
|
| 1128 |
+ |
|
| 1129 |
+ |
|
| 1130 |
+ |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?