Thursday, 7 December 2017

Domino 2025 Virtual Jams - The Next Chapter Begins

IBM's strategic partnership with HCL is a step towards bringing a robust and exciting roadmap for Notes Domino version 10 and beyond to increase commitment and deliver a major release in 2018. These 90 minute interactive virtual jams will give us as users / customers a chance to share our thoughts on the Domino V10 roadmap including Application Development, Mail, Chat and Meetings. With these virtual jams IBM wants to ensure they get both qualitative and quantitative insights into the formulation of the roadmap and product vision and our attendance at this virtual jams will help IBM to achieve this.

So keep the dialog going and connect with IBM Product Management and HCL development teams.


As mentioned there will be some Domino Virtual Jams during the coming period. The current #domino2025 jams are by invitation only, so if you have not received your invite, you can send an e-mail to rohitraveendran@in.ibm.com with the city you would like to attend. While invitations are limited in the face-to-face locations to just 35 people, everyone can attend the upcoming Domino 2025 Virtual Jams in their geography.
For registration and more information: We’re Off To a Great Start…Come Join Us!

Registration links Virtual Jam:
North America
Australia & New Zealand
Europe

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating


There will be a very interesting webinar on December 13, Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating organized by Teamstudio.

Content
Topic: Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Date: Wednesday, December 13, 2017
Time: 11 - 11:30 a.m. Boston time

Are you preparing to modernize your IBM Notes and Domino applications or migrate off the platform? Notes and Domino have provided a lot of proprietary design concepts over the years. Do you know where they're in use or what the impact will be on your modernization and migration projects?
Join Teamstudio for this webinar to see how using the search terms feature within Teamstudio Adviser can help to catalog the areas of possible problems. Additionally, learn how to use Teamstudio Configurator to pinpoint exactly where the problem areas are in your applications.

More information: Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating.

For more information see also the previous webinar Using Teamstudio Analyzer for Your Rewrite or Migration.
Are you trying to improve application performance but you're not sure where to start? Are you planning to migrate to a web app but you're unsure if there's code in your app that won’t work? Are you looking to move your app to a different server or domain, but you're unsure if there are references to the old server in your code? Have you been asked to provide Design Documentation for your apps?
If you’ve asked yourself these or any similar questions about your IBM Notes applications, then this is a must-see webinar! Learn how to analyze your application’s design; easily search through the entire design for code inconsistencies, dependencies on external programs, or troublesome areas for migration to other technologies.
Learn how to identify problem areas in your existing design to rapidly improve your IBM Notes apps.

Tuesday, 5 December 2017

Webinar - IBM JUMP Session: IBM Domino Applications on Cloud


There will be a very interesting IBM Jump Session on 12 December, IBM Domino Applications on Cloud. JUMP stands for Join, Understand, Master and Participate.

Content
Topic: IBM Domino Applications on Cloud
Date: Tuesday, December 12, 2017
Time: 10:00 PM EST (3:00 AM GMT, 12:00 PM JST)

IBM Domino Applications on Cloud is a subscription service that offers IBM hosted solution for Domino Apps over IBM Bluemix Cloud. The service offers a structured and planned migration process, avoiding business disruptions.
In this session you will be introduced to the offering, how it is structured and works including the pre-requisites, configurations and start-up options.
Throughout the event, attendees will also be encouraged to comment or ask questions in the WebEx Meeting chat.



IBM Enterprise Social Solutions Support wants to help you take full advantage of your products. Join us for our Open Mic Webcast series as technical experts share their knowledge and answer your questions. These webcasts are designed to address specific topics and provide an in-depth and focused technical exchange in a convenient online webcast format. For more information about our Open Mic webcasts, visit the IBM Collaboration Solutions Support Open Mics page.

More information: IBM JUMP Session - IBM Domino Applications on Cloud
See also my previous blog post about IBM Domino Applications on Cloud (DAC).
You can also view the presentation, audio and video from the previous JUMP Session on the IBM Support website

Thursday, 30 November 2017

Save Domino Document Changes in MongoDB


Some of the great 'new' development products continue to develop and evolve within the IBM Notes Domino and XPages world. Some are free to use for others has to be paid. For some time I follow the developments of one of these products closely, ClevaDesk. ClevaDesk is one of these amazing products which continues to evolve.
ClevaDesk system expands IBM Notes Domino capabilities and gives it new life. There is no need to think about migrating to other technologies.
Below a video about Clevadesk and what ClevaDesk is in short!
ClevaDesk is a flexible IT-system with a set of business applications, a Designer to build IT-systems without programming and a platform for migration of IBM Notes applications to the web browser.
Forget about Notes Domino limitations – no more limits with ClevaDesk!



Furthermore ClevaDesk offers new opportunities for existing IBM Notes Applications.

- Work with IBM Notes Domino Applications via web browser
- Work with documents on any device
- Reliable mult-level security system
- Create and manage processes of any complexity
- Fast creation of interfaces to existing IBM Notes applications
- Rapid design of new web and mobile interfaces
- Flexible multi-level fields validation
- Individual styling of any interface element
- Integration with Google Docs and Microsoft Office Web Apps
- Charting and dynamic reports

One of the new developments in ClevaDesk is saving Domino document changes in MongoDB. ClevaDesk can connect this feature to any ClevaDesk application and store any number of fields. It is also possible to view all file attachments , even if the attachment was removed from NSF. It will be stored in MONGO. All information is grouped by sessions and users and is easily searchable.



For more information: Website ClevaDesk

Friday, 17 November 2017

Replay Webinar IBM JUMP Session: IBM Cloud Email Statistics


On November 15 there was a very interesting IBM Jump Session, IBM Cloud Email Statistics. JUMP stands for Join, Understand, Master and Participate.
The presentation, audio and video are now available on the IBM Support website.

Content
IBM Cloud Email Statistics is a SaaS offering, providing customers with a variety of data insights on the long term use of their IBM Cloud eMail services (IBM Verse, SCN) through an intuitive graphical dashboard.
In this session you will be introduced to the offering, how it is structured and works as well as the different types of Analytics and reports available.


IBM Enterprise Social Solutions Support wants to help you take full advantage of your products. Join IBM Enterprise Social Solutions Support for their Open Mic Webcast series as technical experts share their knowledge and answer your questions. These webcasts are designed to address specific topics and provide an in-depth and focused technical exchange in a convenient online webcast format. For more information about the IBM Open Mic webcasts, visit the IBM Collaboration Solutions Support Open Mics page.

More information: IBM JUMP Session - IBM Cloud Email Statistics 
See also: IBM Cloud Email Statistics - Access a variety of data insights on the long term use of your IBM Cloud eMail services

Wednesday, 15 November 2017

IBM Traveler 9.0.1.20 Available for Download on IBM Fix Central including Technote Support Feature Pack 10


Today IBM released IBM Traveler 9.0.1.20.
IBM Traveler 9.0.1.20 is a maintenance release that provides new features and APAR fixes for the IBM Traveler server.
IBM Traveler 9.0.1.20 does not include a database schema update. However, if upgrading from a version prior to 9.0.1.15 and running MS SQL Server, or if upgrading from a version prior to 9.0.1.16 and running DB2 Server, action may be required if you manually manage your database schema (this is not common).

Important: Due to some header file changes in Domino 9.0.1 FP10 customers who are upgrading their Traveler environment to Domino 9.0.1 FP10 should first upgrade Traveler to 9.0.1.20 or later to ensure maximum compatibility. Library differences were introduced in Domino 9.0.1 FP10. This only effects the Domino server that the Traveler environment runs on, Domino mail servers that do not host Traveler services can be at any supported level. IBM Traveler 9.0.1.20 and later releases are compatible with the Domino 9.0.1 FP10 Library changes.

For more information: IBM Traveler 9.0.1.20 Server Release Documentation
Download link IBM Fix Central: IBM Traveler 9.0.1.20

Quick Tip: Read Text File - Compare View Values - Send Email Using LotusScript


Today I was asked if it was possible using LotusScript to read a Text File, which was stored in a specific Folder on the system, subsequently perform a check, based on the Values in the Text File, or a Value in the Text File is present in a specific View in the NSF and finally place the found Values in a Folder in the NSF and send an email with the found Values in the Folder to a specific email address.
The above can be solved easily by using LotusScript.

Agent Read Text File
To solve the above question I first created an Agent to read the Text File using LotusScript, compare the Values of the Text File with te Values in the specific View in the NSF and finally place the found values in a Folder in the NSF.

%REM
Agent CheckValues In View with Values in Text File
%END REM
Option Public
Option Declare

Use "General" (= Name Script Library with the Email Function)
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim vc As NotesViewEntryCollection
Dim doc As NotesDocument
Dim vw As NotesView
Dim fc As NotesView
Dim filenum As Integer
Dim filename As String
Dim conStatus As Variant
Dim strLineValue As String
Dim checkId As Variant

Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase

filenum% = FreeFile()
filename$ = "C:\Temp\values.txt"
Open filename$ For Input As filenum%
Set vw = db.GetView("($ViewName)") 'Lookup View with the Values in the NSF

'empty Folder with previous found values
Set fc = db.GetView("FolderName")
Set vc = fc.AllEntries
Call vc.RemoveAllFromFolder("FolderName")

While Not EOF(filenum%) ' Read Text File until End of File
Line Input #filenum%, strLineValue$
Set doc = vw.GetFirstDocument
Do Until doc Is Nothing
checkId = doc.getitemvalue("FieldName") 'Programmatic Name Column Value in NSF View = the first sorted column in the View = Field to Compare with Values in Text File
If strLineValue = CStr(LCase$(checkId(0))) Then
MsgBox "Found Value: " & strLineValue & +" SomeFieldName: " + doc.SomeFieldName(0)
Call doc.PutInFolder("FolderName")
End If
Set doc = vw.Getnextdocument(doc)
Loop
Wend
Close filenum%

Call sendEmail(doc)

End Sub

Function Send Email
Next, based on the found Values in the Folder I created a LotusScript function, placed in a Script Library General, to send an Email with the found values to registered persons in a Field NotificationMembers on a Profile Form in the NSF.

Function sendEmail(doc As NotesDocument) As Boolean
Dim s As NotesSession
Dim db As NotesDatabase
Dim vdoc As NotesDocument
Dim pdoc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim i As Integer
Dim view As NotesView

Set s = New NotesSession
Set db = s.CurrentDatabase
Set view = db.GetView("FolderName")
Set doc = New NotesDocument(db)
Set pdoc = db.Getprofiledocument("ProfileForm")
Dim datetim As New NotesDateTime( Now() )
i=0
'- prepare mail
doc.Form = "Memo"
Set vdoc = view.GetFirstDocument

If vdoc Is Nothing Then
Exit Function
Else

While Not(vdoc Is Nothing)

'- Set recipient
doc.Principal = "SomeName"
doc.~$AltPrincipal = "SomeName"
doc.From = "SomeName"
doc.SendTo = pdoc.NotificationMembers
doc.Subject = "Found Values in Text File on" + " " + CStr(Now())

Set rtitem = New NotesRichTextItem( doc, "Body" )
Call rtitem.AddNewline(1)
Call rtitem.AppendText(vdoc.FieldName(0)) 'Programmatic Name First Column in Folder
i = i + 1
Set vdoc = view.GetNextDocument(vdoc)
Wend
'- send mail
Call doc.Send(False)
End If
End Function

A nice and easy solution to read a Text File, compare the Values in the Text Field with the Values in a View, place the found Values in a Folder and Send an EMail to specific users.

Tuesday, 14 November 2017

Update Readers and Authors Fields Using LotusScript - Adding New Values


During the past months I have worked a lot with LotusScript. One of the questions I came accross was how to add a value to a Readers or Authors field in the UI document using LotusScript. First a little background information. In daily practice, I make extensive use of Userroles in the Access Control List which are assigned to specific User Groups in the Access Control List. Based on these Userroles document access is granted based on these Userroles in the Authors and Readers Fields in the specific document.
Basic idea is to grant Edit or Read Access to specific User Groups depending on where the document is located within a certain workflow. More on that in one of the next blog posts.
In this specific case there was a value missing whereby certain groups of users were unable to read the documents.
In the example below my solution, in which the Readers Field including the new Value is stored back to the UI document using LotusScript.
Note: In the example below I get the values (uidoc.Document.GetItemValue) of two fields, Username and OrganizationalUnit, from the selected UI document in a View and add these values to a Readers Field.
The LotusScript Agent with the following code I use on selected documents in a Notes view to update the Readers (or Authors) fields.


Sub Initialize
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim fieldValue As Variant
Dim fieldValue2 As Variant

' check if document is selected
If Not ws.CurrentDocument Is Nothing Then

' document is selected
Set uidoc = ws.CurrentDocument' init
End If

fieldValue = uidoc.Document.GetItemValue("FIELDNAME1")
fieldValue2 = uidoc.Document.GetItemValue("FIELDNAME2")
Dim item As NotesItem
Dim readersList(4) As String
readersList(0) = "[USERROLE]"
readersList(1) = fieldValue(0) '@UserName
readersList(2) = "[USERROLE]"
readersList(3) = "[" & fieldValue2(0) & "Reader]" 'OrganizationalUnit Reader(s)
readersList(4) = "[USERROLE]"
readersList(4) = "[NEWUSERROLE]" ' New Value

'readers
If uidoc.Document.HasItem("Readers") Then
Set item = uidoc.Document.GetFirstItem("Readers")
Call item.Remove
End If
Set item = New NotesItem(uidoc.Document, "Readers", readersList, READERS)

' save document
Call uidoc.Document.Save(True, True)

End Sub

A quick and easy solution using LotusScript.

Monday, 13 November 2017

A Brief Reprieve - IBM Champion Nomination Period Extended


The period for the nominations for IBM Champion has been extended until 30 November! This is great news. The extension offers everyone the opportunity to submit their nominations for which the original deadline was too short. For me, this means that I can submit two more nominations for which I had no time left. Just great! Thanks for this opportunity. Read the blog post by Libby Ingrassia for more information.
See also my previous blog post, Become an IBM Champion - My Thoughts And Considerations and My IBM Champion Nominations for IBM Collaboration Solutions - Only a Few Days Left!

So take this opportunity to nominate an influencer of IBM Social Business now. Nominations for the 2018 IBM Champion program will be accepted through November 30! Say thank you, like I did, and Nominate an IBM Champion! If you need information about someone you want to nominate then take a look at his or her LinkedIn profile. Concerning the nomination form, just fill in what you know and submit the form!


The IBM Champion program recognizes innovative thought leaders in the technical community -- and rewards these contributors by amplifying their voice and increasing their sphere of influence. An IBM Champion is an IT professional, business leader, developer, or educator who influences and mentors others to help them make best use of IBM software, solutions, and services.

If you think that you would like to be nominated as IBM Champion please contact me. Let me know what you contributed to the community last year and I will fill out a nomination form.

Nominate an IBM Champion : IBM Champion Program
Nomination Form IBM Champion : Nominate an IBM Champion
More information about the IBM Champion Program: IBM developerWorks - Champions

Sunday, 12 November 2017

Replay Webinar IBM JUMP Session: IBM Domino Applications on Cloud


On November 8 there was a very interesting IBM Jump Session, IBM Domino Applications on Cloud. JUMP stands for Join, Understand, Master and Participate.
The presentation, audio and video are now available on the IBM Support website.

Content
IBM Domino Applications on Cloud is a subscription service that offers IBM hosted solution for Domino Apps over IBM Bluemix Cloud. The service offers a structured and planned migration process, avoiding business disruptions.
In this session you will be introduced to the offering, how it is structured and works including the pre-requisites, configurations and start-up options.

Thursday, 9 November 2017

My IBM Champion Nominations for IBM Collaboration Solutions - Only a Few Days Left!


This week is the final week to nominate, among others, an IBM Champion for IBM Collaboration Solutions (ICS). In this blog post I will not give a complete summary of my IBM Champion nominations but only of those who have made, in my opinion, a 'significant contribution' to the community during the past year.
As I mentioned in my previous blog post, Become an IBM Champion - My Thoughts And Considerations, it was not as easy as the last few years.

This year I looked and interpreted the terms to become an IBM Champion slightly different than over the past few years. I mainly reviewed the contributions to the community this year from the point of quality and not only on quantity or visibility. Significant contributions can, in my humble opinion, consist of a relatively small amount of 'visible' contributions which, however, exceeds the rest based on quality. Partly based on this new look and interpretation I nominated this year as a new ICS Champion Cameron Gregor for his high quality contributions to the community like the Swiper Official Version 2 Release and the BuildXPages Deployment Automation Tools – v1.0.0 among his other great blog posts and contributions. There were several high quality contributions this year within the ICS community. As a final example I nominated John Jardin for his outstanding Istio blog series on Beelding Code in addition to his other contributions to the IBM Notes Domino and XPages community. So, in my opinion, if I am as objective as possible looking back on the past year, the following people were this years greatest influencers regarding IBM Social Business - Collaboration Solutions.


My IBM Champion Nominations for IBM Collaboration Solutions (ICS).

Oliver Busse Paul Withers Frank van der Linden
Matteo Bisi John Jardin Cameron Gregor

Hopefully this blog post gives some inspiration to submit a IBM Champion nomination if you have not already done so. Why, because they deserve it!
So take the opportunity to nominate an influencer of IBM Social Business now. Nominations for the 2018 IBM Champion program will be accepted through November 13th.
Say thank you, like I did, and Nominate an IBM Champion!
If you need information about someone you want to nominate then take a look at his or her LinkedIn profile. Concerning the nomination form, just fill in what you know and submit the form!


The IBM Champion program recognizes innovative thought leaders in the technical community -- and rewards these contributors by amplifying their voice and increasing their sphere of influence. An IBM Champion is an IT professional, business leader, developer, or educator who influences and mentors others to help them make best use of IBM software, solutions, and services.

If you think that you would like to be nominated as IBM Champion please contact me. Let me know what you contributed to the community last year and I will fill out a nomination form.

Nominate an IBM Champion : IBM Champion Program
Nomination Form IBM Champion : Nominate an IBM Champion
More information about the IBM Champion Program: IBM developerWorks - Champions

Comparing, Replacing and Restoring Design Elements with Local History using the Text Compare Editor in Domino Designer

Last week something went completely wrong with some resources (design elements) in a modified design of an XPages application. Luckily Domino Designer has a very powerful feature, Local History. A standard Eclipse functionality of extremely great value. By using the Compare, Replace and Restore Resources functions with Local History using the Text Compare Editor the problems were quickly resolved. Below is a brief description of this very powerful feature in the Domino Designer.

A local edit history of a resource (design element), for example a Notes form, Custom Control or an XPage, is maintained when a resource is created or has been modified and saved. Each time a design element is modified and saved, a copy is saved so that the current design element can be replaced or restored with a previous edit or delete. It is also possible to compare the contents of all the local edits. Each edit in Local History is uniquely represented by the date and time the design element was saved. Only resources (design elements) have a local history; projects and folders do not.

Local History Settings
The Local History default settings can be modified by selecting Preferences - General - Workspace - Local History in the Domino Designer (DDE).


Comparing resources with Local History
To compare a design element (unmanaged Workbench resource) with a state in the Local History the following steps can be executed:
In one of the Navigation Views, select the design element (resource) that you want to compare with a local history state, for example a Custom Control or an XPage.
From the resource's pop-up menu, select Compare With > Local History. The Compare with Local History page opens.


Select a state in the Local History List.


The Text Compare Editor opens.


Options Text Compare Editor
Click the Select Next Change and Select Previous Change buttons to browse the changes made between the state in the local history and the Workbench resource.
Copy all Non-Conflicting Changes from Right (Local History) to Left.
Copy Current Change form Right to Left
Next Difference
Previous Difference
Click OK when you are finished.

Replacing a resource with Local History
To replace a design element  with a state in the Local History the following steps can be executed: 
In one of the Navigation Views, select the design element (resource) that you want to replace with a local history state. From the resources pop-up menu, select Replace with > Local History. The Replace from Local History page opens.


Select a state from the Local History List. The Text Compare Editor opens.


Select the state you want to replace, and click Replace.

It is also possible to restore deleted design elements from local history. From the resources pop-up menu, select Restore from Local History. The Restore From Local History dialog opens showing all files that were previously contained in the selected folder or project and all of their sub-folders.


So there is an easy way in the Domino Designer to compare, replace and restore one or more design elements with Local History in case something went completely wrong in the application design.

Tuesday, 7 November 2017

Webinar - IBM JUMP Session: IBM Domino Applications on Cloud


There will be a very interesting IBM Jump Session on 8 November, IBM Domino Applications on Cloud. JUMP stands for Join, Understand, Master and Participate.

Content
Topic: IBM Domino Applications on Cloud
Date: Wednesday, November 8, 2017
Time: 10:00 AM EST (15:00 UTC/GMT, UTC-5 hours) for 60 minutes

IBM Domino Applications on Cloud is a subscription service that offers IBM hosted solution for Domino Apps over IBM Bluemix Cloud. The service offers a structured and planned migration process, avoiding business disruptions.
In this session you will be introduced to the offering, how it is structured and works including the pre-requisites, configurations and start-up options.
Throughout the event, attendees will also be encouraged to comment or ask questions in the WebEx Meeting chat. Join us for this interactive, educational, lively session.


IBM Enterprise Social Solutions Support wants to help you take full advantage of your products. Join us for our Open Mic Webcast series as technical experts share their knowledge and answer your questions. These webcasts are designed to address specific topics and provide an in-depth and focused technical exchange in a convenient online webcast format. For more information about our Open Mic webcasts, visit the IBM Collaboration Solutions Support Open Mics page.

More information: IBM JUMP Session - IBM Domino Applications on Cloud
See also my previous blog post about IBM Domino Applications on Cloud (DAC).

Responsive and Highly Customizable Messageboxes in XPages Using the jQuery Lobibox Plugin


Last week I blogged about the jQuery LobiPanel Plugin, Extended Bootstrap Panels in XPages Using the jQuery LobiPanel Plugin and the jQuery Lobibox Plugin, Create Responsive and Highly Customizable Notifications in XPages Using the jQuery Lobibox Plugin. As I mentioned in these blog posts, Lobibox is devided into two parts, Messageboxes and Notifications. In this blog post I will describe the Messageboxes part. Lobibox is very easy to implement in any XPages application.

Features Messageboxes
Lobibox messagesboxes can be modal and not modal.
You can show multiple messages at the same time.
Use any available animation class for showing and hiding messageboxes.
Every message can be draggable (on small screens dragging is disabled).
You can show:
Messagesboxes in different colors and icons.
Confirm message.
One line prompt (Any HTML5 input type can be used in prompt window. Such as: text, color, date, datetime, email, number, range etc).
Multiline prompt.
Progress messagebox. Lobibox comes with default progress style but you can use bootstrap or any other style progress bar.
Custom content window with ajax support with custom action buttons.
Every message is an instance of plugin. You can easily grab the instance and attach events or call methods directly on the instance.

For the different 'types' of messagboxes (Confirm, Alert, Prompt, Progress and Window) there are specific default options. Below the default options for all messageboxes.

Default options
horizontalOffset: 5, (if the messagebox is larger (in width) than window's width. The messagebox's width is reduced to window width - 2 * horizontalOffset)
verticalOffset: 5, (if the messagebox is larger (in height) than window's height. The messagebox's height is reduced to window height - 2 * verticalOffset)
width: 600,
height: 'auto', (height is automatically calculated by width)
closeButton: true, (show close button or not)
draggable: false, (make messagebox draggable)
customBtnClass: 'lobibox-btn lobibox-btn-default', (class for custom buttons)
modal: true,
debug: false,
buttonsAlign: 'center', (position where buttons should be aligned)
closeOnEsc: true, (close messagebox on Esc press)
delayToRemove: 200, (time after which lobibox will be removed after remove call. this option is for hide animation to finish)
delay: false, (time to remove lobibox after shown)
baseClass: 'animated-super-fast', (base class to add all messageboxes)
showClass: 'zoomIn', (show animation class)
hideClass: 'zoomOut', (hide animation class)
iconSource: 'bootstrap', ("bootstrap" or "fontAwesome" the library which will be used for icons)

In order to use Lobibox, the JavaScript en CSS files need to be included on the XPage / Custom Control. The latest version can be downloaded from from Github: Lobibox.
Below a some basic examples using Lobibox Messageboxes in an XPages application.

Adding the JS and CSS files
The JavaScript and CSS files must be added to the WebContent Folder in the Package Explorer.
In this example a Folder lobibox has been added in the WebContent Folder.
Next the JavaScript and CSS files lobibox.js and lobibox.css must be included on the XPage or Custom Control. In this example I added the file to an XPage.
Remark: if only the Messageboxes part is used in an XPages application the lobibox.js file can be replaced by the messageboxes.js file.

<link rel="stylesheet" href="lobibox/css/lobibox.css" />
<script type="text/javascript" src="lobibox/js/lobibox.js"></script>

Adding the x$ jQuery selector for XPages
Furthermore I recommend to use the the great XSnippet by Mark Roden, x$ jQuery selector for XPages, to initialize the plugin. The XSnippet can be added to the Script Libraries. See also the blog post by Csaba Kiss, x$ selector problem with JQuery 3.
The script itself can be made up as follows. In this example I use a few standard options.

<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button2}" ).bind("click",function(){Lobibox.alert('error', {
title: 'Error',
height: 'auto',
buttonsAlign: 'center',
modal: true,                 
closeButton: true,               
draggable: true,
showClass: 'zoomIn',
msg: "Lobibox Messageboxes Alert Plugin in XPages ?",
});
});
});
]]></xp:this.value>
</xp:scriptBlock>

Final Result
The final result are responsive and highly customizable messageboxes including some additional options in the initial setup.

Sample Code XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.resources>
<xp:script src="/jQuerySelector.js" clientSide="true"></xp:script>
</xp:this.resources>
<link rel="stylesheet" href="lobibox/css/lobibox.css" />
<script type="text/javascript" src="lobibox/js/lobibox.js"></script>
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button1}" ).bind("click",function(){Lobibox.confirm({
height: 'auto',                   
closeButton: true,               
draggable: true,
msg: "Using the Lobibox Messageboxes Plugin in XPages ?"
});
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button2}" ).bind("click",function(){Lobibox.alert('error', {
title: 'Error',
height: 'auto',
buttonsAlign: 'center',
modal: true,                 
closeButton: true,               
draggable: true,
showClass: 'zoomIn',
msg: "Lobibox Messageboxes Alert Plugin in XPages ?",
});
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock3">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button3}" ).bind("click",function(){Lobibox.prompt('text', {
title: 'Please enter username',
//Attributes of <input>
attrs: {
placeholder: "Username"
}
});
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock4">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button4}" ).bind("click",function(){Lobibox.progress({
title: 'Please wait',
label: 'Uploading files...',
progressTpl : '<div class="progress lobibox-progress-outer">\n\
<div class="progress-bar progress-bar-danger progress-bar-striped lobibox-progress-element" data-role="progress-text" role="progressbar"></div>\n\
</div>',
onShow: function ($this) {
var i = 0;
var inter = setInterval(function () {
window.console.log(i);
if (i > 100) {
inter = clearInterval(inter);
}
i = i + 0.1;
$this.setProgress(i);
}, 10);
}
});
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xp:scriptBlock id="scriptBlock5">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:button5}" ).bind("click",function(){Lobibox.window({
title: 'Window title',
height: 'auto',
buttonsAlign: 'center',
modal: true,                 
closeButton: true,               
draggable: true,
content: '...'
});
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xc:ccLayout>
<xp:this.facets>
<xp:panel xp:key="facetMiddle">
<xp:br></xp:br>
<xp:button id="button1" value="CONFIRM" styleClass="btn-default"></xp:button>
<xp:button id="button2" value="ALERT" styleClass="btn-info"></xp:button>
<xp:button id="button3" value="PROMPT" styleClass="btn-success"></xp:button>
<xp:button id="button4" value="PROGRESS" styleClass="btn-danger"></xp:button>
<xp:button id="button5" value="WINDOW" styleClass="btn-warning"></xp:button>
<xp:br></xp:br>
</xp:panel>
</xp:this.facets>
</xc:ccLayout>
</xp:view>

For more information: Documentation and examples Lobibox Messageboxes

Friday, 3 November 2017

IBM JUMP Session: IBM Cloud Email Statistics


There will be a very interesting IBM Jump Session on 15 November, IBM Cloud Email Statistics. JUMP stands for Join, Understand, Master and Participate.

Content
Topic: IBM Cloud Email Statistics
Date: Wednesday, November 15, 2017
Time: 10:00 AM EST (15:00 UTC/GMT, UTC-5 hours) for 60 minutes

IBM Cloud Email Statistics is a SaaS offering, providing customers with a variety of data insights on the long term use of their IBM Cloud eMail services (IBM Verse, SCN) through an intuitive graphical dashboard.
In this session you will be introduced to the offering, how it is structured and works as well as the different types of Analytics and reports available.
Throughout the event, attendees will also be encouraged to comment or ask questions in the WebEx Meeting chat.


IBM Enterprise Social Solutions Support wants to help you take full advantage of your products. Join us for our Open Mic Webcast series as technical experts share their knowledge and answer your questions. These webcasts are designed to address specific topics and provide an in-depth and focused technical exchange in a convenient online webcast format. For more information about the IBM Open Mic webcasts, visit the IBM Collaboration Solutions Support Open Mics page.

More information: IBM JUMP Session - IBM Cloud Email Statistics 
See also: IBM Cloud Email Statistics - Access a variety of data insights on the long term use of your IBM Cloud eMail services

There will be another IBM Jump Session on November 8, IBM Domino Applications on Cloud.
For more information see my blog post IBM JUMP Session: IBM Domino Applications on Cloud.


IBM Domino Applications on Cloud is a subscription service that offers IBM hosted solution for Domino Apps over IBM Bluemix Cloud. The service offers a structured and planned migration process, avoiding business disruptions.
In this session you will be introduced to the offering, how it is structured and works including the pre-requisites, configurations and start-up options.
Throughout the event, attendees will also be encouraged to comment or ask questions in the WebEx Meeting chat.
For more information see also: JUMP Session: IBM Domino Applications on Cloud - 08 November 2017

Become an IBM Champion - My Thoughts And Considerations


As everybody knows it's IBM Champion season again. Throughout the last year I had the privilege to participate again in the IBM Champions Program. For this I am very grateful. The IBM Champions Program is an amazing program! My nominations for IBM Champion ICS 2018 are nearing completion. With these nominations I want to thank those who have made a significant contribution in my perception to the community during the past year.

I am very committed to our community and try, as good as I can, to contribute to the community through visible activities as blog posts, tweets, running an international community and being a moderator in several communities. Over the past year I noticed several small and major changes in our IBM Domino and XPages community. Some of these changes were reflected in longstanding activities such as the great free XPages webinars from T.L.C.C. and Teamstudio and the outstanding NotesIn9 shows which both were limited to 3 webinars - shows this year. Over the past years these were the starting points for new developments, tips and tricks and learning moments for many in our IBM Domino and XPages community. Until now there are no substitutes or replacements for these great longstanding activities. Also some great and very active community members left the IBM Domino and XPages community over the past year, like Mark Roden, one of the great influencers in the IBM Notes Domino and XPages community. In addition to the above changes there were many more changes which I will not further elaborate in this blog post considering these changes are out of the scope of this blog post, namely the nomination of the IBM Champions 2018.
Overall, in my humble opinion, the 'visible' activity was a lot less this year in comparison with the past few years in our community. A major reason for this may be that 'visible' activities, such as blog posts, tweets and videos, are moving more and more towards speaker activities during major community events, such as Engage and Social Connections.
There were also many positive developments and some community members have clearly put themselves in the forefront this year given their contributions to the IBM Notes Domino and XPages community. For me personally, given the above, it was not as easy as during the last few years to come to a selection of community members I would like to nominate for IBM Champion ICS 2018. But in the end I did.


Who should be nominated as an IBM Champion?
Well, below are the detailed criteria, but maybe what would help are some examples of people who might be IBM Champions: The person in your company who knows everything there is to know about your IBM software or hardware and makes it all work together and is always the one answering everyone’s questions. The person writing articles or books about IBM technology. The person with a blog who investigates and covers IBM technology. The person who runs the local meetup or user group covering IBM technology. The person whose Twitter stream is always sharing what they’re building with IBM technology. The person making YouTube videos about developing with IBM technology. The person who has a couple of sessions every year at IBM and user group conferences and events. Those are all people who might be IBM Champions.
The IBM Champion program requires IBM advocacy and influence outside one's own organization or customer engagements.  IBM also seek individuals that have significant contributions in at least 2-3 areas as defined below (significant contributions = a contribution, executed multiple times or for an extended period of time).
This can be blogging regularly, tweeting regularly (on topics relevant to our industry, but not necessarily IBM-specific tweets), speaking at multiple events in a calendar year, User Group Conference Planning Committee member (involves the execution of a conference or a part of the conference over a period of several months) or be a President or Board member of a worldwide or local user group for a period of 1 year.

Take the opportunity to nominate an influencer of IBM Social Business now. Nominations for the 2018 IBM Champion program will be accepted through November 13. Say thank you, like I did, and Nominate an IBM Champion!
And remember, you can always nominate yourself!
If you need information about someone you want to nominate then take a look at his or her LinkedIn profile. Concerning the nomination form, the form has been improved this year, just fill in what you know and submit the form!
Hopefully this blog post gives some inspiration to submit a IBM Champion nomination if you have not already done so. Why, because they deserve it!

If you think, based on the above,  that you would like to be nominated as IBM Champion please contact me. Let me know what you contributed to the community last year and I will fill out a nomination form. If you would like to nominate me as IBM Champion ICS for 2018, I would highly appreciate it.

Below some usefull links for more information about the IBM Champion Program and the link to the nomination form.
Nominate an IBM Champion : IBM Champion Program
Nomination Form IBM Champion : Nominate an IBM Champion
More information about the IBM Champion Program: IBM developerWorks - Champions

Thursday, 2 November 2017

Free IBM Cloud Lite Account for Developers


There are some great new IBM announcements. First of all IBM Bluemix is now IBM Cloud. For more information you can read the blog post Bluemix is now IBM Cloud: Build confidently with 170+ services.
IBM Cloud is Designed for your Data, AI Ready and Secure to the core.
IBM Cloud offers the widest array of database options, from relational to NoSQL, while ensuring strong consistency, high integrity, and no delay.
IBM Cloud powers AI-intensive workloads that demand data integrity, low-latency and parallel processing. It also offers a broad range of Watson AI and machine learning APIs to build your own applications.
Security is at the core of IBM Cloud, it is not an after thought. IBM Cloud secures the movement of data on a network of networks. Public, private, and management traffic travel across separate network interfaces, segregating and securing traffic while streamlining management. IBM Cloud meets data sovereignty and compliance regulations with nearly 60 locally owned and operated data centers in 19 countries—more than any other cloud provider.

The second announcement is the IBM Cloud Lite Account for Developers.
What if you had unlimited time to tap into a growing ecosystem of AI-infused services and runtimes to build your apps? And what if you could do it at no cost?
Today, IBM is making that possible. with the IBM Cloud Lite account – a free account that never expires. Ever. Seriously.

What’s included in a Lite account?
This new account type is a great opportunity for you to get more out of IBM Cloud – on your terms.
Here’s what you’ll get at no cost:
256 MB of instantaneous Cloud Foundry runtime memory, plus 2 GB with Kubernetes Clusters.
Access to usage capped plans for select services, such as API Connect, Watson Conversation, Watson Discovery, Internet of Things Platform, Data Science Experience and many more. Check out the full list of available services.
Efficiency features, such as auto sleep and garbage collection, to help you better manage your resources.
Usage tracking and cap alerts that notify you when you’re approaching your data thresholds.



For more information you can read the blog post Introducing the IBM Cloud Lite account.

Wednesday, 1 November 2017

Webinar IBM Domino Platform - Retain or Retire? A CIO Perspective

Tommorow a very interesting webinar will be organized by Maarga Systems, IBM Domino Platform - Retain or Retire? A CIO Perspective. The registration for this webinar is available on the Maarga Systems website. For more information visit the Maarga Systems website. You can also take a look at the YouTube video WEBINAR: IBM Domino Platform - Retain or Retire? A CIO Perspective.



Content
The topics that will be covered during this webinar are 'Can I get greater ROI from my Domino investment?' , 'When should I consider migration and what are the options?', 'Is moving to the cloud a safe bet?' and 'An industry perspective from global enterprise'.

For more webinars regarding IBM Domino see also the upcoming IBM JUMP Session: IBM Domino Applications on Cloud and the panagenda webinar What’s Next? - Shaping your IBM Domino apps strategy.

Friday, 27 October 2017

Create Responsive Dual Listboxes in XPages Using the Bootstrap Dual Listbox Plugin


Bootstrap Dual Listbox is a responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices. The dual listbox is created from a multiple select by calling .bootstrapDualListbox(settings); on a selector. The selector can be any element, not just selects. When the method is called on a selector other than a select, then all select childrens are converted into dual list boxes.

Options
When calling $("#element").bootstrapDualListbox() you can pass parameter objects with zero or more of the following options.
bootstrap2Compatible (false: set this to true if you want graphic compatibility with Bootstrap 2)
filterTextClear ('show all': the text for the "Show All" button)
filterPlaceHolder ('Filter': the placeholder for the input element for filtering elements)
moveSelectedLabel ('Move selected': the label for the "Move Selected" button)
moveAllLabel ('Move all': the label for the "Move All" button)
removeSelectedLabel ('Remove selected': the label for the "Remove Selected" button)
removeAllLabel ('Remove all': the label for the "Remove All" button)
moveOnSelect (true: determines whether to move options upon selection)
preserveSelectionOnMove (false: can be 'all' for selecting both moved elements and the already selected ones in the target list or 'moved' for selecting moved elements only)
selectedListLabel (false: can be a string specifying the name of the selected list)
nonSelectedListLabel (false: can be a string specifying the name of the non selected list)
helperSelectNamePostfix ('_helper': The added selects will have the same name as the original one, concatenated with this string and 1 for the non selected list, e.g. element_helper1 or 2 for the selected list, e.g. element_helper2).
selectorMinimalHeight (100: represents the minimal height of the generated dual listbox)
showFilterInputs (true: whether to show filter inputs)
nonSelectedFilter ('': initializes the dual listbox with a filter for the non selected elements. This is applied only if showFilterInputs is set to true)
selectedFilter ('': initializes the dual listbox with a filter for the selected elements. This is applied only if showFilterInputs is set to true)
infoText ('Showing all {0}': determines which string format to use when all options are visible. Set this to false to hide this information. Remember to insert the {0} placeholder)
infoTextFiltered ('<span class="label label-warning">Filtered</span> {0} from {1}': determines which element format to use when some element is filtered. Remember to insert the {0} and {1} placeholders)
infoTextEmpty ('Empty list': determines the string to use when there are no options in the list)
filterOnValues (false: set this to true to filter the options according to their values and not their HTML contents)

In order to use Bootstrap Dual Listbox the JavaScript and CSS file(s) need to be included on the XPage or Custom Control. The latest version can be downloaded from GitHub: Bootstrap Dual Listbox.
Below a basic examples using Bootstrap Dual Listbox in an XPages application.

Adding the JS and CSS files
The JavaScript and CSS files must be added to the WebContent Folder in the Package Explorer. In the example below a Folder duallistbox has been added in the WebContent Folder.


Next the JavaScript and CSS files, jquery.bootstrap-duallistbox.js and bootstrap-duallistbox.css must be included on the XPage or Custom Control. In this example I add the files to an XPage.

<script src="duallistbox/jquery.bootstrap-duallistbox.min.js"></script>
<link rel="stylesheet" type="text/css" href="duallistbox/bootstrap-duallistbox.css" />

Adding the x$ jQuery selector for XPages
Furthermore I recommend to use the the great XSnippet by Mark Roden, x$ jQuery selector for XPages, to initialize the plugin and include it on the XPage. The XSnippet can be added to the Script Libraries. See also the blog post by Csaba Kiss, x$ selector problem with JQuery 3.
The script itself can be made up as follows. In this example I use a few standard options.

<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:listBox1}" ).bootstrapDualListbox({
nonSelectedListLabel: 'Non-selected',
selectedListLabel: 'Selected',
preserveSelectionOnMove: 'moved',
moveOnSelect: false
});
});
]]></xp:this.value>
</xp:scriptBlock>

Final Result
The final result is a responsive Bootstrap Dual List Box in XPages including some additional options in the initial setup.


Sample Code XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom">
<xp:this.resources>
<xp:script src="/JQueryXSnippet.js" clientSide="true"></xp:script>
</xp:this.resources>
<script src="duallistbox/jquery.bootstrap-duallistbox.min.js"></script>
<link rel="stylesheet" type="text/css" href="duallistbox/bootstrap-duallistbox.css" />
<xp:scriptBlock id="scriptBlock2">
<xp:this.value><![CDATA[
$(document).ready(
function() {
x$( "#{id:listBox1}" ).bootstrapDualListbox({
nonSelectedListLabel: 'Non-selected',
selectedListLabel: 'Selected',
preserveSelectionOnMove: 'moved',
moveOnSelect: false
});
});
]]></xp:this.value>
</xp:scriptBlock>
<xc:ccLayout>
<xp:this.facets>
<xp:panel xp:key="facetMiddle">
<h3>Bootstrap Dual Listbox</h3>
<h4>Bootstrap Dual Listbox is a responsive dual listbox widget optimized for Twitter Bootstrap. It works on all modern browsers and on touch devices.</h4>
<xp:listBox id="listBox1" multiple="true">
<xp:selectItem itemLabel="Blue" itemValue="Blue"></xp:selectItem>
<xp:selectItem itemLabel="Green" itemValue="Green"></xp:selectItem>
<xp:selectItem itemLabel="Red" itemValue="Red"></xp:selectItem>
<xp:selectItem itemLabel="Orange" itemValue="Organe"></xp:selectItem>
<xp:selectItem itemLabel="Yellow" itemValue="Yellow"></xp:selectItem>
</xp:listBox>
</xp:panel>
</xp:this.facets>
</xc:ccLayout>
</xp:view>

More information: Bootstrap Dual List Box