Category Archives: Plug-ins on pages/multi links

Plug-in Show Language Variant values

With this plug-in you can display all content element values from all language variants (LV) on only one screen. On top you get an overview of the workflow state of the page in all language variants (except translation editor states, yet).

This plug-in displays a matrix between the content elements (language variant dependent and not dependent) and the value of these elements per language variant. Each language variant gets his own column.

Is a value from a LV different from the main LV the row is marked yellow. This makes a check easier, because you can focus on the differences. For text element values the HTML code is included into the plug-in’s table. The plug-in checks the language variant values against the main LV and add a yellow comment “different from …”  for a difference.

You can start the plug-in regardless of the current language variant you work in. The main language variant is always the first column, all other language variants are coming right beside. Therefore the layout of the matrix is always the same to prevent confusion.

Although the plug-in code switches the language variant to collect all values it preserves your current language variant selection. The displayed LV in MS is still correct after you close the plug-in again (and even after an error).

Benefits
The goal of this plug-in was to check the translators work. The plug-in is used to get all information on only one big screen.

With this plug-in you get a fast overview of the content of a page for all language variants. Using standard functionality you have to change the language variant which is quite time consuming.

Location in SmartTree
You found the plug-in under Administer Project Structure > On every page.

How it works
The plug-in immediately starts without any further questions. On top the screen echos the page you selected and the language variant you are currently working in.

This example uses 4 LVs and English is the main LV.

As mentioned the table on top show all page meta data and the workflow state while collecting all LV values from the current page. Currently the states from translation editor are not included, e.g. waiting for translation.

In the bottom table you get the matrix between content elements retrieved from the underlaying content class and the LV value.

The number of columns of both tables depend from the number of LV you have in your project. Therefore a horizontal scrolling could not be prevented (but is not shown) here even for this example for 4 LVs.

After the columns for the element name and type you get 2 columns showing if the element’s value is LV dependent or not.

Column 5 contains always the element’s value of the main language variant. To the right you get an additional column with the element’s value for each LV. If an element is not LV dependent in the cell n/a is displayed to indicate this.

All LV dependent elements are marked yellow. For text elements the yellow text in the cell “different from en” is used to indicate that the text in a LV is different from the main LVs text. The plug-in checks this explicitely, because small differences are often very difficult to see.

Installation
This plug-in can be installed using the combined setup routine for all jRQL API based plug-ins. Follow the instructions in this blog to download the installer and configure the plug-ins you want.

For API developers
The plug-in works mainly in 2 steps:

  1. collect all content element values in a loop by LV
  2. write out the result table in a loop by content element

To support this conversion I mainly uses the helper class LanguageVariantDependentValuesMatrix from the util package to collect the meta data and all content element values. All content element could be retrieved by the method Page > getContentElements().

In addition the standard functions for looping and changing the LV in a project.
Main methods are

Plug-in Show details of pages on a list or container

With this plug-in you get a a lot of page details and workflow state of all pages linked to a list or container (=multi link). Your get the following page information presented in a table:

  • Page Id
  • Page headline
  • Content class name
  • Created by user name
  • Created on date
  • Last changed by user
  • Last changed on date
  • State (draft, released)
  • Released on date

Depending on your display settings “Unreleased pages” get even unsubmitted pages from other authors. This makes this plug-in a perfect tool for all support persons.

Benefits
You get a fast overview of a bunch of pages linked to a list or container, instead of getting only the headline of a single page. This plug-in centralize a lot of data, which normally are wide spread into different dialogs and takes too much time to collect. From my experience the headline itself is not enough to get an overview on pages other authors created.

If you have to support authors within workflow, I recommend this tool to get the full overview of the pages and which pages are changed last. You can see immediately which pages are at which step in the workflow and are ready to answer questions on the phone quickly.

This plug-in works in SmartEdit as well. See below how to activate it.

Location in SmartTree
You found the plug-in under Administer Project Structure: at every List or Container.

How it works
Immediately after click on the plug-in title it will start immediately to collect all page details information. In contrast to other plug-ins there is nothing dangerous happening and no other data needs to be request, so this plug-in rushes ahead without further click needed.

The plug-in tells you at the bottom of the page the full amount of pages linked to this list or container.

Installation
This plug-in can be installed using the combined setup routine for all jRQL API based plug-ins. Follow the instructions in this blog to download the installer and configure the plug-ins you want.

Make this plug-in available for SmartEdit authors
This plug-in is not but can be easily activated in SmartEdit as well. Simply add the plug-in target ioDevDialogEditMultiLink and your authors using SmartEdit will get this plug-in on the list or container menu.

For API developers
The functionality could be easily extended quite easily. Simple enhance the showChildDetails.jsp in the webapp jrql with other page details. Please refer to the available methods on class Page, for instance Page > getFilename().

Plug-in Reset all draft pages

With this plug-in you can get rid of all pages you (or an author) has in draft currently. You can with this plug-in get rid of all not ready and unwanted pages with a single click.

There are 2 reasons why a page can be in draft: it is newly created and it has been updated. This plug-in handles both in a different way:

  • all newly created pages will be deleted again
  • for all updated pages an undo changes will triggered

After this plug-in finishes you list of draft pages is empty!

This plug-in can be called from authors as well, you only have to integrate it into SmartEdit.

Benefits
The list of draft pages can be quite crowded for the following reasons:

  • many pages are created by API or plug-ins by authors you want to get rid of (maybe they are not correctly created)
  • authors often collects unwanted pages in draft state they don’t want anymore. From an amount on they don’t want do it one by one, because of the high workload.

This plug-in makes it easy for you to clear your draft pages all together with one click only. This is especially of great benefit if the author did not enter the mandatory elements!

Location in SmartTree
You found the plug-in under Administer Project Structure > Project. You can use it on SmartEdit as well, but I can not recomend a plug-in target for this plug-in. At Hapag-Lloyd I added it to the Tasks dialog of MS as a little hack.

How it works
First you need to confirm, that you want to get rid of all your pages in state draft of current project. The plug-in did not provide the list of draft pages.

After clicking on button Reset all draft pages the plug-in will come back to you with this result screen.

It lists all reset pages together with the action (undo or delete). From all pages it displays the headline and page ID.

It present the totals how many pages were deleted and on how many undo changes were called.

There can still be pages in draft afterwards, if the authorization of the the users has changed in between. This is the reason, why it checks again how many pages are even afterwards in draft.

Installation
This plug-in can be installed using the combined setup routine for all jRQL API based plug-ins. Follow the instruction in this blog to download the installer and configure the plug-ins you want.

Make it available to SmartEdit authors
I think the natural place within SmartEdit would be the Tasks dialog, Unfortunately there is no way to add a plug-in into this dialog.

But you can easily make it available for instance in the page menu (ioDevDialogPageActions), still it is not the right context for it.

For API developers
The functionality is based solely on the functions to get all draft pages from the currently connected user and to reset a page.

Plug-in Delete page

With this plug-in you can delete a page, regardless of the state (e.g. draft, waiting for release) of it. The original MS delete function is unfortunately not available if the page is in workflow. This plug-in deletes always all language variants.

Because the plug-in is available even another author has locked the page, which the MS shows by the message “Page is already being edited”, please be careful.

The page will be deleted, even there are references to this page. This can be references from other pages or self references.

Benefits
Deleting a page is the only possibility to get a page out of the workflow (draft by another author, waiting for release, waiting for correction), when the author don’t need the page anymore. From support reasons I quite often wanted to delete the page at all, what the MS did not offer, at least until MS 9.

Location in SmartTree
You found the plug-in at every page in the SmartTree page menu.

How it works
First you need to confirm that you want to delete the page. This plug-in echos the page ID, headline and the content class for you to check, if it’s the correct page.

The window will be deleted automatically after you click the button Delete page. Please have in mind that the SmartTree is not updated. If you know how to do it, please give me a hint. I will try to add this feature.

Installation
This plug-in can be installed using the combined setup routine for all jRQL API based plug-ins. Follow the instruction in this blog to download the installer and configure the plug-ins you want.

For API developers
The functionality is provided with the method Page > delete(true). Page is one of the main classes of the jRQL API. For further information, please browse the category editing pages.