Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxeo - OpenSocial
Search
Thomas Roger
February 29, 2012
Programming
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxeo - OpenSocial
Thomas Roger
February 29, 2012
More Decks by Thomas Roger
See All by Thomas Roger
Nuxeo - Digital Asset Management
troger
1
460
Other Decks in Programming
See All in Programming
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
570
New "Type" system on PicoRuby
pocke
1
860
Oxlintのカスタムルールの現況
syumai
6
1.1k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.8k
Oxcを導入して開発体験が向上した話
yug1224
4
310
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.6k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
10
4k
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
410
Test your architecture with Archunit
thirion
1
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
It's Worth the Effort
3n
188
29k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Marketing to machines
jonoalderson
1
5.4k
Amusing Abliteration
ianozsvald
1
200
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
Open Source ECM 2011 - Thomas Roger -
[email protected]
-
@throger Nuxeo - OpenSocial Leveraging OpenSocial within the Nuxeo Platorm
Why OpenSocial? Common standard used in the enterprise Easy for
developers HTTP, XML, HTML, JavaScript and RESTful APIs Gadgets as reusable blocks 2
GWT Container 3 Contributed by Leroy Merlin Apache Shindig +
GWT2 Easier to integrate in your application Lighter & faster!
4
5 Implement a new SpaceProvider MySpaceProvider extends AbstractSpaceProvider { ...
} Create your own dashboard GWT Container
6 Implement a new SpaceProvider MySpaceProvider 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> </extension> Create your own dashboard GWT Container
7 <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> Use it in your page GWT Container
Lightweight Container 8 Why? Simple gadget integration Static positioning in
the page How? JS container from Apache Shindig jQuery plugin available Simple to use!
<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 Includes Lightweight container
<div class="polls gadgets-gadget-chrome gadgets"> </div> 10 HTML Lightweight container
jQuery('.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 Loading the polls gadget Lightweight container
12
Nuxeo supports OAuth authentication Connect to third party services supporting
OAuth, like Google Docs OAuth authentication in gadgets <ModulePrefs> <#include "default-oauth-prefs.ftl"/> </ModulePrefs> 13 OAuth
14 Most of our gadgets are fully OpenSocial Work on
other OpenSocial containers: iGoogle, JIRA, ... Nuxeo can use external gadgets (those available on iGoogle for instance) Following the Standard
15
Gadget Spec Rendered through Freemarker Predefined Freemarker templates JS context
injected 16
Automation JS Library Library to be used in gadgets Call
Nuxeo automation Handle OAuth authentication Easy to use! 17
<script src="${specDirectoryUrl}default-automation-request.js"> </script> ... <#include "default-request-controls.ftl"/> 18 Includes Automation JS
library
var 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 Querying documents Automation JS library
function myCallback(response, params) { var docs = response.data.entries; ... }
20 Querying documents Automation JS library
<script src="${specDirectoryUrl}default-documentlist-display.js"> </script> ... <#include "default-documentlist-layout.ftl"/> ... var requestParams =
{ ... displayMethod: displayDocumentList, }; 21 Easy document listing Automation JS library
Nuxeo IDE Gadget templates Default gadget structure, contribution Fully OpenSocial
Supports hot reload! 22
Standard gadget OAuth authentication Internationalization Automation gadget Automation JS library
Document listing JS library 23 Gadget templates Nuxeo IDE
Thank you! 24