打开/关闭菜单
Toggle preferences menu
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

MediaWiki:Gadget-tikuWebPageTempModule.js

MediaWiki界面页面

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
function tikuWebPageTempMain(pageName){
	var api = new mw.Api();
	api.get( {
    	"action": "tikugettempdata",
		"format": "json",
		"title": pageName
    } ).done( function ( data ) {
    	if(data.error === undefined){
    		var unzipped = unzip(data.result.tikugettempdata['work_data'])
    		sWebPageResultSync(JSON.parse(unzipped))
    		mw.notify($('<p>已恢复 '+data.result.tikugettempdata['work_time']+' 的记录<br>如需重新开始,请点击工具栏<b>刷新</b>按钮</p>'),
			 	{ title:'同步成功', 
				autoHideSeconds:'4',
				type:'info'
			 } 
			 );
			fillInTheInput(JSON.parse(unzipped))
    	}
    })
}
function fillInTheInput(data){
	for(var i in data){
		var type = data[i].type
		var answer
		if( type === 'A' || type === 'A2' || type === 'A3' || type === 'PD' ){
			answer = data[i].result.currentAnswer[0]
			fillRadio(i,answer)
		}else if(type ==='X'){
			answer = data[i].result.currentAnswer
			fillCheckbox(i,answer)
		}else if(type === 'B' || type === 'C'){
			answer = data[i].result.currentAnswer
			fillSelect(i,answer)
		}else if(type === 'A3'){
			answer = data[i].result.currentAnswer
			fillA3Radio(i,answer)
		}else if(type === 'TK' || type === 'MJ'){
			answer = data[i].result.currentAnswer
			fillText(i,answer)
		}
	}
}
function uploadWebPageTemp(message){
	var title = mw.config.get(['wgPageName']).wgPageName
	var data = gWebPageResultSync()=== undefined || gWebPageResultSync()===null?{}:gWebPageResultSync()
	var zippedData = zip(JSON.stringify(data))
	var api = new mw.Api();
    api.postWithToken('csrf', {
			"action": "tikuupdatetempdata",
			"format": "json",
			"title": title,
			"datagz": zippedData,
	    }).done(function (data) {
        processUploadResult(data, message)
    });
}
function processUploadResult(data,message){
	var result = data.result.tikuupdatetempdata
	var actionMessage = ''
	if(data.error === undefined){
		var type = data.action
		actionMessage = type==='insert'?'插入':'更新'
	}
	mw.notify(message, { title: actionMessage, tag:'tempUploadNotify', type:'info' } );
}
function formChangeListener(id, type){
	console.log(gWebPageResultSync())
	var changeValue
	var sessionStorage = gWebPageResultSync()=== undefined || gWebPageResultSync()===null?{}: gWebPageResultSync()
	var data = sessionStorage[id]===undefined? {
		type:type,
		result:{
			done:false,
			right:false,
			currentAnswer:[]
		}
	} : sessionStorage[id]
	if(type==='X'){
		changeValue = getCheckBoxValue('checkbox-'+id).sort()
		data.result.currentAnswer = changeValue
		sessionStorage[id] = data
	}else{
		changeValue = getSelectedAnswer(id)
		var currentAnswer = []
		for(var i in changeValue){
			if(type==='A3'){console.log(i)}
			var answer = changeValue[i]
			currentAnswer.push(answer)
		}
		data.result.currentAnswer = currentAnswer
		sessionStorage[id] = data
	}
	sWebPageResultSync(sessionStorage)
	console.log(gWebPageResultSync())
	uploadWebPageTemp('已暂存id为:'+id+'的题目,选项:'+data.result.currentAnswer.join(','))
}
//从input的name中提取信息
function decodeName(name){
	var split = name.split(/\-/g)
	return {
		inputType:split[0],
		id:split[1],
		subId:split[2]===undefined?'':split[2],
		fullId:split[2]===undefined?split[1]:split[1]+'-'+split[2]
	}
}