From 036eb406b4177e719931f2cbced3c5fc3f83fdcb Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Thu, 15 Feb 2024 11:41:25 +0700 Subject: [PATCH 1/6] feat: turn delete into button so it receives keyboard focus --- less/current/modules/buttons.less | 9 +++++++++ protected/views/user/uploadedDatasets.php | 12 ++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/less/current/modules/buttons.less b/less/current/modules/buttons.less index 444f8808a3..b2d8ab3223 100644 --- a/less/current/modules/buttons.less +++ b/less/current/modules/buttons.less @@ -328,6 +328,15 @@ } } +.btn-transparent { + background-color: transparent; + color: @dark-gray-on-white; + color: @link-color; + &:hover { + color: @link-color-hover; + } +} + .inactive-btn-o { color: @dark-gray-on-white; background: @color-true-white; diff --git a/protected/views/user/uploadedDatasets.php b/protected/views/user/uploadedDatasets.php index f1ec2169d0..9ae0347e14 100644 --- a/protected/views/user/uploadedDatasets.php +++ b/protected/views/user/uploadedDatasets.php @@ -44,7 +44,7 @@ upload_status; - + if ( $upload_status != 'Published' && $upload_status!='Private' ) { ?> unknown @@ -80,11 +80,11 @@ upload_status !='Published' && $data[$i]->upload_status!='AuthorReview' && $data[$i]->upload_status!='Private'){ ?>
- id ?> >Update - - Delete - upload_status === "UserUploadingData" || $data[$i]->upload_status === "DataPending") { - echo CHtml::link('Upload Files', array('/authorisedDataset/uploadFiles', 'id'=>$data[$i]->identifier), array('class' => 'upload btn')); + id ?> >Update + + upload_status === "UserUploadingData" || $data[$i]->upload_status === "DataPending") { + echo CHtml::link('Upload Files', array('/authorisedDataset/uploadFiles', 'id'=>$data[$i]->identifier), array('class' => 'upload btn btn-transparent')); } ?>
From 697521761f54e41c4b35175e2c38fffd123ca82b Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Thu, 15 Feb 2024 12:22:28 +0700 Subject: [PATCH 2/6] feat: set more specific button labels for update and delete dataset --- less/current/modules/buttons.less | 4 +--- protected/views/user/uploadedDatasets.php | 10 ++++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/less/current/modules/buttons.less b/less/current/modules/buttons.less index b2d8ab3223..20403d846d 100644 --- a/less/current/modules/buttons.less +++ b/less/current/modules/buttons.less @@ -319,7 +319,6 @@ .btn-link { background-color: transparent; - color: @dark-gray-on-white; padding: 0; text-decoration: underline; color: @link-color; @@ -330,8 +329,7 @@ .btn-transparent { background-color: transparent; - color: @dark-gray-on-white; - color: @link-color; + color: @gigadb-green-on-lighter-gray; &:hover { color: @link-color-hover; } diff --git a/protected/views/user/uploadedDatasets.php b/protected/views/user/uploadedDatasets.php index 9ae0347e14..eef75af7a1 100644 --- a/protected/views/user/uploadedDatasets.php +++ b/protected/views/user/uploadedDatasets.php @@ -80,11 +80,13 @@ upload_status !='Published' && $data[$i]->upload_status!='AuthorReview' && $data[$i]->upload_status!='Private'){ ?>
- id ?> >Update - + id ?> >Update
dataset
+ upload_status === "UserUploadingData" || $data[$i]->upload_status === "DataPending") { - echo CHtml::link('Upload Files', array('/authorisedDataset/uploadFiles', 'id'=>$data[$i]->identifier), array('class' => 'upload btn btn-transparent')); + ?> + Upload
Files
+
From bd53c3786b538fd4135fdb50d85ec14aea615498 Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Thu, 15 Feb 2024 13:50:17 +0700 Subject: [PATCH 3/6] feat: add in-page operations descriptions --- less/current/base/spacing.less | 4 ++++ less/current/base/type.less | 4 ++++ protected/views/user/uploadedDatasets.php | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/less/current/base/spacing.less b/less/current/base/spacing.less index 045947f316..d5c042c4d8 100644 --- a/less/current/base/spacing.less +++ b/less/current/base/spacing.less @@ -31,3 +31,7 @@ .mr-10 { margin-right: 10px; } + +.p-0 { + padding: 0!important; +} \ No newline at end of file diff --git a/less/current/base/type.less b/less/current/base/type.less index 3c43b0e135..78248e3ebe 100644 --- a/less/current/base/type.less +++ b/less/current/base/type.less @@ -21,6 +21,10 @@ h4, .h4 { font-size: @font-size-h4; } font-style: italic; } +.text-bold { + font-weight: bold; +} + // Body text // ------------------------- diff --git a/protected/views/user/uploadedDatasets.php b/protected/views/user/uploadedDatasets.php index eef75af7a1..e0521e8e32 100644 --- a/protected/views/user/uploadedDatasets.php +++ b/protected/views/user/uploadedDatasets.php @@ -1,5 +1,12 @@
+
+
    +
  • Update dataset: Update the metadata of the dataset.
  • +
  • Delete dataset: Delete the dataset and all its files.
  • +
  • Upload files: Upload files to the dataset, delete the existing files or edit their metadata.
  • +
+
From 757c90db782bdf69bc6e91083c297a2dcc529b2c Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Thu, 15 Feb 2024 14:51:40 +0700 Subject: [PATCH 4/6] feat: add tooltips to dataset operations --- less/current.less | 3 ++- less/current/modules/tooltip.less | 25 +++++++++++++++++++++++ protected/views/user/uploadedDatasets.php | 14 +++++++++---- 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 less/current/modules/tooltip.less diff --git a/less/current.less b/less/current.less index 9ae0803ebe..253e2d53da 100644 --- a/less/current.less +++ b/less/current.less @@ -64,4 +64,5 @@ @import "current/modules/uploader.less"; @import "current/modules/team-grid.less"; @import "current/modules/map.less"; -@import "current/modules/lists.less"; \ No newline at end of file +@import "current/modules/lists.less"; +@import "current/modules/tooltip.less"; \ No newline at end of file diff --git a/less/current/modules/tooltip.less b/less/current/modules/tooltip.less new file mode 100644 index 0000000000..a0f3a1b7a1 --- /dev/null +++ b/less/current/modules/tooltip.less @@ -0,0 +1,25 @@ +// Override bootstrap styles to look similar to https://htmlstream.com/unify/documentation/tooltips.html +.tooltip { + padding: 0.4rem; + font-weight: 400; + line-height: 1.5; + font-size: @font-size-base; + &.top .tooltip-arrow { + border-top-color: @color-warm-black; + } + &.bottom .tooltip-arrow { + border-bottom-color: @color-warm-black; + } + &.left .tooltip-arrow { + border-left-color: @color-warm-black; + } + &.right .tooltip-arrow { + border-right-color: @color-warm-black; + } + .tooltip-inner { + background-color: @color-warm-black; + color: @color-true-white; + border-radius: 0.5rem; + padding: 0.25rem 0.6rem; + } +} diff --git a/protected/views/user/uploadedDatasets.php b/protected/views/user/uploadedDatasets.php index e0521e8e32..ddd6a5f956 100644 --- a/protected/views/user/uploadedDatasets.php +++ b/protected/views/user/uploadedDatasets.php @@ -87,12 +87,12 @@
-
\ No newline at end of file + + + \ No newline at end of file From d49a177781c3ffb396f4d162fc4e5c393d91e7ee Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Fri, 16 Feb 2024 16:43:59 +0700 Subject: [PATCH 5/6] chore: update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee29164f3d..827347791f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## Unreleased +- Feat #1613: Add descriptive text, improved button labels and tooltips for user profile uploaded datasets tab - Feat #1334: Improve accessibility of public and admin pages, revamp admin pages styles, sync style guide with updated styles ## v4.1.2 - 2024-02-07 - 9a421a2c From 332eb80f61349e8f870792f441db37e24300b796 Mon Sep 17 00:00:00 2001 From: luis-toptal Date: Fri, 1 Mar 2024 09:39:15 +0700 Subject: [PATCH 6/6] chore: Merge branch 'develop' into new-feature/1613-change-button-label-and-add-tooltips-on-user-profile-tab-for-uploaded-datasets --- CHANGELOG.md | 8 +- fuw/app/backend/models/FiledropAccount.php | 91 ++++++++++--------- gigadb/app/client/web/.nvmrc | 1 + gigadb/app/client/web/README.md | 10 ++ gigadb/app/client/web/package-lock.json | 55 +++++------ gigadb/app/client/web/package.json | 4 +- .../files-metadata-console/docker-compose.yml | 2 +- tests/acceptance/AdminDatasetSample.feature | 27 +++--- tests/functional/FeatureFlagCest.php | 5 +- tests/functional/ResetPasswordCest.php | 10 +- watch-vue.sh | 3 + 11 files changed, 121 insertions(+), 95 deletions(-) create mode 100644 gigadb/app/client/web/.nvmrc create mode 100644 gigadb/app/client/web/README.md create mode 100755 watch-vue.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 827347791f..b10dee9a52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## Unreleased - Feat #1613: Add descriptive text, improved button labels and tooltips for user profile uploaded datasets tab +- Feat #1629: FUW - Upgrade Element UI to latest version + +## v4.2.0 - 2024-02-27 - 017ba8f58 + +- Fix #1659: Remove dependency on abandoned inter-container-communication project and fix broken tests +- Feat #1624: FUW - Migrate to Vue 2.7 - Feat #1334: Improve accessibility of public and admin pages, revamp admin pages styles, sync style guide with updated styles -## v4.1.2 - 2024-02-07 - 9a421a2c +## v4.1.2 - 2024-02-07 - 9a421a2c - live since 2024-02-08 - Fix #1660: Ensure dataset pages that are not published are not publicly visible diff --git a/fuw/app/backend/models/FiledropAccount.php b/fuw/app/backend/models/FiledropAccount.php index c4fae9940f..70eb4755c2 100644 --- a/fuw/app/backend/models/FiledropAccount.php +++ b/fuw/app/backend/models/FiledropAccount.php @@ -259,29 +259,29 @@ function createFTPAccount(\backend\models\DockerManager $dockerManager, string $ { $status = true ; - $uploaderExists = shell_exec("grep uploader-$doi /etc/pure-ftpd/passwd/pureftpd.passwd"); - $downloaderExists = shell_exec("grep downloader-$doi /etc/pure-ftpd/passwd/pureftpd.passwd"); - if ($uploaderExists || $downloaderExists) - Yii::warning("!! FTP account already exists"); - $dryRunModeArray = ["bash","-c","pwd"] ; - $uploaderCommandArray = ["bash","-c","/usr/bin/pure-pw useradd uploader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u uploader -d /home/uploader/$doi < /var/private/$doi/uploader_token.txt"] ; - - $downloaderCommandArray = ["bash","-c","/usr/bin/pure-pw useradd downloader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u downloader -d /home/downloader/$doi < /var/private/$doi/downloader_token.txt"] ; - - - if ($this->dryRunMode) { - $dryRunModeRsp = $dockerManager->loadAndRunCommand("ftpd", $dryRunModeArray); - } - else { - if (!$uploaderExists) - $upload_response = $dockerManager->loadAndRunCommand("ftpd", $uploaderCommandArray); - if (!$downloaderExists) - $download_response = $dockerManager->loadAndRunCommand("ftpd", $downloaderCommandArray); - } - - if ((!$uploaderExists && null === $upload_response) || (!$downloaderExists && null === $download_response)) { - return false; - } +// $uploaderExists = shell_exec("grep uploader-$doi /etc/pure-ftpd/passwd/pureftpd.passwd"); +// $downloaderExists = shell_exec("grep downloader-$doi /etc/pure-ftpd/passwd/pureftpd.passwd"); +// if ($uploaderExists || $downloaderExists) +// Yii::warning("!! FTP account already exists"); +// $dryRunModeArray = ["bash","-c","pwd"] ; +// $uploaderCommandArray = ["bash","-c","/usr/bin/pure-pw useradd uploader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u uploader -d /home/uploader/$doi < /var/private/$doi/uploader_token.txt"] ; +// +// $downloaderCommandArray = ["bash","-c","/usr/bin/pure-pw useradd downloader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m -u downloader -d /home/downloader/$doi < /var/private/$doi/downloader_token.txt"] ; +// +// +// if ($this->dryRunMode) { +// $dryRunModeRsp = $dockerManager->loadAndRunCommand("ftpd", $dryRunModeArray); +// } +// else { +// if (!$uploaderExists) +// $upload_response = $dockerManager->loadAndRunCommand("ftpd", $uploaderCommandArray); +// if (!$downloaderExists) +// $download_response = $dockerManager->loadAndRunCommand("ftpd", $downloaderCommandArray); +// } +// +// if ((!$uploaderExists && null === $upload_response) || (!$downloaderExists && null === $download_response)) { +// return false; +// } return $status; } @@ -297,16 +297,16 @@ function removeFTPAccount(\backend\models\DockerManager $dockerManager, string $ { $status = true; - $uploaderCommandArray = ["bash","-c","/usr/bin/pure-pw userdel uploader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m"] ; - - $downloaderCommandArray = ["bash","-c","/usr/bin/pure-pw userdel downloader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m"] ; - - $upload_response = $dockerManager->loadAndRunCommand("ftpd", $uploaderCommandArray); - $download_response = $dockerManager->loadAndRunCommand("ftpd", $downloaderCommandArray); - - if (null === $upload_response || null === $download_response) { - return false; - } +// $uploaderCommandArray = ["bash","-c","/usr/bin/pure-pw userdel uploader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m"] ; +// +// $downloaderCommandArray = ["bash","-c","/usr/bin/pure-pw userdel downloader-$doi -f /etc/pure-ftpd/passwd/pureftpd.passwd -m"] ; +// +// $upload_response = $dockerManager->loadAndRunCommand("ftpd", $uploaderCommandArray); +// $download_response = $dockerManager->loadAndRunCommand("ftpd", $downloaderCommandArray); +// +// if (null === $upload_response || null === $download_response) { +// return false; +// } return $status; } @@ -340,18 +340,19 @@ public function removeUploads(): ?int function checkFTPAccount(\backend\models\DockerManager $dockerManager, string $doi): string { - - $command = ["bash","-c","cat /etc/pure-ftpd/passwd/pureftpd.passwd | grep $doi"] ; - - $stream = $dockerManager->loadAndRunCommand("ftpd", $command); - - - $response = ''; - $stream->onStdout(function ($stdout) use (&$response): void { - $response .= $response; - }); - - $stream->wait(); + $response = true; + +// $command = ["bash","-c","cat /etc/pure-ftpd/passwd/pureftpd.passwd | grep $doi"] ; +// +// $stream = $dockerManager->loadAndRunCommand("ftpd", $command); +// +// +// $response = ''; +// $stream->onStdout(function ($stdout) use (&$response): void { +// $response .= $response; +// }); +// +// $stream->wait(); return $response; } diff --git a/gigadb/app/client/web/.nvmrc b/gigadb/app/client/web/.nvmrc new file mode 100644 index 0000000000..7f4439f60e --- /dev/null +++ b/gigadb/app/client/web/.nvmrc @@ -0,0 +1 @@ +v17.6.0 diff --git a/gigadb/app/client/web/README.md b/gigadb/app/client/web/README.md new file mode 100644 index 0000000000..1e2aa7bf55 --- /dev/null +++ b/gigadb/app/client/web/README.md @@ -0,0 +1,10 @@ +# FUW Vue widget + +## Dev + +This project runs in the `js` container defined in the `ops/deployment/docker-compose.yml` file + +the `up.sh` script installs dependencies via `npm install` and then the widget is built (`npm run build`) and deployed `npm run deploy` + +- If you're reviewing a feature which implements changes in the Vue wigdet, you can simply rebuild once: `docker-compose run --rm js sh -c 'npm run build ; npm run deploy'` (no need to watch for changes). +- If you're editing Vue files and want to see the frontend update (after page refresh), run `watch-vue.sh`. You'll need to install `chokidar` globally: `npm install -g chokidar-cli`. This script will rebuild the project every time there is a change in the files inside the `./src` folder. If there's a change in the dependencies during development, you can `npm install` locally and then trigger a rebuild and redeploy by saving any file inside `./src` \ No newline at end of file diff --git a/gigadb/app/client/web/package-lock.json b/gigadb/app/client/web/package-lock.json index 0c5e3b2f8b..ea9fd03c29 100644 --- a/gigadb/app/client/web/package-lock.json +++ b/gigadb/app/client/web/package-lock.json @@ -18,9 +18,9 @@ "@uppy/tus": "^1.5.1", "axios": "^0.19.1", "chunked-file-reader": "0.0.3", - "element-ui": "^2.13.0", + "element-ui": "^2.15.14", "spark-md5": "^3.0.1", - "vue": "^2.6.11", + "vue": "^2.7.0", "vue-data-tables": "^3.4.5" }, "devDependencies": { @@ -2102,13 +2102,16 @@ } }, "node_modules/@vue/compiler-sfc": { - "version": "2.7.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz", - "integrity": "sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==", + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", "dependencies": { - "@babel/parser": "^7.18.4", + "@babel/parser": "^7.23.5", "postcss": "^8.4.14", "source-map": "^0.6.1" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" } }, "node_modules/@vue/compiler-sfc/node_modules/nanoid": { @@ -2134,9 +2137,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/@vue/compiler-sfc/node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "funding": [ { "type": "opencollective", @@ -8949,7 +8952,6 @@ "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, "optional": true, "bin": { "prettier": "bin-prettier.js" @@ -11490,11 +11492,12 @@ } }, "node_modules/vue": { - "version": "2.7.15", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz", - "integrity": "sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==", + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", + "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", "dependencies": { - "@vue/compiler-sfc": "2.7.15", + "@vue/compiler-sfc": "2.7.16", "csstype": "^3.1.0" } }, @@ -13941,12 +13944,13 @@ } }, "@vue/compiler-sfc": { - "version": "2.7.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.15.tgz", - "integrity": "sha512-FCvIEevPmgCgqFBH7wD+3B97y7u7oj/Wr69zADBf403Tui377bThTjBvekaZvlRr4IwUAu3M6hYZeULZFJbdYg==", + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz", + "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==", "requires": { - "@babel/parser": "^7.18.4", + "@babel/parser": "^7.23.5", "postcss": "^8.4.14", + "prettier": "^1.18.2 || ^2.0.0", "source-map": "^0.6.1" }, "dependencies": { @@ -13961,9 +13965,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "requires": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -19494,7 +19498,6 @@ "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, "optional": true }, "pretty": { @@ -21598,11 +21601,11 @@ "dev": true }, "vue": { - "version": "2.7.15", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.15.tgz", - "integrity": "sha512-a29fsXd2G0KMRqIFTpRgpSbWaNBK3lpCTOLuGLEDnlHWdjB8fwl6zyYZ8xCrqkJdatwZb4mGHiEfJjnw0Q6AwQ==", + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz", + "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", "requires": { - "@vue/compiler-sfc": "2.7.15", + "@vue/compiler-sfc": "2.7.16", "csstype": "^3.1.0" } }, diff --git a/gigadb/app/client/web/package.json b/gigadb/app/client/web/package.json index 871c435d75..70661a0401 100644 --- a/gigadb/app/client/web/package.json +++ b/gigadb/app/client/web/package.json @@ -18,9 +18,9 @@ "@uppy/tus": "^1.5.1", "axios": "^0.19.1", "chunked-file-reader": "0.0.3", - "element-ui": "^2.13.0", + "element-ui": "^2.15.14", "spark-md5": "^3.0.1", - "vue": "^2.6.11", + "vue": "^2.7.0", "vue-data-tables": "^3.4.5" }, "devDependencies": { diff --git a/gigadb/app/tools/files-metadata-console/docker-compose.yml b/gigadb/app/tools/files-metadata-console/docker-compose.yml index e22ef3ecd5..47696aa5a0 100644 --- a/gigadb/app/tools/files-metadata-console/docker-compose.yml +++ b/gigadb/app/tools/files-metadata-console/docker-compose.yml @@ -18,7 +18,7 @@ services: composer: environment: DOCKER_RUNNING: "true" - image: composer/composer:2.4.4 + image: composer/composer:2.4.3 working_dir: /gigadb/app/tools/files-metadata-console volumes: - ~/.composer-docker/cache:/root/.composer/cache:delegated diff --git a/tests/acceptance/AdminDatasetSample.feature b/tests/acceptance/AdminDatasetSample.feature index 1f695a514b..a254d790a7 100644 --- a/tests/acceptance/AdminDatasetSample.feature +++ b/tests/acceptance/AdminDatasetSample.feature @@ -24,17 +24,16 @@ Feature: admin page for samples And I should see "Alternative names:PYGAD" And I should not see "... +" - @ok - Scenario: Sorting on DOI column in ascending order - Given I am on "/adminDatasetSample/admin" - When I follow "DOI" - Then I should be on "/adminDatasetSample/admin/sort/doi_search" - And I should see "100006" - - @ok - Scenario: Sorting on DOI column in descending order - Given I am on "/adminDatasetSample/admin" - When I follow "DOI" - And I follow "DOI" - Then I should be on "/adminDatasetSample/admin/sort/doi_search.desc" - And I should see "100006" \ No newline at end of file +# TODO: look into why they are failing +# @ok +# Scenario: Sorting on DOI column in ascending order +# Given I am on "/adminDatasetSample/admin" +# When I follow "DOI" +# Then I should see "100006" +# +# @ok +# Scenario: Sorting on DOI column in descending order +# Given I am on "/adminDatasetSample/admin" +# When I follow "DOI" +# And I follow "DOI" +# Then I should see "100006" \ No newline at end of file diff --git a/tests/functional/FeatureFlagCest.php b/tests/functional/FeatureFlagCest.php index 436bd9c66b..cf6a76412d 100644 --- a/tests/functional/FeatureFlagCest.php +++ b/tests/functional/FeatureFlagCest.php @@ -41,7 +41,10 @@ public function tryCheckIsEnabledForEnvEnabled(FunctionalTester $I): void $this->featureFlag->setFflagInstanceId($this->config['components']['featureFlag']['fflagInstanceId']); $this->featureFlag->init(); - $I->assertTrue($this->featureFlag->isEnabled("fuw")); + if ("dev" === $this->config['components']['featureFlag']['fflagAppName']) + $I->assertTrue($this->featureFlag->isEnabled("fuw")); + else + $I->assertFalse($this->featureFlag->isEnabled("fuw")); } /** diff --git a/tests/functional/ResetPasswordCest.php b/tests/functional/ResetPasswordCest.php index e0010dcb62..595c8fd7ac 100644 --- a/tests/functional/ResetPasswordCest.php +++ b/tests/functional/ResetPasswordCest.php @@ -58,10 +58,10 @@ public function tryCreatePasswordResetRequestByUserWithExpiredToken(FunctionalTe // Fill in web form and submit $I->amOnPage($targetUrl); $I->fillField(['id' => 'ForgotPasswordForm_email'], 'test@mailinator.com'); - $I->click('Reset'); + $I->click('Reset Password'); // Pressing Reset button takes user to /site/thanks page $I->seeInCurrentUrl("/site/thanks"); - $I->see('Reset Password Request Submitted', 'h4'); + $I->see('Reset Password Request Submitted'); $I->see('For security reasons, we cannot tell you if the email you entered is valid or not.'); // The selector below will be deleted because its token has // expired and will be replaced with a new selector token @@ -98,16 +98,16 @@ public function tryTooManyPasswordResetRequests(FunctionalTester $I) // Fill in web form and submit $I->amOnPage($targetUrl); $I->fillField(['id' => 'ForgotPasswordForm_email'], 'foo@mailinator.com'); - $I->click('Reset'); + $I->click('Reset Password'); // Reset button takes user to /site/thanks page $I->seeInCurrentUrl("/site/thanks"); // Same user requests another password reset $I->amOnPage($targetUrl); $I->fillField(['id' => 'ForgotPasswordForm_email'], 'foo@mailinator.com'); - $I->click('Reset'); + $I->click('Reset Password'); // Reset button now goes to /site/forgot page with flash message $I->seeInCurrentUrl("/site/forgot"); - $I->see('Forgotten password', 'h4'); + $I->see('Forgotten password'); $I->see('Too many password requests - please wait till current request expires'); } diff --git a/watch-vue.sh b/watch-vue.sh new file mode 100755 index 0000000000..830d30bb8a --- /dev/null +++ b/watch-vue.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +env "PATH=$PATH" chokidar "gigadb/app/client/web/src/**" -c "docker-compose run --rm js sh -c 'npm run build ; npm run deploy'"