feat: make filter default value unselected

This commit is contained in:
delphi 2025-04-07 20:28:11 +08:00
parent cb93d701bd
commit eddc81c2cf
7 changed files with 19 additions and 33 deletions

View file

@ -3,7 +3,7 @@
"name": "Cubox",
"version": "1.0.3",
"minAppVersion": "0.15.0",
"description": "Sync your Cubox articles & annotation",
"description": "Sync your Cubox articles & annotations",
"author": "delphi-2015",
"isDesktopOnly": false
}

View file

@ -57,13 +57,13 @@ export interface CuboxSyncSettings {
export const DEFAULT_SETTINGS: CuboxSyncSettings = {
domain: '',
apiKey: '',
folderFilter: [ALL_FOLDERS_ID],
typeFilter: ALL_CONTENT_TYPES,
statusFilter: [ALL_STATUS_ID],
folderFilter: [],
typeFilter: [],
statusFilter: [],
isRead: true,
isStarred: true,
isAnnotated: true,
tagsFilter: [ALL_ITEMS],
tagsFilter: [],
syncFrequency: 30, // 分钟
targetFolder: 'Cubox',
filenameTemplate: '{{{title}}}-{{{create_time}}}',
@ -474,7 +474,6 @@ export class CuboxSyncSettingTab extends PluginSettingTab {
// 状态部分
new Setting(containerEl).setName('Status').setHeading();
new Setting(containerEl).setDesc(`Last sync: ${this.plugin.formatLastSyncTime()}`);
//containerEl.createEl('p', {text: `Last sync: ${this.plugin.formatLastSyncTime()}`});
// 初始化帮助链接
setTimeout(() => {
@ -570,7 +569,7 @@ export class CuboxSyncSettingTab extends PluginSettingTab {
private getFolderFilterButtonText(): string {
const folderFilters = this.plugin.settings.folderFilter;
if (!folderFilters || folderFilters.length === 0) {
return 'Manage';
return 'Select...';
} else if (folderFilters.includes(ALL_FOLDERS_ID)) {
return 'All folders';
} else {
@ -581,7 +580,7 @@ export class CuboxSyncSettingTab extends PluginSettingTab {
private getTypeFilterButtonText(): string {
const typeFilters = this.plugin.settings.typeFilter;
if (!typeFilters || typeFilters.length === 0) {
return 'Manage';
return 'Select...';
} else if (typeFilters.length === ALL_CONTENT_TYPES.length) {
return 'All types';
} else {
@ -592,7 +591,7 @@ export class CuboxSyncSettingTab extends PluginSettingTab {
private getStatusFilterButtonText(): string {
const statusFilters = this.plugin.settings.statusFilter;
if (!statusFilters || statusFilters.length === 0) {
return 'Manage';
return 'Select...';
} else if (statusFilters.includes('all')) {
return 'All items';
} else {
@ -603,7 +602,7 @@ export class CuboxSyncSettingTab extends PluginSettingTab {
private getTagFilterButtonText(): string {
const tagFilters = this.plugin.settings.tagsFilter;
if (!tagFilters || tagFilters.length === 0) {
return 'Manage';
return 'Select...';
} else if (tagFilters.includes(ALL_ITEMS)) {
return 'All items';
} else if (tagFilters.includes('')) {

View file

@ -82,6 +82,12 @@ export default class CuboxSyncPlugin extends Plugin {
return;
}
// Check if filters are configured
if (this.settings.folderFilter.length === 0 || this.settings.typeFilter.length === 0 || this.settings.statusFilter.length === 0 || this.settings.tagsFilter.length === 0) {
new Notice('Please select the filter first');
return;
}
try {
// 设置同步状态为进行中
this.settings.syncing = true;
@ -221,7 +227,7 @@ export default class CuboxSyncPlugin extends Plugin {
formatLastSyncTime(): string {
if (!this.settings.lastSyncTime) {
return 'Never';
return 'never';
}
return formatDateTime(new Date(this.settings.lastSyncTime).toISOString(), 'yyyy-MM-dd HH:mm');

View file

@ -24,9 +24,6 @@ export class FolderSelectModal extends Modal {
initialSelectedFolders.forEach(id => {
if (id) this.selectedFolders.add(id);
});
} else {
// 如果没有初始选择,默认选中"All Items"
this.selectedFolders.add(ALL_FOLDERS_ID);
}
this.onConfirm = onConfirm;

View file

@ -40,8 +40,6 @@ export class StatusSelectModal extends Modal {
initialSelected.forEach(id => {
if (id) this.selectedStatuses.add(id);
});
} else {
this.selectedStatuses.add(ALL_STATUS_ID);
}
}
@ -128,10 +126,10 @@ export class StatusSelectModal extends Modal {
this.selectedStatuses.clear();
this.selectedStatuses.add(ALL_STATUS_ID);
// 当选择 All 时,所有状态值设为 true
// 当选择 All 时,所有状态值设为 false
this.statuses.forEach(status => {
if (status.id !== 'all') {
this.statusValues.set(status.id, true);
this.statusValues.set(status.id, false);
}
});
} else {
@ -143,16 +141,10 @@ export class StatusSelectModal extends Modal {
// 如果选择了其他选项,移除"All Items"
this.selectedStatuses.delete(ALL_STATUS_ID);
this.selectedStatuses.add(statusId);
this.statuses.forEach(status => {
if (status.id !== 'all') {
this.statusValues.set(status.id, status.id === statusId);
}
});
} else {
this.selectedStatuses.delete(statusId);
this.statusValues.set(statusId, false);
}
this.statusValues.set(statusId, isSelected);
}
}

View file

@ -25,9 +25,6 @@ export class TagSelectModal extends Modal {
initialSelectedTags.forEach(id => {
this.selectedTags.add(id);
});
} else {
// 如果没有初始选择,默认选中"All Items"
this.selectedTags.add(ALL_ITEMS);
}
this.onConfirm = onConfirm;

View file

@ -26,11 +26,6 @@ export class TypeSelectModal extends Modal {
initialSelected.forEach(id => {
if (id) this.selectedTypes.add(id);
});
} else {
// 如果没有初始选择,默认选中所有类型
ALL_CONTENT_TYPES.forEach(type => {
this.selectedTypes.add(type);
});
}
}