Nuxeo - OpenSocial

1,656 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,656
On SlideShare
0
From Embeds
0
Number of Embeds
284
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nuxeo - OpenSocial

  1. 1. Nuxeo - OpenSocial Leveraging OpenSocial within the Nuxeo Platorm 2011 - Thomas Roger - troger@nuxeo.com - @throgerOpen Source ECM
  2. 2. Why OpenSocial?Common standard used in the enterpriseEasy for developers HTTP, XML, HTML, JavaScript and RESTful APIsGadgets as reusable blocks 2
  3. 3. GWT ContainerContributed by Leroy MerlinApache Shindig + GWT2Easier to integrate in your applicationLighter & faster! 3
  4. 4. 4
  5. 5. GWT ContainerCreate your own dashboardImplement a new SpaceProviderMySpaceProvider extends AbstractSpaceProvider { ... } 5
  6. 6. GWT ContainerCreate your own dashboardImplement a new SpaceProviderMySpaceProvider extends AbstractSpaceProvider { ... }Contribute it<extension target="org.nuxeo.ecm.spaces.core.spacemanager.service point="spaceProviders"> <spaceProvider name="mySpaceProvider"> <class>org.nuxeo.sample.MySpaceProvider</class> </spaceProvider> 6</extension>
  7. 7. GWT ContainerUse it in your page<nxu:set var="repositoryName" value="#{navigationContext.currentServerLocation.name}"><nxu:set var="spaceProviderName" value="mySpaceProvider"> <ui:decorate template="/incl/opensocial_container_template.xhtml"> </ui:decorate></nxu:set></nxu:set> 7
  8. 8. Lightweight ContainerWhy?Simple gadget integrationStatic positioning in the pageHow?JS container from Apache ShindigjQuery plugin availableSimple to use! 8
  9. 9. Lightweight containerIncludes<link href="#{baseURL}css/opensocial/light-container-gadgets.css"></link><script src="#{baseURL}opensocial/gadgets/js/rpc.js?c=1"></script><script src="#{baseURL}js/?scripts=opensocial/cookies.js|opensocial/util.js|opensocial/gadgets.js|opensocial/cookiebaseduserprefstore.js|opensocial/jquery.opensocial.gadget.js"></script> 9
  10. 10. Lightweight containerHTML<div class="polls gadgets-gadget-chrome gadgets"></div> 10
  11. 11. Lightweight containerLoading the polls gadgetjQuery(.polls).openSocialGadget({ baseURL: #{baseURL}, language: #{localeSelector.language}, gadgetDefs: [{ specUrl: #{gadgetsBaseURL}/site/gadgets/polls/polls.xml, title: #{messages[label.poll.result]}, displayTitleBar: false, width: 100% }]}); 11
  12. 12. 12
  13. 13. OAuthNuxeo supports OAuth authenticationConnect to third party services supportingOAuth, like Google DocsOAuth authentication in gadgets<ModulePrefs> <#include "default-oauth-prefs.ftl"/></ModulePrefs> 13
  14. 14. Following the StandardMost of our gadgets are fully OpenSocialWork on other OpenSocial containers:iGoogle, JIRA, ...Nuxeo can use external gadgets (thoseavailable on iGoogle for instance) 14
  15. 15. 15
  16. 16. Gadget SpecRendered through FreemarkerPredefined Freemarker templatesJS context injected 16
  17. 17. Automation JS LibraryLibrary to be used in gadgetsCall Nuxeo automationHandle OAuth authenticationEasy to use! 17
  18. 18. Automation JS libraryIncludes<script src="${specDirectoryUrl}default-automation-request.js"></script>...<#include "default-request-controls.ftl"/> 18
  19. 19. Automation JS libraryQuerying documentsvar requestParams = { operationId: Document.PageProvider, operationParameters: { pageSize: 5, query: ‘SELECT * FROM Document’ operationContext: {}, operationDocumentProperties: "common,dublincore", entityType: documents, operationCallback: myCallback, noEntryLabel: __MSG_label.gadget.no.document__};doAutomationRequest(requestParams) 19
  20. 20. Automation JS libraryQuerying documentsfunction myCallback(response, params) { var docs = response.data.entries; ...} 20
  21. 21. Automation JS libraryEasy document listing<script src="${specDirectoryUrl}default-documentlist-display.js"></script>...<#include "default-documentlist-layout.ftl"/>...var requestParams = { ... displayMethod: displayDocumentList,}; 21
  22. 22. Nuxeo IDEGadget templatesDefault gadget structure, contributionFully OpenSocialSupports hot reload! 22
  23. 23. Nuxeo IDEGadget templatesStandard gadgetOAuth authenticationInternationalizationAutomation gadgetAutomation JS libraryDocument listing JS library 23
  24. 24. Thank you! 24

×