From 7befb35ed3077d484febbce863d5fe7f43eee2ae Mon Sep 17 00:00:00 2001 From: Peter Harrison <16875803+palisadoes@users.noreply.github.com> Date: Sat, 4 May 2024 13:43:47 -0700 Subject: [PATCH] Merge develop - 20240504 (#1957) * Deleted all files in the main branch in anticipation of merging develop into main cleanly * Merge develop into main * Deleted all files in the main branch in anticipation of merging develop into main cleanly * Merge develop into main --- .dockerignore | 8 + INSTALLATION.md | 141 ++++++--- package-lock.json | 269 ++++++++++-------- package.json | 10 +- public/locales/en.json | 37 ++- public/locales/fr.json | 35 ++- public/locales/hi.json | 37 ++- public/locales/sp.json | 37 ++- public/locales/zh.json | 37 ++- public/markdown/images/install1.png | Bin 0 -> 38688 bytes public/markdown/images/install2.png | Bin 0 -> 57207 bytes schema.graphql | 2 +- src/components/LeftDrawer/LeftDrawer.test.tsx | 92 +++--- .../LeftDrawerOrg/LeftDrawerOrg.module.css | 1 - .../OrganizationScreen.module.css | 3 + src/screens/LoginPage/LoginPage.module.css | 4 + src/screens/LoginPage/LoginPage.test.tsx | 108 ++++++- src/screens/LoginPage/LoginPage.tsx | 64 ++++- src/screens/Users/Users.tsx | 1 - src/utils/interfaces.ts | 19 ++ 20 files changed, 676 insertions(+), 229 deletions(-) create mode 100644 .dockerignore create mode 100644 public/markdown/images/install1.png create mode 100644 public/markdown/images/install2.png diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..06d9a3ecb2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +node_modules +videos +images +.env +.git +.gitignore +.github +.dockerignore \ No newline at end of file diff --git a/INSTALLATION.md b/INSTALLATION.md index a07c2fa5b8..98de170d6d 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -6,17 +6,20 @@ This document provides instructions on how to set up and start a running instanc -- [Prerequisites for Developers](#prerequisites-for-developers) -- [Installation](#installation) +- [Talawa-Admin Installation](#talawa-admin-installation) +- [Table of Contents](#table-of-contents) +- [Installation Steps Summary](#installation-steps-summary) +- [Prerequisites](#prerequisites) + - [Install git](#install-git) - [Setting up this repository](#setting-up-this-repository) - - [Setting up npm](#setting-up-npm) - - [Setting up Typescript](#setting-up-typescript) - - [Installing required packages/dependencies](#installing-required-packagesdependencies) + - [Install node.js](#install-nodejs) + - [Install TypeScript](#install-typescript) + - [Install Required Packages](#install-required-packages) - [Configuration](#configuration) - [Creating .env file](#creating-env-file) - [Setting up PORT in .env file](#setting-up-port-in-env-file) - - [Setting up REACT_APP_TALAWA_URL in .env file](#setting-up-react_app_talawa_url-in-env-file) - - [Setting up REACT_APP_RECAPTCHA_SITE_KEY in .env file](#setting-up-react_app_recaptcha_site_key-in-env-file) + - [Setting up REACT\_APP\_TALAWA\_URL in .env file](#setting-up-react_app_talawa_url-in-env-file) + - [Setting up REACT\_APP\_RECAPTCHA\_SITE\_KEY in .env file](#setting-up-react_app_recaptcha_site_key-in-env-file) - [Setting up Compiletime and Runtime logs](#setting-up-compiletime-and-runtime-logs) - [Post Configuration Steps](#post-configuration-steps) - [Running Talawa-Admin](#running-talawa-admin) @@ -33,66 +36,114 @@ This document provides instructions on how to set up and start a running instanc -# Prerequisites for Developers -We recommend that you to follow these steps before beginning development work on Talawa-Admin: +# Installation Steps Summary -1. You need to have `nodejs` installed in your machine. We recommend using Node version greater than 20.0.0. You can install it either through [nvm](https://github.com/nvm-sh/nvm) (Node Version Manager) or by visiting the official [Nodejs](https://nodejs.org/download/release/v16.20.2/) website. -1. [Talawa-API](https://github.com/PalisadoesFoundation/talawa-api): (**This is mandatory**) The API system that the mobile app uses for accessing data. Setup your own **_local instance_** -1. [Talawa](https://github.com/PalisadoesFoundation/talawa): (Optional) The mobile app that people will use to access Talawa's features. This may be useful if you need to verify administrative features you have added or modified. +Installation is not difficult, but there are many steps. This is a brief explanation of what needs to be done: -The INSTALLATION.md files in both repositories show you how. The Talawa-API INSTALLATION.md will also show you the Organization URL to use access Talawa Admin. +1. Install `git` +2. Download the code from GitHub using `git` +3. Install `node.js` (Node), the runtime environment the application will need to work. +4. Configure the Node Package Manager (`npm`) to automatically use the correct version of Node for our application. +5. Use `npm` to install TypeScript, the language the application is written in. +6. Install other supporting software such as the database. +7. Configure the application +8. Start the application -# Installation +These steps are explained in more detail in the sections that follow. -You will need to have copies of your code on your local system. Here's how to do that. +# Prerequisites -## Setting up this repository - -First you need a local copy of `talawa-admin`. Run the following command in the directory of choice on your local system. - -1. Navigate to the folder where you want to setup the repository. Here, I will set it up in a folder called `talawa`. -2. Navigate to the folder and open a terminal in this folder (you can right-click and choose appropiate option based onn your OS). Next, we'll fork and clone the `talawa-admin` repository. -3. Navigate to [https://github.com/PalisadoesFoundation/talawa-admin/](hhttps://github.com/PalisadoesFoundation/talawa-admin/) and click on the `fork` button. It is placed on the right corner opposite the repository name `PalisadoesFoundation/talawa-admin`. -4. You should now see `talawa-admin` under your repositories. It will be marked as forked from `PalisadoesFoundation/talawa-admin` -5. Clone the repository to your local computer (replacing the values in `{{}}`): - -``` -$ git clone https://github.com/{{YOUR GITHUB USERNAME}}/talawa-admin.git -``` +In this section we'll explain how to set up all the prerequisite software packages to get you up and running. -This will setup the repository and the code files locally for you. For more detailed instructions on contributing code, and managing the versions of this repository with Git, checkout [CONTRIBUTING.md here](./CONTRIBUTING.md) +## Install git -**NOTE:** `All the commands we're going to execute in the following instructions will assume you are in the root directory of the cloned talawa-admin project. If you fail to do so, the commands will not work.` +The easiest way to get the latest copies of our code is to install the `git` package on your computer. -## Setting up npm +Follow the setup guide for `git` on official [git docs](https://git-scm.com/downloads). Basic `git` knowledge is required for open source contribution so make sure you're comfortable with it. [Here's](https://youtu.be/apGV9Kg7ics) a good tutorial to get started with `git` and `github`. -Best way to install and manage `node.js` is making use of node version managers. Two most popular node version managers right now are [fnm](https://github.com/Schniz/fnm) and [nvm](https://github.com/nvm-sh/nvm). We'd recommend `fnm` because it's written in `rust` and is much faster than `nvm`. Install whichever one you want and follow their guide to set up `node.js` on your system. - -_**NOTE**_ - -1. The repository has a `.node-version` file to help ensure you use the supported version of `node.js`. Do not edit this file. -1. We strongly recommend that you configure your node version manager of choice to automatically read `.node-version` files - -## Setting up Typescript +## Setting up this repository -As `talawa-admin` and `talawa-api` repositories are written using [Typescript](https://www.typescriptlang.org/), you will need to install typescript on your machine. -We recommend to install `Typescript` globally on your machine by running the following command in the terminal: +First you need a local copy of `talawa-admin`. Run the following command in the directory of choice on your local system. -``` +1. On your computer, navigate to the folder where you want to setup the repository. +2. Open a `cmd` (Windows) or `terminal` (Linux or MacOS) session in this folder. + 1. An easy way to do this is to right-click and choose appropriate option based on your OS. +3. **For Our Open Source Contributor Software Developers:** + 1. Next, we'll fork and clone the `talawa-admin` repository. + 1. In your web browser, navigate to [https://github.com/PalisadoesFoundation/talawa-admin/](https://github.com/PalisadoesFoundation/talawa-admin/) and click on the `fork` button. It is placed on the right corner opposite the repository name `PalisadoesFoundation/talawa-admin`. + + ![Image with fork](public/markdown/images/install1.png) + + 2. You should now see `talawa-admin` under your repositories. It will be marked as forked from `PalisadoesFoundation/talawa-admin` + + ![Image of user's clone](public/markdown/images/install2.png) + + 3. Clone the repository to your local computer (replacing the values in `{{}}`): + ```bash + $ git clone https://github.com/{{YOUR GITHUB USERNAME}}/talawa-admin.git + cd talawa-admin + git checkout develop + ``` + - **Note:** Make sure to check out the `develop` branch + 4. You now have a local copy of the code files. For more detailed instructions on contributing code, and managing the versions of this repository with `git`, checkout our [CONTRIBUTING.md](./CONTRIBUTING.md) file. +4. **Talawa Administrators:** + 1. Clone the repository to your local computer using this command: + + ```bash + $ git clone https://github.com/PalisadoesFoundation/talawa-admin.git + ``` + +## Install node.js + +Best way to install and manage `node.js` is making use of node version managers. We recommend using `fnm`, which will be described in more detail later. + +Follow these steps to install the `node.js` packages in Windows, Linux and MacOS. + +1. For Windows: + 1. first install `node.js` from their website at https://nodejs.org + 1. When installing, don't click the option to install the `necessary tools`. These are not needed in our case. + 2. then install [fnm](https://github.com/Schniz/fnm). Please read all the steps in this section first. + 1. All the commands listed on this page will need to be run in a Windows terminal session in the `talawa-admin` directory. + 2. Install `fnm` using the `winget` option listed on the page. + 3. Setup `fnm` to automatically set the version of `node.js` to the version required for the repository using these steps: + 1. First, refer to the `fnm` web page's section on `Shell Setup` recommendations. + 2. Open a `Windows PowerShell` terminal window + 3. Run the recommended `Windows PowerShell` command to open `notepad`. + 4. Paste the recommended string into `notepad` + 5. Save the document. + 6. Exit `notepad` + 7. Exit PowerShell + 8. This will ensure that you are always using the correct version of `node.js` +2. For Linux and MacOS, use the terminal window. + 1. install `node.js` + 2. then install `fnm` + 1. Refer to the installation page's section on the `Shell Setup` recommendations. + 2. Run the respective recommended commands to setup your node environment + 3. This will ensure that you are always using the correct version of `node.js` + +## Install TypeScript + +TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. It adds optional types, classes, and modules to JavaScript, and supports tools for large-scale JavaScript applications. + +To install TypeScript, you can use the `npm` command which comes with `node.js`: + +```bash npm install -g typescript ``` -For more details please refer to the installation guidelines provided in the [official docs](https://www.typescriptlang.org/download). +This command installs TypeScript globally on your system so that it can be accessed from any project. -## Installing required packages/dependencies +## Install Required Packages -Run the following command to install the packages and dependencies required by `talawa-admin`: +Run the following command to install the packages and dependencies required by the app: ``` npm install ``` +The prerequisites are now installed. The next step will be to get the app up and running. + # Configuration It's important to configure Talawa-Admin. Here's how to do it. diff --git a/package-lock.json b/package-lock.json index d3e0d5e85d..bfbbf48e43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.8.3", - "@mui/material": "^5.14.1", + "@mui/material": "^5.15.15", "@mui/private-theming": "^5.15.12", "@mui/system": "^5.14.12", "@mui/x-charts": "^6.0.0-alpha.13", @@ -65,8 +65,8 @@ "@testing-library/user-event": "^12.1.10", "@types/inquirer": "^9.0.7", "@types/jest": "^26.0.24", - "@types/js-cookie": "^3.0.2", - "@types/node": "^12.20.55", + "@types/js-cookie": "^3.0.6", + "@types/node": "^20.12.7", "@types/node-fetch": "^2.6.10", "@types/react": "^17.0.14", "@types/react-bootstrap": "^0.32.32", @@ -78,7 +78,7 @@ "@typescript-eslint/eslint-plugin": "^5.9.0", "@typescript-eslint/parser": "^5.9.0", "cross-env": "^7.0.3", - "eslint-config-prettier": "^8.10.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^25.3.4", "eslint-plugin-prettier": "^5.1.3", @@ -88,7 +88,7 @@ "identity-obj-proxy": "^3.0.0", "jest": "^27.4.5", "jest-localstorage-mock": "^2.4.19", - "jest-location-mock": "^1.0.9", + "jest-location-mock": "^2.0.0", "jest-preview": "^0.3.1", "lint-staged": "^15.2.2", "postcss-modules": "^6.0.0", @@ -3285,28 +3285,28 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.1.tgz", + "integrity": "sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==", "dependencies": { - "@floating-ui/utils": "^0.1.3" + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.4.tgz", + "integrity": "sha512-0G8R+zOvQsAG1pg2Q99P21jiqxqGBW1iRe/iXHsBRBxnpXKFI8QwbB4x5KmYLggNO5m34IQgOIu9SCRfR/WWiQ==", "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz", - "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.9.tgz", + "integrity": "sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==", "dependencies": { - "@floating-ui/dom": "^1.5.1" + "@floating-ui/dom": "^1.0.0" }, "peerDependencies": { "react": ">=16.8.0", @@ -3314,9 +3314,9 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@gar/promisify": { "version": "1.1.3", @@ -3855,16 +3855,16 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-beta.17", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.17.tgz", - "integrity": "sha512-xNbk7iOXrglNdIxFBN0k3ySsPIFLWCnFxqsAYl7CIcDkD9low4kJ7IUuy6ctwx/HAy2fenrT3KXHr1sGjAMgpQ==", + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", "dependencies": { - "@babel/runtime": "^7.22.15", - "@floating-ui/react-dom": "^2.0.2", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.11", + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", "@popperjs/core": "^2.11.8", - "clsx": "^2.0.0", + "clsx": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { @@ -3872,7 +3872,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0", @@ -3886,20 +3886,20 @@ } }, "node_modules/@mui/base/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.14.11", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.11.tgz", - "integrity": "sha512-uY8FLQURhXe3f3O4dS5OSGML9KDm9+IE226cBu78jarVIzdQGPlXwGIlSI9VJR8MvZDA6C0+6XfWDhWCHruC5Q==", + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz", + "integrity": "sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==", "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" } }, "node_modules/@mui/icons-material": { @@ -3928,19 +3928,19 @@ } }, "node_modules/@mui/material": { - "version": "5.14.11", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.11.tgz", - "integrity": "sha512-DnSdJzcR7lwG12JA5L2t8JF+RDzMygu5rCNW+logWb/KW2/TRzwLyVWO+CorHTBjBRd38DBxnwOCDiYkDd+N3A==", + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz", + "integrity": "sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==", "dependencies": { - "@babel/runtime": "^7.22.15", - "@mui/base": "5.0.0-beta.17", - "@mui/core-downloads-tracker": "^5.14.11", - "@mui/system": "^5.14.11", - "@mui/types": "^7.2.4", - "@mui/utils": "^5.14.11", - "@types/react-transition-group": "^4.4.6", - "clsx": "^2.0.0", - "csstype": "^3.1.2", + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.15", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", "prop-types": "^15.8.1", "react-is": "^18.2.0", "react-transition-group": "^4.4.5" @@ -3950,7 +3950,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -3972,9 +3972,9 @@ } }, "node_modules/@mui/material/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } @@ -4006,13 +4006,13 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.15.tgz", - "integrity": "sha512-mbOjRf867BysNpexe5Z/P8s3bWzDPNowmKhi7gtNDP/LPEeqAfiDSuC4WPTXmtvse1dCl30Nl755OLUYuoi7Mw==", + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", "dependencies": { - "@babel/runtime": "^7.23.2", + "@babel/runtime": "^7.23.9", "@emotion/cache": "^11.11.0", - "csstype": "^3.1.2", + "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { @@ -4020,7 +4020,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.4.1", @@ -4037,17 +4037,17 @@ } }, "node_modules/@mui/system": { - "version": "5.14.15", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.15.tgz", - "integrity": "sha512-zr0Gdk1RgKiEk+tCMB900LaOpEC8NaGvxtkmMdL/CXgkqQZSVZOt2PQsxJWaw7kE4YVkIe4VukFVc43qcq9u3w==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/private-theming": "^5.14.15", - "@mui/styled-engine": "^5.14.15", - "@mui/types": "^7.2.7", - "@mui/utils": "^5.14.15", - "clsx": "^2.0.0", - "csstype": "^3.1.2", + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", + "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { @@ -4055,7 +4055,7 @@ }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/mui" + "url": "https://opencollective.com/mui-org" }, "peerDependencies": { "@emotion/react": "^11.5.0", @@ -4076,17 +4076,17 @@ } }, "node_modules/@mui/system/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "engines": { "node": ">=6" } }, "node_modules/@mui/types": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.7.tgz", - "integrity": "sha512-sofpWmcBqOlTzRbr1cLQuUDKaUYVZTw8ENQrtL39TECRNENEzwgnNPh6WMfqMZlMvf1Aj9DLg74XPjnLr0izUQ==", + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0" }, @@ -5494,9 +5494,9 @@ } }, "node_modules/@types/js-cookie": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.3.tgz", - "integrity": "sha512-Xe7IImK09HP1sv2M/aI+48a20VX+TdRJucfq4vfRVy6nWN8PYPOEnlMRSgxJAgYQIXJVL8dZ4/ilAM7dWNaOww==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", + "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", "dev": true }, "node_modules/@types/json-schema": { @@ -5522,9 +5522,12 @@ "peer": true }, "node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/node-fetch": { "version": "2.6.11", @@ -5669,9 +5672,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "dependencies": { "@types/react": "*" } @@ -8825,9 +8828,9 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/customize-cra": { "version": "1.0.0", @@ -9957,9 +9960,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -14257,18 +14260,36 @@ } }, "node_modules/jest-location-mock": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/jest-location-mock/-/jest-location-mock-1.0.10.tgz", - "integrity": "sha512-g5u0rDOaj1I/lWuPOOP6xfpY+O958IcOanwPKnHdfWm0l4Y2sdVmwXMPY9fT5s8D9nX44Zl/Ypmk6B88mDoqZQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-location-mock/-/jest-location-mock-2.0.0.tgz", + "integrity": "sha512-loakfclgY/y65/2i4s0fcdlZY3hRPfwNnmzRsGFQYQryiaow2DEIGTLXIPI8cAO1Is36xsVLVkIzgvhQ+FXHdw==", "dev": true, "dependencies": { "@jedmao/location": "^3.0.0", - "jest-diff": "^27.0.1" + "jest-diff": "^29.6.4" }, "engines": { - "node": ">=10.0.0" + "node": "^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-location-mock/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-location-mock/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, "node_modules/jest-location-mock/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -14286,41 +14307,50 @@ } }, "node_modules/jest-location-mock/node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-location-mock/node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-location-mock/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-location-mock/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.1", + "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" + "react-is": "^18.0.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-location-mock/node_modules/pretty-format/node_modules/ansi-styles": { @@ -14335,12 +14365,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-location-mock/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, "node_modules/jest-matcher-utils": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", @@ -23371,6 +23395,11 @@ "react": ">=15.0.0" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", diff --git a/package.json b/package.json index 10ddc16b1f..1d211a790c 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", "@mui/icons-material": "^5.8.3", - "@mui/material": "^5.14.1", + "@mui/material": "^5.15.15", "@mui/private-theming": "^5.15.12", "@mui/system": "^5.14.12", "@mui/x-charts": "^6.0.0-alpha.13", @@ -97,8 +97,8 @@ "@testing-library/user-event": "^12.1.10", "@types/inquirer": "^9.0.7", "@types/jest": "^26.0.24", - "@types/js-cookie": "^3.0.2", - "@types/node": "^12.20.55", + "@types/js-cookie": "^3.0.6", + "@types/node": "^20.12.7", "@types/node-fetch": "^2.6.10", "@types/react": "^17.0.14", "@types/react-bootstrap": "^0.32.32", @@ -110,7 +110,7 @@ "@typescript-eslint/eslint-plugin": "^5.9.0", "@typescript-eslint/parser": "^5.9.0", "cross-env": "^7.0.3", - "eslint-config-prettier": "^8.10.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^25.3.4", "eslint-plugin-prettier": "^5.1.3", @@ -120,7 +120,7 @@ "identity-obj-proxy": "^3.0.0", "jest": "^27.4.5", "jest-localstorage-mock": "^2.4.19", - "jest-location-mock": "^1.0.9", + "jest-location-mock": "^2.0.0", "jest-preview": "^0.3.1", "lint-staged": "^15.2.2", "postcss-modules": "^6.0.0", diff --git a/public/locales/en.json b/public/locales/en.json index 4dce655d45..b1e75a64aa 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -37,7 +37,42 @@ "lowercase_check": "Atleast one lowercase letter", "uppercase_check": "Atleast one uppercase letter", "numeric_value_check": "Atleaset one numeric value", - "special_char_check": "Atleast one special character" + "special_char_check": "Atleast one special character", + "loading": "Loading...", + "selectOrg": "Select an organization", + "afterRegister": "Successfully registered. Please wait for admin to approve your request." + }, + "userLoginPage": { + "title": "Talawa Admin", + "fromPalisadoes": "An open source application by Palisadoes Foundation volunteers", + "talawa_portal": "Talawa Admin Portal", + "login": "Login", + "register": "Register", + "firstName": "First Name", + "lastName": "Last Name", + "email": "Email", + "password": "Password", + "atleast_8_char_long": "Atleast 8 Character long", + "Password_and_Confirm_password_mismatches.": "Password and Confirm password mismatches.", + "confirmPassword": "Confirm Password", + "forgotPassword": "Forgot Password ?", + "enterEmail": "Enter Email", + "enterPassword": "Enter Password", + "doNotOwnAnAccount": "Do not own an account?", + "talawaApiUnavailable": "Talawa-API service is unavailable. Is it running? Check your network connectivity too.", + "captchaError": "Captcha Error!", + "Please_check_the_captcha": "Please, check the captcha.", + "Something_went_wrong": "Something went wrong, Please try after sometime.", + "passwordMismatches": "Password and Confirm password mismatches.", + "fillCorrectly": "Fill all the Details Correctly.", + "notAuthorised": "Sorry! you are not Authorised!", + "notFound": "User not found!", + "successfullyRegistered": "Successfully Registered. Please wait until you will be approved.", + "userLogin": "User Login", + "afterRegister": "Successfully registered. Please wait for admin to approve your request.", + "OR": "OR", + "loading": "Loading...", + "selectOrg": "Select an organization" }, "latestEvents": { "eventCardTitle": "Upcoming Events", diff --git a/public/locales/fr.json b/public/locales/fr.json index 4a851b8e8d..ef9eed6c96 100644 --- a/public/locales/fr.json +++ b/public/locales/fr.json @@ -37,7 +37,40 @@ "lowercase_check": "Au moins une lettre minuscule", "uppercase_check": "Au moins une lettre majuscule", "special_char_check": "Au moins un caractère spécial", - "numeric_value_check": "Au moins une valeur numérique" + "numeric_value_check": "Au moins une valeur numérique", + "afterRegister": "Inscription réussie. Veuillez attendre l'approbation de l'administrateur pour votre demande." + }, + "userLoginPage": { + "title": "Administration Talawa", + "fromPalisadoes": "Une application open source par des bénévoles de la Fondation Palisadoes", + "talawa_portal": "Portail d'administration Talawa", + "login": "Connexion", + "register": "S'inscrire", + "firstName": "Prénom", + "lastName": "Nom de famille", + "email": "E-mail", + "password": "Mot de passe", + "atleast_8_char_long": "Au moins 8 caractères de long", + "Password_and_Confirm_password_mismatches.": "Les mots de passe ne correspondent pas.", + "confirmPassword": "Confirmez le mot de passe", + "forgotPassword": "Mot de passe oublié ?", + "enterEmail": "Entrez l'e-mail", + "enterPassword": "Entrez le mot de passe", + "doNotOwnAnAccount": "Vous n'avez pas de compte ?", + "talawaApiUnavailable": "Le service Talawa-API n'est pas disponible. Est-il en cours d'exécution ? Vérifiez également votre connectivité réseau.", + "captchaError": "Erreur de captcha !", + "Please_check_the_captcha": "Veuillez vérifier le captcha.", + "Something_went_wrong": "Quelque chose s'est mal passé, veuillez réessayer ultérieurement.", + "passwordMismatches": "Les mots de passe ne correspondent pas.", + "fillCorrectly": "Remplissez correctement tous les détails.", + "notAuthorised": "Désolé ! Vous n'êtes pas autorisé !", + "notFound": "Utilisateur non trouvé !", + "successfullyRegistered": "Inscription réussie. Veuillez attendre que votre demande soit approuvée.", + "userLogin": "Connexion utilisateur", + "afterRegister": "Inscription réussie. Veuillez attendre l'approbation de l'administrateur.", + "OR": "OU", + "loading": "Chargement...", + "selectOrg": "Sélectionnez une organisation" }, "latestEvents": { "eventCardTitle": "Événements à venir", diff --git a/public/locales/hi.json b/public/locales/hi.json index eddc354c5c..a029df8bd7 100644 --- a/public/locales/hi.json +++ b/public/locales/hi.json @@ -37,7 +37,42 @@ "lowercase_check": "कम से कम एक छोटा अक्षर", "uppercase_check": "कम से कम एक बड़ा अक्षर", "numeric_value_check": "कम से कम एक संख्यात्मक मान", - "special_char_check": "कम से कम एक विशेष पात्र" + "special_char_check": "कम से कम एक विशेष पात्र", + "loading": "लोड हो रहा है...", + "selectOrg": "कोई संगठन चुनें", + "afterRegister": "सफलतापूर्वक पंजीकृत हो गया। कृपया व्यवस्थापक की मंजूरी का इंतजार करें।" + }, + "userLoginPage": { + "title": "तलवा व्यवस्थापक", + "fromPalisadoes": "पलिसाडो के स्वयंसेवकों द्वारा एक खुला स्रोत अनुप्रयोग", + "talawa_portal": "तलावा प्रशासन पोर्टल", + "login": "लॉग इन करें", + "register": "पंजीकरण करवाना", + "firstName": "पहला नाम", + "lastName": "उपनाम", + "email": "ईमेल", + "password": "पासवर्ड", + "atleast_8_char_long": "कम से कम 8 कैरेक्टर लंबा", + "Password_and_Confirm_password_mismatches.": "पासवर्ड और पुष्टि पासवर्ड बेमेल।", + "confirmPassword": "पासवर्ड की पुष्टि कीजिये", + "forgotPassword": "पासवर्ड भूल गए ?", + "enterEmail": "ईमेल दर्ज करें", + "enterPassword": "पास वर्ड दर्ज करें", + "doNotOwnAnAccount": "क्या आपके पास खाता नहीं है?", + "talawaApiUnavailable": "तलावा-एपीआई सेवा उपलब्ध नहीं है। क्या यह चल रही है? अपनी नेटवर्क कनेक्टिविटी की भी जाँच करें।", + "captchaError": "कैप्चा त्रुटि!", + "Please_check_the_captcha": "कृपया, कैप्चा जांचें।", + "Something_went_wrong": "कुछ गलत हुआ, कृपया कुछ समय बाद प्रयास करें।", + "passwordMismatches": "पासवर्ड और पुष्टि पासवर्ड मेल नहीं खाते।", + "fillCorrectly": "सभी विवरण सही ढंग से भरें।", + "notAuthorised": "क्षमा करें! आप अधिकृत नहीं हैं!", + "notFound": "उपयोगकर्ता नहीं मिला!", + "successfullyRegistered": "सफलतापूर्वक पंजीकृत। कृपया स्वीकृत होने तक प्रतीक्षा करें।", + "afterRegister": "पंजीकरण सफलतापूर्वक हो गया है। कृपया आपके अनुरोध को स्वीकार करने के लिए व्यवस्थापक की प्रतीक्षा करें।", + "userLogin": "उपयोगकर्ता लॉगिन", + "OR": "या", + "loading": "लोड हो रहा है...", + "selectOrg": "कोई संगठन चुनें" }, "latestEvents": { "eventCardTitle": "आगामी घटनाएँ", diff --git a/public/locales/sp.json b/public/locales/sp.json index 4b25f43e6c..c084402939 100644 --- a/public/locales/sp.json +++ b/public/locales/sp.json @@ -37,7 +37,42 @@ "lowercase_check": "Al menos una letra mayuscula", "uppercase_check": "Al menos una letra minúscula", "numeric_value_check": "Al menos un valor numérico", - "special_char_check": "Al menos un carácter especial" + "special_char_check": "Al menos un carácter especial", + "loading": "Cargando...", + "selectOrg": "Seleccione una organización", + "afterRegister": "Registro exitoso. Por favor, espere a que el administrador apruebe su solicitud." + }, + "userLoginPage": { + "title": "Administrador Talawa", + "fromPalisadoes": "Una aplicación de código abierto de los voluntarios de la Fundación palisados", + "talawa_portal": "Portal De Administración Talawa", + "login": "Acceso", + "register": "Registro", + "firstName": "Primer nombre", + "lastName": "Apellido", + "email": "Correo electrónico", + "password": "Clave", + "atleast_8_char_long": "Al menos 8 caracteres de largo", + "Password_and_Confirm_password_mismatches.": "Contraseña y Confirmar contraseña no coinciden.", + "confirmPassword": "Confirmar contraseña", + "forgotPassword": "Has olvidado tu contraseña ?", + "enterEmail": "ingrese correo electrónico", + "enterPassword": "introducir la contraseña", + "doNotOwnAnAccount": "¿No tienes una cuenta?", + "talawaApiUnavailable": "El servicio Talawa-API no está disponible. ¿Está funcionando? Verifica también la conectividad de tu red.", + "captchaError": "¡Error de captcha!", + "Please_check_the_captcha": "Por favor, revisa el captcha.", + "Something_went_wrong": "Algo salió mal. Inténtalo después de un tiempo", + "passwordMismatches": "Contraseña y Confirmar contraseña no coinciden.", + "fillCorrectly": "Complete todos los detalles correctamente.", + "notAuthorised": "¡Lo siento! ¡No estás autorizado!", + "notFound": "¡Usuario no encontrado!", + "successfullyRegistered": "Registrado con éxito. Espere hasta que sea aprobado", + "userLogin": "Inicio de sesión de usuario", + "afterRegister": "Registrado exitosamente. Espere a que el administrador apruebe su solicitud.", + "OR": "O", + "loading": "Cargando...", + "selectOrg": "Seleccione una organización" }, "latestEvents": { "eventCardTitle": "Próximos Eventos", diff --git a/public/locales/zh.json b/public/locales/zh.json index 0d5f717b00..d105c830bd 100644 --- a/public/locales/zh.json +++ b/public/locales/zh.json @@ -37,7 +37,42 @@ "lowercase_check": "至少一個小寫字母", "uppercase_check": "至少有一個大寫字母", "numeric_value_check": "至少一個數值", - "special_char_check": "至少一個特殊字符" + "special_char_check": "至少一個特殊字符", + "loading": "载入中...", + "selectOrg": "选择一个组织", + "afterRegister": "注册成功。请等待管理员批准您的请求" + }, + "userLoginPage": { + "title": "塔拉瓦管理員", + "fromPalisadoes": "柵欄 基金会志愿者的开源应用程序", + "talawa_portal": "塔拉瓦管理門戶", + "login": "登錄", + "register": "登記", + "firstName": "名", + "lastName": "姓", + "email": "電子郵件", + "password": "密碼", + "atleast_8_char_long": "至少 8 個字符長", + "Password_and_Confirm_password_mismatches.": "密碼和確認密碼不匹配。", + "confirmPassword": "確認密碼", + "forgotPassword": "忘記密碼 ?", + "enterEmail": "输入电子邮件", + "enterPassword": "输入密码", + "doNotOwnAnAccount": "沒有帳戶嗎?", + "talawaApiUnavailable": "服務不可用。它正在運行嗎?還要檢查您的網絡連接。", + "captchaError": "驗證碼錯誤!", + "Please_check_the_captcha": "請檢查驗證碼。", + "Something_went_wrong": "出了點問題,請稍後再試。", + "passwordMismatches": "密碼和確認密碼不匹配。", + "fillCorrectly": "正確填寫所有細節。", + "notAuthorised": "抱歉!你沒有被授權!", + "notFound": "找不到用戶!", + "successfullyRegistered": "註冊成功,請等待審核通過。", + "userLogin": "用户登录", + "afterRegister": "註冊成功。 請等待管理員批准您的請求。", + "OR": "或者", + "loading": "载入中...", + "selectOrg": "选择一个组织" }, "latestEvents": { "eventCardTitle": "即将举行的活动", diff --git a/public/markdown/images/install1.png b/public/markdown/images/install1.png new file mode 100644 index 0000000000000000000000000000000000000000..632cb4f7a506190163e2c5b58a5cd4734584ee56 GIT binary patch literal 38688 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�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

$Z+!OFDab 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 { const propsOrg: InterfaceLeftDrawerProps = { ...props, }; -const propsUsers: InterfaceLeftDrawerProps = { - ...props, - hideDrawer: null, -}; const MOCKS = [ { @@ -73,6 +69,10 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { setItem('SuperAdmin', true); setItem('FirstName', 'John'); setItem('LastName', 'Doe'); + setItem('UserImage', ''); + setItem('SuperAdmin', true); + setItem('FirstName', 'John'); + setItem('LastName', 'Doe'); render( @@ -86,6 +86,7 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { expect(screen.getByText('My Organizations')).toBeInTheDocument(); expect(screen.getByText('Users')).toBeInTheDocument(); expect(screen.getByText('Community Profile')).toBeInTheDocument(); + expect(screen.getByText('Community Profile')).toBeInTheDocument(); expect(screen.getByText('Talawa Admin Portal')).toBeInTheDocument(); const orgsBtn = screen.getByTestId(/orgsBtn/i); @@ -97,6 +98,7 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { orgsBtn.className.includes('text-white btn btn-success'), ).toBeTruthy(); expect(rolesBtn.className.includes('text-secondary btn')).toBeTruthy(); + expect(rolesBtn.className.includes('text-secondary btn')).toBeTruthy(); expect( communityProfileBtn.className.includes('text-secondary btn'), ).toBeTruthy(); @@ -108,11 +110,16 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { }); test('Testing Drawer when hideDrawer is null', () => { + const tempProps: InterfaceLeftDrawerProps = { + ...props, + hideDrawer: false, + }; + render( - + , @@ -123,24 +130,18 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { ...props, hideDrawer: false, }; - render( - - - - - - - , - ); }); - test('Testing Drawer when the screen size is less than or equal to 820px', () => { + const tempProps: InterfaceLeftDrawerProps = { + ...props, + hideDrawer: false, + }; resizeWindow(800); render( - + , @@ -155,35 +156,36 @@ describe('Testing Left Drawer component for SUPERADMIN', () => { orgsBtn.className.includes('text-white btn btn-success'), ).toBeTruthy(); }); -}); - -describe('Testing Left Drawer component for ADMIN', () => { - test('Components should be rendered properly', () => { - render( - - - - - - - , - ); - - expect(screen.getByText('My Organizations')).toBeInTheDocument(); - expect(screen.getByText('Talawa Admin Portal')).toBeInTheDocument(); - - expect(screen.getAllByText(/admin/i)).toHaveLength(1); - - const orgsBtn = screen.getByTestId(/orgsBtn/i); - orgsBtn.click(); - expect( - orgsBtn.className.includes('text-white btn btn-success'), - ).toBeTruthy(); - - // These screens arent meant for admins so they should not be present - expect(screen.queryByTestId(/rolesBtn/i)).toBeNull(); - userEvent.click(orgsBtn); - expect(global.window.location.pathname).toContain('/orglist'); + describe('Testing Left Drawer component for ADMIN', () => { + test('Components should be rendered properly', () => { + render( + + + + + + + , + ); + + expect(screen.getByText('My Organizations')).toBeInTheDocument(); + expect(screen.getByText('Talawa Admin Portal')).toBeInTheDocument(); + + expect(screen.getAllByText(/admin/i)).toHaveLength(1); + expect(screen.getAllByText(/admin/i)).toHaveLength(1); + + const orgsBtn = screen.getByTestId(/orgsBtn/i); + orgsBtn.click(); + expect( + orgsBtn.className.includes('text-white btn btn-success'), + ).toBeTruthy(); + + // These screens arent meant for admins so they should not be present + expect(screen.queryByTestId(/rolesBtn/i)).toBeNull(); + + userEvent.click(orgsBtn); + expect(global.window.location.pathname).toContain('/orglist'); + }); }); }); diff --git a/src/components/LeftDrawerOrg/LeftDrawerOrg.module.css b/src/components/LeftDrawerOrg/LeftDrawerOrg.module.css index b300eb7e89..54560e7969 100644 --- a/src/components/LeftDrawerOrg/LeftDrawerOrg.module.css +++ b/src/components/LeftDrawerOrg/LeftDrawerOrg.module.css @@ -61,7 +61,6 @@ .leftDrawer .optionList { height: 100%; - overflow-y: auto; } .leftDrawer .optionList button { diff --git a/src/components/OrganizationScreen/OrganizationScreen.module.css b/src/components/OrganizationScreen/OrganizationScreen.module.css index 7570b14ced..9b8190a3ad 100644 --- a/src/components/OrganizationScreen/OrganizationScreen.module.css +++ b/src/components/OrganizationScreen/OrganizationScreen.module.css @@ -134,6 +134,9 @@ } @media (max-height: 900px) { + .pageContainer { + padding: 1rem 1.5rem 0 calc(300px + 2rem); + } .collapseSidebarButton { height: 30px; width: calc(300px + 1rem); diff --git a/src/screens/LoginPage/LoginPage.module.css b/src/screens/LoginPage/LoginPage.module.css index dba42696d7..e7ce0eca7e 100644 --- a/src/screens/LoginPage/LoginPage.module.css +++ b/src/screens/LoginPage/LoginPage.module.css @@ -14,6 +14,10 @@ height: 100vh; } +.selectOrgText input { + outline: none !important; +} + .row .left_portion .inner .palisadoes_logo { width: 600px; height: auto; diff --git a/src/screens/LoginPage/LoginPage.test.tsx b/src/screens/LoginPage/LoginPage.test.tsx index bac7b264db..a61f8adb2e 100644 --- a/src/screens/LoginPage/LoginPage.test.tsx +++ b/src/screens/LoginPage/LoginPage.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { MockedProvider } from '@apollo/react-testing'; -import { act, render, screen, fireEvent } from '@testing-library/react'; +import { act, render, screen, fireEvent, within } from '@testing-library/react'; import { Provider } from 'react-redux'; import { BrowserRouter } from 'react-router-dom'; import userEvent from '@testing-library/user-event'; @@ -13,13 +13,13 @@ import { LOGIN_MUTATION, RECAPTCHA_MUTATION, SIGNUP_MUTATION, - UPDATE_COMMUNITY, } from 'GraphQl/Mutations/mutations'; import { store } from 'state/store'; import i18nForTest from 'utils/i18nForTest'; import { BACKEND_URL } from 'Constant/constant'; import useLocalStorage from 'utils/useLocalstorage'; -import { GET_COMMUNITY_DATA } from 'GraphQl/Queries/Queries'; +import { GET_COMMUNITY_DATA, ORGANIZATION_LIST } from 'GraphQl/Queries/Queries'; +import { debug } from 'jest-preview'; const MOCKS = [ { @@ -92,6 +92,7 @@ const MOCKS = [ }, }, ]; + const MOCKS2 = [ { request: { @@ -121,9 +122,83 @@ const MOCKS2 = [ }, }, ]; +const MOCKS3 = [ + { + request: { + query: ORGANIZATION_LIST, + }, + result: { + data: { + organizations: [ + { + _id: '6437904485008f171cf29924', + image: null, + creator: { + firstName: 'Wilt', + lastName: 'Shepherd', + }, + name: 'Unity Foundation', + members: [ + { + _id: '64378abd85008f171cf2990d', + }, + ], + admins: [ + { + _id: '64378abd85008f171cf2990d', + }, + ], + createdAt: '2023-04-13T05:16:52.827Z', + address: { + city: 'Bronx', + countryCode: 'US', + dependentLocality: 'Some Dependent Locality', + line1: '123 Random Street', + line2: 'Apartment 456', + postalCode: '10451', + sortingCode: 'ABC-123', + state: 'NYC', + }, + }, + { + _id: 'db1d5caad2ade57ab811e681', + image: null, + creator: { + firstName: 'Sonya', + lastName: 'Jones', + }, + name: 'Mills Group', + members: [ + { + _id: '661b8410bd25a325da05e67c', + }, + ], + admins: [ + { + _id: '661b8410bd25a325da05e67c', + }, + ], + createdAt: '2024-04-14T07:21:52.940Z', + address: { + city: 'Lake Martineside', + countryCode: 'SL', + dependentLocality: 'Apt. 544', + line1: '5112 Dare Centers', + line2: 'Suite 163', + postalCode: '10452', + sortingCode: '46565-3458', + state: 'New Hampshire', + }, + }, + ], + }, + }, + }, +]; const link = new StaticMockLink(MOCKS, true); const link2 = new StaticMockLink(MOCKS2, true); +const link3 = new StaticMockLink(MOCKS3, true); async function wait(ms = 100): Promise { await act(() => { @@ -852,6 +927,33 @@ describe('Testing redirect if already logged in', () => { expect(mockNavigate).toHaveBeenCalledWith('/orglist'); }); }); +test('Render the Select Organization list and change the option', async () => { + render( + + + + + + + + + , + ); + + await wait(); + userEvent.click(screen.getByTestId(/goToRegisterPortion/i)); + await wait(); + const autocomplete = screen.getByTestId('selectOrg'); + const input = within(autocomplete).getByRole('combobox'); + autocomplete.focus(); + // the value here can be any string you want, so you may also consider to + // wrapper it as a function and pass in inputValue as parameter + fireEvent.change(input, { target: { value: 'a' } }); + fireEvent.keyDown(autocomplete, { key: 'ArrowDown' }); + fireEvent.keyDown(autocomplete, { key: 'Enter' }); + + debug(); +}); describe('Talawa-API server fetch check', () => { beforeEach(() => { diff --git a/src/screens/LoginPage/LoginPage.tsx b/src/screens/LoginPage/LoginPage.tsx index 4508684778..834232fb8a 100644 --- a/src/screens/LoginPage/LoginPage.tsx +++ b/src/screens/LoginPage/LoginPage.tsx @@ -22,7 +22,7 @@ import { RECAPTCHA_MUTATION, SIGNUP_MUTATION, } from 'GraphQl/Mutations/mutations'; -import { GET_COMMUNITY_DATA } from 'GraphQl/Queries/Queries'; +import { GET_COMMUNITY_DATA, ORGANIZATION_LIST } from 'GraphQl/Queries/Queries'; import { ReactComponent as PalisadoesLogo } from 'assets/svgs/palisadoes.svg'; import { ReactComponent as TalawaLogo } from 'assets/svgs/talawa.svg'; import ChangeLanguageDropDown from 'components/ChangeLanguageDropdown/ChangeLanguageDropDown'; @@ -32,6 +32,8 @@ import { errorHandler } from 'utils/errorHandler'; import useLocalStorage from 'utils/useLocalstorage'; import { socialMediaLinks } from '../../constants'; import styles from './LoginPage.module.css'; +import type { InterfaceQueryOrganizationListObject } from 'utils/interfaces'; +import { Autocomplete, TextField } from '@mui/material'; const loginPage = (): JSX.Element => { const { t } = useTranslation('translation', { keyPrefix: 'loginPage' }); @@ -59,6 +61,7 @@ const loginPage = (): JSX.Element => { signEmail: '', signPassword: '', cPassword: '', + signOrg: '', }); const [formState, setFormState] = useState({ email: '', @@ -73,6 +76,7 @@ const loginPage = (): JSX.Element => { numericValue: true, specialChar: true, }); + const [organizations, setOrganizations] = useState([]); const passwordValidationRegExp = { lowercaseCharRegExp: new RegExp('[a-z]'), @@ -115,6 +119,26 @@ const loginPage = (): JSX.Element => { const [signup, { loading: signinLoading }] = useMutation(SIGNUP_MUTATION); const [recaptcha, { loading: recaptchaLoading }] = useMutation(RECAPTCHA_MUTATION); + const { data: orgData } = useQuery(ORGANIZATION_LIST); + + useEffect(() => { + if (orgData) { + const options = orgData.organizations.map( + (org: InterfaceQueryOrganizationListObject) => { + const tempObj: { label: string; id: string } | null = {} as { + label: string; + id: string; + }; + tempObj['label'] = + `${org.name}(${org.address.city},${org.address.state},${org.address.countryCode})`; + tempObj['id'] = org._id; + return tempObj; + }, + ); + setOrganizations(options); + } + }, [orgData]); + useEffect(() => { async function loadResource(): Promise { try { @@ -156,8 +180,14 @@ const loginPage = (): JSX.Element => { const signupLink = async (e: ChangeEvent): Promise => { e.preventDefault(); - const { signfirstName, signlastName, signEmail, signPassword, cPassword } = - signformState; + const { + signfirstName, + signlastName, + signEmail, + signPassword, + cPassword, + signOrg, + } = signformState; const isVerified = await verifyRecaptcha(recaptchaToken); /* istanbul ignore next */ @@ -196,6 +226,7 @@ const loginPage = (): JSX.Element => { lastName: signlastName, email: signEmail, password: signPassword, + orgId: signOrg, }, }); @@ -211,6 +242,7 @@ const loginPage = (): JSX.Element => { signEmail: '', signPassword: '', cPassword: '', + signOrg: '', }); } } catch (error) { @@ -761,6 +793,32 @@ const loginPage = (): JSX.Element => { )} +

+ {t('selectOrg')} +
+ { + setSignFormState({ + ...signformState, + signOrg: value?.id ?? '', + }); + }} + options={organizations} + renderInput={(params) => ( + + )} + /> +
+
{REACT_APP_USE_RECAPTCHA === 'yes' ? (