diff --git a/src/Pelagos/Bundle/AppBundle/Command/BackFillApprovedDateDifCommand.php b/src/Pelagos/Bundle/AppBundle/Command/BackFillApprovedDateDifCommand.php
index a128bde9d0..2bc282ded6 100644
--- a/src/Pelagos/Bundle/AppBundle/Command/BackFillApprovedDateDifCommand.php
+++ b/src/Pelagos/Bundle/AppBundle/Command/BackFillApprovedDateDifCommand.php
@@ -69,16 +69,15 @@ protected function execute(InputInterface $input, OutputInterface $output)
$newRevision->getRev()
);
- if ($articleDiff['status']['same'] === DIF::STATUS_APPROVED) {
+ if ($i === ($numberOfRevisions - 1) and $articleDiff['status']['same'] === DIF::STATUS_APPROVED) {
$approvedDateTimeStamp = $articleDiff['modificationTimeStamp']['old'];
- break;
- } else if ($articleDiff['status']['new'] === DIF::STATUS_APPROVED) {
+ }
+
+ if ($articleDiff['status']['new'] === DIF::STATUS_APPROVED) {
if (!empty($articleDiff['modificationTimeStamp']['new'])) {
$approvedDateTimeStamp = $articleDiff['modificationTimeStamp']['new'];
- break;
} else {
$approvedDateTimeStamp = $articleDiff['modificationTimeStamp']['same'];
- break;
}
}
}
diff --git a/src/Pelagos/Bundle/AppBundle/Controller/Api/DIFController.php b/src/Pelagos/Bundle/AppBundle/Controller/Api/DIFController.php
index 055d91eb48..dab2bdf06a 100644
--- a/src/Pelagos/Bundle/AppBundle/Controller/Api/DIFController.php
+++ b/src/Pelagos/Bundle/AppBundle/Controller/Api/DIFController.php
@@ -7,7 +7,7 @@
use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
-use Symfony\Component\Security\Core\Exception\AccessDeniedException;
+use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use FOS\RestBundle\Controller\Annotations as Rest;
@@ -206,7 +206,7 @@ public function patchAction($id, Request $request)
*
* @param integer $id The id of the DIF to submit.
*
- * @throws AccessDeniedException When the DIF authenticated user does not have permission to submit the DIF.
+ * @throws AccessDeniedHttpException When the DIF authenticated user does not have permission to submit the DIF.
* @throws BadRequestHttpException When the DIF could not be submitted.
*
* @ApiDoc(
@@ -229,7 +229,7 @@ public function submitAction($id)
// Check if the user has permission to submit it.
if (!$this->isGranted(DIFVoter::CAN_SUBMIT, $dif)) {
// Throw an exception if they don't.
- throw new AccessDeniedException(
+ throw new AccessDeniedHttpException(
'You do not have sufficient privileges to submit this ' . $dif::FRIENDLY_NAME . '.'
);
}
@@ -253,7 +253,7 @@ public function submitAction($id)
*
* @param integer $id The id of the DIF to approve.
*
- * @throws AccessDeniedException When the DIF authenticated user does not have permission to approve the DIF.
+ * @throws AccessDeniedHttpException When the DIF authenticated user does not have permission to approve the DIF.
* @throws BadRequestHttpException When the DIF could not be approved.
*
* @ApiDoc(
@@ -276,7 +276,7 @@ public function approveAction($id)
// Check if the user has permission to approve it.
if (!$this->isGranted(DIFVoter::CAN_APPROVE, $dif)) {
// Throw an exception if they don't.
- throw new AccessDeniedException(
+ throw new AccessDeniedHttpException(
'You do not have sufficient privileges to approve this ' . $dif::FRIENDLY_NAME . '.'
);
}
@@ -304,7 +304,7 @@ public function approveAction($id)
*
* @param integer $id The id of the DIF to reject.
*
- * @throws AccessDeniedException When the DIF authenticated user does not have permission to reject the DIF.
+ * @throws AccessDeniedHttpException When the DIF authenticated user does not have permission to reject the DIF.
* @throws BadRequestHttpException When the DIF could not be rejected.
*
* @ApiDoc(
@@ -327,7 +327,7 @@ public function rejectAction($id)
// Check if the user has permission to reject it.
if (!$this->isGranted(DIFVoter::CAN_REJECT, $dif)) {
// Throw an exception if they don't.
- throw new AccessDeniedException(
+ throw new AccessDeniedHttpException(
'You do not have sufficient privileges to reject this ' . $dif::FRIENDLY_NAME . '.'
);
}
@@ -351,7 +351,7 @@ public function rejectAction($id)
*
* @param integer $id The id of the DIF to unlock.
*
- * @throws AccessDeniedException When the DIF authenticated user does not have permission to unlock the DIF.
+ * @throws AccessDeniedHttpException When the DIF authenticated user does not have permission to unlock the DIF.
* @throws BadRequestHttpException When the DIF could not be unlocked.
*
* @ApiDoc(
@@ -374,7 +374,7 @@ public function unlockAction($id)
// Check if the user has permission to unlock it.
if (!$this->isGranted(DIFVoter::CAN_UNLOCK, $dif)) {
// Throw an exception if they don't.
- throw new AccessDeniedException(
+ throw new AccessDeniedHttpException(
'You do not have sufficient privileges to unlock this ' . $dif::FRIENDLY_NAME . '.'
);
}
@@ -398,7 +398,7 @@ public function unlockAction($id)
*
* @param integer $id The id of the DIF to request unlock for.
*
- * @throws AccessDeniedException When the authenticated user does not have
+ * @throws AccessDeniedHttpException When the authenticated user does not have
* permission to request unlock for the DIF.
* @throws BadRequestHttpException When the DIF could not be requested to be unlocked.
*
@@ -423,7 +423,7 @@ public function requestUnlockAction($id)
// Check if the user has permission to request it be unlocked.
if (!$this->isGranted(DIFVoter::CAN_REQUEST_UNLOCK, $dif)) {
// Throw an exception if they don't.
- throw new AccessDeniedException(
+ throw new AccessDeniedHttpException(
'You do not have sufficient privileges to request this ' . $dif::FRIENDLY_NAME . ' be unlocked'
);
}
diff --git a/src/Pelagos/Bundle/AppBundle/Controller/UI/DatasetDownloadReportController.php b/src/Pelagos/Bundle/AppBundle/Controller/UI/DatasetDownloadReportController.php
index b79f877802..6aa73df169 100644
--- a/src/Pelagos/Bundle/AppBundle/Controller/UI/DatasetDownloadReportController.php
+++ b/src/Pelagos/Bundle/AppBundle/Controller/UI/DatasetDownloadReportController.php
@@ -4,15 +4,17 @@
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
-
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Pelagos\Bundle\AppBundle\Form\ReportDatasetDownloadType;
+
+use Pelagos\Exception\InvalidDateSelectedException;
+
use Pelagos\Entity\Dataset;
use Pelagos\Entity\LogActionItem;
use Pelagos\Entity\Person;
-use Pelagos\Exception\InvalidDateSelectedException;
+use Pelagos\Entity\DatasetSubmission;
/**
* The dataset download report generator.
@@ -99,7 +101,8 @@ protected function getData(array $options = null)
'PRIMARY POINT OF CONTACT EMAIL',
'TOTAL DOWNLOADS',
'# OF GOMRI DOWNLOADS',
- '# OF GOOGLE DOWNLOADS'
+ '# OF GOOGLE DOWNLOADS',
+ 'FILE SIZE(MB)'
));
//prepare body's data
@@ -141,6 +144,7 @@ protected function getData(array $options = null)
'totalCount' => 0,
'GoMRI' => 0,
'NonGoMRI' => 0,
+ 'fileSize' => null
);
$dataset = $this->container->get('doctrine')->getRepository(Dataset::class)
@@ -160,6 +164,12 @@ protected function getData(array $options = null)
->getEmailAddress();
}
+ // get file size from dataset submission
+ $datasetSubmission = $dataset->getDatasetSubmission();
+ if ($datasetSubmission instanceof DatasetSubmission) {
+ $dataArray[$currentIndex]['fileSize'] = $this->formatSizeUnits($datasetSubmission->getDatasetFileSize());
+ }
+
}
//count user downloads and total download
if ($result['payLoad']['userType'] == 'GoMRI') {
@@ -173,4 +183,21 @@ protected function getData(array $options = null)
}
return array_merge($this->getDefaultHeaders(), $additionalHeaders, $labels, $dataArray);
}
+
+ /**
+ * Used to format the file size units to MB.
+ *
+ * @param integer $fileSizeBytes File size in bytes.
+ *
+ * @return float
+ */
+ private function formatSizeUnits($fileSizeBytes)
+ {
+ if ($fileSizeBytes) {
+ // Formats the size to MB
+ $fileSizeBytes = number_format(($fileSizeBytes / 1000000), 6);
+ }
+
+ return $fileSizeBytes;
+ }
}
diff --git a/src/Pelagos/Bundle/AppBundle/Controller/UI/SideBySideController.php b/src/Pelagos/Bundle/AppBundle/Controller/UI/SideBySideController.php
new file mode 100644
index 0000000000..a63574f5c9
--- /dev/null
+++ b/src/Pelagos/Bundle/AppBundle/Controller/UI/SideBySideController.php
@@ -0,0 +1,206 @@
+ 'Unsubmitted',
+ DatasetSubmission::STATUS_INCOMPLETE => 'Draft',
+ DatasetSubmission::STATUS_COMPLETE => 'Submitted',
+ DatasetSubmission::STATUS_IN_REVIEW => 'In Review',
+ );
+
+ /**
+ * The default action for Side by Side.
+ *
+ * @param Request $request The Symfony request object.
+ * @param string|null $udi The UDI of the Dataset to load.
+ *
+ * @Route("/{udi}")
+ *
+ * @return Response A Response instance.
+ */
+ public function defaultAction(Request $request, $udi = null)
+ {
+ if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
+ return $this->redirect('/user/login?destination=' . $request->getPathInfo());
+ }
+
+ if (!$this->isGranted(array('ROLE_DATA_REPOSITORY_MANAGER', 'ROLE_SUBJECT_MATTER_EXPERT'))) {
+ return $this->render('PelagosAppBundle:template:AdminOnly.html.twig');
+ }
+
+ return $this->render(
+ 'PelagosAppBundle:SideBySide:index.html.twig'
+ );
+ }
+
+ /**
+ * The get versions action for Side by Side.
+ *
+ * @param Request $request The Symfony request object.
+ *
+ * @Route("/")
+ *
+ * @Method("POST")
+ *
+ * @return Response A Response instance.
+ */
+ public function getVersions(Request $request)
+ {
+ $udi = $request->request->get('udi');
+
+ try {
+ $datasetSubmissionHistory = $this->getDatasetSubmissionHistory($udi);
+ } catch (\Exception $e) {
+ return new JsonResponse(
+ null,
+ JsonResponse::HTTP_BAD_REQUEST
+ );
+ }
+
+ $submissions = array();
+
+ foreach ($datasetSubmissionHistory->getIterator() as $i => $submission) {
+ $data = array();
+ $data['version'] = $i;
+ $data['udi'] = $submission->getDataset()->getUdi();
+ $data['sequence'] = $submission->getSequence();
+ $data['status'] = self::SUBMISSIONS_STATES[$submission->getStatus()];
+ $data['modifier'] = $submission->getModifier()->getLastName() .
+ ', ' . $submission->getModifier()->getFirstName();
+ $data['modificationtimestamp'] = $submission->getModificationTimeStamp()->format('c');
+ $submissions[] = $data;
+ }
+
+ return new JsonResponse(
+ $submissions,
+ JsonResponse::HTTP_OK
+ );
+ }
+
+ /**
+ * The get submission form action for the Side By Side controller.
+ *
+ * @param Request $request The Symfony request object.
+ * @param string|null $udi The UDI of the Dataset to load.
+ * @param string|null $revision The revision number of the Submission to load.
+ *
+ * @throws \Exception If revision does not exists.
+ *
+ * @Route("/getForm/{udi}/{revision}")
+ *
+ * @return Response A Response instance.
+ */
+ public function getSubmissionFormAction(Request $request, $udi = null, $revision = null)
+ {
+ if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
+ return $this->redirect('/user/login?destination=' . $request->getPathInfo());
+ }
+
+ try {
+ $datasetSubmissionHistory = $this->getDatasetSubmissionHistory($udi);
+
+ if ($datasetSubmissionHistory->count() < $revision and $revision !== null) {
+ throw new \Exception("Revision $revision does not exist for UDI: $udi");
+ }
+ } catch (\Exception $e) {
+ return new TerminateResponse(
+ $e->getMessage(),
+ Response::HTTP_BAD_REQUEST
+ );
+ }
+
+ if ($revision !== null) {
+ $datasetSubmission = $datasetSubmissionHistory[$revision];
+ } else {
+ $datasetSubmission = $datasetSubmissionHistory->first();
+ }
+
+ $researchGroupList = array();
+ $account = $this->getUser();
+ if (null !== $account) {
+ $user = $account->getPerson();
+ // Find all RG's user has CREATE_DIF_DIF_ON on.
+ $researchGroups = $user->getResearchGroups();
+ $researchGroupList = array_map(
+ function ($researchGroup) {
+ return $researchGroup->getId();
+ },
+ $researchGroups
+ );
+ }
+
+ $form = $this->get('form.factory')->createNamed(null, DatasetSubmissionType::class, $datasetSubmission);
+
+ $terminateResponse = new TerminateResponse();
+
+ return $this->render(
+ 'PelagosAppBundle:SideBySide:submissionForm.html.twig',
+ array(
+ 'form' => $form->createView(),
+ 'datasetSubmission' => $datasetSubmission,
+ 'showForceImport' => false,
+ 'showForceDownload' => false,
+ 'researchGroupList' => $researchGroupList,
+ 'mode' => 'view',
+ ),
+ $terminateResponse
+ );
+ }
+
+ /**
+ * Get the dataset submission history from UDI.
+ *
+ * @param string|null $udi The UDI of the Dataset to load.
+ *
+ * @throws \Exception If dataset if not found.
+ * @throws \Exception If more than one dataset is returned.
+ *
+ * @return DatasetSubmissionHistory An array collection of submissions.
+ */
+ private function getDatasetSubmissionHistory($udi)
+ {
+ $datasets = $this->entityHandler->getBy(Dataset::class, array('udi' => $udi));
+
+ if (count($datasets) == 0) {
+ throw new \Exception("No dataset found for UDI: $udi");
+ }
+
+ if (count($datasets) > 1) {
+ throw new \Exception("Got more than one return for UDI: $udi");
+ }
+
+ $dataset = $datasets[0];
+
+ return $dataset->getDatasetSubmissionHistory();
+ }
+}
diff --git a/src/Pelagos/Bundle/AppBundle/Form/DIFType.php b/src/Pelagos/Bundle/AppBundle/Form/DIFType.php
index 719f23506d..f78d679a20 100644
--- a/src/Pelagos/Bundle/AppBundle/Form/DIFType.php
+++ b/src/Pelagos/Bundle/AppBundle/Form/DIFType.php
@@ -191,7 +191,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'widget' => 'single_text',
'html5' => false,
'format' => 'yyyy-MM-dd',
- 'required' => false,
+ 'required' => true,
'attr' => array(
'placeholder' => 'yyyy-mm-dd'
),
@@ -202,7 +202,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'widget' => 'single_text',
'html5' => false,
'format' => 'yyyy-MM-dd',
- 'required' => false,
+ 'required' => true,
'attr' => array(
'placeholder' => 'yyyy-mm-dd'
),
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/config/routing_ui.yml b/src/Pelagos/Bundle/AppBundle/Resources/config/routing_ui.yml
index f55738d6d6..35f28da8ac 100644
--- a/src/Pelagos/Bundle/AppBundle/Resources/config/routing_ui.yml
+++ b/src/Pelagos/Bundle/AppBundle/Resources/config/routing_ui.yml
@@ -74,4 +74,8 @@ pelagos_end_review_ui:
resource: Pelagos\Bundle\AppBundle\Controller\UI\EndReviewController
pelagos_national_data_center_ui:
- resource: Pelagos\Bundle\AppBundle\Controller\UI\NationalDataCenterController
\ No newline at end of file
+ resource: Pelagos\Bundle\AppBundle\Controller\UI\NationalDataCenterController
+
+pelagos_side_by_side_ui:
+ resource: Pelagos\Bundle\AppBundle\Controller\UI\SideBySideController
+
\ No newline at end of file
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/public/css/dataset-submission.css b/src/Pelagos/Bundle/AppBundle/Resources/public/css/dataset-submission.css
index 1887d2b3a8..fdacac0f51 100644
--- a/src/Pelagos/Bundle/AppBundle/Resources/public/css/dataset-submission.css
+++ b/src/Pelagos/Bundle/AppBundle/Resources/public/css/dataset-submission.css
@@ -27,6 +27,7 @@
.keywordinput {
width:350px;
+ height:100%;
}
.dstablink {
@@ -170,3 +171,5 @@ table.dataTable.stripe tbody tr:hover {
{
display:none;
}
+
+
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/public/css/sidebyside.css b/src/Pelagos/Bundle/AppBundle/Resources/public/css/sidebyside.css
new file mode 100644
index 0000000000..2c331ac69a
--- /dev/null
+++ b/src/Pelagos/Bundle/AppBundle/Resources/public/css/sidebyside.css
@@ -0,0 +1,76 @@
+.spinner {
+ display:none;
+}
+
+.side-table {
+ width: 100%;
+}
+
+.version-select {
+ height:25px;
+}
+
+.grid-container {
+ display:grid;
+ grid-template-columns: repeat(2, 1fr);
+ align-items: start;
+ overflow:auto;
+ height:100%;
+}
+
+.grid-group {
+ display:contents;
+ grid-auto-rows: 1fr;
+}
+
+#left.grid-group > div.ds-metadata {
+ grid-column: 1;
+}
+
+#right.grid-group > div.ds-metadata {
+ grid-column: 2;
+}
+
+.grid-group > div.ds-metadata:nth-child(1) {
+ grid-row: 1;
+
+}
+
+.grid-group > div.ds-metadata:nth-child(2) {
+ grid-row: 2;
+}
+
+.grid-group > div.ds-metadata:nth-child(3) {
+ grid-row: 3;
+ grid-column: 1;
+}
+
+.grid-group > div.ds-metadata:nth-child(4) {
+ grid-row: 4;
+ grid-column: 1;
+}
+
+.grid-group > div.ds-metadata:nth-child(5) {
+ grid-row: 5;
+ grid-column: 1;
+}
+
+.grid-group > div.ds-metadata:nth-child(6) {
+ grid-row: 6;
+ grid-column: 1;
+}
+
+.grid-group > div.ds-metadata:nth-child(7) {
+ grid-row: 7;
+ grid-column: 1;
+}
+
+.grid-group > div.ds-metadata:nth-child(8) {
+ grid-row: 8;
+ grid-column: 1;
+}
+
+
+
+
+
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/public/js/dif.js b/src/Pelagos/Bundle/AppBundle/Resources/public/js/dif.js
index 0ac2a1f276..4d51111142 100644
--- a/src/Pelagos/Bundle/AppBundle/Resources/public/js/dif.js
+++ b/src/Pelagos/Bundle/AppBundle/Resources/public/js/dif.js
@@ -148,14 +148,20 @@ $(document).ready(function()
jQuery.validator.addMethod("trueISODate", function(value, element) {
var regPattern = /^\d{4}-\d{1,2}-\d{1,2}$/
return this.optional(element) || ((Date.parse(value)) && regPattern.test(value));
+ },function (params, element) {
+ return "Please enter a valid ISO Date"
});
difValidator = $("#difForm").validate({
ignore: ".ignore",
messages: {
geoloc: "Click on Spatial Wizard Button!",
- estimatedStartDate: "Start Date is not a valid ISO date",
- estimatedEndDate: "End Date is not a valid ISO date"
+ estimatedStartDate: {
+ required: "Start Date is a required field."
+ },
+ estimatedEndDate: {
+ required: "End Date is a required field."
+ }
},
submitHandler: function(form) {
saveDIF(form);
@@ -611,11 +617,11 @@ function updateDIF(form)
type: "PATCH",
datatype: "json",
data: formData
- }).success(function(json, textStatus, jqXHR) {
+ }).done(function(json, textStatus, jqXHR) {
if (jqXHR.status === 204) {
response.status = "success";
}
- }).error(function (json, text, jqXHR) {
+ }).fail(function (json, text, jqXHR) {
var errorMessage = JSON.parse(json.responseText);
response.status = "error";
response.message = errorMessage.message;
@@ -660,6 +666,10 @@ function updateDIF(form)
"
The application with DIF ID: " + udi + " failed to complete action!" +
"
";
}
+ } else {
+ var title = "Unable to process DIF form";
+ var message = "
There was an error processing your request. Your session might have expired. " +
+ "If the problem still persists after you re-login, please contact the administrator.
- A dataset has been submitted to the Gulf of Mexico Research Initiative Information and Data Cooperative (GRIIDC) by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} for the dataset {{dataset.udi}}. This dataset has been assigned the doi:{{dataset.doi.doi}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ dataset.datasetSubmission.submitter.researchGroupNames | join(', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
+ A dataset has been submitted to the Gulf of Mexico Research Initiative Information and Data Cooperative (GRIIDC) by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} for the dataset {{dataset.udi}}. This dataset has been assigned the doi:{{dataset.doi.doi}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ submitterGroupsAndRepos | join (', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
Thank you,
@@ -13,9 +14,10 @@
{% endblock %}
{% block body_text %}
+ {% set submitterGroupsAndRepos = dataset.datasetSubmission.submitter.researchGroupNames | merge(dataset.datasetSubmission.submitter.dataRepositoryNames) %}
Dear {{ recipient.firstName }} {{ recipient.lastName }},
-A dataset has been submitted to the Gulf of Mexico Research Initiative Information and Data Cooperative (GRIIDC) by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} for the dataset {{dataset.udi}}. This dataset has been assigned the doi:{{dataset.doi.doi}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ dataset.datasetSubmission.submitter.researchGroupNames | join(', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
+A dataset has been submitted to the Gulf of Mexico Research Initiative Information and Data Cooperative (GRIIDC) by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} for the dataset {{dataset.udi}}. This dataset has been assigned the doi:{{dataset.doi.doi}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ submitterGroupsAndRepos | join (', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
Thank you,
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/views/Email/data-managers.dataset-updated.email.twig b/src/Pelagos/Bundle/AppBundle/Resources/views/Email/data-managers.dataset-updated.email.twig
index 2ca237822a..f1b59cd9e8 100644
--- a/src/Pelagos/Bundle/AppBundle/Resources/views/Email/data-managers.dataset-updated.email.twig
+++ b/src/Pelagos/Bundle/AppBundle/Resources/views/Email/data-managers.dataset-updated.email.twig
@@ -1,9 +1,10 @@
{% block subject 'GRIIDC Dataset Submission Updated' %}
{% block body_html %}
+ {% set submitterGroupsAndRepos = dataset.datasetSubmission.submitter.dataRepositoryNames | merge(dataset.datasetSubmission.submitter.researchGroupNames) %}
Dear {{ recipient.firstName }} {{ recipient.lastName }},
- The GRIIDC dataset {{dataset.udi}} has been updated. This update was made by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ dataset.datasetSubmission.submitter.researchGroupNames | join(', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
+ The GRIIDC dataset {{dataset.udi}} has been updated. This update was made by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ submitterGroupsAndRepos | join (', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
Thank you,
@@ -13,9 +14,10 @@
{% endblock %}
{% block body_text %}
+ {% set submitterGroupsAndRepos = dataset.datasetSubmission.submitter.researchGroupNames | merge(dataset.datasetSubmission.submitter.dataRepositoryNames) %}
Dear {{ recipient.firstName }} {{ recipient.lastName }},
-The GRIIDC dataset {{dataset.udi}} has been updated. This update was made by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ dataset.datasetSubmission.submitter.researchGroupNames | join(', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
+The GRIIDC dataset {{dataset.udi}} has been updated. This update was made by {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}}. {{dataset.datasetSubmission.submitter.firstName}} {{dataset.datasetSubmission.submitter.lastName}} is a member of {{ submitterGroupsAndRepos | join (', ') }} and the dataset is associated with {{dataset.researchGroup.name}}.
Thank you,
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/extent.html.twig b/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/extent.html.twig
new file mode 100644
index 0000000000..93dc159e61
--- /dev/null
+++ b/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/extent.html.twig
@@ -0,0 +1,106 @@
+
diff --git a/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/file-submit.html.twig b/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/file-submit.html.twig
new file mode 100644
index 0000000000..dd5b09f6ac
--- /dev/null
+++ b/src/Pelagos/Bundle/AppBundle/Resources/views/SideBySide/file-submit.html.twig
@@ -0,0 +1,140 @@
+{% set sftpuser=app.user.isPosix() %}
+
+ You may upload a single dataset file of any size using direct upload.
+ If your upload is interrupted, it will attempt to resume automatically.
+ You may also manually pause your upload and continue later.
+ Note: Even if this window or your web browser has been closed before transfer is complete,
+ you may return to this page, select the same file, and transfer will resume where it left off.
+
Use this method when you wish to upload the dataset file to GRIIDC (rather than place the dataset file on an HTTP (web) or FTP server and have GRIIDC pull it).
+ Note:Using this method requires that you have first uploaded the file via SFTP or GridFTP.
+
+
+ Your account has been configured for SFTP/GridFTP access.
+ Click here for instructions.
+
+
+
+ Your account has not been configured for SFTP/GridFTP access.
+ If you wish to use SFTP/GridFTP, please click here to request SFTP/GridFTP access:
+