mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
remove orange pill modal
This commit is contained in:
76
MEETUP.md
Normal file
76
MEETUP.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Ben (HolgerHatGarKeineNode)
|
||||
|
||||
### https://portal.einundzwanzig.space
|
||||

|
||||
## Fragen über Fragen
|
||||
- [1. Was ist Bitcoin?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section0)
|
||||
- [2. Welches Problem löst Bitcoin?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section1)
|
||||
- [3. Welche Kritik & Gefahren gibt es?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section2)
|
||||
- [4. Sollte ich Bitcoins kaufen?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section3)
|
||||
- [5. Wo und wie kann ich Bitcoins kaufen?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section4)
|
||||
- [6. Welche anderen Kryptowährungen gibt es?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section5)
|
||||
- [7. Sollte ich auch andere Kryptowährungen kaufen?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section6)
|
||||
- [8. Wie bewahre ich Bitcoins sicher auf?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section7)
|
||||
- [9. Muss ich Bitcoins versteuern?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section8)
|
||||
- [10. Was sollte ich sonst noch wissen?](https://www.blocktrainer.de/bitcoin-einstieg-leicht-gemacht/#section9)
|
||||
|
||||
### Bitcoin
|
||||

|
||||
- [mempool - Bitcoin Explorer](https://mempool.space/)
|
||||
- [Bitcoin Transaction Visualizer - TxStreet.com](https://txstreet.com/v/btc)
|
||||
- [Bitfeed](https://bits.monospace.live/)
|
||||
|
||||
### Wallets
|
||||
- Hardware-Wallets
|
||||
- https://shiftcrypto.ch/de/bitbox02/
|
||||
- Software-Wallets
|
||||
- https://sparrowwallet.com/
|
||||
|
||||
### Nostr (Notes and Other Stuff Transmitted by Relays)
|
||||
- Get started
|
||||
- https://nostr-resources.com/ (englisch)
|
||||
- https://nostr-info.de/ (deutsch)
|
||||
- Apps
|
||||
- https://iris.to/HolgerHatGarKeineNode@nip05.easify.de
|
||||
- Relays
|
||||
- https://nostr.easify.de
|
||||
|
||||
### Bitcoin Nodes
|
||||
- RaspiBlitz
|
||||
- https://shop.fulmo.org/
|
||||
- Dojo
|
||||
- https://ronindojo.io/
|
||||
|
||||
### Lightning
|
||||
- Node
|
||||
- https://umbrel.com/
|
||||
- getAlby
|
||||
- https://getalby.com/
|
||||
|
||||
# Bitcoin: Ein elektronisches Peer-to-Peer-Cash-System
|
||||
|
||||
> Ein reine Peer-to-Peer-Version elektronischen Cashs würde es ermöglichen,
|
||||
Onlinezahlungen ohne Rückgriff auf ein Finanzinstitut direkt von einer Partei zur an-
|
||||
deren zu senden.
|
||||
|
||||
> Digitale Signaturen stellen einen Teil der Lösung bereit, doch die
|
||||
wichtigsten Vorteile gehen verloren, wenn dennoch eine vertrauenswürdige dritte
|
||||
Partei vonnöten ist, um Doppelausgaben zu verhindern.
|
||||
|
||||
> Wir schlagen eine Lösung des Doppelausgabenproblems durch die Verwendung eines Peer-to-Peer-Netzwerks vor.
|
||||
Das Netzwerk zeitstempelt Transaktionen, indem es sie in eine fortlaufende Kette aus
|
||||
hashwertbasierten Arbeitsnachweisen hasht, wodurch ein Verlauf geschaffen wird,
|
||||
der nicht geändert werden kann, ohne den Arbeitsnachweis erneut zu erbringen.
|
||||
|
||||
> Die längste Kette stellt nicht nur den Beweis der Sequenz aller bezeugten Ereignisse dar,
|
||||
sondern zudem den Nachweis, dass sie vom größten Pool an CPU-Leistung stammt.
|
||||
|
||||
> Solange der Großteil der CPU-Leistung von Nodes stammt, die nicht bei einem Angriff
|
||||
auf das Netzwerk kooperieren, werden sie die längste Kette erzeugen und die Angrei-
|
||||
fer abschütteln.
|
||||
|
||||
> Das Netzwerk selbst benötigt eine minimale Struktur. Nachrichten
|
||||
werden auf der Grundlage bestmöglichen Bemühens übermittelt und Nodes können
|
||||
das Netzwerk beliebig verlassen oder ihm beitreten, wobei sie die längste Arbeits-
|
||||
nachweiskette als Beweis dafür akzeptieren, was während ihrer Abwesenheit pas-
|
||||
sierte.
|
||||
@@ -13,20 +13,9 @@ use WireUi\Traits\Actions;
|
||||
|
||||
class BookCaseTable extends DataTableComponent
|
||||
{
|
||||
use WithFileUploads;
|
||||
use Actions;
|
||||
|
||||
public string $country;
|
||||
|
||||
public $photo;
|
||||
|
||||
public bool $viewingModal = false;
|
||||
public $currentModal;
|
||||
public array $orangepill = [
|
||||
'amount' => 1,
|
||||
'date' => null,
|
||||
'comment' => '',
|
||||
];
|
||||
public string $tableName = 'bookcases';
|
||||
|
||||
public function configure(): void
|
||||
@@ -133,50 +122,4 @@ class BookCaseTable extends DataTableComponent
|
||||
->orderByDesc('orange_pills_count')
|
||||
->orderBy('book_cases.id');
|
||||
}
|
||||
|
||||
public function viewHistoryModal($modelId): void
|
||||
{
|
||||
$this->viewingModal = true;
|
||||
$this->currentModal = BookCase::findOrFail($modelId);
|
||||
}
|
||||
|
||||
public function submit(): void
|
||||
{
|
||||
$this->validate([
|
||||
'orangepill.amount' => 'required|numeric',
|
||||
'orangepill.date' => 'required|date',
|
||||
'photo' => 'image|max:8192', // 8MB Max
|
||||
]);
|
||||
$orangePill = OrangePill::create([
|
||||
'user_id' => auth()->id(),
|
||||
'book_case_id' => $this->currentModal->id,
|
||||
'amount' => $this->orangepill['amount'],
|
||||
'date' => $this->orangepill['date'],
|
||||
]);
|
||||
$orangePill
|
||||
->addMedia($this->photo)
|
||||
->preservingOriginal()
|
||||
->usingFileName(md5($this->photo->getClientOriginalName()).'.'.$this->photo->getClientOriginalExtension())
|
||||
->toMediaCollection('images');
|
||||
$orangePill->load(['media']);
|
||||
$this->currentModal
|
||||
->addMedia($this->photo)
|
||||
->usingFileName(md5($this->photo->getClientOriginalName()).'.'.$this->photo->getClientOriginalExtension())
|
||||
->toMediaCollection('images');
|
||||
if ($this->orangepill['comment']) {
|
||||
$this->currentModal->comment($this->orangepill['comment'], null);
|
||||
}
|
||||
$this->resetModal();
|
||||
$this->emit('refreshDatatable');
|
||||
}
|
||||
|
||||
public function resetModal(): void
|
||||
{
|
||||
$this->reset('viewingModal', 'currentModal');
|
||||
}
|
||||
|
||||
public function customView(): string
|
||||
{
|
||||
return 'modals.book_cases.orange_pill';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
<x-jet-dialog-modal wire:model="viewingModal" maxWidth="screen" bg="bg-21gray">
|
||||
<x-slot name="title">
|
||||
<div class="text-gray-200">
|
||||
{{ __('Orange Pill Book Case') }}
|
||||
</div>
|
||||
</x-slot>
|
||||
|
||||
<x-slot name="content">
|
||||
<div class="space-y-4 mt-16 flex flex-col justify-center min-h-[600px]">
|
||||
|
||||
<div class="my-4">
|
||||
<div class="border-b border-gray-200 pb-5">
|
||||
<h3 class="text-lg font-medium leading-6 text-gray-200">{{ __('So far here were') }}</h3>
|
||||
</div>
|
||||
<ul role="list" class="divide-y divide-gray-200">
|
||||
@foreach($currentModal?->orangePills ?? [] as $orangePill)
|
||||
<li class="flex py-4">
|
||||
<img class="h-10 w-10 rounded-full" src="{{ $orangePill->user->profile_photo_url }}" alt="">
|
||||
<div class="ml-3">
|
||||
<p class="text-sm text-gray-200">
|
||||
{{ __('On :asDateTime :name has added :amount Bitcoin books.', ['asDateTime' => $orangePill->date->asDateTime(), 'name' => $orangePill->user->name, 'amount' => $orangePill->amount]) }}
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-4">
|
||||
<form wire:submit.prevent="save">
|
||||
<label class="my-2 text-gray-200 text-xl">{{ __('Photo') }}</label>
|
||||
<div class="text-sm text-gray-500">
|
||||
<input type="file" wire:model="photo">
|
||||
@error('photo') <span class="text-red-500">{{ $message }}</span> @enderror
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-span-6 sm:col-span-4">
|
||||
<x-input
|
||||
min="1"
|
||||
type="number"
|
||||
wire:model.debounce="orangepill.amount"
|
||||
label="{{ __('Number of books') }}"
|
||||
placeholder="{{ __('Number of books') }}"
|
||||
corner-hint="{{ __('How many bitcoin books have you put in?') }}"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-span-6 sm:col-span-4">
|
||||
<x-datetime-picker
|
||||
label="{{ __('Date') }}"
|
||||
placeholder="{{ __('Date') }}"
|
||||
wire:model.defer="orangepill.date"
|
||||
timezone="UTC"
|
||||
user-timezone="{{ config('app.user-timezone') }}"
|
||||
corner-hint="{{ __('When did you put bitcoin books in?') }}"
|
||||
without-time
|
||||
display-format="DD.MM.YYYY"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-span-6 sm:col-span-4">
|
||||
<x-textarea wire:model.defer="orangepill.comment" label="{{ __('Comment') }}" placeholder="{{ __('Comment') }}"
|
||||
corner-hint="{{ __('For example, what books you put in.') }}"/>
|
||||
</div>
|
||||
</div>
|
||||
</x-slot>
|
||||
|
||||
<x-slot name="footer">
|
||||
<div class="space-x-4">
|
||||
<x-jet-secondary-button wire:click="resetModal" wire:loading.attr="disabled">
|
||||
@lang('Close')
|
||||
</x-jet-secondary-button>
|
||||
<x-jet-secondary-button wire:click="submit" wire:loading.attr="disabled">
|
||||
💊 <span class="text-amber-500">@lang('Orange Pill Now')</span>
|
||||
</x-jet-secondary-button>
|
||||
</div>
|
||||
</x-slot>
|
||||
</x-jet-dialog-modal>
|
||||
Reference in New Issue
Block a user