* chore: updated label for epics
* chore: improved export logic
* refactor: move csvConfig to export.ts and clean up export logic
* refactor: remove unused CSV export logic from WorkItemsInsightTable component
* refactor: streamline data handling in InsightTable component for improved rendering
* feat: add translation for "No. of {entity}" and update priority chart y-axis label to use new translation
* refactor: cleaned up some component and added utilitites
* feat: add "at_risk" translation to multiple languages in translations.json files
* refactor: update TrendPiece component to use new status variants for analytics
* fix: adjust TrendPiece component logic for on-track and off-track status
* refactor: use nullish coalescing operator for yAxis.dx in line and scatter charts
* feat: add "at_risk" translation to various languages in translations.json files
* feat: add "no_of" translation to various languages in translations.json files
* feat: update "at_risk" translation in Ukrainian, Vietnamese, and Chinese locales in translations.json files
* refactor: rename insightsFields to ANALYTICS_INSIGHTS_FIELDS and update analytics tab import to use getAnalyticsTabs function
* feat: update AnalyticsWrapper to use i18n for titles and add new translation for "no_of" in Russian
* fix: update yAxis labels and offsets in various charts to use new translation key and improve layout
* feat: define AnalyticsTab interface and refactor getAnalyticsTabs function for improved type safety
* fix: update AnalyticsTab interface to use TAnalyticsTabsBase for improved type safety
* fix: add whitespace-nowrap class to TableHead for improved header layout in DataTable component
* chore: updated label for epics
* chore: improved export logic
* refactor: move csvConfig to export.ts and clean up export logic
* refactor: remove unused CSV export logic from WorkItemsInsightTable component
* refactor: streamline data handling in InsightTable component for improved rendering
* feat: add translation for "No. of {entity}" and update priority chart y-axis label to use new translation
* refactor: cleaned up some component and added utilitites
* feat: add "at_risk" translation to multiple languages in translations.json files
* refactor: update TrendPiece component to use new status variants for analytics
* fix: adjust TrendPiece component logic for on-track and off-track status
* refactor: use nullish coalescing operator for yAxis.dx in line and scatter charts
* feat: add "at_risk" translation to various languages in translations.json files
* feat: add "no_of" translation to various languages in translations.json files
* feat: update "at_risk" translation in Ukrainian, Vietnamese, and Chinese locales in translations.json files
* fix: update group key handling in issue store utilities for state groups
- Introduced a new function to determine the default group key based on the provided groupByKey.
- Updated references to use the new function for improved clarity and maintainability.
- Adjusted the mapping for "state_detail.group" in the ISSUE_GROUP_BY_KEY to ensure consistency.
- Enhanced the getArrayStringArray method to handle group values more effectively.
* refactor: clean up filters constants
* refactor: enhance backup and restore scripts for container data management
* fix: ensure proper quoting in backup script to handle paths with spaces
* fix: ensure backup directory is only removed if tar command succeeds
* CodeRabbit fixes
* chore: added code split for the analytics store
* chore: done some refactor
* refactor: update entity keys in analytics and translations
* chore: updated the translations
* refactor: simplify AnalyticsStoreV2 class by removing unnecessary constructor
* feat: add AnalyticsStoreV2 class and interface for enhanced analytics functionality
* feat: enhance WorkItemsModal and analytics store with isEpic functionality
* feat: integrate isEpic state into TotalInsights and WorkItemsModal components
* refactor: remove isEpic state from WorkItemsModalMainContent component
* refactor: removed old analytics components and related services
* refactor: new analytics
* refactor: removed all nivo chart dependencies
* chore: resolved coderabbit comments
* fix: update processUrl to handle custom-work-items in peek view
* feat: implement CSV export functionality in InsightTable component
* feat: enhance analytics service with filter parameters and improve data handling in InsightTable
* feat: add new translation keys for various statuses across multiple languages
* [WEB-4246] fix: enhance analytics components to include 'isEpic' parameter for improved data fetching
* chore: update yarn.lock to remove deprecated @nivo packages and clean up unused dependencies
* fix: settings header css + cta on error page
* [WEB-4249] fix: filter out inactive workspace members from project member list
---------
Co-authored-by: Prateek Shourya <prateekshourya29@gmail.com>
* refactor: permission layer
* refactor: add original_role to project member serializer
* chore: minor fixes related to permission layer
* fix: strict type checking while checking user permissions
* fix: header text of insight table search
* fix: made the active project list scrollable
* chore: added xAxis label to table header
* chore: removed the intake issues
* fix: made the headerText necessary
---------
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* chore: added cycles and modules in analytics peek view
* chore: added cycles and modules analytics
* chore: added project filter for work items
* chore: added a peekview flag and based on that table columns
* chore: added peek view
* chore: added check for display name
* chore: cleaned up some code
* chore: fixed export csv data
* chore: added distinct work items
* chore: assignee in peek view
* updated csv fields
* chore: updated workitems peek with assignee
* fix: removed type assersions for workspaceslug
* chore: added day wise filter in cycles and modules
* chore: added extra validations
---------
Co-authored-by: JayashTripathy <jayashtripathy371@gmail.com>
* chore: remove analytics duration filter
* removed subtitle from title and date_filter from service call
* chore: removed the date filter
* bottom text of insight trend card
* chore: changed issue manager
* fix: limited items in table
* fix: removed unnecessary props from data-table
---------
Co-authored-by: JayashTripathy <jayashtripathy371@gmail.com>
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
* refactor: enhance backup and restore scripts for container data management
* fix: ensure proper quoting in backup script to handle paths with spaces
* fix: ensure backup directory is only removed if tar command succeeds
* CodeRabbit fixes
* chore: analytics endpoint
* added anlytics v2
* updated status icons
* added area chart in workitems and en translations
* active projects
* chore: created analytics chart
* chore: validation errors
* improved radar-chart , added empty states , added projects summary
* chore: added a new graph in advance analytics
* integrated priority chart
* chore: added csv exporter
* added priority dropdown
* integrated created vs resolved chart
* custom x and y axis label in bar and area chart
* added wrapper styles to legends
* added filter components
* fixed temp data imports
* integrated filters in priority charts
* added label to priority chart and updated duration filter
* refactor
* reverted to void onchange
* fixed some contant exports
* fixed type issues
* fixed some type and build issues
* chore: updated the filtering logic for analytics
* updated default value to last_30_days
* percentage value whole number and added some rules for axis options
* fixed some translations
* added - custom tick for radar, calc of insight cards, filter labels
* chore: opitmised the analytics endpoint
* replace old analytics path with new , updated labels of insight card, done some store fixes
* chore: updated the export request
* Enhanced ProjectSelect to support multi-select, improved state management, and optimized data fetching and component structure.
* fix: round completion percentage calculation in ActiveProjectItem
* added empty states in project insights
* Added loader and empty state in created/resolved chart
* added loaders
* added icons in filters
* added custom colors in customised charts
* cleaned up some code
* added some responsiveness
* updated translations
* updated serrchbar for the table
* added work item modal in project analytics
* fixed some of the layput issues in the peek view
* chore: updated the base function for viewsets
* synced tab to url
* code cleanup
* chore: updated the export logic
* fixed project_ids filter
* added icon in projectdropdown
* updated export button position
* export csv and emptystates icons
* refactor
* code refactor
* updated loaders, moved color pallete to contants, added nullish collasece operator in neccessary places
* removed uneccessary cn
* fixed formatting issues
* fixed empty project_ids in payload
* improved null checks
* optimized charts
* modified relevant variables to observable.ref
* fixed the duration type
* optimized some code
* updated query key in project-insight
* updated query key in project-insight
* updated formatting
* chore: replaced analytics route with new one and done some optimizations
* removed the old analytics
---------
Co-authored-by: NarayanBavisetti <narayan3119@gmail.com>
* chore: analytics endpoint
* chore: created analytics chart
* chore: validation errors
* chore: added a new graph in advance analytics
* chore: added csv exporter
* chore: updated the filtering logic for analytics
* chore: opitmised the analytics endpoint
* chore: updated the base function for viewsets
* chore: updated the export logic
* chore: added type hints
* chore: added type hints
* chore: comment details of work item
* chore: attachment count and attachment name
* chore: issue link and subscriber count
* chore: list of assignees
* chore: asset_url as attachment_links
* chore: code refactor
* fix: cannot export Excel
* chore: remove print statements
* fix: filtering in list
* chore: optimize attachment_count and attachment_link query
* chore: optimize fetching issue details for multiple select
* chore: use Prefetch to avoid duplicates
* feat: added filters for sub issues
* feat: added list groups for sub issues
* chore: updated order for sub work item properties
* feat: filters for sub work items
* feat: added filtering and ordering at frontend
* chore: reverted backend filters
* feat: added empty states
* chore: code improvemnt
---------
Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
* updated project and workitem form
* added translation for other languages also
* Update packages/i18n/src/locales/zh-CN/translations.json
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: handling base path and urls
* chore: uniformize urls in common settings
* correct live url
* chore: use url join to correctly join urls
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
* chore: local dev improvements
* chore: pr feedback
* chore: fix setup
* fix: env variables updated in .env.example files
* fix(local): sign in to admin and web
* chore: update minio deployment to create an bucket automatically on startup.
* chore: resolve merge conflict
* chore: updated api env with live base path
---------
Co-authored-by: sriram veeraghanta <veeraghanta.sriram@gmail.com>
Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
* migration: data with iexact 'in-app' changed to 'IN_APP'
* chore: add start_of_week field in profile
* chore: define variables for choices
* chore: merge migration files
* chore: return order based on group
* chore: order for workspace stats endpoint
* chore: state response updated
* chore: state icon types updated
* chore: state icon updated
* chore: state settings new icon implementation
* chore: icon implementation
* chore: code refactor
* chore: code refactor
* chore: code refactor
* fix: order field type
---------
Co-authored-by: sangeethailango <sangeethailango21@gmail.com>
* chore: add json files and initial job to push data to workspace
* chore: update seed data location
* chore: update seed data to use assets from static urls
* chore: update seed data to use updated labels
* chore: add logging and update label name
* chore: add created_by for project member
* chore: add created_by_id for issue user property
* chore: add workspace seed task logs
* chore: update log message to return task name
* chore: add warning log for workspace seed task
* chore: add validation for issue seed data
* fix: uuid validation and function parameter handling for external apis
* chore: update status 410 Gone to 409 conflicts
* chore: add webhook trigger for issue created through apis
* chore: remove pks from post
* chore: remove issue id from module post
* improvement: work item modal data preload and parent work item details
* improvement: collapsible button title
* improvement: project creation form and modal
* improvement: emoji helper
* improvement: enhance labels component modularity
* improvement: enable state group and state list components modularity
* improvement: project settings feature list
* improvement: common utils
* fix: race condition which is creating duplicate sequence ids
* chore: add management command to fix duplicate sequences
* chore: update command to take a lock and optimize the script to use dict
instead of loops
* chore: update the script to use transaction
* fix: make floating link generic and use it for all editors
* fix: link component behaviour with selected text fixed and storage is now typed
* chore: link view seperated
* fix: editor link edit view across multiple links resets now
* fix: link view container
* fix: cleaning up
* fix: url validation
- Added Vietnamese (Tiếng việt) to the list of supported languages.
- Created a new translations file for Vietnamese with comprehensive translations for various UI elements.
- Updated the TranslationStore to include the new Vietnamese language option.
Updated TranslationStore to include support for Brazilian Portuguese by importing the corresponding translations file.
Extended TLanguage type to include "pt-BR" as a valid language option.
* Return Cycle start and end dates in project's timezone
* fix: role improvements
* chore: role updates
* chore: update role endpoint to update workspace admin permissions
* fix: conditions
* chore: update member role for workspace members
* chore: update workspace permission role
* fix: currentAdmin permissions
---------
Co-authored-by: Dheeraj Kumar Ketireddy <dheeru0198@gmail.com>
Co-authored-by: pablohashescobar <nikhilschacko@gmail.com>
* fix: markdown for mentions fixed
* fix: copying text in mentions
* fix: refactored the component to use the same function
* chore: renamed funcion name
* add the new copy extension
* init working fix
* remove useless code
* improve readibility
* update node import
* better smaller logic
* remove log
* add open close end handler
* update readabliity
* handle tables
* handle triple click in cell
* triple tap select current line
* handle block and list
* lists fixed
* handle all possible cases of copy in table
* update the min elements
* handle multi types in table
* handle table seletion cases
* handle whole table handler
* feat: all case converd
* update markdown handling code
* update return statement
* handle using group block
* handle param
* handle multple cell in table
* handle using recursion
* add types
* fix code rabbit suggestions
* fix root node bug
* update recursion with loop
* update transform copied to false
* refactor clipboard extension: remove options and integrate MarkdownClipboard into core extensions
* fix: header and code handler
* fix: store hooks fixed
* fix: mention id
---------
Co-authored-by: Palanikannan M <akashmalinimurugu@gmail.com>
* [WEB-3597] fix: guest work item view access when hyper mode is enabled
* fix: only show work item created by the guest user if the guest_view_all_features is disabled
@@ -15,14 +15,33 @@ Without said minimal reproduction, we won't be able to investigate all [issues](
You can open a new issue with this [issue form](https://github.com/makeplane/plane/issues/new).
### Naming conventions for issues
When opening a new issue, please use a clear and concise title that follows this format:
- For bugs: `🐛 Bug: [short description]`
- For features: `🚀 Feature: [short description]`
- For improvements: `🛠️ Improvement: [short description]`
- For documentation: `📘 Docs: [short description]`
**Examples:**
-`🐛 Bug: API token expiry time not saving correctly`
-`📘 Docs: Clarify RAM requirement for local setup`
-`🚀 Feature: Allow custom time selection for token expiration`
This helps us triage and manage issues more efficiently.
## Projects setup and Architecture
### Requirements
-Node.js version v16.18.0
-Docker Engine installed and running
- Node.js version 20+ [LTS version](https://nodejs.org/en/about/previous-releases)
- Python version 3.8+
- Postgres version v14
- Redis version v6.2.7
- **Memory**: Minimum **12 GB RAM** recommended
> ⚠️ Running the project on a system with only 8 GB RAM may lead to setup failures or memory crashes (especially during Docker container build/start or dependency install). Use cloud environments like GitHub Codespaces or upgrade local RAM if possible.
### Setup the project
@@ -50,6 +69,17 @@ chmod +x setup.sh
docker compose -f docker-compose-local.yml up
```
4. Start web apps:
```bash
pnpm dev
```
5. Open your browser to http://localhost:3001/god-mode/ and register yourself as instance admin
6. Open up your browser to http://localhost:3000 then log in using the same credentials from the previous step
That’s it! You’re all set to begin coding. Remember to refresh your browser if changes don’t auto-reload. Happy contributing! 🎉
## Missing a Feature?
If a feature is missing, you can directly _request_ a new one [here](https://github.com/makeplane/plane/issues/new?assignees=&labels=feature&template=feature_request.yml&title=%F0%9F%9A%80+Feature%3A+). You also can do the same by choosing "🚀 Feature" when raising a [New Issue](https://github.com/makeplane/plane/issues/new/choose) on our GitHub Repository.
@@ -75,7 +105,7 @@ To ensure consistency throughout the source code, please keep these rules in min
- **Improve documentation** - fix incomplete or missing [docs](https://docs.plane.so/), bad wording, examples or explanations.
## Contributing to language support
This guide is designed to help contributors understand how to add or update translations in the application.
This guide is designed to help contributors understand how to add or update translations in the application.
### Understanding translation structure
@@ -90,7 +120,7 @@ packages/i18n/src/locales/
├── fr/
│ └── translations.json
└── [language]/
└── translations.json
└── translations.json
```
#### Nested structure
To keep translations organized, we use a nested structure for keys. This makes it easier to manage and locate specific translations. For example:
@@ -110,14 +140,14 @@ To keep translations organized, we use a nested structure for keys. This makes i
We use [IntlMessageFormat](https://formatjs.github.io/docs/intl-messageformat/) to handle dynamic content, such as variables and pluralization. Here's how to format your translations:
#### Examples
- **Simple variables**
- **Simple variables**
```json
{
"greeting": "Hello, {name}!"
}
```
- **Pluralization**
- **Pluralization**
```json
{
"items": "{count, plural, one {Work item} other {Work items}}"
@@ -142,15 +172,15 @@ We use [IntlMessageFormat](https://formatjs.github.io/docs/intl-messageformat/)
### Adding new languages
Adding a new language involves several steps to ensure it integrates seamlessly with the project. Follow these instructions carefully:
1. **Update type definitions**
1. **Update type definitions**
Add the new language to the TLanguage type in the language definitions file:
```typescript
// types/language.ts
export type TLanguage = "en" | "fr" | "your-lang";
```
```
2. **Add language configuration**
2. **Add language configuration**
Include the new language in the list of supported languages:
```typescript
@@ -161,14 +191,14 @@ Include the new language in the list of supported languages:
];
```
3. **Create translation files**
3. **Create translation files**
1. Create a new folder for your language under locales (e.g., `locales/your-lang/`).
2. Add a `translations.json` file inside the folder.
3. Copy the structure from an existing translation file and translate all keys.
4. **Update import logic**
4. **Update import logic**
Modify the language import logic to include your new language:
Meet [Plane](https://dub.sh/plane-website-readme), an open-source project management tool to track issues, run ~sprints~ cycles, and manage product roadmaps without the chaos of managing the tool itself. 🧘♀️
Meet [Plane](https://plane.so/), an open-source project management tool to track issues, run ~sprints~ cycles, and manage product roadmaps without the chaos of managing the tool itself. 🧘♀️
> Plane is evolving every day. Your suggestions, ideas, and reported bugs help us immensely. Do not hesitate to join in the conversation on [Discord](https://discord.com/invite/A92xrEGCge) or raise a GitHub issue. We read everything and respond to most.
@@ -47,10 +47,10 @@ Meet [Plane](https://dub.sh/plane-website-readme), an open-source project manage
Getting started with Plane is simple. Choose the setup that works best for you:
- **Plane Cloud**
- **Plane Cloud**
Sign up for a free account on [Plane Cloud](https://app.plane.so)—it's the fastest way to get up and running without worrying about infrastructure.
- **Self-host Plane**
- **Self-host Plane**
Prefer full control over your data and infrastructure? Install and run Plane on your own servers. Follow our detailed [deployment guides](https://developers.plane.so/self-hosting/overview) to get started.
| Installation methods | Docs link |
@@ -62,22 +62,22 @@ Prefer full control over your data and infrastructure? Install and run Plane on
## 🌟 Features
- **Issues**
- **Issues**
Efficiently create and manage tasks with a robust rich text editor that supports file uploads. Enhance organization and tracking by adding sub-properties and referencing related issues.
- **Cycles**
- **Cycles**
Maintain your team’s momentum with Cycles. Track progress effortlessly using burn-down charts and other insightful tools.
- **Modules**
Simplify complex projects by dividing them into smaller, manageable modules.
- **Modules**
Simplify complex projects by dividing them into smaller, manageable modules.
- **Views**
- **Views**
Customize your workflow by creating filters to display only the most relevant issues. Save and share these views with ease.
- **Pages**
- **Pages**
Capture and organize ideas using Plane Pages, complete with AI capabilities and a rich text editor. Format text, insert images, add hyperlinks, or convert your notes into actionable items.
- **Analytics**
- **Analytics**
Access real-time insights across all your Plane data. Visualize trends, remove blockers, and keep your projects moving forward.
- **Drive** (_coming soon_): The drive helps you share documents, images, videos, or any other files that make sense to you or your team and align on the problem/solution.
@@ -85,38 +85,7 @@ Access real-time insights across all your Plane data. Visualize trends, remove b
## 🛠️ Local development
### Pre-requisites
- Ensure Docker Engine is installed and running.
### Development setup
Setting up your local environment is simple and straightforward. Follow these steps to get started:
1. Clone the repository:
```
git clone https://github.com/makeplane/plane.git
```
2. Navigate to the project folder:
```
cd plane
```
3. Create a new branch for your feature or fix:
```
git checkout -b <feature-branch-name>
```
4. Run the setup script in the terminal:
```
./setup.sh
```
5. Open the project in an IDE such as VS Code.
6. Review the `.env` files in the relevant folders. Refer to [Environment Setup](./ENV_SETUP.md) for details on the environment variables used.
7. Start the services using Docker:
```
docker compose -f docker-compose-local.yml up -d
```
That’s it! You’re all set to begin coding. Remember to refresh your browser if changes don’t auto-reload. Happy contributing! 🎉
@@ -194,7 +163,7 @@ Feel free to ask questions, report bugs, participate in discussions, share ideas
If you discover a security vulnerability in Plane, please report it responsibly instead of opening a public issue. We take all legitimate reports seriously and will investigate them promptly. See [Security policy](https://github.com/makeplane/plane/blob/master/SECURITY.md) for more info.
To disclose any security issues, please email us at security@plane.so.
To disclose any security issues, please email us at security@plane.so.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.