jenkins-bot has submitted this change and it was merged.

Change subject: BSApiFileBackendStore Pt. II
......................................................................


BSApiFileBackendStore Pt. II

* InsertImage uses BSApiFileBackendStore

Change-Id: Ia785ab9ad839cbf93c6de0a6fdbf15056595c08f
---
M InsertFile/InsertFile.setup.php
M InsertFile/includes/InsertFileAJAXBackend.php
M InsertFile/resources/BS.InsertFile/BaseDialog.js
M InsertFile/resources/BS.InsertFile/FileDialog.js
M InsertFile/resources/BS.InsertFile/ImageDialog.js
M InsertFile/resources/BS.InsertFile/UploadPanel.js
6 files changed, 71 insertions(+), 435 deletions(-)

Approvals:
  Robert Vogel: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/InsertFile/InsertFile.setup.php b/InsertFile/InsertFile.setup.php
index 5a65c49..c7340c5 100644
--- a/InsertFile/InsertFile.setup.php
+++ b/InsertFile/InsertFile.setup.php
@@ -10,10 +10,7 @@
 $wgAutoloadClasses['JsonLicenses']          = __DIR__ . 
'/includes/JsonLicenses.php';
 $wgAutoloadClasses['InsertFileAJAXBackend'] = __DIR__ . 
'/includes/InsertFileAJAXBackend.php';
 
-$wgAjaxExportList[] = 'InsertFileAJAXBackend::getFilePage';
-$wgAjaxExportList[] = 'InsertFileAJAXBackend::getFiles';
 $wgAjaxExportList[] = 'InsertFileAJAXBackend::getLicenses';
-$wgAjaxExportList[] = 'InsertFileAJAXBackend::getExistsWarning';
 
 $aResourceModuleTemplate = array(
        'localBasePath' => __DIR__ . '/resources',
diff --git a/InsertFile/includes/InsertFileAJAXBackend.php 
b/InsertFile/includes/InsertFileAJAXBackend.php
index 3f81120..2302a47 100644
--- a/InsertFile/includes/InsertFileAJAXBackend.php
+++ b/InsertFile/includes/InsertFileAJAXBackend.php
@@ -2,387 +2,10 @@
 
 class InsertFileAJAXBackend {
 
+       //There is an api action "licences" in mw 2.24, but it is described as
+       //"Get media license dropdown HTML."
        public static function getLicenses() {
                $oLicenses = new JsonLicenses();
                return $oLicenses->getJsonOutput();
-       }
-
-       /**
-        * Calculate on which page an file is shown and put it to ajax output.
-        * @param type $output The ajax output which have to be valid JSON.
-        */
-       public static function getFilePage() {
-               global $wgDBtype;
-               $oRequest = RequestContext::getMain()->getRequest();
-               $filename = $oRequest->getVal( 'filename', false );
-               $type = $oRequest->getVal( 'type', 'image' );
-               $pagesize = $oRequest->getInt( 'pagesize', 12 );
-
-               if ( strstr( $filename, 'index.php' ) ) {
-                       $token = array( );
-                       parse_str( $filename, $token );
-                       if ( isset( $token[ 'f' ] ) ) {
-                               $token = explode( ':', $token[ 'f' ] );
-                               $filename = $token[ 1 ];
-                       }
-               }
-
-               if ( !$filename ) {
-                       return FormatJson::encode(
-                               array(
-                                       'file' => '',
-                                       'page' => 0
-                               )
-                       );
-               }
-
-               $dbr = wfGetDB( DB_SLAVE );
-
-               switch ( $type ) {
-                       // TODO MRG (01.07.11 12:08): see above: Tiff special 
case only makes sense with PAgedTiffHandler activated.
-                       case 'image':
-                               switch ( $wgDBtype ) {
-                                       case 'postgres':
-                                               $sql = "SELECT 
insertfile_getImagePosition('{$filename}') AS rank";
-                                               break;
-                                       case 'oracle':
-                                               $sql = "SELECT 
if_getImagePosition('{$filename}') AS rank FROM dual";
-                                               break;
-                                       case 'mysql':
-                                       default:
-                                               $tbl = $dbr->tableName( 'image' 
);
-                                               $sql = "SELECT tmp.rank FROM
-                                                                       (SELECT 
@row:=@row+1 rank, i.img_name
-                                                                        FROM 
{$tbl} i, (SELECT @row:=0) r
-                                                                        WHERE 
(i.img_major_mime = 'image' OR i.img_minor_mime = 'tiff')
-                                                                        ORDER 
BY i.img_name ASC) tmp
-                                                               WHERE 
tmp.img_name = '{$filename}'";
-                                               break;
-                               }
-                               break;
-                       case 'file':
-                               switch ( $wgDBtype ) {
-                                       case 'postgres':
-                                               $sql = "SELECT 
insertfile_getFileUploadPosition('{$filename}') AS rank";
-                                               break;
-                                       case 'oracle':
-                                               $sql = "SELECT 
if_getFileUploadPosition('{$filename}') AS rank FROM dual";
-                                               break;
-                                       case 'mysql':
-                                       default:
-                                               $tbl = $dbr->tableName( 'image' 
);
-                                               $sql = "SELECT tmp.rank FROM
-                                                                       (SELECT 
@row:=@row+1 rank, i.img_name
-                                                                        FROM 
{$tbl} i, (SELECT @row:=0) r
-                                                                        WHERE 
(i.img_major_mime != 'image' AND i.img_minor_mime != 'tiff')
-                                                                        ORDER 
BY i.img_name ASC) tmp
-                                                               WHERE 
tmp.img_name = '{$filename}'";
-                                               break;
-                               }
-                               break;
-               }
-
-               $res = $dbr->query( $sql );
-               if ( $res && $res->numRows() ) {
-                       $row = $res->fetchObject();
-                       $page = ceil( $row->rank / $pagesize );
-               } else {
-                       $page = 0;
-               }
-               return FormatJson::encode(
-                       array(
-                               'file' => $filename,
-                               'page' => $page
-                       )
-               );
-       }
-
-       /**
-        * Calculate on which page an uploaded file is shown and put it to ajax 
output.
-        * @param type $output The ajax output which have to be valid JSON.
-        */
-       public static function getUploadedFilePage() {
-               global $wgDBtype;
-               $oRequest = RequestContext::getMain()->getRequest();
-               $type = $oRequest->getVal( 'type', 'image' );
-               $sort = $oRequest->getVal( 'sort', 'name' );
-               $pagesize = $oRequest->getInt( 'pagesize', 12 );
-
-               switch ( $sort ) {
-                       case 'size':
-                               $sql_sort = 'i.img_size DESC';
-                               break;
-                       case 'lastmod':
-                               $sql_sort = 'i.img_timestamp DESC';
-                               break;
-                       case 'name':
-                       default:
-                               $sql_sort = 'i.img_name ASC';
-               }
-
-               $dbr = wfGetDB( DB_SLAVE );
-
-               if ( $wgDBtype == 'mysql' || $wgDBtype == 'sqlite' ) {
-                       if ( $type == 'image' ) {
-                               $tbl = $dbr->tableName( 'image' );
-                               $sql = "SELECT tmp.rank, tmp.img_name FROM
-                                                       (SELECT @row:=@row+1 
rank, i.img_name, i.img_timestamp
-                                                        FROM {$tbl} i, (SELECT 
@row:=0) r
-                                                        WHERE 
(i.img_major_mime = 'image' OR i.img_minor_mime = 'tiff')
-                                                        ORDER BY {$sql_sort}) 
tmp
-                                               ORDER BY tmp.img_timestamp DESC
-                                               LIMIT 1";
-                       } else {
-                               $tbl = $dbr->tableName( 'image' );
-                               $sql = "SELECT tmp.rank, tmp.img_name FROM
-                                                       (SELECT @row:=@row+1 
rank, i.img_name, i.img_timestamp
-                                                        FROM {$tbl} i, (SELECT 
@row:=0) r
-                                                        WHERE 
(i.img_major_mime != 'image' AND i.img_minor_mime != 'tiff')
-                                                        ORDER BY {$sql_sort}) 
tmp
-                                               ORDER BY tmp.img_timestamp DESC
-                                               LIMIT 1";
-                       }
-
-                       $filename = '';
-
-                       $res = $dbr->query( $sql );
-                       if ( $res && $res->numRows() ) {
-                               $row = $res->fetchObject();
-                               $page = ceil( $row->rank / $pagesize );
-                               $filename = $row->img_name;
-                       } else {
-                               $page = 0;
-                       }
-               } else {
-                       if ( $type == 'image' ) {
-                               $tbl = $dbr->tableName( 'image' );
-                               $sql = "SELECT i.img_name, i.img_timestamp
-                                                FROM {$tbl} i
-                                                WHERE (i.img_major_mime = 
'image' OR i.img_minor_mime = 'tiff')
-                                                ORDER BY {$sql_sort}";
-                       } else {
-                               $tbl = $dbr->tableName( 'image' );
-                               $sql = "SELECT i.img_name, i.img_timestamp
-                                                FROM {$tbl} i
-                                                WHERE (i.img_major_mime != 
'image' AND i.img_minor_mime != 'tiff')
-                                                ORDER BY {$sql_sort}";
-                       }
-
-                       $filename = '';
-
-                       $res = $dbr->query( $sql );
-                       $rows = array();
-                       $rank = 0;
-                       $newestRow = null;
-                       if ( $res && $res->numRows() ) {
-                               while($row = $res->fetchObject()) {
-                                       $rank++;
-                                       $rows[$rank] = array('rank' => $rank, 
'filename' => $row->img_name, 'time' => $row->img_timestamp);
-                                       if(!$newestRow || $newestRow['time'] < 
$row->img_timestamp) {
-                                               $newestRow = &$rows[$rank];
-                                       }
-                               }
-                               $page = ceil( $newestRow['rank'] / $pagesize );
-                               $filename = $newestRow['filename'];
-                       } else {
-                               $page = 0;
-                       }
-               }
-
-               return FormatJson::encode(
-                       array(
-                               'file' => $filename,
-                               'page' => $page
-                       )
-               );
-       }
-
-       public static function getExistsWarning( $sFilename ) {
-               $oFile = wfFindFile( $sFilename );
-               if( !$oFile ) {
-                       $oFile = wfLocalFile( $sFilename );
-               }
-
-               $s = '&#160;';
-               if ( $oFile ) {
-                       $exists = UploadBase::getExistsWarning( $oFile );
-                       $warning = SpecialUpload::getExistsWarning( $exists );
-                       if ( $warning !== '' ) {
-                               if ( BsExtensionManager::getExtension( 
'SecureFileStore' ) !== null ) {
-                                       $warning = 
SecureFileStore::secureStuff( $warning );
-                               }
-                               $s = "<div>$warning</div>";
-                       }
-               }
-
-               return $s;
-       }
-
-       /**
-        * Process the dataset for the ExtJS file store and put it to ajax 
output.
-        */
-       public static function getFiles() {
-               $thumbs_width  = 128;
-               $thumbs_height = 128;
-
-               $oStoreParams = BsExtJSStoreParams::newFromRequest();
-               $sFileType    = $oStoreParams->getRequest()->getVal('type', 
'image');
-               //$aFileExtensions = 
$oStoreParams->getRequest()->getArray('type'); //TODO: For future use
-
-               $sStart = $oStoreParams->getStart();
-               $sLimit = $oStoreParams->getLimit();
-
-               switch ( $oStoreParams->getSort() ) {
-                       case 'size':
-                               $sSort = 'i.img_size';
-                               break;
-                       case 'name':
-                               $sSort = 'i.img_name';
-                               break;
-                       case 'lastmod':
-                       default:
-                               $sSort = 'i.img_timestamp';
-               }
-               $sSort .= ' '.$oStoreParams->getDirection();
-
-               $sType = '';
-               switch ( $sFileType ) {
-                       case 'image':
-                               $sType = "(i.img_major_mime = 'image' OR 
i.img_minor_mime = 'tiff')";
-                               break;
-                       case 'file':
-                               $sType = "(i.img_major_mime != 'image' AND 
i.img_minor_mime != 'tiff')";
-                               break;
-               }
-
-               $aConds = array();
-               $aConds[] = $sType;
-
-               $aNameFilters = array();
-               //We need to replace spaces, because the DB value does not have 
spaces
-               $aNameFilters[] = str_replace( ' ', '_', 
$oStoreParams->getQuery() );
-
-               $dbr = wfGetDB( DB_SLAVE );
-               $sImageTable = $dbr->tableName( 'image' );
-               $sCategoryLinksTable = $dbr->tableName( 'categorylinks' );
-               $sPageTable = $dbr->tableName( 'page' );
-
-               wfRunHooks( 'BSInsertFileGetFilesBeforeQuery', array( &$aConds, 
&$aNameFilters ) );
-
-               global $wgDBtype;
-               $sNameFilters = self::buildNameFiltersSQL( $aNameFilters, 
$wgDBtype );
-               if( !empty( $sNameFilters ) ) $aConds[] = $sNameFilters;
-               $sConds = implode( ' AND ', $aConds );
-
-               // Searching for images/files in categories with name 
$sCategoryFilter
-               // TODO SW: verify that this image is found by category, may be 
join in statement
-               $sCategoryFilter = self::buildNameFiltersSQL( $aNameFilters, 
$wgDBtype, 'cl_to' );
-               $sConds .= " OR i.img_name IN (SELECT page_title FROM 
$sCategoryLinksTable, $sPageTable where $sCategoryFilter and page_namespace=6 
and page_id=cl_from) AND $sType";
-
-               if ( $wgDBtype == 'oracle' ) {
-                       $sql =
-                               "SELECT * FROM
-                                       (
-                                               SELECT i.img_name, i.img_size, 
i.img_width, i.img_height, i.img_timestamp,
-                                                               row_number() 
over (ORDER BY {$sSort}) rnk
-                                               FROM {$sImageTable} i
-                                               WHERE {$sConds}
-                                       )
-                               WHERE rnk BETWEEN {$sStart}+1 AND " . ( $sStart 
+ $sLimit );
-               } elseif ( $wgDBtype == 'postgres' ) {
-                       $sql = "SELECT i.img_name, i.img_size, i.img_width, 
i.img_height, i.img_timestamp
-                               FROM {$sImageTable} i
-                               WHERE {$sConds}
-                               ORDER BY {$sSort}
-                               OFFSET {$sStart}
-                               LIMIT {$sLimit}";
-               } else {
-                       $sql = "SELECT i.img_name, i.img_size, i.img_width, 
i.img_height, i.img_timestamp
-                               FROM {$sImageTable} i
-                               WHERE {$sConds}
-                               ORDER BY {$sSort}
-                               LIMIT {$sStart}, {$sLimit}";
-               }
-
-               $rowTotal = $dbr->selectRow(
-                       array( 'i' => 'image' ),
-                       array( 'total' => 'COUNT(img_name)' ),
-                       $sConds
-               );
-
-               $aOutput = array(
-                       'total' => $rowTotal->total,
-                       'images' => array()
-               );
-
-               $res = $dbr->query( $sql );
-
-               foreach ( $res as $row ) {
-                       $img = self::newFromName( $row->img_name );
-
-                       $url = $img->createThumb( 48, 48 );//img size for 
preview in grid cell
-
-                       if ( BsExtensionManager::isContextActive( 
'MW::SecureFileStore::Active' ) ) {
-                               $url = SecureFileStore::secureStuff( $url, true 
);
-                       }
-
-                       $aOutput['images'][] = array(
-                               'name'    => $row->img_name,
-                               'url'     => $url,
-                               'size'    => $row->img_size,
-                               'lastmod' => wfTimestamp(TS_UNIX, 
$row->img_timestamp),
-                               'width'   => $row->img_width,
-                               'height'  => $row->img_height
-                       );
-               }
-               return FormatJson::encode( $aOutput );
-       }
-
-
-       /**
-        * Builds filter conditions for SQL query
-        * @param array $nameFilters
-        * @param string $dbType
-        * @return string A SQL fragment containing all filter conditions
-        */
-       protected static function buildNameFiltersSQL( $nameFilters, $dbType, 
$sTableName = 'i.img_name' ) {
-               //HINT: CONVERT is needed because field type is VARBINARY.
-               //Converting to UTF8 is just a heuristics. SQL is probably
-               //nonstandard.
-               $sFormat = "LOWER(CONVERT($sTableName USING 'UTF8')) LIKE %s";
-
-               if( $dbType == 'oracle' || $dbType == 'postgres' || $dbType == 
'sqlite') {
-                       $sFormat = "LOWER($sTableName) LIKE %s";
-               }
-               $dbr = wfGetDB( DB_SLAVE );
-               $aFormattedFilters = array();
-               foreach( $nameFilters as $nameFilter ) {
-                       //if( empty($nameFilter) ) continue;
-                       $aFormattedFilters[] = sprintf(
-                               $sFormat,
-                               $dbr->addQuotes('%'.strtolower($nameFilter).'%')
-                       );
-               }
-
-               $sNameFilters = implode( ' OR ', $aFormattedFilters );
-
-               if( !empty($sNameFilters) ) {
-                       $sNameFilters = '('.$sNameFilters.')';
-               }
-
-               return $sNameFilters;
-       }
-
-       protected static function newFromName( $name ) {
-               $title = Title::makeTitleSafe( NS_FILE, $name );
-               if ( is_object( $title ) ) {
-                               $img = wfFindFile( $title );
-                               if ( !$img ) {
-                                       $img = wfLocalFile( $title );
-                               }
-                               return $img;
-               } else {
-                               return null;
-               }
        }
 }
\ No newline at end of file
diff --git a/InsertFile/resources/BS.InsertFile/BaseDialog.js 
b/InsertFile/resources/BS.InsertFile/BaseDialog.js
index c417299..280ad85 100644
--- a/InsertFile/resources/BS.InsertFile/BaseDialog.js
+++ b/InsertFile/resources/BS.InsertFile/BaseDialog.js
@@ -34,22 +34,22 @@
                this.conf = {
                        columns: {
                                items: [{
-                                       dataIndex: 'url',
+                                       dataIndex: 'img_thumbnail',
                                        renderer: this.renderThumb,
                                        width: 56,
                                        sortable: false
                                },{
                                        text: 
mw.message('bs-insertfile-filename').plain(),
-                                       dataIndex: 'name',
+                                       dataIndex: 'img_name',
                                        flex: 1
                                },{
                                        text: 
mw.message('bs-insertfile-filesize').plain(),
-                                       dataIndex: 'size',
+                                       dataIndex: 'img_size',
                                        renderer:this.renderSize,
                                        width: 100
                                },{
                                        text: 
mw.message('bs-insertfile-lastmodified').plain(),
-                                       dataIndex: 'lastmod',
+                                       dataIndex: 'page_touched',
                                        renderer:this.renderLastModified,
                                        width: 150
                                }],
@@ -66,21 +66,29 @@
                        leadingBufferZone: 60,
                        proxy: {
                                type: 'ajax',
-                               url: 
bs.util.getAjaxDispatcherUrl('InsertFileAJAXBackend::getFiles'),
+                               url: mw.util.wikiScript('api'),
                                reader: {
                                        type: 'json',
-                                       root: 'images',
-                                       idProperty: 'name'
+                                       root: 'results',
+                                       idProperty: 'img_name',
+                                       totalProperty: 'total'
                                },
                                extraParams: {
-                                       type: this.storeFileType
+                                       format: 'json',
+                                       action: 'bs-filebackend-store',
+                                       filter: Ext.encode([{
+                                               type: 'string',
+                                               comparison: 'eq',
+                                               field: 'img_major_mime',
+                                               value: this.storeFileType
+                                       }])
                                }
                        },
                        remoteFilter: true,
                        autoLoad: true,
-                       fields: ['name', 'lastmod', 'url', 'size', 'width', 
'height' ],
+                       fields: ['img_name', 'page_touched', 'img_thumbnail', 
'img_size', 'img_width', 'img_height' ],
                        sortInfo: {
-                               field: 'lastmod',
+                               field: 'page_touched',
                                direction: 'ASC'
                        }
                });
@@ -228,14 +236,6 @@
        },
 
        renderThumb: function( url ) {
-               /*return mw.html.element(
-                       'img',
-                       {
-                               src: url,
-                               height: 48,
-                               width: 48
-                       }
-               );*/
                return '<img src="'+url+'" height="48" width="48" />';
        },
 
@@ -244,14 +244,16 @@
        },
 
        renderLastModified: function( lastmod ){
+               //mw timestamp to date params
+               var aDate = lastmod.match(new RegExp('.{1,2}', 'g'));
                return Ext.Date.format(
-                       new Date(lastmod * 1000),
+                       new Date(aDate[0] + aDate[1], aDate[2], aDate[3], 
aDate[4], aDate[5], aDate[6] ),
                        'd.m.Y G:i'
                );
        },
 
        onGdImagesSelect: function( grid, record, index, eOpts ){
-               this.tfFileName.setValue( record.get('name') );
+               this.tfFileName.setValue( record.get('img_name') );
                this.pnlConfig.expand();
        },
 
diff --git a/InsertFile/resources/BS.InsertFile/FileDialog.js 
b/InsertFile/resources/BS.InsertFile/FileDialog.js
index 741472e..2e2ccd6 100644
--- a/InsertFile/resources/BS.InsertFile/FileDialog.js
+++ b/InsertFile/resources/BS.InsertFile/FileDialog.js
@@ -14,7 +14,16 @@
                this.configPanel.items = [];
                this.callParent(arguments);
        },
+       afterInitComponent: function() {
+               this.callParent(arguments);
+               this.stImageGrid.proxy.extraParams.filter = Ext.encode([{
+                       type: 'string',
+                       comparison: 'neq',
+                       field: 'img_major_mime',
+                       value: 'image'
+               }]);
+       },
        onPnlConfigExpand: function(panel, eOpts){
                this.callParent(arguments);
-       },
+       }
 });
\ No newline at end of file
diff --git a/InsertFile/resources/BS.InsertFile/ImageDialog.js 
b/InsertFile/resources/BS.InsertFile/ImageDialog.js
index f584ae0..2f70661 100644
--- a/InsertFile/resources/BS.InsertFile/ImageDialog.js
+++ b/InsertFile/resources/BS.InsertFile/ImageDialog.js
@@ -170,8 +170,8 @@
                        if( this.nbWidth.getValue() === null && 
this.nbHeight.getValue() === null ) {
                                var record = records[0];
                                this.isSetData = true;
-                               this.nbWidth.setValue(+record.get('width'));
-                               this.nbHeight.setValue(+record.get('height'));
+                               this.nbWidth.setValue(+record.get('img_width'));
+                               
this.nbHeight.setValue(+record.get('img_height'));
                                this.isSetData = false;
                        }
                }
@@ -195,8 +195,8 @@
                if ((w === 0 && h === 0) || record === null ) {
                        return 0;
                }
-               var orgW = record.get('width');
-               var orgH = record.get('height');
+               var orgW = record.get('img_width');
+               var orgH = record.get('img_height');
 
                if (w === 0) {
                        return Math.round(orgW / (orgH / h));
@@ -271,7 +271,7 @@
 
                var height = this.nbHeight.getValue();
                var width = this.nbWidth.getValue();
-               if( height != record.get('height') || width != 
record.get('width') ) {
+               if( height != record.get('img_height') || width != 
record.get('img_width') ) {
                        cfg.sizeheight = height;
                        cfg.sizewidth = width;
                }
@@ -352,12 +352,12 @@
        onGdImagesSelect: function( grid, record, index, eOpts ){
                this.callParent(arguments);
 
-               this.hdnUrl.setValue( record.get('url') );
+               this.hdnUrl.setValue( record.get('img_thumbnail') );
                //This is to avoid an overriding of the dimension that may have 
been
                //set by this.setData()
                if( grid.getStore().filters.items.length === 0 || 
grid.getStore().getCount() !== 1 ) {
-                       this.nbWidth.setValue( record.get('width') );
-                       this.nbHeight.setValue( record.get('height') );
+                       this.nbWidth.setValue( record.get('img_width') );
+                       this.nbHeight.setValue( record.get('img_height') );
                }
                
$(document).trigger("BSInsertFileInsertImageDialogAfterImageSelect", [this, 
grid, record, index]);
        },
diff --git a/InsertFile/resources/BS.InsertFile/UploadPanel.js 
b/InsertFile/resources/BS.InsertFile/UploadPanel.js
index cfa824d..6064f9e 100644
--- a/InsertFile/resources/BS.InsertFile/UploadPanel.js
+++ b/InsertFile/resources/BS.InsertFile/UploadPanel.js
@@ -176,31 +176,36 @@
        },
 
        tfFileNameChange: function(field, value) {
-               Ext.Ajax.request({
-                       url: bs.util.getAjaxDispatcherUrl( 
'InsertFileAJAXBackend::getExistsWarning', [ value ] ),
-                       success: function(response, options) {
-                               if(!(response.responseText.trim() === ''
-                                       || response.responseText === '&#160;'
-                                       || response.responseText === '&nbsp;')) 
{
-
-                                       bs.util.alert(
-                                               this.getId()+'-existswarning',
-                                               {
-                                                       titleMsg: 
'bs-extjs-title-warning',
-                                                       text: 
response.responseText
-                                               },
-                                               {
-                                                       ok: function() {
-                                                               //User is 
noticed. Now let's set the
-                                                               //ignore 
warnings flag automatically
-                                                               
this.cbxWarnings.setValue(true);
-                                                       },
-                                                       scope: this
-                                               }
-                                       );
+               var Api = new mw.Api();
+               var me = this;
+               Api.get({
+                       action: 'query',
+                       format: 'json',
+                       titles: 'File:' + value,
+                       prop: 'imageinfo',
+                       iiprop: 'uploadwarning',
+                       indexpageids: ''
+               }).done( function ( response ) {
+                       if( response.query.pageids[0] === "-1" ) {
+                               return null;
+                       }
+                       bs.util.alert(
+                               me.getId()+'-existswarning',
+                               {
+                                       titleMsg: 'bs-extjs-title-warning',
+                                       text: 
response.query.pages[response.query.pageids[0]]
+                                               .imageinfo[0]
+                                               .html
+                               },
+                               {
+                                       ok: function() {
+                                               //User is noticed. Now let's 
set the
+                                               //ignore warnings flag 
automatically
+                                               me.cbxWarnings.setValue(true);
+                                       },
+                                       scope: me
                                }
-                       },
-                       scope: this
+                       );
                });
        },
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia785ab9ad839cbf93c6de0a6fdbf15056595c08f
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Pwirth <wi...@hallowelt.biz>
Gerrit-Reviewer: Mglaser <gla...@hallowelt.biz>
Gerrit-Reviewer: Robert Vogel <vo...@hallowelt.biz>
Gerrit-Reviewer: Tweichart <weich...@hallowelt.biz>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to