'allows_null' => false,
'default' => 0,
'searchLogic' => false,
+ 'can' => 'fluidbook-collection:admin',
]
);
$this->addOwnerField();
$this->addField('hash', Hidden::class);
- $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('visits_counter', Integer::class, __('Compteur de visites'), ['can' => 'fluidbook-collection:admin', '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'), ['can' => 'fluidbook-collection:admin']);
+ $this->addField('type', SelectFromArray::class, __('Type'), ['can' => 'fluidbook-collection:admin', 'allows_null' => false, 'default' => 'none', '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'), ['can' => 'fluidbook-collection:admin', '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'), ['can' => 'fluidbook-collection:admin', 'default' => false, 'when' => ['type' => ['scorm_multilang', 'export_multilang'], 'locale_switch' => 1]]);
$this->addField('redirection_algorithm', SelectFromArray::class, __('Algorithme de choix de la version'),
[
+ 'can' => 'fluidbook-collection:admin',
'when' => ['type' => ['scorm_multilang', 'export_multilang']],
'default' => 'language', 'databaseDefault' => 'language',
'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']]);
+ $this->addField('version', FluidbookExportVersion::class, __('Version'), ['can' => 'fluidbook-collection:admin', '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('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('version_multilang', FluidbookExportVersion::class, __('Version'), ['can' => 'fluidbook-collection:admin', 'when' => ['type' => 'export_multilang'], 'excluded_options' => $excluded, 'default' => 'online']);
+
+ $this->addField('install', ExternalPath::class, 'Installer sur un serveur externe', ['can' => 'fluidbook-collection:admin', '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'), ['can' => 'fluidbook-collection:admin', 'bunch' => Fluidbook_Setting::class]);
+ $this->addField('linksAssets', FilesOrURL::class, __('Charger ou remplacer des assets sur tous les fluidbooks de la collection'), ['can' => 'fluidbook-collection:admin', '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('section_search', FormBigSection::class, __('Moteur de recherche'), ['can' => 'fluidbook-collection:admin',]);
+ $this->addField('search', SelectFromArray::class, __('Indexer les contenus dans un moteur de recherche'), ['can' => 'fluidbook-collection:admin', 'options' => ['none' => __('Non'), 'typesense' => __('Serveur typesense')]]);
+ $this->addField('search_host', Text::class, __('Hôte'), ['can' => 'fluidbook-collection:admin', 'when' => ['search' => 'typesense']]);
+ $this->addField('search_key', Text::class, __('Clé API'), ['can' => 'fluidbook-collection:admin', 'when' => ['search' => 'typesense']]);
$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'), [
'wrapper' => ['class' => 'd-none']
]);
- $this->addField('section_tools', FormBigSection::class, __('Outils'));
- $this->addField('export_settings', LinkButton::class, __('Exporter les paramètres'), ['value' => './download_settings']);
+ $this->addField('section_tools', FormBigSection::class, __('Outils'), ['can' => 'fluidbook-collection:admin',]);
+ $this->addField('export_settings', LinkButton::class, __('Exporter les paramètres'), ['can' => 'fluidbook-collection:admin', 'value' => './download_settings']);
/*
*
<a class='btn btn-primary mr-3'
}
return $res;
}
+
+ public function allowsDelete()
+ {
+ return $this->_can('admin', backpack_user());
+ }
+
+ public function allowsDownload(): bool
+ {
+ return $this->type && $this->type !== 'none';
+ }
}