use Cubist\Backpack\Magic\Fields\FieldGroupEnd;
use Cubist\Backpack\Magic\Fields\FieldGroupStart;
use Cubist\Backpack\Magic\Fields\FilesOrURL;
+use Cubist\Backpack\Magic\Fields\FormBigSection;
use Cubist\Backpack\Magic\Fields\FormSeparator;
+use Cubist\Backpack\Magic\Fields\FormSuperSection;
use Cubist\Backpack\Magic\Fields\Hidden;
use Cubist\Backpack\Magic\Fields\Integer;
use Cubist\Backpack\Magic\Fields\SelectFromArray;
$this->addOwnerField();
$this->addField('hash', Hidden::class);
- $this->addField('type', SelectFromArray::class, __('Type'), ['can' => 'fluidbook-collection:write', 'column' => true, 'options' => ['export' => __('Export'), 'export_multilang' => __('Export multilingue'), 'scorm_multilang' => __('SCORM multilingue')]]);
+ $this->addField('visits_counter', Integer::class, __('Compteur de visites'), ['can' => 'fluidbook-collection:write', 'read_only' => true, 'default' => 0, 'column' => true, 'column_label' => '<i class="las la-chart-area" title="' . __('Compteur de visites du lien de préview') . '"></i>', 'searchLogic' => false]);
+ $this->addField('section_export', FormBigSection::class, __('Paramètres d\'export'));
+ $this->addField('type', SelectFromArray::class, __('Type'), ['allows_null' => false, 'default' => 'none', 'can' => 'fluidbook-collection:write', 'column' => true, 'options' => ['none' => __('Désactivé'), 'export' => __('Export'), 'export_multilang' => __('Export multilingue'), 'scorm_multilang' => __('SCORM multilingue')]]);
$this->addField('locale_switch', Checkbox::class, __('Permettre le changement de langue'), ['when' => ['type' => ['scorm_multilang', 'export_multilang']], 'default' => true]);
$this->addField('locale_switch_currentpage', Checkbox::class, __('Rediriger vers la page en cours lors du changement de langue'), ['default' => false, 'when' => ['type' => ['scorm_multilang', 'export_multilang'], 'locale_switch' => 1]]);
$this->addField('redirection_algorithm', SelectFromArray::class, __('Algorithme de choix de la version'),
'options' => ['language' => __('La langue de l\'utilisateur est prioritaire sur l\'appareil'), 'device' => __('L\'appareil est prioritaire sur la langue')],
]
);
+
$this->addField('version', FluidbookExportVersion::class, __('Version'), ['when' => ['type' => 'export']]);
$excluded = array_diff(array_keys(FluidbookExportVersion::getVersions()), ['online', 'sharepoint']);
$this->addField('version_multilang', FluidbookExportVersion::class, __('Version'), ['when' => ['type' => 'export_multilang'], 'excluded_options' => $excluded, 'default' => 'online']);
$this->addField('install', ExternalPath::class, 'Installer sur un serveur externe', ['default' => '', 'fake' => true, 'translatable' => false, 'store_in' => 'settings', 'servers_model' => FluidbookExternalInstallServer::class, ['when' => ['type' => ['export', 'export_multilang']]]]);
$this->addField('override_settings', BunchOfFieldsMultiple::class, __('Redéfinir les paramètres lors de l\'export'), ['bunch' => Fluidbook_Setting::class]);
$this->addField('linksAssets', FilesOrURL::class, __('Charger ou remplacer des assets sur tous les fluidbooks de la collection'), ['hint' => __('Cela écrasera les fichiers sur tous les fluidbooks de la collection si ils portent le même nom d\'un asset chargé ici')]);
- $this->addField('visits_counter', Integer::class, 'Compteur de visites', ['can' => 'fluidbook-collection:write', 'read_only' => true, 'default' => 0, 'column' => true, 'column_label' => '<i class="las la-chart-area" title="' . __('Compteur de visites du lien de préview') . '"></i>', 'searchLogic' => false]);
- $this->addField('sep_search', FormSeparator::class);
+ $this->addField('section_search', FormBigSection::class, __('Moteur de recherche'));
$this->addField('search', SelectFromArray::class, __('Indexer les contenus dans un moteur de recherche'), ['options' => ['none' => __('Non'), 'typesense' => __('Serveur typesense')]]);
$this->addField('search_host', Text::class, __('Hôte'), ['when' => ['search' => 'typesense']]);
$this->addField('search_key', Text::class, __('Clé API'), ['when' => ['search' => 'typesense']]);
- $this->addField('sep_pubs', FormSeparator::class);
- $this->addField('group_actions_auditlinks', FieldGroupStart::class, '', []);
- $this->addField('enable_audit', Checkbox::class, __('Activer l’audit des liens'), ['default' => false]);
- $this->addField('download_audit', LinkButton::class, __('Télécharger l\'audit'), [
- 'when' => ["enable_audit" => 1],
+ $this->addField('section_links_audit', FormBigSection::class, __('Audit des liens'));
+ $this->addField('links_audit', Checkbox::class, __('Activer l\'audit des liens'), ['default' => false]);
+ $this->addField('links_audit_download', LinkButton::class, __('Télécharger l\'audit des liens'), [
+ 'when' => ["links_audit" => 1],
'value' => './export_excel',
'translatable' => false,
'wrapperAttributes' => [
'class' => 'form-group col-auto'
]
]);
- $this->addField('update_collection', LinkButton::class, __('Mettre à jour les publications'), [
- 'when' => ["enable_audit" => 1],
+ $this->addField('links_audit_update', LinkButton::class, __('Mettre à jour les liens à partir d\'un excel d\'audit'), [
+ 'when' => ["links_audit" => 1],
'value' => '#',
'translatable' => false,
'wrapperAttributes' => [
'fake' => true,
'wrapper' => ['class' => 'd-none']
]);
- $this->addField('end_group', FieldGroupEnd::class, '', []);
- $this->addField('publications', BunchOfFieldsMultiple::class, __('Publications'), [
+
+ $this->addField('section_tools', FormBigSection::class, __('Outils'));
+ $this->addField('export_settings', LinkButton::class, __('Exporter les paramètres'), ['value' => './download_settings']);
+ /*
+ *
+ <a class='btn btn-primary mr-3'
+ href='download_settings' target="_blank" rel="noopener">{{ __('Exporter les paramètres') }}</a>
+
+ */
+
+ $this->addField('section_publications', FormBigSection::class, __('Publications'));
+ $this->addField('publications', BunchOfFieldsMultiple::class, '', [
'bunch' => CollectionPublication::class,
'edit_label' => '%fluidbook > %dir',
'wrapper' => [
public function refreshIndex()
{
if (!$this->search === 'none') {
- dddd(':/');
return;
}
{
$res = parent::onSaved();
dispatch(new FluidbookCollectionRefreshIndex($this->id));
- if($this->enable_audit){
+ if ($this->enable_audit) {
AuditLinkRegister::dispatch();
}
return $res;
}
-
- public static function updateHemsleyCollection($data) {
- $c = self::where('title','=','Audit Hemsley');
- $collection = $c->get();
- if($collection[0]) {
- $publications = $collection[0]->publications;
- foreach ($data as $fb) {
- // Vérifier si le fluidbook n'existe pas déjà dans la collection
- if (array_filter($publications, function ($n) use ($fb) {
- return $n['fluidbook'] !== $fb;
- })) {
- $publications[] = [
- 'fluidbook' => "$fb",
- 'export' => '',
- 'dir' => ''
- ];
- }
- }
-
- $c->update(['publications' => json_encode($publications)]);
- }
- }
}