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 package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"datatables.net": "^2.3.2",
"datatables.net-bs5": "^2.3.2",
"dattatable": "^2.11.62",
"gd-sprest-bs": "^10.15.43",
"gd-sprest-bs": "^10.15.44",
"jquery": "^3.7.1",
"moment": "^2.30.1"
},
Expand Down
38 changes: 35 additions & 3 deletions src/reports/sensitivityLabels.ts
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ export class SensitivityLabels {
}

// Labels files for a specified folder
private static labelFilesInFolder(webId: string, listName: string, folder: Types.SP.Folder, fileExtensions: string[], label: Components.IDropdownItem, overrideLabelFl: boolean, justification: string) {
private static labelFilesInFolder(webId: string, listName: string, folder: Types.SP.Folder, fileExtensions: string[], label: Components.IDropdownItem, replaceLabel: Components.IDropdownItem, overrideLabelFl: boolean, justification: string) {
let responses: ISetSensitivityLabelResponse[] = [];

// Show the responses
Expand Down Expand Up @@ -301,14 +301,37 @@ export class SensitivityLabels {
}
}

// See if we are replacing a label
if (replaceLabel) {
// Set the flag
overrideLabelFl = true;

// See if file is not labelled with the target
if (file.sensitivityLabel?.id != label.value) {
// Add a response
let response: ISetSensitivityLabelResponse = {
errorFl: false,
fileName: file.name,
message: `Skipping file, replacing '${label.text}' label, file label: '${file.sensitivityLabel.displayName}.`,
url: file.webUrl
};
responses.push(response);
this._dashboard.Datatable.addRow(response);
return;
}
}

// Set the flag
isProcessing = true;

// Update the dialog
this._elSubNav.children[1].innerHTML = `[Processing ${processedCounter} of ${fileCounter}] Labelling File: ${file.name}`;

// Set the label for this file
let fileLabel = replaceLabel || label;

// Label the file
this.labelFile(file, overrideLabelFl, label.text, label.value, justification, responses).then(() => {
this.labelFile(file, overrideLabelFl, fileLabel.text, fileLabel.value, justification, responses).then(() => {
// Set the flag
isProcessing = false;

Expand Down Expand Up @@ -566,6 +589,14 @@ export class SensitivityLabels {
return results;
}
} as Components.IFormControlPropsDropdown,
{
name: "ReplaceLabel",
label: "Replace Sensitivity Label:",
description: "This will replace the selected label with this label.",
items: DataSource.SensitivityLabelItems,
type: Components.FormControlTypes.Dropdown,
value: defaultLabel
} as Components.IFormControlPropsDropdown,
{
name: "ListFolder",
label: "Select a Folder:",
Expand Down Expand Up @@ -650,14 +681,15 @@ export class SensitivityLabels {
let fileExtensions: string[] = values["FileTypes"] ? values["FileTypes"].trim().split(' ') : [];
let folder = values["ListFolder"].data;
let label: Components.IDropdownItem = values["SensitivityLabel"];
let replaceLabel: Components.IDropdownItem = values["ReplaceLabel"];
let overrideLabelFl: boolean = values["OverrideLabel"];

// Update the justification
let justification = values["Justification"].text;
justification = justification == "Other" ? values["JustificationOther"] : justification;

// Label the files
this.labelFilesInFolder(webId, listName, folder, fileExtensions, label, overrideLabelFl, justification);
this.labelFilesInFolder(webId, listName, folder, fileExtensions, label, replaceLabel, overrideLabelFl, justification);
}
}
}
Expand Down