From 73e265d8fd050ae3daa67472b4465a5c49d68910 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sat, 20 Apr 2019 15:18:33 +0300 Subject: Include to Wekan packages directory contents, so that meteor command would build all directly. This also simplifies build scripts. Thanks to xet7 ! --- .../lib/templates_helpers/at_social.js | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 packages/meteor-useraccounts-core/lib/templates_helpers/at_social.js (limited to 'packages/meteor-useraccounts-core/lib/templates_helpers/at_social.js') diff --git a/packages/meteor-useraccounts-core/lib/templates_helpers/at_social.js b/packages/meteor-useraccounts-core/lib/templates_helpers/at_social.js new file mode 100644 index 00000000..912fd6e9 --- /dev/null +++ b/packages/meteor-useraccounts-core/lib/templates_helpers/at_social.js @@ -0,0 +1,105 @@ +AT.prototype.atSocialHelpers = { + disabled: function() { + if (AccountsTemplates.disabled()) + return "disabled"; + var user = Meteor.user(); + if (user){ + var numServices = 0; + if (user.services) + numServices = _.keys(user.services).length; // including "resume" + if (numServices === 2 && user.services[this._id]) + return "disabled"; + } + }, + name: function(){ + return this._id; + }, + iconClass: function() { + var ic = AccountsTemplates.texts.socialIcons[this._id]; + if (!ic) + ic = "fa fa-" + this._id; + return ic; + }, + buttonText: function() { + var service = this; + var serviceName = this._id; + if (serviceName === "meteor-developer") + serviceName = "meteor"; + serviceName = capitalize(serviceName); + if (!service.configured) + return T9n.get(AccountsTemplates.texts.socialConfigure, markIfMissing=false) + " " + serviceName; + var showAddRemove = AccountsTemplates.options.showAddRemoveServices; + var user = Meteor.user(); + if (user && showAddRemove){ + if (user.services && user.services[this._id]){ + var numServices = _.keys(user.services).length; // including "resume" + if (numServices === 2) + return serviceName; + else + return T9n.get(AccountsTemplates.texts.socialRemove, markIfMissing=false) + " " + serviceName; + } else + return T9n.get(AccountsTemplates.texts.socialAdd, markIfMissing=false) + " " + serviceName; + } + var parentData = Template.parentData(); + var state = (parentData && parentData.state) || AccountsTemplates.getState(); + var prefix = state === "signIn" ? + T9n.get(AccountsTemplates.texts.socialSignIn, markIfMissing=false) : + T9n.get(AccountsTemplates.texts.socialSignUp, markIfMissing=false); + return prefix + " " + T9n.get(AccountsTemplates.texts.socialWith, markIfMissing=false) + " " + serviceName; + }, +}; + +AT.prototype.atSocialEvents = { + "click button": function(event, t) { + event.preventDefault(); + event.currentTarget.blur(); + if (AccountsTemplates.disabled()) + return; + var user = Meteor.user(); + if (user && user.services && user.services[this._id]){ + var numServices = _.keys(user.services).length; // including "resume" + if (numServices === 2) + return; + else{ + AccountsTemplates.setDisabled(true); + Meteor.call("ATRemoveService", this._id, function(error){ + AccountsTemplates.setDisabled(false); + }); + } + } else { + AccountsTemplates.setDisabled(true); + var parentData = Template.parentData(); + var state = (parentData && parentData.state) || AccountsTemplates.getState(); + var serviceName = this._id; + var methodName; + if (serviceName === 'meteor-developer') + methodName = "loginWithMeteorDeveloperAccount"; + else + methodName = "loginWith" + capitalize(serviceName); + var loginWithService = Meteor[methodName]; + options = { + loginStyle: AccountsTemplates.options.socialLoginStyle, + }; + if (Accounts.ui) { + if (Accounts.ui._options.requestPermissions[serviceName]) { + options.requestPermissions = Accounts.ui._options.requestPermissions[serviceName]; + } + if (Accounts.ui._options.requestOfflineToken[serviceName]) { + options.requestOfflineToken = Accounts.ui._options.requestOfflineToken[serviceName]; + } + } + loginWithService(options, function(err) { + AccountsTemplates.setDisabled(false); + if (err && err instanceof Accounts.LoginCancelledError) { + // do nothing + } + else if (err && err instanceof ServiceConfiguration.ConfigError) { + if (Accounts._loginButtonsSession) + return Accounts._loginButtonsSession.configureService(serviceName); + } + else + AccountsTemplates.submitCallback(err, state); + }); + } + }, +}; -- cgit v1.2.3-1-g7c22