-
Notifications
You must be signed in to change notification settings - Fork 0
/
options.js
141 lines (122 loc) · 4.79 KB
/
options.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
document.addEventListener("DOMContentLoaded", function () {
var saveButton = document.getElementById("saveButton");
// Load saved settings
chrome.storage.sync.get(
[
"websiteName",
"includeDate",
"separator",
"fileTypeImage",
"fileTypeDocument",
"fileTypeVideo",
],
function (result) {
// Update website name checkbox
var websiteNameCheckbox = document.getElementById("websiteNameCheckbox");
websiteNameCheckbox.checked = result.websiteName !== false;
// Update date checkbox
var dateCheckbox = document.getElementById("dateCheckbox");
dateCheckbox.checked = result.includeDate !== false;
// Update separator input
var separatorInput = document.getElementById("separatorInput");
separatorInput.value = result.separator || "-";
// Update file type filters
var fileTypeImageInput = document.getElementById("fileTypeImage");
fileTypeImageInput.value = result.fileTypeImage || "";
var fileTypeDocumentInput = document.getElementById("fileTypeDocument");
fileTypeDocumentInput.value = result.fileTypeDocument || "";
var fileTypeVideoInput = document.getElementById("fileTypeVideo");
fileTypeVideoInput.value = result.fileTypeVideo || "";
}
);
// Save settings, including file type filter rules
saveButton.addEventListener("click", function () {
// Get user-defined settings
var websiteName = document.getElementById("websiteNameCheckbox").checked;
var includeDate = document.getElementById("dateCheckbox").checked;
var separator = document.getElementById("separatorInput").value;
// Get user-defined file type filter rules
var fileTypeImage = document.getElementById("fileTypeImage").value;
var fileTypeDocument = document.getElementById("fileTypeDocument").value;
var fileTypeVideo = document.getElementById("fileTypeVideo").value;
// Save the settings and file type filter rules
chrome.storage.sync.set(
{
websiteName: websiteName,
includeDate: includeDate,
separator: separator,
fileTypeImage: fileTypeImage,
fileTypeDocument: fileTypeDocument,
fileTypeVideo: fileTypeVideo,
},
function () {
// Display success message to the user
var status = document.getElementById("status");
// Check if the status element exists
if (status) {
// Update the status text if the element exists
status.textContent = "Settings saved.";
} else {
// Log an error message if the element is not found
console.error("Error: Could not find the status element.");
}
setTimeout(function () {
status.textContent = "";
}, 2000);
}
);
});
// Add input event listeners to update the filename preview
document
.getElementById("websiteNameCheckbox")
.addEventListener("input", updatePreview);
document
.getElementById("dateCheckbox")
.addEventListener("input", updatePreview);
document
.getElementById("separatorInput")
.addEventListener("input", updatePreview);
document
.getElementById("fileTypeImage")
.addEventListener("input", updatePreview);
document
.getElementById("fileTypeDocument")
.addEventListener("input", updatePreview);
document
.getElementById("fileTypeVideo")
.addEventListener("input", updatePreview);
// Initial update of the filename preview
updatePreview();
});
function updatePreview() {
// Retrieve the user-defined settings
var websiteName = document.getElementById("websiteNameCheckbox").checked;
var includeDate = document.getElementById("dateCheckbox").checked;
var separator = document.getElementById("separatorInput").value;
var fileTypeImage = document.getElementById("fileTypeImage").value;
var fileTypeDocument = document.getElementById("fileTypeDocument").value;
var fileTypeVideo = document.getElementById("fileTypeVideo").value;
// Build a sample filename based on the settings
var previewFilename = "Example";
if (websiteName) {
previewFilename = "Website" + separator + previewFilename;
}
if (includeDate) {
var currentDate = new Date();
var year = currentDate.getFullYear();
var month = String(currentDate.getMonth() + 1).padStart(2, "0");
var day = String(currentDate.getDate()).padStart(2, "0");
previewFilename =
previewFilename + separator + year + separator + month + separator + day;
}
if (fileTypeImage) {
previewFilename += separator + fileTypeImage;
} else if (fileTypeDocument) {
previewFilename += separator + fileTypeDocument;
} else if (fileTypeVideo) {
previewFilename += separator + fileTypeVideo;
}
// Display the preview filename
document.getElementById("filenamePreview").textContent =
"Preview: " + previewFilename;
}