introduction dojo toolkit & ibm lotus domino

35
Introduction Samples Installation Step-by-Step Resources Discussion Introduction dojo Toolkit & IBM Lotus Domino February 2008 Dr. Rolf Kremer (PAVONE AG )

Upload: rolf-kremer

Post on 18-May-2015

25.766 views

Category:

Technology


2 download

DESCRIPTION

This presentation shows an introduction to the usage of the dojo toolkit in an IBM Lotus Domino application. The presentation based on a three hour workshop in which the sample application 'Phone Directory' was developed.

TRANSCRIPT

Page 1: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Introductiondojo Toolkit &

IBM Lotus Domino

February 2008

Dr. Rolf Kremer (PAVONE AG)

Page 2: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Agenda

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Page 3: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

What is the Dojo Toolkit?

Open Source JavaScript Toolkit

Developed by the Dojo Foundation (Member: IBM, Sun, AOL, BEA, and more)

Available: http://dojotoolkit.org/

First release in November 2007

Should be integrated in IBM Lotus Domino (planned)

Page 4: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Dojo History

2004: Dojo 0.0: How do I create something like GMail?

2005: 0.1, 0.2: More features

2006: 0.3, 0.4: Features, doc writer

2007-06: 0.9: Redesign

2007-11: 1.0: First release

165.000+ downloads since Dojo 1.0

Source: http://www.dojotoolkit.org/files/ddd4day1summary.pdf

Page 5: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Dojo Roadmap

2008-02: 1.1 RC (Beta: 19.02)

2008-03: 1.1 (Firefox 3 Dijit support)

2008-04: 1.1.1

2008-05: 1.2 (Grid + Charting Improvements)

2008-06: 1.2.1

2008-07: 1.2.2

2008-08: 1.3

2008-11: 1.4

Source: http://www.dojotoolkit.org/files/ddd4day1summary.pdf

Page 6: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Dojo Modules

CoreContains basic librariesAjax, evens, packaging, CSS-based querying, animations, JSON, language utilities Size: 23 k

DijitSkinnable, template-driven widgetsAccessibility and localization

DojoXInventive & innovative code and widgetsVisualize of data with grids and chartsPre-beta or beta widgets

Page 7: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

JavaScript Frameworks

Prototype

Dojo ToolkitScript.aculo.us

Mootools

jQuery

Open Rico

TIBCO General Interface

qooxdoo

Macao

Yahoo! User Interface Library

Zimbra AjaxTK

Ext

BACKBASE

crossvision

… and more…

Page 8: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Dojo Samples

Dojo Webseite

Dojo Feature Explorer

Sample by Rocky Oliver (IBM Lotus Domino)

PAVONE Solution Center

PAVONE Process Control Suite (JEE)

Demo ‚Phone Directory‘ (IBM Lotus Domino)(This demo will be developed in this workshop.)

Widgets (GCC project)

Page 9: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Dojo & Domino

Domino form fields that can be Dojo enabled:

Source: Lotusphere 2008 – Presentation: AD303.pdf

Page 10: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Domino Extensions (1)

View:

Source: Lotusphere 2008 – Presentation: AD303.pdf

Page 11: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Domino Extensions (2)

Source: Lotusphere 2008 – Presentation: AD303.pdf

Page 12: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Domino Extensions (2)

Source: Lotusphere 2008 – Presentation: AD303.pdf

Page 13: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Installation Options

AOL CDN (Content Distribution Network)+ Easy installation+ Easy update- Requried Internet access - AOL can log the access

Server installation+ Required only Intranet access+ Only one installation- Manual installation- Increased update effort- Need server administration access

Application installation+ Required only Intranet access+ Required no server administration access- Manual installation- Increased update efforto Application-specific

Page 14: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Installation Steps (1)

AOL CDNAdd following line to your head section:

Example:

<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.0.2/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script>

Server installationInstall dojo files on IBM Lotus Domino server Example: /data/domino/htm/dojo-release-1.0.2Add following line to your head section:Example:

<script type="text/javascript„

src="/dojo-release-1.0.2/dojo/dojo.js"

djConfig="parseOnLoad: true"></script>

Or another path

Page 15: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Installation Steps (2)

Application installationInsert dojo files into the database

Add following line to the head section:Example:

"<script type=\"text/javascript\„

src=\"/" + @WebDbName + "/dojo/dojo.js\" djConfig=\"parseOnLoad: true\"></script>"

Page 16: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step-by-Step (Developing a simple Phone Directory)

Step 1: Add dialog to add people to directory

Step 2: Open Person form in dialog

Step 3: Add Tab container

Step 4: Create new widget ‚AddressReferrer‘

Step 5: Install widget

Step 6: Add widget to form

(These steps are based on a pre-configured Phone Directory application.)

Page 17: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 0: Install Firebug (or another JavaScript debugger)

Firebug: Tool for debugging JavaScript in Firefox browers

Page 18: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 1: ‚Add Person‘ dialog (1)

Dojo Book: http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/layout/dialog

Example:

Page 19: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

1. Create subform „sa_DialogPerson“

<div dojoType="dijit.Dialog" id="dialogPerson" title="<Computed Value>" href="<Computed Value>" execute=„dijit.byId('fa_DialogPerson').hide();">

</div>

2. Insert subform in existing form „fa_View“

Remarks: - We create a subform since the dialog (code) can be used in other design elements, too.

- The field ‚tmpBaseUrl‘ contains the host name and database

path.

Step 1: ‚Add Person‘ dialog (2)

tmpBaseUrl + "/fa_DialogPerson?OpenForm"

„Person“

Page 20: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 1: ‚Add Person‘ dialog (3)

3. Create form „fa_DialogPerson“

Add WebQuerySave-Code:@Command([ToolsRunMacro]; "(WEBQuerySavePerson)")

Remark: The agent re-opens the page.

„Save“

„Close“

Page 21: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 1: ‚Add Person‘ dialog (4)

4. Create button to open dialog in form „fa_View“

<button dojoType="dijit.form.Button" onclick="showDialog('dialogPerson','fa_DialogPerson')"><Computed Value></button>

5. Add dojo.require statements („sa_DojoHeader“)

dojo.require("dijit.Dialog");dojo.require("dijit.form.Button");

6. Create agent „WebQuerySavePerson“

Sub InitializeDim ns As NotesSessionDim strTmpUrl As String

'// re-open viewSet ns = New NotesSessionstrTmpURL = "/" + ReplaceSubstring ( ns.CurrentDatabase.FilePath, "\", "/" ) + "/" + "Default" + "?OpenView"Print |<SCRIPT LANGUAGE="JavaScript"> location.replace( "| + strTmpURL + |" )</SCRIPT>|

End Sub

„Add Person“

Page 22: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 1: Test it

Result:

If the user clicks on the button ‚Add Person‘ the dojo dialog with the form ‚fa_DialogPerson‘ will be opened.

If the user clicks on the ‚Close‘ button, the dojo dialogwill be closed.

If the user clicks on the ‚Save‘ button, the dojo dialogwill be closed, a new Person document will be createdand the view will be refreshed.

Page 23: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 2: ‚Open Person‘ dialog (1)

Open dialog from view:

Page 24: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Change view column code to:

_tmpNumber := @Text ( @DocNumber );_tmpName := LastName + ", " + FirstName;_tmpPathEdit := "/0/" + @Text( @DocumentUniqueID ) + "?EditDocument";

_tmpOnClick := "onclick=\"showDocument('dialogPerson','" + _tmpPathEdit + "')\"";

_tmpValue := _tmpNumber + " " + "<a href=\"#\" " + _tmpOnClick + ">" + _tmpName + "</a>";

"<div class=\"pdViewColumn\">" + _tmpValue + "</div>"

Remarks:- The style sheet class ‚pdViewColumn‘ is defined in

‚PhoneDirectory.css‘.- The Javascript function „showDocument“ calls the dojo dialog

(Code see next page)

Step 2: ‚Open Person‘ dialog (2)

Page 25: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 2: ‚Open Person‘ dialog (3)

Javascript function:

function showDocument ( strPage, strPath ) {

// open page

dijit.byId( strPage ).setHref( G_BASEURL + strPath );

dijit.byId( strPage ).show();

setFocusToField( strPage ,'Firstname');

return;

}

Contains the host name and database path.

Function sets the focus to the field ‚Firstname‘.

Page 26: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 2: ‚Open Person‘ dialog (4)

Javascript function:

function setFocusToField ( strDialog, strFieldName ) {

// wait 500 ms to open the form, then set the focus to the first field

setTimeout(dojo.hitch( strDialog, function(){

document.getElementsByName( strFieldName )[0].focus();

}), 500);

}

If the loading process required more than 500 ms an error occured.

Page 27: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 2: Test it

Result:

If the user clicks on an entry in the view the dojo dialog with the form ‚fa_DialogPerson‘ will be opened.

The fields are filled from the selected document.

Page 28: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 3: Add Tab container

1. Add following code to „fa_View“

2. Add „dojo.require“ to subform „sa_DojoHeader“

dojo.require("dijit.layout.TabContainer");

dojo.require("dijit.layout.ContentPane");

The view „Default“ should be placed here.

Subform „sa_List“

Page 29: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 3: Test it

Result:

The view will be display in the first tab.

If the user switch to the second tab, the static subformcontent will be showed.

Page 30: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 4: Widget ‚AddressReferrer‘ (1)

Example „AddressReferrer“

Code to add widget on page: <input dojoType="pavone.widget.AddressRef" value="111" type="skype" id="phoneNumber" label="skype.gif" title="Call

person"/>

Link: http://homepages.uni-paderborn.de/okoehler/pav53/AddressRef.html

Call number with Skype

Create e-mail

Open http page

Text field + icon + link

Page 31: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 5: Install ‚AddressReferrer‘

Add to Phone Directory application:

1. Add js file to ‚Shared Resources\Files‘

2. Add css file to ‚Shared Resources\Style Sheets‘

3. Add skype.gif image to ‚Shared Resources\Images‘

Page 32: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 6: Add widget ‚AddressReferrer‘ (1)

1. Create field „SkypeNumber“ to form „fa_DialogPerson“

2. Add html tags (field section ‚Others‘)

dojoType="pavone.widget.AddressRef" type="skype" id="phoneNumber" label="skype.gif" title=„Call person"

Page 33: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Step 6: Test it

Remark:

If the user clicks on the Skype icon behind the input field the Skype client will be opened and the number in thefield will be called.

Page 34: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Resources

The Book of Dojo: http://dojotoolkit.org/book/dojo-book-1-0

Demos: http://dojotoolkit.org/key-links

Dojomino Blog: http://dojomino.com

LCTY 2008 presentation (german) by Martin Henning

Page 35: Introduction Dojo Toolkit & IBM Lotus Domino

Introduction

Samples

Installation

Step-by-Step

Resources

Discussion

Diskussion