diff --git a/app/Http/Controllers/FundingController.php b/app/Http/Controllers/FundingController.php index c0638cbe915befa7bf54dbd6686409f650b76e5b..19d27d32a15151d8faf33df2fdf429eb10b14e86 100644 --- a/app/Http/Controllers/FundingController.php +++ b/app/Http/Controllers/FundingController.php @@ -9,12 +9,21 @@ use Illuminate\Http\Request; class FundingController extends Controller { /** - * Generates the interstitial + * Shows all projects * - * @param $invoice - * @param null $currency - * @param bool $moneroOnly - * @param bool $shopifySite + * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory + */ + public function index() + { + $projects = Project::all(); + return view('projects.index') + ->with('projects', $projects); + } + + /** + * Shows the project based on the payment id + * + * @param $paymentId * * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory */ @@ -27,7 +36,7 @@ class FundingController extends Controller $contributions = $project->deposits->count(); $amountReceived = $project->deposits->sum('amount'); $percentage = round($amountReceived / $project->target_amount * 100); - return view('ffs') + return view('projects.show') ->with('project', $project) ->with('contributions', $contributions) ->with('percentage', $percentage) diff --git a/app/Project.php b/app/Project.php index c0cd47afcfddefb805948af218e5f8fbe6426657..5f213cd575a440be3198c06cb07b3af7fd9676d1 100644 --- a/app/Project.php +++ b/app/Project.php @@ -13,4 +13,8 @@ class Project extends Model { return $this->hasMany(Deposit::class, 'payment_id', 'payment_id'); } + + public function getAmountReceivedAttribute() { + return $this->deposits->sum('amount'); + } } diff --git a/database/migrations/2018_09_10_211659_create_deposits_table.php b/database/migrations/2018_09_10_211659_create_deposits_table.php index 88ddb8cc092fbbb01ff595a509c276104266bf69..ca57e005770da7f58f2471a653935a492517be09 100644 --- a/database/migrations/2018_09_10_211659_create_deposits_table.php +++ b/database/migrations/2018_09_10_211659_create_deposits_table.php @@ -17,7 +17,7 @@ class CreateDepositsTable extends Migration $table->increments('id'); $table->string('payment_id'); $table->string('amount'); - $table->unsignedInteger('time_received'); + $table->dateTime('time_received'); $table->string('tx_id'); $table->unsignedInteger('block_received'); $table->timestamps(); diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index 91cb6d1c2dede4151cd947c27d31f2faa7ab5a8b..5da962294f368d9d3d72fb7063ff93c471503512 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -11,6 +11,6 @@ class DatabaseSeeder extends Seeder */ public function run() { - // $this->call(UsersTableSeeder::class); + $this->call(ProjectsTableSeeder::class); } } diff --git a/resources/views/projects/index.blade.php b/resources/views/projects/index.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..95e3433c0945d8ee9ce5d65c8ec6f87e9586f121 --- /dev/null +++ b/resources/views/projects/index.blade.php @@ -0,0 +1,20 @@ +<table> + <thead class="flip-content"> + <tr> + <th>Payment ID</th> + <th>Status</th> + <th>Funding Received</th> + <th>Required</th> + </tr> + </thead> + <tbody> +@foreach ($projects as $project) + <tr> + <td><a href='{!! url('/projects/'.$project->payment_id); !!}'>{{ $project->payment_id }}</a></td> + <td>{{$project->status}}</td> + <td>{{$project->amountReceived}} XMR</td> + <td>{{$project->target_amount}} XMR</td> + </tr> +@endforeach + </tbody> +</table> \ No newline at end of file diff --git a/resources/views/ffs.blade.php b/resources/views/projects/show.blade.php similarity index 100% rename from resources/views/ffs.blade.php rename to resources/views/projects/show.blade.php diff --git a/routes/web.php b/routes/web.php index 947964983ffcc5e9287117777ffa773c81f4886b..54b2e41602a179dd5c7ce00dcd841b22211e7a86 100644 --- a/routes/web.php +++ b/routes/web.php @@ -14,5 +14,5 @@ Route::get('/', function () { return view('welcome'); }); - -Route::get('project/{paymentId}', ['as' => 'ffs', 'uses' => FundingController::class.'@show']); +Route::get('projects', ['as' => 'ffs', 'uses' => FundingController::class.'@index']); +Route::get('projects/{paymentId}', ['as' => 'ffs', 'uses' => FundingController::class.'@show']);