Skip to content

Commit

Permalink
use subdef label instead of subdef name (#4337)
Browse files Browse the repository at this point in the history
  • Loading branch information
aynsix authored Jul 14, 2023
1 parent 8d60402 commit 41b1786
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 11 deletions.
28 changes: 21 additions & 7 deletions lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public function indexAction(Request $request)
}
}

$availableSubdefName = [];
$availableSubdefLabel = [];
$countSubdefTodo = [];

/** @var record_adapter $rec */
Expand All @@ -101,11 +101,12 @@ public function indexAction(Request $request)
if ($databoxSubdefs !== null) {
foreach ($databoxSubdefs as $sub) {
if ($sub->isTobuild()) {
$availableSubdefName[] = $sub->get_name();
if (isset($countSubdefTodo[$sub->get_name()])) {
$countSubdefTodo[$sub->get_name()] ++;
$label = trim($sub->get_label($this->app['locale']));
$availableSubdefLabel[] = $label;
if (isset($countSubdefTodo[$label])) {
$countSubdefTodo[$label] ++;
} else {
$countSubdefTodo[$sub->get_name()] = 1;
$countSubdefTodo[$label] = 1;
}
}
}
Expand All @@ -118,7 +119,7 @@ public function indexAction(Request $request)
'recordSubdefs' => $recordAccessibleSubdefs,
'metadatas' => $metadatas,
'listsubdef' => $listsubdef,
'availableSubdefName' => array_unique($availableSubdefName),
'availableSubdefLabel' => array_unique($availableSubdefLabel),
'nbRecords' => count($records),
'countSubdefTodo' => $countSubdefTodo
]);
Expand Down Expand Up @@ -167,10 +168,11 @@ public function imageAction(Request $request)
$return = ['success' => true];

$force = $request->request->get('force_substitution') == '1';
$subdefsName = $request->request->get('subdefs', []);
$subdefsLabel = $request->request->get('subdefsLabel', []);

$selection = RecordsRequest::fromRequest($this->app, $request, false, [\ACL::CANMODIFRECORD]);

/** @var record_adapter $record */
foreach ($selection as $record) {
$substituted = false;
/** @var \media_subdef $subdef */
Expand All @@ -187,6 +189,18 @@ public function imageAction(Request $request)
}

if (!$substituted || $force) {
$subdefsName = [];

// get subdefinition name from selected subdefinition label
$databoxSubdefs = $record->getDatabox()->get_subdef_structure()->getSubdefGroup($record->getType());
if ($databoxSubdefs !== null) {
foreach ($databoxSubdefs as $sub) {
if (in_array(trim($sub->get_label($this->app['locale'])), $subdefsLabel)) {
$subdefsName[] = $sub->get_name();
}
}
}

$this->dispatch(RecordEvents::SUBDEFINITION_CREATE, new SubdefinitionCreateEvent($record, false, $subdefsName));
}
}
Expand Down
8 changes: 4 additions & 4 deletions templates/web/prod/actions/Tools/index.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@
</label>
</div>

{% for subdefName in availableSubdefName %}
{% for subdefLabel in availableSubdefLabel %}
<div class="well-small">
<label for="recreate_{{ subdefName }}" class="checkbox">
<input class="subdefTodo" type="checkbox" id="recreate_{{ subdefName }}" name="subdefs[]" value="{{ subdefName }}" />
{{ subdefName }} {{ countSubdefTodo[subdefName] }} / {{ nbRecords }}
<label for="recreate_{{ subdefLabel | replace({' ':'_'}) }}" class="checkbox">
<input class="subdefTodo" type="checkbox" id="recreate_{{ subdefLabel | replace({' ':'_'}) }}" name="subdefsLabel[]" value="{{ subdefLabel }}" />
{{ subdefLabel }} {{ countSubdefTodo[subdefLabel] }} / {{ nbRecords }}
</label>
</div>
{% endfor %}
Expand Down

0 comments on commit 41b1786

Please sign in to comment.