From a0be518f6cfbab16183e516b71568756c73c6c89 Mon Sep 17 00:00:00 2001 From: Joshua Tazman Reinier Date: Wed, 25 Oct 2023 10:37:02 -0400 Subject: [PATCH] 1.5.2 --- CHANGELOG.md | 25 +++++++++++++++++++++---- manifest.json | 2 +- src/services/calendarApi.ts | 15 ++++++++------- src/services/obsidianApi.ts | 3 +-- src/services/parser.ts | 10 ++++++---- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e65542..5d1f78a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,12 @@ # Roadmap ## Planned -- Add support for [ICS Timezones](https://github.com/joshuatazrein/obsidian-time-ruler/issues/65) - Add support for [ICS Calendar repeats](https://github.com/joshuatazrein/obsidian-time-ruler/issues/50) - Add support for [task repeats](https://github.com/joshuatazrein/obsidian-time-ruler/issues/5#issuecomment-1646958839) +- out how to close window when fullscreen in mobile +- no autoscroll in mobile +- can't click on untitled tasks +- make page headings create pages inside ## Considering - Better Completed Tasks - [Weekly Review](https://github.com/joshuatazrein/obsidian-time-ruler/issues/62?notification_referrer_id=NT_kwDOBQ8O87M3ODg1NjIyNTg3Ojg0ODcyOTQ3#issuecomment-1742924623) @@ -13,11 +16,25 @@ # Changelog -## 1.5.1 (10/22) +## 1.5.2 (10/25/2023) + +**Added:** +- Support for [ICS Timezones](https://github.com/joshuatazrein/obsidian-time-ruler/issues/65) + +**Fixed:** +- Error with default Dataview queries being [incorrect](https://github.com/joshuatazrein/obsidian-time-ruler/issues/71) + +## 1.5.1 (10/22/2023) + +**Added:** - Add bulk edits for task times -- Fixed [bug with lengths](https://github.com/joshuatazrein/obsidian-time-ruler/issues/68#event-10732474581) + +**Fixed:** +- [Bug with lengths](https://github.com/joshuatazrein/obsidian-time-ruler/issues/68#event-10732474581) - Preserve [due times](https://github.com/joshuatazrein/obsidian-time-ruler/issues/66#issuecomment-1753184899) -- Optimize [performance](https://github.com/joshuatazrein/obsidian-time-ruler/issues/48): now only changed files are loaded in. + +**Improved:** +- Optimized [performance](https://github.com/joshuatazrein/obsidian-time-ruler/issues/48): now only changed files are loaded in. ## 1.5.0 (10/08/2023) **Added:** diff --git a/manifest.json b/manifest.json index 5addf3c..ef11751 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "time-ruler", "name": "Time Ruler", - "version": "1.5.1", + "version": "1.5.2", "minAppVersion": "0.15.0", "description": "A drag-and-drop time ruler combining the best of a task list and a calendar view (integrates with Tasks, Full Calendar, and Dataview).", "author": "Joshua Tazman Reinier", diff --git a/src/services/calendarApi.ts b/src/services/calendarApi.ts index 1579bb1..c6e997c 100644 --- a/src/services/calendarApi.ts +++ b/src/services/calendarApi.ts @@ -5,8 +5,6 @@ import { Component, Notice, request } from 'obsidian' import { setters } from '../app/store' import TimeRulerPlugin from '../main' -const WEBCAL = 'webcal' - export default class CalendarAPI extends Component { settings: TimeRulerPlugin['settings'] removeCalendar: (calendar: string) => void @@ -25,13 +23,13 @@ export default class CalendarAPI extends Component { const events = {} const now = new Date() let i = 0 + await Promise.all( this.settings.calendars.map(async (calendar) => { try { const data = await request(calendar) const icsEvents = ical.parseICS(data) const calendarName = data.match(/CALNAME:(.*)/)?.[1] ?? 'Default' - for (let [id, event] of _.entries(icsEvents)) { if ( !event.start || @@ -41,10 +39,13 @@ export default class CalendarAPI extends Component { ) continue + let start = DateTime.fromJSDate(event.start).setZone('local') + let end = DateTime.fromJSDate(event.end).setZone('local') + const startString = ( event.start['dateOnly'] - ? DateTime.fromJSDate(event.start).toISODate() - : DateTime.fromJSDate(event.start).toISO({ + ? start.toISODate() + : start.toISO({ suppressMilliseconds: true, suppressSeconds: true, includeOffset: false, @@ -52,8 +53,8 @@ export default class CalendarAPI extends Component { ) as string const endString = ( event.start['dateOnly'] - ? DateTime.fromJSDate(event.end).toISODate() - : DateTime.fromJSDate(event.end).toISO({ + ? end.toISODate() + : end.toISO({ suppressMilliseconds: true, suppressSeconds: true, includeOffset: false, diff --git a/src/services/obsidianApi.ts b/src/services/obsidianApi.ts index bc29e99..cdb6f69 100644 --- a/src/services/obsidianApi.ts +++ b/src/services/obsidianApi.ts @@ -76,7 +76,6 @@ export default class ObsidianAPI extends Component { loadTasks(path: string) { if (!dv.index.initialized) { - console.log('not initialized') return } @@ -91,7 +90,7 @@ export default class ObsidianAPI extends Component { let pageSearch: DataArray & { file: PageMetadata }> try { let basicSearch = dv.pages( - `"${path.replace(/"/g, '\\"')}" and (${this.settings.search ?? 'true'})` + `"${path.replace(/"/g, '\\"')}" and (${this.settings.search || '""'})` ) as DataArray & { file: PageMetadata }> taskSearch = (basicSearch['file']['tasks'] as DataArray).where( diff --git a/src/services/parser.ts b/src/services/parser.ts index cb3f6f3..099893c 100644 --- a/src/services/parser.ts +++ b/src/services/parser.ts @@ -267,12 +267,13 @@ export function textToTask( } const parsePriority = (): number => { - let priority = item['priority'] + let priority = item['priority'] as number | string if (typeof priority === 'number') return priority - else if (priority) + else if (typeof priority === 'string') { + priority = priority.toLowerCase() return priorityKeyToNumber[priority] ?? TaskPriorities.DEFAULT - else { + } else { // tasks priority for (let emoji of [ keyToTasksEmoji.highest, @@ -428,7 +429,8 @@ export function pageToTask( path: item.file.path, priority: typeof item.priority === 'string' - ? priorityKeyToNumber[item.priority] ?? TaskPriorities.DEFAULT + ? priorityKeyToNumber[item.priority.toLowerCase()] ?? + TaskPriorities.DEFAULT : TaskPriorities.DEFAULT, children: [], page: true,