2014-11-25 3 views
1

나는 Google 사이트 목록 페이지를 일종의 프로젝트 트래커로 사용하고있다.구글 사이트에서 목록 항목 조작. 또는 : (날짜) reaper를 두려워하지 마라.

다음 헤더가 있습니다.

프로젝트 | 설명 | 시작일 | 기한

내 많은 사용자가 내가보고 보일 것이다 사신을 구현하고 싶었다 그래서 자신의 추적기를 정리에 대해 매우 좋지 않은 것을 알게 기한 경우 현재 날짜보다 작습니다.

어떻게 이런 문제가 발생합니까? 내가 어떻게했는지 말해 줄께.

답변

2

내 공격 방법은 다음과 같이 요약됩니다.

function dontFearTheRepear() { 

var site = SitesApp.getSiteByUrl(YourSiteHere); 
var page = SitesApp.getPageByUrl(YourPageHere); 

//Columns 
var columns = page.getColumns(); 
var columnList = []; 

//Rows 
var listItems = page.getListItems(); 
var listItem = 0 
var listList = []; 

// Get todays date 
var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth()+1; //January is 0! 
var yyyy = today.getFullYear(); 
if(dd<10) { 
    dd='0'+dd 
} 
if(mm<10) { 
    mm='0'+mm 
} 
today = yyyy+'-'+mm+'-'+dd; 
Logger.log(today) 


//Get Column Names 
for (var i in columns) { 
    var cName =columns[i].getName(); 
    columnList.push(cName); 
} 
Logger.log(columnList); 
Logger.log("The number of columns is " + columnList.length); 
Logger.log("The number of rows is " + listItems.length); 

    // Get index of Due Date 
var dueDateValue = columnList.indexOf("Due Date"); 
Logger.log("The index of due date is " + dueDateValue); 


//Get Due date column info 
var dueDate = page.getListItems({ start:0, max: 50 }); 
var indexLength = dueDate.length; 
var rowCounter = 1 

for (var j in listItems){ 
    var listItem = listItems[j]; 
    var value = listItem.getValueByIndex(dueDateValue); 
    Logger.log("Due date of row " + rowCounter + " Is " + value); 
    //don't fear the reaper 
    if (value < today) { 
     listItem.deleteListItem(); 
     Logger.log(listItem + " was deleted") 
    } 
rowCounter++; 
j++; 
} 
} 

는 잘 한 열 머리글 "기한"내가 추가하거나 필요에 따라 열을 제거 할 수 있어야한다 보인다 존재로 작동하는 것 같습니다.

다른 사람들에게도 도움이되기를 바랍니다.