advanced javascript script xpages - xpages

after buying mastering xpages , XPages Portable Command Guide and xpages extension library . i am confused from where to start i took a look in those ebook and i downloaded their applications from official website but i am confused from where to start .
i start developping some masks , views and xpages .
my problem is how to relate those masks together ?
example :
i have mask1 with 5 fields , which field1 is related with field1.1 from mask2 . how can i relate them together and how to make them in the same view ????

Matux use my cheatsheet as starter. It provides lots of links to tutorials and information. Then let go of relational/uml thinking. In an RDBMS you need master/detail tables that in Notes you can store in a single document (depending on the task at hand). The biggest learning step are the multi-value fields, so watch out for them. Security is sweet with declarative read and read/write access per document, but needs careful planning to get performance right.

Related

Notes : Is there any good tool to export design elements, especially for XPages and the custom control to write the design spec document?

I created lots of XPages and the custom control in new application. Then, I need to write the design spec documents. Is there any good to help it? "Design synopsis" menu in Notes seems not to export XPages design information.
When you connect XPages to an on disk project (ODP - see the help for that), you get a directory with design elements. XPages and controls are XML files, so you could use xslt to report on them.
Hope this helps
If your business logic is in Java, you can generate a Javadoc of the classes https://www.intec.co.uk/generating-javadocs-for-xpages-applications/.

How to display data from document to XPage?

I am new to Lotus notes. Till now I am able to add data from XPage to the document and display it into a view. Now I want to display data into the fields on a XPage. Please suggest me how to do that And any good tutorial that suggest step by step development of an application on Notes.
In your custom control, bind the control to a document, drag a field (like a text field or computed field), and one of the panes will let you bind it to a field on the document.
There is a lot to this, you can look at Declan Lynch's blog posts (a bit old, but a great start) http://www.qtzar.com/learning-xpages/
You may want to pay for a class, I've taken some from TLCC and they are great: https://www.tlcc.com/ (I am not associated with TLCC, just a happy customer).
I know links out are not the greatest here, but part of this question was to point to tutorials.
There are many hours of free video tips and tutorials on XPages over at the NotesIn9 Screencast. notesin9.com. Since the blog makes it difficult to find older shows, which still have value I have them indexed at XPages.TV as well. There's also a site at XPagesCheatSheet.com with some intro cheatsheets.
Also you can use Mastering XPages book.

xpages display the document history

In some 'old' lotus notes applications, we created a history of each document: who created the doc, every person which edited it + the respective dates. The code contained several libraries in lotusScript.
For xpages, is there any snippet / sample working example which I could use? I found this but I couldn't download any example ...
ValueChangeListeners allow you to capture changes to specific components. I've used them to create audit trails in customer applications before.
Tony McGuckin has an XSnippet for it:
http://openntf.org/XSnippets.nsf/snippet.xsp?id=server-side-value-change-events-listeners
Declan Lynch covered it in a blog post:
http://www.qtzar.com/using-a-valuechangelistener-to-build-an-audit-trail/
Don McNally has also done a blog post:
http://dmcnally.blogspot.co.uk/2013/02/xpages-detecting-and-logging-field.html
I don't know of any pre-done snippet yet. But this becomes a lot easier in XPages especially if expand into Java. When I create an application these days I basically convert the document to a Java object. I don't do this yet but it would be easy to store in the object a Map of all the fields and their current values and then on save, look for differences and then write them out to a log document.
this could be done without java of course. Create an map object in scope. Populate it on loading of the document and on save do the compare and write.
Something went wrong with that project on OpenNTF (don't ever use an ampersand in the name). I'm the original author of that custom control. AFter some digging I found a direct url to the project here.

Is there a clever way how to share custom controls among Xpages applications?

For our Xpages application stack we have to create cca. 100 controls that will cover our new UI parts/helpers and some additional services. These controls are meant to be very general and have to be used by many Xpages applications. Now question is how to share these controls among applications(databases). Controls need some managed beans to work, also some CSS, JS and images. To copy the whole stuff into each application and maintain it somehow is not the way (even design inheritance doesnt help here). What's more ... mixing these 100 controls among application specific controls is real hell as controls doesn't support any namespaces or some packages grouping (like java in Package Explorer), so at the end we have very long list of controls in DDE which is nightmare to navigate and work with.
We tried to use Extension Library approach and followed this tutorial
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide
... but honestly I tried 3 times on my computer from scratch and even example project from tutorial didn't work properly and still caused some errors in update site project. My colleague also tried this on his computer with no luck. And entire process as described in the article above is set of many java classes, XML and configuration files even for small control (eclipse plugin project -> feature project -> updated site project and then you have to install this update site test it and when bug occurs you have to run another cycle ...). Comparing to e.g. this http://tapestry.apache.org/component-classes.html its extremely heavy weight approach in Xpages.
So my question is, is there any other approach that can help us in this area to share controls among applications? Or is there any update expected in this area for upcoming Notes release e.g. R9.1 ?
the most efficient way to share controls is an extension library. It does come with a learning curve. You could use Nathan's XSP Starter Kit to ease your pain. Alternatively you can use the import/export plug-in from OpenNTF to move controls (and their supporting files) around.
In any case: XPages custom controls do support name spaces and grouping -> just have a look at the property panel of a control. You can define:
the namespace (defaults to xc, but you are free to design your own)
the group it should appear in
icons
how it looks at design time (to hide the inner workings)
So step 1 is to group and clean and then think about the distribution. Extlib definitely would be best.
There is good ol' method for sharing design elements in NSF: templates. You can make your database a template, and then inherit just specific design elements by copy/pasting them at designer level. In design element's properties view, Design tab, look for "Inherit from the design template" property. It contains template name from which you copied the element. Watch out for the property "Prohibit design refresh or replace to modify", it should be off.
This has some consequences when deploying the application to production, though, so please, read the documentation/help about template inheritance. Especially combination with XPages/custom controls requires the template to be built and signed.
We use it to share custom controls like application layout and picklists with no problems.

Server-side JavaScript --> Simple Dynamic Site

Note: This is not about the merits/demerits of SSJS
I am only asking if you think it is possible to create a simple dynamic site strictly using some form of SSJS. I am in no position to do any arguing (0 programming experience) -- I can only give you the benefit of some of the most interesting tutorials and information I ran across yesterday while doing some intensive Googling. I'm posting those links here in hopes that someone will browse through them and have light bulbs go off in their head.
Here are some of those links: (hold on -- I can only post one at a time)
1) NodeJS Tutorial w/ CouchDB & HAML: http://www.robsearles.com/2010/05/28/nodejs-tutorial-with-couchdb-and-haml-erdnodeflips/
Do you think it is possible to create a simple dynamic site strictly using some form of SSJS?
2) Blog rolling with mongoDB, express and Node.js: http://howtonode.org/express-mongodb

Resources