Skip to content

Commit

Permalink
chore: add task id page
Browse files Browse the repository at this point in the history
  • Loading branch information
silviyaboteva committed Mar 4, 2025
1 parent a71411e commit cce24f2
Show file tree
Hide file tree
Showing 4 changed files with 172 additions and 7 deletions.
2 changes: 2 additions & 0 deletions examples/kendo-react-freemium/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import Projects from "./pages/Projects";
import Tasks from "./pages/Tasks";
import Settings from "./pages/Settings";
import Team from "./pages/Team";
import Task from "./pages/Task";

export default function App() {
return (
Expand All @@ -18,6 +19,7 @@ export default function App() {
<Route path="/" element={<Home />} />
<Route path="/projects" element={<Projects />} />
<Route path="/tasks" element={<Tasks />} />
<Route path="/tasks/:taskId" element={<Task />} />
<Route path="/team-management" element={<TeamManagement />} />
<Route path="/team-management/:teamId" element={<Team />} />
<Route path="/settings" element={<Settings />} />
Expand Down
139 changes: 139 additions & 0 deletions examples/kendo-react-freemium/src/pages/Task.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
import { useParams } from "react-router";
import { useNavigate } from "react-router-dom";
import { tasksData, teamsData } from "./data";
import { ButtonGroup, Button, FloatingActionButton } from "@progress/kendo-react-buttons";
import { Breadcrumb, Card, CardBody, Avatar, CardTitle, CardSubtitle, CardFooter, BreadcrumbLinkMouseEvent, GridLayout } from "@progress/kendo-react-layout";
import { groupIcon, listUnorderedSquareIcon, homeIcon, detailSectionIcon, plusIcon, folderIcon, trashIcon, checkIcon } from "@progress/kendo-svg-icons";
import { SvgIcon } from "@progress/kendo-react-common";
import { Window } from '@progress/kendo-react-dialogs';
import React from "react";
import { TextArea } from "@progress/kendo-react-inputs";

interface DataModel {
id: string;
text?: string;
icon?: React.ReactNode;
}

export default function Task() {
let params = useParams();
const navigate = useNavigate();
const task = tasksData.filter(task => task.taskId === params.taskId)[0];

const breadcrumbItems: DataModel[] = [
{
id: "home",
icon: <SvgIcon icon={homeIcon} />,
},
{
id: "tasks",
text: "Tasks",
},
{
id: `${params.taskId}`,
text: `${tasksData.filter(task => task.taskId === params.taskId)[0].taskName}`,
}
];

const handleItemSelect = (e: BreadcrumbLinkMouseEvent) => {
if (e.id === 'home') {
navigate('/');
} else if (e.id === 'tasks') {
navigate('/tasks');
}
}

return (
<>
<div style={{minHeight: 'calc(100vh - 106px)'}} className="flex flex-col p-10 gap-6">
<Breadcrumb data={breadcrumbItems} onItemSelect={handleItemSelect} className="!bg-app-surface" />

<h1 className="text-4xl">{tasksData.map(task => { return task.taskId === params.taskId ? task.taskName : '' })}</h1>

<div className="grid grid-cols-12 gap-6">
<div className="col-span-6 lg:col-span-8">
<TextArea rows={30} className="rounded-t-2xl" value='As part of a learning management system, we need to implement content management features that enable instructors to easily create, manage, and organize their course materials.
Objectives:
1. Enhance User Experience: Streamline the process for instructors to create, manage, and distribute course content effectively.
2. Facilitate Content Accessibility: Ensure that all content management features are user-friendly and accessible to instructors with varying levels of technical expertise.
3. Boost Engagement: Provide tools that enable instructors to create more engaging and interactive content for students.
Key Responsibilities:
1. Requirements Gathering: Collaborate with instructors to understand their needs and pain points regarding current content management practices.
2. Feature Development: Design and implement features such as modular content creation, media embedding, version control, and scheduling for content release.
3. User Testing: Conduct thorough testing sessions with instructors to ensure the new features meet their expectations and are easy to use.
4. Documentation and Training: Develop user manuals and training materials to assist instructors in utilizing the new content management features.
5. Feedback Incorporation: Set up a process for collecting user feedback post-implementation to make adjustments and improvements as necessary.
Deliverables:
1. Feature Specifications Document: A comprehensive document outlining the requirements, features, and functionalities based on instructor feedback.
2. Developed Features: A functioning implementation of content management features that includes:
3. Course content creation tools (text, video, quizzes)
4. Media upload and embedding options
5. Version control and history tracking for content changes
6. Scheduling and automation for content release
7. User Acceptance Testing (UAT) Report: Document summarizing feedback from testing sessions and any identified issues or suggestions for improvement.
8. Training Materials: User guides, video tutorials, and training sessions scheduled for instructors to familiarize them with the new features.
9. Feedback Mechanism: An established method for instructors to provide ongoing feedback on the content management system.
Comments/Notes:
It’s important to involve a diverse group of instructors in the testing phase to capture a wide range of feedback.
Consider accessibility best practices to ensure all instructors, including those with disabilities, can effectively utilize the new features.
Regular check-ins with stakeholders should be scheduled to ensure continued alignment with instructional goals and user needs.
Monitor key metrics post-launch to evaluate the effectiveness of the content management features in enhancing instructor performance and student engagement.
'/>
<div className="bg-surface-alt border-1 border-t-0 border-border rounded-b-2xl px-4 py-2">
<div className="hidden lg:flex gap-1">
<Button svgIcon={checkIcon} themeColor="primary" size="large">Save changes</Button>
<Button svgIcon={folderIcon} fillMode="flat" size="large" className="ml-auto">Archive Task</Button>
<Button svgIcon={trashIcon} fillMode="flat" themeColor="error" size="large">Delete task</Button>
</div>
<div className="flex lg:hidden gap-1">
<Button svgIcon={checkIcon} themeColor="primary" size="large">Save changes</Button>
<Button svgIcon={folderIcon} fillMode="flat" size="large" className="ml-auto">Archive Task</Button>
<Button svgIcon={trashIcon} fillMode="flat" themeColor="error" size="large">Delete task</Button>
</div>
</div>
</div>

{/* <div className="col-span-6 lg:col-span-4 flex flex-col gap-2">
<ExpansionPanel title="Project" expanded className="rounded-2xl">
<label>Choose project</label>
<DropdownList value="Online Learning Management System (LMS)" size="large" />
</ExpansionPanel>
<ExpansionPanel title="Due Date" expanded className="rounded-2xl">
<label>Set due date</label>
<DateInput value="05/03/2025" />
</ExpansionPanel>
<ExpansionPanel title="Assigned to" expanded className="rounded-2xl">
<label>Select assignee(s)</label>
<MultiSelect size="large" tags={(
<>
<Chip actions={ <ChipAction type="remove"/> } text="Alden_Upton" size="large" />
</>
)} />
</ExpansionPanel>
<ExpansionPanel title="Status" expanded className="rounded-2xl">
<label>Select assignee(s)</label>
<DropdownList value="l🚧 On Hold" size="large" />
</ExpansionPanel>
<ExpansionPanel title="Tags" expanded className="rounded-2xl">
<label>Select tags</label>
<MultiSelect size="large" tags={(
<>
<Chip actions={ <ChipAction type="remove"/> } text="Compliance" size="large" />
<Chip actions={ <ChipAction type="remove"/> } text="Maintenance" size="large" />
</>
)} />
</ExpansionPanel>
</div> */}

</div>

</div>
<div className="bg-surface-alt color-subtle p-2 text-center">
<span>Copyright &#169; 2025 Progress Software. All rights reserved.</span>
</div>
</>
)
}
15 changes: 13 additions & 2 deletions examples/kendo-react-freemium/src/pages/Tasks.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ export default function Tasks() {
);

setData(newData);
};
};

const handleRowDoubleClick = (event: any) => {
navigate(`/tasks/${event.dataItem.taskId}`);
};

return (
<div
Expand Down Expand Up @@ -94,6 +98,8 @@ export default function Tasks() {
dataItemKey={"ProjectID"}
editable={true}

onRowDoubleClick={handleRowDoubleClick}

>
<GridToolbar>
<GridSearchBox />
Expand All @@ -106,33 +112,38 @@ export default function Tasks() {
Print
</Button>
</GridToolbar>
<GridColumn field="taskName" title="Task Name" width={350} />
<GridColumn field="taskName" title="Task Name" width={350} editable={false} />
<GridColumn
field="assignedTo"
title="Assigned To"
width={195}
editable={false}
/>
<GridColumn
field="dueDate"
title="Due Date"
width={195}
format="{0:d}"
filter="date"
editable={false}
/>
<GridColumn
field="priority"
title="Priority"
width={195}
editable={false}
/>
<GridColumn
field="status"
title="Status"
width={200}
editable={false}
/>
<GridColumn
field="tags"
title="Tags"
width={270}
editable={false}
/>
</Grid>
</div>
Expand Down
23 changes: 18 additions & 5 deletions examples/kendo-react-freemium/src/pages/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,7 @@ export const projectsData = [
// TASKS PAGE
export const tasksData = [
{
taskId: '2213',
taskName: '#2213 Define project scope and objectives.',
assignedTo: 'Fabiola.Cassin90',
dueDate: '07/31/2025',
Expand All @@ -625,14 +626,16 @@ export const tasksData = [
priority: 'High priority'
},
{
taskName: '#2213 Conduct market research to assess existing LMS solutions.',
taskId: '2214',
taskName: '#2214 Conduct market research to assess existing LMS solutions.',
assignedTo: 'Marlon66',
dueDate: '08/11/2025',
status: '✅ Completed',
tags: ['Research', 'Q1 Release'],
priority: 'Medium priority'
},
{
taskId: '5342',
taskName: '#5342 Identify target audience and their specific needs.',
assignedTo: 'Maegan_Dietrich56',
dueDate: '08/21/2025',
Expand All @@ -641,6 +644,7 @@ export const tasksData = [
priority: 'Urgent'
},
{
taskId: '7211',
taskName: '#7211 Create a project timeline with milestones and deliverables.',
assignedTo: 'Howell69',
dueDate: '07/17/2025',
Expand All @@ -649,14 +653,16 @@ export const tasksData = [
priority: 'High priority'
},
{
taskName: '#2213 Review and update the incident response plan to incorporate new threats and vulnerabilities.',
taskId: '2215',
taskName: '#2215 Review and update the incident response plan to incorporate new threats and vulnerabilities.',
assignedTo: 'Kory.Lockman',
dueDate: '05/24/2025',
status: '❌ Cancelled',
tags: ['Feature Development', 'Internal'],
priority: 'Low priority'
},
{
taskId: '2811',
taskName: '#2811 Gather requirements from stakeholders through interviews or surveys.',
assignedTo: 'Nolan.Kling13',
dueDate: '07/01/2025',
Expand All @@ -665,14 +671,16 @@ export const tasksData = [
priority: 'Medium priority'
},
{
taskName: '#2811 Set up monitoring tools and analyze system performance metrics to identify and address potential bottlenecks.',
taskId: '2812',
taskName: '#2812 Set up monitoring tools and analyze system performance metrics to identify and address potential bottlenecks.',
assignedTo: 'Antoinette_Hills',
dueDate: '12/15/2025',
status: '⚠ Delayed',
tags: ['Research', 'Innovation'],
priority: 'Low priority'
},
{
taskId: '3516',
taskName: '#3516 Develop a budget for the project, including potential software and hardware needs.',
assignedTo: 'Alden_Upton',
dueDate: '05/03/2025',
Expand All @@ -681,6 +689,7 @@ export const tasksData = [
priority: 'Routine'
},
{
taskId: '1415',
taskName: '#1415 Conduct a SWOT analysis to assess strengths, weaknesses, opportunities, and threats.',
assignedTo: 'Travis.Gerhold80',
dueDate: '09/05/2025',
Expand All @@ -689,6 +698,7 @@ export const tasksData = [
priority: 'Medium priority'
},
{
taskId: '1536',
taskName: '#1536 Implement Content Management Features for Instructors.',
assignedTo: 'Jamaal41',
dueDate: '07/12/2025',
Expand All @@ -697,6 +707,7 @@ export const tasksData = [
priority: 'High priority'
},
{
taskId: '1541',
taskName: '#1541 Select a suitable technology stack or platform for the LMS.',
assignedTo: 'Fabiola.Cassin90',
dueDate: '07/31/2025',
Expand All @@ -705,15 +716,17 @@ export const tasksData = [
priority: 'High priority'
},
{
taskName: '#2213 Evaluate potential third-party integrations (e.g., payment gateways, content libraries).',
taskId: '2216',
taskName: '#2216 Evaluate potential third-party integrations (e.g., payment gateways, content libraries).',
assignedTo: 'Fabiola.Cassin90',
dueDate: '08/11/2025',
status: '✅ Completed',
tags: ['Feature Development', 'Innovation'],
priority: 'Urgent'
},
{
taskName: '#2213 Create wireframes for user interface (UI) elements and navigation.',
taskId: '2217',
taskName: '#2217 Create wireframes for user interface (UI) elements and navigation.',
assignedTo: 'Marlon66',
dueDate: '08/21/2025',
status: '⏳ In Progress',
Expand Down

0 comments on commit cce24f2

Please sign in to comment.