Apps for Open Atrium: Atrium Folders

A file repository for Open Atrium

Open Atrium's default set of features covers most of the common needs of an average organization, except one: a file repository with the familiar look and feel of a folders tree. By deploying customized versions of Open Atrium for different kinds of organizations we noticed that the built-in Notebook feature is still cumbersome for intranet users to store and categorize their documents (meeting reports, minutes, etc...): they are used to store their files in directories and subdirectories and not as books and child pages.

On the other hand, the needed technology for a more familiar documents repository is there: Drupal's core Book module can create hierarchical relations among nodes and files can be easily attached to nodes, so it's enough to interpret book pages as folders and their attachments as files to get the same paradigm users are familiar with.

Enter Atrium Folders: A simple file repository application

The idea behind Atrium Folders is to have a very simple file repository application with no external dependencies that users can just download, enable and start playing with. To get started, download the code directly from Nuvole's GitHub, place it under sites/all/modules/features in your Open Atrium installation and enable the new feature. Atrium Folders is shipped as an ordinary Drupal feature so, after enabling it as a module, we need to enable it in the Open Atrium group.

spacer

We can now visit the new Folders section and start adding the first folder.

spacer

As already mentioned, folders are nodes: we just need to specify its name, press Save and we are good to go. Now, say goodbye to the ordinary Drupal node interface; from now on we will be managing our repository from an intuitive "filesystem browser"-like interface:

spacer

Managing your repository

Use the top menu to manage the folder currently being displayed; it contains the following four items.

Basic information: change name and description of the current folder:

spacer

Subfolders: easily add a bunch of subfolders by entering their names, one per line:

spacer

Attach files to this folder: just the reinterpretation of the good old Drupal file upload form, it gives the possibility to upload as many files as we need to the current folder:

spacer

Notifications: specify who will get a notification of the current changes (again, we don't reinvent the wheel but we integrate with the default Open Atrium notifications system):

spacer

Upload multiple files: quickly upload a ZIP archive containing several files and folders: Atrium Folders will unzip it for you and place its content in the current folder (PHP must have ZIP support enabled in order for this functionality to be available)

spacer

Rearranging folders

The Reorder tab allows to rearrange the structure of our repository by simple drag-and-drop. This handy interface, borrowed from Drupal's core Book module, is also very helpful when we have to rename several folders at once.

spacer

File toolbox

Each file has a toolbox that will allow to rename, move or delete the respective file. The toolbox uses jQuery and AJAX calls extensively, to guarantee a smooth user interaction: files will be modified and changes will take immediate effect, with no need to reload the page.

spacer

Creating your own toolbox

Atrium Folders exposes hook_folder_toolbox() to enable third party modules to expose their own toolbox. As an example, here is the default atrium_folders_folder_toolbox() implementation:

<?php

/**
* Implementation of hook_folder_toolbox()
*/
function atrium_folders_folder_toolbox() {
  return array(
    array(
'op' => 'move',
     
'type' => 'file',
     
'title' => t('Move'),
     
'description' => t('Move the file to another location.'),
     
'form callback' => 'atrium_folders_move_file',
     
'ajax callback' => 'atrium_folders_move_file_ajax_callback',
    ),
    ...
  );
}
?>

Drag and Drop Upload

Atrium Folders ships with a built-in integration for the Drag'n'Drop Uploads module which gives the possibility to simply drag and drop files on the upload form to attach them to a node. If Drag'n'Drop Uploads module is enabled a Drop zone will be visible in the Attach files to this folder panel.

spacer

Drush integration: import an existing structure

When an organization wants to switch to Open Atrium, in most cases they need to migrate a shared folder to the new intranet. Atrium Folders includes the folder-import Drush command that allows to import a directory located in our local filesystem into a certain folder of a specific Open Atrium group. We just need to specify the full path of the directory we want to import and the Drupal path of the group we want it to be imported:

$ drush folder-import /tmp/meeting secretariat
Created 13 folders and 168 files.

Type $ drush help folder-import for more.

Fantastic/Finally!!! I love

Fantastic/Finally!!! I love the way this is implemented...

Great

This is a fantastic piece of work. I love how you've completely abstracted the UI stuff away from Nodes/Attachments into Folder/Files.

*Scurries off to install on his OpenAtrium testbed*

Looks awesome!

Looks great! I've used Outline Designer ( drupal.org/project/outline_designer ) to make the notebook feature a lot more user friendly. Looks like the rearrange folders feature could benefit from this project as well. Can't wait to throw it into my Atrium stack!

Whaw! Great stuff!

Whaw, this is great stuff guys.
Looking forward to test it out !

Single sourcing?

Looks very interesting. One huge problem with traditional file folders - and with the Book module - is that content can only be displayed in one location. Will this allow me to have a single instance of the same content (file) exist in multiple folders (aka single sourcing)?

Re: Single sourcing?

This cannot be done at the moment but could be interesting; it would require some planning though, since Drupal does not support it out of the box.

like Views is to Drupal, Atrium Folders is to Open Atrium

this module really alters the Open Atrium experience in my view, makes it far more usable

instead of a collapsing right hand nav for the notebook feature, you have intuitive, obvious folder structure

would be great if this became a general release module !

AWESOME

Nice, I installed it and it

Nice, I installed it and it works flawlessly!

Nice!

Very nice stuff!

Although this sounds great,

Although this sounds great, did you consider building this on the filedepot project, which had a proof of concept several months ago for integration with OpenAtrium?

Re: Although this sounds great,

Atrium Folders actually grew out of work we started in 2009 for nuvole.org/case/european-youth-forum-intranet and it was more natural for us to complete that one instead of turning to FileDepot, but in other cases FileDepot can indeed be a valid option.

I installed the feature and now cannot access any group

After I installed the feature I get an access denied page whenever I try to access a group that is public or private. Any suggestions?

Re: I installed the feature and now cannot access any group

There is a dedicated issue queue at https://github.com/nuvoleweb/atrium_folders for reporting any bugs and problems. Please post requests there, thank you!

Great work again Nuvole

Antonio, this is another great example of your firm's work on Atrium. We would definitely like to connect more on making it available to the larger Atrium community. Thank you for your innovation.

Jeff

Fantastic usecase for apps in distributions

This is a fantastic usecase for how apps/features should work for distributions like Open Atrium, Open Public, NodeStream etc. Really nice!

Great work! Thanks a lot! I

Great work! Thanks a lot!

I wished that this would become an official part of OpenAtrium and be the center of development for a while. Proper document management is sooo important.

The simplicity...

What is great about this is how simple it achieves this result using the existing drupal node structure. It does attempt to overcomplicated document management. I am sure something like this will satisfy a large majority of cases that need some form of document management.

Well done.

Looks very nice! Looking

Looks very nice! Looking forward to test it :)

The one thing I've needed in

The one thing I've needed in a file repo is meta data (CCK) on the files. Traditionally this isn't possible because of the node/attachments model.

Have you considered this? Is this possible with your toolbox hook?

Greg

Re: The one thing I've needed in

This is not possible via interface or (easily) via API at the moment, but as explained in a comment above it could indeed be a nice extension, even though not trivial.

How can this beat Google Docs?

Thanks for the efforts. The interface looks pretty good. Although I see that this brings us back to the use of files, which collides with the existing cloud applications such as Google Docs. How could you and a colleague, for example, work on the same document in real time online?

Cheers

Re: How can this beat Google Docs?

Beating Google Docs, or competing with it, is not the aim. Atrium Folders is a simple file repository feature for those who want to share files and folders.

When privacy matters

Google doc is great and unbeatable when privacy is least important. When you want to maintain confidential documents, native solution is preferred. Third party services potentially fails in this area.

And it didn't claim anywhere to provide collaborative editing feature :P

How to beat google worksheet

How to beat google worksheet ?

Building a module with this jquery plug-in :
visop-dev.com/lib/jquery/jquery.sheet/jquery.sheet.html

looks great

It looks really great.

Thanks.

Marvellous

Very, very good job
Very good intuition

Do you considered to use pupload module to allow upload multiple files in one shot ?

Great work ! and feature request.

I really wanted this module and I love it.But I need additional feature that set permission to edit/delete uploaded files.Now, Uploaded files can be edit/delete any user who can view the files.

Loose the Atrium meny when opening pdf-file

I uploaded a pdf-file, double clicked on it in the Atrium folder and it opens in the whole window, but I loose the Atrium meny system. I need to click go-back arrow in the Internetbrowser. I would prefer if it opened in a blank-page or in an br.

Folder for Drupal Commons

How hard would it be for us to port this to Drupal Commons?

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.