From 31fd2d9b1d32273c3a42815c57620d7f2895cf0f Mon Sep 17 00:00:00 2001 From: nomashipga Date: Tue, 30 May 2023 23:49:40 +0900 Subject: [PATCH 01/22] Delete ojt1 directory --- ojt1/index.html | 38 -------------------------------------- 1 file changed, 38 deletions(-) delete mode 100644 ojt1/index.html diff --git a/ojt1/index.html b/ojt1/index.html deleted file mode 100644 index 41b168c6..00000000 --- a/ojt1/index.html +++ /dev/null @@ -1,38 +0,0 @@ - - -

Google Sheet 문서를 Iframe으로 불러오기

- - - - -

도전과제

-
    -
  1. 빈 엑셀 sheet를 만든다
  2. -
  3. iframe으로 불러온다
  4. -
  5. 수정할 수 있는 권한이 열려 수정작업을 한다.
  6. -
  7. 내 로컬저장소에 저장한다.
  8. -
-
- - - -
- - - \ No newline at end of file From 087448d099891da4501601820c1d95bcbfeb2129 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Tue, 30 May 2023 23:49:47 +0900 Subject: [PATCH 02/22] Delete ojt2 directory --- ojt2/index.html | 2 - ojt2/main.js | 146 ------------------------------------------------ 2 files changed, 148 deletions(-) delete mode 100644 ojt2/index.html delete mode 100644 ojt2/main.js diff --git a/ojt2/index.html b/ojt2/index.html deleted file mode 100644 index 62575ad0..00000000 --- a/ojt2/index.html +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/ojt2/main.js b/ojt2/main.js deleted file mode 100644 index 7ee504d5..00000000 --- a/ojt2/main.js +++ /dev/null @@ -1,146 +0,0 @@ - /* exported gapiLoaded */ - /* exported gisLoaded */ - /* exported handleAuthClick */ - /* exported handleSignoutClick */ - - // Authorization scopes required by the API; multiple scopes can be - // included, separated by spaces. - const SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'; - - // TODO(developer): Set to client ID and API key from the Developer Console - const CLIENT_ID = '1027688762450-r0m066b7e42l6kqg0rlklk1qa3ttd1ij.apps.googleusercontent.com'; - const API_KEY = 'AIzaSyDARPEDd0WtdfvXJ6H7vTM2G_oG6dUraAw'; - - // TODO(developer): Replace with your own project number from console.developers.google.com. - const APP_ID = '1027688762450'; // 프로젝트번호 - - let tokenClient; - let accessToken = null; - let pickerInited = false; - let gisInited = false; - - /** - * Callback after api.js is loaded. - */ - function gapiLoaded() { - gapi.load('client:picker', initializePicker); - } - - /** - * Callback after the API client is loaded. Loads the - * discovery doc to initialize the API. - */ - async function initializePicker() { - await gapi.client.load('https://www.googleapis.com/discovery/v1/apis/drive/v3/rest'); - pickerInited = true; - } - - /** - * Callback after Google Identity Services are loaded. - */ - function gisLoaded() { - tokenClient = google.accounts.oauth2.initTokenClient({ - client_id: CLIENT_ID, - scope: SCOPES, - callback: '', // defined later - }); - gisInited = true; - } - - /** - * Sign in the user upon button click. - */ - function handleAuthClick() { - tokenClient.callback = async (response) => { - if (response.error !== undefined) { - throw (response); - } - accessToken = response.access_token; - await createPicker(); - }; - - if (accessToken === null) { - // Prompt the user to select a Google Account and ask for consent to share their data - // when establishing a new session. - tokenClient.requestAccessToken({prompt: 'consent'}); - } else { - // Skip display of account chooser and consent dialog for an existing session. - tokenClient.requestAccessToken({prompt: ''}); - } - } - - /** - * Sign out the user upon button click. - */ - function handleSignoutClick() { - if (accessToken) { - accessToken = null; - google.accounts.oauth2.revoke(accessToken); - } - } - - /** - * Create and render a Picker object for searching images. - */ - function createPicker() { - const view = new google.picker.View(google.picker.ViewId.DOCS); - //view.setMimeTypes('image/png,image/jpeg,image/jpg'); - const picker = new google.picker.PickerBuilder() - .enableFeature(google.picker.Feature.NAV_HIDDEN) - .enableFeature(google.picker.Feature.MULTISELECT_ENABLED) - .setDeveloperKey(API_KEY) - .setAppId(APP_ID) - .setOAuthToken(accessToken) - .addView(view) - .addView(new google.picker.DocsUploadView()) - .setCallback(pickerCallback) - .build(); - picker.setVisible(true); - } - - /** - * Displays the file details of the user's selection. - * @param {object} data - Containers the user selection from the picker - */ - async function pickerCallback__(data) { - if (data.action === google.picker.Action.PICKED) { - var files = data[google.picker.Response.DOCUMENTS]; - var aData = new Array(); - var bData = new Array(); - for (var i=0; i Date: Tue, 30 May 2023 23:50:52 +0900 Subject: [PATCH 03/22] Delete index.html --- index.html | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 index.html diff --git a/index.html b/index.html deleted file mode 100644 index 54de93b0..00000000 --- a/index.html +++ /dev/null @@ -1,30 +0,0 @@ -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'); -} From 8fac0ad561e285656499aa84ec812d8b3f315b94 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Tue, 30 May 2023 23:51:35 +0900 Subject: [PATCH 04/22] Delete README.md --- README.md | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index a1c16095..00000000 --- a/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# 지오유 홈페이지 -http://www.zioyou.com - -# ziogle -Google Workspace Plus - -# 참조 -## 구글 API 사용법, 키발급, oAuth인증 사용방법 -https://gomcine.tistory.com/entry/%EA%B5%AC%EA%B8%80-API-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%82%A4-%EB%B0%9C%EA%B8%89-oauth-%EC%9D%B8%EC%A6%9D-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%AC - -## 부가정보 - From 31ad1a5eda16766803d8c7889b837f1630f36852 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Tue, 30 May 2023 23:51:42 +0900 Subject: [PATCH 05/22] Delete note.txt --- note.txt | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 note.txt diff --git a/note.txt b/note.txt deleted file mode 100644 index 20d45345..00000000 --- a/note.txt +++ /dev/null @@ -1,18 +0,0 @@ -0. PR(Pull Request) 검증 - 0-1. 학생별 검증 - 0-2. 포인트 발생(1,000 포인트) - 0-3. Merge학생 1명 선발 (5,000 포인트) -1. console.cloud.google.com - - api 소개 - - 구글 API 사용법, 키발급, oAuth인증 사용방법 - https://gomcine.tistory.com/entry/%EA%B5%AC%EA%B8%80-API-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%82%A4-%EB%B0%9C%EA%B8%89-oauth-%EC%9D%B8%EC%A6%9D-%EB%B0%A9%EB%B2%95-%EC%A0%95%EB%A6%AC - -2. ziogle 프로젝트 - - 소개 - https://academy.zioyou.com/home2/contents?cateno=74 - - ojt1 - - ojt2 - -3. 관련기술 학습 - - 웹서버 설치 - https://academy.zioyou.com/home2/single?cateno=63&atcno=2025 From 35d985f62f9ed940835fa130591a4b2ef0ae16a6 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Tue, 30 May 2023 23:55:03 +0900 Subject: [PATCH 06/22] 0531.gs --- 0531.gs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 0531.gs diff --git a/0531.gs b/0531.gs new file mode 100644 index 00000000..b1f7001d --- /dev/null +++ b/0531.gs @@ -0,0 +1,30 @@ +function onOpen() { + var ui = SpreadsheetApp.getUi(); + ui.createMenu('지오유') + .addItem('본 문서를 전자결재로 상신', 'LoadDocs') + .addSeparator() + .addSubMenu(ui.createMenu('바로가기') + .addItem('그룹웨어로 이동', 'OpenZioyou') + ) + .addToUi(); +} + +function LoadDocs() { + var url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSk92NUZKRcmXlze23plrptK9zZBPdlq6nPBYkkihPgOf9fdBYeYmgLy6eX0eJEgbP9xBQJ8m-hsMEW/pubhtml?widget=true&headers=false'; + + var html = ''; + var ui = HtmlService.createHtmlOutput(html) + .setWidth(800) + .setHeight(500); + SpreadsheetApp.getUi().showModalDialog(ui, '팝업으로 전자결제를 상신합니다.'); +} + +function OpenZioyou() { + // 열고자 하는 링크 + var url = "http://www.zioyou.com"; + + var html = ""; + var userInterface = HtmlService.createHtmlOutput(html); + + SpreadsheetApp.getUi().showModalDialog(userInterface, '지오유 홈페이지로 이동합니다.'); +} From 570f061ea6180886824c759cb8ab308982732e40 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Wed, 31 May 2023 00:18:26 +0900 Subject: [PATCH 07/22] index.html --- index.html | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 00000000..c4ae459f --- /dev/null +++ b/index.html @@ -0,0 +1,5 @@ +

우리반 포인트 내역서

+ + From 955909f23c2cb9d942561426361409a383b39bfe Mon Sep 17 00:00:00 2001 From: nomashipga Date: Wed, 31 May 2023 08:57:35 +0900 Subject: [PATCH 08/22] Update 0531.gs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 팝업 시 스프레드시트가 작게 보이는 문제 해결 --- 0531.gs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/0531.gs b/0531.gs index b1f7001d..81e98cbd 100644 --- a/0531.gs +++ b/0531.gs @@ -12,10 +12,10 @@ function onOpen() { function LoadDocs() { var url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSk92NUZKRcmXlze23plrptK9zZBPdlq6nPBYkkihPgOf9fdBYeYmgLy6eX0eJEgbP9xBQJ8m-hsMEW/pubhtml?widget=true&headers=false'; - var html = ''; + var html = ''; var ui = HtmlService.createHtmlOutput(html) .setWidth(800) - .setHeight(500); + .setHeight(800); SpreadsheetApp.getUi().showModalDialog(ui, '팝업으로 전자결제를 상신합니다.'); } From fe264157fb26df293a8a680f30f4abc5dd92b537 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Wed, 31 May 2023 18:33:45 +0900 Subject: [PATCH 09/22] Update 0531.gs --- 0531.gs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/0531.gs b/0531.gs index 81e98cbd..8012ce5e 100644 --- a/0531.gs +++ b/0531.gs @@ -1,5 +1,5 @@ function onOpen() { - var ui = SpreadsheetApp.getUi(); + let ui = SpreadsheetApp.getUi(); ui.createMenu('지오유') .addItem('본 문서를 전자결재로 상신', 'LoadDocs') .addSeparator() @@ -21,10 +21,10 @@ function LoadDocs() { function OpenZioyou() { // 열고자 하는 링크 - var url = "http://www.zioyou.com"; + let url = "http://www.zioyou.com"; - var html = ""; - var userInterface = HtmlService.createHtmlOutput(html); + let html = ""; + let userInterface = HtmlService.createHtmlOutput(html); SpreadsheetApp.getUi().showModalDialog(userInterface, '지오유 홈페이지로 이동합니다.'); } From d405795c90c2728d8e2eabba73d0dc1fa611bb91 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Sun, 4 Jun 2023 22:05:03 +0900 Subject: [PATCH 10/22] Update 0607.gs --- 0531.gs => 0607.gs | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) rename 0531.gs => 0607.gs (56%) diff --git a/0531.gs b/0607.gs similarity index 56% rename from 0531.gs rename to 0607.gs index 8012ce5e..6d06e2dc 100644 --- a/0531.gs +++ b/0607.gs @@ -1,5 +1,9 @@ +function myFunction() { + +} + function onOpen() { - let ui = SpreadsheetApp.getUi(); + var ui = SpreadsheetApp.getUi(); ui.createMenu('지오유') .addItem('본 문서를 전자결재로 상신', 'LoadDocs') .addSeparator() @@ -10,13 +14,8 @@ function onOpen() { } function LoadDocs() { - var url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSk92NUZKRcmXlze23plrptK9zZBPdlq6nPBYkkihPgOf9fdBYeYmgLy6eX0eJEgbP9xBQJ8m-hsMEW/pubhtml?widget=true&headers=false'; - - var html = ''; - var ui = HtmlService.createHtmlOutput(html) - .setWidth(800) - .setHeight(800); - SpreadsheetApp.getUi().showModalDialog(ui, '팝업으로 전자결제를 상신합니다.'); + var htmlOutput = HtmlService.createHtmlOutputFromFile('index.html').setHeight(400); + SpreadsheetApp.getUi().showModelessDialog(htmlOutput, '전자결제 상신'); } function OpenZioyou() { @@ -28,3 +27,9 @@ function OpenZioyou() { SpreadsheetApp.getUi().showModalDialog(userInterface, '지오유 홈페이지로 이동합니다.'); } + +function processDocx() { + let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); + let cell = sheet.getRange('A1'); + cell.setValue('수고하셨습니다'); +} From f22733d5b2d2bd286748483a25c40ecad7ca377e Mon Sep 17 00:00:00 2001 From: nomashipga Date: Sun, 4 Jun 2023 22:05:35 +0900 Subject: [PATCH 11/22] Update index.html --- index.html | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index c4ae459f..afa4eac1 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,25 @@ -

우리반 포인트 내역서

- - + + + + + + + + + + + + From 270dee9b40c456657fe1ab2bc9b9031d27e3f19d Mon Sep 17 00:00:00 2001 From: nomashipga Date: Sun, 4 Jun 2023 22:12:51 +0900 Subject: [PATCH 12/22] Update 0607.gs --- 0607.gs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0607.gs b/0607.gs index 6d06e2dc..9acfce82 100644 --- a/0607.gs +++ b/0607.gs @@ -31,5 +31,5 @@ function OpenZioyou() { function processDocx() { let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); let cell = sheet.getRange('A1'); - cell.setValue('수고하셨습니다'); + cell.setValue('성공하셨습니다.'); } From 14f4f8cba5ca90369ffbaf92dee87cf2d126c3cc Mon Sep 17 00:00:00 2001 From: nomashipga Date: Sun, 4 Jun 2023 22:16:13 +0900 Subject: [PATCH 13/22] Update index.html --- index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.html b/index.html index afa4eac1..1fed85dc 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,8 @@ if(confirm("정말로 상신하시겠습니까?")) { alert("상신되었습니다. 고생하셨습니다."); google.script.run.processDocx(); + } else { + alert("상신이 취소되었습니다."); } } From 979050e5c000a345e5598a6c8c8dfbd02da9cc78 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Sun, 4 Jun 2023 22:26:41 +0900 Subject: [PATCH 14/22] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 1fed85dc..583224be 100644 --- a/index.html +++ b/index.html @@ -12,8 +12,8 @@ - - - - - + } + .fadeIn { + animation: fadeIn 0.3s; + } + + @keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } + } + .fadeOut { + animation: fadeOut 0.3s; + } + + + + +

우리반 포인트 내역서

+ + + + +
+
+

해당 문서를 상신하시겠습니까?

+
+ + +
+
+
+ + +
+
+

성공적으로 상신되었습니다.

+
+ +
+
+
+ + +
+
+

상신이 취소되었습니다.

+
+ +
+
+
+ From 9273166aae85bbecdd8e322939f02711db9679cb Mon Sep 17 00:00:00 2001 From: nomashipga Date: Wed, 7 Jun 2023 00:34:36 +0900 Subject: [PATCH 19/22] Update 0607.gs --- 0607.gs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0607.gs b/0607.gs index ed51c3fa..8b2a7d91 100644 --- a/0607.gs +++ b/0607.gs @@ -14,7 +14,7 @@ function onOpen() { } function LoadDocs() { - let htmlOutput = HtmlService.createHtmlOutputFromFile('index.html').setHeight(400); + let htmlOutput = HtmlService.createHtmlOutputFromFile('index.html').setWidth(1000).setHeight(600); SpreadsheetApp.getUi().showModelessDialog(htmlOutput, '전자결제 상신'); } From 5b575c03338ac51c537083d3e91ebd1a11842664 Mon Sep 17 00:00:00 2001 From: nomashipga Date: Wed, 7 Jun 2023 00:34:50 +0900 Subject: [PATCH 20/22] Update index.html --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index fa4ff58c..ca32a781 100644 --- a/index.html +++ b/index.html @@ -169,7 +169,7 @@

우리반 포인트 내역서

- @@ -206,3 +206,4 @@

우리반 포인트 내역서

+ From 86b69283c69e6feaeaf4797bcea933a8eda3d4c9 Mon Sep 17 00:00:00 2001 From: gunhee Date: Wed, 12 Jul 2023 18:20:49 +0900 Subject: [PATCH 21/22] 0712 --- 0607.gs | 40 ------------------ Code.gs | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+), 40 deletions(-) delete mode 100644 0607.gs create mode 100644 Code.gs diff --git a/0607.gs b/0607.gs deleted file mode 100644 index 8b2a7d91..00000000 --- a/0607.gs +++ /dev/null @@ -1,40 +0,0 @@ -function myFunction() { - -} - -function onOpen() { - let ui = SpreadsheetApp.getUi(); - ui.createMenu('지오유') - .addItem('본 문서를 전자결재로 상신', 'LoadDocs') - .addSeparator() - .addSubMenu(ui.createMenu('바로가기') - .addItem('그룹웨어로 이동', 'OpenZioyou') - ) - .addToUi(); -} - -function LoadDocs() { - let htmlOutput = HtmlService.createHtmlOutputFromFile('index.html').setWidth(1000).setHeight(600); - SpreadsheetApp.getUi().showModelessDialog(htmlOutput, '전자결제 상신'); -} - -function OpenZioyou() { - // 열고자 하는 링크 - let url = "http://www.zioyou.com"; - - let html = ""; - let userInterface = HtmlService.createHtmlOutput(html); - - SpreadsheetApp.getUi().showModalDialog(userInterface, '지오유 홈페이지로 이동합니다.'); -} - -function processDocs() { - let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); - let cell = sheet.getRange('A1'); - - let currentDate = new Date(); - let formattedDate = Utilities.formatDate(currentDate, 'GMT+9', 'yy년 M월 d일 '); - let formattedTime = Utilities.formatDate(currentDate, 'GMT+9', 'HH:mm:ss'); - - cell.setValue(formattedDate + ' ' + formattedTime + '\n상신에 성공하였습니다.'); -} diff --git a/Code.gs b/Code.gs new file mode 100644 index 00000000..36f61b6b --- /dev/null +++ b/Code.gs @@ -0,0 +1,123 @@ +// 양식에 대한 고정값 +let gAuthKey = "GbYfCPydIC5fKP5fmx5wz8gXeEOXpzWWd0UJ"; +let gFormNo = "152521"; //문자열로 +let gCallbackErpResultUrl = encodeURIComponent("callbackerpreturnurl?arg1={1}&arg2={2}&arg3={3}&arg4={4}"); +let gCallbackErpEventUrl = encodeURIComponent("callbackerpeventurl?arg1={1}&arg2={2}&arg3={3}&arg4={4}"); + +// 문서마다 입력 받을 값 +let gErpUserID = "접속한 사용자의 Email주소 사용"; +let gDocSubject = "화면에서 입력받으세요"; +let gErpDocKey = "sheet고유의 ID를 자동으로 사용"; +let gBodyHtml = "눈에 보고 있는 Sheet 문서 자체를 자동으로 사용"; + +// sheet +let ui = SpreadsheetApp.getUi(); +let doc = SpreadsheetApp.getActiveSpreadsheet(); +let scriptPrp = PropertiesService.getScriptProperties() + +const onOpen = () => { + var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); + spreadsheet.getRange('A1').setValue(getSpreadsheetName()); + + ui.createMenu("지오유") + .addItem("본 문서를 전자결재로 상신", "eSign") + .addItem("본 문서를 게시방에 게시", "eSign1") + .addItem("본 문서를 프로젝트 WBS에 게시", "eSign2") + .addSeparator() + .addSubMenu( + ui + .createMenu("바로가기") + .addItem("그룹웨어로 이동", "redirectToZioYou") + ) + .addToUi(); + +} + +const include = (filename) => { + return HtmlService.createHtmlOutputFromFile(filename).getContent(); +} + +const redirectToZioYou = () => { + let url = "http://login.zioyou.com"; + let html = ""; + let userInterface = HtmlService.createHtmlOutput(html).setHeight(50).setWidth(200); + ui.showModalDialog(userInterface, '로딩 중입니다.'); +} +const redirectToWorkFlow = (url) => { + let html = ""; + let userInterface = HtmlService.createHtmlOutput(html).setHeight(50).setWidth(200); + ui.showModalDialog(userInterface, '로딩 중입니다.'); +} + +const eSign = () => { + gErpUserID = fGetUserInfo().driveUser.emailAddress; + gBodyHtml = fGetPubUrl(); + gErpDocKey = doc.getId(); + + scriptPrp.setProperty('gErpUserID', gErpUserID); + scriptPrp.setProperty('gBodyHtml', gBodyHtml); + scriptPrp.setProperty('gErpDocKey', gErpDocKey); + + let template = HtmlService.createTemplateFromFile('form.html'); + template.subj = doc.getName(); // HTML 파일에 값 전달 + template.userid = fGetUserInfo().driveUser.emailAddress; //가능 + template.userid = Session.getActiveUser().getEmail(); //가능 + template.bodyhtml = gBodyHtml; + let output = template.evaluate(); + output.setWidth(1400); + output.setHeight(600); + ui.showModalDialog(output, '전자결재 상신하기'); +} + +const processForm = (formObject) => { + callRestAPI(formObject); +} + +const fGetPubUrl = () => { + var fileId = doc.getId(); + //Drive : 좌메뉴->편집기->서비스->추가->Drive API + Drive.Revisions.update({published: true, publishedOutsideDomain: true, publishAuto: true}, fileId, 1); + return "https://docs.google.com/spreadsheet/pub?key=" + fileId; +} + +function fGetUserInfo() { + var about = Drive.About.get(); + var user = { + name: about.name, + permissionId: about.permissionId, + driveUser: about.user + }; + return user; +} + +const callRestAPI = (formObject) => { + const url = 'https://dev.zioyou.com/mashup/workflow.create.document'; + const formData = { + "argErpUserID": scriptPrp.getProperty('gErpUserID'), + "argFormNo": gFormNo, + "argErpDocKey": scriptPrp.getProperty('gErpDocKey'), + "argCallbackErpEventUrl": gCallbackErpEventUrl, + "argDocSubject": formObject.txtSubject, + "argBodyHtml": encodeURIComponent(scriptPrp.getProperty('gBodyHtml')), + "argCallbackErpResultUrl": gCallbackErpResultUrl + }; + const headers = { + "AuthKey": gAuthKey + }; + const options = { + 'method' : 'post', + 'contentType': 'application/x-www-form-urlencoded', //application/json + 'headers': headers, + 'payload': formData //JSON.stringify(formData) + }; + //ui.alert(JSON.stringify(formData)); + let response = UrlFetchApp.fetch(url, options); + let data = JSON.parse(response.getContentText()); + redirectToWorkFlow(data.result); +} + +function getSpreadsheetName() { + var ss = SpreadsheetApp.getActiveSpreadsheet(); + var name = ss.getName(); + return name; +} From e7b5e5978060aeda865e94807f9acdaec87e0917 Mon Sep 17 00:00:00 2001 From: gunhee Date: Wed, 12 Jul 2023 18:21:47 +0900 Subject: [PATCH 22/22] web html --- index.html | 209 ------------------------------------- web.html | 300 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 300 insertions(+), 209 deletions(-) delete mode 100644 index.html create mode 100644 web.html diff --git a/index.html b/index.html deleted file mode 100644 index ca32a781..00000000 --- a/index.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -

우리반 포인트 내역서

- - - - -
-
-

해당 문서를 상신하시겠습니까?

-
- - -
-
-
- - -
-
-

성공적으로 상신되었습니다.

-
- -
-
-
- - -
-
-

상신이 취소되었습니다.

-
- -
-
-
- - - diff --git a/web.html b/web.html new file mode 100644 index 00000000..41d7a25d --- /dev/null +++ b/web.html @@ -0,0 +1,300 @@ + + + + + + Drive API Quickstart + + + + + + +

전자결재 상신

+ + + + +

+ +
+ + +

+
+    
+    
+    
+    
+  
+