Skip to content

Commit 41b4f4e

Browse files
committed
Add "Donate" button in Options UI
1 parent 4e6953a commit 41b4f4e

File tree

11 files changed

+26
-11
lines changed

11 files changed

+26
-11
lines changed

chrome/content/preferences.xul

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,20 @@
2222
<prefwindow id="tabutils-preferences"
2323
title="&prefwindow.title;"
2424
helpURI="http://addons.mozilla.org/addon/59961"
25+
donateURI="https://addons.mozilla.org/addon/59961/developers"
2526
buttons="accept,cancel,extra1,extra2"
2627
buttonlabelcancel="&prefwindow.close;"
27-
buttonlabelextra1="&prefwindow.apply;"
28+
buttonlabelextra1="&prefwindow.donate;"
2829
buttonlabelextra2="&prefwindow.settings;"
30+
buttonlabelapply="&prefwindow.apply;"
2931
buttonlabelreset="&prefwindow.reset;"
3032
buttonlabelclose="&prefwindow.close;"
3133
onload="onLoad();"
3234
onunload="onUnload();"
3335
ondialogextra1="onApply();"
3436
ondialogextra2="onDefault();"
3537
ondialogcancel="return onCancel();"
36-
ondialoghelp="openHelp();"
38+
ondialoghelp="openURI(this.getAttribute('helpURI'));"
3739
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
3840

3941
<prefpane id="pane1" label="&pane1.title;" helpTopic2="pane1" persist="lastSelected" onpaneload="onPaneLoad(this);" onselect="onPaneSelect(this);">
@@ -883,11 +885,7 @@
883885
);
884886
885887
function onLoad() {
886-
if (document.documentElement.getButton("accept").hidden) {
887-
document.documentElement.getButton("extra1").hidden = true;
888-
}
889-
else {
890-
document.documentElement.getButton("extra1").disabled = true;
888+
if (!document.documentElement.getButton("accept").hidden) {
891889
window.addEventListener("change", onChange, false);
892890
}
893891
@@ -975,20 +973,27 @@
975973
preferencesToApply.push(preference);
976974
}
977975
978-
document.documentElement.getButton("extra1").disabled = preferencesToApply.length == 0;
976+
document.documentElement.getButton("extra1").label = preferencesToApply.length == 0 ?
977+
document.documentElement.getAttribute("buttonlabelextra1") :
978+
document.documentElement.getAttribute("buttonlabelapply");
979979
document.documentElement.getButton("cancel").label = preferencesToApply.length == 0 ?
980980
document.documentElement.getAttribute("buttonlabelclose") :
981981
document.documentElement.getAttribute("buttonlabelreset");
982982
}
983983
984984
function onApply() {
985+
if (preferencesToApply.length == 0) {
986+
openURI(document.documentElement.getAttribute("donateURI"));
987+
return;
988+
}
989+
985990
var preferences = document.getElementsByTagName("preference");
986991
for (let preference of preferences) {
987992
preference.valueFromPreferences = preference.value;
988993
}
989994
990995
preferencesToApply = [];
991-
document.documentElement.getButton("extra1").disabled = true;
996+
document.documentElement.getButton("extra1").label = document.documentElement.getAttribute("buttonlabelextra1");
992997
document.documentElement.getButton("cancel").label = document.documentElement.getAttribute("buttonlabelclose");
993998
}
994999
@@ -1092,9 +1097,9 @@
10921097
preference.value = aValue;
10931098
}
10941099
1095-
function openHelp() {
1100+
function openURI(aURI) {
10961101
var win = Services.nsIBrowserGlue.getMostRecentBrowserWindow();
1097-
win.gBrowser.loadOneTab(document.documentElement.getAttribute("helpURI"), null, null, null, false, false);
1102+
win.gBrowser.loadOneTab(aURI, null, null, null, false, false);
10981103
win.focus();
10991104
}
11001105

chrome/locale/de/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Übernehmen">
33
<!ENTITY prefwindow.reset "Zurücksetzen">
44
<!ENTITY prefwindow.close "Schließen">
5+
<!ENTITY prefwindow.donate "Spenden">
56
<!ENTITY prefwindow.settings "Einstellungen">
67
<!ENTITY settings.default "Standardeinstellungen">
78
<!ENTITY settings.suggest "Empfohlene Einstellungen">

chrome/locale/en-US/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Apply">
33
<!ENTITY prefwindow.reset "Reset">
44
<!ENTITY prefwindow.close "Close">
5+
<!ENTITY prefwindow.donate "Donate">
56
<!ENTITY prefwindow.settings "Settings">
67
<!ENTITY settings.default "Default">
78
<!ENTITY settings.suggest "Recommended">

chrome/locale/es-ES/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Aplicar">
33
<!ENTITY prefwindow.reset "Reiniciar">
44
<!ENTITY prefwindow.close "Cerrar">
5+
<!ENTITY prefwindow.donate "Donar">
56
<!ENTITY prefwindow.settings "Perfiles">
67
<!ENTITY settings.default "Perfil predeterminado">
78
<!ENTITY settings.suggest "Perfil recomendado">

chrome/locale/it/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Applica">
33
<!ENTITY prefwindow.reset "Annulla">
44
<!ENTITY prefwindow.close "Chiudi">
5+
<!ENTITY prefwindow.donate "Donare">
56
<!ENTITY prefwindow.settings "Funzioni">
67
<!ENTITY settings.default "Impostazioni predefinite">
78
<!ENTITY settings.suggest "Impostazioni consigliate">

chrome/locale/ja-JP/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "適用">
33
<!ENTITY prefwindow.reset "リセット">
44
<!ENTITY prefwindow.close "閉じる">
5+
<!ENTITY prefwindow.donate "寄付">
56
<!ENTITY prefwindow.settings "設定">
67
<!ENTITY settings.default "初期設定">
78
<!ENTITY settings.suggest "推奨設定">

chrome/locale/pl/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Zastosuj">
33
<!ENTITY prefwindow.reset "Resetuj">
44
<!ENTITY prefwindow.close "Zamknij">
5+
<!ENTITY prefwindow.donate "Darować">
56
<!ENTITY prefwindow.settings "Ustawienia">
67
<!ENTITY settings.default "Domyślne">
78
<!ENTITY settings.suggest "Polecane">

chrome/locale/pt-BR/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Aplicar">
33
<!ENTITY prefwindow.reset "Renovar">
44
<!ENTITY prefwindow.close "Fechar">
5+
<!ENTITY prefwindow.donate "Doar">
56
<!ENTITY prefwindow.settings "Configurações">
67
<!ENTITY settings.default "Configurações Padrão">
78
<!ENTITY settings.suggest "Configurações Recomendadas">

chrome/locale/ru/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "Применить">
33
<!ENTITY prefwindow.reset "Восстановить">
44
<!ENTITY prefwindow.close "Закрыть">
5+
<!ENTITY prefwindow.donate "Жертвовать">
56
<!ENTITY prefwindow.settings "Настройки">
67
<!ENTITY settings.default "По умолчанию">
78
<!ENTITY settings.suggest "Рекомендуемые">

chrome/locale/zh-CN/preferences.dtd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<!ENTITY prefwindow.apply "应用">
33
<!ENTITY prefwindow.reset "重置">
44
<!ENTITY prefwindow.close "关闭">
5+
<!ENTITY prefwindow.donate "捐助">
56
<!ENTITY prefwindow.settings "设置">
67
<!ENTITY settings.default "默认设置">
78
<!ENTITY settings.suggest "推荐设置">

0 commit comments

Comments
 (0)