├── .dockerignore ├── public ├── _redirects ├── robots.txt ├── favicon.ico ├── logo192.png ├── manifest.json └── index.html ├── .babelrc ├── src ├── pages │ ├── Journal │ │ ├── Journal.css │ │ └── Journal.js │ ├── index.js │ ├── Home.js │ └── Manifesto │ │ ├── Manifesto.css │ │ └── Manifesto.js ├── graphql │ ├── mutation │ │ ├── LOGOUT.js │ │ ├── deleteJournal.js │ │ ├── login.js │ │ ├── register.js │ │ ├── createJournal.js │ │ └── updateJournal.js │ └── queries │ │ ├── GET_USER.js │ │ ├── getAllJournals.js │ │ └── getFullJournalByISSN.js ├── utils │ └── toErrorMap.js ├── components │ ├── marginals │ │ ├── Loader │ │ │ ├── Spinner.js │ │ │ └── Spinner.css │ │ ├── shared │ │ │ ├── Layout.js │ │ │ ├── SectionLayout.js │ │ │ └── PolicyContainer.js │ │ ├── index.js │ │ ├── Search │ │ │ └── Search.js │ │ ├── Navbar │ │ │ ├── Navbar.js │ │ │ └── styles.js │ │ ├── Footer │ │ │ ├── styles.js │ │ │ └── Footer.js │ │ └── Error │ │ │ ├── error.css │ │ │ └── Error.js │ ├── Authentication │ │ ├── FormSuccess.js │ │ ├── Login │ │ │ ├── validateLoginInfo.js │ │ │ ├── LoginForm.js │ │ │ ├── styles.js │ │ │ └── Login.js │ │ ├── User-Profile │ │ │ ├── Logout.js │ │ │ ├── styles.js │ │ │ └── useprofile.js │ │ ├── Signup │ │ │ ├── validateInfo.js │ │ │ ├── Form.js │ │ │ └── SignUp.js │ │ └── styles.js │ ├── index.js │ ├── Journals │ │ ├── Journal.js │ │ ├── useFetch.js │ │ ├── styles.js │ │ └── JournalList.js │ ├── Pagination │ │ └── Pagination.js │ ├── Landing │ │ ├── Header │ │ │ ├── Header.js │ │ │ └── Header.css │ │ └── LandingSection │ │ │ ├── LandingSection.js │ │ │ └── styles.js │ ├── JournalDetails │ │ ├── styles.js │ │ └── Details.js │ ├── AddJournal │ │ ├── styles.js │ │ └── AddJournal.js │ └── EditJournal │ │ └── Edit.js ├── config │ └── content │ │ ├── index.js │ │ ├── signup.js │ │ ├── navbar.js │ │ ├── footer.js │ │ ├── landingpage.js │ │ └── manifesto.js ├── index.js ├── context │ ├── types.js │ ├── DataContext.js │ └── reducer.js ├── index.css └── App.js ├── logo.webp ├── Dockerfile ├── .prettierrc ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── workflows │ └── docker-image.yml └── PULL_REQUEST_TEMPLATE.md ├── LICENSE ├── .eslintrc ├── package.json ├── README.md └── .gitignore /.dockerignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-react"] 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/Journal/Journal.css: -------------------------------------------------------------------------------- 1 | .journal-padding{ 2 | padding-top: 7em; 3 | } -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeisscience/journal-policy-tracker-frontend/HEAD/logo.webp -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeisscience/journal-policy-tracker-frontend/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codeisscience/journal-policy-tracker-frontend/HEAD/public/logo192.png -------------------------------------------------------------------------------- /src/pages/index.js: -------------------------------------------------------------------------------- 1 | export { default as Journal } from './Journal/Journal'; 2 | export { default as Manifesto } from './Manifesto/Manifesto'; 3 | export { default as Home } from './Home'; 4 | -------------------------------------------------------------------------------- /src/graphql/mutation/LOGOUT.js: -------------------------------------------------------------------------------- 1 | import { gql } from '@apollo/client'; 2 | 3 | const LOGOUT = gql` 4 | mutation Mutation { 5 | logout 6 | } 7 | `; 8 | 9 | export default LOGOUT; 10 | -------------------------------------------------------------------------------- /src/utils/toErrorMap.js: -------------------------------------------------------------------------------- 1 | export const toErrorMap = (errors) => { 2 | const errorMap = {}; 3 | errors.forEach(({ field, message }) => { 4 | errorMap[field] = message; 5 | }); 6 | 7 | return errorMap; 8 | }; 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:16 2 | ENV NODE_ENV development 3 | WORKDIR /usr/src/frontend 4 | 5 | COPY package.json . 6 | COPY yarn.lock . 7 | RUN yarn 8 | COPY . . 9 | 10 | RUN yarn build 11 | 12 | 13 | EXPOSE 3000 14 | CMD ["yarn", "start"] -------------------------------------------------------------------------------- /src/graphql/mutation/deleteJournal.js: -------------------------------------------------------------------------------- 1 | import { gql } from '@apollo/client'; 2 | 3 | const DELETE_JOURNAL = gql` 4 | mutation DeleteJournal($issnToDelete: String!) { 5 | deleteJournal(issnToDelete: $issnToDelete) 6 | } 7 | `; 8 | 9 | export default DELETE_JOURNAL; 10 | -------------------------------------------------------------------------------- /src/components/marginals/Loader/Spinner.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | import './Spinner.css'; 4 | 5 | function Spinner() { 6 | return ( 7 |
{value.title}
29 | 30 | ))} 31 |
13 |
14 |
15 |
16 |
17 |
Code is Science - a manifesto for anyone who deals with code in a scientific scenario
33 | 34 |37 | Through working with scientific code, we agree that scientific code needs to be treated as 38 | a genuine research output. For this reason we have created a{' '} 39 | 44 | manifesto 45 | 46 | , which will allow both individuals and organisations to sign up and agree to make genuine 47 | efforts to both make their own scientific code open, as well as sharing the manifesto 48 | mission with others. 49 |
50 | 51 |57 | 62 | Sign the manifesto as an individual 63 | 64 |
65 | 66 |69 | 74 | Sign the manifesto as an organisation or institution. 75 | 76 | Please make sure you have authority to sign on behalf of your organisation before you sign 77 | on behalf of an organisation. 78 |
79 | 80 |83 | We’re particularly interested in adding logos and links indicating organisational support 84 | from publishers, funders, and research institutions. 85 |
86 | 87 |198 | Homepage 199 |
200 | > 201 | )} 202 |