Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion commit/api/commit_project/commit_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def get_project_list_with_branches():
# organization["projects"] = projects
for project in projects:
branches = frappe.get_all("Commit Project Branch", filters={"project": project.get(
"name")}, fields=["branch_name", "last_fetched", "modules", "whitelisted_apis", "name"])
"name")}, fields=["branch_name", "last_fetched", "modules", "whitelisted_apis", "name", "frequency"])
project["branches"] = branches
organization["projects"] = projects

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"commit_hash",
"app_name",
"last_fetched",
"frequency",
"modules_and_doctypes_tab",
"modules",
"module_doctypes_map",
Expand Down Expand Up @@ -103,14 +104,19 @@
"label": "Doctype - Module Map"
},
{
"fieldname": "frequency",
"fieldtype": "Select",
"label": "Frequency",
"options": "\nDaily\nWeekly\nMonthly"
},
"fieldname": "documentation",
"fieldtype": "JSON",
"label": "Documentation"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2024-06-26 09:34:15.314418",
"modified": "2024-06-26 15:17:43.807200",
"modified_by": "Administrator",
"module": "commit",
"name": "Commit Project Branch",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { ProjectData } from "./Projects"
import CreateProjectModal from "./Projects/CreateProjectModal"
import CreateBranchModal from "./Branch/CreateBranchModal"

export const DropdownMenuDemo = ({ mutate }: {
export const AddMenuButton = ({ mutate }: {
mutate: KeyedMutator<{
message: ProjectData[];
}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@ import { Button } from '@/components/ui/button'
import { toast } from '@/components/ui/use-toast'
import { convertFrappeTimestampToTimeAgo } from '@/components/utils/dateconversion'
import { CommitProjectBranch } from '@/types/commit/CommitProjectBranch'
import { useFrappeDeleteDoc, useFrappePostCall } from 'frappe-react-sdk'
import { useFrappeDeleteDoc, useFrappePostCall, useFrappeUpdateDoc } from 'frappe-react-sdk'
import { AiOutlineDelete } from 'react-icons/ai'
import { IoMdSync } from 'react-icons/io'
import { ProjectData } from '../Projects'
import { KeyedMutator } from 'swr'
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover";
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select";
import { Controller, FormProvider, useForm } from 'react-hook-form'
import { Label } from '@/components/ui/label'
import { useState } from 'react'


const ManageBranchItem = ({ branch, mutate }: { branch: CommitProjectBranch, mutate: KeyedMutator<{ message: ProjectData[]; }> }) => {
Expand Down Expand Up @@ -39,11 +44,40 @@ const ManageBranchItem = ({ branch, mutate }: { branch: CommitProjectBranch, mut
}))
}

const methods = useForm<CommitProjectBranch>({
defaultValues: {
frequency : branch.frequency
}
})

const { control, reset: formReset } = methods

const { updateDoc } = useFrappeUpdateDoc()

const onSubmit = (data: CommitProjectBranch) => {
updateDoc("Commit Project Branch", branch.name, data)
.then(() => {
mutate()
formReset({ frequency: data.frequency })
}).then(() => {
toast({
description: `Branch ${branch.branch_name} will be updated ${data.frequency}`,
duration: 2000
})
setOpen(false)
}
)

}


const [open, setOpen] = useState(false);

return (
<li className="pl-0 pt-2 hover:shadow-sm flex justify-between">
<div className="flex flex-col items-start text-md tracking-normal">
{branch.branch_name}
<div className='text-xs text-gray-500 pl-0'>
<div className='text-xs text-gray-500'>
Last synced {convertFrappeTimestampToTimeAgo(branch.last_fetched)}
</div>
</div>
Expand All @@ -58,6 +92,47 @@ const ManageBranchItem = ({ branch, mutate }: { branch: CommitProjectBranch, mut
<IoMdSync className={loading ? 'animate-spin' : ''} />
Fetch latest code
</Button>
<Popover open={open}>
<PopoverTrigger asChild>
<Button
className="text-sm"
variant="outline"
onClick={() => setOpen(true)}
size={'sm'}>{branch.frequency ?? "Select Frequency" }</Button>
</PopoverTrigger>
<PopoverContent className="w-80">
<FormProvider {...methods}>
<form onSubmit={methods.handleSubmit(onSubmit)}>
<div className="flex flex-col items-start p-1">
<Label className='text-normal text-gray-700'>Select frequency for updating Branch</Label>
<Controller
control={control}
name='frequency'
render={({ field }) => (
<Select onValueChange={field.onChange} value={field.value}>
<SelectTrigger className="h-8 w-full mt-4 p-2">
<SelectValue placeholder="Select Frequency" />
</SelectTrigger>
<SelectContent >
<SelectItem value="Daily">Daily</SelectItem>
<SelectItem value="Weekly">Weekly</SelectItem>
<SelectItem value="Monthly">Monthly</SelectItem>
</SelectContent>
</Select>
)}
/>
</div>
<div className='flex justify-end items-end w-full'>
<Button
type="submit"
className='mt-3'
>Set
</Button>
</div>
</form>
</FormProvider>
</PopoverContent>
</Popover>
<Button
size={'sm'}
className="text-lg p-2" variant="destructive"
Expand All @@ -71,4 +146,6 @@ const ManageBranchItem = ({ branch, mutate }: { branch: CommitProjectBranch, mut
)
}

export default ManageBranchItem
export default ManageBranchItem


5 changes: 2 additions & 3 deletions dashboard/src/components/features/projects/Projects.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { BsDatabase } from "react-icons/bs";
import { ViewERDDialogContent } from "./ViewERDAppDialog";
import { isSystemManager } from "@/utils/roles";
import { CommitProjectBranch } from "@/types/commit/CommitProjectBranch";
import { DropdownMenuDemo } from "./AddMenuButton";
import { AddMenuButton } from "./AddMenuButton";
import { APIExplorer } from "./APIExplorer";
import ProjectCard from "./Projects/ProjectCard";

Expand Down Expand Up @@ -51,7 +51,7 @@ export const Projects = () => {
<div className="mx-auto pl-2 pr-4 h-[calc(100vh-4rem)]">
<div className="h-full">
<div className="flex gap-2 flex-row items-center justify-end">
{isCreateAccess && <DropdownMenuDemo mutate={mutate} />}
{isCreateAccess && <AddMenuButton mutate={mutate} />}
<APIExplorer />
<Dialog>
<DialogTrigger asChild>
Expand All @@ -75,7 +75,6 @@ export const Projects = () => {
));
})}
</div>

</div>
</div>
);
Expand Down
1 change: 1 addition & 0 deletions dashboard/src/types/commit/CommitProjectBranch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,5 @@ export interface CommitProjectBranch{
doctype_module_map?: any
/** Whitelisted APIs : JSON */
whitelisted_apis?: any
frequency?: "Daily" | "Weekly" | "Monthly"
}