« Previous entries Next Page » Next Page »

Adding Tab Applications to the Zimbra Web Client

Posted in Community, Open Source, Zimbra Web Client, Zimlets by Jeff Sposetti on January 20th, 2010

New with Zimbra Collaboration Suite 6.0 is the ability to create Zimlets that show-up as tab applications in the Zimbra Web Client.  This powerful new feature, unique to the Zimbra platform, enables partners & customers to more easily integrate third-party applications with the Zimbra Web Client. And there are already new Zimlets taking advantage of this feature, like the Social Zimlet or the BroadSoft Zimlet.

Let’s take a look at how to implement some of the basic operations of this new feature…But first, some background: the Zimbra Web Client displays multiple default applications across the top of the interface as “tabs”. These applications include (based on your deployment configuration): mail, address book, calendar, tasks, documents and briefcase. With the Zimlet Tab feature, you can add “tabs” to this array of applications.

Creating the Tab

It starts with creating the tab in your Zimlet JavaScript code. A createApp() method has been added to the ZmZimletBase class. Since all zimlets extend ZmZimletBase, to create a tab, all you need to do is call the this.createApp() method from your Zimlet. The three parameters to createApp() are:

  • Tab label: the visible text “label” for the tab (for example, “My Tab”).
  • Tab icon: the CSS class to use for the icon in the tab.
  • Tab tool tip: the tab tool tip shown when hovering over the tab.

So creating a tab is as simple as calling the following from your Zimlet:

this._tabAppName = this.createApp("My Tab", "zimbraIcon", "A new tab app");

This method returns a unique application name for the newly created tab. You will need this unique name to manage and retrieve the different components of the tab, so it’s best to capture this return value.

Listening for Tab Application Events

Your Zimlet will also receive application events as tab applications are launched for the first time and as a user navigates around the Zimbra Web Client between tab applications. The events will be received in the ZmZimletBase.appActive() and ZmZimletBase.appLaunch() methods. By implementing these methods in your Zimlet, you will be able to know when a user launches and switches between tab applications.

Anatomy of a Tab Application

The layout of a tab application includes the following: the Tab and the Content Areas (i.e. Toolbar, Main and Overview).

The Tab

The row of tab applications across the top of the Zimbra Web Client interface is managed by an application chooser, which is represented by the Zimbra JavaScript class ZmAppChooser. The ZmAppChooser class extends ZmToolBar, making the row of tab applications basically a toolbar with buttons that look like “tabs”.

That means, after tab creation, you can manage the actual “tab” for the application as a ZmAppButton. For example, you can obtain a handle to the tab “button” through the app chooser and set, among other things, the text label & the tool tip.

var controller = appCtxt.getAppController();
var appChooser = controller.getAppChooser();

// change the tab label and tool tip
var appButton = appChooser.getButton(this._tabAppName);
appButton.setText("NEW TAB LABEL");
appButton.setToolTipContent("NEW TAB TOOL TIP");

The Content Areas

You can set the various content areas of the tab to suit your Zimlet needs. The Toolbar area is the area directly under the row of tab applications. This is typically the place where you put toolbar buttons for application control. The Overview area is located on the left-side of the page. This area typically houses a navigation tree but you can set any content you see fit. The Main area is the primary content location for the tab and can be set with whatever application content as needed.

The Toolbar Area can be obtained from the ZmZimletApp and is represented as a ZmToolBar object:

var app = appCtxt.getApp(this._tabAppName);
var toolbar = app.getToolbar();
toolbar.setContent("<b>TAB APPLICATION - TOOLBAR AREA</b>");

The Main Area can be accessed directly from the ZmZimletApp:

var app = appCtxt.getApp(this._tabAppName);
app.setContent("<b>TAB APPLICATION - MAIN AREA</b>");

The Overview Area can be obtained from the ZmZimletApp and is represented as a ZmOverview object:

var app = appCtxt.getApp(this._tabAppName);
var overview = app.getOverview();
overview.setContent("<b>TAB APPLICATION - OVERVIEW AREA</b>");

So that’s the basics of tab applications and Zimlets. As you can see, by leveraging this new Zimlet Tab feature, you will be able to create new & powerful integrations with Zimbra Collaboration Suite.

More information on implementing your own Zimlet tab application can be found in the Zimlet Developer’s Guide at:

http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Introduction

http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Zimlet_Tab

Zimlet Tab Examples are available at:

http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Example_Zimlets#Tab_Zimlets

And checkout the Zimlet JavaScript API Reference for information on the ZmZimletBase class and tab application methods such as createApp(), appAction() and appLaunch():

http://files.zimbra.com/docs/zimlet/zcs/6.0/jsdocs/index.html




Using the Zimlet Development Directory for Iterative Development

Posted in Community, Open Source, Zimbra Web Client, Zimlets by Jeff Sposetti on January 14th, 2010

When developing a Zimlet, you are constantly making code changes and then packaging and deploying the Zimlet to be able to test those changes. This is the Zimlet development process and is done over & over again until your Zimlet is “ready” for production. An iterative development process like this that involves packaging and deploying with each code change can be quite time consuming and really impact your developer productivity.

That’s where the Zimlet Development Directory comes in.

By using the Zimlet Development Directory, you can develop your Zimlets without having to package and deploy the Zimlet with each code change. You can make your code changes directly in the Zimlet files and just refresh your browser to see the changes take affect. This will greatly reduce your development time and overall, make it much easier to build Zimlets.

To use the Zimlet Development Directory, create a _dev folder in the {zcs-install-dir}/zimlets-deployed directory. In the _dev folder, create your Zimlet folder and file structure that you can modify on the fly. It’s just that easy.

For example, say you want to create a Zimlet named “com_zimbra_myzimlet”:

  1. Create the development directory:
    {zcs-install-dir}/zimlets-deployed/_dev
  2. Create the Zimlet folder:
    {zcs-install-dir}/zimlets-deployed/_dev/com_zimbra_myzimlet
  3. Now put your Zimlet Definition File (com_zimbra_myzimlet.xml) and whatever other resources your Zimlet needs in that directory (like JavaScript files, JSP files, Properties files, etc).
  4. Make code changes to the Zimlet files as necessary and voila, just refresh your browser to see the changes take affect.

There are some limitations, however. If using Internationalization resource properties, you will need to load the Zimbra Web Client in Development Mode (i.e. with “?dev=1″ on the URL). Also, the “allowed domains” setting in the Zimlet Configuration File (config_template.xml) for the Proxy Servlet is not recognized. There is a workaround for this situation described in the Proxy Servlet Setup section of the Zimlet Developer’s Guide.

We still recommend that you package and deploy your Zimlet when you plan to go into production. But as you can see, the Zimlet Development Directory cuts-out the deploy & package development steps and is a convenient way to do iterative Zimlet development.

More information on the Zimlet Development Directory can be found in the Zimlet Developer’s Guide at:

http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Dev_Environment_Setup#Zimlet_Development_Directory




New Zimlet Development Documentation Available!

Posted in Community, Open Source, Zimbra Desktop, Zimbra Web Client, Zimlets by Jeff Sposetti on January 7th, 2010

This is one people have asked about a lot. Starting with Zimbra Collaboration Suite 6.0, we will be providing a formal Zimlet Developer’s Guide and API Reference. The goal of this documentation is to make it easier for partners and customers to build Zimlets and to integrate with the Zimbra platform. As we’ve built this documentation, here are some of our guiding principles:

  • Easy to find. Make the documentation online and “wiki-based” for easy access.
  • Reduce “wondering” between versions. Maintain documentation with each ZCS release so when new major versions of ZCS are delivered (and changes are made to the APIs), people on older ZCS releases can still access their “version specific” documentation.
  • Lower overhead to get started. Make developing Zimlets possible without having to download the entire product source. Of course, product source will still be available for those who want it but we want to make even advanced Zimlet tasks (for example, compiling templates) possible without needed the entire source tree.

Here are links to the new developer documentation:

Zimlet Developer’s Guide for ZCS 6.0
http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Introduction

Zimlet Definition File Reference for ZCS 6.0
http://wiki.zimbra.com/index.php?title=ZCS_6.0:Zimlet_Developers_Guide:Zimlet_Definition_File_Reference

Zimlet JavaScript API Reference for ZCS 6.0
http://files.zimbra.com/docs/zimlet/zcs/6.0/jsdocs/index.html

These are living documents and we will be adding content & more information over the coming weeks. With this first-launch, we are looking for your thoughts on the best ways you enjoy learning and making use of the new material, as well as ideas and suggestions about Zimlet topics that you think we should cover. Please provide feedback and comments in the forums at:

http://www.zimbra.com/forums/zimlets/35951-new-zimlet-developer-documentation-zcs-6-0-available.html

Pay attention to the extra bar at the top to navigate around the wiki pages:

Whether you just want dozens of examples, a list of all the elements in the Zimlet Definition File…or want to dive into advanced topics like Templates and Portals, we plan to leave no stone unturned.

  

Happy coding!




Opening Up Microsoft Outlook to an Open Source and Standards Based Ecosystem

Posted in Open Source by Jeff Sposetti on December 23rd, 2009

Many of our partners, customers, administrators and end users have seen the Microsoft announcement regarding a roadmap to document the Outlook Personal Storage Table (.pst) file format, and have expressed their curiosity about it’s impact on Zimbra products. While it is still unknown if documentation will provide enough insight on how to really unlock the Outlook PST, we see it as the first step in providing new functionality in future versions of Zimbra Collaboration Suite and Zimbra Desktop that access the terabytes of data in PSTs.

For more than a decade, many attempts have been made to understand the Outlook file format, and products have struggled to provide PST support on platforms other than Windows. All efforts have come up short for one reason or another. As Paul Lorimer mentions in his blog post: MAPI and OOM libraries have been available to access PST content, but those libraries are available only to Microsoft programs where Outlook is installed. This dependency forces customers contemplating an OS or platform switch to include email data portability as factor in their decision.

Customers believe this is not a long-term acceptable scenario.  As a result, the software industry is in the midst of a gradual transition, moving from proprietary API and data models to open source and standards based options to prevent data lock-in and to encourage data sharing across applications.  But why haven’t companies spent more time or moved more quickly to open-up their platforms and data given the market’s trend line?

Companies have externally argued that the standards are not complete, or are in conflict with competing standards or they have just not seen the customer demand.  Internally they traditionally weigh existing revenue and investment in developing their proprietary APIs against creating & implementing open formats with greater potential reach and less well understood revenue impact. What has resulted is a string of complicated interoperability and conversion tools, with limited features and ambiguous product life cycles.

There is a lot of discussion out there about the meaning of openness, as noted in the recent Google blog, which has certainly garnered it’s share of comments (see John Grubber’s response or Matt Asay’s response). Regardless of the larger ongoing debate, historically, Microsoft has used data formats, like PST, to create application lock-in and as a wedge to drive commercial business. This only works for so long. Customer benefit has little to do with the underlying data store and more about user features.

Zimbra was built on the belief that a winning recipe is balancing an open system and support for standards with the commercial aspects of the business. Zimbra has always provided access to our core application source code and has been a huge proponent of open formats, throwing strong support behind standards like CalDAV. This platform and technology openness, as Matt Asay points out, allows vendors to focus on solving customer problems, not on the nuances and licensing (i.e. control) of underlying data.

We applaud the effort by Microsoft to help free their user’s data and feel this announcement is another piece of evidence that the need for “openness” has surpassed critical mass. We eagerly await release of the final PST documentation.




Defining an Evolution of the Zimbra Collaboration Suite: Version 6.0

Posted in Community, Open Source, Zimbra Server, Zimbra Web Client by Zimbra Team on September 30th, 2009

Zimbra’s massive user base means our new product releases reach farther than ever before. How far? Consider our 50 million paid mailbox count. With that comes the responsibility to make our solutions exactly what people need when it comes to shaping the future of communication.

So what are some of the top requested features included in the first release of Zimbra Collaboration Suite 6.0?

Sync your phone like never before.

We’ve added user trigger-able device wipe, server policies, and tasks to the existing MobileSync support for email, contacts, and appointments.

Arrange and personalize the interface.

Read and compose multiple messages in tabs without the need for pop-out windows using the advanced AJAX client. Widescreen? Move the reading pane to the side.

Presentation Framework.

Create new presentations (as well as documents and spreadsheets) from the briefcase – no need for external software to run them.

 

 

Calendar views. Direct CalDav connections. Streamlined contacts.

Our feature rich UI has new layouts including fisyeye and a sortable list view. Access an external ICS/CalDAV url – with adjustable automatic update polling frequencies. For the address book: Rather than pages of blanks to fill out, add only the contact fields you want.

Lite-client overhauls galore.

The standard HTML client now includes all our primary apps, plus the ability to drag items like it’s AJAX cousin. Using a web-browser on your mobile device? There’s multiple variants based on device type and connection speed. We’ve added appointment management functionality to the portable web-client, a simplified login page, as well as file access.

Role based administration.

Delegate. Empower distribution list managers without worrying about them accidentially changing major server settings. Even let someone add or remove members, but not create or delete existing lists – the views and ACL rights are that customizable. Hosting providers can now give one account permission to manage multiple domains or adjust class-of-service features.

 

 

Connect with your social world.

Zimlets now have the ability to define application or preferences tabs. So use the new Social Zimlet to manage Twitter, Facebook, or just browse Digg. Try the Discover Zimlet to visit all that Del.icio.us has to offer.

Share Management.

Join a new group? Get up to speed fast – receive and an instant email about all the available shares. Didn’t accept that invite long ago but turns out you need something? Rather than digging it up, just use the new share tool to see what you have permissions on; or have given to others.

Server Architecture Improvements.

A few of the powerful under-the-hood changes include a new OpenLDAP engine with the ability to make on the fly config tweaks, SQLite & RRD for logger, customizable hierarchical storage queries. Plus we’ve exposed a UI for the stats service – giving you quick insight on just about everything you can think of.

 

Someone on the Zimbra freenode channel recently asked: “Why skip the usual numbering scheme?” Well, we felt the above along with several hundred other groundbreaking enhancements made it worthy of a major revision number instead of a more modest 5.5 designation. Be sure to checkout read receipts, browseable company directories (global address list sync folders), on-behalf sending options, print size controls, published (self-enabled) Zimlet settings, fast on-demand/header-first sync in the Outlook connector, and the ability to run filters over existing items.

We’ll have to stop listing improvements there, but the great strides of Zimbra’s growth trajectory can ultimately be traced back to the power of our partner model and community ecosystem. While we don’t reflect Open Source Edition users in our metrics, everyone here certainly recognizes their role in making the Zimbra Server what it is today. So no matter which edition you use, our engineering team invites you to leave us some feedback on version 6.0.1 over in the forums. What features do you want to see implemented next? Let us know below, or test the nightly builds for a glimpse of aspects like pressure based page scrolling, support for the CardDav standard, and the ability to remove attachments but retain an email body; all of which are just a heartbeat away.



Try it now: Experience collaborative messaging and groupware done right – play with some of the above using a sample account on our live hosted demo.

Download ZCS: Grab the open source edition, it’s completely free to use and even modify code to your delight; or get the network version packed with extras.



Announcing Zimbra Collaboration Suite 6.0: 50+ Million Users Have Spoken

Posted in /etc, Community, Open Source, Zimbra Server, Zimbra Web Client by Greg Armanini on September 30th, 2009

With thousands of votes from the Zimbra community submitted to our product management database, and tens of thousands of hours logged by our engineering team, we are excited to officially announce Zimbra Collaboration Suite 6.0.

 

ZCS 6.0 is chock full of everything you asked for – because we made sure to check off the hit list of top requests. Some of the highlights include improved delegation and share management, increased productivity with three-pane email view, read receipts, remote wipe for mobile devices, and more. Our goal was also to make ZCS 6.0 the most flexible product yet, so we’ve also made it easier than ever to integrate 3rd party software. You can learn more about the new features in 6.0 later today in a deep-dive blog post.

 

But that’s not the only recent milestone: Did you ever wonder what Zimbra and South Africa have in common? No it’s not our love for South African Hip Hop or Kwaito … it is that Zimbra just bested their population of 49.3 million because today, we have surpassed the 50,000,000th paid mailbox mark. Meaning if all Zimbra users made up their own country they would be the 25th most populous in the world, edging up on Italy (Pasta anyone?). It’s amazing that we were able to gain ten million paid mailboxes just six months after reaching 40 million. Those 50 million accounts are spread across over 100,000 organizations that are now using Zimbra throughout the globe. That leap can only be attributed to our wonderful collection of partners and developers who continually remind us what people need so we can deliver the best collaboration product on the market.

 

We’ve been lucky to have the opportunity to work with a wide range of customers – from enterprises such as Mediacom and WebMD, to new government organizations including The Drug Enforcement Administration (DEA), Greece’s Ministry of Foreign Affairs, and Oman’s Ministry of Health; to educational institutions like Swarthmore College, Ecole Polytechnique de Montreal, and Savannah College of Art and Design.

 

 

Below are images a new mash-up built around ZCS 6 platform enhancements enabling Zimlets to be core application tabs.  “Zimbra Social” keeps you on top of all your Facebook, Twitter and Digg goodness.

Zimbra Social - Facebook and Twitter

 

Zimbra Social - Digg and Twitter trends

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Get the latest version of the Social Zimlet from the Gallery

Thanks again for all your support and feedback; hope you enjoy ZCS 6.0!
Network Edition server download | Open Source Edition server download

 

You can also find a bit more about what’s new in ZCS 6 on the Zimbra website.




Zimbra Looking For Developer Community Manager

Posted in Community, Open Source by Kevin Henrikson on September 14th, 2009

Been a while since we did a post for open positions but this is an important one so wanted to get it out there.

Position Overview:
Manage Zimbra’s rapidly growing technical community and launch our developer outreach program.  A key part of Zimbra’s rapid growth and ongoing success is the ability for us to engage and interact with our open source community.  This position will take the solid base we’ve grown over the past 5 yrs and define and implement a Zimbra developer program to lower the bar for external developers, partners and customers to build solutions around the Zimbra platform.  This will include expanding and leveraging the relationships between Zimbra, our customers, our developers and our sysadmin community members.  A few of the existing public tools and touch points are listed below. This position will build upon and improve the current tools and evaluate and add to these as needed.  The position will be responsible for developer events, training, documentation and ensuring that developers have all they need to make use of the rich APIs Zimbra offers.

- Our forum with over 27,000 members http://www.zimbra.com/forums/

- Our company/developer blog http://www.zimbrablog.com/

- Our developer and admin wiki http://wiki.zimbra.com/

- Our public bug database http://bugzilla.zimbra.com/

- Our public community driven roadmap http://pm.zimbra.com/

- Our web mash-up extensions (zimlet) gallery http://gallery.zimbra.com/

You can apply directly on the job posting here:

http://careers.yahoo.com/jdescription.php?oid=24060

If you have more questions of have someone in mind who you think would be a good fit please feel free to email me.

KevinH at Zimbra.com

-kevin




The Power Zimlets Series: Five New Tools For Zimbra Users – #1 Attach Emails

Posted in Open Source, PowerTips - Users, Zimbra Web Client by Raja Rao on July 20th, 2009

As a long-time Zimbra developer and employee, I’ve spent countless hours each week using Zimbra email.  I love the overall experience, especially because I have been able to tailor it to my personal style using Zimlets.  They are easy to create and over time I have built quite a few.  So without further ado, the following is the first of a 5 post series featuring new Zimlets which I think are incredibly useful and empower Zimbra users.

Zimlet 1: Attach Emails

Every so often I miss the ability to easily to attach an earlier email while composing an new email message.  This Zimlet does just that, it adds an “Attach Email” tab in the Attachments dialog in Mail Compose. Once you click on the Email tab you can search for emails that you want to attach or just scroll the list. You can even ‘browse’ for emails by clicking on the folder tree.  Finally, something I really like is with any of these methods you can also select multiple emails and attach them simultaneously.

Here is how it works… assume you are composing or replying to an email and now you want to attach some earlier email…

1. Click on the Add Attachment Button

2. Click on the Attach Mail tab

3. Search or browse for emails (in this case below I’m looking in the Sent folder)

4. Select the email(s) you want to attach – ctrl to select multiple.

5. Click Attach button

You can repeat these steps again if you want for more emails or other attachment types.

Attach Email Dialog


For more screen caps and the download check out the Zimbra Gallery.

Note – you need ZCS 5.0.15 and above or 6.x to use this Zimlet.

Next post… Ignoring Conversations.




6 Tips for a Smooth Zimbra Server Install

Posted in Community, Open Source, PowerTips - Admins, Zimbra Server by Anup Patwardhan on May 27th, 2009

It may sound odd offering more Zimbra installation advice since there is a lot on the subject in other blogs, our documents, wiki and Forums. In fact, some quick research surfaced over 1.4 million hits for Zimbra server install on the web and 36,000 on the Zimbra site alone.

But we are also fortunate to have more new Zimbra users than ever, and after helping some trial customers recently, it was a good reminder a few simple tips can help cut through some noise and avoid time-consuming snags once you start the install process. So without further ado here are the top 6 common pre-requisites to consider when preparing for your Zimbra installation:

1. Firewall
Servers have firewalls configured once the operating systems are installed for security purposes. Our recommendation is to temporarily disable the firewall on the system during a single and multi-server Zimbra installation. An alternative would be to refer to our installation guide to get a list of ports (see Table 1) used by the application and make sure the ports are open prior to installation. Zimbra-ports

2. DNS setup
All Zimbra configurations store hostnames. We do not have save any IP address information in our configuration. The advantage is this allows an administrator to change IP address (more likely) on the Zimbra system without having to perform any application changes.

This scenario means that all the hostnames to be used in a Zimbra installation have to be defined in DNS. Both A and Mx records for the hostnames and email domains need to be defined and verified prior to beginning your installation.

One other thing to consider is split DNS configuration if you are dealing with servers separated by a firewall.

3. Use of Fully Qualified Hostnames (FQDN)
It is crucial to use a Fully Qualified hostname during the Zimbra configuration. For example, you should enter server1.domain.com instead of server1. This avoids incorrect DNS address lookups and ensures that the client would be connecting to the right application.

4. Port Conflicts
Standard server configuration comes with support for numerous services like POP, IMAP and HTTP (see Table 1). These services are also installed with the Zimbra Network Edition. Therefore, you want to make sure you disable all these services prior to installation. The Zimbra installation scripts will check for any of these port conflicts and notify you to turn these services off before continuing.

5. Libraries and additional packages
Zimbra’s rich feature sets are dependent on additional packages being installed on the system. These packages vary between Linux and Mac Operating system. The Zimbra installation script does perform checks to verify all the dependencies have been met, but going through the System Requirements documentation (available on the Zimbra website) before will save you some time.

STORAGE CALCULATION EXAMPLE
(Based on ‘Mailbox Usage of 200 MB’ and 500 users)

+ User Data: 500 users with 200 MB = 100 GB user data
+ MySQL data: 5% of 100 GB (User Data): 5 GB
+ Zimbra binaries: 10 GB
+ Zimbra logs: 20 GB
+ Zimbra indexes: 25% of 100GB (User Data) = 25 GB

SUBTOTAL:
100 + 5 + 10 + 20 + 25 = 160 GB
Backups: 160 % of Subtotal: 160 * 160% = 256 GB for backups
TOTAL: 160 + 256 = 416 GB

6. Sizing
Storage sizing is important for an excellent performing Zimbra application (see example). If you are doing a Network Edition trial you should contact the Zimbra technical team for sizing information for storage including number of disks, which Raid level to use, and the size of the drives to use. Configuration of the Zimbra store volume is important in satisfying the application IO requirements.

Remember, it’s also a good idea to review the Zimbra Quick Installation Guide where you can find this information and many more good tips.

Do you have a good tip to share? Feel free to add a comment!


Anup Patwardhan is the lead Zimbra sales engineer





« Previous entries Next Page » Next Page »

Subscribe


Subscribe by Email



Categories


Archives

  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009