CC-2562 : Allow users to convert linked files into watched directories
This commit is contained in:
parent
0b5e3a54b4
commit
96284a2a44
|
@ -449,11 +449,11 @@ class ApiController extends Zend_Controller_Action
|
||||||
|
|
||||||
if (is_null($file)) {
|
if (is_null($file)) {
|
||||||
$file = StoredFile::Insert($md);
|
$file = StoredFile::Insert($md);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
$this->view->error = "File already exists in Airtime.";
|
$this->view->error = "File already exists in Airtime.";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if ($mode == "modify") {
|
else if ($mode == "modify") {
|
||||||
$filepath = $md['MDATA_KEY_FILEPATH'];
|
$filepath = $md['MDATA_KEY_FILEPATH'];
|
||||||
|
|
|
@ -150,21 +150,29 @@ class MusicDir {
|
||||||
->filterByType('link')
|
->filterByType('link')
|
||||||
->findOne();
|
->findOne();
|
||||||
|
|
||||||
|
//newly added watched directory object
|
||||||
|
$propel_new_watch = CcMusicDirsQuery::create()
|
||||||
|
->filterByDirectory(realpath($p_path)."/")
|
||||||
|
->findOne();
|
||||||
|
|
||||||
|
//any files of the deprecated "link" type.
|
||||||
$link_files = CcFilesQuery::create()
|
$link_files = CcFilesQuery::create()
|
||||||
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
|
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
|
||||||
->filterByDbDirectory($propel_link_dir->getId())
|
->filterByDbDirectory($propel_link_dir->getId())
|
||||||
->find();
|
->find();
|
||||||
|
|
||||||
|
$newly_watched_dir = $propel_new_watch->getDirectory();
|
||||||
|
|
||||||
foreach ($link_files as $link_file) {
|
foreach ($link_files as $link_file) {
|
||||||
$link_filepath = $link_file->getDbFilepath();
|
$link_filepath = $link_file->getDbFilepath();
|
||||||
|
|
||||||
//convert "link" file into a watched file.
|
//convert "link" file into a watched file.
|
||||||
if ((strlen($propel_link_dir->getDirectory()) < $link_filepath) && (substr($link_filepath, 0, strlen($propel_link_dir->getDirectory())) === $propel_link_dir->getDirectory())) {
|
if ((strlen($newly_watched_dir) < strlen($link_filepath)) && (substr($link_filepath, 0, strlen($newly_watched_dir)) === $newly_watched_dir)) {
|
||||||
|
|
||||||
//get the filepath path not including the watched directory.
|
//get the filepath path not including the watched directory.
|
||||||
$sub_link_filepath = substr($link_filepath, strlen($propel_link_dir->getDirectory()));
|
$sub_link_filepath = substr($link_filepath, strlen($newly_watched_dir));
|
||||||
|
|
||||||
$link_file->setDbDirectory($propel_link_dir->getId());
|
$link_file->setDbDirectory($propel_new_watch->getId());
|
||||||
$link_file->setDbFilepath($sub_link_filepath);
|
$link_file->setDbFilepath($sub_link_filepath);
|
||||||
$link_file->save();
|
$link_file->save();
|
||||||
}
|
}
|
||||||
|
@ -253,6 +261,7 @@ class MusicDir {
|
||||||
public static function getWatchedDirFromFilepath($p_filepath)
|
public static function getWatchedDirFromFilepath($p_filepath)
|
||||||
{
|
{
|
||||||
$dirs = CcMusicDirsQuery::create()
|
$dirs = CcMusicDirsQuery::create()
|
||||||
|
->filterByType(array("watched", "stor"))
|
||||||
->find();
|
->find();
|
||||||
|
|
||||||
foreach($dirs as $dir) {
|
foreach($dirs as $dir) {
|
||||||
|
|
|
@ -507,6 +507,7 @@ class StoredFile {
|
||||||
}
|
}
|
||||||
else if (isset($p_filepath)) {
|
else if (isset($p_filepath)) {
|
||||||
$path_info = MusicDir::splitFilePath($p_filepath);
|
$path_info = MusicDir::splitFilePath($p_filepath);
|
||||||
|
|
||||||
if (is_null($path_info)) {
|
if (is_null($path_info)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue