Skip to content
GitLab
Explorer
Connexion
S'inscrire
Navigation principale
Rechercher ou aller à…
Projet
S
stats-facil
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Wiki
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Extraits de code
Compilation
Pipelines
Jobs
Planifications de pipeline
Artéfacts
Déploiement
Releases
Registre de paquets
Registre de conteneurs
Registre de modèles
Opération
Environnements
Modules Terraform
Surveillance
Incidents
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse CI/CD
Données d'analyse du dépôt
Expériences du modèle
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
facil
stats-facil
Validations
db1cbef7
Valider
db1cbef7
rédigé
11 years ago
par
Thomas Steur
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
refs #2174 some code tweaks
parent
e2cb9183
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
2
Masquer les modifications d'espaces
En ligne
Côte à côte
Affichage de
2 fichiers modifiés
plugins/MultiSites/API.php
+1
-0
1 ajout, 0 suppression
plugins/MultiSites/API.php
plugins/MultiSites/javascripts/multisites-dashboard/multisites-dashboard-model.js
+30
-25
30 ajouts, 25 suppressions
...cripts/multisites-dashboard/multisites-dashboard-model.js
avec
31 ajouts
et
25 suppressions
plugins/MultiSites/API.php
+
1
−
0
Voir le fichier @
db1cbef7
...
@@ -242,6 +242,7 @@ class API extends \Piwik\Plugin\API
...
@@ -242,6 +242,7 @@ class API extends \Piwik\Plugin\API
// use past data to calculate evolution percentages
// use past data to calculate evolution percentages
$this
->
calculateEvolutionPercentages
(
$dataTable
,
$pastData
,
$apiMetrics
);
$this
->
calculateEvolutionPercentages
(
$dataTable
,
$pastData
,
$apiMetrics
);
Common
::
destroy
(
$pastData
);
}
}
// remove eCommerce related metrics on non eCommerce Piwik sites
// remove eCommerce related metrics on non eCommerce Piwik sites
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
plugins/MultiSites/javascripts/multisites-dashboard/multisites-dashboard-model.js
+
30
−
25
Voir le fichier @
db1cbef7
...
@@ -20,7 +20,7 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -20,7 +20,7 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
* This structure allows us to display the sites within a group directly under the group without big logic and also
* This structure allows us to display the sites within a group directly under the group without big logic and also
* allows us to calculate the summary for each group easily
* allows us to calculate the summary for each group easily
*/
*/
var
allSites
=
[];
var
allSites
ByGroup
=
[];
var
model
=
{};
var
model
=
{};
// those sites are going to be displayed
// those sites are going to be displayed
...
@@ -31,7 +31,6 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -31,7 +31,6 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
model
.
totalVisits
=
'
?
'
;
model
.
totalVisits
=
'
?
'
;
model
.
totalActions
=
'
?
'
;
model
.
totalActions
=
'
?
'
;
model
.
totalRevenue
=
'
?
'
;
model
.
totalRevenue
=
'
?
'
;
model
.
prettyDate
=
''
;
model
.
searchTerm
=
''
;
model
.
searchTerm
=
''
;
model
.
lastVisits
=
'
?
'
;
model
.
lastVisits
=
'
?
'
;
model
.
lastVisitsDate
=
'
?
'
model
.
lastVisitsDate
=
'
?
'
...
@@ -77,24 +76,17 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -77,24 +76,17 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
});
});
}
}
model
.
updateWebsitesList
=
function
(
processedReport
)
{
function
createGroupsAndMoveSitesIntoRelatedGroup
(
allSitesUnordered
,
reportMetadata
)
if
(
!
processedReport
)
{
{
model
.
errorLoadingSites
=
true
;
return
;
}
var
allSitesUnordered
=
processedReport
.
reportData
;
model
.
totalVisits
=
processedReport
.
reportTotal
.
nb_visits
;
model
.
totalActions
=
processedReport
.
reportTotal
.
nb_actions
;
model
.
totalRevenue
=
processedReport
.
reportTotal
.
revenue
;
model
.
prettyDate
=
processedReport
.
prettyDate
;
var
sitesByGroup
=
[];
var
sitesByGroup
=
[];
var
groups
=
{};
var
groups
=
{};
// we do 3 things (complete site information, create groups, move sites into group) in one step for
// performance reason, there can be > 20k sites
angular
.
forEach
(
allSitesUnordered
,
function
(
site
,
index
)
{
angular
.
forEach
(
allSitesUnordered
,
function
(
site
,
index
)
{
site
.
idsite
=
processedReport
.
reportMetadata
[
index
].
idsite
;
site
.
idsite
=
reportMetadata
[
index
].
idsite
;
site
.
group
=
processedReport
.
reportMetadata
[
index
].
group
;
site
.
group
=
reportMetadata
[
index
].
group
;
site
.
main_url
=
processedReport
.
reportMetadata
[
index
].
main_url
;
site
.
main_url
=
reportMetadata
[
index
].
main_url
;
if
(
site
.
group
)
{
if
(
site
.
group
)
{
...
@@ -112,19 +104,32 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -112,19 +104,32 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
}
}
});
});
// calculate visits, pageviews, ... per group
calculateMetricsForEachGroup
(
groups
);
calculateMetricsForEachGroup
(
groups
);
if
(
!
sitesByGroup
||
!
sitesByGroup
.
length
)
{
return
sitesByGroup
;
}
model
.
updateWebsitesList
=
function
(
processedReport
)
{
if
(
!
processedReport
)
{
model
.
errorLoadingSites
=
true
;
return
;
return
;
}
}
allSites
=
sitesByGroup
;
var
allSitesUnordered
=
processedReport
.
reportData
;
model
.
totalVisits
=
processedReport
.
reportTotal
.
nb_visits
;
model
.
totalActions
=
processedReport
.
reportTotal
.
nb_actions
;
model
.
totalRevenue
=
processedReport
.
reportTotal
.
revenue
;
var
allSitesByGroup
=
createGroupsAndMoveSitesIntoRelatedGroup
(
allSitesUnordered
,
processedReport
.
reportMetadata
);
if
(
!
allSitesByGroup
.
length
)
{
return
;
}
if
(
model
.
searchTerm
)
{
if
(
model
.
searchTerm
)
{
model
.
searchSite
(
model
.
searchTerm
);
model
.
searchSite
(
model
.
searchTerm
);
}
else
{
}
else
{
model
.
sites
=
s
itesByGroup
;
model
.
sites
=
allS
itesByGroup
;
}
}
};
};
...
@@ -156,12 +161,12 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -156,12 +161,12 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
model
.
currentPage
=
model
.
currentPage
+
1
;
model
.
currentPage
=
model
.
currentPage
+
1
;
};
};
function
nestedSearch
(
sites
,
term
)
function
nestedSearch
(
sites
ByGroup
,
term
)
{
{
var
filteredSites
=
[];
var
filteredSites
=
[];
for
(
var
index
in
sites
)
{
for
(
var
index
in
sites
ByGroup
)
{
var
site
=
sites
[
index
];
var
site
=
sites
ByGroup
[
index
];
if
(
site
.
isGroup
)
{
if
(
site
.
isGroup
)
{
var
matchingSites
=
nestedSearch
(
site
.
sites
,
term
);
var
matchingSites
=
nestedSearch
(
site
.
sites
,
term
);
if
(
matchingSites
.
length
||
(
''
+
site
.
label
).
toLowerCase
().
indexOf
(
term
)
>
-
1
)
{
if
(
matchingSites
.
length
||
(
''
+
site
.
label
).
toLowerCase
().
indexOf
(
term
)
>
-
1
)
{
...
@@ -182,7 +187,7 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
...
@@ -182,7 +187,7 @@ angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikAp
model
.
searchSite
=
function
(
term
)
{
model
.
searchSite
=
function
(
term
)
{
model
.
searchTerm
=
term
;
model
.
searchTerm
=
term
;
model
.
currentPage
=
0
;
model
.
currentPage
=
0
;
model
.
sites
=
nestedSearch
(
allSites
,
term
);
model
.
sites
=
nestedSearch
(
allSites
ByGroup
,
term
);
}
}
function
fetchPreviousSummary
()
{
function
fetchPreviousSummary
()
{
...
...
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter