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

MediaWiki:Gadget-tikuToolBar.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 toolBarMain(){
	var settings = gWebPageTimuSettings()
	var tikuBarMain = $('<div class="timu-toolbar"></div>')
	var bar = $('<div class="timu-toolbar-toggle"> </div>')
	var toggle = $('<div class="timu-toggle-btn"></div>')
	var btnToggle = new OO.ui.ToggleButtonWidget( {
			label: '隐藏'
		} )
	btnToggle.$element.children('a').on('click',function(){
		console.log(111)
		var label = btnToggle.getLabel()==='隐藏'?'打开':'隐藏'
		btnToggle.setLabel(label)
		bar.fadeToggle('1000')
	})
	
	var btnReload = new OO.ui.ButtonWidget( {
			label: '刷新',
			classes:['tiku-toolbar-btn'],
			icon: 'reload',
			flags: [
				'primary',
				'destructive'
			]
		} )
	btnReload.$element.on('click',function(){
		toolbarConfrimReload()
	})
	
	//如果noTemp 是 undefined 或者 0 都等于启动
	var noautotemp = settings.noTemp
	var noTemp = noautotemp === false || noautotemp === undefined ? false:true
	var noTempBtnLabel = noTemp ? '暂存 关':'暂存 开'
	var btnSwitchAutoTemp = new OO.ui.ToggleButtonWidget( {
		label: noTempBtnLabel,
		classes:['tiku-toolbar-btn'],
		value: !noTemp,
		disabled: settings.userId === '0' //如果未登陆禁止点击
	} )
	if(settings.userId !== '0'){
		btnSwitchAutoTemp.$element.children('a').on('click',function(){
			btnSwitchAutoTemp.setDisabled(true)
			switchAutoTemp(btnSwitchAutoTemp)
		})
	}

	toggle.append(btnToggle.$element)
	bar.append(btnReload.$element,btnSwitchAutoTemp.$element)
	tikuBarMain.append(toggle,bar)
	$('.mw-parser-output').prepend(	tikuBarMain)
}


// btn functions
function toolbarConfrimReload(){
	var messageDialog = new OO.ui.MessageDialog();
	messageDialog.getActionProcess = function ( action ) {
		var dialog = this;
		if ( action === 'confirm' ) {
			sWebPageResultSync({})
			uploadWebPageTemp('已清除本页暂存信息')
			$('.timuContainer').remove()
			renderTimuFromSessionStorage()
		}
		if ( action ) {
			return new OO.ui.Process( function () {
				dialog.close( {
					action: action
				} );
			} );
		}
		
	};
	// Create and append a window manager.
	var windowManager = new OO.ui.WindowManager();
	$( 'body' ).append( windowManager.$element );
	windowManager.addWindows( [ messageDialog ] );
	// Open the window.
	windowManager.openWindow( messageDialog, {
		title: '确认刷新本页题目?',
		message: '刷新会重置本次做题信息和暂存内容',
		actions:[
			{ action: 'confirm', label: '确认', flags: 'primary' },
			{ action: 'close', label: '取消', flags: 'safe' }]
	} );
	
}

function switchAutoTemp(btn){
	var noTemp = gWebPageTimuSettings().noTemp
	var setTo = noTemp ? 0:1
	var labelChangeTo = noTemp === true ? '暂存 开':'暂存 关'
	var chineseName = setTo === 0 ? '开启':'关闭'
	btn.setLabel(labelChangeTo)
	setPreference('tiku-temp-noautotemp', setTo).done(function(){
		btn.setDisabled(false)
		getTikuSettingFromMediawiki()
		mw.notify(
				'已'+chineseName+'暂存',
				{ title:'设置更新', 
				autoHideSeconds:'4',
				tag:'settings-update'
			} 
		);
	})
	
}

function getPreference(){
	var api = new mw.Api();
	return api.get( {
		"action": "query",
		"format": "json",
		"meta": "userinfo",
		"uiprop": "options"
	} )
}

function setPreference(option, value){
	const params = {
		action: 'options',
		optionname: option,
		optionvalue: value,
		format: 'json'
	},
	api = new mw.Api();
	return api.postWithToken('csrf', params)
}