mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-29 18:50:07 +00:00
feat(gDriveSync): add auto login
This commit is contained in:
parent
29d5f175ce
commit
c3885ac05a
4 changed files with 36 additions and 22 deletions
|
|
@ -88,6 +88,7 @@
|
|||
|
||||
if (this.$rootScope.r.googleTokens.accessToken && !isExpired) {
|
||||
this.accessToken = this.$rootScope.r.googleTokens.accessToken;
|
||||
this.isLoggedIn = true;
|
||||
return new Promise((resolve) => resolve());
|
||||
}
|
||||
|
||||
|
|
@ -99,6 +100,7 @@
|
|||
this.accessToken = token;
|
||||
this.$rootScope.r.googleTokens.accessToken = this.accessToken;
|
||||
//this.$rootScope.r.googleTokens.refreshToken = data.refresh_token;
|
||||
this.isLoggedIn = true;
|
||||
resolve();
|
||||
// TODO remove
|
||||
// mainWindow.webContents.removeListener('did-finish-load', handler);
|
||||
|
|
@ -109,11 +111,13 @@
|
|||
return this.initClientLibraryIfNotDone()
|
||||
.then((user) => {
|
||||
if (user && user.Zi && user.Zi.access_token) {
|
||||
this.isLoggedIn = true;
|
||||
this.saveToken(user);
|
||||
} else {
|
||||
return window.gapi.auth2.getAuthInstance().signIn()
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
this.isLoggedIn = true;
|
||||
this.saveToken(res);
|
||||
});
|
||||
}
|
||||
|
|
@ -131,6 +135,8 @@
|
|||
}
|
||||
|
||||
logout() {
|
||||
this.isLoggedIn = false;
|
||||
|
||||
if (this.IS_ELECTRON) {
|
||||
this.accessToken = undefined;
|
||||
this.$rootScope.r.googleTokens.accessToken = undefined;
|
||||
|
|
@ -138,12 +144,18 @@
|
|||
resolve();
|
||||
});
|
||||
} else {
|
||||
return window.gapi.auth2.getAuthInstance().signOut();
|
||||
if (window.gapi) {
|
||||
return window.gapi.auth2.getAuthInstance().signOut();
|
||||
} else {
|
||||
return new Promise((resolve) => {
|
||||
resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleError(err) {
|
||||
console.log(err);
|
||||
this.$log(err);
|
||||
this.SimpleToast('ERROR', 'GoogleApi Error');
|
||||
return this.$q.reject();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,10 +13,17 @@
|
|||
|
||||
class GoogleDriveSync {
|
||||
/* @ngInject */
|
||||
constructor(AppStorage, GoogleApi, $rootScope) {
|
||||
constructor(AppStorage, GoogleApi, $rootScope, SimpleToast, $q) {
|
||||
this.AppStorage = AppStorage;
|
||||
this.GoogleApi = GoogleApi;
|
||||
this.$rootScope = $rootScope;
|
||||
this.SimpleToast = SimpleToast;
|
||||
this.$q = $q;
|
||||
|
||||
if (this.$rootScope.r.config.googleDriveSync.isAutoLogin) {
|
||||
GoogleApi.login();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getLocalAppData() {
|
||||
|
|
@ -37,7 +44,11 @@
|
|||
}
|
||||
|
||||
loadFrom() {
|
||||
return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId);
|
||||
return this.GoogleApi.loadFile(this.$rootScope.r.googleDriveSync.backupDocId)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
return this.$q.when(res);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,20 +39,20 @@
|
|||
<div>
|
||||
<md-button class="md-raised md-primary"
|
||||
promise-btn
|
||||
ng-show="!vm.isLoggedIn"
|
||||
ng-show="!vm.GoogleApi.isLoggedIn"
|
||||
ng-click="vm.login()">
|
||||
<ng-md-icon icon="login"></ng-md-icon>
|
||||
Login
|
||||
</md-button>
|
||||
<md-button class="md-raised md-primary"
|
||||
ng-show="vm.isLoggedIn"
|
||||
ng-show="vm.GoogleApi.isLoggedIn"
|
||||
ng-click="vm.logout()">
|
||||
<ng-md-icon icon="logout"></ng-md-icon>
|
||||
Logout
|
||||
</md-button>
|
||||
|
||||
<md-button class="md-raised md-primary"
|
||||
ng-show="vm.isLoggedIn"
|
||||
ng-show="vm.GoogleApi.isLoggedIn"
|
||||
external-link
|
||||
target="_blank"
|
||||
href="https://myaccount.google.com/permissions">
|
||||
|
|
@ -61,14 +61,14 @@
|
|||
</md-button>
|
||||
<md-button class="md-raised md-primary"
|
||||
promise-btn
|
||||
ng-show="vm.isLoggedIn"
|
||||
ng-show="vm.GoogleApi.isLoggedIn"
|
||||
ng-click="vm.backupNow()">
|
||||
<ng-md-icon icon="backup"></ng-md-icon>
|
||||
Save Backup now
|
||||
</md-button>
|
||||
<md-button class="md-raised md-primary sync-from-btn"
|
||||
promise-btn
|
||||
ng-show="vm.isLoggedIn"
|
||||
ng-show="vm.GoogleApi.isLoggedIn"
|
||||
ng-click="vm.loadRemoteData()">
|
||||
<ng-md-icon icon="backup"></ng-md-icon>
|
||||
Load from Google Drive
|
||||
|
|
|
|||
|
|
@ -54,23 +54,14 @@
|
|||
};
|
||||
|
||||
vm.login = () => {
|
||||
vm.isLoading = true;
|
||||
|
||||
return GoogleApi.login()
|
||||
.then(() => {
|
||||
vm.isLoggedIn = true;
|
||||
vm.isLoading = false;
|
||||
});
|
||||
return GoogleApi.login();
|
||||
};
|
||||
|
||||
vm.logout = () => {
|
||||
vm.isLoading = true;
|
||||
return GoogleApi.logout()
|
||||
.then(() => {
|
||||
vm.isLoggedIn = false;
|
||||
vm.isLoading = false;
|
||||
});
|
||||
return GoogleApi.logout();
|
||||
};
|
||||
|
||||
vm.GoogleApi = GoogleApi;
|
||||
}
|
||||
|
||||
})();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue