Google Sheet Time Tracker - PullRequest
       14

Google Sheet Time Tracker

0 голосов
/ 08 июля 2019

Какой код мне нужно добавить, чтобы переключать кнопки для запуска скрипта для «часов времени», чтобы запускать, заканчивать, сбрасывать и печатать эти результаты на листе?

  • Компоновка и дизайн
  • Связанные кнопки с функциями в редакторах сценариев
  • Написал сценарий в редакторе сценариев
  • Проверенная функция печати

/** This time tracker macro was built to help to edit during podcast speed up production workflow.*/


/** Records and prints, the value of the button pressed and files columns with the host or guest, date, timecode, and reason. Prints the value in A1*/
function setValue(cellName, value) {
  SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).setValue(value);
}
function getValue(cellName) {
  return SpreadsheetApp.getActiveSpreadsheet().getRange(cellName).getValue();
}
function getNextRow() {
  return SpreadsheetApp.getActiveSpreadsheet().getLastRow() +1;
}

/**Host and guest buttons. Trigger this button to start process of labeling in A1 cell*/ 
function host() {
  setValue('A1', 'Host');
}
function guest1() {
  setValue('A1', 'Guest 1');
}
function guest2() {
  setValue('A1', 'Guest 2');
}
function guest3() {
  setValue('A1', 'Guest 3');
}
function addRecord(a, b, c) {
  var row = getNextRow();
  setValue('A' + row, a);
  setValue('B' + row, b);
  setValue('C' + row, c);
}

    /** Timecode clock*/
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet1');

function  countDownSeconds(seconds, minutes){
  while (minutes >=0){   
     sheet.getRange(2,1).setValue(minutes);     
    while (seconds >= 0 ){     
      var m = sheet.getRange(2,1).getValue()
      var s = sheet.getRange(2,2).getValue()
      if (m === 'pausing' || s === 'pausing'|| m === 'reset' || s === 'reset' ) {
       return
      }      
      sheet.getRange(2,2).setValue(seconds); 
      SpreadsheetApp.flush();
      Utilities.sleep(1000)
      seconds --
    }    
    seconds = 59;
    minutes = sheet.getRange(2,1).getValue();
    minutes --
  }
}

function startTimer(){
   var minutes = sheet.getRange(2,1).getValue()
   var seconds = sheet.getRange(2,2).getValue()
   countDownSeconds(seconds, minutes)
   setValue('A1', 'Start');
}

function pause(){
   var minutes = sheet.getRange(2,1).getValue()
   var seconds = sheet.getRange(2,2).getValue()
   sheet.getRange(2,1).setValue('pausing');  
   sheet.getRange(2,2).setValue('pausing');   
   SpreadsheetApp.flush();
   Utilities.sleep(1000);
   sheet.getRange(2,1).setValue(minutes)
   sheet.getRange(2,2).setValue(seconds)
   setValue('A1', 'Pause');
}

function reset(){
   sheet.getRange(2,1).setValue('reset');  
   sheet.getRange(2,2).setValue('reset');   
   SpreadsheetApp.flush();
   Utilities.sleep(1000);
   sheet.getRange(2,1).setValue(0)
   sheet.getRange(2,2).setValue(0)
   setValue('A1', 'Reset');
}

function end() {
  setValue('A1', 'End');
}


/**Reason. Trigger this button to end process of labeling so printed result starts with A1 cell*/
function micnoiseIn() {
    addRecord(getValue('A1'), new Date(), 'Microphone Noise');
  }
function mouthnoiseIn() {
    addRecord(getValue('A1'), new Date(), 'Pop or Mouth Noise');
  }
function stammerIn() {
    addRecord(getValue('A1'), new Date(), 'Stammering');
  }
function stammerOut() {
    addRecord(getValue('A1'), new Date(), 'Stopped Stammering');

Я ожидаю, что выходной сигнал будет

Нажмите Старт ячейки А1 «пуск» Часы запускаются Печатные A2 Старт |B2 00:00:00 |C2 Start

"End Printed A * End | Временной код B2 | C * End

Нажмите Хост + Микрофон с напечатанным хостом A1 A * Хост | B2 Timecode | C * Микрофонный шум

GoogleSheet Time Tracker

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...