Skip to content

Commit

Permalink
Titan v1.3.2 Release
Browse files Browse the repository at this point in the history
Merge pull request #10 from ArrushC/9-provide-option-for-folder-only-source-branches
  • Loading branch information
ArrushC authored Sep 18, 2024
2 parents 2aafd40 + 91d6a58 commit db51804
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 13 deletions.
4 changes: 2 additions & 2 deletions dist/assets/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "titan",
"private": true,
"proxy": "http://localhost:5173",
"version": "1.3.1",
"version": "1.3.2",
"type": "module",
"main": "main.js",
"description": "A desktop application for streamlining your workflow in Revision Control Systems (RCS) like Subversion (SVN).",
Expand Down
5 changes: 3 additions & 2 deletions server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@ async function sendConfig(socket) {
branches: [],
branchFolderColours: {},
commitOptions: {
useFolderOnlySource: false,
useIssuePerFolder: false,
reusePreviousCommitMessage: false,
},
Expand Down Expand Up @@ -796,7 +797,7 @@ io.on("connection", (socket) => {
return;
}

const { sourceBranch, issueNumber, commitMessage, filesToProcess } = data;
const { sourceBranch, issueNumber, commitMessage, filesToProcess, commitOptions } = data;

// Group files by SVN Branch
const filesByBranch = filesToProcess.reduce((acc, file) => {
Expand All @@ -820,7 +821,7 @@ io.on("connection", (socket) => {

let originalMessage = `(${sourceBranch["Branch Folder"]}${originalIssueNumber !== "" ? ` #${originalIssueNumber}` : ""})`;
if (branchFolder === sourceBranch["Branch Folder"]) {
originalMessage = `(${branchFolder} ${sourceBranch["Branch Version"]})`;
originalMessage = `(${branchFolder}${commitOptions.useFolderOnlySource ? "" : ` ${sourceBranch["Branch Version"]}`})`;
}

let branchIssueNumber = issueNumber[branchFolder] || originalIssueNumber;
Expand Down
18 changes: 15 additions & 3 deletions src/AppContext.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -127,18 +127,30 @@ export const AppProvider = ({ children }) => {
const [showCommitView, setShowCommitView] = useState(false);
const [sourceBranch, setSourceBranch] = useState(null);
const branchOptions = useMemo(() => {
// Old Implementation for source branch:
// if (config && config.commitOptions && config.commitOptions.useIssuePerFolder) {
// return selectedBranches.filter((row) => row["Branch Folder"] && row["Branch Version"] && row["SVN Branch"] && row["Branch Folder"] !== "" && row["Branch Version"] !== "" && row["SVN Branch"] !== "").map((row) => ({
// value: row.id,
// label: branchString(row["Branch Folder"], row["Branch Version"], row["SVN Branch"]),
// }));
// }

return configurableRowData
.filter((row) => row["Branch Folder"] && row["Branch Version"] && row["SVN Branch"] && row["Branch Folder"] !== "" && row["Branch Version"] !== "" && row["SVN Branch"] !== "")
let isFolderOnlySource = config && config.commitOptions && config.commitOptions.useFolderOnlySource;
let filteredBranches = configurableRowData.filter((row) => row["Branch Folder"] && row["Branch Version"] && row["SVN Branch"] && row["Branch Folder"] !== "" && row["Branch Version"] !== "" && row["SVN Branch"] !== "");

if (isFolderOnlySource) {
filteredBranches = filteredBranches.reduce((acc, row) => {
if (!acc.some((item) => item["Branch Folder"] === row["Branch Folder"])) {
acc.push(row);
}
return acc;
}, []);
}

return filteredBranches
.map((row) => ({
value: row.id,
label: branchString(row["Branch Folder"], row["Branch Version"], row["SVN Branch"]),
label: isFolderOnlySource ? row["Branch Folder"] : branchString(row["Branch Folder"], row["Branch Version"], row["SVN Branch"]),
}));
}, [config, selectedBranches, configurableRowData]);
const [issueNumber, setIssueNumber] = useState({});
Expand Down
2 changes: 1 addition & 1 deletion src/components/FooterSectionCommit.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default function FooterSectionCommit({ openCommitModal }) {
// return;
// }

setSocketPayload({ sourceBranch: sourceBranchRow, issueNumber: issueNumber, commitMessage, filesToProcess: selectedLocalChanges });
setSocketPayload({ sourceBranch: sourceBranchRow, issueNumber: issueNumber, commitMessage, filesToProcess: selectedLocalChanges, commitOptions: commitOptions });
openCommitModal();
}, [RaiseClientNotificaiton, sourceBranch, configurableRowData, commitOptions, selectedBranchFolders, issueNumber, selectedBranches, commitMessage, selectedLocalChanges]);

Expand Down
18 changes: 14 additions & 4 deletions src/components/OptionsCommit.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ import { useApp } from "../AppContext";
import _ from "lodash";

export default function OptionsCommit() {
const { config, updateConfig } = useApp();

const { config, updateConfig, setSourceBranch } = useApp();
const [commitOptions, setCommitOptions] = useState({});

const handleOptionChange = useCallback(
Expand All @@ -25,6 +24,7 @@ export default function OptionsCommit() {
updateConfig((currentConfig) => ({
...currentConfig,
commitOptions: {
useFolderOnlySource: false,
useIssuePerFolder: false,
reusePreviousCommitMessage: false,
},
Expand All @@ -48,20 +48,30 @@ export default function OptionsCommit() {
});
}, [commitOptions]);

// Clear source branch option if folder only source is toggled
useEffect(() => {
setSourceBranch(null);
}, [commitOptions?.useFolderOnlySource, setSourceBranch]);

return (
<Box mb={4}>
<Heading as={"h6"} size="sm">
Commit Options
</Heading>
<CheckboxGroup colorScheme="yellow">
<Stack direction={"row"} spacing={4} mt={2}>
<Checkbox isChecked={commitOptions.useFolderOnlySource} onChange={(e) => handleOptionChange("useFolderOnlySource", e.target.checked)}>
<Tooltip label={"Removes extra branch details from source branch."} hasArrow placement="bottom-start">
Use Folder Only Source Branch?
</Tooltip>
</Checkbox>
<Checkbox isChecked={commitOptions.useIssuePerFolder} onChange={(e) => handleOptionChange("useIssuePerFolder", e.target.checked)}>
<Tooltip label={"This option is for users who would like to apply different issue numbers for different branch folders. Toggling this option will clear the issue number!"} hasArrow placement="bottom-end">
<Tooltip label={"Allows users to input issue number for each branch folder."} hasArrow placement="bottom-start">
Use 1 Issue Per Folder?
</Tooltip>
</Checkbox>
<Checkbox isChecked={commitOptions.reusePreviousCommitMessage} onChange={(e) => handleOptionChange("reusePreviousCommitMessage", e.target.checked)}>
<Tooltip label={"Toggling this option will clear the commit message!"} hasArrow>
<Tooltip label={"Reuses the commit message from the previous commit made in Titan."} hasArrow>
Reuse Previous Commit Message?
</Tooltip>
</Checkbox>
Expand Down

0 comments on commit db51804

Please sign in to comment.