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
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
React本体のコードリーディング
high_g_engineer
1
140
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
220
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
680
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
390
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
140
テーブルをDELETEした
yuzneri
0
140
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.9k
FDEが実現するAI駆動経営の現在地
gonta
2
280
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
570
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
360
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
380
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
930
Embracing the Ebb and Flow
colly
88
5.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.6k
Paper Plane
katiecoart
PRO
2
53k
My Coaching Mixtape
mlcsv
0
220
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
510
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
270
Balancing Empowerment & Direction
lara
6
1.2k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
570
The Language of Interfaces
destraynor
162
27k
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