Part 2 of Partial Refresh in Notes Forms

I couldn’t actually accept myself defeated in the battle to get partial refresh into old school Notes applications. And after a second look at my code I found a way, so I rewrote the javascript library to be a javascript object class so all calls are made inside the class. So now partial refresh of the entire form tag is the standard way of refresh but you can also narrow the refresh to everything inside a div or a table sell if you want to. And Serverside refreshes from a QuerySave agent also works.

So what you need to do is to add the AjaxCall scriptlibrary to your database.

Call the function PartialDomino.onloadAjax() in your onload event

Now all refresh events on the form will be handles as partial refresh.

If you want to also add clicks from a button, give the button a id and add that id using PartialDomino.addPartialRefreshId(“refresh”,””)

The next time the button is clicked a partial refresh is done.

If you would have added a second id to the function, only the element with that id will be replaced after the refresh.

Download the database and see the working example

disk

PartialDominov2.zip

2014 a year of change

Looking back at 2014, I see the year that XPages really got accepted as the primary language for Domino.
IBM Bluemix got launched and the response was no XPage support in Bluemix, but in the last 2 months we saw that IBM had changed their minds and now there are talking of some kind of support for xPages apps in Bluemix. Great IBM that will get the community to start using the service even more if you can deploy your apps in a real scalable App Engine. The Domino OpenNTF API, evolved and have lot’s of great features like the graph database implementation.

My 2014 has been almost only XPages Development both internal with our application suite, custom applications for different companies and adding more customers to QNova:s application cloud  that has been a real success for the company I work for. My board work with OpenNTF has just started, lots of things to understand and I hope to be able to contribute even more in 2015.

Hope you all out there have a great holiday and come back in 2015 with new contribution power because we all can do more if we do it together.

 

Holiday Hack: Get some XPage power in old Notes apps

UPDATE: Post with fully working example with serverside redirects working

One of the great things with XPages is the partial refresh that help you to update information inside the page without a full reload of the page. Well that is not possible with older notes applications because it does a full roundtrip to the server each time we change something. But we can update the screen without the users notice it with ajax. What I did was create a copy of the main js function that Domino uses _doClick and replace that with my own copy of that function in onload.

function onloadAjax(){

  window._doClickNew=window._doClick

  window._doClick=window.newDoClick

}

I store the original function within _doClickNew that is the great thing in this case with javascript. Everything is an object including functions and I can place myself before the original function. My function will now be called when something happens on the Domino form. There is two types of events on a old school Domino form. There is a refresh post and a full post, the script detects if you are trying to do a refresh post and convert that into a ajax request. You can also add entries to an Javascript array PartialRefreshArray by pushing new entries PartialRefreshArray.push(“mybutton”) if you then add a button to the form with the id mybutton it will also be ajax refreshed.

But there are some down sides to this functionality, we can’t use server side redirects. When the form is posted the referer is used when returning data, and because we have ajax refreshed the form the url isn’t updated correctly if we have created the document using the following url

server/database/form?openform

What we need to do is to create the document before we open it the first time and load the document using

server/database/view/UNID?editDocument

If that is used the code can imitate partial refresh, but remember no server side redirects can be used, webquerysave agent runs but not the redirect, so if you want to move away from the form you need to use client side JS.

I’ve created a simple database to show the functionality that you can download here 

disk

Conclusion, the partial refresh behaviour can be added but then you need to hack any redirects done using agents and you need to pre create the document and have a scheduled agent to delete the forms not saved.

This is only an hack example not any production code, and may stop working if IBM/HCL changes anything.

 

Setting up a sFTP server to be used with an existing Domino SSL certificate

With the new way of creating SSL certs for Domino a new opportunity occurred to me and actually it worked great. Because we create the certificates using OpenSSL the generated Key and certificate can actually be used on the same server to setup a FTPS server. Saidly because the Domino FTP server on OpenNTF.org doesn’t support FTPS I had to use the FileZilla server the setup was super simple.

Run the setup

go into settings and enable FTP over SSL select your .Key file and your certificate file that you got back from your certifier. Also check the other option to force all connections to the server to be FTPS.

FileZilla Server Settings

And now you have a FTPS server that can deliver external content to you Domino server. The last thing you need to setup is the users and groups that should be able to connect to the server.

Update: Paul Farris commented that this is an SSL based FTP server not an SSH based so the real name should be FTPS not sFTP.

Some performance tips for your Domino / XPages servers

When your applications has grown very big you might face a problem with performance in this case I had a customer with quite a large crm system that in some cases got very high disk io but the cpu didn’t spike.

neither did the memory almost 50% not used by the system.

So what I did was I increased the memory available for the XPage runtime JVM using HTTPJVMMaxHeapSize

and to get get better database performance I increased the database IO buffers using

NSF_BUFFER_POOL_SIZE_MB

also using cacheset tool I increased the amount of memory that Windows will cache files using, this can give you quite a lot of performance because Windows will keep more files in memory instead of reading everything from disk and if you have a newer server with more than 8GB of memory why not use the memory. You can change this when the server is running and find your optimal settings.

You need to trim this depending on how much free memory your server has and you don’t want to run out of memory.

If you have some more tips for the community feel free to comment.

How to get plugins working again after installing 9.0.1 FP2 IF2

The new IF2 for fickpack2 in the Client seams to mess up the locally installed plugin in the Designer client somehow. But there is an easy fix to that.

Close down the client and navigate to the workspace\applications\eclipse folder and delete everything in it (You should probably make a backup before 😉 )

restart the designer and go into File – Application – Install

App-Install

 

 

 

 

 

 

 

 

 

 

 

Select the “Search for new features to install” option and click next

App-Install-2

And when you get the next page all you previous plugins should be there and you just click “Finish”

Now the fun part begins by accepting all the licenses. But when that is done and your client is restarted all you plugins should be back.

Sorry Samsung, Apple you’re wrong

Samsung, Apple and the Peddle smart watch everybody seams to releasing watches now but how smart is these watches. They have displays, and different kinds of sensors, but smart, I don’t know. They are only an extension of the phone. because you need the phone for them to work.

Then I watched one of the keynotes from Dreamforce 14

And saw the new cuff phone smart watch PULS created by Will I AM this might not be the best product but the way is the correct one. Create the smart device and place it around your wrist always close to you, not the other way around. When you want a bigger screen send the image to a bigger screen like when you use airplay.

Will I Am has also created a charging jacket so when you jacket sleeve comes in contact with the Puls, it charges that’s really clever. And that isn’t all he has also more, glasses, shoes and other smart wareables.

I think this is the next gen of smart watches.

http://will.i.am/category/technology/

The new keylogger function in ios8

Yes, if you install a third party keyboard one of the new features in IOS8 and give it full access. You also agree to send everything you write to a third party. Not only do you agree that the developers of the keyword can read anything you write, they are also allowed to send the information to their own servers for processing and once what you have written is there. You have no chance of knowing what they will do with your written passwords, credit card numbers and all other personal information. And even if they don’t do anything bad with your information, you always have the risk of them being hacked.

Stealpassword

 

 

 

 

 

So if you care about not getting your passwords and credit card numbers spread across the globe I suggest not allowing any third party keyboards to have full access.

Apple say that they will switch to the native keyboard when you are about to write sensitive information but can they garantee that?

The difference between more or less

Building up expectations before you start using something must be one of the greatest feelings, opening up the box to a new “thing”, Jippi!!!

When you’re looking to buy something, you look at all the features of the “thing” and how that fit’s your list of needs. If the list of features comes from reading a spec or from a video presentation of the feature(s). The feeling when you find a “thing” that meet your list of needs is really great. It’s victory, but have you ever asked yourself the question is this a list of half finished functions or is this a list of functions that has been thought through and are added for a specific reason. Are they added to help you as a user to complete your tasks easier or just to sell the “thing”?

Design is how you treat your customers

 

 

 

 

 

 

After reading “Inside Apple“, I see the difference between adding lot’s of functions instead of adding some functions that really works and is added for a reason. I’ve been a Windows user since Windows 3 and always thought that this is the way everything must work. Why, well because no one has asked them self the question WHY. Why are we adding this function in Word, will this function increase user productivity? How much?

I think the reason why these questions isn’t asked is because the focus is on adding as many features as possible. As a measure of more functions equals more sales, does it?

What is the secret of Apples software and hardware success ?

Have they done this because they keep their teams locked up in airtight cells that is 100% focused on it’s task with no distractions?

Design is not just what it looks like and feels like. Design is how it works.

 

 

 

 

 

 

Or is it that the have got the key like the quote above. The combine looks, feels and how things works in a unique way. These things is often done by different teams inside a company. If this is what other companies need to adapt to move forward, then social business should be a perfect match because with a Social Business it will be easier to delivering a better product when working together and sharing experiences.

Start to adapt your development processes to become more Social, because I believe Social Developers delivers more and faster. Because all companies want to deliver better products/services, right ?

Maximum file upload size in HCL Domino all the places to edit

If you ever wanted to increase the file upload size in Domino you have probably seen that there are several places to update depending on the configuration. I was increasing this on a server this week and missed one of the places and couldn’t understand where I missed, Per-Henrik Lausten pointed me what I missed. So I though I would write a post about this I might help someone else, or help me the next time I forget.

Open up the Server document and go to the “Internet Protocols” tab and the “HTTP” tab

FileUpload1

 

 

 

 

 

 

At the bottom right corner, to the “HTTP Protocol Limits” Section

FileUpload2

 

 

 

 

 

 

 

And change the “Maximum size of request” to the size you want to increase to

Now move to the basic tab and check if the server is using “Internet Sites”

FileUpload3

 

 

 

 

 

 

 

 

If your server doesn’t load from “Internet sites” you need to open the “Internet protocols” tab again

and follow the same instruction as in “Internet Site” document.

in other case close the server document and open up the view “Server\Internet Sites”

FileUpload4

 

 

 

 

 

 

 

 

 

Open up the corresponding Internet Sites that you want to change or open all of them and change if you want the same size on everybody. On the “Domino Web Engine” tab

FileUpload5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

On the “POST Data” section change the Max post size to the new maximum file size you want to have.

If you are using an old Domino application you are done now. After reloading the HTTP task on the server.

But if you application is an XPage application there is another place you need to control the file size, and that is in Application Configurations and xsp.properties file in you database and the File Upload Option.

Or if you want to add it globally add it to the xsp.properties file in the Domino\Data\Properties folder in xsp.properties.

FileUpload6

 

 

 

 

If you want to increase the size for iNotes there is a third place that you might need to increase and that is in the Servers\Configurations document for the server. Click on the “iNotes” tab and update the “Mamimum attachment size” and save the document. Restart the http task on the server to make the changes get affect.

FileUpload7

 

 

 

 

 

 

 

 

 

 

 

If you got any problems some Domino configuration or got help from this post, make a comment.

Long live Domino just give us TLS 1.3 support NOW!!