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

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

MediaWiki界面页面
无编辑摘要
无编辑摘要
 
(未显示同一用户的1个中间版本)
第7行: 第7行:
     } ).done( function ( data ) {
     } ).done( function ( data ) {
     if(data.error === undefined){
     if(data.error === undefined){
     var unzipped = unzip(decodeURIComponent(data.result.tikugettempdata['work_data']))
     var unzipped = unzip(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>'),
第46行: 第46行:
var zippedData = zip(JSON.stringify(data))
var zippedData = zip(JSON.stringify(data))
var api = new mw.Api();
var api = new mw.Api();
var token = api.getToken('csrf').done(function(token){
    api.postWithToken('csrf', {
api.post( {
"action": "tikuupdatetempdata",
"action": "tikuupdatetempdata",
"format": "json",
"format": "json",
"title": title,
"title": title,
"datagz": encodeURIComponent(zippedData),
"datagz": zippedData,
"token": token
    }).done(function (data) {
    } ).done( function ( data ) {
        processUploadResult(data, message)
    processUploadResult(data, message)
    });
    })
})
}
}
function processUploadResult(data,message){
function processUploadResult(data,message){

2023年6月30日 (五) 04:14的最新版本

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]
	}
}