X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=csit.infra.dash%2Fapp%2Fcdash%2Fcomparisons%2Flayout.py;h=0680cc3d066d7f2be5ae098dd908b797f2e4883d;hb=55f72749a29e303c3a1049349b82baf258079e29;hp=d78123b18791f81108a52e8fe96e6d06991d8dae;hpb=f578663642305f144f76ddadf0370701147f18ff;p=csit.git diff --git a/csit.infra.dash/app/cdash/comparisons/layout.py b/csit.infra.dash/app/cdash/comparisons/layout.py index d78123b187..0680cc3d06 100644 --- a/csit.infra.dash/app/cdash/comparisons/layout.py +++ b/csit.infra.dash/app/cdash/comparisons/layout.py @@ -210,6 +210,18 @@ class Layout: self._add_ctrl_col(), self._add_plotting_col() ] + ), + dbc.Offcanvas( + class_name="w-75", + id="offcanvas-documentation", + title="Documentation", + placement="end", + is_open=False, + children=html.Iframe( + src=C.URL_DOC_REL_NOTES, + width="100%", + height="100%" + ) ) ] ) @@ -235,14 +247,26 @@ class Layout: return dbc.NavbarSimple( id="navbarsimple-main", children=[ - dbc.NavItem( - dbc.NavLink( - C.COMP_TITLE, - disabled=True, - external_link=True, - href="#" - ) - ) + dbc.NavItem(dbc.NavLink( + C.REPORT_TITLE, + external_link=True, + href="/report" + )), + dbc.NavItem(dbc.NavLink( + "Comparisons", + active=True, + external_link=True, + href="/comparisons" + )), + dbc.NavItem(dbc.NavLink( + "Coverage Data", + external_link=True, + href="/coverage" + )), + dbc.NavItem(dbc.NavLink( + "Documentation", + id="btn-documentation", + )) ], brand=C.BRAND, brand_href="/", @@ -678,7 +702,9 @@ class Layout: [ State("store-control-panel", "data"), State("store-selected", "data"), - State("store-table-data", "data") + State("store-table-data", "data"), + State("store-filtered-table-data", "data"), + State({"type": "table", "index": ALL}, "data") ], [ Input("url", "href"), @@ -693,6 +719,8 @@ class Layout: control_panel: dict, selected: dict, store_table_data: list, + filtered_data: list, + table_data: list, href: str, normalize: list, table_filter: str, @@ -722,8 +750,6 @@ class Layout: on_draw = False plotting_area = no_update - table_data = list() - filtered_data = None trigger = Trigger(callback_context.triggered) if trigger.type == "url" and url_params: @@ -946,12 +972,11 @@ class Layout: "cmp-val-val": str() }) elif trigger.type == "table" and trigger.idx == "comparison": - table_data = filter_table_data( + filtered_data = filter_table_data( store_table_data, table_filter[0] ) - filtered_data = table_data - table_data = [table_data, ] + table_data = [filtered_data, ] if all((on_draw, selected["reference"]["set"], selected["compare"]["set"], )): @@ -965,6 +990,9 @@ class Layout: ) ) store_table_data = table.to_dict("records") + filtered_data = store_table_data + if table_data: + table_data = [store_table_data, ] ret_val = [ ctrl_panel.panel, @@ -1014,10 +1042,20 @@ class Layout: if not table_data: raise PreventUpdate - + if filtered_table_data: table = pd.DataFrame.from_records(filtered_table_data) else: table = pd.DataFrame.from_records(table_data) return dcc.send_data_frame(table.to_csv, C.COMP_DOWNLOAD_FILE_NAME) + + @app.callback( + Output("offcanvas-documentation", "is_open"), + Input("btn-documentation", "n_clicks"), + State("offcanvas-documentation", "is_open") + ) + def toggle_offcanvas_documentation(n_clicks, is_open): + if n_clicks: + return not is_open + return is_open