Jack Phoenix has submitted this change and it was merged.

Change subject: updated AJAXPoll to work with MW 1.24
......................................................................


updated AJAXPoll to work with MW 1.24

replaced .live() calls with .on()

wrapped all handlers in a function so they can be reapplied after the page is 
updated via the ajax call.

replaced sajax_do_call() that was generating a bunch of deprecation errors. I 
replaced it with the method outlined here:

https://www.mediawiki.org/wiki/ResourceLoader/Legacy_JavaScript

Bug: T86573

Change-Id: I44538be1a8e42bd53a2107e3724686ae184599e3
---
M resources/ajaxpoll.js
1 file changed, 72 insertions(+), 62 deletions(-)

Approvals:
  Jack Phoenix: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/ajaxpoll.js b/resources/ajaxpoll.js
index 4857b54..75ca7f4 100644
--- a/resources/ajaxpoll.js
+++ b/resources/ajaxpoll.js
@@ -1,67 +1,77 @@
 var ajaxpollTmp;
 
-$(".ajaxpoll-answer-vote").on("mouseover",
-       function(){
-               var sp=$(this).find("span");
-               ajaxpollTmp=sp.html();
-               sp.text(sp.attr("title"));
-               sp.attr("title","");
-       }
-);
-
-$(".ajaxpoll-answer-vote").on("mouseout",
-       function(){
-               var sp=$(this).find("span");
-               sp.attr("title",sp.text());
-               sp.text(ajaxpollTmp);
-       }
-);
-
-/* attach click handler */
-$(".ajaxpoll-answer-name label")
-       .on("click",
-               function(event){
-                       event.preventDefault();
-                       event.stopPropagation();
-                       $this = $(this).parent().parent();
-                       var poll = $this.attr( "poll" );
-                       var answer = $this.attr( "answer" );
-                       var token = 
$this.parent().find("input[name='ajaxPollToken']").val();
-                       
$this.find(".ajaxpoll-hover-vote").addClass("ajaxpoll-checkevent");
-                       $this.find("input").prop("checked","checked");
-                       $( "#ajaxpoll-ajax-"+poll )
-                               .text( mw.message( 'ajaxpoll-submitting' 
).text() )
-                               .css("display","inline-block");
-                       if (useAjax){
-                               sajax_do_call(
-                                       "AJAXPoll::submitVote",
-                                       [poll,answer,token],
-                                       $("#ajaxpoll-container-"+poll)[0]
-                               )
-                       } else {
-                               $("#ajaxpoll-answer-id-"+poll).submit();
-                       }
+var setupEventHandlers = function(){
+       $(".ajaxpoll-answer-vote").on("mouseover",
+               function(){
+                       var sp=$(this).find("span");
+                       ajaxpollTmp=sp.html();
+                       sp.text(sp.attr("title"));
+                       sp.attr("title","");
                }
-       )
+       );
 
-$(".ajaxpoll-answer-name:not(.ajaxpoll-answer-name-revoke) 
label").on("mouseover",
-       function(){
-               $(this).addClass("ajaxpoll-hover-vote");
-       }
-);
-$(".ajaxpoll-answer-name:not(.ajaxpoll-answer-name-revoke) 
label").on("mouseout",
-       function(){
-               $(this).removeClass("ajaxpoll-hover-vote");
-       }
-);
+       $(".ajaxpoll-answer-vote").on("mouseout",
+               function(){
+                       var sp=$(this).find("span");
+                       sp.attr("title",sp.text());
+                       sp.text(ajaxpollTmp);
+               }
+       );
 
-$(".ajaxpoll-answer-name-revoke label").on("mouseover",
-       function(){
-               $(this).addClass("ajaxpoll-hover-revoke");
-       }
-);
-$(".ajaxpoll-answer-name-revoke label").on("mouseout",
-       function(){
-               $(this).removeClass("ajaxpoll-hover-revoke");
-       }
-);
+       /* attach click handler */
+       $(".ajaxpoll-answer-name label")
+               .on("click",
+                       function(event){
+                               event.preventDefault();
+                               event.stopPropagation();
+                               $this = $(this).parent().parent();
+                               var poll = $this.attr( "poll" );
+                               var answer = $this.attr( "answer" );
+                               var token = 
$this.parent().find("input[name='ajaxPollToken']").val();
+                               
$this.find(".ajaxpoll-hover-vote").addClass("ajaxpoll-checkevent");
+                               $this.find("input").prop("checked","checked");
+                               $( "#ajaxpoll-ajax-"+poll )
+                                       .text( mw.message( 
'ajaxpoll-submitting' ).text() )
+                                       .css("display","inline-block");
+                               if (useAjax){
+                                       $.get(
+                                               mw.util.wikiScript(),
+                                               {
+                                                       action: 'ajax',
+                                                       rs:     
"AJAXPoll::submitVote",
+                                                       rsargs: 
[poll,answer,token]
+                                               },
+                                               function(newHTML){
+                                                       
$("#ajaxpoll-container-"+poll).html(newHTML);
+                                                       setupEventHandlers();
+                                               }
+                                       );      
+                               } else {
+                                       $("#ajaxpoll-answer-id-"+poll).submit();
+                               }
+                       }
+               )
+
+       $(".ajaxpoll-answer-name:not(.ajaxpoll-answer-name-revoke) 
label").on("mouseover",
+               function(){
+                       $(this).addClass("ajaxpoll-hover-vote");
+               }
+       );
+       $(".ajaxpoll-answer-name:not(.ajaxpoll-answer-name-revoke) 
label").on("mouseout",
+               function(){
+                       $(this).removeClass("ajaxpoll-hover-vote");
+               }
+       );
+
+       $(".ajaxpoll-answer-name-revoke label").on("mouseover", 
+               function(){
+                       $(this).addClass("ajaxpoll-hover-revoke");
+               }
+       );
+       $(".ajaxpoll-answer-name-revoke label").on("mouseout", 
+               function(){
+                       $(this).removeClass("ajaxpoll-hover-revoke");
+               }
+       );
+}
+setupEventHandlers();
\ No newline at end of file

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I44538be1a8e42bd53a2107e3724686ae184599e3
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/AJAXPoll
Gerrit-Branch: master
Gerrit-Owner: TakahashiNZ <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to