mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 965641 - [Australis] prompt user to sign-in again UI in the menu panel r=markh
This commit is contained in:
parent
346d43692c
commit
f6444f91a7
@ -11,7 +11,6 @@ const PREF_SYNC_START_DOORHANGER = "services.sync.ui.showSyncStartDoorhanger";
|
||||
let gFxAccounts = {
|
||||
|
||||
_initialized: false,
|
||||
_originalLabel: null,
|
||||
_inCustomizationMode: false,
|
||||
|
||||
get weave() {
|
||||
@ -24,10 +23,11 @@ let gFxAccounts = {
|
||||
get topics() {
|
||||
delete this.topics;
|
||||
return this.topics = [
|
||||
"weave:service:sync:start",
|
||||
"weave:service:login:error",
|
||||
FxAccountsCommon.ONLOGIN_NOTIFICATION,
|
||||
FxAccountsCommon.ONVERIFIED_NOTIFICATION,
|
||||
FxAccountsCommon.ONLOGOUT_NOTIFICATION,
|
||||
"weave:service:sync:start"
|
||||
FxAccountsCommon.ONLOGOUT_NOTIFICATION
|
||||
];
|
||||
},
|
||||
|
||||
@ -36,6 +36,14 @@ let gFxAccounts = {
|
||||
return this.button = document.getElementById("PanelUI-fxa-status");
|
||||
},
|
||||
|
||||
get loginFailed() {
|
||||
if (Weave.Status.login != Weave.LOGIN_SUCCEEDED) {
|
||||
Weave.Service.verifyLogin();
|
||||
}
|
||||
return Weave.Service.identity.readyToAuthenticate &&
|
||||
Weave.Status.login != Weave.LOGIN_SUCCEEDED;
|
||||
},
|
||||
|
||||
init: function () {
|
||||
if (this._initialized) {
|
||||
return;
|
||||
@ -48,9 +56,6 @@ let gFxAccounts = {
|
||||
gNavToolbox.addEventListener("customizationstarting", this);
|
||||
gNavToolbox.addEventListener("customizationending", this);
|
||||
|
||||
// Save the button's original label so that
|
||||
// we can restore it if overridden later.
|
||||
this._originalLabel = this.button.getAttribute("label");
|
||||
this._initialized = true;
|
||||
|
||||
this.updateUI();
|
||||
@ -136,17 +141,27 @@ let gFxAccounts = {
|
||||
this.button.removeAttribute("disabled");
|
||||
}
|
||||
|
||||
let defaultLabel = this.button.getAttribute("defaultlabel");
|
||||
let errorLabel = this.button.getAttribute("errorlabel");
|
||||
|
||||
// If the user is signed into their Firefox account and we are not
|
||||
// currently in customization mode, show their email address.
|
||||
fxAccounts.getSignedInUser().then(userData => {
|
||||
if (userData && !this._inCustomizationMode) {
|
||||
this.button.setAttribute("signedin", "true");
|
||||
this.button.setAttribute("label", userData.email);
|
||||
this.button.setAttribute("tooltiptext", userData.email);
|
||||
} else {
|
||||
this.button.removeAttribute("signedin");
|
||||
this.button.setAttribute("label", this._originalLabel);
|
||||
this.button.removeAttribute("tooltiptext");
|
||||
// Reset the button to its original state.
|
||||
this.button.setAttribute("label", defaultLabel);
|
||||
this.button.removeAttribute("tooltiptext");
|
||||
this.button.removeAttribute("signedin");
|
||||
this.button.removeAttribute("failed");
|
||||
|
||||
if (!this._inCustomizationMode) {
|
||||
if (this.loginFailed) {
|
||||
this.button.setAttribute("failed", "true");
|
||||
this.button.setAttribute("label", errorLabel);
|
||||
} else if (userData) {
|
||||
this.button.setAttribute("signedin", "true");
|
||||
this.button.setAttribute("label", userData.email);
|
||||
this.button.setAttribute("tooltiptext", userData.email);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -15,7 +15,9 @@
|
||||
</vbox>
|
||||
|
||||
<footer id="PanelUI-footer">
|
||||
<toolbarbutton id="PanelUI-fxa-status" label="&fxaSignIn.label;"
|
||||
<toolbarbutton id="PanelUI-fxa-status"
|
||||
defaultlabel="&fxaSignIn.label;"
|
||||
errorlabel="&fxaSignInError.label;"
|
||||
oncommand="gFxAccounts.toggle(event);"
|
||||
hidden="true"/>
|
||||
|
||||
|
@ -97,6 +97,7 @@ These should match what Safari and other Apple applications use on OS X Lion. --
|
||||
<!ENTITY showAllTabsCmd.accesskey "A">
|
||||
|
||||
<!ENTITY fxaSignIn.label "Sign in to &syncBrand.shortName.label;">
|
||||
<!ENTITY fxaSignInError.label "Reconnect to &syncBrand.shortName.label;">
|
||||
<!ENTITY syncStartPanel.title "&brandShortName; is now syncing.">
|
||||
<!ENTITY syncStartPanel.subTitle "You can manage &syncBrand.shortName.label; in Options.">
|
||||
<!ENTITY syncStartPanel.subTitleUnix "You can manage &syncBrand.shortName.label; in Preferences.">
|
||||
|
Loading…
Reference in New Issue
Block a user