diff --git a/static/js/app-dashboard/components/app.vue b/static/js/app-dashboard/components/app.vue
index 237a03a..7477e35 100644
--- a/static/js/app-dashboard/components/app.vue
+++ b/static/js/app-dashboard/components/app.vue
@@ -117,7 +117,14 @@
/>
-
+
@@ -147,6 +154,11 @@ export default {
data: {},
conferences: null,
+ paginatedConferences: null,
+ conferencesCount: 0,
+ conferencesPage: 1,
+ conferencesPerPage: 20,
+ conferencesLoading: false,
sessions: null,
connections: null,
issues: null,
@@ -179,8 +191,13 @@ export default {
},
async created() {
+ const since = new Date();
+ since.setDate(since.getDate() - peermetrics.daysHistory);
+ const created_at_gte = since.toISOString();
+
this.data.issues = await peermetrics.get(peermetrics.urls.issues(), {
- appId: peermetrics.app.id
+ appId: peermetrics.app.id,
+ created_at_gte,
}).catch(e => {
console.warn(e)
});
@@ -190,9 +207,9 @@ export default {
}
this.data.conferences = await peermetrics.get(peermetrics.urls.conferences(), {
- appId: peermetrics.app.id
- })
- .catch(e => {
+ appId: peermetrics.app.id,
+ created_at_gte,
+ }).catch(e => {
console.warn(e)
});
@@ -201,18 +218,22 @@ export default {
this.conferences = Object.freeze(this.data.conferences);
}
+ await this.fetchConferences();
+
this.data.sessions = await peermetrics.get(peermetrics.urls.sessions, {
- appId: peermetrics.app.id
+ appId: peermetrics.app.id,
+ created_at_gte,
})
.catch(e => console.warn(e));
-
+
if(this.data.sessions) {
this.data.sessions = peermetrics.utils.populateIssues(this.data.sessions, this.data.issues)
this.sessions = Object.freeze(this.data.sessions);
}
this.data.connections = await peermetrics.get(peermetrics.urls.connections(), {
- appId: peermetrics.app.id
+ appId: peermetrics.app.id,
+ created_at_gte,
})
.catch(e => {
console.warn(e)
@@ -291,6 +312,26 @@ export default {
return Object.values(object).sort((a, b) => a.value > b.value ? 1 : -1)
},
+ async fetchConferences(page) {
+ if (page) this.conferencesPage = page;
+ this.conferencesLoading = true;
+ const offset = (this.conferencesPage - 1) * this.conferencesPerPage;
+ try {
+ const response = await peermetrics.get(peermetrics.urls.conferences(), {
+ appId: peermetrics.app.id,
+ limit: this.conferencesPerPage,
+ offset: offset,
+ });
+ if (response) {
+ this.paginatedConferences = Object.freeze(response.results || []);
+ this.conferencesCount = response.count || 0;
+ }
+ } catch (e) {
+ console.warn(e);
+ }
+ this.conferencesLoading = false;
+ },
+
applyFilters () {
// if no filters are applied, use all the data
if (!this.selectedAppVersion && !this.selectedBrowser && !this.selectedOs && !this.selectedCountry) {
diff --git a/static/js/app-dashboard/components/conferencesTab.vue b/static/js/app-dashboard/components/conferencesTab.vue
index 68b7292..303015b 100644
--- a/static/js/app-dashboard/components/conferencesTab.vue
+++ b/static/js/app-dashboard/components/conferencesTab.vue
@@ -5,9 +5,12 @@
-
+
+ Loading conferences...
+
+
-
-
+
+ >
@@ -52,7 +50,6 @@
diff --git a/static/js/mixins/conferences.js b/static/js/mixins/conferences.js
index 82471ed..42ead6d 100644
--- a/static/js/mixins/conferences.js
+++ b/static/js/mixins/conferences.js
@@ -28,10 +28,10 @@ const conferencesFunctions = {
return !!conference.conference_name;
},
hasError(conference) {
- return conference.issues.some((issue) => issue.type === 'error')
+ return conference.issues && conference.issues.some((issue) => issue.type === 'error')
},
hasWarning(conference) {
- return conference.issues.some((issue) => issue.type === 'warning')
+ return conference.issues && conference.issues.some((issue) => issue.type === 'warning')
},
createPath(conference) {
return peermetrics.createPath('conference', conference.id)
diff --git a/static/js/participant/components/conferencesTab.vue b/static/js/participant/components/conferencesTab.vue
index 5f71b88..00606fb 100644
--- a/static/js/participant/components/conferencesTab.vue
+++ b/static/js/participant/components/conferencesTab.vue
@@ -140,7 +140,7 @@ export default {
// if an sfu, show all conferences that had at least one issue
if (this.isSfu) {
return this.conferences.filter((conference) => {
- return conference.issues.length
+ return conference.issues && conference.issues.length
})
}