Top Banner
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality Oct. 11, 2016
89

XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Jan 09, 2017

Download

Technology

Teamstudio
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Oct. 11, 2016

Page 2: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

This webinar is brought to you as part of the free monthly webinar series from:

Page 3: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Howard Greenberg@TLCC

Paul Della-Nebbia@PaulDN

Courtney Carter@Teamstudio

Michael Smith@MichaelGSmith

Page 4: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Teamstudio provides products that help organizations with customized business

applications implement best practices, work more efficiently, and prepare for the future.

About Teamstudio

Page 5: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

https://www.teamstudio.com/

Page 6: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

TLCC Courses

• The Leader in Notes and Domino Training since 1997

• Self Paced Distance Learning Courses

– XPages, Development, and Administration

• XPages from basic to advanced

– Two Java courses

– JavaScript course

– XPages 2 course

– Rapid Application Development

• Free demo courses

– Intro. To XPages Development

Page 7: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

2

• Save hundreds and even Thousands of Dollars on the most popular courses and packages:XPages DevelopmentNotes and Domino DevelopmentDomino Administration

• Now Extended to October 28th

http://www.tlcc.com/fallsale

Page 8: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

TLCC Development Services

• Let us help with your development needs

– Bootstrap

– Java

• Convert Notes Apps to mobile and the web!

• Modernize old Domino web applications

• Interface with backend data systems

• Skills transfer

3

Page 9: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Upcoming and Recorded Webinars

• November – IBM Presents Notes/Domino Roadmap

• December – Application Modernization Options

www.tlcc.com/xpages-webinar

View Previous Webinars(use url above)

Page 10: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

IBM Champion Nominations are Open

• Nominations are open for the IBM Champion program

– Through November 14th

– Go here to complete the nomination form

• If you think someone has contributed to the ICS community then nominate them!

– Speaks at conferences

– Helps out in forums and Stack Overflow, etc.

– Hosts videos, blogs, webinars

– More about the IBM Champion Program here

5

Page 11: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Asking Questions – Q and A at the end

Use the Orange Arrow button to expand the GoToWebinar panel

Then ask your questions in the Questions pane!

We will answer your questions verbally at the end of the webinar

Page 12: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

7

XPages and jQuery DataTables - Simplifying View creation while maximizing functionality

Michael SmithMutual Boiler Re@MichaelGSmith

Page 13: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

October 11, 2016

Xpages & jQuery DataTables

Simplifying View creation while maximizing functionality in XPage applications.

Page 14: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Notes & Domino developer for ~18 years

– Focused on XPages for past 5-6 years

• As a consultant was able to work for some very interesting companies

• Currently a Senior Developer for Mutual Boiler Re

– We are kind of a niche inside a niche

• My blog: http://xpage.me

• Twitter: @michaelgsmith

• LinkedIn: http://www.linkedin.com/in/magnitudesolutions

Michael G. Smith - About Me

Page 15: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Introduction to DataTables (http://datatables.net)

– Try to cut through the fat and focus on the most useful stuff

– This is not a comprehensive overview (we’d be here all week)

• Roadmap to quickly surface view data in your Xpage apps

– Brand new or existing apps

• Share my experiences and lessons learned

– I learned a lot just working on this presentation!

• How to take everything and utilize it in an enterprise application

– Scalability

• You should be able to walk away and utilize these concepts immediately

– If I’ve done my job

Goals for this session

Page 16: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Developers “modernizing” legacy Notes/Domino Apps

– Focus is on building Notes-like views and embedded views, but better

• Anyone interested in using REST to surface data to a front end application to provide highly functional , nice looking grids

– These concepts aren’t limited to XPages

Who is this session for?

Page 17: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• What is DataTables?

• Why DataTables?

• Getting started with DataTables

• Putting the “Data” in DataTables

• The DataTables lifecycle

• Advanced configuration

• Domino View Management

• Putting it all together

Agenda

Page 18: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Simply defined, it is:

– A client side framework/library

– A jQuery plugin

– It’s HUGE!

• It is NOT:

– the XPages control

• From the DataTables online manual:

The stated goal of DataTables is "To enhance the accessibility of data in HTML tables”.

• My definition:

– A great tool for creating Domino-like rich views in XPage and web applications

What is DataTables?

Page 19: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Very easy to hit the ground running

• Integrates well with Bootstrap

• Further separates data from design

• Became more and more impressed with it’s capabilities

• “A” way, not “The” way

• Extremely well documented through online reference material and support forums (http://datatables.net)

– When using example code try to make sure it is from v 1.10 or later

• Excellent at handling data types

• Great replacement for views and embedded views

– Embedded views on tabs – only load data when tab is clicked

Why DataTables?

Page 20: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Adding files to your project

– CDN

– In the NSF (WebContent)

– Package Manager (Bower/NPM)

• Dependencies

– jQuery 1.7 or later

• My Demos

– DataTables 1.10.2

– jQuery 1.11.2

Getting started with DataTables

Page 21: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Styling options

– Default DataTables css

– Bootstrap

• Requires a reduced DataTables css

• Use the Bootstrap table classes when assigning classes to the table markup

– Other frameworks

• Foundation

• jQuery UI

– Use the DataTables theme creator to match your UI– https://datatables.net/manual/styling/theme-creator

Getting started with DataTables (cont.)

Page 22: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Add appropriate source files to your theme

– Using Core DataTables

• DataTables CSS

• jQuery

• DataTables js

– Using Bootstrap

• Bootstrap css

• DataTables Bootstrap css

• jQuery js

• Bootstrap js

• DataTables js

Getting started with DataTables (cont.)

Page 23: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Putting the “Data” in DataTables

Page 24: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• From the Docs:Data for a DataTable can essentially come from three different locations:

– HTML - ideal for when your table already exists and has been populated with data.

– Javascript Array - used when your data exists in a JavaScript array

– An Ajax data source (JSON or JavaScript array)

• Let’s start with a simple xp:repeat

Putting the “Data” in DataTables

Page 25: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Putting the “Data” in DataTables (cont.)

• Adding a DataTable to a xp:repeat

Page 26: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Simple xp:repeat Demo

Putting the “Data” in DataTables (cont.)

Page 27: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables default configuration

Adding a DataTable to a xp:repeat (cont.)

Page 28: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables default configuration

Adding a DataTable to a xp:repeat (cont.)

Page 29: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables default configuration

Adding a DataTable to a xp:repeat (cont.)

Page 30: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables configuration options

Adding a DataTable to a xp:repeat (cont.)

Page 31: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables configuration options (most common)

– paging

– searching

– info

– ordering

– scrollY (my new favorite)

Adding a DataTable to a xp:repeat (cont.)

Page 32: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Demo – adding simple configuration

Adding a DataTable to a xp:repeat (cont.)

Page 33: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Simply add classes to your table markup

Adding style to the xp:repeat

Page 34: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• From the DataTables reference:

Adding style to the xp:repeat

Page 35: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common:

– hover

– stripe

– row-border OR

– cell-border

Adding style to the xp:repeat

Page 36: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• By applying classes to the markup we turn this:

Adding style to the xp:repeat (cont.)

Page 37: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Into this:

Adding style to the xp:repeat (cont.)

Page 38: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• If using the Bootstrap DataTables css then use the Bootstrap table classes

– http://getbootstrap.com/css/#tables

Adding style to the xp:repeat (cont.)

Page 39: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• In Bootstrap:

Adding style to the xp:repeat (cont.)

Page 40: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Creating a DataTable from REST data

Page 41: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Use the “ajax” option to retrieve data:

Creating a DataTable from REST data

Page 42: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• DataTables expects:

– Array of arrays

• Columns object must be defined or ..

• Markup must contain thead with th/td cells for each data column

– Array of objects (JSON)

• Columns object must be defined!

Creating a DataTable from REST data (cont.)

The columns object is really, really important !!!

Page 43: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Array of arrays

– Defining the columns object

• Need one object per column

• With no data field, the order of the objects must correspond to the order of the returned data

• Use the data field to match up objects with 0 based index of the row array (order doesn’t matter)

Creating a DataTable from REST data (cont.)

Page 44: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Array of arrays

– Using markup

• Must have a thead element and a th or td for each column

• Order matters

Creating a DataTable from REST data (cont.)

Page 45: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Array of objects (JSON)

– Columns object must be defined!

Creating a DataTable from REST data

Page 46: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Array of objects (JSON)

– Map the “data” field of the columns object to the appropriate field in the returned JSON object

Creating a DataTable from REST data

Page 47: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data from Domino:

• xeViewJsonService

– Pros

• Easy to hit the ground running

• Domino handles data serialization

– Cons

• More difficult to fine tune the data returned (i.e. reduce payload size)

Creating a DataTable from REST data (cont.)

Page 48: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data from Domino:

• xeViewJsonService

Creating a DataTable from REST data (cont.)

Page 49: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data from Domino:

Creating a DataTable from REST data (cont.)

Page 50: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data in Domino:

• xeCustomRestService

– Pros

• More granular control

• Easier to define the column definitions at the rest service

– Cons

• Need to be aware of data types and make sure data is serialized properly

• Need to actually write the code that builds the data

Creating a DataTable from REST data (cont.)

Page 51: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data in Domino:

• xeCustomRestService

Creating a DataTable from REST data (cont.)

Page 52: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data in Domino:

• xeCustomRestService

Creating a DataTable from REST data (cont.)

Page 53: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The most common ways to retrieve REST data in Domino:

• XAgent

– Pros

• More granular control (even more?)

• Easier to define the column definitions at the rest service

– Cons

• Need to be aware of data types and make sure data is serialized properly

• Need to actually write the code that builds the data

Creating a DataTable from REST data (cont.)

Page 54: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• REST demo:

Creating a DataTable from REST data (cont.)

Page 55: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

The DataTables Lifecycle

Page 56: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Use callbacks to provide a “rich” view experience

– initComplete()

– drawCallback()

– rowCallback()

– createdRow()

• Similarities to the XPages lifecycle

• Be cognizant of your users

– Don’t slow down user experience by adding too much client side processing

The DataTables “Lifecycle” (callbacks)

Page 57: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Callback demo

The DataTables “Lifecycle” (callbacks) (cont.)

Page 58: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Advanced Configuration

Page 59: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Advanced Configuration

• Row click events

• Renderers

• Programmatic filtering

• Dynamically inserting new rows (Lazy loading/Infinite scroll)

• Categorization

• Reloading data (view refresh)

• Fixed table headers

• View column icons

• Server column resort

• Error handling

• Using a DataTable as a Picklist

Page 60: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Adding click events

– Use the “createdRow” or “rowCallback” callbacks

• DataTables docs say createdRow is more efficient

• This *should* result in better browser performance, i.e. javascriptobjects won’t be left behind when the DataTable is destroyed

– Be aware when double clicking, click event is also fired unless the timeout method is used

• This is a browser issue, not DataTables

• Demo

Advanced Configuration

Page 61: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Renderers

– Possibly the most powerful aspect of DataTables

– Executed whenever DataTables needs to get the data for a cell in the column.

– This function might be called multiple times, as DataTables will call it for the different data types that it needs:

• display

• sorting

• filtering

– Orthogonal Data

• Each data point has the ability to take multiple forms

• Demo:

Advanced Configuration (cont.)

Page 62: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Renderers

Advanced Configuration (cont.)

Page 63: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Filtering programmatically

– The real power of DataTables can be exploited through the use of the API

– Tables can be searched by row, column or globally across all data

– Must call the draw() event after performing search

• Demo

Advanced Configuration (cont.)

Page 64: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Filtering programmatically

Advanced Configuration (cont.)

Page 65: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Filtering programmatically

Advanced Configuration (cont.)

Page 66: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Lazy Loading

– Grab additional data via REST and use DataTables api to insert rows

• Demo

Advanced Configuration

Page 67: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Categorization

– Not built in to DataTables but easy to add using the api and callbacks

– Outdated, but sometimes still a requirement during the app modernization process

• Gently ease users into new tech by keeping some familiarity

• Demo

Advanced Configuration

Page 68: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Reloading data

– Avoid the dreaded “Can’t reinitialize DataTable” message

• When referencing your table be sure to use the same class it was instantiated with

– When data is reloaded current sort remains intact

Advanced Configuration

Page 69: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Fixed Table Headers

– When adding a grid to a web application, ultimately users will want the column headers to freeze while scrolling through data

– Used to this functionality in Notes

– DataTables has a Fixed Header extension

• Requires loading additional resources

• Creates a layer on top of the original table header

– Better Headers with scrollY

• Set scrollY to 0 in DataTables initialization

• Compute size of scroll body

• Came up with this method while preparing this presentation!

Advanced Configuration

Page 70: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Fixed Table Headers

Advanced Configuration

Page 71: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Fixed Table Headers

Advanced Configuration

Page 72: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Fixed Table Headers

– Fixed Header Demo

– Multip

Advanced Configuration

Page 73: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• View column icons

– Column icons were one of the great, simple things about Notes views

– If using Font Awesome in your application, this becomes even easier

– Another example demonstrating the power and usefulness of renderers

Advanced Configuration

Page 74: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• View column icons

– Setup the back end view

Advanced Configuration

Page 75: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• View column icons

– In the columns configuration, tell DataTables that the colIconEmailcolumn will be built with a renderer

Advanced Configuration

Page 76: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• View column icons

– Build the column icon with the renderer

Advanced Configuration

Page 77: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Server Resort

– Backend view columns must be set to click to sort!

– This example is a good example of not having a clear path but using the tools available in DataTables

– Add className to the columns config

Advanced Configuration

Page 78: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Server Resort

– Add click event to column headers

– Rebuild url based on clicked column and call reload

Advanced Configuration

Page 79: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Error Handling

– By default DataTables will alert all errors

– Errors can be suppressed by throwing to the console

– Be aware! Setting this option changes it for ALL DataTables on the page!

Advanced Configuration

$.fn.dataTable.ext.errMode = ‘throw';

Page 80: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Error Handling

– Version 1.10.5 of DataTables introduced the ability to customize the error handling

Advanced Configuration

$('#example')

.on( 'error.dt', function ( e, settings, techNote, message ) {

console.log( 'An error has been reported by DataTables: ', message );

} )

.DataTable();

Page 81: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

Putting it all together

Page 82: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Manage your Domino views

– Separation of data and functionality

– Use views as strictly back end data containers

• Load em up with data!

– Minimize “click to sort” columns to reduce view index size

– Domino ISO-8601 dates can be problematic if not careful

• Ex. 1957-03-14T21:54:30Z

• My preference: creating a text column

– Strip out unnecessary columns, i.e. colors, icons

• May need to create REST only views in coexistence scenarios

– Fewer views

• No more specialized views with only a handful of columns

• Utilize categories and keys and ftsearch

Putting it all together

Page 83: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• Managing your Domino views (cont.)

– Make sure columns have an itemName !!!

Putting it all together (cont.)

Page 84: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• In order to apply all of this to an enterprise application we need to be able to “connect” the data to the configurations

• My solution: REST View Manager

– Configure DataTable configurations in a browser and store json in a Notes Document

• Minimizes need to touch designs

• Makes view customization by users much easier to implement and manage

– Use a custom control that can be dragged and dropped into any Xpage or custom control and configured through custom properties

– Opens the door to allowing users to customize their views

Putting it all together (cont.)

Page 85: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• REST View Manager

Putting it all together (cont.)

Page 86: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• REST View Manager

Putting it all together (cont.)

nsf

REST configuration created client side

Xpage

DataTableClient Side

Serverside

REST ServiceRead view config

Read view config

GET data

Save view config

Page 87: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

xpage.me XPages & jQuery DataTables

• The Grand Finale Demo!

– Create a new REST configuration

– Create an Xpage

– Add the ccRestView custom control to the xpage

– Configure the ccRestView custom control with new REST configuration

– Revel in view data!

Putting it all together (cont.)

Page 88: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

Questions????

Use the Orange Arrow button to expand the GoToWebinar panel

Then ask your questions in the Questions panel!

Remember, we will answer your questions verbally

Page 89: XPages and jQuery DataTables: Simplifying View Creation while Maximizing Functionality

@MichaelGSmith

#XPages

@TLCCLtd

@Teamstudio

@PaulDN

Upcoming Events: Cross Canada User Group – Nov. 17th DominoPoint in Milan, Italy – Dec. 14th Connect 2017 in San Francisco, CA – Feb. 20th to 23rd

Question and Answer Time!

Teamstudio [email protected]

978-712-0924

TLCC [email protected] [email protected]

888-241-8522 or 561-953-0095

Howard Greenberg

Courtney Carter

Paul Della-Nebbia

Save on TLCC Training with the Fall Sale!

Michael Smith