PHRAS-3823 : add permalink in report GUI (#4291)

This commit is contained in:
Aina Sitraka
2023-04-06 15:10:00 +03:00
committed by GitHub
parent 2e8a9dcec2
commit bbd6a240e5
21 changed files with 122 additions and 53 deletions

View File

@@ -13,5 +13,5 @@ module.exports = {
setupDir: _root + 'tests/setup/node.js',
karmaConf: _root + 'config/karma.conf.js',
// change this version when you change JS file for lazy loading
assetFileVersion: 84
assetFileVersion: 85
};

View File

@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=84";
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=85";
/******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() {

View File

@@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=84";
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=85";
/******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() {

View File

@@ -91,7 +91,7 @@
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=84";
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=85";
/******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() {

View File

@@ -91,7 +91,7 @@
/******/ if (__webpack_require__.nc) {
/******/ script.setAttribute("nonce", __webpack_require__.nc);
/******/ }
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=84";
/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=85";
/******/ var timeout = setTimeout(onScriptComplete, 120000);
/******/ script.onerror = script.onload = onScriptComplete;
/******/ function onScriptComplete() {

View File

@@ -108,21 +108,19 @@ abstract class AbstractReportCommand extends Command
.'report' . DIRECTORY_SEPARATOR
. date('Ymd');
$suffixFileName = "__" . $this->dmin . "_to_";
$suffixFileName = !empty($this->dmax) ? $suffixFileName . $this->dmax: $suffixFileName . (new \DateTime())->format('Y-m-d');
if ($this->isAppboxConnection) {
$absoluteDirectoryPath .= 'appbox';
} else {
$absoluteDirectoryPath .= 'Sbas' . $this->sbasId;
}
$report->render($absoluteDirectoryPath, $suffixFileName);
$report->render($absoluteDirectoryPath);
$filePath = $absoluteDirectoryPath . DIRECTORY_SEPARATOR . $this->normalizeString($report->getName()).$suffixFileName . '.csv';
$filePath = $absoluteDirectoryPath . DIRECTORY_SEPARATOR . $report->getFileName() . '.csv';
$attachement = new Attachment($filePath);
$suffixFileName = $report->getSuffixFileName($this->dmin, $this->dmax);
$suffixFileName = str_replace("__", ' - ', $suffixFileName);
$reportName = $report->getName() . str_replace("_", ' ', $suffixFileName);
@@ -173,9 +171,4 @@ abstract class AbstractReportCommand extends Command
return false;
}
private function normalizeString($filename)
{
return (new Slugify())->slugify($filename, '-');
}
}

View File

@@ -10,6 +10,7 @@
namespace Alchemy\Phrasea\Controller\Report;
use Alchemy\Phrasea\Controller\Controller;
use Alchemy\Phrasea\Media\Subdef\Subdef;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
@@ -48,6 +49,7 @@ class RootController extends Controller
}
$granted = [];
$availableSubdefName = [];
$acl = $this->getAclForUser();
foreach ($acl->get_granted_base([\ACL::CANREPORT]) as $collection) {
@@ -73,6 +75,17 @@ class RootController extends Controller
'base_id' => $collection->get_base_id(),
'name' => $collection->get_name(),
];
if (!isset($availableSubdefName[$sbas_id])) {
foreach ($collection->get_databox()->get_subdef_structure() as $subdefGroup) {
/** @var \databox_subdef $subdef */
foreach ($subdefGroup as $subdef) {
$availableSubdefName[$sbas_id][] = $subdef->get_name();
}
}
$availableSubdefName[$sbas_id] = array_unique($availableSubdefName[$sbas_id]);
}
}
$conf = $this->getConf();
@@ -81,6 +94,7 @@ class RootController extends Controller
'ajax_dash' => true,
'dashboard' => null,
'granted_bases' => $granted,
'availableSubdefName' => $availableSubdefName,
'home_title' => $conf->get(['registry', 'general', 'title']),
'module' => 'report',
'module_name' => 'Report',

View File

@@ -186,6 +186,7 @@ class ProdReportController extends Controller
);
$report->setFormat(self::$mapFromExtension[$this->extension]['format']);
$report->setPermalink($request->get('permalink'));
set_time_limit(600);
$response = new StreamedResponse();

View File

@@ -106,14 +106,14 @@ abstract class Report
return $this->format;
}
public function render($absoluteDirectoryPath = null, $suffixFileName = null)
public function render($absoluteDirectoryPath = null)
{
switch($this->format) {
//case self::FORMAT_XLS:
case self::FORMAT_CSV:
case self::FORMAT_ODS:
case self::FORMAT_XLSX:
$this->renderAsExcel($absoluteDirectoryPath, $suffixFileName);
$this->renderAsExcel($absoluteDirectoryPath);
break;
default:
// should not happen since format is checked before
@@ -121,9 +121,22 @@ abstract class Report
}
}
private function renderAsExcel($absoluteDirectoryPath = null, $suffixFileName = null)
public function getSuffixFileName($dmin, $dmax)
{
$filename = $this->normalizeString($this->getName()) . $suffixFileName;
$suffixFileName = "__" . $dmin . "_to_";
$suffixFileName = !empty($dmax) ? $suffixFileName . $dmax: $suffixFileName . (new \DateTime())->format('Y-m-d');
return $suffixFileName;
}
public function getFileName()
{
return $this->normalizeString($this->getName()) . $this->getSuffixFileName($this->parms['dmin'], $this->parms['dmax']);
}
private function renderAsExcel($absoluteDirectoryPath = null)
{
$filename = $this->getFileName();
switch($this->format) {
//case self::FORMAT_XLS:
// $excel = new Excel(Excel::FORMAT_XLS);

View File

@@ -96,14 +96,16 @@ class ReportRecords extends Report
foreach($rows as $row) {
if (!empty($this->permalink)) {
try {
$permalinkUrl = '';
$record = $this->databox->get_record($row['record_id']);
$permalinkUrl = $record->get_subdef($this->permalink)->get_permalink()->get_url()->__toString();
// if from GUI, check if user has access to subdef in collection
if (!isset($this->acl) || $this->acl->has_right_on_base($record->getBaseId(), \ACL::CANDWNLDPREVIEW)) {
$permalinkUrl = $record->get_subdef($this->permalink)->get_permalink()->get_url()->__toString();
}
} catch (\Exception $e) {
// the record or subdef is not found
$permalinkUrl = '';
} catch (\Throwable $e) {
// there is no permalink created ???
$permalinkUrl = '';
}
$row['permalink_' . $this->permalink] = $permalinkUrl;
@@ -165,7 +167,7 @@ class ReportRecords extends Report
$this->sqlWhere = "FALSE";
}
$this->name = "Databox";
$this->name = "export databox content";
}
}

View File

@@ -60,7 +60,7 @@ class PhraseanetExtension extends \Twig_Extension
{
return [
// change this version when you change JS file to force the navigation to reload js file
'assetFileVersion' => 84
'assetFileVersion' => 85
];
}

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:45:52Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:32Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
</header>
<body>
<trans-unit id="da39a3ee5e6b4b0d3255bfef95601890afd80709" resname="">
<source/>
<target state="new"/>
<source></source>
<target state="new"></target>
<jms:reference-file line="51">Form/Configuration/EmailFormType.php</jms:reference-file>
<jms:reference-file line="64">Form/Login/PhraseaAuthenticationForm.php</jms:reference-file>
</trans-unit>
@@ -201,7 +201,7 @@
<jms:reference-file line="7">Bridge/Dailymotion/element_informations.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="de0804eb70c10b14d71df74292e45c6daa13d672" resname="%number% documents&lt;br/&gt;selectionnes" approved="yes">
<source>%number% documents&lt;br/&gt;selectionnes</source>
<source><![CDATA[%number% documents<br/>selectionnes]]></source>
<target state="translated"><![CDATA[%number% Dokumente<br/> ausgewählt]]></target>
<jms:reference-file line="264">Controller/Prod/QueryController.php</jms:reference-file>
</trans-unit>
@@ -2540,7 +2540,7 @@
<jms:reference-file line="68">Form/Configuration/ActionsFormType.php</jms:reference-file>
</trans-unit>
<trans-unit id="fa9fd169cd55f0433c6e7a4b5d758f90d0847411" resname="Display &amp; action settings" approved="yes">
<source>Display &amp; action settings</source>
<source><![CDATA[Display & action settings]]></source>
<target state="translated">Anzeige und Handlung-Einstellungen</target>
<jms:reference-file line="152">admin/fields/templates.html.twig</jms:reference-file>
</trans-unit>
@@ -12335,7 +12335,7 @@
<jms:reference-file line="563">Controller/Root/AccountController.php</jms:reference-file>
</trans-unit>
<trans-unit id="bf7028b694aea3fc9ede5014a9f8b5d617b83b6f" resname="phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt; " approved="yes">
<source>phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt;</source>
<source><![CDATA[phraseanet::account: << your account can be deleted via admin interface >>]]></source>
<target state="translated">Ihr Benutzerkonto kann nur durch die Administration Anwendung gelöscht werden.</target>
<jms:reference-file line="289">web/account/account.html.twig</jms:reference-file>
</trans-unit>
@@ -14598,6 +14598,11 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben</target>
<target state="translated">Information über die Benutzer entsprechend %critere%</target>
<jms:reference-file line="415">module/report/nav.php</jms:reference-file>
</trans-unit>
<trans-unit id="54e9e134d28f6fc9c085eb7a8b71212e536174c9" resname="report:: Permalink">
<source>report:: Permalink</source>
<target state="new">report:: Permalink</target>
<jms:reference-file line="95">web/report/report_layout_child.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="d61b0b1a419a5b37db8576e1072307a5503dba79" resname="report:: Phraseanet report" approved="yes">
<source>report:: Phraseanet report</source>
<target state="translated">Phraseanet Report</target>
@@ -15450,7 +15455,7 @@ Vorsicht: die aktuelle Werte werden durch die neue Werte überschrieben</target>
<jms:reference-file line="1327">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="33df70d7fa528a31071e11d1b987b49dc947ce16" resname="thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)" approved="yes">
<source>thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)</source>
<source><![CDATA[thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation)]]></source>
<target state="translated"><![CDATA[Diese Verzweigung löschen?&#10; (die betroffenende Begriffe werden als mögliche Begriffe beim nächsten Indexierung erscheinen)]]></target>
<jms:reference-file line="536">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:04Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:44Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
</header>
<body>
<trans-unit id="da39a3ee5e6b4b0d3255bfef95601890afd80709" resname="">
<source/>
<target state="new"/>
<source></source>
<target state="new"></target>
<jms:reference-file line="51">Form/Configuration/EmailFormType.php</jms:reference-file>
<jms:reference-file line="64">Form/Login/PhraseaAuthenticationForm.php</jms:reference-file>
</trans-unit>
@@ -201,7 +201,7 @@
<jms:reference-file line="7">Bridge/Dailymotion/element_informations.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="de0804eb70c10b14d71df74292e45c6daa13d672" resname="%number% documents&lt;br/&gt;selectionnes" approved="yes">
<source>%number% documents&lt;br/&gt;selectionnes</source>
<source><![CDATA[%number% documents<br/>selectionnes]]></source>
<target state="translated"><![CDATA[%number% documents<br/>selected]]></target>
<jms:reference-file line="264">Controller/Prod/QueryController.php</jms:reference-file>
</trans-unit>
@@ -2543,7 +2543,7 @@
<jms:reference-file line="68">Form/Configuration/ActionsFormType.php</jms:reference-file>
</trans-unit>
<trans-unit id="fa9fd169cd55f0433c6e7a4b5d758f90d0847411" resname="Display &amp; action settings" approved="yes">
<source>Display &amp; action settings</source>
<source><![CDATA[Display & action settings]]></source>
<target state="translated">Display and action settings</target>
<jms:reference-file line="152">admin/fields/templates.html.twig</jms:reference-file>
</trans-unit>
@@ -12338,7 +12338,7 @@
<jms:reference-file line="563">Controller/Root/AccountController.php</jms:reference-file>
</trans-unit>
<trans-unit id="bf7028b694aea3fc9ede5014a9f8b5d617b83b6f" resname="phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt; " approved="yes">
<source>phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt;</source>
<source><![CDATA[phraseanet::account: << your account can be deleted via admin interface >>]]></source>
<target state="translated">Your rights do not allow to perform this action. Your account can only be deleted via the Administration interface.</target>
<jms:reference-file line="289">web/account/account.html.twig</jms:reference-file>
</trans-unit>
@@ -14606,6 +14606,11 @@ It is possible to place several search areas</target>
<target state="translated">Users information corresponding to %critere%</target>
<jms:reference-file line="415">module/report/nav.php</jms:reference-file>
</trans-unit>
<trans-unit id="54e9e134d28f6fc9c085eb7a8b71212e536174c9" resname="report:: Permalink">
<source>report:: Permalink</source>
<target state="new">report:: Permalink</target>
<jms:reference-file line="95">web/report/report_layout_child.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="d61b0b1a419a5b37db8576e1072307a5503dba79" resname="report:: Phraseanet report" approved="yes">
<source>report:: Phraseanet report</source>
<target state="translated">Phraseanet report</target>
@@ -15458,7 +15463,7 @@ It is possible to place several search areas</target>
<jms:reference-file line="1327">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="33df70d7fa528a31071e11d1b987b49dc947ce16" resname="thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)" approved="yes">
<source>thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)</source>
<source><![CDATA[thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation)]]></source>
<target state="translated"><![CDATA[Delete branch : &#10 (concerned terms will be displayed as candidates on future indexation)]]></target>
<jms:reference-file line="536">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:18Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:58Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
</header>
<body>
<trans-unit id="da39a3ee5e6b4b0d3255bfef95601890afd80709" resname="">
<source/>
<target state="new"/>
<source></source>
<target state="new"></target>
<jms:reference-file line="51">Form/Configuration/EmailFormType.php</jms:reference-file>
<jms:reference-file line="64">Form/Login/PhraseaAuthenticationForm.php</jms:reference-file>
</trans-unit>
@@ -201,7 +201,7 @@
<jms:reference-file line="7">Bridge/Dailymotion/element_informations.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="de0804eb70c10b14d71df74292e45c6daa13d672" resname="%number% documents&lt;br/&gt;selectionnes" approved="yes">
<source>%number% documents&lt;br/&gt;selectionnes</source>
<source><![CDATA[%number% documents<br/>selectionnes]]></source>
<target state="translated"><![CDATA[%number% documents<br/>sélectionnés]]></target>
<jms:reference-file line="264">Controller/Prod/QueryController.php</jms:reference-file>
</trans-unit>
@@ -2540,7 +2540,7 @@
<jms:reference-file line="68">Form/Configuration/ActionsFormType.php</jms:reference-file>
</trans-unit>
<trans-unit id="fa9fd169cd55f0433c6e7a4b5d758f90d0847411" resname="Display &amp; action settings" approved="yes">
<source>Display &amp; action settings</source>
<source><![CDATA[Display & action settings]]></source>
<target state="translated">Paramétrage d'affichage et d'action</target>
<jms:reference-file line="152">admin/fields/templates.html.twig</jms:reference-file>
</trans-unit>
@@ -12336,7 +12336,7 @@ Si vous recevez cet e-mail sans l'avoir sollicité, merci de l'ignorer ou de le
<jms:reference-file line="563">Controller/Root/AccountController.php</jms:reference-file>
</trans-unit>
<trans-unit id="bf7028b694aea3fc9ede5014a9f8b5d617b83b6f" resname="phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt; " approved="yes">
<source>phraseanet::account: &lt;&lt; your account can be deleted via admin interface &gt;&gt;</source>
<source><![CDATA[phraseanet::account: << your account can be deleted via admin interface >>]]></source>
<target state="translated">Vos droits ne vous permettent pas de réaliser cette action, votre compte ne peut être supprimé que via l'interface d'Administration.</target>
<jms:reference-file line="289">web/account/account.html.twig</jms:reference-file>
</trans-unit>
@@ -14607,6 +14607,11 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles
<target state="translated">Information sur les utilisateurs correspondant à %critere%</target>
<jms:reference-file line="415">module/report/nav.php</jms:reference-file>
</trans-unit>
<trans-unit id="54e9e134d28f6fc9c085eb7a8b71212e536174c9" resname="report:: Permalink">
<source>report:: Permalink</source>
<target state="new">report:: Permalink</target>
<jms:reference-file line="95">web/report/report_layout_child.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="d61b0b1a419a5b37db8576e1072307a5503dba79" resname="report:: Phraseanet report" approved="yes">
<source>report:: Phraseanet report</source>
<target state="translated">Phraseanet Report</target>
@@ -15459,7 +15464,7 @@ Attention: les valeurs actuellement en place seront écrasées par ces nouvelles
<jms:reference-file line="1327">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="33df70d7fa528a31071e11d1b987b49dc947ce16" resname="thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)" approved="yes">
<source>thesaurus:: Supprimer cette branche ?&amp;#10;(les termes concernes remonteront en candidats a la prochaine indexation)</source>
<source><![CDATA[thesaurus:: Supprimer cette branche ?&#10;(les termes concernes remonteront en candidats a la prochaine indexation)]]></source>
<target state="translated"><![CDATA[Supprimer cette branche ? &#10; (les termes concernés remonteront en candidats à la prochaine indexation)]]></target>
<jms:reference-file line="536">web/thesaurus/thesaurus.html.twig</jms:reference-file>
</trans-unit>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:35Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:55:16Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>
@@ -14604,6 +14604,11 @@
<target state="new">report:: Information sur les utilisateurs correspondant a %critere%</target>
<jms:reference-file line="415">module/report/nav.php</jms:reference-file>
</trans-unit>
<trans-unit id="54e9e134d28f6fc9c085eb7a8b71212e536174c9" resname="report:: Permalink">
<source>report:: Permalink</source>
<target state="new">report:: Permalink</target>
<jms:reference-file line="95">web/report/report_layout_child.html.twig</jms:reference-file>
</trans-unit>
<trans-unit id="d61b0b1a419a5b37db8576e1072307a5503dba79" resname="report:: Phraseanet report">
<source>report:: Phraseanet report</source>
<target state="new">report:: Phraseanet report</target>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:45:52Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:32Z" source-language="en" target-language="de" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:04Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:44Z" source-language="en" target-language="en" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:18Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:54:58Z" source-language="en" target-language="fr" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:jms="urn:jms:translation" version="1.2">
<file date="2023-03-30T14:46:35Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<file date="2023-04-04T11:55:16Z" source-language="en" target-language="nl" datatype="plaintext" original="not.available">
<header>
<tool tool-id="JMSTranslationBundle" tool-name="JMSTranslationBundle" tool-version="1.1.0-DEV"/>
<note>The source node in most cases contains the sample message as written by the developer. If it looks like a dot-delimitted string such as "form.label.firstname", then the developer has not provided a default message.</note>

View File

@@ -65,6 +65,10 @@ $(document).ready(function () {
form = $this.closest('form');
$(".collist", form).hide();
$(".collist-" + value, form).show();
// subdef list depends on selected databox
$(".subdeflist", form).hide();
$(".subdeflist-" + value, form).show();
});
$('.collist').each(function() {
@@ -76,6 +80,15 @@ $(document).ready(function () {
$(".collist-" + i, form).show();
});
$('.subdeflist').each(function() {
var $this = $(this),
form = $this.closest('form'),
i = $this.closest('form').find('.sbas_select').val()
;
$this.hide();
$(".subdeflist-" + i, form).show();
});
$('.form2').each(function() {
if ($(this).html().trim() === '')
$(this).hide();

View File

@@ -90,6 +90,19 @@
{% endfor %}
</div>
{% endblock form_records %}
<div class="form2 form_content">
<div class="form_titre">{{ "report:: Permalink" | trans }}</div>
<select name="permalink">
<option value>{{ "report:: choose subdef permalink" }}</option>
{% for sbas_id,subdefs in availableSubdefName %}
{% for subdefName in subdefs %}
<option class="subdeflist subdeflist-{{ sbas_id }}" value="{{ subdefName }}">{{ subdefName }}</option>
{% endfor %}
{% endfor %}
</select>
</div>
</form>
<div class="form_submit">