diff --git a/airtime_mvc/application/common/FileDataHelper.php b/airtime_mvc/application/common/FileDataHelper.php index 3db19b116..d9e8b638a 100644 --- a/airtime_mvc/application/common/FileDataHelper.php +++ b/airtime_mvc/application/common/FileDataHelper.php @@ -235,7 +235,7 @@ class FileDataHelper { * * @return string Path to artwork */ - public static function uploadArtwork($trackid, $data) + public static function setArtwork($trackid, $data) { $file = Application_Model_StoredFile::RecallById($trackid); $md = $file->getMetadata(); @@ -246,37 +246,70 @@ class FileDataHelper { $dbAudioPath = $md["MDATA_KEY_FILEPATH"]; $fullpath = $fp . $dbAudioPath; - $base64 = @$data; - $mime = explode(';', $base64)[0]; + if ($data == "0") { - $audioPath = dirname($fullpath); - $dbPath = dirname($dbAudioPath); - $path_parts = pathinfo($fullpath); - $file = $path_parts['filename']; + $get_img = ""; + self::removeArtwork($trackid, $data); - //Save Data URI - if (file_put_contents($audioPath . "/" . $file, $base64)) { - $get_img = $dbPath . "/" . $file; } else { - Logging::error("Could not save Data URI"); + + $base64 = @$data; + $mime = explode(';', $base64)[0]; + + $audioPath = dirname($fullpath); + $dbPath = dirname($dbAudioPath); + $path_parts = pathinfo($fullpath); + $file = $path_parts['filename']; + + //Save Data URI + if (file_put_contents($audioPath . "/" . $file, $base64)) { + $get_img = $dbPath . "/" . $file; + } else { + Logging::error("Could not save Data URI"); + } + + $rfile = $audioPath . "/" . $file; + + if ($mime == "data:image/png") { + $ext = 'png'; + } elseif ($mime == "data:image/gif") { + $ext = 'gif'; + } elseif ($mime == "data:image/bmp") { + $ext = 'bmp'; + } else { + $ext = 'jpg'; + } + self::resizeGroup($rfile, $ext); + } - - $rfile = $audioPath . "/" . $file; - - if ($mime == "data:image/png") { - $ext = 'png'; - } elseif ($mime == "data:image/gif") { - $ext = 'gif'; - } elseif ($mime == "data:image/bmp") { - $ext = 'bmp'; - } else { - $ext = 'jpg'; - } - self::resizeGroup($rfile, $ext); - return $get_img; } + /** + * + * Deletes just the artwork + */ + public static function removeArtwork($trackid) + { + $file = Application_Model_StoredFile::RecallById($trackid); + $md = $file->getMetadata(); + + $storDir = Application_Model_MusicDir::getStorDir(); + $fp = $storDir->getDirectory(); + + $dbAudioPath = $md["MDATA_KEY_ARTWORK"]; + $fullpath = $fp . $dbAudioPath; + + if (file_exists($fullpath)) { + foreach (glob("$fullpath*", GLOB_NOSORT) as $filename) { + unlink($filename); + } + } else { + throw new Exception("Could not locate file ".$filepath); + } + return ""; + } + /** * Resize artwork group * diff --git a/airtime_mvc/application/controllers/LibraryController.php b/airtime_mvc/application/controllers/LibraryController.php index 8033555df..7b41603f7 100644 --- a/airtime_mvc/application/controllers/LibraryController.php +++ b/airtime_mvc/application/controllers/LibraryController.php @@ -395,17 +395,20 @@ class LibraryController extends Zend_Controller_Action //on edit, if no artwork is set and audiofile has image, automatically add it if ($j["name"] == "artwork") { if ($j["value"] == null || $j["value"] == ''){ - $serialized["artwork"] = FileDataHelper::resetArtwork($file_id); + $serialized["artwork"] = FileDataHelper::resetArtwork($file_id); + } + } elseif ($j["name"] == "set_artwork") { + if ($j["value"] != null || $j["value"] != ''){ + $serialized["artwork"] = FileDataHelper::setArtwork($file_id, $j["value"] ); + } + } elseif ($j["name"] == "remove_artwork") { + if ($j["value"] == 1){ + $remove_artwork = true; + $serialized["artwork"] = FileDataHelper::removeArtwork($file_id); } } else { $serialized[$j["name"]] = $j["value"]; } - - if ($j["name"] == "artwork_uploaded") { - if ($j["value"] != null || $j["value"] != ''){ - $serialized["artwork"] = FileDataHelper::uploadArtwork($file_id, $j["value"] ); - } - } } // Sanitize any wildly incorrect metadata before it goes to be validated. diff --git a/airtime_mvc/application/forms/EditAudioMD.php b/airtime_mvc/application/forms/EditAudioMD.php index 8b7f40754..dda96aa5c 100644 --- a/airtime_mvc/application/forms/EditAudioMD.php +++ b/airtime_mvc/application/forms/EditAudioMD.php @@ -20,6 +20,7 @@ class Application_Form_EditAudioMD extends Zend_Form // Add artwork hidden field $artwork = new Zend_Form_Element_Hidden('artwork'); + $artwork->class = 'input_text artwork_'. $p_id; $artwork->setFilters(array('StringTrim')) ->setValidators(array( new Zend_Validate_StringLength(array('max' => 2048)) @@ -29,13 +30,21 @@ class Application_Form_EditAudioMD extends Zend_Form $file_id->setAttrib('class', 'artwork'); $this->addElement($artwork); - // Add artwork uploaded hidden field - $artwork_uploaded = new Zend_Form_Element_Hidden('artwork_uploaded'); - $artwork_uploaded->class = 'input_text artwork_uploaded_'. $p_id; + // Set artwork hidden field + $set_artwork = new Zend_Form_Element_Hidden('set_artwork'); + $set_artwork->class = 'input_text set_artwork_'. $p_id; $file_id->addDecorator('HtmlTag', array('tag' => 'div', 'style' => 'display:none')); $file_id->removeDecorator('Label'); - $file_id->setAttrib('class', 'artwork_uploaded'); - $this->addElement($artwork_uploaded); + $file_id->setAttrib('class', 'set_artwork'); + $this->addElement($set_artwork); + + // Remove artwork hidden field + $remove_artwork = new Zend_Form_Element_Hidden('remove_artwork'); + $remove_artwork->class = 'input_text remove_artwork_'. $p_id; + $file_id->addDecorator('HtmlTag', array('tag' => 'div', 'style' => 'display:none')); + $file_id->removeDecorator('Label'); + $file_id->setAttrib('class', 'remove_artwork'); + $this->addElement($remove_artwork); // Add title field $track_title = new Zend_Form_Element_Text('track_title'); diff --git a/airtime_mvc/application/views/scripts/library/edit-file-md.phtml b/airtime_mvc/application/views/scripts/library/edit-file-md.phtml index 03e919d66..c216987ae 100644 --- a/airtime_mvc/application/views/scripts/library/edit-file-md.phtml +++ b/airtime_mvc/application/views/scripts/library/edit-file-md.phtml @@ -29,6 +29,9 @@ +