Skip to content
Closed
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
29579b8
Select multiple objects with single tap
tekig Feb 1, 2022
9cd84e8
Selecting objects works like in Linux Files
tekig Feb 20, 2022
a554b88
Merge branch 'master' into select-multiple-objects
prakashsvmx Feb 22, 2022
508d387
Merge branch 'master' into select-multiple-objects
prakashsvmx Feb 22, 2022
2d234cb
Merge branch 'master' into select-multiple-objects
prakashsvmx Feb 23, 2022
3bbe2f1
Merge branch 'master' into select-multiple-objects
prakashsvmx Feb 28, 2022
4fe9725
Merge branch 'master' into select-multiple-objects
prakashsvmx Feb 28, 2022
a8d4574
Merge branch 'master' into select-multiple-objects
tekig Mar 15, 2022
11b111a
Merge branch 'master' into select-multiple-objects
prakashsvmx Mar 15, 2022
7991981
Merge branch 'master' into select-multiple-objects
cniackz Mar 16, 2022
3400aa0
There was no main object then ignore shift
tekig Mar 16, 2022
34455db
Merge branch 'master' into select-multiple-objects
prakashsvmx Mar 17, 2022
77a4af5
Merge branch 'master' into select-multiple-objects
prakashsvmx Mar 18, 2022
5f59218
Merge branch 'master' into select-multiple-objects
prakashsvmx Mar 22, 2022
23cf355
Merge branch 'master' into select-multiple-objects
prakashsvmx Mar 29, 2022
c91491c
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 4, 2022
ec12ba0
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 5, 2022
fdd63b6
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 6, 2022
b9fd2d3
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 7, 2022
755b8fc
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 12, 2022
2842d3e
Merge branch 'master' into select-multiple-objects
prakashsvmx Apr 13, 2022
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
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,7 @@ const ListObjects = ({
const [loadingLocking, setLoadingLocking] = useState<boolean>(true);
const [lockingEnabled, setLockingEnabled] = useState<boolean>(false);
const [rewindSelect, setRewindSelect] = useState<boolean>(false);
const [selectedMainObject, setSelectedMainObject] = useState<string|null>(null);
const [selectedObjects, setSelectedObjects] = useState<string[]>([]);
const [previewOpen, setPreviewOpen] = useState<boolean>(false);
const [selectedPreview, setSelectedPreview] = useState<BucketObject | null>(
Expand Down Expand Up @@ -714,6 +715,7 @@ const ListObjects = ({
if (refresh) {
setSnackBarMessage(`Objects deleted successfully.`);
setSelectedObjects([]);
setSelectedMainObject(null);
setLoading(true);
}
};
Expand Down Expand Up @@ -1028,26 +1030,6 @@ const ListObjects = ({
setSelectedPreview(null);
};

const selectListObjects = (e: React.ChangeEvent<HTMLInputElement>) => {
const targetD = e.target;
const value = targetD.value;
const checked = targetD.checked;

let elements: string[] = [...selectedObjects]; // We clone the selectedBuckets array

if (checked) {
// If the user has checked this field we need to push this to selectedBucketsList
elements.push(value);
} else {
// User has unchecked this field, we need to remove it from the list
elements = elements.filter((element) => element !== value);
}
setSelectedObjects(elements);
setSelectedInternalPaths(null);

return elements;
};

const sortChange = (sortData: any) => {
const newSortDirection = get(sortData, "sortDirection", "DESC");
setCurrentSortField(sortData.sortBy);
Expand All @@ -1069,6 +1051,49 @@ const ListObjects = ({
payload = sortASC.reverse();
}

const selectListObjects = (e: React.ChangeEvent<HTMLInputElement>) => {
const targetD = e.target;
const value = targetD.value;
let checked = targetD.checked;
// @ts-ignore shiftKey is defined for click events
const shift: bool = e.nativeEvent.shiftKey;
// @ts-ignore ctrlKey is defined for click events
const ctrl: bool = e.nativeEvent.ctrlKey;
let elements: string[] = ctrl ? [...selectedObjects] : []; // We clone the selectedBuckets array

let mainObject = value;
// Use the shift effect if different elements are selected
if (shift && selectedMainObject !== null) {
// Repeat the previous steps for everyone in the range
mainObject = selectedMainObject;
checked = elements.indexOf(mainObject) !== -1 || (shift && !ctrl);
} else {
setSelectedMainObject(value);
}

const [min, max] = [
payload.findIndex(object => object.name === value),
payload.findIndex(object => object.name === mainObject),
].sort((a, b) => a - b); // correctly sort an array of numbers
for (let i = min; i <= max; i++) {
const current = payload[i].name;
if (checked) {
// If the user has checked this field we need to push this to selectedBucketsList
if (elements.indexOf(current) === -1) {
elements.push(current);
}
} else {
// User has unchecked this field, we need to remove it from the list
elements = elements.filter((element) => element !== current);
}
}

setSelectedObjects(elements);
setSelectedInternalPaths(null);

return elements;
};

const selectAllItems = () => {
setSelectedInternalPaths(null);

Expand Down