--- /dev/null
+<?php
+
+namespace App\Field;
+
+use App\Models\Collection;
+use Cubist\Backpack\Magic\Fields\SelectFromArrayMultiple;
+
+class CollectionList extends SelectFromArrayMultiple
+{
+ public function getOptions()
+ {
+ $res = [];
+ $lists = \App\Models\CollectionList::where('created_ok','1')->get();
+ foreach (Collection::where('created_ok','1')->get() as $item) {
+ $res[$item->id] = $item->name . ' - ' . __('Liste principale');
+ foreach ($lists as $list) {
+ if ($list->collection == $item->id) {
+ $res[$item->id . '_' . $list->id] = $item->name . ' - ' . $list->name;
+ }
+ }
+ }
+ return $res;
+ }
+}
use Cubist\Backpack\Magic\Fields\Color;
use Cubist\Backpack\Magic\Fields\Images;
use Cubist\Backpack\Magic\Fields\Slug;
+use Cubist\Backpack\Magic\Fields\Table;
use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
$this->addField('slug', Slug::class, 'Slug', ['column' => true]);
$this->addField('icon', Images::class, 'Icône');
$this->addField('theme_color', Color::class, 'Couleur d\'accentuation');
- $this->addField('splashscreen_color', Color::class, 'Couleur du font du splashscreen');
+ $this->addField('splashscreen_color', Color::class, 'Couleur de fond du splashscreen');
}
public function registerMediaConversions(Media $media = null): void
--- /dev/null
+<?php
+
+namespace App\Models;
+
+use Cubist\Backpack\Magic\Fields\Checkbox;
+use Cubist\Backpack\Magic\Fields\Integer;
+use Cubist\Backpack\Magic\Fields\SelectFromModel;
+use Cubist\Backpack\Magic\Fields\Text;
+use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
+
+class CollectionList extends CubistMagicAbstractModel
+{
+ protected $table = 'song_collection_list';
+ protected $_options = ['name' => 'collection_list',
+ 'singular' => 'list',
+ 'plural' => 'lists'];
+
+ public function setFields()
+ {
+ parent::setFields();
+ $this->addField('name', Text::class, __('Nom'), ['column' => true]);
+ $this->addField('collection', SelectFromModel::class, __('Collection'), ['column' => true, 'optionsmodel' => Collection::class]);
+ }
+}
$this->addField('artist', 'Text', 'Artist', ['column' => true]);
$this->addField('key', Tone::class, 'Key', ['column' => true]);
$this->addField('mode', Mode::class, 'Mode', ['column' => true]);
- $this->addField('collections', SelectFromModel::class, 'Collections', ['optionsmodel' => Collection::class, 'allows_multiple' => true]);
+ $this->addField('collections', \App\Field\CollectionList::class, 'Collections');
$this->addField('tempo', Tempo::class, 'Suggested tempo', ['column' => true, 'default' => 80]);
$this->addField('lyrics', BunchOfFieldsMultiple::class, 'Song Parts', ['bunch' => SongPortion::class, 'new_label' => 'New song part']);
$this->addField('audio', BunchOfFieldsMultiple::class, 'Audio tracks', ['bunch' => AudioTrack::class, 'new_label' => 'New audio track']);
$c = str_replace('𝄎', '%', $c);
-
$lines = explode("\n", $c);
$res = [];
foreach ($lines as $line) {
$url = '/storage/' . $f;
} else {
$url = $this->getFirstMediaUrl($audio['file']);
- $path=$this->getFirstMediaPath($audio['file']);
+ $path = $this->getFirstMediaPath($audio['file']);
}
if (!$url) {
continue;
}
- $res[$i] = ['i' => $i, 'name' => $audio['name'], 'url' => $url,'path'=>$path];
- if(isset($audio['tone'])){
- $res[$i]['tone']=$audio['tone'];
+ $res[$i] = ['i' => $i, 'name' => $audio['name'], 'url' => $url, 'path' => $path];
+ if (isset($audio['tone'])) {
+ $res[$i]['tone'] = $audio['tone'];
}
$i++;
}
class='nav-icon la la-music'></i><span>Chords</span></a></li>
<li class='nav-item'><a class='nav-link' href='{{ backpack_url('collection') }}'><i
class='nav-icon la la-music'></i><span>Collections</span></a></li>
+ <li class='nav-item'><a class='nav-link' href='{{ backpack_url('collection_list') }}'><i
+ class='nav-icon la la-music'></i><span>Listes</span></a></li>
@endcan
</ul>
</li>