Nuxeo - OpenSocial                  Leveraging OpenSocial within                  the Nuxeo Platorm                  2011 ...
Why OpenSocial?Common standard used in the enterpriseEasy for developers HTTP, XML, HTML, JavaScript and RESTful APIsGadge...
GWT ContainerContributed by Leroy MerlinApache Shindig + GWT2Easier to integrate in your applicationLighter & faster!     ...
4
GWT ContainerCreate your own dashboardImplement a new SpaceProviderMySpaceProvider extends AbstractSpaceProvider { ... }  ...
GWT ContainerCreate your own dashboardImplement a new SpaceProviderMySpaceProvider extends AbstractSpaceProvider { ... }Co...
GWT ContainerUse it in your page<nxu:set var="repositoryName"  value="#{navigationContext.currentServerLocation.name}"><nx...
Lightweight ContainerWhy?Simple gadget integrationStatic positioning in the pageHow?JS container from Apache ShindigjQuery...
Lightweight containerIncludes<link href="#{baseURL}css/opensocial/light-container-gadgets.css"></link><script src="#{baseU...
Lightweight containerHTML<div class="polls gadgets-gadget-chrome gadgets"></div>                                          ...
Lightweight containerLoading the polls gadgetjQuery(.polls).openSocialGadget({ baseURL: #{baseURL}, language: #{localeSele...
12
OAuthNuxeo supports OAuth authenticationConnect to third party services supportingOAuth, like Google DocsOAuth authenticat...
Following the StandardMost of our gadgets are fully OpenSocialWork on other OpenSocial containers:iGoogle, JIRA, ...Nuxeo ...
15
Gadget SpecRendered through FreemarkerPredefined Freemarker templatesJS context injected                                 16
Automation JS LibraryLibrary to be used in gadgetsCall Nuxeo automationHandle OAuth authenticationEasy to use!            ...
Automation JS libraryIncludes<script  src="${specDirectoryUrl}default-automation-request.js"></script>...<#include "defaul...
Automation JS libraryQuerying documentsvar requestParams = {   operationId: Document.PageProvider,   operationParameters: ...
Automation JS libraryQuerying documentsfunction myCallback(response, params) {  var docs = response.data.entries;  ...}   ...
Automation JS libraryEasy document listing<script   src="${specDirectoryUrl}default-documentlist-display.js"></script>...<...
Nuxeo IDEGadget templatesDefault gadget structure, contributionFully OpenSocialSupports hot reload!                       ...
Nuxeo IDEGadget templatesStandard gadgetOAuth authenticationInternationalizationAutomation gadgetAutomation JS libraryDocu...
Thank you!             24
Upcoming SlideShare
Loading in...5
×

Nuxeo - OpenSocial

1,486

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,486
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×