custom development with novell teaming

Post on 07-Nov-2014

8.546 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

Novell Teaming offers excellent functionality out of the box. It also offers limitless possibilities for customization based on your organization's needs. Attend this session to learn how easily you can create custom branding elements for your Novell Teaming environment—and how you can create extensions from Novell Teaming to other applications. You'll receive step-by-step instructions on the process from Novell Teaming engineers and experts.

TRANSCRIPT

Custom Development with Novell® Teaming

Peter HurleySoftware Engineer ConsultantNovell, Inc.phurley@novell.com

© Novell, Inc. All rights reserved.2

Customizing Your Novell® Teaming Site

• Basic customizations– No coding required

• Custom JSPs– Simple modifications using JSPs and JSTL

• Remote applications– Integration with other applications

• Extensions– Extending the teaming code

• Configuration files• Language translations

© Novell, Inc. All rights reserved.3

Basic Customizations (Quick Review)

• Standard out-of-the-box operations– No coding necessary

• Customization options– Branding

– Forms and views

– Landing pages

– Work-flows

– Templates

– Accessories

© Novell, Inc. All rights reserved.4

Branding (Example)

© Novell, Inc. All rights reserved.5

Branding (How to Add Branding)

© Novell, Inc. All rights reserved.6

Branding (How to Set Branding on the Log-in Page)

• If you are willing to show the top workspace to the world...

– Add “guest” as visitor to the top workspace

– Then, add “guest” visitor access to the guest workspace

• If not...

– Add “guest” access to the guest workspace

– Then, add the desired branding to the guest workspace

© Novell, Inc. All rights reserved.7

Branding (Tips)

• Anyone can add branding to their own work-spaces and folders

– Inherited by all work-spaces and folders below it

• You can add graphics and text

• Put company branding on the top workspace

– Sets the branding for the whole site (unless overridden below here)

© Novell, Inc. All rights reserved.8

Branding (Default Starting Page)

• Setting a landing page as the default starting page– Create a landing page (using the top workspace is good)– Make sure everyone has read access to this page

> Add “Guest” as visitor if you want this to be available before logging in

– Create a simple URL for this landing page> Click “Manage/Configure”, then create the simple URL

– Edit the config file: webapps/teaming/WEB-INF/web.xml> Change the “landingPagePath” value to be your simple URL

<context-param>

<param-name>landingPagePath</param-name>

<param-value>/ssf/a/</param-value>

</context-param>

© Novell, Inc. All rights reserved.9

Forms and Views (Example)

© Novell, Inc. All rights reserved.10

Forms and Views (Summary)

• Form and view designer– Create site wide designs– Create designs that are local to a folder or workspace

• Create new entry types– Add new form elements

> Radio buttons> Select boxes> Text

– Entry data is searchable– “Configure” folders to allow the new entry type

Use this to add additional user profile attributes

© Novell, Inc. All rights reserved.11

Additional User Profile Attributes(Areas of Expertise)

© Novell, Inc. All rights reserved.12

Form and View (Extend the User Profile)

© Novell, Inc. All rights reserved.13

Form and View (Extend the User Profile)

© Novell, Inc. All rights reserved.14

Landing Pages (Examples)

© Novell, Inc. All rights reserved.15

Landing Pages (Examples)

© Novell, Inc. All rights reserved.16

Landing Pages (How to Create a Landing Page)

© Novell, Inc. All rights reserved.17

Landing Pages

• Provides a nice introduction to your workspace

• Cleaner layout, easier to understand

• Dynamically updated with the latest information

– Content is pulled from other folders and entries

• Easy to create and manage

– Multiple people feeding information onto the landing page

© Novell, Inc. All rights reserved.18

Work-flows

• Business processes• Content management

• Parallel processing• Filtered data

Orientation

Add User Profile to eDirectory™

Add E-mail Account

Contact Payroll

New Employee

Prepare Office

Turn on Phone

Tasks Completed

Process Completed

FacilitiesHR IT

© Novell, Inc. All rights reserved.19

Accessories (Example)

© Novell, Inc. All rights reserved.20

Accessories (Example)

• Add additional content to work-spaces and folders

– Search results

– Blog and wiki summaries

– Merged calendars

– Task lists

– External web pages (using an iframe)

– Remote applications

© Novell, Inc. All rights reserved.21

Templates

• User workspace configuration

– Default folders and accessories

– Default access controls

• Predefined project work-spaces

– Common layout for each project

– This can be done with Export/Import, too

© Novell, Inc. All rights reserved.22

Templates (Change User Workspace Default)

© Novell, Inc. All rights reserved.23

Templates (Change User Work-space Default)

© Novell, Inc. All rights reserved.24

Custom JSPs

• Custom forms and views

• Custom landing pages

• Custom JSP call-outs

• CSS, colors and images

© Novell, Inc. All rights reserved.25

Custom JSPs in Forms and Views

© Novell, Inc. All rights reserved.26

Custom JSP (W-4 Form - custom_jsps/samples/w4)

© Novell, Inc. All rights reserved.27

Custom JSPs in Forms and Views

© Novell, Inc. All rights reserved.28

Custom JSP on a Landing Page

© Novell, Inc. All rights reserved.29

Custom JSPs on Landing Pages

• webapps/ssf/WEB-INF/jsp/custom_jsps/samples

© Novell, Inc. All rights reserved.30

Custom JSP Call-outs

• Built-in hooks for adding custom code– Head, CSS, sidebar, search results, mobile head– webapps/ssf/WEB-INF/jsp/custom_jsps

ss_call_out_head.jspss_call_out_css_init.jspss_call_out_sidebar_top.jspss_call_out_sidebar_middle.jspss_call_out_sidebar_bottom.jspss_call_out_mobile_head.jspss_call_out_servlet_head.jspss_call_out_find_search_results.jsp

© Novell, Inc. All rights reserved.31

Add a Custom Toolbar Item (Example)

• How to add a new link to the footer toolbarss_call_out_head.jsp

© Novell, Inc. All rights reserved.32

Changing Teaming CSS and Colors

ss_call_out_css_init.jsp

© Novell, Inc. All rights reserved.33

Remote Applications

• Integration of external applications with teaming

– Data from external application is shown on teaming pages

• Multi-level security model

• Runs on a separate server (e.g., PHP)

– Can run under the same Tomcat used by teaming

• Integrated with teaming web services

© Novell, Inc. All rights reserved.34

Remote Application (Example)

© Novell, Inc. All rights reserved.35

Remote Application Security Model

• Administrator controlled– Administrator specifies who can use it– Administrator specifies the maximum set of rights it can use

• Workspace owner selects the remote application(s) to be shown

• Security token created for web services calls– Tokens valid through the current user's login session– Token limited to that user's session– Work-flow tokens valid for one execution of the

remote application

© Novell, Inc. All rights reserved.36

Remote Application Calling Sequence

1. User views a page2. Teaming calls the remote application

HTTP Posta) User Idb) Folder Idc) Application Idd) Security token

3. Remote application calls teaming via web servicesa) Uses security token to login as current userb) Retrieves any desired information from teaming

4. Remote application returns HTML to be displayed

© Novell, Inc. All rights reserved.37

Remote Application Examples

• The Kablink Source Kit has many examples

– http://community.kablink.org/teaming/community

– Follow the link to the source code in SourceForge

– trunk/ssf/samples/remoteapp/...

> Hello World

> Twitter

> Google Wave

> Add Entry

> Task List

© Novell, Inc. All rights reserved.38

Extensions

• What is an extension?• Managing and packaging an extension• Examples

– New entry types– Landing page extensions– Workflow call-outs– Virus checker

• Kablink sample extensions:– http://community.kablink.org/teaming/extensions

> News Feed (show static HTML pages in a landing page)

> Landing page survey

> Flow Player Video Entry

> Twitter

© Novell, Inc. All rights reserved.39

What Is an Extension?

• A packaged add-on to teaming

– New entry types or work-flows

– New templates

– Work-flow call-out code

• Enabled by the site administrator

• Zone specific

• Cannot be used to “extend” controllers or modules

© Novell, Inc. All rights reserved.40

Managing Extensions

• Go to the “Site Administration” menu• Click on “Manage Extensions”

© Novell, Inc. All rights reserved.41

Extensions Packaging

install.xml

© Novell, Inc. All rights reserved.42

Workflow Call-out Extension

• Post a teaming entry to Twitter– When work-flow state is moved to “Twitter”, a Tweet is posted– The current user is the author of the Tweet– Entry title is sent as the Tweet text– A TinyURL is added that points back to the teaming entry

© Novell, Inc. All rights reserved.43

Twitter Work-flow

© Novell, Inc. All rights reserved.44

Workflow Call-Out Code

© Novell, Inc. All rights reserved.45

Landing Page Extension

• Four new landing page options

– Entry including author, date, description and replies

– Folder including entry author, date, description and replies

– Folder list including entry author and date

– Survey (or a list of surveys)

• Easily customized to display other entry attributes

– e.g., task priority, status and percentage completed

• http://community.kablink.org/teaming/extensions

© Novell, Inc. All rights reserved.46

Landing Page Extension (Example)

© Novell, Inc. All rights reserved.47

Landing Page Extension (Example)

© Novell, Inc. All rights reserved.48

Configuration File Customizations

• ssf.properties– Enable/disable RSS– Disallow sending mail to “All Users”– Add/delete folder and workspace icons– Set the default lines per page– Add new mobile devices– Add “edit-in-place” editors– Make export/import available to everyone– Change quota algorithm from “Strict” to “Lenient”– Define new accessories

• Put changes in ssf-ext.properties

© Novell, Inc. All rights reserved.49

ssf-ext.properties(webapps/ssf/WEB-INF/classes/config/ssf-ext.properties)

© Novell, Inc. All rights reserved.50

How to Define a New Accessory

• Define the new accessory – ssf-ext.properties

• Add JSPs – configure and view (custom_jsps/weather)

• Extend the workspace controller if setup needed

© Novell, Inc. All rights reserved.51

Weather Accessory

• Configuration jsp (weather_config.jsp)

• View jsp (weather_view.jsp)– ${ssDashboard.dashboard.components[ssComponentId.data.zip}

© Novell, Inc. All rights reserved.52

Weather Accessory

© Novell, Inc. All rights reserved.53

Security Customizations

• ssf.properties

– Extend the XSS checking algorithms

– Enable/disable Web Services

– Enable/disable remote applications

– Disallow login via the login form

© Novell, Inc. All rights reserved.54

Language Translations

• Modify an existing translation– ssf/WEB-INF/messages/messages-ext_de.properties– navigation.findTeams=Teams finden

• Add a new translation– ssf-ext.properties

> i18n.locale.support=en,da,de,es,fr,hu_HU,it,ja_JP,nl,pl,pt_BR,ru_RU,sv,zh_CN,zh_TW,el

– webapps/WEB-INF/messages/messages_el.properties

© Novell, Inc. All rights reserved.55

What Happens on Upgrades?

• Not overwritten– Custom JSPs in ssf/WEB-INF/jsp/custom_jsps

– Extensions or Remote Applications

– ssf-ext.properties

– zone-ext.cfg.xml

– ssf/messages/message-ext_de.properties

• Overwritten– ssf/css, ssf/images, ssf/js

– New language files(e.g., ssf/messages/messages_el.properties)

© Novell, Inc. All rights reserved.56

Resources

• http://kablink.org or http://community.kablink.org– Teaming Library

> Extensions> Customizations

– Discussion Forum (General Information)

• Novell® Teaming 2.1 Administration Guide– http://www.novell.com/documentation– Documentation includes:

> Enabling custom JSPs to be used on your teaming site> Using remote applications on your teaming site> Adding software extensions to your teaming site

Questions and Answers

Unpublished Work of Novell, Inc. All Rights Reserved.This work is an unpublished work and contains confidential, proprietary, and trade secret information of Novell, Inc. Access to this work is restricted to Novell employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of Novell, Inc. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.

General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. Novell, Inc. makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for Novell products remains at the sole discretion of Novell. Further, Novell, Inc. reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All Novell marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.

top related