Advertisement
kadoel

APPS Script Buka Tutup Form Otomatis

May 20th, 2021
1,084
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  *  ----------------------
  3.  *  Buka Tutup Form Otomatis
  4.  *  ----------------------
  5.  *
  6.  *  Pembuat: I Kadek Adi Suandana
  7.  *  email: [email protected]
  8.  *
  9.  */
  10.  
  11.  
  12. /* Tentukan Waktu form buka dan tutup dengan format YYYY-MM-DD HH:MM
  13.  * dan tentukan jumlah respon yang diinginkan*/
  14.  
  15. WAKTU_BUKA_FORM = "2021-05-21 01:36";
  16. WAKTU_TUTUP_FORM = "2021-05-21 01:38";
  17. BATAS_RESPON = "1000";
  18.  
  19. /* Initialize the form, setup time based triggers */
  20. function BukaTutupFormOtomatis() {
  21.  
  22.     menghapusTriggers_();
  23.  
  24.     if ((WAKTU_BUKA_FORM !== "") &&
  25.         ((new Date()).getTime() < uraiWaktu_(WAKTU_BUKA_FORM).getTime())) {
  26.         tutupForm();
  27.         ScriptApp.newTrigger("bukaForm")
  28.             .timeBased()
  29.             .at(uraiWaktu_(WAKTU_BUKA_FORM))
  30.             .create();
  31.     }
  32.  
  33.     if (WAKTU_TUTUP_FORM !== "") {
  34.         ScriptApp.newTrigger("tutupForm")
  35.             .timeBased()
  36.             .at(uraiWaktu_(WAKTU_TUTUP_FORM))
  37.             .create();
  38.     }
  39.  
  40.     if (BATAS_RESPON !== "") {
  41.         ScriptApp.newTrigger("cekBatas_")
  42.             .forForm(FormApp.getActiveForm())
  43.             .onFormSubmit()
  44.             .create();
  45.     }
  46.  
  47. }
  48.  
  49. /* Hapus Semua Trigger Yang Sudah Ada */
  50. function menghapusTriggers_() {
  51.     var triggers = ScriptApp.getProjectTriggers();
  52.     for (var i in triggers) {
  53.         ScriptApp.deleteTrigger(triggers[i]);
  54.     }
  55. }
  56.  
  57.  
  58. /* Mengijinkan Menerima Respon */
  59. function bukaForm() {
  60.     var form = FormApp.getActiveForm();
  61.     form.setAcceptingResponses(true);
  62. }
  63.  
  64. /* Menutup Penerimaan Respon */
  65. function tutupForm() {
  66.     var form = FormApp.getActiveForm();
  67.     form.setAcceptingResponses(false);
  68.     menghapusTriggers_();
  69. }
  70.  
  71. /* Tutup Form Jika Form Responses >= Batas Respon*/
  72. function cekBatas_() {
  73.     if (FormApp.getActiveForm().getResponses().length >= BATAS_RESPON) {
  74.         tutupForm();
  75.     }
  76. }
  77.  
  78. /* Menguraikan Waktu Untuk membuat Time-Based Triggers */
  79. function uraiWaktu_(d) {
  80.     return new Date(d.substr(0, 4), d.substr(5, 2) - 1,
  81.         d.substr(8, 2), d.substr(11, 2), d.substr(14, 2));
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement