Kotahi issueshttps://gitlab.coko.foundation/kotahi/kotahi/-/issues2024-02-15T03:53:17Zhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1359Setup eLife DocMap import plugin2024-02-15T03:53:17ZRyan Dix-PeekSetup eLife DocMap import pluginSetup DocMaps plugin architecture. This plugin would allow ingesting DocMaps into Kotahi.
**References:**
- [Kotahi plugin architecture](https://gitlab.coko.foundation/kotahi/kotahi/-/merge_requests/754)
- [Kotahi implementation guide...Setup DocMaps plugin architecture. This plugin would allow ingesting DocMaps into Kotahi.
**References:**
- [Kotahi plugin architecture](https://gitlab.coko.foundation/kotahi/kotahi/-/merge_requests/754)
- [Kotahi implementation guidelines ](https://docs.coko.foundation/doc/plugins-X4IYfFqtCK)DocMaps pluginPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1367Import manuscript title from CrossRef2024-02-15T03:53:05ZRyan Dix-PeekImport manuscript title from CrossRefDocMaps pluginPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1371Write script to import preprints from eLife API2024-02-15T03:53:02ZRyan Dix-PeekWrite script to import preprints from eLife APIThe purpose of this task is to write a script that executes the following;
2. Accessing all the preprints from the elife index API
1. Fetching the data corresponding to individual preprint using the identifier
1. Filtering only the lat...The purpose of this task is to write a script that executes the following;
2. Accessing all the preprints from the elife index API
1. Fetching the data corresponding to individual preprint using the identifier
1. Filtering only the latest preprints added to the DataHub, once we import the available preprints
1. Inserting the data into Colab archetype form fieldsDocMaps pluginPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1380Import manuscript version from eLife DataHub2024-02-15T03:52:59ZRyan Dix-PeekImport manuscript version from eLife DataHubDocMaps pluginPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1427[ejpimport] Supress imports from running2024-02-15T03:52:04ZRyan Dix-Peek[ejpimport] Supress imports from runningThe group 'ejp import' on the elife instance uses the `colab` archetype. As a result imports are running automatically, the solution is hardcoded - and needs to be suppressed for this group.The group 'ejp import' on the elife instance uses the `colab` archetype. As a result imports are running automatically, the solution is hardcoded - and needs to be suppressed for this group.DocMaps pluginRyan Dix-PeekRyan Dix-Peekhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1382eLife data migration2024-02-15T03:52:00ZRyan Dix-PeekeLife data migrationDocMaps pluginPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1316[CoLab] Add a favicon per instance2024-02-15T03:51:31ZRyan Dix-Peek[CoLab] Add a favicon per instanceIt is not currently possible to serve a favicon to a browser per instance of Kotahi. We'll need to do the following work to implement this;
- ~~Create controls for managing the icon: we have to allow the upload of a file, using the ass...It is not currently possible to serve a favicon to a browser per instance of Kotahi. We'll need to do the following work to implement this;
- ~~Create controls for managing the icon: we have to allow the upload of a file, using the asset manager, and then use that to overwrite the favicon file in the docker-container.~~
- Add the ability to upload a 'Favicon' image file to the Configuration Manager>Group Identity>Favicon. Create a control allowing the upload of a file to the asset manager.
Reference;
- https://www.w3.org/2005/10/howto-favicon
- File formats we should support; PNG (a W3C standard), GIF, or ICO.
![Screenshot_2023-11-08_at_14.46.21](/uploads/718566c9d3a758fedb65013053f17ab9/Screenshot_2023-11-08_at_14.46.21.png)
![Screenshot_2023-11-08_at_14.34.19](/uploads/7d650947a9539182f16539ae5e9ded9b/Screenshot_2023-11-08_at_14.34.19.png)CoLab Biophysics v6Dan ViselDan Viselhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1515[eLife] Slow queries and users intermittently being logged out2024-02-15T03:51:11ZBen Whitmore[eLife] Slow queries and users intermittently being logged outWe have reports from eLife that their instance is sluggish and users are every now and then being redirected to the login page and forced to log in again (earlier than 24 hours after their previous login!).
Examining the logs, there are...We have reports from eLife that their instance is sluggish and users are every now and then being redirected to the login page and forced to log in again (earlier than 24 hours after their previous login!).
Examining the logs, there are a lot of Knex connection timeout errors, indicating possible heavy loads on the database. Knex timeout errors could conceivably cause users to be logged out if Kotahi is unable to obtain session information from the database.Ben WhitmoreBen Whitmorehttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1528Manuscript versioning is not being save correctly2024-02-15T03:50:33ZRyan Dix-PeekManuscript versioning is not being save correctlyUsing the `journal` archetype; As an author, I can see the status 'Revise', I click on manuscript, go to the submission page and click on 'Create new submission' (version 2) and submit. When I access the manuscript from my dashboard I ca...Using the `journal` archetype; As an author, I can see the status 'Revise', I click on manuscript, go to the submission page and click on 'Create new submission' (version 2) and submit. When I access the manuscript from my dashboard I can only see version 1 as a dropdown selection option, and this version contains my version 2 changes.
Somehow the version is not being saved correctly. There is only a single version option, when there should be 2 i.e. version 1 and version 2. This also impacts the Dashboard and not the Control panel;
![Screen_Recording_2024-02-13_at_14.10.09](/uploads/7f28f9ae55ab0c08af9e0fddaa237e9c/Screen_Recording_2024-02-13_at_14.10.09.mov)Ben WhitmoreBen Whitmorehttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1482[CMS] Unable to add insert images into new Pages2024-02-13T12:23:27ZRyan Dix-Peek[CMS] Unable to add insert images into new PagesAs a Group Manager, I am unable to insert a new image into a Page using the Asset Manager. I'm unable to access, select and/or upload new image files. I can insert images into existing Pages.
>This behaviour is happening only if you ha...As a Group Manager, I am unable to insert a new image into a Page using the Asset Manager. I'm unable to access, select and/or upload new image files. I can insert images into existing Pages.
>This behaviour is happening only if you have not saved CMS page form, as the asset manager requires an `ID` for the image and record to be linked.
![Screenshot_2023-12-20_at_10.25.43](/uploads/7bbc648c80fef42ba6b7fb26d4f9fd18/Screenshot_2023-12-20_at_10.25.43.png)Vignesh DevendranDan ViselVignesh Devendranhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1419Assign author to round of proofing2024-02-13T12:22:56ZRyan Dix-PeekAssign author to round of proofingThe purpose of this task is to add an action to the Control panel>Team page to allow editors to assign an author to participate in a round of author proofing. the assumption here is the suggested changes, comments edits etc. have all alr...The purpose of this task is to add an action to the Control panel>Team page to allow editors to assign an author to participate in a round of author proofing. the assumption here is the suggested changes, comments edits etc. have all already been added to the Production editor.
The action of assigning an author should also generate a link on author's Dashboard to access the author-proofing editor.
[Reference document](https://docs.google.com/document/d/1Qb2wA6lEQh_bxk70ux9XldwUD1R46bkN/edit?usp=sharing&ouid=103654087714276915531&rtpof=true&sd=true)
**Solution;**
1. Add a section to the Team page, below 'Invite reviewers'.
2. Section title; 'Assign Author for Proofing'.
3. Button text; 'Submit for author proofing'.
4. After submission a record of the username assigned should be captured per round, per version. Display data; Username of assignee, date and timestamp e.g. 'Ryan Dix assigned on 2023-08-22 15:42'.
5. Add a link to the author-proofing editor from Dashboard>My Submissions>Object. Use feathericon; 'edit' with tooltip 'Production editor'
Control panel>Teams>'Assign Author for Proofing' section wireframe;
![Amnet_author_proofing_workflow_-_Frame_1](/uploads/f3c5b812c88447b2d81a3ffa1ed4b942/Amnet_author_proofing_workflow_-_Frame_1.jpg)
Example of a Control panel section;
![assign_author](/uploads/9c1dd9dff550fd11904c4b55e3e6d625/assign_author.png)
Dashboard>My Submissions wireframe;
![author_dashboard_editor_access](/uploads/e6884e1901d9ca8f37d430e3667a5529/author_dashboard_editor_access.png)
**Acceptance criteria;**
- [ ] Editors/users with access to the control panel should be able to click on the action button (animated tick) 'Submit for author proofing'.
- [ ] Editors should be able to see a record of the user assigned from a collapsable list.
- [ ] Authors should be able to access the editor-proofing page from their Dashboard>My Submissions>Manuscript link.Amnet Author proofing workflowVignesh DevendranVignesh Devendranhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1443Add new Author proofing states2024-02-13T12:22:47ZRyan Dix-PeekAdd new Author proofing statesThe following states are to be added to the Dashboard>My Submissions, Dashboard>Manuscripts I'm editor of and Manuscript page views;
1. The editor assigns the author from the Control panel, and the status updates to; 'Author proof assign...The following states are to be added to the Dashboard>My Submissions, Dashboard>Manuscripts I'm editor of and Manuscript page views;
1. The editor assigns the author from the Control panel, and the status updates to; 'Author proof assigned' (Colour: Yellow)
1. Author access the Author proofing editor (clicks on the Dashboard>My Submissions>Production editor link) and the status updates to; ‘Author proofing in progress’ (Colour: Yellow)
1. Author submits proofing feedback (clicks on the submit action on the Production ediorr>Feedback page) and the status updates to; ‘Author proof completed’ (Colour: Green)
**Acceptnace criteria;**
- [ ] As an editor, I'm able to filter by Author proof assigned/Author proofing in progress/Author proof completed from the Dashboard>Manuscripts I'm editor of page.
- [ ] As a Group Manager, I'm able to filter by Author proof assigned/Author proofing in progress/Author proof completed from the Manuscripts page.
- [ ] As an author, I'm able to filter by Author proof assigned/Author proofing in progress/Author proof completed from the Dashboard>My submissions page.
- [ ] Author proof assigned/Author proofing in progress/Author proof completed states can be changed on submission of a new version when a review is assigned, when a decision is made or when on the publish action.
![Screenshot_2023-10-19_at_15.36.38](/uploads/29bb0a79df88bd2ebb5d26b0ab5bf0a9/Screenshot_2023-10-19_at_15.36.38.png)Amnet Author proofing workflowVignesh DevendranVignesh Devendranhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1523Unknown default Flax logo is displaying2024-02-13T12:22:04ZRyan Dix-PeekUnknown default Flax logo is displayingDefault source logo; https://kotahidev.cloud68.co/kotahi/assets/images/logo.png seems to be set, and overrides the logo set in CMS>Layout>Brand logo. Adding a new 'Brand logo' is not saved after 'publishing data' or leaving the page.
- ...Default source logo; https://kotahidev.cloud68.co/kotahi/assets/images/logo.png seems to be set, and overrides the logo set in CMS>Layout>Brand logo. Adding a new 'Brand logo' is not saved after 'publishing data' or leaving the page.
- An image file should be saved (attached) to the 'Brand logo' field after successful upload.
- No logo should be displayed if there is no file attached to the 'Brand logo' field.
- If an image file has been uploaded successfully this image should be displayed as the 'Brand logo' in Flax header.
![Screenshot_2024-02-09_at_13.56.58](/uploads/a1f731b555eede0a5bd0c82abc99a25e/Screenshot_2024-02-09_at_13.56.58.png)
![Screenshot_2024-02-09_at_13.56.32](/uploads/466543647d4097a60def37e11c5ecb06/Screenshot_2024-02-09_at_13.56.32.png)https://gitlab.coko.foundation/kotahi/kotahi/-/issues/1417[Kotahidev] Dashboard errors (database load)2024-02-13T12:21:24ZRyan Dix-Peek[Kotahidev] Dashboard errors (database load)Users are experiencing intermittent errors on the Dashboard.
Feedback from @BenWh
>The intermittent dashboard crashes you're seeing on Kotahidev are a result of too many database connections at once. It happens when there are too man...Users are experiencing intermittent errors on the Dashboard.
Feedback from @BenWh
>The intermittent dashboard crashes you're seeing on Kotahidev are a result of too many database connections at once. It happens when there are too many database queries and/or the queries are taking too long to complete. It's an error coming from the database itself, and it's probably starting to appear now because we have so many manuscripts in the system on kotahidev, meaning that in some cases queries may run longer, and in other cases we might be running more queries in parallel to get data relating to individual manuscripts.
There are several possible things we can do about this:
- Most crudely, we can increase the number of permitted connections, though this may increase memory overheads for the DB. This is something Cloud68 would have to do per database. I'd prefer not to have to do this in the long run, as the app should ideally work with databases with default settings.
- We can hunt in code for queries that are being run in parallel, such as within a forEach, and chunk them so that no more than, say, 10 run simultaneously, and the rest wait until those are finished.
- We can hunt in code for queries that should be combined, or queries that are wasteful because we already have the information. In some cases withGraphFetched could be replaced with withGraphJoined.
- We can hunt for queries that are long-running due to being poorly written or lacking the appropriate DB indexes.
- We can do some database logging to find frequent and long-running queries.
- To avoid the same DB query being repeated by multiple resolvers (and by graphql-shield code), we can use the DataLoader library to batch and cache DB requests
- some frequently accessed and rarely changed queries, such as group and config data, could be cached in memory
- We could possibly use a specialised cache like RedisPankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1425Create author proofing controls in the Production editor2024-02-13T11:53:21ZRyan Dix-PeekCreate author proofing controls in the Production editorThe author should access the Production editor when assigned to participate in a round of author proofing. We assume production editors have left suggested changes and comments in the Wax Production Editor, and the author has the requisi...The author should access the Production editor when assigned to participate in a round of author proofing. We assume production editors have left suggested changes and comments in the Wax Production Editor, and the author has the requisite role and associated permissions to access the comments and changes and respond as required.
[Reference document](https://docs.google.com/document/d/1Qb2wA6lEQh_bxk70ux9XldwUD1R46bkN/edit?usp=sharing&ouid=103654087714276915531&rtpof=true&sd=true)
The author accessing the Production editor should be able to;
1. See existing suggested changes (read-only)
1. Add new suggested changes. This includes paragraph text, styling (bold etc.), deleting/inserting new images, adding/editing tables and adding/editing formulas.
1. Reply to comments
1. Add new comments
1. Download a PDF and/or HTML
The author accessing the Production should not be able to;
1. Accept/Reject existing suggested changes
2. Edit manuscript content
3. See/use annotation tools
4. be able to download JATS
Mockup;
![authorproofing_editor](/uploads/3cb1787a20c3070d88f3f6095d35a9d5/authorproofing_editor.png)
**Acceptance criteria;**
- [ ] Group Managers can make edits in the Production editor that are displayed in the author-proofing editor.
- [ ] Authors is able to access the Wax Production editor.
- [ ] Author is able to make suggested changes to paragraph text, images and tables.
- [ ] Author is able to reply to existing comments and create new comments.
- [ ] Author can click on the 'Download' menu and select PDF or HTML and the format should download.
- [ ] For Editors/Group Managers; once an author is assigned, the Production editor should be in a read-only state until the author submits the feedback form.Amnet Author proofing workflowDan ViselDan Viselhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1451Author proofing email triggers and templates2024-02-13T11:53:02ZRyan Dix-PeekAuthor proofing email triggers and templatesThe purpose of this task is to add the email notification triggers, email notification templates and event configuration settings when assigning and completing a round of author proofing.
The following email should be sent based on the...The purpose of this task is to add the email notification triggers, email notification templates and event configuration settings when assigning and completing a round of author proofing.
The following email should be sent based on the following triggers;
1. Trigger; Editor assigns author --> email template; Author invitation to participate in a round of author proofing.
1. Trigger; Author submits feedback --> email template; Editor notification of author feedback submission.
[Email template reference document](https://docs.google.com/document/d/17uTniblhXQYSHEN-tAAyaB3F-7T6YztP/edit?usp=sharing&ouid=103654087714276915531&rtpof=true&sd=true); note email content mapping to respective Production editor pages.
**Acceptance criteria;**
- [ ] When an editor clicks on Control panel>Team>'Assign proofing' the 'Author proofing invitation' email link should be sent to the author. Clicking on the link embedded in the email notification should direct authors to the production editor>editor after login.
- [ ] When an author clicks on Production editor>Feedback>'Submit' the 'Editor notification of author feedback submission' email should be sent to the editor/s assigned to the manuscript. Clicking on the link embedded in the email notification should direct editors to the production editor>editor after login.
- [ ] Group managers should be able to see the event listed under Configuration>Events section and should be able to assign an email template from the dropdown menu. The generic email template should be displayed as a default configuration when setting up a new instance.
- [ ] Group manager should see the generic email template listed on the Settings>Emails page.Amnet Author proofing workflowVignesh DevendranVignesh Devendranhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1501Users can access pages of a manuscript, without being assigned a role2024-02-13T11:47:31ZSidorela UkuUsers can access pages of a manuscript, without being assigned a role<!-- Required. Provide a general summary of the issue in the title above -->
## Expected behaviour
A user (not admin/group manager role) should only be able to see manuscripts they are authors, reviewers or editors of. The manuscripts ...<!-- Required. Provide a general summary of the issue in the title above -->
## Expected behaviour
A user (not admin/group manager role) should only be able to see manuscripts they are authors, reviewers or editors of. The manuscripts a user should be able to access should also be listed in the main dashboard of their submissions/to review/editor of.
## Current behaviour
A user can access any manuscript page, if given a url for it, without any role assigned.
## Steps to reproduce
1. Login as an admin (any other user could be valid for the test case)
2. Create a new manuscript
3. The new url of the manuscript will be similar to this: (https://nbdt.cloud68.co/kotahi/versions/05634472-c8c9-45a9-b201-d5a8ce4b8a5b/submit). Copy that.
4. On a new browser login as a normal user.
5. Paste on the browser the url from point 3.
6. You are able to access the submission page, also by changing the last part /submit to /decision and /review, you can access the other pages.
This was tested on nbdt test site and also in aperture test site. The only difference in case of aperture the /decision page can't be accessed.
## Environment
Firefox and Brave browsers.
## Possible solution
<!-- If known, provide details on how to fix the bug.-->
<!-- After creating this issue you can link other related or blocking issues with the Gitlab's Linked issues functionality. -->Ben WhitmoreBen Whitmorehttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1489[BPSC] Export manuscript data2024-02-13T11:43:54ZRyan Dix-Peek[BPSC] Export manuscript data1. Configuration option to download Submission, Review and Decision data as CSV or JSON file.
1. A UI control accessible by editors and group managers: either another export option added to the production page export button, or an action...1. Configuration option to download Submission, Review and Decision data as CSV or JSON file.
1. A UI control accessible by editors and group managers: either another export option added to the production page export button, or an action added to the manuscripts table. The downloaded JSON would not be redacted (would contain confidential fields, reviewer names, etc)
JSON is best suited, as CSV isn’t good at representing nested data (such as author data) or variable-length data (such as variable number of reviews, variable number of authors etc.)BPSC Collaborative form field typePankaj KandpalPankaj Kandpalhttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1321Assigning an editor sometimes fails2024-02-09T12:35:32ZBen WhitmoreAssigning an editor sometimes fails@markm has reported getting this error occasionally when admin is assigning editor to manuscript:
![image](/uploads/2e7084b1a3082e15ccf638b3584dc1c5/image.png)
When this happens, UI appears to show that the editor has been assigned, bu...@markm has reported getting this error occasionally when admin is assigning editor to manuscript:
![image](/uploads/2e7084b1a3082e15ccf638b3584dc1c5/image.png)
When this happens, UI appears to show that the editor has been assigned, but the assignment is lost when the admin navigates away from the control page.
## Investigation
The graphql error suggests that the failing query is `updateTeam`. I notice that the query signature differs from the client to the server:
`updateTeam(id: ID!, input: TeamInput)` on the client, `updateTeam(id: ID, input: TeamInput): Team` on the server. I'm guessing this isn't the cause of the failure, but preventing nulls on `id` and `input` might help give us better diagnostics. The signature should really be:
```
updateTeam(id: ID!, input: TeamInput!): Team!
```
... and it should throw an exception if the target team doesn't exist.
I'm guessing the failure stems from [here](https://gitlab.coko.foundation/kotahi/kotahi/-/blob/1b640355691bfb2cb092ea9b17ee8062dc68c0ec/app/components/component-submit/src/components/assignEditors/AssignEditor.js#L39) if for some reason a team for that role hasn't yet been created for the manuscript, or the client hasn't obtained that team for some reason.Vaibhav RathoreVaibhav Rathorehttps://gitlab.coko.foundation/kotahi/kotahi/-/issues/1342Add data type attribute to form fields2024-02-09T12:09:52ZRyan Dix-PeekAdd data type attribute to form fieldsDescription: add a list of preset data type attributes to each form field form type. The purpose of this task is to support the standardisation of data types, for moving data between Groups (multitenancy) within Kotahi and mapping to an ...Description: add a list of preset data type attributes to each form field form type. The purpose of this task is to support the standardisation of data types, for moving data between Groups (multitenancy) within Kotahi and mapping to an endpoint e.g. Flax
Purpose;
- To update the names of form field types to better describe there function.
- To add a preset data type an advanced settings option to each form field.
- To add a JATS data type an advanced settings option to each form field.
- Retain functionality that supports custom data types (currently `internal_name`).
References;
- [Form field types](https://docs.google.com/spreadsheets/d/1CBiEZwi96Ey4qgEfIthOOIk2lfKVyZuj/edit?pli=1#gid=1248208504)
- [Form field attributes (Data types)](https://docs.google.com/spreadsheets/d/1CBiEZwi96Ey4qgEfIthOOIk2lfKVyZuj/edit?pli=1#gid=1720869140)
- [JATS tagging suite](https://jats.nlm.nih.gov/archiving/tag-library/1.3/)Amnet multi-tenancy v2Ben WhitmoreDan ViselBen Whitmore