Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions code.gs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('지오유')
.addItem('본 문서를 전자결재로 생산', 'sendDocument')
.addSeparator()
.addSubMenu(ui.createMenu('바로가기')
.addItem('그룹웨이로 이동', 'openZioYou')
)
.addToUi();
}

function fGetUserInfo() {
var about = Drive.About.get();
var user = {
name: about.name,
permissionId: about.permissionId,
driverUser: about.user
}
return user;
}
function fGetPubUri() {
var fileId = SpreadsheetApp.getActiveSpreadsheet().getId();
Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto:true},fileId, 1);
return "https://docs.google.com/spreadsheet/pub?key=" + fileId;
}
// "본 문서를 전자결재로 생산" 메뉴 클릭 시 실행되는 함수
function sendDocument() {
var tpl = HtmlService.createTemplateFromFile("index.html");
tpl.bodyhtml = fGetPubUri();
tpl.subj = SpreadsheetApp.getActiveSpreadsheet().getName();
tpl.userID = fGetUserInfo().driverUser.emailAddress;
var output = tpl.evaluate();
output.setWidth(1400);
output.setHeight(700);
SpreadsheetApp.getUi().showModalDialog(output,'전자결재 eSign');
}

// "상신하기" 버튼 클릭 시 실행되는 함수
function fSend() {
if (confirm("위 문서를 정말로 상신하시겠습니까?")) {
google.script.run.processForm();
}
}

// "그룹웨이로 이동" 메뉴 클릭 시 실행되는 함수
function openZioYou() {
var html = '<html><body><a href="https://zioyoucs.com/" target="_blank">지오유로 이동</a></body></html>';
var htmlOutput = HtmlService.createHtmlOutput(html).setWidth(300).setHeight(100);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, '지오유 사이트');
}

// 전자결재 상신 처리 함수
function processForm() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

// A1 셀에 상신 메시지 표시
sheet.getRange('A1').setValue('상신되었습니다.');
}
62 changes: 32 additions & 30 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
function myFunction() {

}

function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('지오유')
.addItem('본 문서를 전자결재로 상신', 'menuItem1')
.addSeparator()
.addSubMenu(ui.createMenu('바로가기')
.addItem('그룹웨어로 이동', 'menuItem2'))
.addToUi();
}

function menuItem1() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.alert('You clicked the first menu item!');
}

function menuItem2() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.alert('You clicked the second menu item!');
myFunction();
}

function OpenZioYou(){
var htmlOutput = HtmlService.createHtmlOutputFromFile('openUrl').setHeight(100);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Opening ZioYou');
}
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
.ifm{
width:100%;
height: 360px;
border:0;
}
</style>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
</head>
<body>
<form>
<div class="mb-3">
<label for="txtSubject" class="form-label">문서제목</label>
<input type="text" class="form-control" id="txtSubject" aria-describedby="emailHelp" value="<?= subj ?>">
<div id="emailHelp" class="form-text">전자결재 문서제목을 반드시 입력하세요.</div>
</div>
<div class="mb-3">
<label for="txtUserID" class="form-label">상신자계정</label>
<input type="text" class="form-control" id="txtUserID" disabled value="<?= userID ?>">
</div>
<iframe class="ifm" src="<?= bodyhtml ?>"></iframe>
<button type="submit" class="btn btn-primary">제출하기</button>
</form>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
</body>
</html>