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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
CSC307 Lecture 17
javiergs
PRO
0
320
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
340
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
330
Claspは野良GASの夢をみるか
takter00
0
190
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
net-httpのHTTP/2対応について
naruse
0
480
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
140
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
160
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.8k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
840
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Designing Experiences People Love
moore
143
24k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Prompt Engineering for Job Search
mfonobong
0
340
Mobile First: as difficult as doing things right
swwweet
225
10k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Facilitating Awesome Meetings
lara
57
7k
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