MediaWiki:Gadget-EditDraft.js

H萌娘,万物皆可H的百科全书!
跳到导航 跳到搜索

注意:这类代码页面在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

/*
	这是一个保存编辑内容的小插件,载入后将在点击“提交编辑、显示预览、显示更改”中任意一个按钮时备份当前的编辑。当存在备份时,“还原备份”按钮变为可以点击。
	备份将保存到您的浏览器缓存,只会保存7天,7天后自动清除。
*/
$(function(){
  if(! /action=(edit|submit)/.test(location.href)){ return }

  var editBox = $('#wpTextbox1'),
  btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget'),
  title = decodeURIComponent(location.search.match(/title=([^&]+)/)[1]),
  backupList = JSON.parse(localStorage.getItem('Moegirl-koharubiyori-editBackup') || '{}')
  
  $.each(backupList, function(key, val){
  	var time = new Date().getTime()
  	if(val.expires < time){
  		delete backupList[key]
  	}
  })

	setTimeout(function(){
	  var backup = backupList[title]
	  if(backup){
		var btn = $('<span class="oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget"><input type="button" value="还原备份" class="oo-ui-inputWidget-input oo-ui-buttonElement-button" /></span>')
		.click(function(){ 
			editBox.val(backup.content)
	    	mw.notify('备份还原好了,喵~', { type: 'warn' })     
		})    	
	  }else{
	  	var btn = $('<span class="oo-ui-widget oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget oo-ui-widget-disabled"><input type="button" value="还原备份" class="oo-ui-inputWidget-input oo-ui-buttonElement-button" disabled /></span>')
	  }
	  $('#wpDiffWidget').after(btn)
	})

  btns.mousedown(function(e){
      var content = editBox.val()
	  var expire = new Date().getTime() + 1000 * 60 * 60 * 24 * 7
	  backupList[title] = {
	  	expires : expire,
	  	content : content
	  }
	  localStorage.setItem('Moegirl-koharubiyori-editBackup', JSON.stringify(backupList))
  })
})