Skip to content

Commit

Permalink
Merge pull request #2433 from ever-co/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
evereq authored Apr 27, 2024
2 parents 443daed + f7240d8 commit 274137e
Show file tree
Hide file tree
Showing 8 changed files with 763 additions and 120 deletions.
661 changes: 661 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

96 changes: 0 additions & 96 deletions LICENSE.md

This file was deleted.

67 changes: 67 additions & 0 deletions LICENSES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# License

Copyright © 2022-present, Ever Co. LTD. All rights reserved.

This document represents official information about our licensing, make sure you read and understand it before starting to use software and source code.

- Check more detailed information about licensing in our [Wiki](https://github.com/ever-co/ever-teams/wiki/Licensing).
- You can also ask any questions in the [Issue](https://github.com/ever-co/ever-teams/issues/TODO) or [Contact Us](https://github.com/ever-co/ever-teams#contact-us).

This software is available under an Open Source License ("Community Edition"). It is suitable if your business can comply with the requirements of corresponding open-source licenses, see more information below (e.g. requirements to release your modifications under the same open-source licenses for the benefit of our community).

Alternatively, commercial versions of the Ever Teams software must be used in accordance with the terms and conditions of the separate written license agreement between you and Ever Co. LTD. With a commercial license, your source code (including your changes) is kept proprietary. You can purchase a commercial license at <https://ever.team/pricing>.

In addition, Ever Co. LTD holds copyright and/or sufficient licenses to all components of the Ever Teams Platform, and therefore can grant, at its sole discretion, the ability for companies, individuals, or organizations to create proprietary modules that may be dynamically linked at runtime with the portions of Ever Teams Platform which fall under our copyright/license umbrella.

We support the open-source community. If you're building awesome non-profit/open-source projects, we're happy to help and will provide (subject to [acceptance criteria](https://github.com/ever-co/ever-gauzy/wiki/Free-license-and-hosting-for-Non-profit-and-Open-Source-projects)) Ever Teams Enterprise edition license and free hosting option! Feel free to contact us at <mailto:ever@ever.co> to make a request. More details are explained in our [Wiki](https://github.com/ever-co/ever-gauzy/wiki/Free-license-and-hosting-for-Non-profit-and-Open-Source-projects).

**The default Ever Teams™ Platform license, without a valid Ever Teams™ Platform Small Business or Ever Teams™ Platform Enterprise License agreement, is the Ever Teams™ Platform Community Edition License.**

### _Ever Teams Platform Community Edition_ License

Ever Teams™ Platform Community Edition available at https://github.com/ever-co/ever-teams released under [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0.txt).

If you decide to choose the Ever Teams™ Platform Community Edition License, you must comply with the following terms:

This program is free software: you can redistribute it and/or modify it under the terms of the corresponding licenses described in the LICENSE / LICENSE.md files located in software sub-folders and under the terms of licenses described in individual files.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You should have received a copy of the relevant GNU Licenses along with this program. If not, see <http://www.gnu.org/licenses>.

We suggest checking out a great overview of different open-source licenses at <https://choosealicense.com/licenses>.
For example, for AGPL v3 (the strongest copyleft license we use) conditions can be summarized as follows:

- making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license.
- Copyright and license notices must be preserved
- Contributors provide an express grant of patent rights.
- When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.

Feel free to [Contact Us](https://github.com/ever-co/ever-teams#contact-us) for additional information about used open-source licenses!

### _Ever Teams Platform Small Business_ License

Ever Teams™ Platform Small Business License can be purchased by small businesses with annual revenues that do not exceed \$1 million and used for single owned Company.
For more information, please see https://ever.team/pricing or contact us at <mailto:teams@ever.co>.

### _Ever Teams Platform Enterprise_ License

Ever Teams™ Platform Enterprise License can be purchased by businesses with more than \$1 million in annual revenue and used for an unlimited amount of owned companies.
For more information, please see https://ever.team/pricing or contact us at <mailto:teams@ever.co>.

## Credits

Please see [CREDITS.md](CREDITS.md) files for a list of libraries and software included in this program and information about licenses.

## Trademarks

**Ever**® is a registered trademark of [Ever Co. LTD](https://ever.co).
**Ever Teams**™ is a trademark of [Ever Co. LTD](https://ever.co).
**Gauzy**™ is a trademark of [Ever Co. LTD](https://ever.co).
**Ever® Demand Platform™**, **Ever® Demand Platform Community™**, **Ever® Demand Platform Small Business™** and **Ever® Demand Platform Enterprise™** are all trademarks of [Ever Co. LTD](https://ever.co).

The trademarks and logos may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services. If you wish to use these trademarks and logos you should contact our licensing department at <mailto:legal@ever.co> to determine the necessary steps you must take.

All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

If you have any questions regarding our licensing policy, please contact us: <mailto:legal@ever.co> (via email).
12 changes: 6 additions & 6 deletions apps/web/app/hooks/features/useTaskInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ export function useTaskInput({

const { user } = useAuthenticateUser();
const userRef = useSyncRef(user);

const taskIssue = useRef<null | string>(null);
const [taskIssue, setTaskIssue] = useState('');
const taskStatus = useRef<null | string>(null);
const taskPriority = useRef<null | string>(null);
const taskSize = useRef<null | string>(null);
Expand Down Expand Up @@ -125,7 +124,6 @@ export function useTaskInput({
.startsWith(query.toLowerCase().replace(/\s+/g, ''));
});
}, [query, tasks]);

const hasCreateForm = filteredTasks2.length === 0 && query !== '';

const handleTaskCreation = ({
Expand All @@ -145,8 +143,8 @@ export function useTaskInput({
return createTask(
{
taskName: query.trim(),
issueType: taskIssue.current || 'Bug',
taskStatusId: statusId || openId as string,
issueType: taskIssue || 'Bug',
taskStatusId: statusId || (openId as string),
status: taskStatus.current || undefined,
priority: taskPriority.current || undefined,
size: taskSize.current || undefined,
Expand All @@ -156,6 +154,7 @@ export function useTaskInput({
!autoAssignTaskAuth ? assignToUsers : undefined
).then((res) => {
setQuery('');
setTaskIssue('');
const items = res.data?.items || [];
const created = items.find((t) => t.title === query.trim());
if (created && autoActiveTask) setActiveTask(created);
Expand Down Expand Up @@ -185,7 +184,7 @@ export function useTaskInput({
}).length;

useEffect(() => {
taskIssue.current = null;
setTaskIssue('');
}, [hasCreateForm]);

return {
Expand All @@ -211,6 +210,7 @@ export function useTaskInput({
filter,
updateTaskTitleHandler,
taskIssue,
setTaskIssue,
taskStatus,
taskPriority,
taskSize,
Expand Down
4 changes: 2 additions & 2 deletions apps/web/lib/components/Kanban.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ export const EmptyKanbanDroppable = ({
}, []);

const { isOpen, closeModal, openModal } = useModal();
const { isOpen:editIsOpen, closeModal:editCloseModal, openModal:editOpenModal } = useModal();
const { isOpen: editIsOpen, closeModal: editCloseModal, openModal: editOpenModal } = useModal();

if (!enabled) return null;

Expand Down Expand Up @@ -312,7 +312,7 @@ export const EmptyKanbanDroppable = ({
<Modal isOpen={isOpen} closeModal={closeModal}>
<CreateTaskModal onClose={closeModal} title={title} initEditMode={false} task={null} tasks={[]} />
</Modal>
<Modal isOpen={editIsOpen} closeModal={editCloseModal}>
<Modal className="z-[5000]" isOpen={editIsOpen} closeModal={editCloseModal}>
<EditStatusModal status={status} onClose={editCloseModal} setColumn={setColumn} />
</Modal>
</>
Expand Down
24 changes: 15 additions & 9 deletions apps/web/lib/features/task/task-input-kanban.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,17 @@ export function TaskInputKanban(props: Props) {
[$onTaskCreated]
);

const { inputTask, editMode, setEditMode, setQuery, updateLoading, updateTaskTitleHandler, setFilter, taskIssue } =
datas;
const {
inputTask,
setTaskIssue,
editMode,
setEditMode,
setQuery,
updateLoading,
updateTaskTitleHandler,
setFilter,
taskIssue
} = datas;

const inputTaskTitle = useMemo(() => inputTask?.title || '', [inputTask?.title]);

Expand Down Expand Up @@ -152,16 +161,17 @@ export function TaskInputKanban(props: Props) {
datas.hasCreateForm &&
datas
.handleTaskCreation({
autoActiveTask,
autoActiveTask: true,
autoAssignTaskAuth: props.autoAssignTaskAuth,
assignToUsers: props.usersTaskCreatedAssignTo || []
})
?.then(onTaskCreated)
.finally(async () => {
setTaskName('');

props.onClose && props.onClose();
});
}, [datas, autoActiveTask, props.autoAssignTaskAuth, props.usersTaskCreatedAssignTo, onTaskCreated]);
}, [datas, taskIssue, autoActiveTask, props.autoAssignTaskAuth, props.usersTaskCreatedAssignTo, onTaskCreated]);

let updatedTaskList: ITeamTask[] = [];
if (props.forParentChildRelationship) {
Expand Down Expand Up @@ -193,7 +203,6 @@ export function TaskInputKanban(props: Props) {
const handleClickOutside = (event: MouseEvent) => {
if (inputRef.current && !inputRef.current.contains(event.target as Node) && editMode) {
inputTask && updateTaskNameHandler(inputTask, taskName);
// console.log('func active');
}
};

Expand Down Expand Up @@ -275,9 +284,7 @@ export function TaskInputKanban(props: Props) {
<TaskIssuesDropdown
taskStatusClassName="!px-1 py-1 rounded-sm"
showIssueLabels={false}
onValueChange={(v) => {
taskIssue.current = v;
}}
onValueChange={(v) => setTaskIssue(v)}
/>
</div>
}
Expand Down Expand Up @@ -339,7 +346,6 @@ function TaskCard({
}
}, [datas.editMode]);
const taskStatusHook = useTaskStatus();

return (
<>
<Card shadow="custom">
Expand Down
17 changes: 11 additions & 6 deletions apps/web/lib/features/task/task-input.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,16 @@ export function TaskInput(props: Props) {
[$onTaskClick]
);

const { inputTask, editMode, setEditMode, setQuery, updateLoading, updateTaskTitleHandler, setFilter, taskIssue } =
datas;
const {
inputTask,
setTaskIssue,
editMode,
setEditMode,
setQuery,
updateLoading,
updateTaskTitleHandler,
setFilter,
} = datas;

const inputTaskTitle = useMemo(() => inputTask?.title || '', [inputTask?.title]);

Expand Down Expand Up @@ -186,7 +194,6 @@ export function TaskInput(props: Props) {
after task creation
*/
const autoActiveTask = props.task !== undefined ? false : true;

const handleTaskCreation = useCallback(() => {
/* Checking if the `handleTaskCreation` is available and if the `hasCreateForm` is true. */
datas &&
Expand Down Expand Up @@ -331,9 +338,7 @@ export function TaskInput(props: Props) {
<TaskIssuesDropdown
taskStatusClassName="!px-1 py-1 rounded-sm"
showIssueLabels={false}
onValueChange={(v) => {
taskIssue.current = v;
}}
onValueChange={(v) => setTaskIssue(v)}
/>
)}

Expand Down
2 changes: 1 addition & 1 deletion apps/web/lib/features/team-members.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export function TeamMembers({ publicTeam = false, kanbanView: view = IssuesView.
const fullWidth = useRecoilValue(fullWidthState);
const { activeTeam } = useOrganizationTeams();
const { teamsFetching } = useOrganizationTeams();
const members = activeTeam?.members || [];
const members = (activeTeam?.members || []).filter(member => member.employee !== null);
const orderedMembers = [...members].sort((a, b) => (sortByWorkStatus(a, b) ? -1 : 1));

const blockViewMembers =
Expand Down

0 comments on commit 274137e

Please sign in to comment.