From 6ccfd93997d4672751ffa92cda264b7cea0ea148 Mon Sep 17 00:00:00 2001 From: tecnovert Date: Sat, 18 Feb 2023 19:50:31 +0200 Subject: [PATCH] ui: Hide undefined data on identity page. --- basicswap/http_server.py | 59 +------------------------- basicswap/ui/page_identity.py | 78 +++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 57 deletions(-) create mode 100644 basicswap/ui/page_identity.py diff --git a/basicswap/http_server.py b/basicswap/http_server.py index 7d83d98..cc3e37a 100644 --- a/basicswap/http_server.py +++ b/basicswap/http_server.py @@ -19,7 +19,6 @@ from .util import ( dumpj, ensure, toBool, - zeroIfNone, LockedCoinError, format_timestamp, ) @@ -31,8 +30,6 @@ from .basicswap_util import ( strTxState, strBidState, strAddressType, - AutomationOverrideOptions, - strAutomationOverrideOption, ) from .js_server import ( @@ -58,6 +55,7 @@ from .ui.page_tor import page_tor, get_tor_established_state from .ui.page_wallet import page_wallets, page_wallet from .ui.page_settings import page_settings from .ui.page_encryption import page_changepassword, page_unlock, page_lock +from .ui.page_identity import page_identity env = Environment(loader=PackageLoader('basicswap', 'templates')) env.filters['formatts'] = format_timestamp @@ -474,59 +472,6 @@ class HttpHandler(BaseHTTPRequestHandler): 'summary': summary, }) - def page_identity(self, url_split, post_string): - ensure(len(url_split) > 2, 'Address not specified') - identity_address = url_split[2] - swap_client = self.server.swap_client - swap_client.checkSystemStatus() - summary = swap_client.getSummary() - - page_data = {'identity_address': identity_address} - messages = [] - err_messages = [] - form_data = self.checkForm(post_string, 'identity', err_messages) - if form_data: - if have_data_entry(form_data, 'edit'): - page_data['show_edit_form'] = True - if have_data_entry(form_data, 'apply'): - try: - data = { - 'label': get_data_entry_or(form_data, 'label', ''), - 'note': get_data_entry_or(form_data, 'note', ''), - 'automation_override': get_data_entry(form_data, 'automation_override'), - } - swap_client.setIdentityData({'address': identity_address}, data) - messages.append('Updated') - except Exception as e: - err_messages.append(str(e)) - - try: - identity = swap_client.getIdentity(identity_address) - if identity is None: - raise ValueError('Unknown address') - page_data['label'] = identity.label - page_data['num_sent_bids_successful'] = identity.num_sent_bids_successful - page_data['num_recv_bids_successful'] = identity.num_recv_bids_successful - page_data['num_sent_bids_rejected'] = identity.num_sent_bids_rejected - page_data['num_recv_bids_rejected'] = identity.num_recv_bids_rejected - page_data['num_sent_bids_failed'] = identity.num_sent_bids_failed - page_data['num_recv_bids_failed'] = identity.num_recv_bids_failed - automation_override = zeroIfNone(identity.automation_override) - page_data['automation_override'] = automation_override - page_data['str_automation_override'] = strAutomationOverrideOption(automation_override) - page_data['note'] = identity.note - except Exception as e: - err_messages.append(e) - - template = env.get_template('identity.html') - return self.render_template(template, { - 'messages': messages, - 'err_messages': err_messages, - 'data': page_data, - 'automation_override_options': [(int(opt), strAutomationOverrideOption(opt)) for opt in AutomationOverrideOptions if opt > 0], - 'summary': summary, - }) - def page_shutdown(self, url_split, post_string): swap_client = self.server.swap_client @@ -668,7 +613,7 @@ class HttpHandler(BaseHTTPRequestHandler): if page == 'smsgaddresses': return self.page_smsgaddresses(url_split, post_string) if page == 'identity': - return self.page_identity(url_split, post_string) + return page_identity(self, url_split, post_string) if page == 'tor': return page_tor(self, url_split, post_string) if page == 'automation': diff --git a/basicswap/ui/page_identity.py b/basicswap/ui/page_identity.py new file mode 100644 index 0000000..db15dad --- /dev/null +++ b/basicswap/ui/page_identity.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 tecnovert +# Distributed under the MIT software license, see the accompanying +# file LICENSE or http://www.opensource.org/licenses/mit-license.php. + +from basicswap.basicswap_util import ( + AutomationOverrideOptions, + strAutomationOverrideOption, +) +from basicswap.util import ( + ensure, + zeroIfNone, +) +from .util import ( + get_data_entry, + get_data_entry_or, + have_data_entry, +) + + +def page_identity(self, url_split, post_string): + server = self.server + swap_client = server.swap_client + swap_client.checkSystemStatus() + summary = swap_client.getSummary() + + ensure(len(url_split) > 2, 'Address not specified') + identity_address = url_split[2] + + page_data = {'identity_address': identity_address} + messages = [] + err_messages = [] + form_data = self.checkForm(post_string, 'identity', err_messages) + if form_data: + if have_data_entry(form_data, 'edit'): + page_data['show_edit_form'] = True + if have_data_entry(form_data, 'apply'): + try: + data = { + 'label': get_data_entry_or(form_data, 'label', ''), + 'note': get_data_entry_or(form_data, 'note', ''), + 'automation_override': get_data_entry(form_data, 'automation_override'), + } + swap_client.setIdentityData({'address': identity_address}, data) + messages.append('Updated') + except Exception as e: + err_messages.append(str(e)) + + try: + identity = swap_client.getIdentity(identity_address) + if identity is None: + raise ValueError('Unknown address') + + automation_override = zeroIfNone(identity.automation_override) + page_data.update({ + 'label': '' if identity.label is None else identity.label, + 'num_sent_bids_successful': zeroIfNone(identity.num_sent_bids_successful), + 'num_recv_bids_successful': zeroIfNone(identity.num_recv_bids_successful), + 'num_sent_bids_rejected': zeroIfNone(identity.num_sent_bids_rejected), + 'num_recv_bids_rejected': zeroIfNone(identity.num_recv_bids_rejected), + 'num_sent_bids_failed': zeroIfNone(identity.num_sent_bids_failed), + 'num_recv_bids_failed': zeroIfNone(identity.num_recv_bids_failed), + 'automation_override': automation_override, + 'str_automation_override': strAutomationOverrideOption(automation_override), + 'note': '' if identity.note is None else identity.note, + }) + except Exception as e: + err_messages.append(e) + + template = server.env.get_template('identity.html') + return self.render_template(template, { + 'messages': messages, + 'err_messages': err_messages, + 'data': page_data, + 'automation_override_options': [(int(opt), strAutomationOverrideOption(opt)) for opt in AutomationOverrideOptions if opt > 0], + 'summary': summary, + })