MediaWiki:AdoptWikiTool/code.js

/* To dev wiki users : This javascript is from http://zh.community.wikia.com/wiki/MediaWiki:Adopt-tool.js Initially, it was only used to help Chinese users submit adoption applications. But as an author, I'm not very good at javascript. The script wasn't written very well.I hope more experienced people can help me improve it. If you have a better idea, no need leave me a message, just edit it directly. If you'd like to, I'd be very, very grateful to you! /******************************************************* $(function {  //表格内容  var adoptform = ' ' +  ' 社区名称 要领养社区的名称  ' +  ' 社区域名 只写子域名不要填完整网址，一般中文社区语言路径为zh，可以不用修改  https:// .fandom.com/ ' +  ' 编辑次数 您在此社区的编辑次数  ' +  ' 编辑天数 您已经在此社区编辑多长时间了  ' +  ' 最后操作 最后有过操作的管理员，最后一次操作是什么时候  ' +  ' 其他留言  ' +  '  还有项目未正确填写哦，DESU～    ' +  ' Powerd by Adopt wiki tool 作者：过气的小鱼君 | 来自：社区中心 ' + ' '; //添加申请按钮 var adoptstart = '' + ' 填写领养表格 ' + ''; if (wgNamespaceNumber == '112' || wgPageName == 'MediaWiki:Adopt-tool.js' || wgPageName == 'MediaWiki:AdoptWikiTool/code.js') { $('.page-header__contribution-buttons').append(adoptstart); } $('.adopt-wiki').html(adoptstart); //弹窗设置 var CustomModalHeader = '领养wiki申请表'; var CustomModalBody = adoptform; //调出弹窗 $('.adopt-btn').click(function {    //拒绝重复按键    if ($('#adopt-form').length > 0) {      location.href = '#adopt-tool-popup'    } else {      //变量      var wikiname,      wikiurl,      wikilang,      lastsysop,      editnumber,      edittime,      another;      $.showCustomModal(CustomModalHeader, CustomModalBody, { id: 'adopt-tool-popup', width: 600, buttons: [ {           id: 'adopt-tool-popup-cancel', message: '取消', handler: function { var cancelconfirm = confirm('确定要放弃吗？'); if (cancelconfirm) { $('#adopt-tool-popup').closeModal; $('#modal-bg').remove; }           }          },          {            defaultButton: true, id: 'adopt-tool-popup-submit', message: '提交' },       ]      });      //移除原生背景，新增蒙版      $('.blackout').remove;      $('body').prepend($(' ').css({        'width': '100%',        'height': '100%',        'position': 'fixed',        'z-index': '5000200',        'background': 'rgba(255,255,255,0.7)'      }).attr('id', 'modal-bg') );     //移除原生关闭按钮      $('#adopt-tool-popup').prepend('' + '<img src="https://slot1-images.wikia.nocookie.net/__cb8150048150012/common/skins/oasis/images/icon_close.png">' + ' '     );      $('#adopt-tool-popup-close').click(function  { var cancelconfirm = confirm('确定要放弃吗？'); if (cancelconfirm) { $('#adopt-tool-popup').closeModal; $('#modal-bg').remove; }     });      //针对手机或者低分辨率屏幕调整      if ($(window).width < 850) {        $('#adopt-tool-popup').css({ 'width': $(document).width * 0.8, 'height': 'auto' }).offset({ left: $(document).width / 10 });     };      //开始监控表单      $('#adopt-tool-popup-submit').unbind.attr('disabled', '');      $('#adopt-form').keyup(function  { wikiname = $('#adopt-form #wikiname').val; wikilang = $('#adopt-form #wikilang').val; if (wikilang == '') { wikiurl = 'https://' + $('#adopt-form #wikiurl').val + '.fandom.com'; } else { wikiurl = 'https://' + $('#adopt-form #wikiurl').val + '.fandom.com/' + wikilang; }       edittime = $('#adopt-form #edittime').val; editnumber = $('#adopt-form #editnumber').val; lastsysop = $('#adopt-form #lastsysop').val; another = $('#adopt-form #another').val; //过滤器 if (wikiname ===  || wikiurl ===  || wikiurl === 'https://example.fandom.com/zh' || lastsysop ===  || edittime ===  || editnumber === '') { $('#adopt-tool-popup-submit').unbind.attr('disabled', ''); $('#adopt-form #submit-note').html(' 还有项目未正确填写哦，DESU～ '); } else { $('#adopt-form #submit-note').html(' 确认信息无误就可以选择提交啦，DESU！ '); //提交数据，开始创建页面 $('#adopt-tool-popup #adopt-tool-popup-submit').attr('disabled', false).click(function {            new mw.Api.post({ action: 'edit', createonly: 'true', title: '领养:' + wikiname, summary: '领养申请:' + wikiname + '//Powered by Adopt wiki tool', text: ' 领养维基申請頁面 → \n\n==申请信息==\n请输入这个维基的链接：' + wikiurl + '\n\n请问您在这个维基上编辑了多少次？' + editnumber + '\n\n请问您在这个维基上编辑了多少天？' + edittime + '\n\n在特殊页面 → [' + wikiurl + '/Special:ListUsers 用户列表] 中，距离最近一次的管理员编辑是什么时候？' + lastsysop + '\n\n其他信息：' + another + '\n\n申请者：' + ' \n\n申请者查核:\n\n==领养状态==\n:', //页面内容 token: mw.user.tokens.get('editToken') }).done(function { alert('提交成功DESU！\n请等待FANDOM员工处理哦DESU！'); //成功后提示 window.location.href = '/wiki/领养:' + wikiname; //打开填写的页面 }).fail(function { alert('提交失败！可能原因:\n 1.您未登录账号或您还不是自动确认用户. 这种情况下您将没有资格领养社区\n 2.您创建的页面已存在. 请尝试在页面名后添加数字，例如:' + wikiname + '(1)\n 3.网络出现问题或脚本出现问题. 请使用传统方法手动创建页面'); });         });        }      });    }  }); }); //import css importArticles({ type: 'style', articles: [ 'u:dev:AdoptWikiTool/code.css' ] });
 * 领养社区申请表-插件 (Adopt wiki tool)
 * 作者：机智的小鱼君
 * 日志：
 * 2018年5月7日 (一) 04:23 (UTC)：post到common.js测试效果
 * 2018年5月8日 (二) 02:29 (UTC)：正在测试monobook的支持 ❌
 * 2018年5月9日 (三) 06:46 (UTC)：增加取消功能，是的，终于可以取消了，妈妈再也不用担心我手滑了
 * 2018年5月9日 (三) 09:21 (UTC)：成功后提示并打开页面，非常厉害吧
 * 2018年5月10日 (四) 10:33 (UTC)：允许中途取消，妈妈再也不用担心我手滑了还要点一堆取消了
 * 2018年12月14日 (五) 06:36 (UTC)：全面升级为表单
 * 2018年12月14日 (五) 07:03 (UTC)：在特殊页面增加表单 ❌
 * 2018年12月21日 (五) 17:55 (UTC)：更新url过滤器 ❌
 * 2019年2月28日 (四) 07:39 (UTC)：重写加载方式为oasis弹窗
 * 2019年3月1日 (五) 11:31 (UTC)：响应式设计
 * 2019年3月1日 (五) 13:34 (UTC)：重写过滤器，修复了“提交”按钮的事件处理器绑定BUG