Matthias Mullie has uploaded a new change for review.

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

Change subject: Make lockTopic use _flowBoardComponentRefreshTopic
......................................................................

Make lockTopic use _flowBoardComponentRefreshTopic

It was already doing exactly what _flowBoardComponentRefreshTopic
does now, because it couldn't "just" make the write API respond
with what frontend needed.

Bug: T95773
Change-Id: I221d2f032c824c309b0ce9f9dcdc83bdbb61587f
---
M modules/engine/components/board/base/flow-board-api-events.js
1 file changed, 5 insertions(+), 58 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow 
refs/changes/22/203822/1

diff --git a/modules/engine/components/board/base/flow-board-api-events.js 
b/modules/engine/components/board/base/flow-board-api-events.js
index b465352..94df082 100644
--- a/modules/engine/components/board/base/flow-board-api-events.js
+++ b/modules/engine/components/board/base/flow-board-api-events.js
@@ -368,68 +368,15 @@
         * @returns {$.Promise}
         */
        FlowBoardComponentApiEventsMixin.UI.events.apiHandlers.lockTopic = 
function ( info, data ) {
-               var $replacement,
-                       $target = info.$target,
-                       $this = $( this ),
-                       $deferred = $.Deferred(),
-                       flowBoard = mw.flow.getPrototypeMethod( 'board', 
'getInstanceByElement' )( $this ),
-                       flowId = $this.closest( '.flow-topic' ).data( 'flow-id' 
);
-
                if ( info.status !== 'done' ) {
                        // Error will be displayed by default & edit conflict 
handled, nothing else to wrap up
-                       return $deferred.reject().promise();
+                       return $.Deferred().reject().promise();
                }
 
-               // We couldn't make lock-topic to return topic data after a 
successful
-               // post submission because lock-topic is used for no-js support 
as well.
-               // If we make it return topic data, that means it has to return 
wikitext format
-               // for edit form in no-js mode.  This is a performance problem 
for wikitext
-               // conversion since topic data returns all children data as 
well.  So we need to
-               // make lock-topic return a single post for topic then fire
-               // another request to topic data in html format
-               //
-               // @todo the html could json encode the parameters including 
topics, the js
-               // could then import that and continuously update it with new 
revisions from
-               // api calls.  Rendering a topic would then just be pointing 
the template at
-               // the right part of that data instead of requesting it.
-               flowBoard.Api.apiCall( {
-                       action: 'flow',
-                       submodule: 'view-topic',
-                       workflow: flowId,
-                       // Flow topic title, in Topic:<topicId> format (2600 is 
topic namespace id)
-                       page: mw.Title.newFromText( flowId, 2600 
).getPrefixedDb()
-                       // @todo fixme
-                       // - mw.Title.newFromText can return null. If you're 
not going to check its return
-                       //   value, use 'new mw.Title' instead so that you get 
an exception for 'invalid title'
-                       //   instead of an exception for 'property of null'.
-                       // - The second parameter to mw.Title is 
'defaultNamespace' not 'namespace'.
-                       //   E.g. mw.Title.newFromText( 'User:Example', 6 ) -> 
'User:Example', not 'File:
-                       //   If you need to prefix/enforce a namespace, use the 
canonical prefix instead.
-               } ).done( function( result ) {
-                       // Update view of the full topic
-                       $replacement = $( 
flowBoard.constructor.static.TemplateEngine.processTemplateGetFragment(
-                               'flow_topiclist_loop.partial',
-                               result.flow['view-topic'].result.topic
-                       ) ).children();
-
-                       $target.replaceWith( $replacement );
-                       flowBoard.emitWithReturn( 'makeContentInteractive', 
$replacement );
-
-                       $deferred.resolve();
-               } ).fail( function( code, result ) {
-                       /*
-                        * At this point, the lock/unlock actually worked, but 
failed
-                        * fetching the new data to be displayed.
-                        */
-                       flowBoard.emitWithReturn( 'removeError', $target );
-                       var errorMsg = 
flowBoard.constructor.static.getApiErrorMessage( code, result );
-                       errorMsg = mw.msg( 'flow-error-fetch-after-open-lock', 
errorMsg );
-                       flowBoard.emitWithReturn( 'showError', $target, 
errorMsg );
-
-                       $deferred.reject();
-               } );
-
-               return $deferred.promise();
+               return _flowBoardComponentRefreshTopic(
+                       info.$target,
+                       $( this ).closest( '.flow-topic' ).data( 'flow-id' )
+               );
        };
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I221d2f032c824c309b0ce9f9dcdc83bdbb61587f
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Matthias Mullie <mmul...@wikimedia.org>

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

Reply via email to