@@ -252,19 +252,24 @@ Twinkle.warn.callback = function twinklewarnCallback() {
252
252
}
253
253
}
254
254
255
- var init = function ( ) {
256
- // We must init the first choice (General Note);
257
- var evt = document . createEvent ( 'Event' ) ;
258
- evt . initEvent ( 'change' , true , true ) ;
259
- result . main_group . dispatchEvent ( evt ) ;
260
- } ;
261
255
262
- Morebits . wiki . flow . check ( 'User_talk:' + Morebits . wiki . flow . relevantUserName ( ) , function ( ) {
263
- Twinkle . warn . isFlow = true ;
264
- init ( ) ;
265
- } , function ( ) {
266
- Twinkle . warn . isFlow = false ;
267
- init ( ) ;
256
+ // init after user info fetched
257
+ Twinkle . block . fetchUserInfo ( function ( ) {
258
+ var init = function ( ) {
259
+ // We must init the first choice (General Note);
260
+ var evt = document . createEvent ( 'Event' ) ;
261
+ evt . initEvent ( 'change' , true , true ) ;
262
+ result . main_group . dispatchEvent ( evt ) ;
263
+ } ;
264
+
265
+ Morebits . wiki . flow . check ( 'User_talk:' + Morebits . wiki . flow . relevantUserName ( ) , function ( ) {
266
+ Twinkle . warn . isFlow = true ;
267
+ init ( ) ;
268
+ } , function ( ) {
269
+ Twinkle . warn . isFlow = false ;
270
+ init ( ) ;
271
+ } ) ;
272
+
268
273
} ) ;
269
274
} ;
270
275
@@ -2620,19 +2625,72 @@ Twinkle.warn.callback.evaluate = function twinklewarnCallbackEvaluate(e) {
2620
2625
Morebits . simpleWindow . setButtonsEnabled ( false ) ;
2621
2626
Morebits . status . init ( e . target ) ;
2622
2627
2623
- Morebits . wiki . actionCompleted . redirect = userTalkPage ;
2624
- Morebits . wiki . actionCompleted . notice = wgULS ( '警告完成,将在几秒后刷新' , '警告完成,將在幾秒後重新整理' ) ;
2625
-
2626
- if ( Twinkle . warn . isFlow ) {
2627
- var flow_page = new Morebits . wiki . flow ( userTalkPage , wgULS ( '用户Flow讨论页留言' , '使用者Flow討論頁留言' ) ) ;
2628
- flow_page . setCallbackParameters ( params ) ;
2629
- Twinkle . warn . callbacks . main_flow ( flow_page ) ;
2628
+ var query = {
2629
+ format : 'json' ,
2630
+ action : 'query' ,
2631
+ list : 'blocks|logevents' ,
2632
+ letype : 'block' ,
2633
+ lelimit : 1 ,
2634
+ letitle : 'User:' + Morebits . wiki . flow . relevantUserName ( )
2635
+ } ;
2636
+ if ( Morebits . isIPRange ( Morebits . wiki . flow . relevantUserName ( ) ) ) {
2637
+ query . bkip = Morebits . wiki . flow . relevantUserName ( ) ;
2630
2638
} else {
2631
- var wikipedia_page = new Morebits . wiki . page ( userTalkPage , wgULS ( '用户讨论页修改' , '使用者討論頁修改' ) ) ;
2632
- wikipedia_page . setCallbackParameters ( params ) ;
2633
- wikipedia_page . setFollowRedirect ( true , false ) ;
2634
- wikipedia_page . load ( Twinkle . warn . callbacks . main ) ;
2639
+ query . bkusers = Morebits . wiki . flow . relevantUserName ( ) ;
2635
2640
}
2641
+
2642
+ new mw . Api ( ) . get ( query ) . then ( function ( data ) {
2643
+ var block = data . query . blocks [ 0 ] ;
2644
+ var logevents = data . query . logevents [ 0 ] ;
2645
+ var logid = data . query . logevents . length ? logevents . logid : false ;
2646
+
2647
+ if ( logid !== Twinkle . block . blockLogId || ! ! block !== ! ! Twinkle . block . currentBlockInfo ) {
2648
+ var message = mw . config . get ( 'wgRelevantUserName' ) + wgULS ( '的封禁状态已被修改。' , '的封鎖狀態已被修改。' ) ;
2649
+ if ( block ) {
2650
+ message += wgULS ( '新状态:' , '新狀態:' ) ;
2651
+ } else {
2652
+ message += wgULS ( '最新日志:' , '最新日誌:' ) ;
2653
+ }
2654
+
2655
+ var logExpiry = '' ;
2656
+ var blockActionText = {
2657
+ 'block' : wgULS ( '封禁' , '封鎖' ) ,
2658
+ 'reblock' : wgULS ( '重新封禁' , '重新封鎖' ) ,
2659
+ 'unblock' : wgULS ( '解除封禁' , '解除封鎖' )
2660
+ } ;
2661
+
2662
+ if ( logevents . params . duration ) {
2663
+ if ( logevents . params . duration === 'infinity' ) {
2664
+ logExpiry = wgULS ( '无限期' , '無限期' ) ;
2665
+ } else {
2666
+ var expiryDate = new Morebits . date ( logevents . params . expiry ) ;
2667
+ logExpiry += '到' + expiryDate . calendar ( ) ;
2668
+ }
2669
+ } else { // no duration, action=unblock, just show timestamp
2670
+ logExpiry = '於' + new Morebits . date ( logevents . timestamp ) . calendar ( ) ;
2671
+ }
2672
+ message += '由' + logevents . user + wgULS ( '以“' , '以「' ) + logevents . comment + wgULS ( '”' , '」' ) +
2673
+ blockActionText [ logevents . action ] + logExpiry + wgULS ( ',你想要继续发送警告吗?' , ',你想要繼續發送警告嗎?' ) ;
2674
+
2675
+ if ( ! confirm ( message ) ) {
2676
+ Morebits . status . error ( wgULS ( '发送警告' , '發送警告' ) , wgULS ( '用户取消操作' , '使用者取消操作' ) ) ;
2677
+ return ;
2678
+ }
2679
+ }
2680
+ Morebits . wiki . actionCompleted . redirect = userTalkPage ;
2681
+ Morebits . wiki . actionCompleted . notice = wgULS ( '警告完成,将在几秒后刷新' , '警告完成,將在幾秒後重新整理' ) ;
2682
+
2683
+ if ( Twinkle . warn . isFlow ) {
2684
+ var flow_page = new Morebits . wiki . flow ( userTalkPage , wgULS ( '用户Flow讨论页留言' , '使用者Flow討論頁留言' ) ) ;
2685
+ flow_page . setCallbackParameters ( params ) ;
2686
+ Twinkle . warn . callbacks . main_flow ( flow_page ) ;
2687
+ } else {
2688
+ var wikipedia_page = new Morebits . wiki . page ( userTalkPage , wgULS ( '用户讨论页修改' , '使用者討論頁修改' ) ) ;
2689
+ wikipedia_page . setCallbackParameters ( params ) ;
2690
+ wikipedia_page . setFollowRedirect ( true , false ) ;
2691
+ wikipedia_page . load ( Twinkle . warn . callbacks . main ) ;
2692
+ }
2693
+ } ) ;
2636
2694
} ;
2637
2695
2638
2696
Twinkle . addInitCallback ( Twinkle . warn , 'warn' ) ;
0 commit comments