746
edits
mNo edit summary Tags: Mobile edit Mobile web edit |
mNo edit summary Tags: Mobile edit Mobile web edit |
||
(5 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 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 447: | Line 447: | ||
" | ", | " | ", | ||
$( "<a>" ) | $( "<a>" ) | ||
.text( " | .text( "移動" ) | ||
.click( function () { | .click( function () { | ||
var dest = null; | var dest = null; | ||
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 ) ); |