jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/363316 )
Change subject: BSUsageTracker: Used ExtJS grid indstead of simple table on
special page
......................................................................
BSUsageTracker: Used ExtJS grid indstead of simple table on special page
=> #6655
Change-Id: I28c74cd27bbca8a65bb8e2745f92ac627cf55983
---
M UsageTracker/extension.json
A UsageTracker/resources/BS.UsageTracker/panel/Manager.js
A UsageTracker/resources/ext.bluespice.usagetracker.manager.js
A UsageTracker/src/api/UsageTrackerStore.php
M UsageTracker/src/specials/SpecialUsageTracker.php
5 files changed, 158 insertions(+), 41 deletions(-)
Approvals:
Mglaser: Looks good to me, approved
jenkins-bot: Verified
diff --git a/UsageTracker/extension.json b/UsageTracker/extension.json
index 6afd443..f401b0e 100644
--- a/UsageTracker/extension.json
+++ b/UsageTracker/extension.json
@@ -14,6 +14,9 @@
"extPath": "/BlueSpiceExtensions/UsageTracker"
}
},
+ "APIModules": {
+ "bs-usagetracker-store":
"BS\\UsageTracker\\api\\UsageTrackerStore"
+ },
"MessagesDirs": {
"UsageTracker": [
"i18n"
@@ -30,7 +33,8 @@
"BS\\UsageTracker\\Collectors\\Property":
"src/collectors/Property.php",
"BS\\UsageTracker\\Collectors\\Tag": "src/collectors/Tag.php",
"BS\\UsageTracker\\Jobs\\UsageTrackerCollectJob":
"src/jobs/UsageTrackerCollectJob.php",
- "BS\\UsageTracker\\CollectorResult": "src/CollectorResult.php"
+ "BS\\UsageTracker\\CollectorResult": "src/CollectorResult.php",
+ "BS\\UsageTracker\\api\\UsageTrackerStore":
"src/api/UsageTrackerStore.php"
},
"Hooks": {
"LoadExtensionSchemaUpdates": "UsageTracker::getSchemaUpdates"
@@ -38,5 +42,26 @@
"JobClasses": {
"usageTrackerCollectJob":
"BS\\UsageTracker\\Jobs\\UsageTrackerCollectJob"
},
+ "ResourceModules": {
+ "ext.UsageTracker.manager": {
+ "scripts": [
+ "ext.bluespice.usagetracker.manager.js"
+ ],
+ "styles": [],
+ "messages": [
+ "bs-usagetracker-col-identifier",
+ "bs-usagetracker-col-desc",
+ "bs-usagetracker-col-count",
+ "bs-usagetracker-col-last-updated"
+ ],
+ "dependencies": [
+ "ext.bluespice.extjs"
+ ]
+ }
+ },
+ "ResourceFileModulePaths": {
+ "localBasePath": "resources",
+ "remoteExtPath": "BlueSpiceExtensions/UsageTracker/resources"
+ },
"manifest_version": 1
}
diff --git a/UsageTracker/resources/BS.UsageTracker/panel/Manager.js
b/UsageTracker/resources/BS.UsageTracker/panel/Manager.js
new file mode 100644
index 0000000..6bb7c2f
--- /dev/null
+++ b/UsageTracker/resources/BS.UsageTracker/panel/Manager.js
@@ -0,0 +1,77 @@
+Ext.define( 'BS.UsageTracker.panel.Manager', {
+ extend: 'BS.CRUDGridPanel',
+ requires: [ 'BS.store.BSApi' ],
+
+ initComponent: function() {
+
+ this._gridCols = [
+ {
+ text: mw.message(
'bs-usagetracker-col-identifier' ).plain(),
+ dataIndex: 'identifier',
+ sortable: true,
+ filterable: true,
+ flex: 1
+ },
+ {
+ text: mw.message( 'bs-usagetracker-col-desc'
).plain(),
+ dataIndex: 'description',
+ sortable: true,
+ filterable: true,
+ width: '50%'
+ },
+ {
+ text: mw.message(
'bs-usagetracker-col-last-updated' ).plain(),
+ dataIndex: 'updateDate',
+ sortable: true,
+ filterable: false,
+ filter: {
+ type: 'date'
+ },
+ flex: 1
+ },
+ {
+ text: mw.message( 'bs-usagetracker-col-count'
).plain(),
+ dataIndex: 'count',
+ sortable: true,
+ filter: {
+ type: 'int'
+ },
+ filterable: true,
+ width: '20px'
+ }
+ ];
+
+ this._storeFields = [
+ 'identifier',
+ 'description',
+ 'descriptionKey',
+ 'updateDate',
+ 'count',
+ 'type'
+ ];
+
+ this.callParent( arguments );
+ },
+
+ makeGridColumns: function(){
+ this.colMainConf.columns = this._gridCols;
+ return this.colMainConf.columns;
+ return this.callParent( arguments );
+ },
+
+ makeRowActions: function() {
+ return [];
+ },
+
+ makeMainStore: function() {
+ this.strMain = new BS.store.BSApi({
+ apiAction: 'bs-usagetracker-store',
+ fields: this._storeFields
+ });
+ return this.callParent( arguments );
+ },
+
+ makeTbarItems: function() {
+ return [];
+ }
+});
\ No newline at end of file
diff --git a/UsageTracker/resources/ext.bluespice.usagetracker.manager.js
b/UsageTracker/resources/ext.bluespice.usagetracker.manager.js
new file mode 100644
index 0000000..6237268
--- /dev/null
+++ b/UsageTracker/resources/ext.bluespice.usagetracker.manager.js
@@ -0,0 +1,18 @@
+( function( mw, $, bs, d, undefined ){
+ function _renderGrid() {
+ Ext.onReady(function(){
+ Ext.create( 'BS.UsageTracker.panel.Manager', {
+ renderTo: 'bs-usagetracker-manager'
+ });
+ });
+ }
+
+ var deps = mw.config.get( 'bsUsageTrackerDeps', false );
+ if( deps ) {
+ mw.loader.using( deps, _renderGrid );
+ }
+ else {
+ _renderGrid();
+ }
+
+})( mediaWiki, jQuery, blueSpice, document );
\ No newline at end of file
diff --git a/UsageTracker/src/api/UsageTrackerStore.php
b/UsageTracker/src/api/UsageTrackerStore.php
new file mode 100644
index 0000000..80fd229
--- /dev/null
+++ b/UsageTracker/src/api/UsageTrackerStore.php
@@ -0,0 +1,33 @@
+<?php
+namespace BS\UsageTracker\api;
+class UsageTrackerStore extends \BSApiExtJSStoreBase {
+
+ /**
+ * @param string $sQuery
+ * @return array
+ */
+ protected function makeData( $sQuery = '' ) {
+ $aData = [];
+ $aRes = \BsExtensionManager::getExtension(
+ 'UsageTracker'
+ )->getUsageDataFromDB();
+ foreach( $aRes as $oCollectorResult ) {
+ $aData[] = $this->makeDataRow( $oCollectorResult );
+ }
+ return $aData;
+ }
+
+ protected function makeDataRow( \BS\UsageTracker\CollectorResult
$oCollectorResult ) {
+ return (object) array_merge(
+ (array) $oCollectorResult,
+ [
+ 'description' =>
$oCollectorResult->getDescription(),
+ 'updateDate' =>
$this->getLanguage()->timeanddate(
+ $oCollectorResult->getUpdateDate(),
+ true
+ ),
+ ]
+ );
+ }
+
+}
\ No newline at end of file
diff --git a/UsageTracker/src/specials/SpecialUsageTracker.php
b/UsageTracker/src/specials/SpecialUsageTracker.php
index 2609ba7..f06923e 100644
--- a/UsageTracker/src/specials/SpecialUsageTracker.php
+++ b/UsageTracker/src/specials/SpecialUsageTracker.php
@@ -35,7 +35,6 @@
public function execute( $sParameter ) {
parent::execute( $sParameter );
- $oOut = $this->getOutput();
$oRequest = $this->getRequest();
// Handle update requests (in case the user has the neccesary
rights)
@@ -57,48 +56,13 @@
$this->showUpdateForm();
}
- // Get stored data from db
- $aData = BsExtensionManager::getExtension( 'UsageTracker'
)->getUsageDataFromDB();
-
- // Show data in table
- $sTableHtml = HTML::rawElement( "tr", array(),
- HTML::element( "th", array(), wfMessage(
'bs-usagetracker-col-identifier' )->text() ).
- HTML::element( "th", array(), wfMessage(
'bs-usagetracker-col-desc' )->text() ).
- HTML::element( "th", array(), wfMessage(
'bs-usagetracker-col-last-updated' )->text() ).
- HTML::element( "th", array(), wfMessage(
'bs-usagetracker-col-count' )->text() )
- );
-
- foreach ( $aData as $oResult ) {
- $sTableHtml .= $this->makeRow( $oResult );
- }
-
- $oOut->addHTML(
- HTML::rawElement( "table", array( "class" => "sortable
wikitable" ), $sTableHtml )
- );
- return true;
+ $this->getOutput()->addModules( 'ext.UsageTracker.manager' );
+ $this->getOutput()->addHTML( Html::element( 'div', [
+ 'id' => 'bs-usagetracker-manager'
+ ]));
}
/**
- * Renders a single result table row in HTML
- * @param BS\UsageTracker\CollectorResult $oCollectorResult
- * @return string HTML for a single table row
- */
- protected function makeRow( BS\UsageTracker\CollectorResult
$oCollectorResult ) {
- $sHtml = HTML::rawElement( "tr", array(),
- HTML::element( "td", [ "width" => "10%" ],
$oCollectorResult->identifier ).
- HTML::element( "td", array(),
$oCollectorResult->getDescription() ).
- HTML::element( "td", [ "align" => "right", "width" =>
"10%" ], $oCollectorResult->getUpdateDate() ).
- HTML::rawElement(
- "td",
- [ "align" => "right", "width" => "10%" ],
- HTML::element( "strong", array(),
$oCollectorResult->count )
- )
- );
-
- return $sHtml;
- }
-
- /**
* Output a form to start collect jobs
*/
protected function showUpdateForm() {
--
To view, visit https://gerrit.wikimedia.org/r/363316
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I28c74cd27bbca8a65bb8e2745f92ac627cf55983
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Pwirth <[email protected]>
Gerrit-Reviewer: Mglaser <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits