Example #1
0
Template.cloud.onCreated(function() {
	const instance = this;
	instance.info = new ReactiveVar();
	instance.loading = new ReactiveVar(true);
	instance.isLoggedIn = new ReactiveVar(false);

	instance.loadRegStatus = function _loadRegStatus() {
		Meteor.call('cloud:checkRegisterStatus', (error, info) => {
			if (error) {
				console.warn('cloud:checkRegisterStatus', error);
				return;
			}

			instance.info.set(info);
			instance.loading.set(false);
		});
	};

	instance.getLoggedIn = function _getLoggedIn() {
		Meteor.call('cloud:checkUserLoggedIn', (error, result) => {
			if (error) {
				console.warn(error);
				return;
			}

			instance.isLoggedIn.set(result);
		});
	};

	instance.oauthAuthorize = function _oauthAuthorize() {
		Meteor.call('cloud:getOAuthAuthorizationUrl', (error, url) => {
			if (error) {
				console.warn(error);
				return;
			}

			window.location.href = url;
		});
	};

	instance.logout = function _logout() {
		Meteor.call('cloud:logout', (error) => {
			if (error) {
				console.warn(error);
				return;
			}

			instance.getLoggedIn();
		});
	};

	instance.connectWorkspace = function _connectWorkspace(token) {
		Meteor.call('cloud:connectWorkspace', token, (error, success) => {
			if (error) {
				toastr.error(error);
				instance.loadRegStatus();
				return;
			}

			if (!success) {
				toastr.error('An error occured connecting');
				instance.loadRegStatus();
				return;
			}

			toastr.success(t('Connected'));

			instance.loadRegStatus();
		});
	};

	instance.disconnectWorkspace = function _disconnectWorkspace() {
		Meteor.call('cloud:disconnectWorkspace', (error, success) => {
			if (error) {
				toastr.error(error);
				instance.loadRegStatus();
				return;
			}

			if (!success) {
				toastr.error('An error occured disconnecting');
				instance.loadRegStatus();
				return;
			}

			toastr.success(t('Disconnected'));

			instance.loadRegStatus();
		});
	};

	instance.syncWorkspace = function _syncWorkspace() {
		Meteor.call('cloud:syncWorkspace', (error, success) => {
			if (error) {
				toastr.error(error);
				instance.loadRegStatus();
				return;
			}

			if (!success) {
				toastr.error('An error occured syncing');
				instance.loadRegStatus();
				return;
			}

			toastr.success(t('Sync Complete'));

			instance.loadRegStatus();
		});
	};

	instance.registerWorkspace = function _registerWorkspace() {
		Meteor.call('cloud:registerWorkspace', (error, success) => {
			if (error) {
				toastr.error(error);
				instance.loadRegStatus();
				return;
			}

			if (!success) {
				toastr.error('An error occured');
				instance.loadRegStatus();
				return;
			}

			return instance.syncWorkspace();
		});
	};

	const params = queryString.parse(location.search);

	if (params.token) {
		instance.connectWorkspace(params.token);
	} else {
		instance.loadRegStatus();
	}

	instance.getLoggedIn();
});
Example #2
0
Template.cloud.onCreated(function() {
	const instance = this;
	instance.info = new ReactiveVar();
	instance.loading = new ReactiveVar(true);

	instance.loadRegStatus = function _loadRegStatus() {
		Meteor.call('cloud:checkRegisterStatus', (error, info) => {
			if (error) {
				console.warn('cloud:checkRegisterStatus', error);
				return;
			}

			instance.info.set(info);
			instance.loading.set(false);
		});
	};

	instance.connectWorkspace = function _connectWorkspace(token) {
		Meteor.call('cloud:connectWorkspace', token, (error, success) => {
			if (error) {
				toastr.error(error);
				instance.loadRegStatus();
				return;
			}

			if (!success) {
				toastr.error('Invalid token');
				instance.loadRegStatus();
				return;
			}

			toastr.success(t('Connected'));

			instance.loadRegStatus();
		});
	};

	const params = queryString.parse(location.search);

	if (params.token) {
		instance.connectWorkspace(params.token);
	} else {
		instance.loadRegStatus();
	}
});