diff --git a/gs/lib/GenerateHtmlAddLinkCombo.gs b/gs/lib/GenerateHtmlAddLinkCombo.gs new file mode 100644 index 000000000..62866961e --- /dev/null +++ b/gs/lib/GenerateHtmlAddLinkCombo.gs @@ -0,0 +1,21 @@ +function GenerateHtmlAddLinkCombo(url, listName, masterLists) { + if (url instanceof Array) { + for (i in url) { + url[i] = GenerateHtmlAddLinkCombo(url[i], listName[i], masterLists[i]); + } + return url; + } else { + if (!listName) { + masterLists.split(/\s*,\s*/).forEach(function(masterListsSplit) { + listName += masterListsSplit + " + "; + }); + listName = listName.slice(0, -3) + } + if (url && url != "#N/A") { + var html = "Add"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/lib/GenerateHtmlListNameCombo.gs b/gs/lib/GenerateHtmlListNameCombo.gs new file mode 100644 index 000000000..a819e7876 --- /dev/null +++ b/gs/lib/GenerateHtmlListNameCombo.gs @@ -0,0 +1,24 @@ +function GenerateHtmlListNameCombo(listName, masterLists) { + if (listName instanceof Array) { + for (i in listName) { + listName[i] = GenerateHtmlListNameCombo(listName[i], masterLists[i]); + } + return listName; + } else { + var masterListNames = ""; + masterLists.split(/\s*,\s*/).forEach(function(masterListsSplit) { + masterListNames += masterListsSplit + " + "; + }); + masterListNames = masterListNames.slice(0, -3) + if (listName) { + var html = "

" + listName + "


"; + html += masterListNames; + return html; + } else if (masterLists) { + var html = "

" + masterListNames + "

"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/lib/GenerateHtmlViewLinkCombo.gs b/gs/lib/GenerateHtmlViewLinkCombo.gs new file mode 100644 index 000000000..f26e04ee3 --- /dev/null +++ b/gs/lib/GenerateHtmlViewLinkCombo.gs @@ -0,0 +1,21 @@ +function GenerateHtmlViewLinkCombo(url, listName, masterLists) { + if (url instanceof Array) { + for (i in url) { + url[i] = GenerateHtmlViewLinkCombo(url[i], listName[i], masterLists[i]); + } + return url; + } else { + if (!listName) { + masterLists.split(/\s*,\s*/).forEach(function(masterListsSplit) { + listName += masterListsSplit + " + "; + }); + listName = listName.slice(0, -3) + } + if (url && url != "#N/A") { + var html = "View"; + return html; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/gs/type/Interface.gs b/gs/type/Interface.gs index 8de1c0764..4e77241cf 100644 --- a/gs/type/Interface.gs +++ b/gs/type/Interface.gs @@ -10,10 +10,18 @@ function GenerateHtmlViewLink(url, listName) { return FilterLists.GenerateHtmlViewLink(url, listName); } +function GenerateHtmlViewLinkCombo(url, listName, masterLists) { + return FilterLists.GenerateHtmlViewLinkCombo(url, listName, masterLists); +} + function GenerateHtmlAddLink(url, listName) { return FilterLists.GenerateHtmlAddLink(url, listName); } +function GenerateHtmlAddLinkCombo(url, listName, masterLists) { + return FilterLists.GenerateHtmlAddLinkCombo(url, listName, masterLists); +} + function GenerateHtmlHomeLink(url, listName) { return FilterLists.GenerateHtmlHomeLink(url, listName); } @@ -54,6 +62,10 @@ function GenerateHtmlListName(listName) { return FilterLists.GenerateHtmlListName(listName); } +function GenerateHtmlListNameCombo(listName, masterLists) { + return FilterLists.GenerateHtmlListNameCombo(listName, masterLists); +} + function ImportJson(url, query, parseOptions) { return FilterLists.ImportJSON(url, query, parseOptions); } \ No newline at end of file diff --git a/gs/type/RefreshData.gs b/gs/type/RefreshData.gs index 69b38062d..5c3671724 100644 --- a/gs/type/RefreshData.gs +++ b/gs/type/RefreshData.gs @@ -45,7 +45,12 @@ function refreshParsed() { var sheetName = typeSheetPrefix[ss.getName()] + "Parsed"; var sheet = ss.getSheetByName(sheetName); var viewColHeader = refreshViewUrl(sheet); - refreshAddUrl(sheet, viewColHeader); + if (typeSheetPrefix[ss.getName()] != "Combo") { + refreshAddUrl(sheet, viewColHeader); + } else { + viewColHeader = refreshViewUrlCombo(sheet); + refreshAddUrlCombo(sheet, viewColHeader); + } refreshHomeUrl(sheet, viewColHeader); refreshGuideUrl(sheet, viewColHeader); refreshForumUrl(sheet, viewColHeader); @@ -61,12 +66,17 @@ function refreshPublic() { var sheetName = typeSheetPrefix[ss.getName()] + "Public"; var sheet = ss.getSheetByName(sheetName); var viewColHeader = refreshViewUrl(sheet); - refreshRegionPublic(sheet); - refreshListPublic(sheet); - refreshDescriptionPublic(sheet); - refreshLinksPublic(sheet); - refreshForksCombosPublic(sheet); - refreshMasterPublic(sheet); + if (typeSheetPrefix[ss.getName()] != "Combo") { + refreshRegionPublic(sheet); + refreshListPublic(sheet); + refreshDescriptionPublic(sheet); + refreshLinksPublic(sheet); + refreshForksCombosPublic(sheet); + refreshMasterPublic(sheet); + } else { + refreshListPublicCombo(sheet); + refreshLinksPublicCombo(sheet); + } } function findColumnHeader(sheet, header) { @@ -94,6 +104,20 @@ function refreshViewUrl(sheet) { return colHeader; } +function refreshViewUrlCombo(sheet) { + var colHeader = findColumnHeader(sheet, "viewUrl"); + if (colHeader) { + var rangeFull = sheet.getRange(colHeader + "2:" + colHeader); + rangeFull.clearContent(); + var rangeTop = sheet.getRange(colHeader + "2"); + rangeTop.setValue("=GenerateHtmlViewLinkCombo(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + colHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + colHeader + "2:" + colHeader + ",INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\")))"); + var data = rangeFull.getDisplayValues(); + rangeFull.clearContent(); + rangeFull.setValues(data); + } + return colHeader; +} + function refreshAddUrl(sheet, viewColHeader) { var colHeader = findColumnHeader(sheet, "addUrl"); if (colHeader) { @@ -107,6 +131,19 @@ function refreshAddUrl(sheet, viewColHeader) { } } +function refreshAddUrlCombo(sheet, viewColHeader) { + var colHeader = findColumnHeader(sheet, "addUrl"); + if (colHeader) { + var rangeFull = sheet.getRange(colHeader + "2:" + colHeader); + rangeFull.clearContent(); + var rangeTop = sheet.getRange(colHeader + "2"); + rangeTop.setValue("=GenerateHtmlAddLinkCombo(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(" + viewColHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(" + viewColHeader + "1," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\"))," + typeSheetPrefix[ss.getName()] + "Data!" + viewColHeader + "2:" + viewColHeader + ",INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\")))"); + var data = rangeFull.getDisplayValues(); + rangeFull.clearContent(); + rangeFull.setValues(data); + } +} + function refreshHomeUrl(sheet, viewColHeader) { var colHeader = findColumnHeader(sheet, "homeUrl"); if (colHeader) { @@ -250,6 +287,19 @@ function refreshListPublic(sheet) { } } +function refreshListPublicCombo(sheet) { + var colHeader = findColumnHeader(sheet, "List"); + if (colHeader) { + var rangeFull = sheet.getRange(colHeader + "2:" + colHeader); + rangeFull.clearContent(); + var rangeTop = sheet.getRange(colHeader + "2"); + rangeTop.setValue("=GenerateHtmlListNameCombo(INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"list\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\")),INDIRECT(\"" + typeSheetPrefix[ss.getName()] + "Data!\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"2\")&\":\"&SUBSTITUTE(ADDRESS(1,MATCH(\"master\"," + typeSheetPrefix[ss.getName()] + "Data!A1:1,0),4),\"1\",\"\")))"); + var data = rangeFull.getDisplayValues(); + rangeFull.clearContent(); + rangeFull.setValues(data); + } +} + function refreshDescriptionPublic(sheet) { var dataSheetName = typeSheetPrefix[ss.getName()] + "Data"; var dataSheet = ss.getSheetByName(dataSheetName); @@ -283,6 +333,19 @@ function refreshLinksPublic(sheet) { } } +function refreshLinksPublicCombo(sheet) { + var colHeader = findColumnHeader(sheet, "Links"); + if (colHeader) { + var rangeFull = sheet.getRange(colHeader + "2:" + colHeader); + rangeFull.clearContent(); + var rangeTop = sheet.getRange(colHeader + "2"); + rangeTop.setValue("=ARRAYFORMULA(IF(" + typeSheetPrefix[ss.getName()] + "Parsed!A2:A=\"\",\"\",\"

\"&" + typeSheetPrefix[ss.getName()] + "Parsed!A2:A&" + typeSheetPrefix[ss.getName()] + "Parsed!B2:B&\"

\"))"); + var data = rangeFull.getDisplayValues(); + rangeFull.clearContent(); + rangeFull.setValues(data); + } +} + function refreshForksCombosPublic(sheet) { var colHeader = findColumnHeader(sheet, "Forks & Combos"); if (colHeader) {