transmission/web/src/about-dialog.js

59 lines
1.6 KiB
JavaScript

/*
* This file Copyright (C) 2020 Mnemosyne LLC
*
* It may be used under the GNU GPL versions 2 or 3
* or any future license endorsed by Mnemosyne LLC.
*/
import { createDialogContainer } from './utils.js';
export class AboutDialog extends EventTarget {
constructor(version_info) {
super();
this.elements = AboutDialog._create(version_info);
this.elements.dismiss.addEventListener('click', () => this._onDismiss());
document.body.append(this.elements.root);
this.elements.dismiss.focus();
}
close() {
this.elements.root.remove();
this.dispatchEvent(new Event('close'));
delete this.elements;
}
_onDismiss() {
this.close();
}
static _create(version_info) {
const elements = createDialogContainer('about-dialog');
elements.root.setAttribute('aria-label', 'About transmission');
elements.heading.textContent = 'Transmission';
elements.dismiss.textContent = 'Close';
let e = document.createElement('div');
e.classList.add('about-dialog-version-number');
e.textContent = version_info.version;
elements.heading.append(e);
e = document.createElement('div');
e.classList.add('about-dialog-version-checksum');
e.textContent = version_info.checksum;
elements.heading.append(e);
e = document.createElement('div');
e.textContent = 'A fast and easy bitTorrent client';
elements.workarea.append(e);
e = document.createElement('div');
e.textContent = 'Copyright © The Transmission Project';
elements.workarea.append(e);
elements.confirm.remove();
delete elements.confirm;
return elements;
}
}