Development
This commit is contained in:
parent
563d82daf3
commit
70ccfe2c29
48 changed files with 549 additions and 578 deletions
|
|
@ -2,20 +2,17 @@ import json
|
|||
from collections import defaultdict
|
||||
from datetime import datetime
|
||||
from flask import session
|
||||
from config_utils import (
|
||||
collect_layout_tokens, get_dashboard_pending, load_all_groups, get_done_timestamps,
|
||||
_apply_changes_immediately, _find_cmd_in_queues, WEB_APP_DISPLAY_NAME,
|
||||
)
|
||||
from factory import LEVEL_RANK, e, client_level, build_snap_val, snap_expand_row, load_icon
|
||||
import config_utils
|
||||
import factory
|
||||
|
||||
|
||||
def collect_tokens(cfg):
|
||||
tokens = collect_layout_tokens(cfg)
|
||||
tokens = config_utils.collect_layout_tokens(cfg)
|
||||
tokens['GENERAL_APPLY_ON_SAVE'] = 'true' if session.get('apply_changes_immediately', False) else 'false'
|
||||
|
||||
all_groups = load_all_groups()
|
||||
all_groups = config_utils.load_all_groups()
|
||||
group_uuid_set = {g['uuid'] for g, _ in all_groups}
|
||||
pending_items = get_dashboard_pending()
|
||||
pending_items = config_utils.get_dashboard_pending()
|
||||
|
||||
if pending_items:
|
||||
pgroups = defaultdict(list)
|
||||
|
|
@ -39,8 +36,8 @@ def collect_tokens(cfg):
|
|||
req_cell = '<td class="table-cell">-</td>'
|
||||
rows += (
|
||||
'<tr>'
|
||||
f'<td class="table-cell">{e(cmd)}</td>'
|
||||
f'<td class="table-cell">{e(users)}</td>'
|
||||
f'<td class="table-cell">{factory.e(cmd)}</td>'
|
||||
f'<td class="table-cell">{factory.e(users)}</td>'
|
||||
f'{req_cell}'
|
||||
'</tr>'
|
||||
)
|
||||
|
|
@ -59,13 +56,13 @@ def collect_tokens(cfg):
|
|||
tokens['NO_PENDING'] = 'true' if not pending_items else ''
|
||||
tokens['NO_DISMISSIBLE_PENDING'] = 'true' if not any(c != 'fix problems' for _, _, c, _ in pending_items) else ''
|
||||
tokens['APPLY_WARNING'] = (
|
||||
f'<span style="color:var(--warning)"><p>{load_icon("arrow-left")} <strong>Applying actions will briefly disrupt connections as network services are restarted.</strong></p></span>'
|
||||
f'<span style="color:var(--warning)"><p>{factory.load_icon("arrow-left")} <strong>Applying actions will briefly disrupt connections as network services are restarted.</strong></p></span>'
|
||||
if pending_items else ''
|
||||
)
|
||||
|
||||
done_ts_map = get_done_timestamps()
|
||||
done_ts_map = config_utils.get_done_timestamps()
|
||||
if all_groups:
|
||||
is_manager = client_level() >= LEVEL_RANK['manager']
|
||||
is_manager = factory.client_level() >= factory.LEVEL_RANK['manager']
|
||||
no_revert = {g['uuid'] for g, _ in all_groups if g['reverted'] or g['reverts_group']}
|
||||
hist_rows = ''
|
||||
hist_onclick = (
|
||||
|
|
@ -89,28 +86,28 @@ def collect_tokens(cfg):
|
|||
item = g.get('item_value') or ''
|
||||
summary_text = f'{verb} {g["parent_path"]}: {item}' if item else f'{verb} {g["parent_path"]}'
|
||||
if g['reverted']:
|
||||
summary = f'<span style="text-decoration:line-through;opacity:0.5">{e(summary_text)}</span> <span class="badge badge-disabled">Superseded</span>'
|
||||
summary = f'<span style="text-decoration:line-through;opacity:0.5">{factory.e(summary_text)}</span> <span class="badge badge-disabled">Superseded</span>'
|
||||
else:
|
||||
summary = e(summary_text)
|
||||
summary = factory.e(summary_text)
|
||||
snap_tag = (
|
||||
f'<div class="tag-list"><span class="tag" data-tooltip="{e(uuid)}" data-uuid="{e(uuid)}">'
|
||||
f'<span class="tl-full">{e(uuid[:8])}</span>'
|
||||
f'<span class="tl-short">{e(uuid[:8])}</span>'
|
||||
f'<span class="tl-min">{e(uuid[:8])}</span>'
|
||||
f'<div class="tag-list"><span class="tag" data-tooltip="{factory.e(uuid)}" data-uuid="{factory.e(uuid)}">'
|
||||
f'<span class="tl-full">{factory.e(uuid[:8])}</span>'
|
||||
f'<span class="tl-short">{factory.e(uuid[:8])}</span>'
|
||||
f'<span class="tl-min">{factory.e(uuid[:8])}</span>'
|
||||
'</span></div>'
|
||||
)
|
||||
snap_user = e(g.get('user', ''))
|
||||
snap_user = factory.e(g.get('user', ''))
|
||||
cb_attrs = '' if is_manager else ('disabled title="Cannot revert"' if uuid in no_revert else '')
|
||||
hist_rows += (
|
||||
f'<tr class="row-expandable" data-uuid="{e(uuid)}" {hist_onclick}>'
|
||||
f'<td class="table-cell"><input type="checkbox" name="selected_uuids" value="{e(uuid)}" {cb_attrs}/></td>'
|
||||
f'<td class="table-cell">{e(dt_str)}</td>'
|
||||
f'<tr class="row-expandable" data-uuid="{factory.e(uuid)}" {hist_onclick}>'
|
||||
f'<td class="table-cell"><input type="checkbox" name="selected_uuids" value="{factory.e(uuid)}" {cb_attrs}/></td>'
|
||||
f'<td class="table-cell">{factory.e(dt_str)}</td>'
|
||||
f'<td class="table-cell">{summary}</td>'
|
||||
f'<td class="table-cell">{build_snap_val(changes)}</td>'
|
||||
f'<td class="table-cell">{factory.build_snap_val(changes)}</td>'
|
||||
f'<td class="table-cell">{snap_tag}</td>'
|
||||
f'<td class="table-cell">{snap_user}</td>'
|
||||
'</tr>'
|
||||
f'{snap_expand_row(changes, 6)}'
|
||||
f'{factory.snap_expand_row(changes, 6)}'
|
||||
)
|
||||
select_all = (
|
||||
'<input type="checkbox" '
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue