746
edits
mNo edit summary |
mNo edit summary Tags: Mobile edit Mobile web edit |
||
(7 intermediate revisions by the same user not shown) | |||
Line 43: | Line 43: | ||
movePrompt: "您想移動至哪裡?請輸入以下選項之一:", // followed by the names of skins | movePrompt: "您想移動至哪裡?請輸入以下選項之一:", // followed by the names of skins | ||
normalizeSummary: "標準化腳本安裝", | normalizeSummary: "標準化腳本安裝", | ||
remoteUrlDesc: "從 $ | remoteUrlDesc: "從 $2 的 $1 開始讀取", | ||
panelHeader: "目前已安裝以下腳本:", | panelHeader: "目前已安裝以下腳本:", | ||
cannotInstall: "無法安裝", | cannotInstall: "無法安裝", | ||
Line 357: | Line 357: | ||
$( "<label>" ) | $( "<label>" ) | ||
.attr( "for", "siNormalize" ) | .attr( "for", "siNormalize" ) | ||
.text( ' | .text( '顯示“標準化”連結?' ), | ||
$( "<input>" ) | $( "<input>" ) | ||
.attr( { "id": "siMove", "type": "checkbox" } ) | .attr( { "id": "siMove", "type": "checkbox" } ) | ||
Line 365: | Line 365: | ||
$( "<label>" ) | $( "<label>" ) | ||
.attr( "for", "siMove" ) | .attr( "for", "siMove" ) | ||
.text( ' | .text( '顯示"移動"連結?' ) ) ); | ||
if( scriptCount > NUM_SCRIPTS_FOR_SEARCH ) { | if( scriptCount > NUM_SCRIPTS_FOR_SEARCH ) { | ||
container.append( $( "<div>" ) | container.append( $( "<div>" ) | ||
Line 372: | Line 372: | ||
$( "<label>" ) | $( "<label>" ) | ||
.attr( "for", "siQuickFilter" ) | .attr( "for", "siQuickFilter" ) | ||
.text( " | .text( "簡易過濾器:" ), | ||
$( "<input>" ) | $( "<input>" ) | ||
.attr( { "id": "siQuickFilter", "type": "text" } ) | .attr( { "id": "siQuickFilter", "type": "text" } ) | ||
Line 394: | Line 394: | ||
$.each( imports, function ( targetName, targetImports ) { | $.each( imports, function ( targetName, targetImports ) { | ||
var fmtTargetName = ( targetName === "common" | var fmtTargetName = ( targetName === "common" | ||
? "common ( | ? "common (適用於所有介面)" | ||
: targetName ); | : targetName ); | ||
if( targetImports.length ) { | if( targetImports.length ) { | ||
Line 405: | Line 405: | ||
" (", | " (", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( " | .text( "標準化" ) | ||
.click( function () { | .click( function () { | ||
normalize( targetName ).done( function () { | normalize( targetName ).done( function () { | ||
Line 425: | Line 425: | ||
" (", | " (", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( " | .text( "解除安裝" ) | ||
.click( function () { | .click( function () { | ||
$( this ).text( " | $( this ).text( "正在解除安裝..." ); | ||
anImport.uninstall().done( function () { | anImport.uninstall().done( function () { | ||
conditionalReload( true ); | conditionalReload( true ); | ||
Line 434: | Line 434: | ||
" | ", | " | ", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( anImport.disabled ? " | .text( anImport.disabled ? "啟用" : "取消啟用" ) | ||
.click( function () { | .click( function () { | ||
$( this ).text( $( this ).text().replace( /e$/, "ing" ) ); | $( this ).text( $( this ).text().replace( /e$/, "ing" ) ); | ||
Line 447: | Line 447: | ||
" | ", | " | ", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( " | .text( "移動" ) | ||
.click( function () { | .click( function () { | ||
var dest = null; | var dest = null; | ||
var PROMPT = " | var PROMPT = "目的地?輸入其中一個:" + SKINS.join( ", " ); | ||
do { | do { | ||
dest = ( window.prompt( PROMPT ) || "" ).toLowerCase(); | dest = ( window.prompt( PROMPT ) || "" ).toLowerCase(); | ||
} while( dest && SKINS.indexOf( dest ) < 0 ) | } while( dest && SKINS.indexOf( dest ) < 0 ) | ||
if( !dest ) return; | if( !dest ) return; | ||
$( this ).text( " | $( this ).text( "移動中" ); | ||
anImport.move( dest ).done( function () { | anImport.move( dest ).done( function () { | ||
conditionalReload( true ); | conditionalReload( true ); | ||
Line 486: | Line 486: | ||
var skinIndex = SKINS.indexOf( pageName.substring( prefixLength ).slice( 0, -3 ) ); | var skinIndex = SKINS.indexOf( pageName.substring( prefixLength ).slice( 0, -3 ) ); | ||
if( skinIndex >= 0 ) { | if( skinIndex >= 0 ) { | ||
return $( "<abbr>" ).text( " | return $( "<abbr>" ).text( "不能安裝" ) | ||
.attr( "title", " | .attr( "title", "此頁面是你的使用者自訂頁面之一,並且" + | ||
( ( skinIndex === 0 ) ? " | ( ( skinIndex === 0 ) ? "會" : "可能" ) + "已經在每個頁面加載時運行。" ); | ||
} | } | ||
} | } | ||
addingInstallLink = true; | addingInstallLink = true; | ||
} else { | } else { | ||
return $( "<abbr>" ).text( " | return $( "<abbr>" ).text( "不能安裝 (不是 JS)" ) | ||
.attr( "title", " | .attr( "title", "頁面內容模型是" + contentModel + ",不是'javascript'" ); | ||
} | } | ||
} | } | ||
Line 500: | Line 500: | ||
// Namespace 8 is MediaWiki | // Namespace 8 is MediaWiki | ||
if( namespaceNumber === 8 ) { | if( namespaceNumber === 8 ) { | ||
return $( "<a>" ).text( " | return $( "<a>" ).text( "經偏好設定安裝" ) | ||
.attr( "href", mw.util.getUrl( "Special:Preferences" ) + "#mw-prefsection-gadgets" ); | .attr( "href", mw.util.getUrl( "Special:Preferences" ) + "#mw-prefsection-gadgets" ); | ||
} | } | ||
Line 511: | Line 511: | ||
$( "<abbr>" ).append( | $( "<abbr>" ).append( | ||
$( "<img>" ).attr( "src", "https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Achtung-yellow.svg/20px-Achtung-yellow.svg.png" ).addClass( "warning" ), | $( "<img>" ).attr( "src", "https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Achtung-yellow.svg/20px-Achtung-yellow.svg.png" ).addClass( "warning" ), | ||
"( | "(不安全)" ) | ||
.attr( "title", " | .attr( "title", "不是User空間或MediaWiki空間的安裝"+ | ||
" | "受保護的頁面是臨時的,將來可能會被刪除。" ) ); | ||
addingInstallLink = true; | addingInstallLink = true; | ||
} | } | ||
Line 521: | Line 521: | ||
installElement.prepend( $( "<a>" ) | installElement.prepend( $( "<a>" ) | ||
.attr( "id", "script-installer-main-install" ) | .attr( "id", "script-installer-main-install" ) | ||
.text( localScriptsByName[ fixedPageName ] ? " | .text( localScriptsByName[ fixedPageName ] ? "取消安裝" : "安裝" ) | ||
.click( makeLocalInstallClickHandler( fixedPageName ) ) ); | .click( makeLocalInstallClickHandler( fixedPageName ) ) ); | ||
return installElement; | return installElement; | ||
} | } | ||
return $( "<abbr>" ).text( " | return $( "<abbr>" ).text( "不能安裝 (不安全)" ) | ||
.attr( "title", " | .attr( "title", "頁面不是位於用戶空間或MediaWiki空間,且未被保護" ); | ||
} | } | ||
Line 538: | Line 538: | ||
" | ", | " | ", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( " | .text( "管理用戶小工具" ).click( function () { | ||
if( !document.getElementById( "script-installer-panel" ) ) { | if( !document.getElementById( "script-installer-panel" ) ) { | ||
$( "#mw-content-text" ).before( makePanel() ); | $( "#mw-content-text" ).before( makePanel() ); | ||
Line 553: | Line 553: | ||
var scriptName = this.id; | var scriptName = this.id; | ||
$( this ).append( " | ", $( "<a>" ) | $( this ).append( " | ", $( "<a>" ) | ||
.text( localScriptsByName[ scriptName ] ? " | .text( localScriptsByName[ scriptName ] ? "解除安裝" : "安裝" ) | ||
.click( makeLocalInstallClickHandler( scriptName ) ) ); | .click( makeLocalInstallClickHandler( scriptName ) ) ); | ||
} ); | } ); | ||
Line 566: | Line 566: | ||
.append( $( "<button>" ) | .append( $( "<button>" ) | ||
.addClass( "mw-ui-button mw-ui-progressive mw-ui-big" ) | .addClass( "mw-ui-button mw-ui-progressive mw-ui-big" ) | ||
.text( localScriptsByName[ scriptName ] ? " | .text( localScriptsByName[ scriptName ] ? "解決安裝" : "安裝" ) | ||
.click( makeLocalInstallClickHandler( scriptName ) ) ) ) ); | .click( makeLocalInstallClickHandler( scriptName ) ) ) ) ); | ||
} ); | } ); | ||
Line 574: | Line 574: | ||
return function () { | return function () { | ||
var $this = $( this ); | var $this = $( this ); | ||
if( $this.text() === " | if( $this.text() === "安裝" ) { | ||
var okay = window.sciNoConfirm || window.confirm( "Warning! All user scripts could contain malicious content capable of compromising your account. Installing a script means it could be changed by others; make sure you trust its author. If you're unsure whether a script is safe, check at the technical village pump. Install this script? (Hide this dialog next time with sciNoConfirm=true; in your common.js.)" ); | var okay = window.sciNoConfirm || window.confirm( "Warning! All user scripts could contain malicious content capable of compromising your account. Installing a script means it could be changed by others; make sure you trust its author. If you're unsure whether a script is safe, check at the technical village pump. Install this script? (Hide this dialog next time with sciNoConfirm=true; in your common.js.)" ); | ||
if( okay ) { | if( okay ) { | ||
$( this ).text( " | $( this ).text( "安裝中..." ) | ||
Import.ofLocal( scriptName, "common" ).install().done( function () { | Import.ofLocal( scriptName, "common" ).install().done( function () { | ||
$( this ).text( " | $( this ).text( "解除安裝" ); | ||
conditionalReload( false ); | conditionalReload( false ); | ||
}.bind( this ) ); | }.bind( this ) ); | ||
} | } | ||
} else { | } else { | ||
$( this ).text( " | $( this ).text( "解除安裝中..." ) | ||
var uninstalls = uniques( localScriptsByName[ scriptName ] ) | var uninstalls = uniques( localScriptsByName[ scriptName ] ) | ||
.map( function ( target ) { return Import.ofLocal( scriptName, target ).uninstall(); } ) | .map( function ( target ) { return Import.ofLocal( scriptName, target ).uninstall(); } ) | ||
$.when.apply( $, uninstalls ).then( function () { | $.when.apply( $, uninstalls ).then( function () { | ||
$( this ).text( " | $( this ).text( "安裝" ); | ||
conditionalReload( false ); | conditionalReload( false ); | ||
}.bind( this ) ); | }.bind( this ) ); | ||
Line 686: | Line 686: | ||
if( document.cookie.indexOf( "open_script_installer=yes" ) >= 0 ) { | if( document.cookie.indexOf( "open_script_installer=yes" ) >= 0 ) { | ||
document.cookie = "open_script_installer=; expires=Thu, 01 Jan 1970 00:00:01 GMT"; | document.cookie = "open_script_installer=; expires=Thu, 01 Jan 1970 00:00:01 GMT"; | ||
$( "#script-installer-top-container a:contains(' | $( "#script-installer-top-container a:contains('管理')" ).trigger( "click" ); | ||
} | } | ||
} ); | } ); | ||
} ); | } ); | ||
} )(); | } )(); |