diff --git a/scripts/base-component.js b/scripts/base-component.js index 7345b2b..7b7acbb 100644 --- a/scripts/base-component.js +++ b/scripts/base-component.js @@ -53,8 +53,10 @@ class Base { } updateLastModified() { - const lastModified = localStorage.getItem(this.component); - document.querySelector(`#${this.component}-update`).innerHTML = lastModified ? timeAgo.format(JSON.parse(lastModified)) : 'Not available'; + db.logs.get(this.component,(item)=> { + document.querySelector(`#${this.component}-update`).innerHTML = item ? + timeAgo.format(JSON.parse(item.last_updated)) : 'Not available'; + }); } prepareFilters() { diff --git a/scripts/data-handler.js b/scripts/data-handler.js index 2d25865..bd98b5e 100644 --- a/scripts/data-handler.js +++ b/scripts/data-handler.js @@ -19,7 +19,10 @@ class DataSource { const groups = await Groups.load(); this.data.groups = groups; db.groups.bulkPut(groups); - localStorage.setItem('groups', Date.now()); + db.logs.put({ + last_updated: Date.now(), + id: 'groups' + }); return this.data.groups; } @@ -30,7 +33,10 @@ class DataSource { project.group_id = project.namespace.id; }); db.projects.bulkPut(this.data.projects); - localStorage.setItem('projects', Date.now()); + db.logs.put({ + last_updated: Date.now(), + id: 'projects' + }); return this.data.projects; } @@ -39,7 +45,10 @@ class DataSource { const key = 'id'; this.data.members = [...new Map(members.flat().map(item => [item[key], item])).values()]; db.members.bulkPut(this.data.members); - localStorage.setItem('members', Date.now()); + db.logs.put({ + last_updated: Date.now(), + id: 'members' + }); return this.data.members; } } diff --git a/scripts/db.js b/scripts/db.js index 87be0be..2ee33c1 100644 --- a/scripts/db.js +++ b/scripts/db.js @@ -10,6 +10,7 @@ db.version(1).stores({ events: 'created_at, project_id -> projects.id, author_id -> members.id', member_events: 'id++, member_id -> members.id', commits: 'short_id, author_name -> members.name, authored_date, project_id -> projects.id', + logs: 'id' }); export default db;