diff --git a/src/web/presentation/music/add/album.php b/src/web/presentation/music/add/album.php index ea0a6d7493676d22a57d70b6d777e6d7a806868a..0567fda3c39474a7ef670a6f82f00e1a88972a1a 100644 --- a/src/web/presentation/music/add/album.php +++ b/src/web/presentation/music/add/album.php @@ -5,8 +5,6 @@ require_once 'auth/authorizer.php'; require_once 'music/album.php'; require_once 'util/album-util.php'; -$errMsg = ''; - $accountId = authorizeAdmin($_COOKIE['token']); if (!$accountId) { header('Location: /404', true, 303); @@ -18,16 +16,14 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { } else if ($_SERVER["REQUEST_METHOD"] == "POST") { if (!isset($_POST['title']) || !isset($_POST['year']) || !file_exists($_FILES['file']['tmp_name']) || !is_uploaded_file($_FILES['file']['tmp_name'])) { - $errMsg = 'Please fill all the fields.'; - require 'presentation/music/add/album.view.php'; + header('Location: /album/add?err=1', true, 303); exit(); } $year = $_POST['year']; $title = $_POST['title']; if (!isAlbumDataValid(albumName: $title, year: $year)) { - $errMsg = 'Invalid data.'; - require 'presentation/music/add/album.view.php'; + header('Location: /album/add?err=2', true, 303); exit(); } @@ -35,11 +31,10 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { if ($response == 200) { header('Location: /album/add', true, 303); } else { + $redirect = '500'; if ($response == 403) { - $errMsg = 'You already have an album cover with the same file name.'; - require 'presentation/music/add/album.view.php'; - exit(); + $redirect = 'album/add?err=3'; } - header('Location: /500', true, 303); + header('Location: /'.$redirect, true, 303); } } \ No newline at end of file diff --git a/src/web/presentation/music/add/album.view.php b/src/web/presentation/music/add/album.view.php index c0b5afd3b048309653e740c5da6446be6810ced7..c3e77a09f0c29f2684651424bdbcde8011bcdf06 100644 --- a/src/web/presentation/music/add/album.view.php +++ b/src/web/presentation/music/add/album.view.php @@ -23,7 +23,22 @@ </div> <div id="err-msg"> <?php - echo $errMsg; + if (isset($_GET['err'])) { + $errC = $_GET['err']; + switch ($errC) { + case 1: + echo 'Please fill all the fields.'; + break; + case 2: + echo 'Invalid data.'; + break; + case 3: + echo 'You already have an album cover with the same file name.'; + break; + default: + break; + } + } ?> </div> <div class="fields" id="form-d"> diff --git a/src/web/presentation/music/add/music.php b/src/web/presentation/music/add/music.php index 635e40bc3284afbdb9b4b35b70b1315ed95d79cd..bb0542f3e1714b33bb941c75854efbbc55941f23 100644 --- a/src/web/presentation/music/add/music.php +++ b/src/web/presentation/music/add/music.php @@ -6,8 +6,6 @@ require_once 'util/music-util.php'; require_once 'music/music.php'; require_once 'auth/authorizer.php'; -$errMsg = ''; - $accountId = authorizeAdmin($_COOKIE['token']); if (!$accountId) { header('Location: /404', true, 303); @@ -20,8 +18,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { if (!isset($_POST['title']) ||!isset($_POST['album']) || !isset($_POST['genre']) || !isset($_POST['year']) || !file_exists($_FILES['file']['tmp_name']) || !is_uploaded_file($_FILES['file']['tmp_name'])) { - $errMsg = 'Please fill all the fields.'; - require 'presentation/music/add/music.view.php'; + header('Location: /music/add?err=1', true, 303); exit(); } @@ -30,8 +27,7 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { $year = $_POST['year']; $albumId = $_POST['album']; if (!isMusicDataValid(title: $title, genre: $genre, albumId: $albumId, year: $year)) { - $errMsg = 'Invalid data.'; - require 'presentation/music/add/music.view.php'; + header('Location: /music/add?err=2', true, 303); exit(); } @@ -39,16 +35,12 @@ if ($_SERVER["REQUEST_METHOD"] == "GET") { if ($response == 200) { header('Location: /music/add', true, 303); } else { + $redirect = '500'; if ($response == 403) { - $errMsg = 'You already have a music with the same file name.'; - require 'presentation/music/add/music.view.php'; - exit(); - } - if ($response == 450) { - $errMsg = 'Invalid album number.'; - require 'presentation/music/add/music.view.php'; - exit(); + $redirect ='music/add?err=3'; + } else if ($response == 450) { + $redirect ='music/add?err=4'; } - header('Location: /500', true, 303); + header('Location: /'.$redirect, true, 303); } } \ No newline at end of file diff --git a/src/web/presentation/music/add/music.view.php b/src/web/presentation/music/add/music.view.php index 5d0539cb7d4da647e720e32931b1a74aa48647a1..56d1c7dac7939f4d8e2bf000dc1a2051b1e05c2c 100644 --- a/src/web/presentation/music/add/music.view.php +++ b/src/web/presentation/music/add/music.view.php @@ -13,14 +13,35 @@ </head> <body> <div class="wrapper"> - <?php include('presentation/template/sidebar.php') ?> + <?php + require 'presentation/template/sidebar.php' + ?> <div class="main-wrapper"> - <?php include('presentation/template/navbar.php') ?> - + <?php + require 'presentation/template/navbar.php'; + ?> <p id="title">Add Music</p> <div id="err-msg"> <?php - echo $errMsg; + if (isset($_GET['err'])) { + $errC = $_GET['err']; + switch ($errC) { + case 1: + echo 'Please fill all the fields.'; + break; + case 2: + echo 'Invalid data.'; + break; + case 3: + echo 'You already have a music with the same file name.'; + break; + case 4: + echo 'Invalid album number.'; + break; + default: + break; + } + } ?> </div> <div class="fields" id="form-d"> diff --git a/src/web/presentation/music/list/albumList.view.php b/src/web/presentation/music/list/albumList.view.php index fbe23b54f7e0126583a7ca7beb46f51ea377cec6..c1b98e88f497d7b4969fd610336cca0b1734c639 100644 --- a/src/web/presentation/music/list/albumList.view.php +++ b/src/web/presentation/music/list/albumList.view.php @@ -1,3 +1,5 @@ +<?php require_once 'util/album-finder.php'; ?> + <!DOCTYPE html> <html lang="en"> <head> @@ -28,7 +30,7 @@ <?php foreach ($shownAlbums as $row) { ?> <div class="album" id=<?php $row['album_id']?> > - <img src="presentation/music/info/img/defalbum.jpg" alt="Playlist 1"> + <img src="<?php echo getAlbumImageByID($row['album_id']) ?>" alt="Album Cover"> <h3><?php echo $row['name'] ?></h3> <p><?php echo $row['year'] ?></p> <p>ID : <?php echo $row['album_id'] ?></p> diff --git a/src/web/presentation/music/list/js/musicList.js b/src/web/presentation/music/list/js/musicList.js index 252239a757dea5ef057eac0f5830afba8f0bbc44..d8618afd1e70ebe3fa94e98ec48b7fabddcaedda 100644 --- a/src/web/presentation/music/list/js/musicList.js +++ b/src/web/presentation/music/list/js/musicList.js @@ -118,7 +118,6 @@ const updateData = (data) => { <img src="presentation/music/info/img/defalbum.jpg" alt="Playlist 1"> <h3>${music.title}</h3> <p>${music.year}</p> - <p><?php Album : echo execSelect('SELECT name FROM album WHERE album_id == :album_id', ['album_id' => ${parseInt(music.album_id)}])[0] ?></p> <p>ID : ${music.music_id}</p> </div> `; diff --git a/src/web/presentation/music/list/musicList.view.php b/src/web/presentation/music/list/musicList.view.php index 40ac0a9121f33aeba07dddfafbcbcbc981dc31dd..45ef28ca410c7b20782af0a7fc01e0ef56f98bf1 100644 --- a/src/web/presentation/music/list/musicList.view.php +++ b/src/web/presentation/music/list/musicList.view.php @@ -31,7 +31,6 @@ <img src="presentation/music/info/img/defalbum.jpg" alt="Playlist 1"> <h3><?php echo $row['title'] ?></h3> <p><?php echo $row['year'] ?></p> - <p><?php Album : echo execSelect('SELECT name FROM album WHERE album_id == :album_id', ['album_id' => $row['album_id']])[0] ?></p> <p>ID : <?php echo $row['music_id'] ?></p> </div> <?php } ?> diff --git a/src/web/util/album-finder.php b/src/web/util/album-finder.php index ecb65cd31cb321d05f5c8806e4df82695c437add..be1bde048c3a1c60875768bcd99f103606b2cd3e 100644 --- a/src/web/util/album-finder.php +++ b/src/web/util/album-finder.php @@ -42,3 +42,38 @@ function getAlbumImage(): string { return $image; } + +function getAlbumImageByID($ID): string { + $image = '/presentation/music/edit/img/defalbum.jpg'; + + // get album cover filename from db + $q_result = execSelect("SELECT album_cover_filename, owner_account_id FROM album WHERE album_id = :id", ['id' => $ID]); + echo $q_result[0]['album_cover_filename']; + + if (count($q_result) != 0) { + $filename = $q_result[0]['album_cover_filename']; + $accountId = $q_result[0]['owner_account_id']; + + // prepare curl request + $url = 'object-storage:80/object'; + + $data = http_build_query(array( + 'owner' => $accountId, // account id, + 'fileType' => 'album-cover', + 'fileName' => $filename + )); + $getUrl = $url.'?'.$data; + + $curl = curl_init($getUrl); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + $result = curl_exec($curl); + + if (!curl_errno($curl) && curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) { + $contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); + $image = 'data:'.$contentType.';base64,'.base64_encode($result); + } + curl_close($curl); + } + + return $image; +}