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