/
var
/
www
/
html
/
sugardev25
/
cache
/
jsSourceMinifiedFiles
/
include
/
javascript
/
Upload File
HOME
(function(app){var bwcRedirectRoutes=['config','create','pipeline','editAllRecurrences','layout','list','record','record_layout','record_layout_action','vcardImport'];app.events.on('router:init',function(){var routes=[{name:"index",route:""},{name:"logout",route:"logout/?clear=:clear"},{name:"logout",route:"logout"},{name:'finishImpersonation',route:'finishImpersonation',callback:function(){app.controller.loadView({module:'Logout',layout:'finish-impersonation',skipFetch:true,create:true,});}},{name:"forgotpassword",route:"forgotpassword",callback:function(){app.controller.loadView({module:"Forgotpassword",layout:"forgotpassword",create:true});}},{name:'changePassword',route:'changePassword',callback:function(){if(!app.controller.context.get('layout')){app.controller.loadView({module:'Users',layout:'record',modelId:app.user.get('id'),});} app.drawer.open({layout:'change-password',context:{fromRouter:true,skipFetch:true}});}},{name:'externalAuthError',route:'externalAuthError',callback:function(){app.controller.loadView({module:'Login',layout:'login',create:true});app.alert.show('needs_login_error',{level:'error',messages:app.lang.getAppString('LBL_LOGIN_INACTIVE_USER'),title:app.lang.get('LBL_INVALID_CREDS_TITLE')});app.router.redirect('/');}},{name:'stsAuthError',route:'stsAuthError',callback:function(){app.controller.loadView({module:'Logout',layout:'logout',create:true});app.alert.show('needs_login_error',{level:'error',messages:app.lang.getAppString('LBL_UNAUTHORIZED'),title:app.lang.get('LBL_UNAUTHORIZED_TITLE')});}},{name:'maintenance',route:'maintenance',callback:function(){app.controller.loadView({module:'Logout',layout:'logout',create:true});app.alert.show('needs_login_error',{level:'error',messages:app.lang.getAppString('EXCEPTION_MAINTENANCE'),title:app.lang.get('LBL_ERROR')});}},{name:'licenseSeats',route:'licenseSeats',callback:function(){app.controller.loadView({module:'Logout',layout:'logout',create:true});app.alert.show('needs_login_error',{level:'error',messages:app.lang.getAppString('ERROR_LICENSE_SEATS_MAXED'),title:app.lang.get('LBL_ERROR')});}},{name:'about',route:'about',callback:function(){app.controller.loadView({layout:'about',module:'Home',skipFetch:true});}},{name:"forecasts",route:"Forecasts",callback:function(){let acls=app.user.getAcls().Forecasts;let hasAccess=(!_.has(acls,'access')||acls.access=='yes');let opportunitiesAcl=app.user.getAcls().Opportunities;let hasOppAccess=(!_.has(opportunitiesAcl,'access')||opportunitiesAcl.access==='yes');let forecastBy=app.metadata.getModule('Forecasts','config');let forecastByAcl=app.user.getAcls()[forecastBy?forecastBy.forecast_by:{}];let hasForecastByAccess=(!_.has(forecastByAcl,'access')||forecastByAcl.access==='yes');let title='';let msg='';if(hasAccess){if(hasOppAccess&&hasForecastByAccess){if(!app.utils.checkForecastConfig()){title='LBL_FORECASTS_MISSING_STAGE_TITLE';msg='LBL_FORECASTS_MISSING_SALES_STAGE_VALUES';}}else{title='LBL_FORECASTS_ACLS_NO_ACCESS_TITLE';msg='LBL_FORECASTS_RECORDS_ACLS_NO_ACCESS_MSG';}}else{title='LBL_FORECASTS_ACLS_NO_ACCESS_TITLE';msg='LBL_FORECASTS_ACLS_NO_ACCESS_MSG';} if(title==''&&msg==''){app.controller.loadView({module:'Forecasts',layout:'records'});}else{app.alert.show('no_access_to_forecasts',{level:'error',title:app.lang.get(title,'Forecasts')+':',messages:[app.lang.get(msg,'Forecasts')]});}}},{name:'profile',route:'profile',callback:function(){const route=app.router.buildRoute('Users',app.user.get('id'));app.router.navigate(route,{trigger:true,replace:true});}},{name:"bwc",route:"bwc/*url",callback:function(url,params){url=url||'';var bwcUrl=_.isEmpty(params)?url:url+'?'+params;app.logger.debug("BWC: "+bwcUrl);var frame=$('#bwc-frame');if(frame.length===1&&app.utils.rmIframeMark('index.php'+frame.get(0).contentWindow.location.search)===bwcUrl){app.drawer.reset();return;} if(bwcUrl==='index.php'){app.router.navigate('#Home',{trigger:true});return;} var options={layout:'bwc',url:bwcUrl};var module=/module=([^&]*)/.exec(bwcUrl);if(!_.isNull(module)&&!_.isEmpty(module[1])){options.module=module[1];if(module[1]==='Import'){module=/import_module=([^&]*)/.exec(bwcUrl);if(!_.isNull(module)&&!_.isEmpty(module[1])){options.module=module[1];}}} app.controller.loadView(options);}},{name:'search',route:'search(/)(:term)',callback:function(term,urlParams){var searchTerm=term?term:'';var params={modules:[],tags:[]};if(urlParams){var paramsArray=urlParams.split('&');_.each(paramsArray,function(paramPair){var keyValueArray=paramPair.split('=');if(keyValueArray.length>1){params[keyValueArray[0]]=keyValueArray[1].split(',');}});} var appContext=app.controller.context;var termHasChanged=appContext.get('searchTerm')!==searchTerm;var modulesHaveChanged=!_.isEqual(appContext.get('module_list'),params.modules);params.tags=_.map(params.tags,function(tag){return decodeURIComponent(tag);});var tagsHaveChanged=!_.isEqual(appContext.get('tagParams'),params.tags);if(termHasChanged){appContext.set('searchTerm',searchTerm);} if(modulesHaveChanged){appContext.set('module_list',params.modules);} if(tagsHaveChanged){appContext.set('tagParams',params.tags);} if(tagsHaveChanged){appContext.trigger('tagsearch:fire:new')}else if(termHasChanged||modulesHaveChanged){appContext.trigger('search:fire:new');} var header=app.additionalComponents['header-nav'];var quicksearch=header&&header.getComponent('quicksearch');if(quicksearch){quicksearch.trigger('route:search');} if(appContext&&appContext.get('search')){return;} app.controller.loadView({layout:'search',searchTerm:searchTerm,module_list:params.modules,tagParams:params.tags,mixed:true});}},{name:'list',route:':module',callback:function(module){if(!app.router._moduleExists(module)){return;} const enabledModulesKey='enabled_modules';let pipelineConfig=app.metadata.getModule('VisualPipeline','config')||{};let enableModules=pipelineConfig[enabledModulesKey]||[];let isAvailablePipeline=_.includes(enableModules,module);let layout='records';if(app.user.lastState.get(module+':pipeline')){if(isAvailablePipeline){layout='pipeline-records';}else{app.user.lastState.set(module+':pipeline',0);app.user.lastState.set(`${module}:list-filterpanel:toggle-view`,'list');}} app.controller.loadView({module:module,layout:layout});}},{name:'create',route:':module/create',callback:function(module){if(!app.router._moduleExists(module)){return;} var prevLayout=app.controller.context.get('layout');if(prevLayout&&prevLayout!=='login'){app.drawer.open({layout:'create',context:{module:module,create:true,fromRouter:true}},function(context,model){if(model&&model.module===app.controller.context.get('module')){app.controller.context.reloadData();}});return;} app.router.record(module,'create');}},{name:"vcardImport",route:":module/vcard-import",callback:function(module){if(!app.router._moduleExists(module)){return;} app.controller.loadView({module:module,layout:"records"});app.drawer.open({layout:'vcard-import'},_.bind(function(){var route=app.router.buildRoute(module);app.router.navigate(route,{replace:true});},this));}},{name:'editAllRecurrences',route:':module/:id/edit/all_recurrences',callback:function(module,id){if(!app.router._moduleExists(module)){return;} app.controller.loadView({module:module,layout:'record',action:'edit',modelId:id,all_recurrences:true});}},{name:"layout",route:":module/layout/:view"},{name:'config',route:':module/config',callback:function(module){if(!app.router._moduleExists(module)){return;} var prevLayout=app.controller.context.get('layout');if(prevLayout&&prevLayout!=='login'){app.drawer.open({layout:'config-drawer',context:{module:module,fromRouter:true}});return;} app.controller.loadView({layout:'config-drawer',module:module});}},{name:'pipelineView',route:':module/pipeline',callback:function(module){if(!app.router._moduleExists(module)){return;} app.router.redirect('#'+module);}},{name:'record',route:':module/:id(/:action)'},{name:'recordLayoutAction',route:':module/:id/layout/:layout(/:action)',callback:function(module,id,layout,action){if(!app.router._moduleExists(module)){return;} app.router.record(module,id,action,layout);}}];app.router.addRoutes(routes);});app.events.on('app:init',function(){app.api.setRefreshTokenSuccessCallback(function(callback){callback();app.events.trigger("api:refreshtoken:success");});});app.routing.before('route',function(options){var hasAccess=app.router.hasAccessToModule(options)!==false,isBwcRedirect=app.router.bwcRedirect(options)!==false;return hasAccess&&isBwcRedirect;});var titles={'records':'TPL_BROWSER_SUGAR7_RECORDS_TITLE','record':'TPL_BROWSER_SUGAR7_RECORD_TITLE','about':'TPL_BROWSER_SUGAR7_ABOUT_TITLE','activities':'TPL_BROWSER_SUGAR7_RECORD_TITLE','pipeline-records':'TPL_BROWSER_SUGAR7_RECORDS_TITLE'};var getTitle=function(model){var context=app.controller.context,module=context.get('module'),template=Handlebars.compile(app.lang.get(titles[context.get('layout')],module)||''),moduleName=app.lang.getModuleName(module,{plural:true}),title;var titleInfo=_.extend({module:moduleName,appId:app.config.systemName||app.config.appId},model?model.attributes:{});if(titleInfo.name){if(module==='Dashboards'&&titleInfo.dashboard_module){titleInfo.name=app.lang.get(titleInfo.name,titleInfo.dashboard_module);}else{titleInfo.name=app.lang.get(titleInfo.name,module);}} title=template(titleInfo);return $('<span/>').html(title).text();};var setTitle=function(model){var title=getTitle(model);document.title=title||document.title;};var prevModel;app.events.on("app:view:change",function(){var context=app.controller.context,module=context.get("module"),metadata=app.metadata.getModule(module),title;if(prevModel){prevModel.off("change",setTitle);} if(_.isEmpty(metadata)||metadata.isBwcEnabled){title=$('#bwc-frame').get(0)?$('#bwc-frame').get(0).contentWindow.document.title:getTitle();}else{var currModel=context.get('model');if(!_.isEmpty(currModel)){title=getTitle(currModel);currModel.on("change",setTitle,this);prevModel=currModel;}else{title=getTitle();}} document.title=title||document.title;},this);var refreshExternalLogin=function(){var config=app.metadata.getConfig();app.api.setExternalLogin(config&&config['externalLogin']);if(config&&(_.isNull(config['externalLoginSameWindow'])||config['externalLoginSameWindow']===false)){app.api.setExternalLoginUICallback(window.open);}};app.events.on("app:sync:complete",refreshExternalLogin,this);app.events.on("app:init",refreshExternalLogin,this);app.Router=app.Router.extend({bwcRedirect:function(options){if(options.route&&!_.contains(bwcRedirectRoutes,options.route)){return true;} if(_.isArray(options.args)&&options.args[0]){var module=options.args[0];var id=options.args[1];var action=id?'DetailView':'index';var meta=app.metadata.getModule(module);if(meta&&meta.isBwcEnabled){var sidecarAction=options.args[2]||options.route,bwcAction=app.bwc.getAction(sidecarAction);if(bwcAction!==sidecarAction){action=bwcAction;} var redirect='bwc/index.php?module='+module+'&action='+action;if(id){redirect+='&record='+id;} _.defer(function(){app.router.navigate(redirect,{trigger:true,replace:true});});return false;}} return true;},hasAccessToModule:function(options){options=options||{};var checkAccessRoutes={'record':'view','create':'create','vcardImport':'create'},route=options.route||'',args=options.args||[],module=args[0],accessCheck=checkAccessRoutes[route];if(accessCheck&&!app.acl.hasAccess(accessCheck,module)){_.defer(function(){app.controller.loadView({layout:'access-denied'});});return false;} var showWizard=false;if(app.user&&app.user.has('show_wizard')){showWizard=app.user.get('show_wizard');if(showWizard){var system_config=app.metadata.getConfig();if(system_config.system_status&&system_config.system_status.level&&system_config.system_status.level==='admin_only'){showWizard=false;} if(app.cache&&app.cache.has('ImpersonationFor')){showWizard=false;}}} if(showWizard){var callbacks={complete:function(){var module=app.utils.getWindowLocationParameterByName('module',window.location.search),action=app.utils.getWindowLocationParameterByName('action',window.location.search);if(_.isString(module)&&_.isString(action)&&module.toLowerCase()==='users'&&action.toLowerCase()==='authenticate'){window.location=window.location.pathname;}else{window.location.reload();}}};app.controller.loadView({layout:'first-login-wizard',module:'Users',modelId:app.user.get('id'),callbacks:callbacks,wizardName:app.user.get('type')});app.additionalComponents['header-nav'].hide();return false;} if(route&&route!=='logout'&&app.user&&app.user.get('is_password_expired')){app.controller.loadView({layout:'password-expired',module:'Users',callbacks:{complete:function(){window.location.reload();}},modelId:app.user.get('id')});app.additionalComponents['header-nav'].hide();return false;}}});app.augment("progress",_.extend({init:function(){NProgress.configure({template:'<div class="loading gate">'+' <div class="progress progress-danger">'+' <div role="bar" class="bar"></div>'+' </div>'+'</div>'});},hide:function(){$("#nprogress").hide();}},NProgress),false);app.events.on('app:start',function(){app.utils.toggleFullContentDiv(!app.api.isAuthenticated());});app.events.on('app:login:success',function(){app.utils.toggleFullContentDiv(false);});app.events.on('app:logout:success',function(){app.utils.toggleFullContentDiv(true);});app.events.on("app:logout:success",function(data){if(app.config&&app.config.externalLogin&&data&&data.url){if(typeof data.url=='string'){document.location.href=data.url;}else if(typeof data.url=='object'){var formHTML='<form id="externalLogoutForm" method="POST" target="logoutframe" action="'+ data.url.url+'">';_.each(data.url.params,function(value,key,list){formHTML+='<input type="hidden" name="'+_.escape(key)+'" value="'+_.escape(value)+'" />';});formHTML+='</form>'+'<script type="text/javascript">document.getElementById("externalLogoutForm").submit();</script>';$('#sugarcrm').append(formHTML);}}});app.events.on('app:logout',function(){var filters=app.data.getCollectionClasses().Filters;if(filters){filters.prototype.resetFiltersCacheAndRequests();}});app.user.on('change:show_wizard',function(user,show_wizard){if(show_wizard){app.shortcuts.disable();}else{app.shortcuts.enable();}});})(SUGAR.App);