Add a Calendar Gadget to an Interactive Dashboard

Hints, Tips and Tricks

Technical Hints Tips and Tricks that cover customization and development using Sage CRM. API usage and coding are covered.

Add a Calendar Gadget to an Interactive Dashboard

  • Comments 2
  • Likes

Sometimes it is worth just going back to fairly simple tasks to remind ourselves how easy it is to do things in Sage CRM and especially the Interactive Dashboard.

The Calendar Gadget is perhaps the easiest gadget to use as it is pre-set as a Template Gadget able to be dropped into an Interactive Dashboard

After selecting the 'Choose Template' option you can then click to pick the Calendar Gadget to be added to your dashboard.

It will display current days appointments for you. Within the gadget you can either enter new quick appointments

If you want to check the calendar anytime into the future you can do that by clicking the date to allow the gadget to show the date picker.

Comments
  • I know this is a very old post, but for one of our customer on 2018 R3, we get an error when we try to add a Calendar Gadget (under any user)

    On screen, the error is "An error occurred when attempting to process the Gadget. Please contact your System Administrator." that we see in the gadget box.

    The error below is what we see in the Log file (

    (Note: I changed the server name in the URL showed in the error message below for security reasons)

    ERROR [http-nio-10001-exec-5]: 10-Mar-2019 00:53:47.865 java.lang.NullPointerException

    java.lang.NullPointerException

    at com.sage.scrm.model.db.AbstractScrmDBStore.getResourceQueryListInternal(AbstractScrmDBStore.java:150)

    at com.sage.scrm.model.db.ScrmDBStoreID.getResourceQueryList(ScrmDBStoreID.java:70)

    at com.sage.scrm.model.store.landingpage.SCRMGetWorkspaceStore.getGadgetData(SCRMGetWorkspaceStore.java:770)

    at com.sage.scrm.model.store.landingpage.SCRMGetWorkspaceStore.getGadgetAndData(SCRMGetWorkspaceStore.java:623)

    at com.sage.scrm.model.store.landingpage.SCRMGetWorkspaceStore.getData(SCRMGetWorkspaceStore.java:168)

    at com.sage.scrm.controller.landingPage.AbstractWorkspaceController.requestAction(AbstractWorkspaceController.java:86)

    at com.sage.scrm.controller.landingPage.SCRMGetWorkspaceController.requestAction(SCRMGetWorkspaceController.java:43)

    at sun.reflect.GeneratedMethodAccessor540.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)

    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)

    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)

    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)

    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)

    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)

    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)

    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at com.sage.scrm.controller.util.AbstractSessionRequestFilter.doFilter(AbstractSessionRequestFilter.java:136)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at com.sage.crm.web.filters.ClearCurrentThreadLocalsFilter.doFilter(ClearCurrentThreadLocalsFilter.java:45)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)

    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)

    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at com.sage.crm.core.security.SIDAuthenticationFilter.doFilter(SIDAuthenticationFilter.java:112)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)

    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)

    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)

    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)

    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)

    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.orm.hibernate5.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:151)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)

    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)

    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:748)

    ERROR [http-nio-10001-exec-7]: 10-Mar-2019 00:53:47.887 Server response status code != 200 (420)

    ERROR [http-nio-10001-exec-4]: 10-Mar-2019 00:53:48.872 (SecurityError): Blocked a frame with origin "http://" from accessing a cross-origin frame.

    stack: Error: Blocked a frame with origin "http://" from accessing a cross-origin frame.

       at pPf.uPf [as om] (http:///CRM/InteractiveDashboard/8099F40B492D44AAE8C1BF317E39157C.cache.html:3815:126)

       at cAd (http:///CRM/InteractiveDashboard/8099F40B492D44AAE8C1BF317E39157C.cache.html:61:39)

       at pPf.jAd [as Ee] (http:///CRM/InteractiveDashboard/8099F40B492D44AAE8C1BF317E39157C.cache.html:66:16)

       at http:///CRM/InteractiveDashboard/8099F40B492D44AAE8C1BF317E39157C.cache.html:64:56

    INDEX_SIZE_ERR: 1

    DOMSTRING_SIZE_ERR: 2

    HIERARCHY_REQUEST_ERR: 3

    WRONG_DOCUMENT_ERR: 4

    INVALID_CHARACTER_ERR: 5

    NO_DATA_ALLOWED_ERR: 6

    NO_MODIFICATION_ALLOWED_ERR: 7

    NOT_FOUND_ERR: 8

    NOT_SUPPORTED_ERR: 9

    INUSE_ATTRIBUTE_ERR: 10

    INVALID_STATE_ERR: 11

    SYNTAX_ERR: 12

    INVALID_MODIFICATION_ERR: 13

    NAMESPACE_ERR: 14

    INVALID_ACCESS_ERR: 15

    VALIDATION_ERR: 16

    TYPE_MISMATCH_ERR: 17

    SECURITY_ERR: 18

    NETWORK_ERR: 19

    ABORT_ERR: 20

    URL_MISMATCH_ERR: 21

    QUOTA_EXCEEDED_ERR: 22

    TIMEOUT_ERR: 23

    INVALID_NODE_TYPE_ERR: 24

    DATA_CLONE_ERR: 25

    code: 18

    -----------------------------------

    Any help would be appreciated.

  • Claude

    Thanks for the post.  I have not seen that error before.  But if you post this question into the forums you may find that others have.