Mglaser has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/320155

Change subject: UsageTracker: show number of open analyses
......................................................................

UsageTracker: show number of open analyses

Now shows the number of analyses yet to be made. Also, as long as
analyses are open, it is not possible to trigger the re-analysis.

Change-Id: I036b55d31824383217b591626588eee272514665
---
M UsageTracker/UsageTracker.class.php
M UsageTracker/i18n/de.json
M UsageTracker/i18n/en.json
M UsageTracker/i18n/qqq.json
M UsageTracker/src/specials/SpecialUsageTracker.php
5 files changed, 46 insertions(+), 15 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions 
refs/changes/55/320155/1

diff --git a/UsageTracker/UsageTracker.class.php 
b/UsageTracker/UsageTracker.class.php
index 37e42ec..7ee9528 100644
--- a/UsageTracker/UsageTracker.class.php
+++ b/UsageTracker/UsageTracker.class.php
@@ -71,7 +71,7 @@
                        foreach ( $this->aCollectors as $oCollector ) {
                                $oCollector->registerJob();
                        }
-                       return true;
+                       return $this->aCollectors;
                }
 
                foreach ( $this->aCollectors as $oCollector ) {
diff --git a/UsageTracker/i18n/de.json b/UsageTracker/i18n/de.json
index ad43b21..c0543ed 100644
--- a/UsageTracker/i18n/de.json
+++ b/UsageTracker/i18n/de.json
@@ -15,5 +15,6 @@
        "bs-usagetracker-col-last-updated": "Zuletzt aktualisiert",
        "bs-usagetracker-caution": "Bitte beachte: Die Aktualisierung der 
Nutzungsstatistiken kann einige Zeit und Ressourcen in Anspruch nehmen. Löse 
die Aktualisierung nur aus, wenn du wirklich aktuelle Daten benötigst. Die 
Aktualisierung wird über verzögerte Aufträge ausgeführt, so dass du die Seite 
mehrere Male neu laden musst, bis die Daten vollständig gesammelt wurden.",
        "bs-usagetracker-base-collector-desc": "Anzahl der Seiten, die $1 
nutzen",
-       "bs-usagetracker-tag-collector-desc": "Anzahl der Seiten, die das Tag 
<$1> nutzen"
+       "bs-usagetracker-tag-collector-desc": "Anzahl der Seiten, die das Tag 
<$1> nutzen",
+       "bs-usagetracker-open-tasks" : "Die Plattform wird gerade analysiert. 
$1 Analysen stehen noch aus. <a href='$2'>(Neu laden)</a>"
 }
diff --git a/UsageTracker/i18n/en.json b/UsageTracker/i18n/en.json
index 3fadc35..f8af9cc 100644
--- a/UsageTracker/i18n/en.json
+++ b/UsageTracker/i18n/en.json
@@ -15,5 +15,6 @@
        "bs-usagetracker-col-last-updated" : "Last updated",
        "bs-usagetracker-caution" : "Be aware: Updating usage statistics may 
take some time and resources. Only trigger the update when you really, really 
need current data. The update is done via deferred jobs, so you might have to 
reload several times until the data is fully collected.",
        "bs-usagetracker-base-collector-desc" : "Number of pages using $1",
-       "bs-usagetracker-tag-collector-desc" : "Number of pages using tag <$1>"
+       "bs-usagetracker-tag-collector-desc" : "Number of pages using tag <$1>",
+       "bs-usagetracker-open-tasks" : "Site analysis is currently in progress. 
$1 analyses are still open. <a href='$2'>(Refresh)</a>"
 }
diff --git a/UsageTracker/i18n/qqq.json b/UsageTracker/i18n/qqq.json
index 1b6a26c..af936dd 100644
--- a/UsageTracker/i18n/qqq.json
+++ b/UsageTracker/i18n/qqq.json
@@ -14,5 +14,7 @@
        "bs-usagetracker-col-desc": "Used in [[Special:Usage_Tracker]], label 
for description column\n{{Identical|Description}}",
        "bs-usagetracker-col-count": "Used in [[Special:Usage_Tracker]], label 
for count column\n{{Identical|Count}}",
        "bs-usagetracker-col-last-updated": "Used in [[Special:Usage_Tracker]], 
label for last updated column\n{{Identical|Last updated}}",
-       "bs-usagetracker-caution": "Used in [[Special:Usage_Tracker]], text to 
warn users not that the feature is resource intense"
+       "bs-usagetracker-caution": "Used in [[Special:Usage_Tracker]], text to 
warn users not that the feature is resource intense",
+       "bs-usagetracker-open-tasks" : "Used in [[Special:Usage_Tracker]], text 
to show that site analysis is currently in progress.\n\n* $1 is the number of 
open jobs."
+
 }
diff --git a/UsageTracker/src/specials/SpecialUsageTracker.php 
b/UsageTracker/src/specials/SpecialUsageTracker.php
index 05efe33..2609ba7 100644
--- a/UsageTracker/src/specials/SpecialUsageTracker.php
+++ b/UsageTracker/src/specials/SpecialUsageTracker.php
@@ -16,6 +16,8 @@
 
 class SpecialUsageTracker extends BsSpecialPage {
 
+       public $iOpenTasks = null;
+
        /**
         * Constructor of SpecialUsageTracker class
         */
@@ -38,11 +40,21 @@
 
                // Handle update requests (in case the user has the neccesary 
rights)
                if ( $this->getUser()->isAllowed( 'usagetracker-update') ) {
-                       $this->showUpdateForm();
-
                        if ( $oRequest->wasPosted() ) {
-                               BsExtensionManager::getExtension( 
'UsageTracker' )->getUsageData();
+                               $aData = BsExtensionManager::getExtension( 
'UsageTracker' )->getUsageData();
+                               // JobQueue...getSize is not updated fast 
enough, so we use the
+                               // raw count of jobs just enqueued.
+                               $this->iOpenTasks = count( $aData );
+                       } else {
+                               $oJobQueue = JobQueueGroup::singleton()->get( 
'usageTrackerCollectJob' );
+                               $oJobQueue->flushCaches();
+                               // This count is wrong, since some jobs are 
executed right at the
+                               // end of this page load. However, since we do 
not know the number
+                               // it's ok. Possibly, the user has to reload 
one time more than
+                               // necessary.
+                               $this->iOpenTasks = $oJobQueue->getSize();
                        }
+                       $this->showUpdateForm();
                }
 
                // Get stored data from db
@@ -63,7 +75,6 @@
                $oOut->addHTML(
                        HTML::rawElement( "table", array( "class" => "sortable 
wikitable" ), $sTableHtml )
                );
-
                return true;
        }
 
@@ -90,7 +101,7 @@
                /**
         * Output a form to start collect jobs
         */
-       function showUpdateForm() {
+       protected function showUpdateForm() {
                $this->getOutput()->addHTML(
                        Html::openElement(
                                'form',
@@ -103,14 +114,30 @@
                        ) .
                        Html::hidden( 'title', 
$this->getPageTitle()->getPrefixedText() ) .
                        Xml::fieldset( $this->msg( 
'bs-usagetracker-create-statistics' )->text() ) .
-                       Xml::element( 'div', [], $this->msg( 
'bs-usagetracker-caution' )->text() ).
-                       Xml::submitButton(
+                       Xml::element( 'div', [], $this->msg( 
'bs-usagetracker-caution' )->text() )
+               );
+               if ( $this->iOpenTasks > 0 ) {
+                       $this->getOutput()->addHTML( Html::openElement( 'b' ) );
+                       $this->getOutput()->addHTML(
                                $this->msg(
-                                       'bs-usagetracker-startjobs'
+                                       'bs-usagetracker-open-tasks',
+                                       $this->iOpenTasks,
+                                       SpecialPage::getTitleFor( 
'UsageTracker' )->getLinkURL()
                                )->text()
-                       ) .
-                       Html::closeElement( 'fieldset' ) .
-                       Html::closeElement( 'form' ) . "\n"
+                       );
+                       $this->getOutput()->addHTML( Html::closeElement( 'b' ) 
);
+               } else {
+                       $this->getOutput()->addHTML(
+                               Xml::submitButton(
+                                       $this->msg(
+                                               'bs-usagetracker-startjobs'
+                                       )->text()
+                               )
+                       );
+               }
+               $this->getOutput()->addHTML(
+                       Html::closeElement('fieldset') .
+                       Html::closeElement('form') . "\n"
                );
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/320155
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I036b55d31824383217b591626588eee272514665
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Mglaser <gla...@hallowelt.biz>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to