diff --git a/modules/islandora_audio/src/Plugin/Action/GenerateAudioDerivative.php b/modules/islandora_audio/src/Plugin/Action/GenerateAudioDerivative.php
index 904d05e60..3f7ad8964 100644
--- a/modules/islandora_audio/src/Plugin/Action/GenerateAudioDerivative.php
+++ b/modules/islandora_audio/src/Plugin/Action/GenerateAudioDerivative.php
@@ -36,6 +36,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$form = parent::buildConfigurationForm($form, $form_state);
$form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. audio/mpeg, audio/m4a, etc...)');
$form['args']['#description'] = $this->t('Additional command line parameters for FFMpeg');
+ unset($form['inputargs']);
return $form;
}
diff --git a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
index e81f157b1..758c73757 100644
--- a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
+++ b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivative.php
@@ -33,7 +33,12 @@ public function defaultConfiguration() {
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
$form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. image/jpeg, image/png, etc...)');
- $form['args']['#description'] = $this->t('Additional command line arguments for ImageMagick convert (e.g. -resize 50%');
+
+ $form['inputargs']['#title'] = $this->t('Additional input arguments');
+ $form['inputargs']['#description'] = $this->t('Additional input options for ImageMagick convert (e.g. -density 144).
Check the man page to see which options are input options.');
+
+ $form['args']['#title'] = $this->t('Additional output arguments');
+ $form['args']['#description'] = $this->t('Additional output options for ImageMagick convert (e.g. -resize 50% -unsharp 0x.5).
See documentation for available options.');
return $form;
}
diff --git a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
index d6f99b584..8a9d73556 100644
--- a/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
+++ b/modules/islandora_image/src/Plugin/Action/GenerateImageDerivativeFile.php
@@ -37,6 +37,12 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. application/xml, etc...)');
$form['mimetype']['#value'] = 'image/jpeg';
$form['mimetype']['#type'] = 'hidden';
+
+ $form['inputargs']['#title'] = $this->t('Additional input arguments');
+ $form['inputargs']['#description'] = $this->t('Additional input options for ImageMagick convert (e.g. -density 144).
Check the man page to see which options are input options.');
+
+ $form['args']['#title'] = $this->t('Additional output arguments');
+ $form['args']['#description'] = $this->t('Additional output options for ImageMagick convert (e.g. -resize 50% -unsharp 0x.5).
See documentation for available options.');
return $form;
}
diff --git a/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivative.php b/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivative.php
index 745c57727..19417ec40 100644
--- a/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivative.php
+++ b/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivative.php
@@ -38,6 +38,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$form['mimetype']['#type'] = 'textfield';
unset($form['args']);
+ unset($form['inputargs']);
return $form;
}
diff --git a/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivativeFile.php b/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivativeFile.php
index f6b8034a9..578f1b0c1 100644
--- a/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivativeFile.php
+++ b/modules/islandora_text_extraction/src/Plugin/Action/GenerateOCRDerivativeFile.php
@@ -58,6 +58,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$form = array_merge($first, $middle, $last);
unset($form['args']);
+ unset($form['inputargs']);
return $form;
}
diff --git a/modules/islandora_video/src/Plugin/Action/GenerateVideoDerivative.php b/modules/islandora_video/src/Plugin/Action/GenerateVideoDerivative.php
index 7c8619923..d5fb710dc 100644
--- a/modules/islandora_video/src/Plugin/Action/GenerateVideoDerivative.php
+++ b/modules/islandora_video/src/Plugin/Action/GenerateVideoDerivative.php
@@ -35,6 +35,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
$form = parent::buildConfigurationForm($form, $form_state);
$form['mimetype']['#description'] = $this->t('Mimetype to convert to (e.g. video/mp4, video/quicktime, etc...)');
$form['args']['#description'] = $this->t('Additional command line parameters for FFMpeg');
+ unset($form['inputargs']);
return $form;
}
diff --git a/src/Plugin/Action/AbstractGenerateDerivative.php b/src/Plugin/Action/AbstractGenerateDerivative.php
index b22201e11..a2e44a65e 100644
--- a/src/Plugin/Action/AbstractGenerateDerivative.php
+++ b/src/Plugin/Action/AbstractGenerateDerivative.php
@@ -21,6 +21,7 @@ public function defaultConfiguration() {
'source_term_uri' => '',
'derivative_term_uri' => '',
'mimetype' => '',
+ 'inputargs' => '',
'args' => '',
'destination_media_type' => '',
'scheme' => $this->config->get('default_scheme'),
@@ -130,6 +131,13 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
'#rows' => '8',
'#description' => $this->t('Mimetype to convert to (e.g. image/jpeg, video/mp4, etc...)'),
];
+ $form['inputargs'] = [
+ '#type' => 'textfield',
+ '#title' => $this->t('Additional input arguments'),
+ '#default_value' => $this->configuration['inputargs'],
+ '#rows' => '8',
+ '#description' => $this->t('Additional command line options related to the source file'),
+ ];
$form['args'] = [
'#type' => 'textfield',
'#title' => $this->t('Additional arguments'),
@@ -199,6 +207,7 @@ public function submitConfigurationForm(array &$form, FormStateInterface $form_s
$this->configuration['derivative_term_uri'] = $this->utils->getUriForTerm($term);
$this->configuration['mimetype'] = $form_state->getValue('mimetype');
+ $this->configuration['inputargs'] = $form_state->getValue('inputargs');
$this->configuration['args'] = $form_state->getValue('args');
$this->configuration['scheme'] = $form_state->getValue('scheme');
$this->configuration['path'] = trim($form_state->getValue('path'), '\\/');
diff --git a/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php b/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
index be9eca80b..157765919 100644
--- a/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
+++ b/src/Plugin/Action/AbstractGenerateDerivativeMediaFile.php
@@ -27,6 +27,7 @@ public function defaultConfiguration() {
'event' => 'Generate Derivative',
'source_term_uri' => $uri,
'mimetype' => '',
+ 'inputargs' => '',
'args' => '',
'path' => '[date:custom:Y]-[date:custom:m]/[media:mid].bin',
'source_field_name' => 'field_media_file',
@@ -69,6 +70,7 @@ protected function generateData(EntityInterface $entity) {
$allowed = [
'queue',
'event',
+ 'inputargs',
'args',
'source_uri',
'destination_uri',
@@ -109,12 +111,20 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
'#description' => $this->t('File field on Media Type to hold derivative. Cannot be the same as source'),
];
+ $form['inputargs'] = [
+ '#type' => 'textfield',
+ '#title' => $this->t('Additional input arguments'),
+ '#default_value' => $this->configuration['inputargs'],
+ '#rows' => '8',
+ '#description' => $this->t('Additional command line options related to the source file'),
+ ];
+
$form['args'] = [
'#type' => 'textfield',
- '#title' => $this->t('Additional arguments'),
+ '#title' => $this->t('Additional output arguments'),
'#default_value' => $this->configuration['args'],
'#rows' => '8',
- '#description' => $this->t('Additional command line arguments'),
+ '#description' => $this->t('Additional command line options related to the output file (derivative)'),
];
$form['mimetype'] = [
@@ -170,6 +180,7 @@ public function validateConfigurationForm(array &$form, FormStateInterface $form
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
parent::submitConfigurationForm($form, $form_state);
$this->configuration['mimetype'] = $form_state->getValue('mimetype');
+ $this->configuration['inputargs'] = $form_state->getValue('inputargs');
$this->configuration['args'] = $form_state->getValue('args');
$this->configuration['scheme'] = $form_state->getValue('scheme');
$this->configuration['path'] = trim($form_state->getValue('path'), '\\/');