From eb7c2aa8b03c4c51a03f4cabf0dc894e4e288c51 Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Thu, 13 May 2021 15:28:01 -0700 Subject: [PATCH 01/27] adds option to add public datasets --- classes/OccurrenceDataset.php | 15 ++++++++++----- collections/datasets/datasetmanager.php | 8 +++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/classes/OccurrenceDataset.php b/classes/OccurrenceDataset.php index 248aa0c057..bc73229170 100644 --- a/classes/OccurrenceDataset.php +++ b/classes/OccurrenceDataset.php @@ -21,7 +21,7 @@ public function getDatasetMetadata($dsid){ $retArr = array(); if($GLOBALS['SYMB_UID'] && $dsid){ //Get and return individual dataset - $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp FROM omoccurdatasets WHERE (datasetid = '.$dsid.') '; + $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp, ispublic FROM omoccurdatasets WHERE (datasetid = '.$dsid.') '; $rs = $this->conn->query($sql); while($r = $rs->fetch_object()){ $retArr['name'] = $r->name; @@ -29,6 +29,7 @@ public function getDatasetMetadata($dsid){ $retArr['uid'] = $r->uid; $retArr['sort'] = $r->sortsequence; $retArr['ts'] = $r->initialtimestamp; + $retArr['ispublic'] = $r->ispublic; } $rs->free(); //Get roles for current user @@ -45,18 +46,19 @@ public function getDatasetMetadata($dsid){ public function getDatasetArr(){ $retArr = array(); if($GLOBALS['SYMB_UID']){ - $sql = 'SELECT datasetid, name, notes, sortsequence, initialtimestamp FROM omoccurdatasets WHERE (uid = '.$GLOBALS['SYMB_UID'].') ORDER BY sortsequence,name'; + $sql = 'SELECT datasetid, name, notes, sortsequence, initialtimestamp, ispublic FROM omoccurdatasets WHERE (uid = '.$GLOBALS['SYMB_UID'].') ORDER BY sortsequence,name'; $rs = $this->conn->query($sql); while($r = $rs->fetch_object()){ $retArr['owner'][$r->datasetid]['name'] = $r->name; $retArr['owner'][$r->datasetid]['notes'] = $r->notes; $retArr['owner'][$r->datasetid]['sort'] = $r->sortsequence; $retArr['owner'][$r->datasetid]['ts'] = $r->initialtimestamp; + $retArr['owner'][$r->datasetid]['ispublic'] = $r->ispublic; } $rs->free(); //Get shared datasets - $sql1 = 'SELECT d.datasetid, d.name, d.notes, d.sortsequence, d.initialtimestamp, r.role '. + $sql1 = 'SELECT d.datasetid, d.name, d.notes, d.sortsequence, d.ispublic, d.initialtimestamp, r.role '. 'FROM omoccurdatasets d INNER JOIN userroles r ON d.datasetid = r.tablepk '. 'WHERE (r.uid = '.$GLOBALS['SYMB_UID'].') AND (r.role IN("DatasetAdmin","DatasetEditor","DatasetReader")) '. 'ORDER BY sortsequence,name'; @@ -68,14 +70,17 @@ public function getDatasetArr(){ $retArr['other'][$r1->datasetid]['notes'] = $r1->notes; $retArr['other'][$r1->datasetid]['sort'] = $r1->sortsequence; $retArr['other'][$r1->datasetid]['ts'] = $r1->initialtimestamp; + $retArr['other'][$r1->datasetid]['ispublic'] = $r1->ispublic; } $rs1->free(); } return $retArr; } - public function editDataset($dsid,$name,$notes){ - $sql = 'UPDATE omoccurdatasets SET name = "'.$this->cleanInStr($name).'", notes = "'.$this->cleanInStr($notes).'" WHERE datasetid = '.$dsid; + public function editDataset($dsid,$name,$notes,$ispublic){ + // 'publicedits = '.(array_key_exists('publicedits',$postArr)&&is_numeric($postArr['publicedits'])?1:0).','. + // print_r(isset($ispublic)&&is_numeric($ispublic)?1:0); + $sql = 'UPDATE omoccurdatasets SET name = "'.$this->cleanInStr($name).'", notes = "'.$this->cleanInStr($notes).'", ispublic = '.$this->cleanInStr($ispublic).' WHERE datasetid = '.$dsid; if(!$this->conn->query($sql)){ $this->errorArr[] = 'ERROR saving dataset edits: '.$this->conn->error; return false; diff --git a/collections/datasets/datasetmanager.php b/collections/datasets/datasetmanager.php index 5fc48c59ce..3d260ce344 100644 --- a/collections/datasets/datasetmanager.php +++ b/collections/datasets/datasetmanager.php @@ -54,7 +54,8 @@ } if($isEditor == 1){ if($action == 'Save Edits'){ - if($datasetManager->editDataset($_POST['datasetid'],$_POST['name'],$_POST['notes'])){ + $isPublic = (isset($_POST['ispublic'])&&is_numeric($_POST['ispublic'])?1:0); + if($datasetManager->editDataset($_POST['datasetid'],$_POST['name'],$_POST['notes'],$isPublic)){ $mdArr = $datasetManager->getDatasetMetadata($datasetId); $statusStr = 'Success! Dataset edits saved. '; } @@ -373,6 +374,7 @@ function targetDownloadPopup(f) { if($isEditor == 1){ ?>
+
Editor
@@ -380,6 +382,10 @@ function targetDownloadPopup(f) { Name
+
+ Public View
+ /> +
Notes
From 6d60a370b806b1a01cb77ae3382e9abd71050d5b Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Thu, 13 May 2021 16:15:17 -0700 Subject: [PATCH 02/27] Adds page for public datasets list --- classes/OccurrenceDataset.php | 13 +++++- collections/datasets/datasetmanager.php | 1 - collections/datasets/publiclist.php | 53 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 collections/datasets/publiclist.php diff --git a/classes/OccurrenceDataset.php b/classes/OccurrenceDataset.php index bc73229170..1c85102bc0 100644 --- a/classes/OccurrenceDataset.php +++ b/classes/OccurrenceDataset.php @@ -17,6 +17,17 @@ public function __destruct(){ if(!($this->conn === null)) $this->conn->close(); } + public function getPublicDatasets(){ + $retArr = array(); + $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp, ispublic FROM omoccurdatasets WHERE ispublic=1'; + $rs = $this->conn->query($sql); + while($r = $rs->fetch_assoc()){ + $retArr[] = $r; + } + $rs->free(); + return $retArr; + } + public function getDatasetMetadata($dsid){ $retArr = array(); if($GLOBALS['SYMB_UID'] && $dsid){ @@ -78,8 +89,6 @@ public function getDatasetArr(){ } public function editDataset($dsid,$name,$notes,$ispublic){ - // 'publicedits = '.(array_key_exists('publicedits',$postArr)&&is_numeric($postArr['publicedits'])?1:0).','. - // print_r(isset($ispublic)&&is_numeric($ispublic)?1:0); $sql = 'UPDATE omoccurdatasets SET name = "'.$this->cleanInStr($name).'", notes = "'.$this->cleanInStr($notes).'", ispublic = '.$this->cleanInStr($ispublic).' WHERE datasetid = '.$dsid; if(!$this->conn->query($sql)){ $this->errorArr[] = 'ERROR saving dataset edits: '.$this->conn->error; diff --git a/collections/datasets/datasetmanager.php b/collections/datasets/datasetmanager.php index 3d260ce344..a1cefc10f3 100644 --- a/collections/datasets/datasetmanager.php +++ b/collections/datasets/datasetmanager.php @@ -374,7 +374,6 @@ function targetDownloadPopup(f) { if($isEditor == 1){ ?>
-
Editor diff --git a/collections/datasets/publiclist.php b/collections/datasets/publiclist.php new file mode 100644 index 0000000000..da9f75225e --- /dev/null +++ b/collections/datasets/publiclist.php @@ -0,0 +1,53 @@ +getPublicDatasets(); + +?> + + + Public Datasets List + '; + echo ''; + echo ''; + } + ?> + + + + + +
+

Public Datasets List

+ +
+ + + From 8f183253a2cfc80c24e38d58d4d695bae8779825 Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Thu, 13 May 2021 16:16:10 -0700 Subject: [PATCH 03/27] orders public datasets by name --- classes/OccurrenceDataset.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/OccurrenceDataset.php b/classes/OccurrenceDataset.php index 1c85102bc0..6497182860 100644 --- a/classes/OccurrenceDataset.php +++ b/classes/OccurrenceDataset.php @@ -19,7 +19,7 @@ public function __destruct(){ public function getPublicDatasets(){ $retArr = array(); - $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp, ispublic FROM omoccurdatasets WHERE ispublic=1'; + $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp, ispublic FROM omoccurdatasets WHERE ispublic=1 ORDER BY name'; $rs = $this->conn->query($sql); while($r = $rs->fetch_assoc()){ $retArr[] = $r; From 6b270fcd49530a8c2bee95181514b37da4c170c7 Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Thu, 13 May 2021 17:14:21 -0700 Subject: [PATCH 04/27] Adds page for public dataset visualization --- classes/OccurrenceDataset.php | 18 ++++++++++ collections/datasets/public.php | 52 +++++++++++++++++++++++++++++ collections/datasets/publiclist.php | 2 +- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 collections/datasets/public.php diff --git a/classes/OccurrenceDataset.php b/classes/OccurrenceDataset.php index 6497182860..6307222259 100644 --- a/classes/OccurrenceDataset.php +++ b/classes/OccurrenceDataset.php @@ -28,6 +28,24 @@ public function getPublicDatasets(){ return $retArr; } + public function getPublicDatasetMetadata($dsid){ + $retArr = array(); + if($dsid){ + //Get and return individual dataset + $sql = 'SELECT datasetid, name, notes, uid, sortsequence, initialtimestamp FROM omoccurdatasets WHERE (datasetid = '.$dsid.') AND ispublic=1'; + $rs = $this->conn->query($sql); + while($r = $rs->fetch_object()){ + $retArr['name'] = $r->name; + $retArr['notes'] = $r->notes; + $retArr['uid'] = $r->uid; + $retArr['sort'] = $r->sortsequence; + $retArr['ts'] = $r->initialtimestamp; + } + $rs->free(); + } + return $retArr; + } + public function getDatasetMetadata($dsid){ $retArr = array(); if($GLOBALS['SYMB_UID'] && $dsid){ diff --git a/collections/datasets/public.php b/collections/datasets/public.php new file mode 100644 index 0000000000..1b85f388aa --- /dev/null +++ b/collections/datasets/public.php @@ -0,0 +1,52 @@ +getPublicDatasetMetadata($datasetid); + +?> + + + Dataset: <?php echo $dArr['name'] ;?> + '; + echo ''; + echo ''; + } + ?> + + + + + +
+

Dataset:

+
    + +

    + + +
+
+ + + diff --git a/collections/datasets/publiclist.php b/collections/datasets/publiclist.php index da9f75225e..233bfe47f7 100644 --- a/collections/datasets/publiclist.php +++ b/collections/datasets/publiclist.php @@ -40,7 +40,7 @@ // print_r($dArr); if($dArr){ foreach($dArr as $row) { - echo '
  • '.$row['name'].'
  • '; + echo '
  • '.$row['name'].'
  • '; } } ;?> From 0570c949b21e59cfa75174d5cbfebeb91d39a40b Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Thu, 13 May 2021 17:58:20 -0700 Subject: [PATCH 05/27] Adds count of records in dataset and link to dataset search results --- collections/datasets/public.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/collections/datasets/public.php b/collections/datasets/public.php index 1b85f388aa..bcc03e1e4d 100644 --- a/collections/datasets/public.php +++ b/collections/datasets/public.php @@ -3,13 +3,15 @@ include_once($SERVER_ROOT.'/classes/OccurrenceDataset.php'); header("Content-Type: text/html; charset=".$CHARSET); +// Datasets $datasetid = array_key_exists('datasetid',$_REQUEST)?$_REQUEST['datasetid']:0; if(!is_numeric($datasetid)) $datasetid = 0; $datasetManager = new OccurrenceDataset(); $dArr = $datasetManager->getPublicDatasetMetadata($datasetid); - +$searchUrl = '../../collections/list.php?datasetid='.$datasetid; +$ocArr = $datasetManager->getOccurrences($datasetid); ?> @@ -41,8 +43,12 @@
    Date: Mon, 17 May 2021 12:56:23 -0700 Subject: [PATCH 06/27] enables WYSIWYG classic editor for dataset notes --- collections/datasets/datasetmanager.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/collections/datasets/datasetmanager.php b/collections/datasets/datasetmanager.php index a1cefc10f3..7838bb1dac 100644 --- a/collections/datasets/datasetmanager.php +++ b/collections/datasets/datasetmanager.php @@ -125,6 +125,14 @@ + + From e4b5dafe1d17bab1f23d85cfbcdd4c7f889b9ce9 Mon Sep 17 00:00:00 2001 From: Laura Rocha Prado Date: Wed, 9 Jun 2021 15:20:13 -0700 Subject: [PATCH 14/27] adds preset for direct link for dataset downloading Currently, there is an issue with the link: it triggers some sort of endless redirect in the page. --- collections/datasets/public.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collections/datasets/public.php b/collections/datasets/public.php index 80e5d17c53..9de3a8b1b7 100644 --- a/collections/datasets/public.php +++ b/collections/datasets/public.php @@ -13,6 +13,7 @@ $searchUrl = '../../collections/list.php?datasetid='.$datasetid; $tableUrl = '../../collections/listtabledisplay.php?datasetid='.$datasetid; $taxaUrl = '../../collections/list.php?datasetid='.$datasetid.'&tabindex=0'; +// $downloadUrl = '../../collections/download/index.php?datasetid='.$datasetid; $ocArr = $datasetManager->getOccurrences($datasetid); ?> @@ -52,7 +53,6 @@

    View samples in this Dataset (Table view)

    View list of taxa in this Dataset

    -
    Date: Wed, 9 Jun 2021 15:23:13 -0700 Subject: [PATCH 15/27] removes tiny credit from tinymce footer --- collections/datasets/datasetmanager.php | 1 + 1 file changed, 1 insertion(+) diff --git a/collections/datasets/datasetmanager.php b/collections/datasets/datasetmanager.php index 1fc5bac17a..34e248dd62 100644 --- a/collections/datasets/datasetmanager.php +++ b/collections/datasets/datasetmanager.php @@ -135,6 +135,7 @@ toolbar: [ 'undo redo | bold italic underline | link | alignleft aligncenter alignright | formatselect | bullist numlist | indent outdent | blockquote | image', ], + branding: false }); + +
    Material Sample
    -
    -
    - - -
    -
    - -
    - -
    -
    - -
    - -
    + See GGBN Material Sample Extension documentation
    + +
    +
    + + + + + + +
    +
    + + +
    +
    + + +
    +
    + + + + + + +
    +
    + + + + + + +
    +
    + + + + + + +
    +
    + + +
    +
    + + +
    +
    + + + +
    +
    + + +
    +
    + + +
    - SELECT msID, materialSampleType, concentration, concentrationUnit, concentrationMethod, ratioOfAbsorbance260_230, ratioOfAbsorbance260_280, volume, volumeUnit, -weight, weightUnit, weightMethod, purificationMethod, quality, qualityRemarks, qualityCheckDate, sampleSize, sieving, dnaHybridization, dnaMeltingPoint, -estimatedSize, poolDnaExtracts, sampleDesignation, initialTimestamp +
    + + + + + + +
    +
    + + +
    +
    + + + + +
    +
    +
    \ No newline at end of file diff --git a/config/schema-1.0/dev/db_schema_patch_materialSample.sql b/config/schema-1.0/dev/db_schema_patch_materialSample.sql index 6469842966..1b365f25c7 100644 --- a/config/schema-1.0/dev/db_schema_patch_materialSample.sql +++ b/config/schema-1.0/dev/db_schema_patch_materialSample.sql @@ -1,37 +1,79 @@ - CREATE TABLE `ommaterialsample` ( - `msID` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `matSampleID` INT UNSIGNED NOT NULL AUTO_INCREMENT, `occid` INT UNSIGNED NOT NULL, - `materialSampleType` VARCHAR(45) NOT NULL, + `sampleType` VARCHAR(45) NOT NULL, + `catalogNumber` VARCHAR(45) NULL, `guid` VARCHAR(150) NULL, - `concentration` DOUBLE NULL COMMENT 'Concentration of DNA (weight ng/volume �l)', - `concentrationUnit` VARCHAR(45) NULL COMMENT 'Examples: ng/�l', - `concentrationMethod` VARCHAR(45) NULL COMMENT 'Examples: Nanodrop, Qubit', - `ratioOfAbsorbance260_230` DOUBLE NULL, - `ratioOfAbsorbance260_280` DOUBLE NULL, - `volume` DOUBLE NULL, - `volumeUnit` VARCHAR(45) NULL COMMENT 'Examples: �l, ml', - `weight` DOUBLE NULL, - `weightUnit` VARCHAR(45) NULL COMMENT 'Examples: ng, g', - `weightMethod` VARCHAR(45) NULL COMMENT 'Examples: Agarose gel, bioanalyzer, tape station', - `purificationMethod` VARCHAR(45) NULL COMMENT 'Examples: QIAquick Purification Kit Qiagen', - `quality` VARCHAR(45) NULL, - `qualityRemarks` VARCHAR(45) NULL, - `qualityCheckDate` VARCHAR(45) NULL, + `condition` VARCHAR(45) NULL, + `disposition` VARCHAR(45) NULL, + `preservationType` VARCHAR(45) NULL, + `preparationDetails` VARCHAR(250) NULL, + `preparationDate` DATETIME NULL, + `preparedByUid` INT UNSIGNED NULL, + `individualCount` VARCHAR(45) NULL, `sampleSize` VARCHAR(45) NULL, - `sieving` VARCHAR(45) NULL, - `dnaHybridization` VARCHAR(45) NULL, - `dnaMeltingPoint` VARCHAR(45) NULL, - `estimatedSize` VARCHAR(45) NULL, - `poolDnaExtracts` VARCHAR(45) NULL, - `sampleDesignation` VARCHAR(45) NULL, - `dynamicProperties` TEXT NULL, + `storageLocation` VARCHAR(45) NULL, + `remarks` VARCHAR(250) NULL, + `dynamicFields` JSON NULL, + `recordID` VARCHAR(45) NULL, + `initialtimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp, + PRIMARY KEY (`matSampleID`), + INDEX `FK_ommatsample_occid_idx` (`occid` ASC), + INDEX `FK_ommatsample_prepUid_idx` (`preparedByUid` ASC), + CONSTRAINT `FK_ommatsample_occid` FOREIGN KEY (`occid`) REFERENCES `omoccurrences` (`occid`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `FK_ommatsample_prepUid` FOREIGN KEY (`preparedByUid`) REFERENCES `users` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE); + + +INSERT INTO ctcontrolvocab(title,tableName,fieldName, limitToList) + VALUES("Material Sample Type","ommaterialsample","materialSampleType",1); + +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "tissue", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "culture strain", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "specimen", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "DNA", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "RNA", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "Protein", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsample" AND fieldName = "materialSampleType"; + + +CREATE TABLE `ommaterialsampleextended` ( + `matSampleExtendedID` INT NOT NULL AUTO_INCREMENT, + `matSampleID` INT UNSIGNED NOT NULL, + `fieldName` VARCHAR(45) NOT NULL, + `fieldValue` VARCHAR(250) NOT NULL, + `fieldUnits` VARCHAR(45) NULL, `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`msID`), - INDEX `FK_ommaterialsample_occid_idx` (`occid` ASC), - CONSTRAINT `FK_ommaterialsample_occid` FOREIGN KEY (`occid`) REFERENCES `omoccurrences` (`occid`) ON DELETE CASCADE ON UPDATE CASCADE) -COMMENT = 'https://tools.gbif.org/dwca-validator/extension.do?id=http://data.ggbn.org/schemas/ggbn/terms/MaterialSample'; + PRIMARY KEY (`matSampleExtendedID`), + INDEX `FK_matsampleextend_matSampleID_idx` (`matSampleID` ASC), + INDEX `IX_matsampleextend_fieldName` (`fieldName` ASC), + INDEX `IX_matsampleextend_fieldValue` (`fieldValue` ASC), + CONSTRAINT `FK_matsampleextend_matSampleID` FOREIGN KEY (`matSampleID`) REFERENCES `ommaterialsample` (`matSampleID`) ON DELETE CASCADE ON UPDATE CASCADE); + +INSERT INTO ctcontrolvocab(title,tableName,fieldName, limitToList) + VALUES("Material Sample Type","ommaterialsampleextended","fieldName",0); + +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "concentration", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "concentrationMethod", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "ratioOfAbsorbance260_230", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "ratioOfAbsorbance260_280", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "volume", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "weight", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "weightMethod", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "purificationMethod", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "quality", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "qualityRemarks", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "qualityCheckDate", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "sieving", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "dnaHybridization", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "dnaMeltingPoint", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "estimatedSize", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "poolDnaExtracts", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; +INSERT INTO ctcontrolvocabterm(cvID, term, activeStatus) SELECT cvID, "sampleDesignation", 1 FROM ctcontrolvocab WHERE tableName = "ommaterialsampleextended" AND fieldName = "fieldName"; + + + + +//Skip following for now CREATE TABLE `ommatsampamplification` ( `msAmpID` INT UNSIGNED NOT NULL AUTO_INCREMENT, `msID` INT UNSIGNED NOT NULL, @@ -99,3 +141,5 @@ CREATE TABLE `ommatsampcloning` ( INDEX `FK_ommatsampcloning_msID_idx` (`msID` ASC), CONSTRAINT `FK_ommatsampcloning_msID` FOREIGN KEY (`msID`) REFERENCES `ommaterialsample` (`msID`) ON DELETE CASCADE ON UPDATE CASCADE) COMMENT = 'https://tools.gbif.org/dwca-validator/extension.do?id=http://data.ggbn.org/schemas/ggbn/terms/Cloning'; + + diff --git a/config/schema-1.0/dev/db_schema_patch_pending.sql b/config/schema-1.0/dev/db_schema_patch_pending.sql deleted file mode 100644 index 135524d8a8..0000000000 --- a/config/schema-1.0/dev/db_schema_patch_pending.sql +++ /dev/null @@ -1,840 +0,0 @@ -INSERT IGNORE INTO schemaversion (versionnumber) values ("1.2"); - -ALTER TABLE `adminlanguages` - ADD COLUMN `ISO 639-3` VARCHAR(3) NULL AFTER `iso639_2`; - -CREATE TABLE `geographicthesaurus` ( - `geoThesID` INT NOT NULL AUTO_INCREMENT, - `geoterm` VARCHAR(100) NULL, - `abbreviation` VARCHAR(45) NULL, - `iso2` VARCHAR(45) NULL, - `iso3` VARCHAR(45) NULL, - `numcode` INT NULL, - `category` VARCHAR(45) NULL, - `termstatus` INT NULL, - `acceptedID` INT NULL, - `parentID` INT NULL, - `notes` VARCHAR(250) NULL, - `dynamicProps` TEXT NULL, - `footprintWKT` TEXT NULL, - `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`geoThesID`), - INDEX `IX_geothes_termname` (`geoterm` ASC), - INDEX `IX_geothes_abbreviation` (`abbreviation` ASC), - INDEX `IX_geothes_iso2` (`iso2` ASC), - INDEX `IX_geothes_iso3` (`iso3` ASC)); - -ALTER TABLE `geographicthesaurus` - ADD INDEX `FK_geothes_acceptedID_idx` (`acceptedID` ASC), - ADD INDEX `FK_geothes_parentID_idx` (`parentID` ASC); - -ALTER TABLE `geographicthesaurus` - ADD CONSTRAINT `FK_geothes_acceptedID` FOREIGN KEY (`acceptedID`) REFERENCES `geographicthesaurus` (`geoThesID`) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT `FK_geothes_parentID` FOREIGN KEY (`parentID`) REFERENCES `geographicthesaurus` (`geoThesID`) ON DELETE CASCADE ON UPDATE CASCADE; - -CREATE TABLE `geographicpolygon` ( - `geoThesID` INT NOT NULL, - `footprintPolygon` POLYGON NOT NULL, - `footprintWKT` LONGTEXT NULL, - `geoJSON` LONGTEXT NULL, - `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`geoThesID`), - SPATIAL INDEX `IX_geopoly_polygon` (`footprintPolygon` ASC)) -ENGINE = MyISAM; - - -ALTER TABLE `lkupstateprovince` - CHANGE COLUMN `abbrev` `abbrev` VARCHAR(3) NULL DEFAULT NULL ; - -ALTER TABLE `fmprojects` - CHANGE COLUMN `fulldescription` `fulldescription` VARCHAR(5000) NULL DEFAULT NULL ; - -ALTER TABLE `fmchecklists` - ADD COLUMN `cidKeyLimits` VARCHAR(250) NULL AFTER `Access`; - -ALTER TABLE `fmchklstprojlink` - ADD COLUMN `sortSequence` INT NULL AFTER `mapChecklist`; - -ALTER TABLE `fmchklsttaxalink` - ADD INDEX `FK_chklsttaxalink_tid` (`TID` ASC); - - -ALTER TABLE `kmcharacters` - CHANGE COLUMN `helpurl` `helpurl` VARCHAR(500) NULL DEFAULT NULL AFTER `description`, - ADD COLUMN `referenceUrl` VARCHAR(250) NULL AFTER `helpurl`; - -ALTER TABLE `kmcharacters` - CHANGE COLUMN `sortsequence` `sortsequence` INT(10) UNSIGNED NULL DEFAULT NULL AFTER `notes`, - ADD COLUMN `glossid` INT UNSIGNED NULL AFTER `description`, - ADD INDEX `FK_kmchar_glossary_idx` (`glossid` ASC); - -ALTER TABLE `kmcharacters` - ADD CONSTRAINT `FK_kmchar_glossary` FOREIGN KEY (`glossid`) REFERENCES `glossary` (`glossid`) ON DELETE SET NULL ON UPDATE CASCADE; - -ALTER TABLE `kmcharacters` - ADD COLUMN `activationCode` INT NULL AFTER `notes`; - - -ALTER TABLE `kmcharacterlang` - CHANGE COLUMN `language` `language` VARCHAR(45) NULL ; - -ALTER TABLE `kmcharheading` - CHANGE COLUMN `language` `language` VARCHAR(45) NULL DEFAULT 'English' ; -CREATE TABLE `kmcharheadinglang` ( - `hid` INT UNSIGNED NOT NULL, - `langid` INT NOT NULL, - `headingname` VARCHAR(100) NOT NULL, - `notes` VARCHAR(250) NULL, - `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`hid`, `langid`), - CONSTRAINT `FK_kmcharheadinglang_hid` FOREIGN KEY (`hid`) REFERENCES `kmcharheading` (`hid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_kmcharheadinglang_langid` FOREIGN KEY (`langid`) REFERENCES `adminlanguages` (`langid`) ON DELETE CASCADE ON UPDATE CASCADE -); - -ALTER TABLE `kmcs` - ADD COLUMN `referenceUrl` VARCHAR(250) NULL AFTER `IllustrationUrl`; - -ALTER TABLE `kmcs` - ADD COLUMN `glossid` INT UNSIGNED NULL AFTER `referenceUrl`, - ADD INDEX `FK_kmcs_glossid_idx` (`glossid` ASC); -ALTER TABLE `kmcs` - ADD CONSTRAINT `FK_kmcs_glossid` FOREIGN KEY (`glossid`) REFERENCES `glossary` (`glossid`) ON DELETE SET NULL ON UPDATE CASCADE; - - -CREATE TABLE `ctcontrolvocab` ( - `cvID` INT(11) NOT NULL AUTO_INCREMENT, - `title` VARCHAR(45) DEFAULT NULL, - `definition` VARCHAR(250) DEFAULT NULL, - `authors` VARCHAR(150) DEFAULT NULL, - `tableName` VARCHAR(45) DEFAULT NULL, - `fieldName` VARCHAR(45) DEFAULT NULL, - `resourceUrl` VARCHAR(150) DEFAULT NULL, - `ontologyClass` VARCHAR(150) DEFAULT NULL, - `ontologyUrl` VARCHAR(150) DEFAULT NULL, - `limitToList` INT(2) DEFAULT 0, - `dynamicProperties` TEXT DEFAULT NULL, - `notes` VARCHAR(45) DEFAULT NULL, - `createdUid` INT(10) unsigned DEFAULT NULL, - `modifiedUid` INT(10) unsigned DEFAULT NULL, - `modifiedTimestamp` DATETIME DEFAULT NULL, - `initialtimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp(), - PRIMARY KEY (`cvID`), - KEY `FK_ctControlVocab_createUid_idx` (`createdUid`), - KEY `FK_ctControlVocab_modUid_idx` (`modifiedUid`), - CONSTRAINT `FK_ctControlVocab_createUid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `FK_ctControlVocab_modUid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE -); - -CREATE TABLE `ctcontrolvocabterm` ( - `cvTermID` INT NOT NULL AUTO_INCREMENT, - `cvID` INT NOT NULL, - `parentCvTermID` INT NULL, - `term` VARCHAR(45) NOT NULL, - `inverseRelationship` VARCHAR(45) NULL, - `collective` VARCHAR(45) NULL, - `definition` VARCHAR(250) DEFAULT NULL, - `resourceUrl` VARCHAR(150) DEFAULT NULL, - `ontologyClass` VARCHAR(150) DEFAULT NULL, - `ontologyUrl` VARCHAR(150) DEFAULT NULL, - `notes` VARCHAR(250) NULL, - `createdUid` INT UNSIGNED NULL, - `modifiedUid` INT UNSIGNED NULL, - `modifiedTimestamp` DATETIME NULL, - `initialTimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp, - PRIMARY KEY (`cvTermID`), - INDEX `FK_ctcontrolVocabTerm_cvID_idx` (`cvID` ASC), - INDEX `FK_ctControlVocabTerm_createUid_idx` (`createdUid` ASC), - INDEX `FK_ctControlVocabTerm_modUid_idx` (`modifiedUid` ASC), - INDEX `IX_controlVocabTerm_term` (`term` ASC), - UNIQUE INDEX `UQ_controlVocabTerm` (`cvID` ASC, `term` ASC), - CONSTRAINT `FK_ctControlVocabTerm_cvID` - FOREIGN KEY (`cvID`) REFERENCES `ctcontrolvocab` (`cvID`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_ctControlVocabTerm_createUid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `FK_ctControlVocabTerm_modUid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - CONSTRAINT `FK_ctControlVocabTerm_cvTermID` FOREIGN KEY (`parentCvTermID`) REFERENCES `ctcontrolvocabterm` (`cvTermID`) ON DELETE SET NULL ON UPDATE CASCADE -); - -ALTER TABLE `ctcontrolvocabterm` - ADD COLUMN `termDisplay` VARCHAR(75) NULL AFTER `term`, - ADD COLUMN `activeStatus` INT NULL DEFAULT 1 AFTER `ontologyUrl`; - -INSERT INTO `ctcontrolvocab` VALUES (1,'Occurrence Relationship Terms',NULL,NULL,'omoccurassociations','relationship',NULL,NULL,NULL,1,NULL,NULL,null,NULL,NULL,'2020-12-02 21:35:38'),(2,'Occurrence Relationship subTypes',NULL,NULL,'omoccurassociations','subType',NULL,NULL,NULL,0,NULL,NULL,null,NULL,NULL,'2020-12-02 22:56:13'); -INSERT INTO `ctcontrolvocabterm` VALUES (1,1,NULL,'subsampleOf','originatingSampleOf',NULL,'a sample or occurrence that was subsequently derived from an originating sample',NULL,'has part: http://purl.obolibrary.org/obo/BFO_0000050',NULL,NULL,null,NULL,NULL,'2020-12-02 21:36:51'),(2,1,NULL,'partOf','partOf',NULL,NULL,NULL,NULL,NULL,NULL,null,NULL,NULL,'2020-12-02 21:38:32'),(3,1,NULL,'siblingOf','siblingOf',NULL,NULL,NULL,NULL,NULL,NULL,null,NULL,NULL,'2020-12-02 21:38:32'),(4,1,NULL,'originatingSampleOf','subsampleOf',NULL,'a sample or occurrence that is the originator of a subsequently modified or partial sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,'originatingSourceOf ?? It isn\'t necessarily a sample. Could be an observation or occurrence or individual etc',null,NULL,NULL,'2020-12-02 23:27:02'),(5,1,NULL,'sharesOriginatingSample','sharesOriginatingSample',NULL,'two samples or occurrences that were subsequently derived from the same originating sample',NULL,NULL,NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(6,2,NULL,'tissue',NULL,NULL,'a tissue sample or occurrence that was subsequently derived from an originating sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(7,2,NULL,'blood',NULL,NULL,'a blood-tissue sample or occurrence that was subsequently derived from an originating sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(8,2,NULL,'fecal',NULL,NULL,'a fecal sample or occurrence that was subsequently derived from an originating sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(9,2,NULL,'hair',NULL,NULL,'a hair sample or occurrence that was subsequently derived from an originating sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(10,2,NULL,'genetic',NULL,NULL,'a genetic extraction sample or occurrence that was subsequently derived from an originating sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:44:23'),(11,1,NULL,'derivedFromSameIndividual','derivedFromSameIndividual',NULL,'a sample or occurrence that is derived from the same biological individual as another occurrence or sample',NULL,'partOf: http://purl.obolibrary.org/obo/BFO_0000051',NULL,NULL,null,NULL,NULL,'2020-12-02 23:48:45'),(12,1,NULL,'analyticalStandardOf','hasAnalyticalStandard',NULL,'a sample or occurrence that serves as an analytical standard or control for another occurrence or sample',NULL,NULL,NULL,NULL,null,NULL,NULL,'2020-12-02 23:48:45'),(13,1,NULL,'hasAnalyticalStandard','analyticalStandardof',NULL,'a sample or occurrence that has an available analytical standard or control',NULL,NULL,NULL,NULL,null,NULL,NULL,'2020-12-02 23:48:45'),(14,1,NULL,'hasHost','hostOf',NULL,'X \'has host\' y if and only if: x is an organism, y is an organism, and x can live on the surface of or within the body of y',NULL,'ecologically related to: http://purl.obolibrary.org/obo/RO_0008506','http://purl.obolibrary.org/obo/RO_0002454',NULL,null,NULL,NULL,'2020-12-02 23:58:18'),(15,1,NULL,'hostOf','hasHost',NULL,'X is \'Host of\' y if and only if: x is an organism, y is an organism, and y can live on the surface of or within the body of x',NULL,'ecologically related to: http://purl.obolibrary.org/obo/RO_0008506','http://purl.obolibrary.org/obo/RO_0002453',NULL,null,NULL,NULL,'2020-12-02 23:58:18'),(16,1,NULL,'ecologicallyOccursWith','ecologicallyOccursWith',NULL,'An interaction relationship describing an occurrence occurring with another organism in the same time and space or same environment',NULL,'ecologically related to: http://purl.obolibrary.org/obo/RO_0008506','http://purl.obolibrary.org/obo/RO_0008506',NULL,null,NULL,NULL,'2020-12-02 23:58:18'); - -ALTER TABLE `omexsiccatititles` - ADD COLUMN `sourceIdentifier` VARCHAR(150) NULL AFTER `source`; - -ALTER TABLE `glossary` - ADD COLUMN `langid` INT UNSIGNED NULL AFTER `language`; - -ALTER TABLE `glossaryimages` - ADD COLUMN `sortSequence` INT NULL AFTER `structures`; - - -ALTER TABLE `referenceobject` - CHANGE COLUMN `cheatauthors` `cheatauthors` VARCHAR(400) NULL DEFAULT NULL , - CHANGE COLUMN `cheatcitation` `cheatcitation` VARCHAR(500) NULL DEFAULT NULL ; - - -ALTER TABLE `uploadspectemp` - ADD COLUMN `organismID` VARCHAR(150) NULL AFTER `datasetID`, - ADD COLUMN `materialSampleID` VARCHAR(150) NULL AFTER `organismID`, - ADD COLUMN `locationID` VARCHAR(150) NULL AFTER `preparations`, - ADD COLUMN `continent` VARCHAR(45) NULL AFTER `locationID`, - ADD COLUMN `waterBody` VARCHAR(150) NULL AFTER `continent`, - ADD COLUMN `islandGroup` VARCHAR(75) NULL AFTER `waterBody`, - ADD COLUMN `island` VARCHAR(75) NULL AFTER `islandGroup`, - ADD COLUMN `countryCode` VARCHAR(5) NULL AFTER `island`, - ADD COLUMN `parentLocationID` VARCHAR(150) NULL AFTER `locationID`, - ADD COLUMN `georeferencedDate` DATETIME NULL AFTER `georeferencedBy`, - ADD COLUMN `paleoJSON` TEXT NULL AFTER `exsiccatiNotes`; - -ALTER TABLE `uploadspectemp` - CHANGE COLUMN `basisOfRecord` `basisOfRecord` VARCHAR(32) NULL DEFAULT NULL COMMENT 'PreservedSpecimen, LivingSpecimen, HumanObservation' ; - -ALTER TABLE `uploadspectemp` - ADD INDEX `Index_uploadspec_othercatalognumbers` (`otherCatalogNumbers` ASC); - -ALTER TABLE `uploadspecparameters` - ADD COLUMN `endpointPublic` INT NULL AFTER `cleanupsp`, - ADD COLUMN `createdUid` INT UNSIGNED NULL AFTER `dlmisvalid`, - ADD INDEX `FK_uploadspecparameters_uid_idx` (`createdUid` ASC); - -ALTER TABLE `uploadspecparameters` - ADD CONSTRAINT `FK_uploadspecparameters_uid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE SET NULL; - -ALTER TABLE `uploadspecparameters` - CHANGE COLUMN `Path` `Path` VARCHAR(500) NULL DEFAULT NULL, - CHANGE COLUMN `QueryStr` `QueryStr` TEXT NULL DEFAULT NULL; - -ALTER TABLE `uploadimagetemp` - CHANGE COLUMN `specimengui` `sourceIdentifier` VARCHAR(150) NULL DEFAULT NULL; - -ALTER TABLE `uploadimagetemp` - ADD COLUMN `sourceUrl` VARCHAR(255) NULL AFTER `owner`, - ADD COLUMN `referenceurl` VARCHAR(255) NULL AFTER `sourceUrl`, - ADD COLUMN `copyright` VARCHAR(255) NULL AFTER `referenceurl`, - ADD COLUMN `accessrights` VARCHAR(255) NULL AFTER `copyright`, - ADD COLUMN `rights` VARCHAR(255) NULL AFTER `accessrights`, - ADD COLUMN `locality` VARCHAR(250) NULL AFTER `rights`; - -ALTER TABLE `uploadimagetemp` - CHANGE COLUMN `url` `url` VARCHAR(255) NULL DEFAULT NULL; - -ALTER TABLE `uploadtaxa` - CHANGE COLUMN `UnitInd3` `UnitInd3` VARCHAR(45) NULL DEFAULT NULL ; - -ALTER TABLE `uploadtaxa` - DROP INDEX `UNIQUE_sciname` , - ADD UNIQUE INDEX `UNIQUE_sciname` (`SciName` ASC, `RankId` ASC, `Author` ASC, `AcceptedStr` ASC); - - -ALTER TABLE `images` - CHANGE COLUMN `url` `url` VARCHAR(255) NULL DEFAULT NULL; - -ALTER TABLE `images` - ADD INDEX `Index_images_datelastmod` (`InitialTimeStamp` ASC); - -ALTER TABLE `images` - ADD COLUMN `sortOccurrence` INT NULL DEFAULT 5 AFTER `sortsequence`; - -ALTER TABLE `images` - ADD COLUMN `defaultDisplay` INT NULL AFTER `dynamicProperties`; - - -ALTER TABLE `taxa` - ADD COLUMN `reviewStatus` INT NULL AFTER `PhyloSortSequence`, - ADD COLUMN `displayStatus` INT NULL AFTER `reviewStatus`, - ADD COLUMN `isLegitimate` INT NULL AFTER `displayStatus`, - ADD COLUMN `nomenclaturalStatus` VARCHAR(45) NULL AFTER `isLegitimate`, - ADD COLUMN `nomenclaturalCode` VARCHAR(45) NULL AFTER `nomenclaturalStatus`, - CHANGE COLUMN `UnitInd3` `unitInd3` VARCHAR(45) NULL DEFAULT NULL, - CHANGE COLUMN `Status` `statusNotes` VARCHAR(50) NULL DEFAULT NULL ; - -ALTER TABLE `taxstatus` - ADD COLUMN `taxonomicStatus` VARCHAR(45) NULL AFTER `family`, - ADD COLUMN `taxonomicSource` VARCHAR(45) NULL AFTER `taxonomicStatus`, - ADD COLUMN `sourceIdentifier` VARCHAR(150) NULL AFTER `taxonomicSource`, - ADD COLUMN `modifiedUid` INT UNSIGNED NULL AFTER `SortSequence`, - ADD COLUMN `modifiedTimestamp` DATETIME NULL AFTER `modifiedUid`, - ADD INDEX `FK_taxstatus_uid_idx` (`modifiedUid` ASC); - -ALTER TABLE `taxstatus` - ADD CONSTRAINT `FK_taxstatus_uid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE SET NULL; - -ALTER TABLE `taxstatus` - DROP INDEX `Index_hierarchy`; - -#ALTER TABLE `taxstatus` -# DROP PRIMARY KEY, -# ADD PRIMARY KEY USING BTREE (`tid`, `taxauthid`); - -ALTER TABLE `taxstatus` - ADD INDEX `Index_tid` (`tid` ASC); - -UPDATE taxavernaculars v INNER JOIN adminlanguages l ON v.language = l.langname -SET v.langid = l.langid -WHERE v.langid IS NULL; -UPDATE taxavernaculars v INNER JOIN adminlanguages l ON v.language = l.iso639_1 -SET v.langid = l.langid -WHERE v.langid IS NULL; -UPDATE taxavernaculars v INNER JOIN adminlanguages l ON v.language = l.iso639_2 -SET v.langid = l.langid -WHERE v.langid IS NULL; - -ALTER TABLE `taxavernaculars` - CHANGE COLUMN `Language` `Language` VARCHAR(15) NULL , - DROP INDEX `unique-key` , - ADD UNIQUE INDEX `unique-key` (`VernacularName` ASC, `TID` ASC, `langid` ASC); - -ALTER TABLE `taxaresourcelinks` - ADD UNIQUE INDEX `UNIQUE_taxaresource` (`tid` ASC, `sourcename` ASC); - -ALTER TABLE `taxadescrblock` - DROP FOREIGN KEY `FK_taxadescrblock_tid`; -ALTER TABLE `taxadescrblock` - DROP INDEX `Index_unique` ; -ALTER TABLE `taxadescrblock` - ADD INDEX `FK_taxadescrblock_tid_idx` (`tid` ASC); -ALTER TABLE `taxadescrblock` - ADD CONSTRAINT `FK_taxadescrblock_tid` FOREIGN KEY (`tid`) REFERENCES `taxa` (`TID`) ON DELETE RESTRICT ON UPDATE CASCADE; -ALTER TABLE `taxadescrstmts` - CHANGE COLUMN `heading` `heading` VARCHAR(75) NULL ; - - -#Paleo tables -CREATE TABLE `omoccurpaleo` ( - `paleoID` INT UNSIGNED NOT NULL AUTO_INCREMENT, - `occid` INT UNSIGNED NOT NULL, - `eon` VARCHAR(65) NULL, - `era` VARCHAR(65) NULL, - `period` VARCHAR(65) NULL, - `epoch` VARCHAR(65) NULL, - `earlyInterval` VARCHAR(65) NULL, - `lateInterval` VARCHAR(65) NULL, - `absoluteAge` VARCHAR(65) NULL, - `storageAge` VARCHAR(65) NULL, - `stage` VARCHAR(65) NULL, - `localStage` VARCHAR(65) NULL, - `biota` VARCHAR(65) NULL COMMENT 'Flora or Fanua', - `biostratigraphy` VARCHAR(65) NULL COMMENT 'Biozone', - `taxonEnvironment` VARCHAR(65) NULL COMMENT 'Marine or not', - `lithogroup` VARCHAR(65) NULL, - `formation` VARCHAR(65) NULL, - `member` VARCHAR(65) NULL, - `bed` VARCHAR(65) NULL, - `lithology` VARCHAR(250) NULL, - `stratRemarks` VARCHAR(250) NULL, - `element` VARCHAR(250) NULL, - `slideProperties` VARCHAR(1000) NULL, - `geologicalContextID` VARCHAR(45) NULL, - `initialtimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`paleoID`), - INDEX `FK_paleo_occid_idx` (`occid` ASC), - UNIQUE INDEX `UNIQUE_occid` (`occid` ASC), - CONSTRAINT `FK_paleo_occid` FOREIGN KEY (`occid`) REFERENCES `omoccurrences` (`occid`) ON DELETE CASCADE ON UPDATE CASCADE -) COMMENT = 'Occurrence Paleo tables'; - - -#ALTER TABLE `omoccurpaleo` -# ADD COLUMN `geologicalContextID` VARCHAR(45) NULL AFTER `slideProperties`; - -#ALTER TABLE `omoccurpaleo` -# CHANGE COLUMN `taxonEnvironment` `taxonEnvironment` VARCHAR(65) NULL DEFAULT NULL COMMENT 'Marine or not' AFTER `biostratigraphy`, -# CHANGE COLUMN `lithology` `lithology` VARCHAR(250) NULL DEFAULT NULL , -# ADD COLUMN `bed` VARCHAR(65) NULL AFTER `member`; - -#ALTER TABLE `uploadspectemp` -#DROP COLUMN `bed`, -#DROP COLUMN `member`, -#DROP COLUMN `formation`, -#DROP COLUMN `lithogroup`, -#DROP COLUMN `lithostratigraphicTermsProperty`, -#DROP COLUMN `highestBiostratigraphicZone`, -#DROP COLUMN `lowestBiostratigraphicZone`, -#DROP COLUMN `latestAgeOrHighestStage`, -#DROP COLUMN `earliestAgeOrLowestStage`, -#DROP COLUMN `latestEpochOrHighestSeries`, -#DROP COLUMN `earliestEpochOrLowestSeries`, -#DROP COLUMN `latestPeriodOrHighestSystem`, -#DROP COLUMN `earliestPeriodOrLowestSystem`, -#DROP COLUMN `latestEraOrHighestErathem`, -#DROP COLUMN `earliestEraOrLowestErathem`, -#DROP COLUMN `latestEonOrHighestEonothem`, -#DROP COLUMN `earliestEonOrLowestEonothem`; - - -CREATE TABLE `omoccurpaleogts` ( - `gtsid` INT UNSIGNED NOT NULL AUTO_INCREMENT, - `gtsterm` VARCHAR(45) NOT NULL, - `rankid` INT NOT NULL, - `rankname` VARCHAR(45) NULL, - `parentgtsid` INT UNSIGNED NULL, - `initialtimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - UNIQUE INDEX `UNIQUE_gtsterm` (`gtsid` ASC), - PRIMARY KEY (`gtsid`) -); - -ALTER TABLE `omoccurpaleogts` - ADD INDEX `FK_gtsparent_idx` (`parentgtsid` ASC); - -ALTER TABLE `omoccurpaleogts` - ADD CONSTRAINT `FK_gtsparent` FOREIGN KEY (`parentgtsid`) REFERENCES `omoccurpaleogts` (`gtsid`) ON DELETE NO ACTION ON UPDATE CASCADE; - -INSERT INTO `omoccurpaleogts` (`gtsterm`, `rankid`, `rankname`) VALUES ('Precambrian', 10, 'supereon'); -INSERT INTO omoccurpaleogts(gtsterm,rankid,rankname,parentgtsid) SELECT DISTINCT eon, 20, "eon", 1 FROM paleochronostratigraphy; -INSERT INTO omoccurpaleogts(gtsterm,rankid,rankname,parentgtsid) - SELECT DISTINCT era, 30, "era", g.gtsid FROM paleochronostratigraphy p INNER JOIN omoccurpaleogts g ON p.eon = g.gtsterm WHERE era IS NOT NULL; -INSERT INTO omoccurpaleogts(gtsterm,rankid,rankname,parentgtsid) - SELECT DISTINCT period, 40, "period", g.gtsid FROM paleochronostratigraphy p INNER JOIN omoccurpaleogts g ON p.era = g.gtsterm WHERE period IS NOT NULL; -INSERT INTO omoccurpaleogts(gtsterm,rankid,rankname,parentgtsid) - SELECT DISTINCT epoch, 50, "epoch", g.gtsid FROM paleochronostratigraphy p INNER JOIN omoccurpaleogts g ON p.period = g.gtsterm WHERE epoch IS NOT NULL; -INSERT INTO omoccurpaleogts(gtsterm,rankid,rankname,parentgtsid) - SELECT DISTINCT p.stage, 60, "age", g.gtsid FROM paleochronostratigraphy p INNER JOIN omoccurpaleogts g ON p.epoch = g.gtsterm WHERE stage IS NOT NULL; - -UPDATE omoccurpaleogts -SET rankid = 40, rankname = "period", parentgtsid = 13 -WHERE gtsterm IN("Pennsylvanian","Mississippian"); - - -DROP TABLE omoccurlithostratigraphy; -DROP TABLE paleochronostratigraphy; - - -ALTER TABLE `omcollections` - ADD COLUMN `dynamicProperties` TEXT NULL AFTER `accessrights`, - ADD COLUMN `datasetID` VARCHAR(250) NULL AFTER `collectionId`; - -ALTER TABLE `omcollections` - ADD COLUMN `contactJson` LONGTEXT NULL AFTER `email`; -ALTER TABLE `omcollections` - CHANGE COLUMN `contactJson` `contactJson` JSON NULL DEFAULT NULL; - -UPDATE omcollections - SET contactJson = CONCAT('[{"firstName":"","lastName":"',contact,'","email":"',email,'"}]') - WHERE contact IS NOT NULL AND contactJson IS NULL; - -ALTER TABLE `omcollections` - ADD COLUMN `resourceJson` LONGTEXT NULL AFTER `homepage`; -ALTER TABLE `omcollections` - CHANGE COLUMN `resourceJson` `resourceJson` JSON NULL DEFAULT NULL; - -UPDATE omcollections - SET resourceJson = CONCAT('[{"title":{"en":"Homepage"},"url":"',homepage,'"}]') - WHERE homepage LIKE "http%" AND resourceJson IS NULL; - -DROP TABLE `omcollectioncontacts`; - -ALTER TABLE `omcollcategories` - ADD COLUMN `sortsequence` INT NULL AFTER `notes`; - -ALTER TABLE `omoccurdeterminations` - DROP FOREIGN KEY `FK_omoccurdets_tid`; - -ALTER TABLE `omoccurdeterminations` - CHANGE COLUMN `scientificNameAuthorship` `scientificNameAuthorship` VARCHAR(100) NULL DEFAULT NULL AFTER `sciname`, - CHANGE COLUMN `tidinterpreted` `tidInterpreted` INT(10) UNSIGNED NULL DEFAULT NULL , - CHANGE COLUMN `iscurrent` `isCurrent` INT(2) NULL DEFAULT 0 , - CHANGE COLUMN `printqueue` `printQueue` INT(2) NULL DEFAULT 0 , - CHANGE COLUMN `sortsequence` `sortSequence` INT(10) UNSIGNED NULL DEFAULT 10 , - CHANGE COLUMN `initialtimestamp` `initialTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() , - ADD COLUMN `family` VARCHAR(150) NULL AFTER `dateIdentifiedInterpreted`, - ADD COLUMN `taxonRemarks` VARCHAR(45) NULL AFTER `identificationRemarks`; - -ALTER TABLE `omoccurdeterminations` - ADD CONSTRAINT `FK_omoccurdets_tid` FOREIGN KEY (`tidInterpreted`) REFERENCES `taxa` (`TID`); - -ALTER TABLE `omoccurdeterminations` - DROP INDEX `Index_unique` , - ADD UNIQUE INDEX `UQ_omoccurdets_unique` (`occid` ASC, `dateIdentified` ASC, `identifiedBy` ASC, `sciname` ASC), - DROP INDEX `Index_dateIdentInterpreted` , - ADD INDEX `IX_omoccurdets_dateIdInterpreted` (`dateIdentifiedInterpreted` ASC), - ADD INDEX `IX_omoccurdets_sciname` (`sciname` ASC), - ADD INDEX `IX_omoccurdets_family` (`family` ASC), - ADD INDEX `IX_omoccurdets_isCurrent` (`isCurrent` ASC); - - -ALTER TABLE `agents` - DROP FOREIGN KEY `FK_preferred_recby`; - -ALTER TABLE `agents` - CHANGE COLUMN `initialtimestamp` `initialTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() AFTER `modifiedUid`, - CHANGE COLUMN `agentid` `agentID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `familyname` `familyName` VARCHAR(45) NOT NULL , - CHANGE COLUMN `firstname` `firstName` VARCHAR(45) NULL DEFAULT NULL , - CHANGE COLUMN `middlename` `middleName` VARCHAR(45) NULL DEFAULT NULL , - CHANGE COLUMN `startyearactive` `startYearActive` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `endyearactive` `endYearActive` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `preferredrecbyid` `preferredRecByID` BIGINT(20) NULL DEFAULT NULL , - CHANGE COLUMN `namestring` `nameString` TEXT NULL DEFAULT NULL , - CHANGE COLUMN `yearofbirth` `yearOfBirth` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `yearofbirthmodifier` `yearOfBirthModifier` VARCHAR(12) NULL DEFAULT '' , - CHANGE COLUMN `yearofdeath` `yearOfDeath` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `yearofdeathmodifier` `yearOfDeathModifier` VARCHAR(12) NULL DEFAULT '' , - CHANGE COLUMN `uuid` `recordID` CHAR(43) NULL DEFAULT NULL AFTER `living`, - CHANGE COLUMN `datelastmodified` `dateLastModified` DATETIME NULL DEFAULT NULL , - CHANGE COLUMN `lastmodifiedbyuid` `modifiedUid` INT(11) UNSIGNED NULL DEFAULT NULL ; - -ALTER TABLE `agents` - ADD CONSTRAINT `FK_preferred_recby` FOREIGN KEY (`preferredRecByID`) REFERENCES `agents` (`agentID`) ON DELETE NO ACTION ON UPDATE CASCADE; - -ALTER TABLE `agents` - DROP FOREIGN KEY `FK_preferred_recby`; - -ALTER TABLE `agents` - ADD COLUMN `createdUid` INT UNSIGNED NULL AFTER `modifiedUid`, - DROP INDEX `FK_preferred_recby` , - ADD INDEX `FK_agents_preferred_recby` (`preferredRecByID` ASC), - ADD INDEX `FK_agents_modUid_idx` (`modifiedUid` ASC), - ADD INDEX `FK_agents_createdUid_idx` (`createdUid` ASC); - -ALTER TABLE `agents` - ADD CONSTRAINT `FK_agents_preferred_recby` FOREIGN KEY (`preferredRecByID`) REFERENCES `agents` (`agentID`) ON DELETE NO ACTION ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agents_modUid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agents_createdUid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE; - -ALTER TABLE `agentlinks` - CHANGE COLUMN `lastmodifiedbyuid` `modifiedUid` INT(11) UNSIGNED NULL DEFAULT NULL AFTER `createdUid`, - CHANGE COLUMN `timestampcreated` `initialTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() AFTER `dateLastModified`, - CHANGE COLUMN `agentlinksid` `agentLinksID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `agentid` `agentID` BIGINT NOT NULL , - CHANGE COLUMN `createdbyuid` `createdUid` INT(11) UNSIGNED NOT NULL , - CHANGE COLUMN `datelastmodified` `dateLastModified` DATETIME NULL DEFAULT NULL ; - -ALTER TABLE `agentlinks` - ADD INDEX `FK_agentlinks_agentID_idx` (`agentID` ASC); - -ALTER TABLE `agentlinks` - ADD CONSTRAINT `FK_agentlinks_agentID` FOREIGN KEY (`agentID`) REFERENCES `agents` (`agentID`) ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE `agentlinks` - CHANGE COLUMN `createdUid` `createdUid` INT(11) UNSIGNED NULL , - ADD INDEX `FK_agentlinks_modUid_idx` (`modifiedUid` ASC), - ADD INDEX `FK_agentlinks_createdUid_idx` (`createdUid` ASC); - -ALTER TABLE `agentlinks` - ADD CONSTRAINT `FK_agentlinks_modUid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agentlinks_createdUid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE; - -ALTER TABLE `agentnames` - CHANGE COLUMN `lastmodifiedbyuid` `modifiedUid` INT(11) NULL DEFAULT NULL AFTER `createdUid`, - CHANGE COLUMN `timestampcreated` `initialTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() AFTER `dateLastModified`, - CHANGE COLUMN `agentnamesid` `agentNamesID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `agentid` `agentID` INT(11) NOT NULL , - CHANGE COLUMN `createdbyuid` `createdUid` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `datelastmodified` `dateLastModified` DATETIME NULL DEFAULT NULL ; - -ALTER TABLE `agentteams` - DROP FOREIGN KEY `agentteams_ibfk_1`, - DROP FOREIGN KEY `agentteams_ibfk_2`; - -ALTER TABLE `agentteams` - CHANGE COLUMN `agentteamid` `agentTeamID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `teamagentid` `teamAgentID` BIGINT(20) NOT NULL , - CHANGE COLUMN `memberagentid` `memberAgentID` BIGINT(20) NOT NULL ; - -ALTER TABLE `agentteams` - ADD CONSTRAINT `agentteams_ibfk_1` FOREIGN KEY (`teamAgentID`) REFERENCES `agents` (`agentID`) ON DELETE NO ACTION ON UPDATE CASCADE, - ADD CONSTRAINT `agentteams_ibfk_2` FOREIGN KEY (`memberAgentID`) REFERENCES `agents` (`agentID`) ON DELETE NO ACTION ON UPDATE CASCADE; - -ALTER TABLE `agentsfulltext` - CHANGE COLUMN `agentsfulltextid` `agentsFulltextID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `agentid` `agentID` INT(11) NOT NULL , - CHANGE COLUMN `taxonomicgroups` `taxonomicGroups` TEXT NULL DEFAULT NULL , - CHANGE COLUMN `collectionsat` `collectionsAt` TEXT NULL DEFAULT NULL ; - -ALTER TABLE `agentrelations` - DROP FOREIGN KEY `agentrelations_ibfk_1`, - DROP FOREIGN KEY `agentrelations_ibfk_2`, - DROP FOREIGN KEY `agentrelations_ibfk_3`; - -ALTER TABLE `agentrelations` - CHANGE COLUMN `timestampcreated` `initialTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() AFTER `modifiedUid`, - CHANGE COLUMN `agentrelationsid` `agentRelationsID` BIGINT(20) NOT NULL AUTO_INCREMENT , - CHANGE COLUMN `fromagentid` `fromAgentID` BIGINT(20) NOT NULL , - CHANGE COLUMN `toagentid` `toAgentID` BIGINT(20) NOT NULL , - CHANGE COLUMN `createdbyuid` `createdUid` INT(11) UNSIGNED NULL DEFAULT NULL , - CHANGE COLUMN `datelastmodified` `dateLastModified` DATETIME NULL DEFAULT NULL , - CHANGE COLUMN `lastmodifiedbyuid` `modifiedUid` INT(11) UNSIGNED NULL DEFAULT NULL ; - -ALTER TABLE `agentrelations` - ADD CONSTRAINT `FK_agentrelations_ibfk_1` FOREIGN KEY (`fromAgentID`) REFERENCES `agents` (`agentID`) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agentrelations_ibfk_2` FOREIGN KEY (`toAgentID`) REFERENCES `agents` (`agentID`) ON DELETE CASCADE ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agentrelations_ibfk_3` FOREIGN KEY (`relationship`) REFERENCES `ctrelationshiptypes` (`relationship`) ON DELETE NO ACTION ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agentrelations_createUid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - ADD CONSTRAINT `FK_agentrelations_modUid` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE; - -ALTER TABLE `agentrelations` - ADD INDEX `FK_agentrelations_modUid_idx` (`modifiedUid` ASC), - ADD INDEX `FK_agentrelations_createUid_idx` (`createdUid` ASC); - -ALTER TABLE `agentnumberpattern` - DROP FOREIGN KEY `agentnumberpattern_ibfk_1`; - -ALTER TABLE `agentnumberpattern` - CHANGE COLUMN `agentnumberpatternid` `agentNumberPatternID` BIGINT(20) NOT NULL , - CHANGE COLUMN `agentid` `agentID` BIGINT(20) NOT NULL , - CHANGE COLUMN `numbertype` `numberType` VARCHAR(50) NULL DEFAULT 'Collector number' , - CHANGE COLUMN `numberpattern` `numberPattern` VARCHAR(255) NULL DEFAULT NULL , - CHANGE COLUMN `numberpatterndescription` `numberPatternDescription` VARCHAR(900) NULL DEFAULT NULL , - CHANGE COLUMN `startyear` `startYear` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `endyear` `endYear` INT(11) NULL DEFAULT NULL , - CHANGE COLUMN `integerincrement` `integerIncrement` INT(11) NULL DEFAULT NULL ; - -ALTER TABLE `agentnumberpattern` - ADD CONSTRAINT `agentnumberpattern_ibfk_1` FOREIGN KEY (`agentID`) REFERENCES `agents` (`agentID`) ON DELETE CASCADE ON UPDATE CASCADE; - -ALTER TABLE `users` - ADD COLUMN `dynamicProperties` TEXT NULL AFTER `usergroups`; - -ALTER TABLE `userroles` - ADD UNIQUE INDEX `Unique_userroles` (`uid` ASC, `role` ASC, `tablename` ASC, `tablepk` ASC); - -#Tag all collection admin and editors as non-volunteer crowdsource editors -UPDATE omcrowdsourcecentral c INNER JOIN omcrowdsourcequeue q ON c.omcsid = q.omcsid - INNER JOIN userroles r ON c.collid = r.tablepk AND q.uidprocessor = r.uid - SET q.isvolunteer = 0 - WHERE r.role IN("CollAdmin","CollEditor") AND q.isvolunteer = 1; - - -UPDATE omoccurgenetic SET initialtimestamp = now() WHERE initialtimestamp IS NULL; - -ALTER TABLE `omoccurgenetic` - CHANGE COLUMN `resourceurl` `resourceurl` VARCHAR(500) NULL , - CHANGE COLUMN `notes` `notes` VARCHAR(250) NULL DEFAULT NULL , - CHANGE COLUMN `initialtimestamp` `initialtimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp ; - -ALTER TABLE `omoccurgenetic` - ADD UNIQUE INDEX `UNIQUE_omoccurgenetic` (`occid` ASC, `resourceurl` ASC); - -ALTER TABLE `omoccuridentifiers` - ADD COLUMN `sortBy` INT NULL AFTER `notes`; - -ALTER TABLE `omoccurassociations` - DROP FOREIGN KEY `FK_occurassoc_occidassoc`, - DROP FOREIGN KEY `FK_occurassoc_uidcreated`, - DROP FOREIGN KEY `FK_occurassoc_uidmodified`; - -ALTER TABLE `omoccurassociations` - CHANGE COLUMN `occidassociate` `occidAssociate` INT(10) UNSIGNED NULL DEFAULT NULL , - CHANGE COLUMN `resourceurl` `resourceUrl` VARCHAR(250) NULL DEFAULT NULL , - CHANGE COLUMN `verbatimsciname` `verbatimSciname` VARCHAR(250) NULL DEFAULT NULL , - CHANGE COLUMN `createduid` `createdUid` INT(10) UNSIGNED NULL DEFAULT NULL , - CHANGE COLUMN `datelastmodified` `modifiedTimestamp` DATETIME NULL DEFAULT NULL , - CHANGE COLUMN `modifieduid` `modifiedUid` INT(10) UNSIGNED NULL DEFAULT NULL , - ADD COLUMN `subType` VARCHAR(45) NULL AFTER `relationship`; - -ALTER TABLE `tmtraits` - ADD COLUMN `projectGroup` VARCHAR(45) NULL AFTER `notes`, - ADD COLUMN `isPublic` INT NULL DEFAULT 1 AFTER `projectGroup`, - ADD COLUMN `includeInSearch` INT NULL AFTER `isPublic`; - -ALTER TABLE `omoccurassociations` - ADD CONSTRAINT `FK_occurassoc_occidassoc` FOREIGN KEY (`occidAssociate`) REFERENCES `omoccurrences` (`occid`) ON DELETE SET NULL ON UPDATE CASCADE, - ADD CONSTRAINT `FK_occurassoc_uidcreated` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE, - ADD CONSTRAINT `FK_occurassoc_uidmodified` FOREIGN KEY (`modifiedUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE; - -ALTER TABLE `omoccurassociations` - ADD UNIQUE INDEX `UQ_omoccurassoc_occid` (`occid` ASC, `occidAssociate` ASC, `relationship` ASC), - ADD UNIQUE INDEX `UQ_omoccurassoc_external` (`occid` ASC, `relationship` ASC, `resourceUrl` ASC), - ADD UNIQUE INDEX `UQ_omoccurassoc_sciname` (`occid` ASC, `verbatimSciname` ASC); - - -ALTER TABLE `omoccurdatasets` - ADD COLUMN `description` TEXT NULL AFTER `name`, - ADD COLUMN `category` VARCHAR(45) NULL AFTER `name`, - ADD COLUMN `isPublic` INT NULL AFTER `category`, - ADD COLUMN `includeInSearch` INT NULL AFTER `isPublic`; - -ALTER TABLE `omoccurdatasets` - ADD COLUMN `parentDatasetID` INT UNSIGNED NULL AFTER `isPublic`, - ADD INDEX `FK_omoccurdatasets_parent_idx` (`parentDatasetID` ASC); - -ALTER TABLE `omoccurdatasets` - ADD CONSTRAINT `FK_omoccurdatasets_parent` FOREIGN KEY (`parentDatasetID`) REFERENCES `omoccurdatasets` (`datasetid`) ON DELETE SET NULL ON UPDATE CASCADE; - - -CREATE TABLE `referencedatasetlink` ( - `refid` INT NOT NULL, - `datasetid` INT UNSIGNED NOT NULL, - `createdUid` INT UNSIGNED NULL, - `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`refid`, `datasetid`), - INDEX `FK_refdataset_datasetid_idx` (`datasetid` ASC), - INDEX `FK_refdataset_uid_idx` (`createdUid` ASC), - CONSTRAINT `FK_refdataset_refid` FOREIGN KEY (`refid`) REFERENCES `referenceobject` (`refid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_refdataset_datasetid` FOREIGN KEY (`datasetid`) REFERENCES `omoccurdatasets` (`datasetid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_refdataset_uid` FOREIGN KEY (`createdUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE); - - -CREATE TABLE `igsnverification` ( - `igsn` VARCHAR(15) NOT NULL, - `occid` INT UNSIGNED NULL, - `status` INT NULL, - `initialtimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp, - INDEX `FK_igsn_occid_idx` (`occid` ASC), - INDEX `INDEX_igsn` (`igsn` ASC), - CONSTRAINT `FK_igsn_occid` FOREIGN KEY (`occid`) REFERENCES `omoccurrences` (`occid`) ON DELETE CASCADE ON UPDATE CASCADE); - -ALTER TABLE `igsnverification` - ADD COLUMN `catalogNumber` VARCHAR(45) NULL AFTER `occid`; - -CREATE TABLE `omoccurloanuser` ( - `loanid` INT UNSIGNED NOT NULL, - `uid` INT UNSIGNED NOT NULL, - `accessType` VARCHAR(45) NOT NULL, - `notes` VARCHAR(250) NULL, - `modifiedByUid` INT UNSIGNED NULL, - `initialTimestamp` TIMESTAMP NULL DEFAULT current_timestamp, - PRIMARY KEY (`loanid`, `uid`), - INDEX `FK_occurloan_uid_idx` (`uid` ASC), - INDEX `FK_occurloan_modifiedByUid_idx` (`modifiedByUid` ASC), - CONSTRAINT `FK_occurloan_loanid` FOREIGN KEY (`loanid`) REFERENCES `omoccurloans` (`loanid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_occurloan_uid` FOREIGN KEY (`uid`) REFERENCES `users` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `FK_occurloan_modifiedByUid` FOREIGN KEY (`modifiedByUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE); - - -CREATE TABLE `specprocstatus` ( - `spsID` INT UNSIGNED NOT NULL AUTO_INCREMENT, - `occid` INT UNSIGNED NOT NULL, - `processName` VARCHAR(45) NOT NULL, - `result` VARCHAR(45) NULL, - `processVariables` VARCHAR(150) NOT NULL, - `processorUid` INT UNSIGNED NULL, - `initialTimestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp, - PRIMARY KEY (`spsID`), - INDEX `specprocstatus_occid_idx` (`occid` ASC), - INDEX `specprocstatus_uid_idx` (`processorUid` ASC), - CONSTRAINT `specprocstatus_occid` FOREIGN KEY (`occid`) REFERENCES `omoccurrences` (`occid`) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT `specprocstatus_uid` FOREIGN KEY (`processorUid`) REFERENCES `users` (`uid`) ON DELETE SET NULL ON UPDATE CASCADE); - - -ALTER TABLE `omoccurrences` - CHANGE COLUMN `eventID` `eventID` VARCHAR(150) NULL DEFAULT NULL, - CHANGE COLUMN `locationID` `locationID` VARCHAR(150) NULL DEFAULT NULL, - CHANGE COLUMN `labelProject` `labelProject` varchar(250) DEFAULT NULL, - CHANGE COLUMN `georeferenceRemarks` `georeferenceRemarks` VARCHAR(500) NULL DEFAULT NULL, - ADD COLUMN `georeferencedDate` DATETIME NULL AFTER `georeferencedBy`, - ADD COLUMN `parentLocationID` VARCHAR(150) NULL AFTER `locationID`, - ADD COLUMN `samplingProtocol` VARCHAR(150) NULL AFTER `parentLocationID`, - DROP INDEX `idx_occrecordedby`; - -ALTER TABLE `omoccurrences` - ADD COLUMN `organismID` VARCHAR(150) NULL AFTER `datasetID`, - ADD COLUMN `continent` VARCHAR(45) NULL AFTER `locationID`, - ADD COLUMN `islandGroup` VARCHAR(75) NULL AFTER `waterBody`, - ADD COLUMN `island` VARCHAR(75) NULL AFTER `islandGroup`, - ADD COLUMN `countryCode` VARCHAR(5) NULL AFTER `island`, - ADD COLUMN `availability` INT(2) NULL AFTER `previousIdentifications`; - -ALTER TABLE `omoccurrences` - CHANGE COLUMN `waterBody` `waterBody` VARCHAR(75) NULL DEFAULT NULL AFTER `continent`; - -ALTER TABLE `omoccurrences` - ADD INDEX `Index_locationID` (`locationID` ASC), - ADD INDEX `Index_eventID` (`eventID` ASC); - -ALTER TABLE `omoccurrences` - ADD UNIQUE INDEX `UNIQUE_occurrenceID` (`occurrenceID` ASC), - ADD INDEX `Index_occur_localitySecurity` (`localitySecurity` ASC); - -ALTER TABLE `omoccurrences` - DROP INDEX `Index_gui` , - ADD UNIQUE INDEX `Index_gui` (`occurrenceID` ASC); - -ALTER TABLE `omoccurrences` - ADD INDEX `Index_latlng` (`decimalLatitude` ASC, `decimalLongitude` ASC); - -DELETE FROM omoccurrencesfulltext -WHERE locality IS NULL AND recordedby IS NULL; - -REPLACE INTO omoccurrencesfulltext(occid,locality,recordedby) - SELECT occid, CONCAT_WS("; ", municipality, locality), recordedby - FROM omoccurrences - WHERE municipality IS NOT NULL OR locality IS NOT NULL OR recordedby IS NOT NULL; -OPTIMIZE table omoccurrencesfulltext; - -REPLACE INTO omoccurpoints (occid,point) -SELECT occid, Point(decimalLatitude, decimalLongitude) -FROM omoccurrences -WHERE decimalLatitude IS NOT NULL AND decimalLongitude IS NOT NULL; -OPTIMIZE table omoccurpoints; - - -#Add edittype field and run update query to tag batch updates (edittype = 1) -ALTER TABLE `omoccuredits` - ADD COLUMN `editType` INT NULL DEFAULT 0 COMMENT '0 = general edit, 1 = batch edit' AFTER `AppliedStatus`; - -UPDATE omoccuredits e INNER JOIN (SELECT initialtimestamp, uid, count(DISTINCT occid) as cnt -FROM omoccuredits -GROUP BY initialtimestamp, uid -HAVING cnt > 2) as inntab ON e.initialtimestamp = inntab.initialtimestamp AND e.uid = inntab.uid -SET edittype = 1; - - - -#Occurrence Trait/Attribute adjustments - #Add measurementID (GUID) to tmattribute table - #Add measurementAccuracy field - #Add measurementUnitID field - #Add measurementMethod field - #Add exportHeader for trait name - #Add exportHeader for state name - - - -#Review pubprofile (adminpublications) - - - -#Collection GUID issue - - -DELIMITER // - -DROP TRIGGER IF EXISTS `omoccurrences_insert`// -CREATE TRIGGER `omoccurrences_insert` AFTER INSERT ON `omoccurrences` -FOR EACH ROW BEGIN - IF NEW.`decimalLatitude` IS NOT NULL AND NEW.`decimalLongitude` IS NOT NULL THEN - INSERT INTO omoccurpoints (`occid`,`point`) - VALUES (NEW.`occid`,Point(NEW.`decimalLatitude`, NEW.`decimalLongitude`)); - END IF; - IF NEW.`recordedby` IS NOT NULL OR NEW.`municipality` IS NOT NULL OR NEW.`locality` IS NOT NULL THEN - INSERT INTO omoccurrencesfulltext (`occid`,`recordedby`,`locality`) - VALUES (NEW.`occid`,NEW.`recordedby`,CONCAT_WS("; ", NEW.`municipality`, NEW.`locality`)); - END IF; -END -// - -DROP TRIGGER IF EXISTS `omoccurrences_update`// -CREATE TRIGGER `omoccurrences_update` AFTER UPDATE ON `omoccurrences` -FOR EACH ROW BEGIN - IF NEW.`decimalLatitude` IS NOT NULL AND NEW.`decimalLongitude` IS NOT NULL THEN - IF EXISTS (SELECT `occid` FROM omoccurpoints WHERE `occid`=NEW.`occid`) THEN - UPDATE omoccurpoints - SET `point` = Point(NEW.`decimalLatitude`, NEW.`decimalLongitude`) - WHERE `occid` = NEW.`occid`; - ELSE - INSERT INTO omoccurpoints (`occid`,`point`) - VALUES (NEW.`occid`,Point(NEW.`decimalLatitude`, NEW.`decimalLongitude`)); - END IF; - ELSE - DELETE FROM omoccurpoints WHERE `occid` = NEW.`occid`; - END IF; - - IF NEW.`recordedby` IS NOT NULL OR NEW.`municipality` IS NOT NULL OR NEW.`locality` IS NOT NULL THEN - IF EXISTS (SELECT `occid` FROM omoccurrencesfulltext WHERE `occid`=NEW.`occid`) THEN - UPDATE omoccurrencesfulltext - SET `recordedby` = NEW.`recordedby`,`locality` = CONCAT_WS("; ", NEW.`municipality`, NEW.`locality`) - WHERE `occid` = NEW.`occid`; - ELSE - INSERT INTO omoccurrencesfulltext (`occid`,`recordedby`,`locality`) - VALUES (NEW.`occid`,NEW.`recordedby`,CONCAT_WS("; ", NEW.`municipality`, NEW.`locality`)); - END IF; - ELSE - DELETE FROM omoccurrencesfulltext WHERE `occid` = NEW.`occid`; - END IF; -END -// - -DELIMITER ; From 7436c237126d60a0cf2ee6882c80d023b8fb42f9 Mon Sep 17 00:00:00 2001 From: Edward Gilbert Date: Wed, 11 Aug 2021 15:41:05 -0700 Subject: [PATCH 24/27] Conflict Resolution 2 Conflict resolution for merging/updating branch code from master branch --- .settings/org.eclipse.core.resources.prefs | 2 + config/symbini_template.php | 53 +++---- .../lang/collections/individual/index.en.php | 137 +++++++++++++++++- 3 files changed, 166 insertions(+), 26 deletions(-) create mode 100644 .settings/org.eclipse.core.resources.prefs diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..99f26c0203 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/config/symbini_template.php b/config/symbini_template.php index cf210dff9f..bee5c2325d 100644 --- a/config/symbini_template.php +++ b/config/symbini_template.php @@ -6,7 +6,7 @@ $EXTENDED_LANG = 'en'; //Add all languages you want to support separated by commas (e.g. en,es); currently supported languages: en,es $TID_FOCUS = ''; $ADMIN_EMAIL = ''; -$CHARSET = ''; //ISO-8859-1 or UTF-8 +$CHARSET = 'UTF-8'; //ISO-8859-1 or UTF-8 $PORTAL_GUID = ''; //Typically a UUID $SECURITY_KEY = ''; //Typically a UUID used to verify access to certain web service @@ -15,6 +15,10 @@ $TEMP_DIR_ROOT = $SERVER_ROOT.'/temp'; //Must be writable by Apache; will use system default if not specified $LOG_PATH = $SERVER_ROOT.'/content/logs'; //Must be writable by Apache; will use /temp/logs if not specified +//Path to CSS files +$CSS_BASE_PATH = $CLIENT_ROOT.'/css/symb'; +$CSS_VERSION_LOCAL = '1'; //Changing this variable will force a refresh of main.css styles within users browser cache for all pages + //the root for the image directory $IMAGE_DOMAIN = ''; //Domain path to images, if different from portal $IMAGE_ROOT_URL = ''; //URL path to images @@ -71,33 +75,32 @@ //$SMTP_ARR = array('host'=>'','port'=>587,'username'=>'','password'=>'','timeout'=>60); //Host is requiered, others are optional and can be removed $RIGHTS_TERMS = array( - 'CC0 1.0 (Public-domain)' => 'http://creativecommons.org/publicdomain/zero/1.0/', - 'CC BY (Attribution)' => 'http://creativecommons.org/licenses/by/4.0/', - 'CC BY-NC (Attribution-Non-Commercial)' => 'http://creativecommons.org/licenses/by-nc/4.0/' + 'CC0 1.0 (Public-domain)' => 'http://creativecommons.org/publicdomain/zero/1.0/', + 'CC BY (Attribution)' => 'http://creativecommons.org/licenses/by/4.0/', + 'CC BY-NC (Attribution-Non-Commercial)' => 'http://creativecommons.org/licenses/by-nc/4.0/' ); -$CSS_VERSION_LOCAL = '20170414'; //Changing this variable will force a refresh of main.css styles within users browser cache for all pages /* -//Default editor properties; properties defined in collection will override these values -$EDITOR_PROPERTIES = array( - 'modules-panel' => array( - 'paleo' => array('status'=>0,'titleOverride'=>'Paleonotology Terms') - ), - 'features' => array('catalogDupeCheck'=>1,'otherCatNumDupeCheck'=>0,'dupeSearch'=>1), - 'labelOverrides' => array(), - 'cssTerms' => array( - '#recordNumberDiv'=>array('float'=>'left','margin-right'=>'2px'), - '#recordNumberDiv input'=>array('width'=>'60px'), - '#eventDateDiv'=>array('float'=>'left'), - '#eventDateDiv input'=>array('width'=>'110px') - ), - 'customCSS' => array(), - 'customLookups' => array( - 'processingStatus' => array('Unprocessed','Stage 1','Stage 2','Pending Review','Expert Required','Reviewed','Closed') - ) -); -// json: {"editorProps":{"modules-panel":{"paleo":{"status":1}}}} -*/ + //Default editor properties; properties defined in collection will override these values + $EDITOR_PROPERTIES = array( + 'modules-panel' => array( + 'paleo' => array('status'=>0,'titleOverride'=>'Paleonotology Terms') + ), + 'features' => array('catalogDupeCheck'=>1,'otherCatNumDupeCheck'=>0,'dupeSearch'=>1), + 'labelOverrides' => array(), + 'cssTerms' => array( + '#recordNumberDiv'=>array('float'=>'left','margin-right'=>'2px'), + '#recordNumberDiv input'=>array('width'=>'60px'), + '#eventDateDiv'=>array('float'=>'left'), + '#eventDateDiv input'=>array('width'=>'110px') + ), + 'customCSS' => array(), + 'customLookups' => array( + 'processingStatus' => array('Unprocessed','Stage 1','Stage 2','Pending Review','Expert Required','Reviewed','Closed') + ) + ); + // json: {"editorProps":{"modules-panel":{"paleo":{"status":1}}}} + */ $COOKIE_SECURE = false; if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443){ diff --git a/content/lang/collections/individual/index.en.php b/content/lang/collections/individual/index.en.php index 7523442847..9006464025 100644 --- a/content/lang/collections/individual/index.en.php +++ b/content/lang/collections/individual/index.en.php @@ -4,8 +4,143 @@ Language: English ------------------ */ - $LANG['DETAILS'] = 'Details'; $LANG['MAP'] = 'Map'; $LANG['GENETIC'] = 'Genetic'; +$LANG['DUPLICATES'] = 'Duplicates'; +$LANG['COMMENTS'] = 'Comments'; +$LANG['LINKEDRES'] = 'Linked Resources'; +$LANG['TRAITS'] = 'Traits'; +$LANG['EDITHIST'] = 'Edit History'; +$LANG['ONLOANTO'] = 'On Loan To'; +$LANG['RELATEDOCC'] = 'Related Occurrences'; +$LANG['CATALOGNUM'] = 'Catalog #'; +$LANG['OCCID'] = 'Occurrence ID'; +$LANG['SECONDARYCATNUM'] = 'Secondary Catalog #'; +$LANG['TAXON'] = 'Taxon'; +$LANG['TAXPROTECTED'] = 'taxonomic protection applied for non-authorized users'; +$LANG['IDPROTECTED'] = 'identification protected'; +$LANG['IDQUALIFIER'] = 'Identification Qualifier'; +$LANG['FAMILY'] = 'Family'; +$LANG['DETERMINER'] = 'Determiner'; +$LANG['TAXONREMARKS'] = 'Taxon Remarks'; +$LANG['IDREMARKS'] = 'ID Remarks'; +$LANG['IDREFERENCES'] = 'ID References'; +$LANG['SHOWDETHISTORY'] = 'Show Determination History'; +$LANG['HIDEDETHISTORY'] = 'Hide Determination History'; +$LANG['DETHISTORY'] = 'Determination History'; +$LANG['SPECIDPROTECTED'] = 'Species identification protected'; +$LANG['DATE'] = 'Date'; +$LANG['TYPESTATUS'] = 'Type Status'; +$LANG['OBSERVER'] = 'Observer'; +$LANG['COLLECTOR'] = 'Collector'; +$LANG['NUMBER'] = 'Number'; +$LANG['EVENTDATE'] = 'Date'; +$LANG['VERBATIMDATE'] = 'Verbatim Date'; +$LANG['ADDITIONALCOLLECTORS'] = 'Additional Collectors'; +$LANG['LOCALITY'] = 'Locality'; +$LANG['LOCDETAILSPROTECTED'] = 'locality details protected'; +$LANG['LOCPROTECTEXPLANATION'] = 'typically done to protect locations of rare or threatened taxa'; +$LANG['VERBATIMCOORDINATES'] = 'Verbatim Coordinates'; +$LANG['LOCATIONREMARKS'] = 'Location Remarks'; +$LANG['GEOREFREMARKS'] = 'Georeference Remarks'; +$LANG['ELEVATION'] = 'Elevation'; +$LANG['METERS'] = 'meters'; +$LANG['VERBATELEVATION'] = 'Verbatim Elevation'; +$LANG['FT'] = 'ft'; +$LANG['DEPTH'] = 'Depth'; +$LANG['VERBATDEPTH'] = 'Verbatim Depth'; +$LANG['LOCPROTECTION'] = 'Locality protection applied for non-authorized users (current user: approved to view)'; +$LANG['HABITAT'] = 'Habitat'; +$LANG['SUBSTRATE'] = 'Substrate'; +$LANG['ASSOCTAXA'] = 'Associated Taxa'; +$LANG['DESCRIPTION'] = 'Description'; +$LANG['DYNAMICPROPERTIES'] = 'Dynamic Properties'; +$LANG['REPROCONDITION'] = 'Reproductive Condition'; +$LANG['LIFESTAGE'] = 'Life Stage'; +$LANG['SEX'] = 'Sex'; +$LANG['INDCOUNT'] = 'Individual Count'; +$LANG['SAMPPROTOCOL'] = 'Sampling Protocol'; +$LANG['PREPARATIONS'] = 'Preparations'; +$LANG['NOTES'] = 'Notes'; +$LANG['DISPOSITION'] = 'Disposition'; +$LANG['PALEOTERMS'] = 'Paleontology Terms'; +$LANG['ABSOLUTEAGE'] = 'Absolute Age'; +$LANG['STORAGEAGE'] = 'Storage Age'; +$LANG['LOCALSTAGE'] = 'Local Stage'; +$LANG['BIOTA'] = 'Biota'; +$LANG['BIOSTRAT'] = 'Biostratigraphy'; +$LANG['GROUP'] = 'Group'; +$LANG['FORMATION'] = 'Formation'; +$LANG['TAXENVIR'] = 'Taxon Environment'; +$LANG['MEMBER'] = 'Member'; +$LANG['BED'] = 'Bed'; +$LANG['LITHOLOGY'] = 'Lithology'; +$LANG['STRATREMARKS'] = 'Remarks'; +$LANG['ELEMENT'] = 'Element'; +$LANG['SLIDEPROPS'] = 'Slide Properties'; +$LANG['CONTEXTID'] = 'Context ID'; +$LANG['EXSERIES'] = 'Exsiccati series'; +$LANG['SPECIMAGES'] = 'Specimen Images'; +$LANG['AUTHOR'] = 'Author'; +$LANG['OPENMED'] = 'Open Medium Image'; +$LANG['OPENLARGE'] = 'Open Large Image'; +$LANG['OPENSRC'] = 'Open Source Image'; +$LANG['USAGERIGHTS'] = 'Usage Rights'; +$LANG['RIGHTSHOLDER'] = 'Rights Holder'; +$LANG['ACCESSRIGHTS'] = 'Access Rights'; +$LANG['USAGEPOLICY'] = 'General Data Usage Policy'; +$LANG['RECORDID'] = 'Record ID'; +$LANG['ADDITIONALINFO'] = 'For additional information about this specimen, please contact'; +$LANG['SPECREFERENCED'] = 'Specimen being referenced'; +$LANG['SEEERROR'] = 'Do you see an error? If so, errors can be fixed using the'; +$LANG['OCCEDITOR'] = 'Occurrence Editor'; +$LANG['SEEANERROR'] = 'See an error?'; +$LANG['LOGIN'] = 'Log In'; +$LANG['TOEDITDATA'] = 'to edit data'; +$LANG['ASSOCREFS'] = 'Associated References'; +$LANG['IDENTIFIER'] = 'Identifier'; +$LANG['LOCUS'] = 'Locus'; +$LANG['CURRENTRECORD'] = 'Current Record'; +$LANG['CATALOGNUMBER'] = 'Catalog Number'; +$LANG['GUID'] = 'GUID'; +$LANG['LATESTID'] = 'Latest Identification'; +$LANG['IDENTIFIEDBY'] = 'Identified by'; +$LANG['DUPES'] = 'Specimen Duplicates'; +$LANG['EXSICCATAE'] = 'Associated Exsiccatae'; +$LANG['SHOWFULLDETAILS'] = 'Show Full Details'; +$LANG['COMMENTNOTPUBLIC'] = 'Comment not public due to pending abuse report (viewable to administrators only)'; +$LANG['REPORT'] = 'Report as inappropriate or abusive'; +$LANG['MAKECOMPUB'] = 'Make comment public'; +$LANG['CONFIRMDELETE'] = 'Are you sure you want to delete comment'; +$LANG['DELETECOMMENT'] = 'Delete Comment'; +$LANG['NOCOMMENTS'] = 'No comments have been submitted'; +$LANG['NEWCOMMENT'] = 'New Comment'; +$LANG['SUBMITCOMMENT'] = 'Submit Comment'; +$LANG['MESSAGEWARNING'] = 'Messages over 500 words long may be automatically truncated. All comments are moderated.'; +$LANG['TOLEAVECOMMENT'] = 'to leave a comment'; +$LANG['ENTEREDBY'] = 'Entered By'; +$LANG['DATEENTERED'] = 'Date entered'; +$LANG['DATEMODIFIED'] = 'Date modified'; +$LANG['SRCDATEMODIFIED'] = 'Source date modified'; +$LANG['INTERNALEDITS'] = 'Internal Edits'; +$LANG['EDITOR'] = 'Editor'; +$LANG['APPLIEDSTATUS'] = 'Applied Status'; +$LANG['APPLIED'] = 'applied'; +$LANG['NOTAPPLIED'] = 'not applied'; +$LANG['FIELD'] = 'Field'; +$LANG['OLDVALUE'] = 'Old Value'; +$LANG['NEWVALUE'] = 'New Value'; +$LANG['NOTEDITED'] = 'Record has not been edited since being entered'; +$LANG['EDITNOTE'] = 'Note: Edits are only viewable by collection administrators and editors'; +$LANG['SOURCE'] = 'Source'; +$LANG['ACCESSTYPE'] = 'Access Type'; +$LANG['COUNT'] = 'Count'; +$LANG['UNABLETOLOCATE'] = 'Unable to locate record'; +$LANG['CHECKING'] = 'Checking archive'; +$LANG['RECORDDELETED'] = 'Record deleted'; +$LANG['VALUE'] = 'Value'; +$LANG['DETERMINATIONNO'] = 'Determination #'; +$LANG['IMAGENO'] = 'Image #'; + ?> \ No newline at end of file From fff2a9c430945a272d8c29b507549832580658fa Mon Sep 17 00:00:00 2001 From: Edward Gilbert Date: Wed, 11 Aug 2021 16:05:50 -0700 Subject: [PATCH 25/27] Conflict Resolution 3 Conflict resolution for merging/updating branch code from master branch --- classes/OccurrenceEditorMaterialSample.php | 38 +-- collections/editor/occurrenceeditor.php | 10 +- collections/misc/collmetaresources.php | 86 +++--- collections/misc/collprofiles.php | 102 ++++---- content/lang/collections/map/index.es.php | 63 ++--- profile/userprofile.php | 289 +++++++++------------ taxa/taxonomy/batchloader.php | 169 +++++++++--- 7 files changed, 420 insertions(+), 337 deletions(-) diff --git a/classes/OccurrenceEditorMaterialSample.php b/classes/OccurrenceEditorMaterialSample.php index 7a81010799..a0207c5a57 100644 --- a/classes/OccurrenceEditorMaterialSample.php +++ b/classes/OccurrenceEditorMaterialSample.php @@ -11,7 +11,7 @@ function __construct(){ } function __destruct(){ - parent::__destruct(); + parent::__destruct(); } public function getMaterialSampleArr(){ @@ -39,30 +39,30 @@ public function addMaterialSample($postArr){ ($postArr['ms_individualCount']?'"'.$postArr['ms_individualCount'].'"':'NULL').','.(is_numeric($postArr['ms_sampleSize'])?$postArr['ms_sampleSize']:'NULL').','. ($postArr['ms_storageLocation']?'"'.$postArr['ms_storageLocation'].'"':'NULL').','.($postArr['ms_remarks']?'"'.$postArr['ms_remarks'].'"':'NULL').')'; if($this->conn->query($sql)){ - return true; - } - else{ - $this->errorMessage = 'ERROR inserting new material sample record into database: '.$this->conn->error; - return false; - } + return true; + } + else{ + $this->errorMessage = 'ERROR inserting new material sample record into database: '.$this->conn->error; + return false; + } } } public function editMaterialSample($postArr){ if($this->matSampleID){ $sql = 'UPDATE ommaterialsample SET sampleType = "'.$this->cleanInStr($postArr['ms_sampleType']). - '",catalogNumber = '.($postArr['ms_catalogNumber']?'"'.$postArr['ms_catalogNumber'].'"':'NULL'). - ',guid = '.($postArr['ms_guid']?'"'.$postArr['ms_guid'].'"':'NULL'). - ',condition = '.($postArr['ms_condition']?'"'.$postArr['ms_condition'].'"':'NULL'). - ',disposition = '.($postArr['ms_disposition']?'"'.$postArr['ms_disposition'].'"':'NULL'). - ',preservationType = '.($postArr['ms_preservationType']?'"'.$postArr['ms_preservationType'].'"':'NULL'). - ',preparationDetails = '.($postArr['ms_preparationDetails']?'"'.$postArr['ms_preparationDetails'].'"':'NULL'). - ',preparationDate = '.($postArr['ms_preparationDate']?'"'.$postArr['ms_preparationDate'].'"':'NULL'). - ',preparedByUid = '.($postArr['ms_preparedByUid']?'"'.$postArr['ms_preparedByUid'].'"':'NULL'). - ',individualCount = '.($postArr['ms_individualCount']?'"'.$postArr['ms_individualCount'].'"':'NULL'). - ',sampleSize = '.($postArr['ms_sampleSize']?'"'.$postArr['ms_sampleSize'].'"':'NULL'). - ',storageLocation = '.($postArr['ms_storageLocation']?'"'.$postArr['ms_storageLocation'].'"':'NULL'). - ',remarks = '.($postArr['ms_remarks']?'"'.$postArr['ms_remarks'].'"':'NULL').' WHERE occid = '.$postArr['occid']; + '",catalogNumber = '.($postArr['ms_catalogNumber']?'"'.$postArr['ms_catalogNumber'].'"':'NULL'). + ',guid = '.($postArr['ms_guid']?'"'.$postArr['ms_guid'].'"':'NULL'). + ',condition = '.($postArr['ms_condition']?'"'.$postArr['ms_condition'].'"':'NULL'). + ',disposition = '.($postArr['ms_disposition']?'"'.$postArr['ms_disposition'].'"':'NULL'). + ',preservationType = '.($postArr['ms_preservationType']?'"'.$postArr['ms_preservationType'].'"':'NULL'). + ',preparationDetails = '.($postArr['ms_preparationDetails']?'"'.$postArr['ms_preparationDetails'].'"':'NULL'). + ',preparationDate = '.($postArr['ms_preparationDate']?'"'.$postArr['ms_preparationDate'].'"':'NULL'). + ',preparedByUid = '.($postArr['ms_preparedByUid']?'"'.$postArr['ms_preparedByUid'].'"':'NULL'). + ',individualCount = '.($postArr['ms_individualCount']?'"'.$postArr['ms_individualCount'].'"':'NULL'). + ',sampleSize = '.($postArr['ms_sampleSize']?'"'.$postArr['ms_sampleSize'].'"':'NULL'). + ',storageLocation = '.($postArr['ms_storageLocation']?'"'.$postArr['ms_storageLocation'].'"':'NULL'). + ',remarks = '.($postArr['ms_remarks']?'"'.$postArr['ms_remarks'].'"':'NULL').' WHERE occid = '.$postArr['occid']; if($this->conn->query($sql)){ return true; } diff --git a/collections/editor/occurrenceeditor.php b/collections/editor/occurrenceeditor.php index 9fd06d3a26..f2723a6a21 100644 --- a/collections/editor/occurrenceeditor.php +++ b/collections/editor/occurrenceeditor.php @@ -440,7 +440,7 @@ } else{ ?> - + - + - + @@ -1229,7 +1229,7 @@ function requestImage(){ -
    +

    @@ -1490,7 +1490,7 @@ function requestImage(){
    @@ -97,17 +98,17 @@ } ?>
    - Contacts +
    '; - if(isset($valueArr['role'])) echo '
    Role: '.$valueArr['role'].'
    '; + if(isset($valueArr['role'])) echo '
    '.(isset($LANG['ROLE'])?$LANG['ROLE']:'Role').': '.$valueArr['role'].'
    '; if(isset($valueArr['email'])){ echo '
    '; - echo 'Email: '.$valueArr['email']; - if(isset($valueArr['centralContact'])) echo ' (central contact)'; + echo ''.(isset($LANG['EMAIL'])?$LANG['EMAIL']:'Email').': '.$valueArr['email']; + if(isset($valueArr['centralContact'])) echo ' ('.(isset($LANG['C_CONTACT'])?$LANG['C_CONTACT']:'central contact').')'; echo '
    '; } - if(isset($valueArr['phone'])) echo '
    Phone: '.$valueArr['phone'].'
    '; + if(isset($valueArr['phone'])) echo '
    '.(isset($LANG['PHONE'])?$LANG['PHONE']:'phone').': '.$valueArr['phone'].'
    '; if(isset($valueArr['orcid'])){ echo '
    '; echo 'ORCID #: '.$valueArr['orcid'].''; @@ -141,53 +142,54 @@ } } else{ - echo 'No contacts have yet been defined'; + echo (isset($LANG['NO_CONTACTS'])?$LANG['NO_CONTACTS']:'No contacts have yet been defined'); } ?>

    - Add/Edit Contact +
    - First name: + :
    - Last name: + :
    - Role: + :
    - Email: + :
    - is central contact +
    - Phone: + :
    - ORCID #: + :
    - - + +
    - Mailing Address + getAddress()){ ?> @@ -196,10 +198,10 @@ echo '
    '; echo $instArr['institutionname'].($instArr['institutioncode']?' ('.$instArr['institutioncode'].')':''); ?> - + - + -
    No addesses linked
    +
    - +
    @@ -296,7 +298,7 @@ function getFormObj(f){ } clearForm(); } - else alert("Link ULR and title is required"); + else alert(""); return jsonObj; } @@ -348,11 +350,11 @@ function resetContactForm(){ function verifyContactForm(f){ if(f.firstName.value == ""){ - alert("First name is a required field"); + alert(""); return false; } if(f.lastName.value == ""){ - alert("First name is a required field"); + alert(""); return false; } return true; diff --git a/collections/misc/collprofiles.php b/collections/misc/collprofiles.php index e6be4defe3..5b35dae133 100644 --- a/collections/misc/collprofiles.php +++ b/collections/misc/collprofiles.php @@ -35,7 +35,7 @@ ?> - <?php echo $DEFAULT_TITLE." ".($collid?$collData[$collid]["collectionname"]:"") ; ?> Collection Profiles + <?php echo $DEFAULT_TITLE." ".($collid?$collData[$collid]["collectionname"]:""); ?> " />
    1){ if($action == 'UpdateStatistics'){ - echo '

    '.$LANG['UPDATE_STATISTICS'].'

    '; + echo '

    '.(isset($LANG['UPDATE_STATISTICS'])?$LANG['UPDATE_STATISTICS']:'Updating statistics related to this collection...').'

    '; $collManager->updateStatistics(true); echo '
    '; } } if($editCode && $collid){ ?> -
    +
    - Data Editor Control Panel +
    - Quick Search - Catalog Number
    + +
    @@ -122,7 +122,7 @@ function toggleById(target){ ?>
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • - +
  • 1){ ?>
    - +
    • - + unreviewedCommentsExist()) echo '- '.$commCnt.' '.(isset($LANG['UNREVIEWED_COMMENTS'])?$LANG['UNREVIEWED_COMMENTS']:'unreviewed comments').''; ?>
    • - +
    • - +
    • @@ -299,12 +299,12 @@ function toggleById(target){ ?>
    • - +
    • - +
    • - +
    • - +
    • - +
    @@ -445,9 +445,9 @@ function toggleById(target){ if($statsArr['georefcnt']&&$statsArr['recordcnt']) $georefPerc = (100*($statsArr['georefcnt']/$statsArr['recordcnt'])); ?>
    -
    +
      -
    • +
    • 1?round($georefPerc):round($georefPerc,2))."%)":'').' '.(isset($LANG['GEOREFERENCED'])?$LANG['GEOREFERENCED']:'georeferenced');?>
    • '.trim($genRefStr,' ,').' '.(isset($LANG['GENETIC_REF'])?$LANG['GENETIC_REF']:'genetic references').''; - if($extrastatsArr['refcnt']) echo '
    • '.number_format($extrastatsArr['refcnt']).' '.(isset($LANG['PUB_REFS'])?$LANG['PUB_REFS']:'publication references').'
    • '; - if($extrastatsArr['SpecimensCountID']){ + if(isset($extrastatsArr['refcnt']) && $extrastatsArr['refcnt']) echo '
    • '.number_format($extrastatsArr['refcnt']).' '.(isset($LANG['PUB_REFS'])?$LANG['PUB_REFS']:'publication references').'
    • '; + if(isset($extrastatsArr['SpecimensCountID']) && $extrastatsArr['SpecimensCountID']){ $spidPerc = (100*($extrastatsArr['SpecimensCountID']/$statsArr['recordcnt'])); echo '
    • '.number_format($extrastatsArr['SpecimensCountID']).($spidPerc?" (".($spidPerc>1?round($spidPerc):round($spidPerc,2))."%)":'').' '.(isset($LANG['IDED_TO_SPECIES'])?$LANG['IDED_TO_SPECIES']:'identified to species').'
    • '; } } - if($statsArr['familycnt']) echo '
    • '.number_format($statsArr['familycnt']).' '.$LANG['FAMILIES'].'
    • '; - if($statsArr['genuscnt']) echo '
    • '.number_format($statsArr['genuscnt']).' '.$LANG['GENERA'].'
    • '; - if($statsArr['speciescnt']) echo '
    • '.number_format($statsArr['speciescnt']).' '.$LANG['SPECIES'].'
    • '; + if(isset($statsArr['familycnt']) && $statsArr['familycnt']) echo '
    • '.number_format($statsArr['familycnt']).' '.(isset($LANG['FAMILIES'])?$LANG['FAMILIES']:'families').'
    • '; + if(isset($statsArr['genuscnt']) && $statsArr['genuscnt']) echo '
    • '.number_format($statsArr['genuscnt']).' '.(isset($LANG['GENERA'])?$LANG['GENERA']:'genera').'
    • '; + if(isset($statsArr['speciescnt']) && $statsArr['speciescnt']) echo '
    • '.number_format($statsArr['speciescnt']).' '.(isset($LANG['SPECIES'])?$LANG['SPECIES']:'species').'
    • '; if($extrastatsArr&&$extrastatsArr['TotalTaxaCount']) echo '
    • '.number_format($extrastatsArr['TotalTaxaCount']).' '.(isset($LANG['TOTAL_TAXA'])?$LANG['TOTAL_TAXA']:'total taxa (including subsp. and var.)').'
    • '; //if($extrastatsArr&&$extrastatsArr['TypeCount']) echo '
    • '.number_format($extrastatsArr['TypeCount']).' '.(isset($LANG['TYPE_SPECIMENS'])?$LANG['TYPE_SPECIMENS']:'type specimens').'
    • '; ?> @@ -491,12 +491,12 @@ function toggleById(target){
    - +
    - +
    - +
    - +
    diff --git a/content/lang/collections/map/index.es.php b/content/lang/collections/map/index.es.php index 8e19a52718..e6e8ddffdf 100644 --- a/content/lang/collections/map/index.es.php +++ b/content/lang/collections/map/index.es.php @@ -1,41 +1,42 @@ \ No newline at end of file diff --git a/profile/userprofile.php b/profile/userprofile.php index bf7026c5f0..b8e443b2f7 100644 --- a/profile/userprofile.php +++ b/profile/userprofile.php @@ -1,6 +1,7 @@
    - Profile Details +
    getCity().', '.$person->getState().' '.$person->getZip(),' ,'); if($cityStateStr) echo '
    '.$cityStateStr.'
    '; if($person->getCountry()) echo '
    '.$person->getCountry().'
    '; - if($person->getUrl()) echo ''; - if($person->getBiography()) echo '
    '.$person->getBiography().'
    '; echo '
    Login name: '.($person->getUserName()?$person->getUserName():'not registered').'
    '; - echo '
    User information: '.($person->getIsPublic()?'public':'private').'
    '; ?>
    + -
    - Taxonomic Relationships - + +
    +
    \ No newline at end of file diff --git a/taxa/taxonomy/batchloader.php b/taxa/taxonomy/batchloader.php index 342f2a364e..12c9f6cf3b 100644 --- a/taxa/taxonomy/batchloader.php +++ b/taxa/taxonomy/batchloader.php @@ -1,15 +1,22 @@ setFileName($ulFileName); } @@ -49,17 +58,13 @@ <?php echo $DEFAULT_TITLE; ?> Taxa Loader - '; - echo ''; - echo ''; - } - ?> + + + + +
    -
    - Taxa Upload +
    + Taxa Upload
    @@ -281,7 +310,7 @@ function checkTransferForm(f){ ?>
    - Transfer Taxa To Central Table + Transfer Taxa To Central Table
    Review upload statistics below before activating. Use the download option to review and/or adjust for reload if necessary.
    @@ -323,7 +352,7 @@ function checkTransferForm(f){
    -
    - Clean and Analyze +
    + Clean and Analyze
    If taxa information was loaded into the UploadTaxa table using other means, one can use this form to clean and analyze taxa names in preparation to loading into the taxonomic tables (taxa, taxstatus).
    - Target Thesaurus: +
    - Kingdom Target: + '; foreach($kingdomArr as $k => $kingdomName){ @@ -492,6 +535,74 @@ function checkTransferForm(f){
    +
    +
    + API Node Loader +
    +
    + This form will batch load a taxonomic node from a selected Taxonomic Authority via their API resources. + This function currently only works for WoRMS +
    +
    +
    + Taxonomic Resource + getTaxonomicResourceList(); + foreach($taxApiList as $taKey => $taValue){ + echo ' '.$taValue.'
    '; + } + ?> +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    + +
    +
    From 20871050810a5d64a15970bfdf2eec927a0d029a Mon Sep 17 00:00:00 2001 From: Edward Gilbert Date: Wed, 11 Aug 2021 16:10:23 -0700 Subject: [PATCH 26/27] Conflict Resolution 4 Conflict resolution for merging/updating branch code from master branch --- collections/individual/index.php | 555 +++++++++++++++++-------------- 1 file changed, 308 insertions(+), 247 deletions(-) diff --git a/collections/individual/index.php b/collections/individual/index.php index fc7dcbf46b..224d53e6b4 100644 --- a/collections/individual/index.php +++ b/collections/individual/index.php @@ -8,8 +8,8 @@ $occid = array_key_exists("occid",$_REQUEST)?trim($_REQUEST["occid"]):0; $collid = array_key_exists("collid",$_REQUEST)?trim($_REQUEST["collid"]):0; -$pk = array_key_exists("pk",$_REQUEST)?trim($_REQUEST["pk"]):""; -$guid = array_key_exists("guid",$_REQUEST)?trim($_REQUEST["guid"]):""; +$pk = array_key_exists('pk',$_REQUEST)?trim($_REQUEST['pk']):''; +$guid = array_key_exists('guid',$_REQUEST)?trim($_REQUEST['guid']):''; $submit = array_key_exists('formsubmit',$_REQUEST)?trim($_REQUEST['formsubmit']):''; $tabIndex = array_key_exists('tabindex',$_REQUEST)?$_REQUEST['tabindex']:0; $clid = array_key_exists("clid",$_REQUEST)?trim($_REQUEST["clid"]):0; @@ -47,32 +47,30 @@ // If other than HTML was requested, return just that content. if(isset($_SERVER['HTTP_ACCEPT'])){ - $done=FALSE; $accept = RdfUtility::parseHTTPAcceptHeader($_SERVER['HTTP_ACCEPT']); - while (!$done && list($key, $mediarange) = each($accept)) { - if ($mediarange=='text/turtle' || $format == 'turtle') { - Header("Content-Type: text/turtle; charset=".$CHARSET); - $dwcManager = new DwcArchiverCore(); - $dwcManager->setCustomWhereSql(" o.occid = $occid "); - echo $dwcManager->getAsTurtle(); - $done = TRUE; + foreach($accept as $key => $mediarange){ + if($mediarange=='text/turtle' || $format == 'turtle') { + Header("Content-Type: text/turtle; charset=".$CHARSET); + $dwcManager = new DwcArchiverCore(); + $dwcManager->setCustomWhereSql(" o.occid = $occid "); + echo $dwcManager->getAsTurtle(); + die; } - if ($mediarange=='application/rdf+xml' || $format == 'rdf') { - Header("Content-Type: application/rdf+xml; charset=".$CHARSET); - $dwcManager = new DwcArchiverCore(); - $dwcManager->setCustomWhereSql(" o.occid = $occid "); - echo $dwcManager->getAsRdfXml(); - $done = TRUE; + elseif($mediarange=='application/rdf+xml' || $format == 'rdf') { + Header("Content-Type: application/rdf+xml; charset=".$CHARSET); + $dwcManager = new DwcArchiverCore(); + $dwcManager->setCustomWhereSql(" o.occid = $occid "); + echo $dwcManager->getAsRdfXml(); + die; } - if ($mediarange=='application/json' || $format == 'json') { - Header("Content-Type: application/json; charset=".$CHARSET); - $dwcManager = new DwcArchiverCore(); - $dwcManager->setCustomWhereSql(" o.occid = $occid "); - echo $dwcManager->getAsJson(); - $done = TRUE; + elseif($mediarange=='application/json' || $format == 'json') { + Header("Content-Type: application/json; charset=".$CHARSET); + $dwcManager = new DwcArchiverCore(); + $dwcManager->setCustomWhereSql(" o.occid = $occid "); + echo $dwcManager->getAsJson(); + die; } } - if($done) die; } if($SYMB_UID){ @@ -112,14 +110,14 @@ $statusStr = $indManager->getErrorMessage(); } } - elseif($submit == "Delete Comment"){ + elseif($submit == 'deleteComment'){ if(!$indManager->deleteComment($_POST['comid'])){ $statusStr = $indManager->getErrorMessage(); } } elseif(array_key_exists('repcomid',$_GET)){ if($indManager->reportComment($_GET['repcomid'])){ - $statusStr = 'Comment reported as inappropriate. Comment will remain unavailable to public until reviewed by an administrator.'; + $statusStr = (isset($LANG['FLAGGEDCOMMENT'])?$LANG['FLAGGEDCOMMENT']:'Comment reported as inappropriate. Comment will remain unavailable to public until reviewed by an administrator.'); } else{ $statusStr = $indManager->getErrorMessage(); @@ -145,18 +143,18 @@ ?> - <?php echo $DEFAULT_TITLE; ?> Detailed Collection Record Information + <?php echo $DEFAULT_TITLE.(isset($LANG['DETAILEDCOLREC'])?$LANG['DETAILEDCOLREC']:'Detailed Collection Record Information'); ?> - - + + '; include_once($SERVER_ROOT.'/includes/googleanalytics.php'); ?> - + @@ -295,19 +293,19 @@ function initializeMap(){ '.(isset($LANG['MAP'])?$LANG['MAP']:'Map').''; if($genticArr) echo '
  • '.(isset($LANG['GENETIC'])?$LANG['GENETIC']:'Genetic').'
  • '; - if($dupClusterArr) echo '
  • Duplicates
  • '; + if($dupClusterArr) echo '
  • '.(isset($LANG['DUPLICATES'])?$LANG['DUPLICATES']:'Duplicates').'
  • '; ?> -
  • Comments
  • -
  • Linked Resources
  • +
  • +
  • Traits'; - if($isEditor) echo '
  • Edit History
  • '; + if($traitArr) echo '
  • '.(isset($LANG['TRAITS'])?$LANG['TRAITS']:'Traits').'
  • '; + if($isEditor) echo '
  • '.(isset($LANG['EDITHIST'])?$LANG['EDITHIST']:'Edit History').'
  • '; ?>
    - +
    @@ -337,7 +335,7 @@ function initializeMap(){ if(array_key_exists('loan',$occArr)){ ?>
    - On Loan to +
    - Related Occurrences +
    - Catalog #: - + '.(isset($LANG['CATALOGNUM'])?$LANG['CATALOGNUM']:'Catalog #').': '; + echo $occArr['catalognumber']; + ?>
    - Occurrence ID (GUID): '.(isset($LANG['OCCID'])?$LANG['OCCID']:'Occurrence ID').': '; $resolvableGuid = false; if(substr($occArr['occurrenceid'],0,4) == 'http') $resolvableGuid = true; if($resolvableGuid) echo ''; @@ -405,58 +405,68 @@ function initializeMap(){ else{ ?>
    - Secondary Catalog #: - + '.(isset($LANG['SECONDARYCATNUM'])?$LANG['SECONDARYCATNUM']:'Secondary Catalog #').': '; + echo $occArr['othercatalognumbers']; + ?>
    Taxon: '; + echo ''.(isset($LANG['TAXON'])?$LANG['TAXON']:'Taxon').': '; if($securityCode < 2){ echo ''.$occArr['sciname'].' '.$occArr['scientificnameauthorship']; if($occArr['localitysecurity'] == 2 || $occArr['localitysecurity'] == 3){ - echo '[taxonomic protection applied for non-authorized users]'; + echo ''.(isset($LANG['TAXPROTECTED'])?$LANG['TAXPROTECTED']:'taxonomic protection applied for non-authorized users').''; } } - else echo 'identification protected'; + else echo (isset($LANG['IDPROTECTED'])?$LANG['IDPROTECTED']:'identification protected'); if($occArr['tidinterpreted']){ //echo '
    '; } ?>
    Identification Qualifier: '.$occArr['identificationqualifier'].'
    '; + if($occArr['identificationqualifier']) echo ''.(isset($LANG['IDQUALIFIER'])?$LANG['IDQUALIFIER']:'Identification Qualifier').': '.$occArr['identificationqualifier'].'
    '; } - if($occArr['family']) echo 'Family: '.$occArr['family']; + if($occArr['family']) echo ''.(isset($LANG['FAMILY'])?$LANG['FAMILY']:'Family').': '.$occArr['family']; if($occArr['identifiedby']){ ?>
    - Determiner: activateOrcidID($occArr['identifiedby']); ?> - + '.(isset($LANG['DETERMINER'])?$LANG['DETERMINER']:'Determiner').': '.$indManager->activateOrcidID($occArr['identifiedby']); + if($occArr['dateidentified']) echo ' ('.$occArr['dateidentified'].')'; + ?>
    - Taxon Remarks: - + '.(isset($LANG['TAXONREMARKS'])?$LANG['TAXONREMARKS']:'Taxon Remarks').': '; + echo $occArr['taxonremarks']; + ?>
    - ID Remarks: - + '.(isset($LANG['IDREMARKS'])?$LANG['IDREMARKS']:'ID Remarks').': '; + echo $occArr['identificationremarks']; + ?>
    - ID References: - + '.(isset($LANG['IDREFERENCES'])?$LANG['IDREFERENCES']:'ID References').': '; + echo $occArr['identificationreferences']; + ?>
    - Show Determination History +
    '.($rightsHeading?$rightsHeading:$rightsStr).''; } - $rightsStr = '
    Usage Rights: '.$rightsStr.'
    '; + $rightsStr = '
    '.(isset($LANG['USAGERIGHTS'])?$LANG['USAGERIGHTS']:'Usage Rights').': '.$rightsStr.'
    '; } if($collMetadata['rightsholder']){ - $rightsStr .= '
    Rights Holder: '.$collMetadata['rightsholder'].'
    '; + $rightsStr .= '
    '.(isset($LANG['RIGHTSHOLDER'])?$LANG['RIGHTSHOLDER']:'Rights Holder').': '.$collMetadata['rightsholder'].'
    '; } if($collMetadata['accessrights']){ - $rightsStr .= '
    Access Rights: '.$collMetadata['accessrights'].'
    '; + $rightsStr .= '
    '.(isset($LANG['ACCESSRIGHTS'])?$LANG['ACCESSRIGHTS']:'Access Rights').': '.$collMetadata['accessrights'].'
    '; } ?> -
    Record ID:
    - +
    '.(isset($LANG['RECORDID'])?$LANG['RECORDID']:'Record ID').': '.$occArr['guid']; ?>
    '.$collMetadata['email'].')'; } @@ -959,17 +1022,15 @@ function initializeMap(){
    - Do you see an error? If so, errors can be fixed using the - Occurrence Editor. + . - See an error? Login to edit data -
    @@ -978,7 +1039,7 @@ function initializeMap(){ if(array_key_exists('ref',$occArr)){ ?>
    - Associated References + $refArr){ echo '
    '; @@ -1010,13 +1071,13 @@ function initializeMap(){ ?>
    -
    Identifier:
    -
    Locus:
    +
    :
    +
    :
    URL:
    -
    Notes:
    +
    :
    -
    Current Record
    +
    '.$collMetadata['collectionname'].' ('.$collMetadata['institutioncode'].($collMetadata['collectioncode']?':'.$collMetadata['collectioncode']:'').')
    '; echo '
    '; if($occArr['recordedby']) echo '
    '.$occArr['recordedby'].' '.$occArr['recordnumber'].''.$occArr['eventdate'].'
    '; - if($occArr['catalognumber']) echo '
    Catalog Number: '.$occArr['catalognumber'].'
    '; - if($occArr['occurrenceid']) echo '
    GUID: '.$occArr['occurrenceid'].'
    '; - echo '
    Latest Identification: '; + if($occArr['catalognumber']) echo '
    '.(isset($LANG['CATALOGNUMBER'])?$LANG['CATALOGNUMBER']:'Catalog Number').': '.$occArr['catalognumber'].'
    '; + if($occArr['occurrenceid']) echo '
    '.(isset($LANG['GUID'])?$LANG['GUID']:'GUID').': '.$occArr['occurrenceid'].'
    '; + echo '
    '.(isset($LANG['LATESTID'])?$LANG['LATESTID']:'Latest Identification').': '; if($securityCode < 2) echo ''.$occArr['sciname'].' '.$occArr['scientificnameauthorship']; - else echo 'species identification protected'; + else echo (isset($LANG['SPECIDPROTECTED'])?$LANG['SPECIDPROTECTED']:'Species identification protected'); echo '
    '; - if($occArr['identifiedby']) echo '
    Identified by: '.$occArr['identifiedby'].''.$occArr['dateidentified'].'
    '; + if($occArr['identifiedby']) echo '
    '.(isset($LANG['IDENTIFIEDBY'])?$LANG['IDENTIFIEDBY']:'Identified by').': '.$occArr['identifiedby'].''.$occArr['dateidentified'].'
    '; echo '
    '; //Grab other records foreach($dupClusterArr as $dupeType => $dupeArr){ echo '
    '; - echo ''.($dupeType=='dupe'?'Specimen Duplicates':'Associated Exsiccatae').''; + echo ''; + if($dupeType=='dupe') echo (isset($LANG['DUPES'])?$LANG['DUPES']:'Specimen Duplicates'); + else echo (isset($LANG['EXSICCATAE'])?$LANG['EXSICCATAE']:'Associated Exsiccatae'); + echo ''; foreach($dupeArr as $dupOccid => $dupArr){ if($dupOccid != $occid){ echo '
    '; echo '
    '; echo '
    '.$dupArr['collname'].' ('.$dupArr['instcode'].($dupArr['collcode']?':'.$dupArr['collcode']:'').')
    '; if($dupArr['recordedby']) echo '
    '.$dupArr['recordedby'].' '.$dupArr['recordnumber'].''.$dupArr['eventdate'].'
    '; - if($dupArr['catalognumber']) echo '
    Catalog Number: '.$dupArr['catalognumber'].'
    '; - if($dupArr['occurrenceid']) echo '
    GUID: '.$dupArr['occurrenceid'].'
    '; - echo '
    Latest Identification: '; + if($dupArr['catalognumber']) echo '
    '.(isset($LANG['CATALOGNUMBER'])?$LANG['CATALOGNUMBER']:'Catalog Number').': '.$dupArr['catalognumber'].'
    '; + if($dupArr['occurrenceid']) echo '
    '.(isset($LANG['GUID'])?$LANG['GUID']:'GUID').': '.$dupArr['occurrenceid'].'
    '; + echo '
    '.(isset($LANG['LATESTID'])?$LANG['LATESTID']:'Latest Identification').': '; if($securityCode < 2) echo ''.$dupArr['sciname'].' '.$dupArr['author']; - else echo 'species identification protected'; + else echo (isset($LANG['SPECIDPROTECTED'])?$LANG['SPECIDPROTECTED']:'Species identification protected'); echo '
    '; - if($dupArr['identifiedby']) echo '
    Identified by: '.$dupArr['identifiedby'].''.$dupArr['dateidentified'].'
    '; - echo ''; + if($dupArr['identifiedby']) echo '
    '.(isset($LANG['IDENTIFIEDBY'])?$LANG['IDENTIFIEDBY']:'Identified by').': '.$dupArr['identifiedby'].''.$dupArr['dateidentified'].'
    '; + echo ''; echo '
    '; if(!$securityCode){ if($dupArr['url']){ @@ -1078,27 +1142,15 @@ function initializeMap(){
    -
    - $tArr){ - if(!$tArr['depStateID']){ - echo '
    '; - $indManager->echoTraitUnit($traitArr[$traitID]); - $indManager->echoTraitDiv($traitArr,$traitID); - echo '
    '; - } - } - ?> -
    -
    '.count($commentArr).' Comments
    '; + echo '
    '.count($commentArr).' '.(isset($LANG['COMMENTS'])?$LANG['COMMENTS']:'Comments').'
    '; echo '
    '; foreach($commentArr as $comId => $comArr){ ?> @@ -1107,28 +1159,29 @@ function initializeMap(){ echo '
    '; echo ''.$comArr['username'].' posted '.$comArr['initialtimestamp'].''; echo '
    '; - if($comArr['reviewstatus'] == 0 || $comArr['reviewstatus'] == 2) echo '
    Comment not public due to pending abuse report (viewable to administrators only)
    '; + if($comArr['reviewstatus'] == 0 || $comArr['reviewstatus'] == 2) + echo '
    '.(isset($LANG['COMMENTNOTPUBLIC'])?$LANG['COMMENTNOTPUBLIC']:'Comment not public due to pending abuse report (viewable to administrators only)').'
    '; echo '
    '.$comArr['comment'].'
    '; if($comArr['reviewstatus']){ if($SYMB_UID){ - ?> - - '; + echo (isset($LANG['REPORT'])?$LANG['REPORT']:'Report as inappropriate or abusive'); + echo '
    '; } } else{ - ?> - - '; + echo (isset($LANG['MAKECOMPUB'])?$LANG['MAKECOMPUB']:'Make comment public'); + echo '
    '; } if($isEditor || ($SYMB_UID && $comArr['username'] == $PARAMS_ARR['un'])){ ?>
    -
    + - - + +
    No comments have been submitted
    '; - } + else echo '
    '.(isset($LANG['NOCOMMENTS'])?$LANG['NOCOMMENTS']:'No comments have been submitted').'
    '; ?>
    - New Comment + @@ -1152,27 +1203,43 @@ function initializeMap(){
    - - + +
    - Messages over 500 words long may be automatically truncated. All comments are moderated. +
    -
    - Login to leave a comment. -
    - '; + echo ''; + echo (isset($LANG['LOGIN'])?$LANG['LOGIN']:'Log In'); + echo ' '; + echo (isset($LANG['TOLEAVECOMMENT'])?$LANG['TOLEAVECOMMENT']:'to leave a comment.'); + echo '
    '; } ?>
    -
    +
    + $tArr){ + if(!$tArr['depStateID']){ + echo '
    '; + $indManager->echoTraitUnit($traitArr[$traitID]); + $indManager->echoTraitDiv($traitArr,$traitID); + echo '
    '; + } + } + ?> +
    +
    @@ -1188,10 +1255,10 @@ function initializeMap(){ } */ echo '
    '; - echo 'Entered By: '.($occArr['recordenteredby']?$occArr['recordenteredby']:'not recorded').'
    '; - echo 'Date entered: '.($occArr['dateentered']?$occArr['dateentered']:'not recorded').'
    '; - echo 'Date modified: '.($occArr['datelastmodified']?$occArr['datelastmodified']:'not recorded').'
    '; - if($occArr['modified'] && $occArr['modified'] != $occArr['datelastmodified']) echo 'Source date modified: '.$occArr['modified']; + echo ''.(isset($LANG['ENTEREDBY'])?$LANG['ENTEREDBY']:'Entered By').' '.($occArr['recordenteredby']?$occArr['recordenteredby']:'not recorded').'
    '; + echo ''.(isset($LANG['DATEENTERED'])?$LANG['DATEENTERED']:'Date entered').': '.($occArr['dateentered']?$occArr['dateentered']:'not recorded').'
    '; + echo ''.(isset($LANG['DATEMODIFIED'])?$LANG['DATEMODIFIED']:'Date modified').': '.($occArr['datelastmodified']?$occArr['datelastmodified']:'not recorded').'
    '; + if($occArr['modified'] && $occArr['modified'] != $occArr['datelastmodified']) echo ''.(isset($LANG['SRCDATEMODIFIED'])?$LANG['SRCDATEMODIFIED']:'Source date modified').': '.$occArr['modified']; echo '
    '; //Display edits $editArr = $indManager->getEditArr(); @@ -1200,7 +1267,7 @@ function initializeMap(){ if($editArr){ ?>
    - Internal Edits + $eArr){ $reviewStr = 'OPEN'; @@ -1208,20 +1275,20 @@ function initializeMap(){ elseif($eArr['reviewstatus'] == 3) $reviewStr = 'CLOSED'; ?>
    - Editor: + : Date:
    - Applied Status: - Review Status: + : + :
    '; - echo 'Field: '.$vArr['fieldname'].'
    '; - echo 'Old Value: '.$vArr['old'].'
    '; - echo 'New Value: '.$vArr['new'].'
    '; + echo ''.(isset($LANG['FIELD'])?$LANG['FIELD']:'Field').': '.$vArr['fieldname'].'
    '; + echo ''.(isset($LANG['OLDVALUE'])?$LANG['OLDVALUE']:'Old Value').': '.$vArr['old'].'
    '; + echo ''.(isset($LANG['NEWVALUE'])?$LANG['NEWVALUE']:'New Value').': '.$vArr['new'].'
    '; echo '
    '; } echo '

    '; @@ -1233,7 +1300,7 @@ function initializeMap(){ if($externalEdits){ ?>
    - External Edits + $eArr){ foreach($eArr as $appliedStatus => $eArr2){ @@ -1242,21 +1309,21 @@ function initializeMap(){ elseif($eArr2['reviewstatus'] == 3) $reviewStr = 'CLOSED'; ?>
    - Editor: - Date: - Source: + + : + :
    - Applied Status: - Review Status: + : + :
    $vArr){ echo '
    '; - echo 'Field: '.$fieldName.'
    '; - echo 'Old Value: '.$vArr['old'].'
    '; - echo 'New Value: '.$vArr['new'].'
    '; + echo ''.(isset($LANG['FIELD'])?$LANG['FIELD']:'Field').': '.$fieldName.'
    '; + echo ''.(isset($LANG['OLDVALUE'])?$LANG['OLDVALUE']:'Old Value').': '.$vArr['old'].'
    '; + echo ''.(isset($LANG['NEWVALUE'])?$LANG['NEWVALUE']:'New Value').': '.$vArr['new'].'
    '; echo '
    '; } echo '

    '; @@ -1268,15 +1335,15 @@ function initializeMap(){ } } else{ - echo '
    Record has not been edited since being entered
    '; + echo '
    '.(isset($LANG['NOTEDITED'])?$LANG['NOTEDITED']:'Record has not been edited since being entered').'
    '; } - echo '
    Note: Edits are only viewable by collection administrators and editors
    '; + echo '
    '.(isset($LANG['EDITNOTE'])?$LANG['EDITNOTE']:'Note: Edits are only viewable by collection administrators and editors').'
    '; //Display Access Stats $accessStats = $indManager->getAccessStats(); if($accessStats){ echo '
    Access Stats
    '; echo '
    '; - echo ''; + echo ''; foreach($accessStats as $accessDate => $arr1){ foreach($arr1 as $accessType => $accessCnt){ echo ''; @@ -1295,9 +1362,9 @@ function initializeMap(){ } else{ ?> -

    Unable to locate occurrence record

    +

    -
    Checking archive...
    +
    ...
    Record deleted: '.$archArr['dateDeleted'].'
    '; - if($rawArchArr['notes']) echo '
    Notes: '.$rawArchArr['notes'].'
    '; + if(isset($archArr['dateDeleted'])) echo '
    '.(isset($LANG['RECORDDELETED'])?$LANG['RECORDDELETED']:'Record deleted').': '.$archArr['dateDeleted'].'
    '; + if($rawArchArr['notes']) echo '
    '.(isset($LANG['NOTES'])?$LANG['NOTES']:'Notes').': '.$rawArchArr['notes'].'
    '; $dets = array(); $imgs = array(); if(isset($archArr['dets'])){ @@ -1318,20 +1385,16 @@ function initializeMap(){ $imgs = $archArr['imgs']; unset($archArr['imgs']); } - echo '
    YearAccess TypeCount
    '.(isset($LANG['YEAR'])?$LANG['YEAR']:'Year').''.(isset($LANG['ACCESSTYPE'])?$LANG['ACCESSTYPE']:'Access Type').''.(isset($LANG['COUNT'])?$LANG['COUNT']:'Count').'
    '.$accessDate.''.$accessType.''.$accessCnt.'
    '; + echo '
    FieldValue
    '; foreach($archArr as $f => $v){ echo ''; } if($dets){ foreach($dets as $id => $dArr){ - echo '
    '.(isset($LANG['FIELD'])?$LANG['FIELD']:'Field').''.(isset($LANG['VALUE'])?$LANG['VALUE']:'Value').'
    '.$f.''; - if(is_array($v)){ - echo implode(', ',$v); - } - else{ - echo $v; - } + if(is_array($v)) echo implode(', ',$v); + else echo $v; echo '
    Determination #'.$id.''; + echo '
    '.(isset($LANG['DETERMINATIONNO'])?$LANG['DETERMINATIONNO']:'Determination #').$id.''; foreach($dArr as $f => $v){ echo ''.$f.': '.$v.'
    '; } @@ -1340,7 +1403,7 @@ function initializeMap(){ } if($imgs){ foreach($imgs as $id => $iArr){ - echo '
    Image #'.$id.''; + echo '
    '.(isset($LANG['IMAGENO'])?$LANG['IMAGENO']:'Image #').$id.''; foreach($iArr as $f => $v){ echo ''.$f.': '.$v.'
    '; } @@ -1349,9 +1412,7 @@ function initializeMap(){ } echo '
    '; } - else{ - echo 'Unable to located record within archive'; - } + else echo (isset($LANG['UNABLETOLOCATE'])?$LANG['UNABLETOLOCATE']:'Unable to locate record'); ?>
    From 80ae11ee70fc737055580d0ac17af56383111652 Mon Sep 17 00:00:00 2001 From: Edward Gilbert Date: Wed, 11 Aug 2021 16:30:05 -0700 Subject: [PATCH 27/27] Delete org.eclipse.core.resources.prefs --- .settings/org.eclipse.core.resources.prefs | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 .settings/org.eclipse.core.resources.prefs diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203..0000000000 --- a/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8