diff --git a/SUS/var/appliance/sus_info.py b/SUS/var/appliance/sus_info.py
index 5f499d8..a231011 100755
--- a/SUS/var/appliance/sus_info.py
+++ b/SUS/var/appliance/sus_info.py
@@ -4,6 +4,31 @@
from plistlib import readPlist
from json import dumps
+apple_catalog_version_map = {
+ 'index-10.15-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.15',
+ 'index-10.14-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.14',
+ 'index-10.13-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.13',
+ 'index-10.12-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.12',
+ 'index-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.11',
+ 'index-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.10',
+ 'index-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.9',
+ 'index-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog': '10.8',
+ 'index-lion-snowleopard-leopard.merged-1.sucatalog': '10.7',
+ 'index-leopard-snowleopard.merged-1.sucatalog': '10.6',
+ 'index-leopard.merged-1.sucatalog': '10.5',
+ 'index-1.sucatalog': '10.4',
+ 'index.sucatalog': '10.4',
+}
+
+def versions_from_catalogs(cats):
+ versions = []
+ for cat in cats:
+ # End of URL
+ short_cat = cat.split('/')[-1]
+ if short_cat in apple_catalog_version_map.keys():
+ versions.append(apple_catalog_version_map[short_cat])
+ return versions
+
def list_products():
try:
@@ -38,6 +63,7 @@ def list_products():
'id': key,
'title': product_info[key]['title'],
'version': product_info[key]['version'],
+ 'oscatalogs': versions_from_catalogs(product_info[key]['OriginalAppleCatalogs']),
'PostDate': post_date,
'BranchList': branch_list,
'Deprecated': deprecated
@@ -83,6 +109,8 @@ def product_detail(key):
'size': size,
'PostDate': post_date,
'description': product_dict['description'],
+ 'oscatalogs': versions_from_catalogs(product_dict['OriginalAppleCatalogs']),
+ 'packages': product_dict['CatalogEntry']['Packages'],
'Deprecated': deprecated
}
diff --git a/docs/images/attachments/sus_settings_filters.png b/docs/images/attachments/sus_settings_filters.png
new file mode 100644
index 0000000..7e3295b
Binary files /dev/null and b/docs/images/attachments/sus_settings_filters.png differ
diff --git a/docs/sus.md b/docs/sus.md
index 8dbca04..cbe1408 100755
--- a/docs/sus.md
+++ b/docs/sus.md
@@ -32,6 +32,10 @@ Unlike a standard SUS, you can divide the SUS hosted by the NetSUSLP into branch
9. Optionally, specify any additional Catalog URLs you would like to sync. e.g. beta or seed.
+10. Optionnaly, enable filters categories (Config-Data, Deprecated, ...) and select which filter is enabled by default.
+
+
+
## Syncing with Apple's Software Update Servers
diff --git a/webadmin/var/www/webadmin/managebranch.php b/webadmin/var/www/webadmin/managebranch.php
old mode 100644
new mode 100755
index b30777c..82368bb
--- a/webadmin/var/www/webadmin/managebranch.php
+++ b/webadmin/var/www/webadmin/managebranch.php
@@ -41,6 +41,15 @@ function susExec($cmd) {
// End of GET/POST parsing
// ####################################################################
+// Filters
+$filtersEnabled = $conf->getSetting("filterEnable");
+if($filtersEnabled != "true"){
+ $filtersEnabled = false;
+}else{
+ $filtersEnabled = true;
+}
+
+// Products
$productstr = trim(susExec("productList"));
$products = json_decode($productstr);
@@ -60,35 +69,175 @@ function susExec($cmd) {