use App\Field\Tone;
use App\Http\Controllers\Admin\Operations\Song\ImportOperation;
use App\Jobs\DownloadAudioTracks;
+use App\Jobs\OptimizeMP3;
use App\SubForm\AudioTrack;
use App\SubForm\SongPortion;
use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple;
parent::setFields();
// $this->addField('slug', 'Slug', 'Slug', ['column' => true]);
- $this->addField('title', 'Text', __('Titre de la chanson'), ['column' => true]);
- $this->addField('artist', 'Text', __('Artiste'), ['column' => true]);
+ $this->addField('title', 'Text', __('Titre de la chanson'), ['column' => true, 'tab' => __('Paramètres')]);
+ $this->addField('artist', 'Text', __('Artiste'), ['column' => true, 'tab' => __('Paramètres')]);
$this->addField([
'name' => 'owner',
'label' => __('Ajouté par'),
'attribute' => 'companyWithName',
'default' => Auth::id(),
'non_default_tracking' => false,
+ 'tab' => __('Paramètres')
]);
- $this->addField('key', Tone::class, __('Key'), ['column' => true]);
- $this->addField('mode', Mode::class, __('Mode'), ['column' => true]);
- $this->addField('chorale', Checkbox::class, __('Chorale'), ['default' => false, 'database_default' => false]);
- $this->addField('collections', \App\Field\CollectionList::class, 'Collections');
- $this->addField('tempo', Tempo::class, __('Suggested tempo'), ['column' => true, 'default' => 80]);
- $this->addField('partition', Files::class, __('Partition'), ['acceptedFiles' => 'application/pdf', 'when' => ['chorale' => 1]]);
- $this->addField('lyrics_doc', Files::class, __('Paroles'), ['acceptedFiles' => 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,text/plain,text/html', 'when' => ['chorale' => 1]]);
- $this->addField('audio', BunchOfFieldsMultiple::class, __('Audio tracks'), ['bunch' => AudioTrack::class, 'new_label' => 'New audio track']);
- $this->addField('lyrics', BunchOfFieldsMultiple::class, __('Song Parts'), ['bunch' => SongPortion::class, 'new_label' => 'New song part', 'when' => ['chorale' => 0]]);
- $this->addField('credits', 'Textarea', __('Credits'));
+
+ $this->addField('collections', \App\Field\CollectionList::class, 'Collections', ['tab' => __('Paramètres')]);
+
+ $this->addField('chorale', Checkbox::class, __('Chorale'), ['default' => false, 'database_default' => false, 'tab' => __('Paramètres')]);
+
+ $this->addField('key', Tone::class, __('Key'), ['column' => true, 'tab' => __('Paroles et accords')]);
+ $this->addField('mode', Mode::class, __('Mode'), ['column' => true, 'tab' => __('Paroles et accords')]);
+ $this->addField('tempo', Tempo::class, __('Suggested tempo'), ['column' => true, 'default' => 80, 'tab' => __('Paroles et accords')]);
+ $this->addField('partition', Files::class, __('Partition'), ['acceptedFiles' => 'application/pdf', 'when' => ['chorale' => 1], 'tab' => __('Paroles et accords')]);
+ $this->addField('lyrics', BunchOfFieldsMultiple::class, __('Song Parts'), ['bunch' => SongPortion::class, 'add_label' => 'Nouvelle partie', 'when' => ['chorale' => 0], 'tab' => __('Paroles et accords')]);
+ $this->addField('lyrics_doc', Files::class, __('Paroles'), ['acceptedFiles' => 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,text/plain,text/html', 'when' => ['chorale' => 1], 'tab' => __('Paroles et accords')]);
+ $this->addField('audio', BunchOfFieldsMultiple::class, __('Audio tracks'), ['bunch' => AudioTrack::class, 'add_label' => 'Ajouter un audio', 'tab' => __('Audios')]);
+ $this->addField('credits', 'Textarea', __('Credits'), ['tab' => __('Autres informations')]);
+
}
public function preSave()
public function postSave()
{
DownloadAudioTracks::dispatch();
+ OptimizeMP3::dispatch();
parent::postSave();
}
if (!$url) {
continue;
}
- $res[$i] = ['i' => $i, 'name' => $audio['name'], 'url' => $url, 'path' => $path];
+
+ $opt_path = str_replace('.mp3', '.opt.mp3', $path);
+
+ $res[$i] = ['i' => $i, 'name' => $audio['name'], 'url' => $url, 'path' => $path, 'opturl' => file_exists($opt_path) ? str_replace('.mp3', '.opt.mp3', $url) : $url];
if (isset($audio['tone'])) {
$res[$i]['tone'] = $audio['tone'];
}