diff --git a/src/api/asanaApi.ts b/src/api/asanaApi.ts index 5cc75f7..95cd686 100644 --- a/src/api/asanaApi.ts +++ b/src/api/asanaApi.ts @@ -46,7 +46,7 @@ export async function fetchAsanaProjects( try { const response = await requestUrl({ - url: `${ASANA_API_BASE_URL}/workspaces/${workspaceGid}/projects?is_archived=false`, + url: `${ASANA_API_BASE_URL}/workspaces/${workspaceGid}/projects${settings.showArchivedProjects ? '' : '?is_archived=false'}`, method: 'GET', headers: { Authorization: `Bearer ${token}`, diff --git a/src/settings/settings.ts b/src/settings/settings.ts index 98f3b9a..5a96749 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -9,6 +9,7 @@ export interface AsanaPluginSettings { markTaskAsCompleted: boolean; pinnedProjects: string[]; enableMarkdownLink: boolean; + showArchivedProjects: boolean; } /** @@ -19,6 +20,7 @@ export const DEFAULT_SETTINGS: AsanaPluginSettings = { markTaskAsCompleted: false, pinnedProjects: [], enableMarkdownLink: true, + showArchivedProjects: false, }; /** @@ -103,6 +105,18 @@ export class AsanaSettingTab extends PluginSettingTab { }); }); + // Toggle: Show Archived Projects + new Setting(containerEl) + .setName('Show archived projects') + .setDesc('Include archived projects in the project selection modal.') + .addToggle((toggle: ToggleComponent) => { + toggle.setValue(this.plugin.settings.showArchivedProjects) + .onChange(async (value: boolean) => { + this.plugin.settings.showArchivedProjects = value; + await this.plugin.saveSettings(); + }); + }); + // Pinned Projects Input (Scalable TextArea) new Setting(containerEl) .setName('Pinned projects')