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

MediaWiki:Gadget-tikuWebPageTempModule.js:修订间差异

MediaWiki界面页面
无编辑摘要
无编辑摘要
第8行: 第8行:
     if(data.error === undefined){
     if(data.error === undefined){
     var unzipped = unzip(decodeURIComponent(data.result.tikugettempdata['work_data']))
     var unzipped = unzip(decodeURIComponent(data.result.tikugettempdata['work_data']))
    console.log(data.result.tikugettempdata['work_data'])
     sWebPageResultSync(JSON.parse(unzipped))
     sWebPageResultSync(JSON.parse(unzipped))
     mw.notify($('<p>已恢复 '+data.result.tikugettempdata['work_time']+' 的记录<br>如需重新开始,请点击工具栏<b>刷新</b>按钮</p>'),
     mw.notify($('<p>已恢复 '+data.result.tikugettempdata['work_time']+' 的记录<br>如需重新开始,请点击工具栏<b>刷新</b>按钮</p>'),
第48行: 第47行:
var api = new mw.Api();
var api = new mw.Api();
var token = api.getToken('csrf').done(function(token){
var token = api.getToken('csrf').done(function(token){
console.log(token)
api.post( {
api.post( {
"action": "tikuupdatetempdata",
"action": "tikuupdatetempdata",
第56行: 第54行:
"token": token
"token": token
    } ).done( function ( data ) {
    } ).done( function ( data ) {
    console.log(zippedData)
    console.log(unzip(zippedData))
    processUploadResult(data, message)
    processUploadResult(data, message)
    })
    })

2023年6月29日 (四) 16:47的版本

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(decodeURIComponent(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();
	var token = api.getToken('csrf').done(function(token){
		api.post( {
			"action": "tikuupdatetempdata",
			"format": "json",
			"title": title,
			"datagz": encodeURIComponent(zippedData),
			"token": token
	    } ).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]
	}
}