diff --git a/css/dashboard.css b/css/dashboard.css index c95b12ca..fe559494 100644 --- a/css/dashboard.css +++ b/css/dashboard.css @@ -93,7 +93,7 @@ padding: 8px; border-radius: var(--border-radius-large); box-shadow: 2px 2px 5px var(--color-background-darker); - background-color: var(--color-primary-light); + background-color: #FFFFFF; margin: 10px; display: inline-block; vertical-align: top; diff --git a/css/style.css b/css/style.css index 459b7023..29888177 100644 --- a/css/style.css +++ b/css/style.css @@ -244,6 +244,7 @@ content: inherit; background: linear-gradient(to right, #1A366C, #F1F1F1); /*margin-top: 20px;*/ margin-left: 30px; + margin-top: 10px; display: block; } @@ -681,7 +682,7 @@ div.dt-container .dt-paging .dt-paging-button { } .infoBox { - background-color: var(--color-background-dark); + background-color: #FFFFFF; padding: 5px; box-shadow: 2px 2px 5px var(--color-background-darker); border-radius: var(--border-radius-large); diff --git a/js/app.js b/js/app.js index 33d69731..4b68af4d 100644 --- a/js/app.js +++ b/js/app.js @@ -87,6 +87,7 @@ OCA.Analytics = Object.assign({}, OCA.Analytics, { OCA.Analytics.Core = { init: function () { if (document.getElementById('sharingToken').value !== '') { + document.getElementById('byAnalytics').classList.toggle('analyticsFullscreen'); OCA.Analytics.Backend.getData(); return; } diff --git a/js/dashboard.js b/js/dashboard.js index cf82dd22..cf555853 100644 --- a/js/dashboard.js +++ b/js/dashboard.js @@ -10,7 +10,12 @@ 'use strict'; document.addEventListener('DOMContentLoaded', function () { - //OCA.Analytics.Dashboard.init(); + if (typeof OCA.Dashboard === 'object') { + OCA.Dashboard.register('analytics', (el) => { + el.innerHTML = ''; + OCA.Analytics.Dashboard.getFavorites(); + }); + } }) OCA.Analytics = Object.assign({}, OCA.Analytics, { @@ -39,16 +44,9 @@ OCA.Analytics = Object.assign({}, OCA.Analytics, { */ OCA.Analytics.Dashboard = { init: function () { - if (typeof OCA.Dashboard === 'object') { - OCA.Dashboard.register('analytics', (el) => { - el.innerHTML = ''; - OCA.Analytics.Dashboard.getFavorites(); - }); - } else if (typeof OCA.Analytics.Navigation === 'object') { - // show favorites when the Analytics app itself is loaded - if (decodeURI(location.hash).length === 0) { - OCA.Analytics.Dashboard.getFavorites(); - } + // show favorites when the Analytics app itself is loaded + if (decodeURI(location.hash).length === 0) { + OCA.Analytics.Dashboard.getFavorites(); } }, diff --git a/js/navigation.js b/js/navigation.js index 0a09bdeb..8a54e029 100644 --- a/js/navigation.js +++ b/js/navigation.js @@ -487,8 +487,10 @@ OCA.Analytics.Navigation = { }, handleOverviewButton: function (evt) { - evt.preventDefault(); - history.pushState(null, '', evt.target.href); + if (evt) { + evt.preventDefault(); + history.pushState(null, '', evt.target.href); + } OCA.Analytics.Sidebar?.close?.(); if (document.querySelector('#navigationDatasets .active')) { @@ -496,9 +498,10 @@ OCA.Analytics.Navigation = { } OCA.Analytics.Visualization.hideElement('analytics-content'); OCA.Analytics.Visualization.showElement('analytics-intro'); - document.getElementById('ulAnalytics').innerHTML = ''; - OCA.Analytics.Dashboard?.init?.(); - OCA.Analytics.Panorama?.Dashboard?.init?.(); + // Do not reload DB all the time as it is already in the background + //document.getElementById('ulAnalytics').innerHTML = ''; + //OCA.Analytics.Dashboard?.init?.(); + //OCA.Analytics.Panorama?.Dashboard?.init?.(); }, handleNavigationClicked: function (evt) { diff --git a/js/panorama.js b/js/panorama.js index 055b7492..6e2863fd 100644 --- a/js/panorama.js +++ b/js/panorama.js @@ -125,29 +125,6 @@ OCA.Analytics.Panorama = { '' + '' }, - { - id: 3, name: '2-2', layout: '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' - }, - { - id: 4, name: '4-2', layout: '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' - }, ], init: function () { @@ -1197,7 +1174,8 @@ OCA.Analytics.Dashboard = { for (let panorama of JSON.parse(xhr.response)) { let story = OCA.Analytics.Panorama.stories.find(x => parseInt(x.id) === parseInt(panorama)); - let li = '
  • ' + story.name + '
  • '; + let li = '
  • '; + li += '' + story.name + '
  • '; document.getElementById('ulAnalytics').insertAdjacentHTML('beforeend', li); } diff --git a/js/sidebar.js b/js/sidebar.js index bb382f7d..422d799e 100644 --- a/js/sidebar.js +++ b/js/sidebar.js @@ -205,7 +205,9 @@ OCA.Analytics.Sidebar.Report = { data['type'] = parseInt(data['type']); // Chart.js v4.4.3 changed from xAxes to x. In case the user has old chart options, they need to be corrected - data['chartoptions'] = data['chartoptions'].replace(/xAxes/g, 'x') + if (data['chartoptions']) { + data['chartoptions'] = data['chartoptions'].replace(/xAxes/g, 'x'); + } // clone the DOM template table = document.importNode(document.getElementById('templateReport').content, true); @@ -622,8 +624,13 @@ OCA.Analytics.Sidebar.Report = { // store possibly changed values into the temporary variable as this is used in getData // without this, the new options would only be active after a full reload - OCA.Analytics.currentReportData.options.chartoptions = JSON.parse(document.getElementById('sidebarReportChartOptions').value); - OCA.Analytics.currentReportData.options.dataoptions = JSON.parse(document.getElementById('sidebarReportDataOptions').value); + let chartOptions = document.getElementById('sidebarReportChartOptions').value; + let dataOptions = document.getElementById('sidebarReportDataOptions').value; + + if (OCA.Analytics?.currentReportData?.options) { + OCA.Analytics.currentReportData.options.chartoptions = chartOptions ? JSON.parse(chartOptions) : null; + OCA.Analytics.currentReportData.options.dataoptions = dataOptions ? JSON.parse(dataOptions) : null; + } if (OCA.Analytics.Sidebar.Report.metadataChanged === true) { OCA.Analytics.Sidebar.Report.metadataChanged = false; diff --git a/js/userGuidance.js b/js/userGuidance.js index 4014ca8d..73e5592e 100644 --- a/js/userGuidance.js +++ b/js/userGuidance.js @@ -39,8 +39,10 @@ OCA.Analytics.Wizard = { show: function () { OCA.Analytics.Wizard.currentSlide = 0; - let wizard = document.importNode(document.getElementById('wizardDialog').content, true); - document.body.appendChild(wizard); + if (!document.getElementById('analyticsWizard')) { + let wizard = document.importNode(document.getElementById('wizardDialog').content, true); + document.body.appendChild(wizard); + } document.getElementById('wizardNext').addEventListener('click', OCA.Analytics.Wizard.next); document.getElementById('wizardPrevious').addEventListener('click', OCA.Analytics.Wizard.previous); document.getElementById('wizardClose').addEventListener('click', OCA.Analytics.Wizard.cancel); diff --git a/js/visualization.js b/js/visualization.js index 68c09c02..92221051 100644 --- a/js/visualization.js +++ b/js/visualization.js @@ -477,6 +477,7 @@ OCA.Analytics.Visualization = { chartOptions.circumference = 180; chartOptions.rotation = -90; chartOptions.plugins.datalabels.display = true; + chartOptions.plugins.datalabels.color = '#FFFFFF'; } // the user can add/overwrite chart options diff --git a/templates/main_panorama.php b/templates/main_panorama.php index f756aaf6..19ff0c75 100644 --- a/templates/main_panorama.php +++ b/templates/main_panorama.php @@ -13,7 +13,7 @@ Util::addStyle('analytics', '3rdParty/datatables.min'); Util::addStyle('files_sharing', 'icons'); Util::addStyle('analytics', 'print'); -Util::addScript('analytics', 'panorama'); +Util::addStyle('analytics', 'dashboard'); Util::addScript('analytics', 'visualization'); Util::addScript('analytics', 'navigation'); Util::addScript('analytics', 'sidebar'); @@ -27,6 +27,7 @@ Util::addScript('analytics', 'userGuidance'); Util::addScript('analytics', '3rdParty/jspdf.umd.min'); Util::addScript('analytics', '3rdParty/html2canvas.min'); +Util::addScript('analytics', 'panorama'); ?>
    diff --git a/templates/part.content.php b/templates/part.content.php index b976269a..4f75571f 100644 --- a/templates/part.content.php +++ b/templates/part.content.php @@ -26,7 +26,7 @@ -
    +
    t('Chart options')); ?>
    -
    +
    t('Data options')); ?>
    -
    +