parent
ba315648be
commit
a8a1f4e976
@ -93,7 +93,7 @@ class Donations {
|
|||||||
async $getDonationsFromDatabase() {
|
async $getDonationsFromDatabase() {
|
||||||
try {
|
try {
|
||||||
const connection = await DB.pool.getConnection();
|
const connection = await DB.pool.getConnection();
|
||||||
const query = `SELECT handle, imageUrl FROM donations WHERE handle != '' ORDER BY id ASC`;
|
const query = `SELECT handle, imageUrl FROM donations WHERE handle != '' ORDER BY id DESC`;
|
||||||
const [rows] = await connection.query<any>(query);
|
const [rows] = await connection.query<any>(query);
|
||||||
connection.release();
|
connection.release();
|
||||||
return rows;
|
return rows;
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
<div class="container-xl">
|
<div class="container-xl">
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<br />
|
<br />
|
||||||
<img src="./resources/mempool-tube.png" width="63" height="63" />
|
<img src="./resources/mempool-logo-bigger.png" height="67.5" width="251">
|
||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
<h1>Mempool Open Source Project</h1>
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<a target="_blank" class="mr-4 b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 link" rel="noopener noreferrer nofollow" href="https://github.com/mempool/mempool">
|
<a target="_blank" class="mr-4 b2812e30 f2874b88 fw6 mb3 mt2 truncate black-80 f4 link" rel="noopener noreferrer nofollow" href="https://github.com/mempool/mempool">
|
||||||
@ -31,25 +29,26 @@
|
|||||||
<h2>Maintainers</h2>
|
<h2>Maintainers</h2>
|
||||||
|
|
||||||
<div class="container text-center">
|
<div class="container text-center">
|
||||||
<div class="row">
|
<div class="row row-cols-2">
|
||||||
<div class="col-sm-2 offset-md-4">
|
<div class="col col-md-2 offset-md-4">
|
||||||
|
<a href="https://twitter.com/softsimon_">
|
||||||
<div class="profile_photo mx-auto" style="background-image: url(/resources/profile_softsimon.jpg)"></div>
|
<div class="profile_photo mx-auto" style="background-image: url(/resources/profile_softsimon.jpg)"></div>
|
||||||
|
@softsimon_
|
||||||
<a href="https://twitter.com/softsimon_">@softsimon_</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
Development
|
Development
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-2">
|
<div class="col col-md-2">
|
||||||
|
<a href="https://twitter.com/wiz">
|
||||||
<div class="profile_photo mx-auto" style="background-image: url(/resources/profile_wiz.png)"></div>
|
<div class="profile_photo mx-auto" style="background-image: url(/resources/profile_wiz.png)"></div>
|
||||||
|
@wiz
|
||||||
<a href="https://twitter.com/wiz">@wiz</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
Operations
|
Operations
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<h2>Sponsors</h2>
|
<h2>Sponsors</h2>
|
||||||
@ -58,10 +57,15 @@
|
|||||||
<br>
|
<br>
|
||||||
<div class="spinner-border text-light"></div>
|
<div class="spinner-border text-light"></div>
|
||||||
</div>
|
</div>
|
||||||
<div *ngFor="let sponsor of sponsors" (click)="openTwitterProfile(sponsor.handle)" class="profile_photo d-inline-block" [ngStyle]="{'background-image': 'url(' + sponsor.imageUrl + ')'}" [title]="sponsor.handle"></div>
|
|
||||||
|
<ng-template ngFor let-sponsor [ngForOf]="sponsors">
|
||||||
|
<a [href]="'https://twitter.com/' + sponsor.handle" target="_blank">
|
||||||
|
<div class="profile_photo d-inline-block" [ngStyle]="{'background-image': 'url(' + sponsor.imageUrl + ')'}" [title]="sponsor.handle"></div>
|
||||||
|
</a>
|
||||||
|
</ng-template>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary" (click)="donationStatus = 2" [hidden]="donationStatus !== 1">Become a sponsor</button>
|
<button type="button" class="btn btn-primary" (click)="donationStatus = 2" [hidden]="donationStatus !== 1">Become a sponsor ❤️</button>
|
||||||
<p *ngIf="donationStatus === 2 && !sponsorsEnabled">
|
<p *ngIf="donationStatus === 2 && !sponsorsEnabled">
|
||||||
Navigate to <a href="https://mempool.space/about" target="_blank">https://mempool.space/about</a> to sponsor
|
Navigate to <a href="https://mempool.space/about" target="_blank">https://mempool.space/about</a> to sponsor
|
||||||
</p>
|
</p>
|
||||||
@ -94,7 +98,9 @@
|
|||||||
|
|
||||||
<div *ngIf="donationStatus === 3" class="text-center">
|
<div *ngIf="donationStatus === 3" class="text-center">
|
||||||
<div class="qr-wrapper mt-2 mb-2">
|
<div class="qr-wrapper mt-2 mb-2">
|
||||||
|
<a [href]="bitcoinUrl" target="_blank">
|
||||||
<app-qrcode [data]="'bitcoin:' + donationObj.address + '?amount=' + donationObj.amount"></app-qrcode>
|
<app-qrcode [data]="'bitcoin:' + donationObj.address + '?amount=' + donationObj.amount"></app-qrcode>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<p style="font-size: 10px;">{{ donationObj.address }}</p>
|
<p style="font-size: 10px;">{{ donationObj.address }}</p>
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
height: 80px;
|
height: 80px;
|
||||||
background-size: 100%, 100%;
|
background-size: 100%, 100%;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
cursor: pointer;
|
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import { Observable } from 'rxjs';
|
|||||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||||
import { ApiService } from 'src/app/services/api.service';
|
import { ApiService } from 'src/app/services/api.service';
|
||||||
import { env } from '../../app.constants';
|
import { env } from '../../app.constants';
|
||||||
|
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-about',
|
selector: 'app-about',
|
||||||
@ -20,6 +21,7 @@ export class AboutComponent implements OnInit {
|
|||||||
donationObj: any;
|
donationObj: any;
|
||||||
sponsorsEnabled = env.SPONSORS_ENABLED;
|
sponsorsEnabled = env.SPONSORS_ENABLED;
|
||||||
sponsors = null;
|
sponsors = null;
|
||||||
|
bitcoinUrl: SafeUrl;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private websocketService: WebsocketService,
|
private websocketService: WebsocketService,
|
||||||
@ -27,6 +29,7 @@ export class AboutComponent implements OnInit {
|
|||||||
private stateService: StateService,
|
private stateService: StateService,
|
||||||
private formBuilder: FormBuilder,
|
private formBuilder: FormBuilder,
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
|
private sanitizer: DomSanitizer,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@ -59,11 +62,8 @@ export class AboutComponent implements OnInit {
|
|||||||
.subscribe((response) => {
|
.subscribe((response) => {
|
||||||
this.websocketService.trackDonation(response.id);
|
this.websocketService.trackDonation(response.id);
|
||||||
this.donationObj = response;
|
this.donationObj = response;
|
||||||
|
this.bitcoinUrl = this.sanitizer.bypassSecurityTrustUrl('bitcoin:' + this.donationObj.address + '?amount=' + this.donationObj.amount);
|
||||||
this.donationStatus = 3;
|
this.donationStatus = 3;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
openTwitterProfile(handle: string) {
|
|
||||||
window.open('https://twitter.com/' + handle, '_blank');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<li *ngIf="network.val === 'liquid'" class="nav-item" routerLinkActive="active">
|
<li *ngIf="network.val === 'liquid'" class="nav-item" routerLinkActive="active">
|
||||||
<a class="nav-link" [routerLink]="['/liquid/assets']" (click)="collapse()"><fa-icon [icon]="['fas', 'database']" [fixedWidth]="true" title="Assets"></fa-icon></a>
|
<a class="nav-link" [routerLink]="['/liquid/assets']" (click)="collapse()"><fa-icon [icon]="['fas', 'database']" [fixedWidth]="true" title="Assets"></fa-icon></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item mr-2" routerLinkActive="active">
|
<li [hidden]="isMobile" class="nav-item mr-2" routerLinkActive="active">
|
||||||
<a class="nav-link" [routerLink]="['/api' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cogs']" [fixedWidth]="true" title="API"></fa-icon></a>
|
<a class="nav-link" [routerLink]="['/api' | relativeUrl]" (click)="collapse()"><fa-icon [icon]="['fas', 'cogs']" [fixedWidth]="true" title="API"></fa-icon></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item" routerLinkActive="active">
|
<li class="nav-item" routerLinkActive="active">
|
||||||
|
@ -13,6 +13,7 @@ export class MasterPageComponent implements OnInit {
|
|||||||
network$: Observable<string>;
|
network$: Observable<string>;
|
||||||
connectionState$: Observable<number>;
|
connectionState$: Observable<number>;
|
||||||
navCollapsed = false;
|
navCollapsed = false;
|
||||||
|
isMobile = window.innerWidth <= 767.98;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private stateService: StateService,
|
private stateService: StateService,
|
||||||
|
BIN
frontend/src/resources/mempool-logo-bigger.png
Normal file
BIN
frontend/src/resources/mempool-logo-bigger.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Loading…
x
Reference in New Issue
Block a user