Advertisement
anonydee

Untitled

Nov 22nd, 2022
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. //add-on menu
  2. function onOpen() {
  3. SpreadsheetApp.getUi()
  4. .createMenu("Contacts Creator")
  5. .addItem('Turn ON Form Submit', 'onFormSubmits')
  6. .addItem('Turn OFF Form Submit', 'offFormSubmits')
  7. .addSeparator()
  8. .addItem('Authorize first time', 'authorize')
  9. .addSeparator()
  10. .addItem('Contact', 'showContact')
  11. .addToUi();
  12. }
  13.  
  14. function authorize() {
  15. showAlert("Successfully authorized!")
  16. }
  17. //on edit and on form submit triggers
  18. function onFormSubmits() {
  19. offFormSubmits(true)
  20. ScriptApp.newTrigger("onFormSubmit")
  21. .forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
  22. .onFormSubmit()
  23. .create();
  24. showAlert("Successfully turned ON Form Submit messaging");
  25. }
  26.  
  27. function offFormSubmits(silent) {
  28. deleteTriggers(true, "onFormSubmit");
  29. if (!silent) showAlert("Successfully turned OFF Form Submit messaging");
  30. }
  31.  
  32. function deleteTriggers(silent, handlerFunction) {
  33. var triggers = ScriptApp.getProjectTriggers();
  34. if (handlerFunction) {
  35. for (var i = 0; i < triggers.length; i++) {
  36. if (triggers[i].getHandlerFunction() == handlerFunction) {
  37. ScriptApp.deleteTrigger(triggers[i]);
  38. }
  39. }
  40. } else {
  41. for (var i = 0; i < triggers.length; i++) {
  42. ScriptApp.deleteTrigger(triggers[i]);
  43. }
  44. if (!silent) showAlert("All Schedules deleted");
  45. }
  46. }
  47. //alert
  48. function showAlert(msg) {
  49. var ui = SpreadsheetApp.getUi();
  50. var result = ui.alert(' ', msg + "", ui.ButtonSet.OK);
  51. }
  52. //contact
  53. function showContact() {
  54. showAlert('This add-on/script was developed by Darren D\'Mello');
  55. }
  56. //simple key pair JSON
  57. function getColumnNamedValues(values) {
  58. var obj = {}
  59. for (var i = 1; i < values.length; i++) {
  60. if (values[i][0]) {
  61. obj[values[i][0]] = values[i][1];
  62. }
  63. }
  64. return obj;
  65. }
  66.  
  67. function onFormSubmit(e) {
  68. Logger.log(JSON.stringify(e))
  69. /*var e = {"authMode":"FULL","namedValues":{"家长是否会和孩子一起参加 Demo 课程":["Yes 是"],"Parent's Name (家长姓名)":["Peter D'Mello"],"Timestamp":["22/11/2022 12:28:31"],"请选择 Preview 课的日期 ":["3/12/2022 Saturday (星期六)8:00pm - 9:00pm (晚上)"],"Student's Name (学员姓名)":["Darren"],"Phone Number (电话号码)":["9876543210"],"Student's Age (学员岁数)":["13 岁以上"],"Email address":["somethinggoodone@gmail.com"]},"range":{"columnEnd":8,"columnStart":1,"rowEnd":697,"rowStart":697},"source":{},"triggerUid":"3779873698096578807","values":["22/11/2022 12:28:31","somethinggoodone@gmail.com","Darren","13 岁以上","Peter D'Mello","9876543210","3/12/2022 Saturday (星期六)8:00pm - 9:00pm (晚上)","Yes 是"]}*/
  70. if (e.range.columnStart == e.range.columnEnd) return;
  71. if (e.range.getSheet()
  72. .getName() != "Preview Class 报名表格") return;
  73. var ss = SpreadsheetApp.getActiveSpreadsheet();
  74. try {
  75. var person = {
  76. "names": [{
  77. "givenName": e.namedValues["Parent's Name (家长姓名)"]?.toString() + " - " + e.namedValues["Student's Name (学员姓名)"]?.toString() + " (" + e.namedValues["请选择 Preview 课的日期 "]?.toString()
  78. ?.split(" ")
  79. ?.[0] + ")"
  80. }],
  81. "emailAddresses": [{
  82. "type": "work",
  83. "value": e.namedValues["Email address"]?.toString()
  84. }],
  85. "phoneNumbers": [{
  86. "type": "work",
  87. "value": e.namedValues["Phone Number (电话号码)"]?.toString()
  88. }],
  89. "relations": [{
  90. "type": "parent",
  91. "person": e.namedValues["Parent's Name (家长姓名)"]?.toString()
  92. }],
  93. }
  94. People.People.createContact(person);
  95. } catch (error) {
  96. MailApp.sendEmail("yijun.cubingacademy@gmail.com,yijun@mycubeassociation.com", "Error in saving google contacts", error + "\n\n\n" + JSON.stringify(e) + "\n\n\n" + ss.getUrl())
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement