Content Management Over The Horizon
By 04/28/2015 02:38 pm—
Nuxeo is an Enterprise Content Management ("ECM") system. Nuxeo keeps track of documents from creation to deletion. But even after deletion of a document, Nuxeo allows privileged users to manage those documents. Read on to learn how to delete a document, find a deleted document, and restore a deleted document. Simple enhancement of the delete functionality is also discussed.
In Nuxeo Platform 7.0, navigate to a document which is ready to be deleted. Then navigate back to the parent document's Content tab. Check the box next to the name of the document to be deleted. Multiple documents could be selected at this time to be deleted simultaneously. A series of buttons should appear at the bottom of the list of contents once an item is checked. Click the "Delete" button to delete this document (or documents). Then confirm by clicking "OK".
The parent document can also be deleted. Navigate up a level in the navigation tree, select and delete the parent as well.
Once these documents are deleted, they will no longer appear in the Content tab of the parent document. They will no longer appear on the left navigation tree, either. In order to manage the deleted documents, navigate to the parent of the document that was deleted. In this case, that parent is the Granite Horizon Workspace. Then click the "Manage" tab, and then click the "Trash" subtab.
The action button that is available is "Empty trash". Select the checkbox next to the parent document (in this case, Granite Horizon Folder) and the options "Permanent delete" and "Restore" appear. Click "Restore" to restore the parent document (Granite Horizon Folder) and all of its subitems. Or, click "Permanent delete" to permanently delete the parent document and all of its subitems. Note that the original child document(s) that were deleted are not listed. Click on the parent document (Granite Horizon Folder) to view the deleted subitems. If the subitems are restored, the parent will be restored as well.
Note that the location where the deleted documents are accessible is the immediate parent document's Manage/Trash location. In this example, the Granite Horizon Workspace contains the Granite Horizon Folder in the trash. However, the Granite Horizon Workspace's parent, Workspaces, has nothing in the trash. This may be inconvenient, as it might mean navigating through many documents to find a deleted document. One way around this is to implement a "Domain trash" or a "Workspace trash" at a high level using Nuxeo Studio. This could contain all the deleted documents for that domain and/or workspace. One simple solution to this is to create a content view that shows deleted documents where the path "STARTSWITH" the current document path. The Query filter would look like this:
ecm:mixinType != 'HiddenInNavigation' AND ecm:isCheckedInVersion = 0 AND ecm:currentLifeCycleState = 'deleted' and ecm:path STARTSWITH ?
and the Query parameter is
In order to make this behave like the default Trash tab, add a couple user actions called "Restore" and "Permanent delete". These can be added directly to the Content View by clicking on "Results" -> Enable additional actions -> Create a new action.
Then add this content view to a Tab on the document desired. Enhance this by adding a search filter.
Out of the box, Nuxeo allows users to delete documents, delete parent documents, restore subtrees and permanently delete subtrees and individual documents. With some customization, some high-level management of deleted documents can be added. Worth noting is that Nuxeo's delete feature can be controlled by ACLs. In addition, a document's versions can be deleted using the History -> Archived versions tab. This can also be managed by ACLs.
Any questions or comments? Please chime in!
By 04/23/2015 02:50 pm—
Nuxeo is an ECM system. Nuxeo keeps track of a document's history, tracking important facts about the document's creation and about each edit. Many document types in Nuxeo come with a "History" tab enabled by default. This tab displays document event and version information. Nuxeo provides the document's history information. Also, Nuxeo offers document versioning out of the box. These are useful tools in tracking the change history of a document. Customization of the Versioning feature using Nuxeo Studio may improve Nuxeo's default behavior to suit business requirements.
The document's History tab contains useful information about a document's history for every edit: the performed action, the date the action was performed, the name of the user who performed the action, and so forth. When the document is edited, a field for "Change Comment" is available. When an edit is saved, the History -> Event log tab shows the change comment and the version number both in the Comment column. As with most tables in Nuxeo, the Event log can be easily exported to Excel.
The Nuxeo documentation on Document History is available here: http://doc.nuxeo.com/display/USERDOC/Document%27s+History
While the Event log is automatic, with the only user input being the Change Comment, the Versioning system requires direction from the user. The editor can choose to apply a version whenever they edit a versionable document. The editor can increment the version by a major or minor increment, or skip versioning altogether for that edit.
One of the versionable document types that comes with a new Nuxeo installation is the File document. When a File document is edited, the Version section appears, allowing the user to either apply a Major version increment, a Minor version increment, or Skip version increment. Skip is selected by default.
It is interesting to note that the original document is not assigned a version number on creation. Therefore, the History -> Archived versions table only shows a Version if one has been assigned when the document was edited - not when it was created. This means that the original document cannot be retrieved.
When the document is edited again, and another version increment is applied, then true work with versions can begin.
Once a document has two or more versions, the editor can perform a variety of functions on these versions: delete, compare, view, and restore.
The Compare feature renders a diff of the selected versions, if the Nuxeo Diff Marketplace Package has been installed.
Again, it is interesting to note that the original document cannot be compared, deleted, or restored.
This out of the box behavior can be customized to suit business needs.
When a client requires that a specific document type has a version assigned when the document is created, a simple event handler/automation chain can be created that does a major CheckIn when a versionable, regular document is created.
When a client requires that a certain document type, or set of document types, have a Major version assigned whenever the document is edited, the following XML Extension may be helpful:
<extension target="org.nuxeo.ecm.core.versioning.VersioningService" point="versioningRules">
<defaultVersioningRule> <options lifeCycleState="*"> <major default="true"/> </options> </defaultVersioningRule> <versioningRule enabled="false" typeName="File"/> </extension> <require>org.nuxeo.ecm.platform.forms.layouts.webapp.base</require> <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager" point="layouts"> <layout name="document_edit_form_options"> <templates> <template mode="any">/layouts/layout_default_template.xhtml </template> </templates> <rows> <row> <widget>document_edit_comment</widget> </row> <row> <widget>document_edit_current_version</widget> </row> </rows> </layout> </extension>
Any questions? Have a better solution to share? Please contact us.
By 04/21/2015 03:06 pm—
Nuxeo Studio is an online service that provides a vast array of features to help users manage their enterprise content better in Nuxeo Platform. Being a user of the service as well as a Nuxeo integration engineer myself, I'd like to list some of the big features Nuxeo Studio has got going for itself.
1. Schema Definitions
Studio allows users to define a vast lists of schemes, or collection of metadata (like a potential Football Player schema would include their name, roster number, position, etc.). These help objectify groups of data to have a defined identity so they can be used in a means that makes sense to the user.
2. Workflows and Lifecycles
Nuxeo Studio provides a nice visual Lifecycle tool to set-up all the possible document states. This includes the starting state and all the possible paths from that state. With this, the studio provides a visual workflow tool that helps users make a roadmap on how documents are handled by users, and how it affects its lifecycle state.
3. Structure Templates
This tool alleviates any unnecessary work to manually create documents, by simply creating a template that automatically produces them. The user can define rules of what type of documents can be created, along with setting up an automatic control list of permissions for the created documents.
4. Content View Customization
Here, the user can define how content is displayed on the platform, as well as define the filter rules on how content can be organized and searched for. To do this, Nuxeo provides NXQL (the Nuxeo Query Language) as a means to query data from its database. It's a handy language to pick up, and allows the content view to gain access to specific metadata so it can display them in a fashion that suits the users needs.
5. Automation Functions
Users are able to create users actions, automation chains, or event handlers, which allows top-level programming for almost everything with the users content. For automation chains, users can define a string of operations, like simply changing a document property. For user actions, users can apply those automation chains to be triggered when a user does something, like click a button. And for event handlers, users can set an automation chain to be triggered when a special document event happens, like when one is created.
While all of these are standout features of Nuxeo Studio, there are still more things the service can provide.Nuxeo has a vast amount of documentation posted online for everything above, and much more. You can find more information at http://doc.nuxeo.com/display/Studio/Nuxeo+Studio+Documentation+Center.
By 10/30/2013 11:32 am—
Aleksander Farstad presented plans for eZ Systems' strategy for the coming months on eZ Sessions.
The co-founder and CEO of eZ Systems, Farstad discussed the priority of helping businesses draw economic results from their content. Recent cost-cutting measures have freed up funds which will be used to increase marketing and bring product development to its highest level yet. Some global corporate functions will be moved to New York, where one of the product managers is already based.
The presentation was part of eZ Sessions, a monthly YouTube broadcast provided by the eZ Community in North America.
By 02/11/2013 02:43 pm—
Not every edit to a website is a good one. But for users of the eZ Publish content management system, it's easy to roll back to a prior version. This video shows you how. The video is recorded in HD so feel free to select that on the player for optimal full screen viewing.
By 01/24/2013 10:00 am—
Learn how to add images to your eZ Publish content management system. Two techniques are demonstrated: using an image gallery already on the site, and uploading a new image. The video is recorded in HD so feel free to select that on the player for optimal full screen viewing.
By 01/22/2013 04:47 pm—
Ready to dive into managing your eZ Publish website? Here's the first step: learning how to log in, find the content you want to change, and make some edits.
The video is recorded in HD so feel free to select that on the player for optimal full screen viewing.
By 01/02/2013 09:44 am—
New to eZ Publish? Considering it for a project, or just evaluating the options out there? Here is the enterprise, open-source, PHP-based eZ Publish platform in brief.
What did I forget (and do you have any questions about eZ Publish)? Please post in the comments below. Thanks!
By 11/29/2012 08:00 am—
Tuesday eZ Systems announced to its partners and customers that eZ Publish 5 Platform is now available for use.
Version 5, code named Kilimanjaro, truly was a highly-anticipated release. The last major version (4) was a port from PHP 4 to PHP 5. eZ Publish 3 really was the version which started eZ Publish as we know it--there was no upgrade path from eZ Publish 2, which was the original edition released to the public. So despite the fabulous incremental upgrades which minor releases have brought, since the first direct ancestor of today's eZ Publish was born this is the first major release that focused on architectural overhaul.
Much architectural preparation for this transition was done in earlier releases, especially with the PHP API (eZ Publish also ports a REST API). The maturing of both API's is a major hallmark of this release. Now app developers can make use of eZ Publish content and other features -- without knowing eZ Publish at all -- just by utilizing its API documentation. And those writing extensions for eZ Publish itself now can make great use of the PHP API, allowing eZ to further develop kernel-level functionality with no change to the features utilized by the extensions.
Another key change is the employment of Symfony. I believe eZ Publish is the first major CMS (content management system) to utilize the Symfony PHP framework as a "full stack." making use of not just some features of its libraries but fully utilizing it as the top-notch HMVC (hierarchical module view controller) framework it is. eZ's engineers are pleased to have a more flexible and community-maintained MVC framework instead of needing to develop and maintain their own. Developers already acquainted with Symfony will have a head start as they take on their first eZ Publish project.
Nested within eZ Publish 5 is an eZ Publish 4 installation, called eZ Publish Legacy. It serves two purposes. Any site running eZ Publish 4 now can upgrade into eZ Publish 5 by upgrading into the Legacy installation, so backward compatibility is complete. Many more features still will be added to eZ Publish 5 (5.1 is expected in the spring, and 5.2 in the fall of 2013). Some of these features will be necessary to develop native eZ Publish 5 websites using the eZ Publish 5 native database handlers (which will soon support big data type databases in addition to the existing relational databases like MySQL, Oracle, and Postgres). In fact, sites will be able to gradually evolve from being "Legacy" to more and more utilizing eZ Publish 5 native features, until at last they are 100% eZ Publish 5 native. There is no rush, as Legacy will be supported for years, and for the time being it remains necessary for full-featured CMS development.
Similarly, developers can now start making use of the a new template language called Twig, also from the makers of Symfony. This template language is available for native eZ Publish 5 development
With so much technical improvement behind them, expect eZ to continue its now rapid progress in enhancing user experience and allowing for greater customer experience management. 5.1 and 5.2 are scheduled to bring three new interfaces for administrators, power editors, and regular editors. The eZ Market boasts extensions for marketing, analytics, document management, recommendation generation, and much more. Essentially, while it's true that many CMS's have in fact now "solved the content management problem," not all have done so with the level of stability, high availability, and extensibility as eZ Publish has, and that becomes even more true with this step forward. What customers really want in CMS's today is to have and and pay for now are advanced tools for CXM, and this is the sweet spot eZ is positioning eZ Publish for, particularly through add-ons available for purchase in their eZ Market.
One other subtle change accompanied the release: nomenclature. Instead of eZ Publish 5 Enterprise, it is called eZ Publish 5 Platform. Presumably this is to emphasize the enterprise software's status as a content management framework rather than just a CMS.
By 09/21/2012 02:30 pm—
In November eZ Publish Enterprise will be released with its new major version: eZ Publish 5. This much-anticipated release includes the Symfony framework as eZ Publish's new foundation. It also brings a new template language and quite a bit more flexibility than even the amazing elastic eZ Publish 4 offered.
The community project edition of eZ Publish will be making use of eZ Publish 5 late next week. For more information, read this post I just put on the eZ community website.