kodReady.push(function(){ var staticPath = "{{pluginHost}}static/"; var version = '?v={{package.version}}'; LNG.set(jsonDecode(urlDecode("{{LNG}}"))); var thirdItems = { "qq": "QQ", "weixin": LNG['common.wechat'], "github": "GitHub", "google": "Google", "facebook": "Facebook" }; // 获取第三方登录项 var getLoginWith = function(){ if (!_.isUndefined(G.system.options.loginWith)) { return G.system.options.loginWith; } return _.join((_.get(G, 'system.options.loginConfig.loginWith') || []), ','); } // 1.后台设置 Events.bind("admin.setting.initViewBefore",function(formData, options, self){ var loginWith = getLoginWith(); // 无法插入到指定属性(openRegist)之前,只能在定义处加初始值 formData.loginWith = { "type": "checkbox", "value": loginWith, "display": LNG['admin.setting.thirdLogin'], "desc": LNG['admin.setting.thirdLoginDesc'], "info": thirdItems }; formData.sep401 = '
'; }); // 2.插件设置 Events.bind("plugin.config.formBefore", function(formData, options, self){ if (_.get(options, 'id') != 'app-config-{{pluginName}}') return; var list = []; var loginWith = getLoginWith(); var logins = loginWith ? _.split(loginWith, ',') : []; _.each(thirdItems, function(title, type){ var opt = ""; var web = ""; if (_.includes(['google', 'facebook'], type)) { if (type == 'google') { opt = "
"+LNG['oauth.config.fqDesc']+""; } web = "(https://"+type+".com)"; } var icon = type == 'weixin' ? 'wechat' : type; var checked = _.includes(logins, type) ? 'checked="checked"' : ''; opt += "

"+title+web+"\ \

"; list.push(opt); }); formData.list.value = "
"+(_.join(list,''))+"
"; formData.loginWith.value = loginWith; }); Events.bind("plugin.config.formAfter", function(_this){ var form = _this['form{{pluginName}}']; if (!form || !form.$el) return; // 可能保存失败,暂不做处理 form.bind('onSave', function(result){ var loginWith = []; form.$("input[name=type]").each(function(){ if ($(this).is(":checked")) { loginWith.push($(this).val()); } }); result.loginWith = _.join(loginWith, ','); G.system.options.loginConfig.loginWith = loginWith; G.system.options.loginWith = result.loginWith; }); }); // 3.个人中心设置 Events.bind('user.account.initViewAfter', function(self){ var loginWith = getLoginWith(); if (!loginWith) return; requireAsync([ staticPath+'oauth/user.js' + version, staticPath+'oauth/bind.js' + version, ],function(User, Bind){ new User({parent:self, load: {thirdItems: thirdItems, loginWith: loginWith}, Bind: Bind}); }); }); // 4.登录页 // Events.bind("router.after.user/login",function(){ Events.bind("user.login.initViewAfter",function(self){ var loginWith = getLoginWith(); if (!loginWith) return; requireAsync([ staticPath+'oauth/login.js' + version, staticPath+'oauth/bind.js' + version, ],function(Login, Bind){ new Login({parent:self, load: {thirdItems: thirdItems, loginWith: loginWith, pluginApi: "{{pluginApi}}"}, Bind: Bind}); }); }); if($.hasKey('plugin.{{package.id}}.event')) return; // 5.日志列表解析 ClassBase.extendHook({ hookMatch:'dataParseHtmlItem,dataParseOthers,dataParseUsers', dataParseUsers:function(){ var type = arguments[0]; var desc = arguments[1]; if (_.startsWith(type, 'user.bind')) { var title = thirdItems[desc.type] || ''; return [LNG['common.type'] + ':' + title]; } return this.__dataParseUsers.apply(this,arguments); }, normalActionGet: function(){ var item = arguments[0]; if (_.startsWith(item.type, 'user.bind')) { var actions = { 'user.bind.bind': ['user', 'user'], 'user.bind.unbind': ['user', 'user-unbind'] }; return actions[item.type] || ['', '']; } return this.__normalActionGet.apply(this,arguments); } }); if($.hasKey('plugin.{{package.id}}.style')) return; requireAsync("{{pluginHost}}static/main.css"); });