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) {