From 0c7229d7665c0b5e9a6ad684167fce6a6f9598b6 Mon Sep 17 00:00:00 2001 From: Jaekwon Bang Date: Tue, 28 Jun 2022 11:33:02 +0900 Subject: [PATCH] Add expand button in html --- src/fosslight_reuse/_constant.py | 12 +++++--- src/fosslight_reuse/_result_html.py | 48 ++++++++++++++++++----------- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/fosslight_reuse/_constant.py b/src/fosslight_reuse/_constant.py index 2e91af5..138ecca 100755 --- a/src/fosslight_reuse/_constant.py +++ b/src/fosslight_reuse/_constant.py @@ -8,6 +8,8 @@ OSS_PKG_INFO_FILES = ["oss-pkg-info.yaml", "oss-pkg-info.yml", r"oss-package*.info", "requirement.txt", "requirements.txt", "package.json", "pom.xml", "build.gradle", "podfile.lock", "cartfile.resolved", "pubspec.yaml", "package.resolved", "go.mod", r"fosslight-sbom-info*.yaml"] +HTML_RESULT_EXPAND_LIMIT = 10 +HTML_RESULT_PRINT_LIMIT = 100 HTML_FORMAT_PREFIX = """ @@ -16,6 +18,7 @@ FOSSLight Reuse @@ -38,11 +41,7 @@
""" -HTML_COMPLIANCE_SUFFIX = """ -
-

- """ - +HTML_COMPLIANCE_SUFFIX = "" HTML_CELL_PREFIX = """

« Files without License or Copyright »

@@ -72,3 +71,6 @@ """ + +HTML_EXPAND_PREFIX = """
+ Click to expand...""" diff --git a/src/fosslight_reuse/_result_html.py b/src/fosslight_reuse/_result_html.py index 925f55b..585b44a 100644 --- a/src/fosslight_reuse/_result_html.py +++ b/src/fosslight_reuse/_result_html.py @@ -5,29 +5,41 @@ import os from reuse import report from reuse.project import Project -from fosslight_reuse._constant import HTML_FORMAT_PREFIX, HTML_CELL_PREFIX, HTML_FORMAT_SUFFIX, HTML_COMPLIANCE_SUFFIX +from fosslight_reuse._constant import HTML_FORMAT_PREFIX, HTML_CELL_PREFIX, HTML_FORMAT_SUFFIX, HTML_EXPAND_PREFIX,\ + HTML_COMPLIANCE_SUFFIX, HTML_RESULT_PRINT_LIMIT, HTML_RESULT_EXPAND_LIMIT -def get_html_summary(result_item): - pkg_file_str = "" - detected_lic_str = "" - if result_item._oss_pkg_files: - for pkg_file in result_item._oss_pkg_files: - pkg_file_str += f"
    - {pkg_file}" +def check_length_of_print_list(input_list: list, list_len: int): + print_cnt = 0 + print_str = "" + if not input_list: + print_str = 'N/A' else: - pkg_file_str = 'N/A' + if list_len <= HTML_RESULT_EXPAND_LIMIT: + for file in input_list: + print_str += f"
    · {file}" + elif HTML_RESULT_EXPAND_LIMIT < list_len: + print_str = HTML_EXPAND_PREFIX + for file in input_list: + print_str += f"
    · {file}" + print_cnt += 1 + if print_cnt >= HTML_RESULT_PRINT_LIMIT: + print_str += "
    See the log file for more listings..." + break + print_str += "
" + return print_str - if result_item._detected_licenses: - for detected_lic in result_item._detected_licenses: - detected_lic_str += f"
    - {detected_lic}" - else: - detected_lic_str = 'N/A' + +def get_html_summary(result_item): + pkg_file_str = check_length_of_print_list(result_item._oss_pkg_files, len(result_item._oss_pkg_files)) + detected_lic_str = check_length_of_print_list(result_item._detected_licenses, len(result_item._detected_licenses)) html_lint_str = f""" - - Open Source Package file: {pkg_file_str}
- - Detected licenses: {detected_lic_str}
- - Files without copyright / total: {result_item._count_without_cop} / {result_item._count_total_files}
- - Files without license / total: {result_item._count_without_lic} / {result_item._count_total_files}

+

+ - Open Source Package file: {pkg_file_str}
+ - Detected licenses: {detected_lic_str}
+ - Files without copyright / total: {result_item._count_without_cop} / {result_item._count_total_files}
+ - Files without license / total: {result_item._count_without_lic} / {result_item._count_total_files}

""" return html_lint_str @@ -80,7 +92,7 @@ def result_for_html(result_item, project: Project, path_to_find): summary_str = get_html_summary(result_item) cell_contents_str = "" - if get_num_of_not_compliant(result_item) <= 100: + if get_num_of_not_compliant(result_item) <= HTML_RESULT_PRINT_LIMIT: cell_contents_str = get_html_cell(result_item, project, path_to_find) html_in_str = f"{HTML_FORMAT_PREFIX}{compliance_str}{summary_str}{HTML_CELL_PREFIX}{cell_contents_str}{HTML_FORMAT_SUFFIX}" else: