# Simple View Extensions

## Howto

- Extensions are activated by putting the extension name to the `@EXTENSIONS` list in `webdav.conf`:

      @EXTENSIONS = ('History', 'Highlighter','Diff','Download','Zip','DiskUsage',
                     'Search','SendByMail','Permissions');

- Extensions are configured with the `%EXTENSION_CONFIG` variable in `webdav.conf`:

      $EXTENSION_CONFIG{SendByMail} = { relayhost=>'smtp.example.org' };

- You can use some lists for easier upgrades:

      @EXTENSIONS=(@DEFAULT_EXTENSIONS,@EXTRA_EXTENSIONS,
                   @AFS_EXTENSIONS,@PUB_EXTENSIONS,@DEV_EXTENSIONS)

- If an extension is to be disabled, you can set the option 'dontregister', for example:

      $EXTENSION_CONFIG{DiskUsage}{dontregister}=1;

## Supported Extensions

- AFSACLManager - manages AFS ACL
- AFSGroupManager - manage AFS user groups
- Diff - compares files/folders
- DiskUsage - collects disk usage data
- Download - offers a download button to force download instead of view
- Feedback - adds a feedback dialog
- GPXViewer - shows GPX tracks with Google maps
- HexDump - shows a hexdump of a file
- Highlighter - colorizes files/folders
- History - shows a folder history
- ImageInfo - shows image/video/audio information (EXIF, ID3, ...)
- ODFConverter - converts between Open Document file formats and other Office file formats
- Permissions - manages files/folder POSIX permissions (user, group, others: rwxts)
- PosixAclManager - manages POSIX ACL
- PublicUri - share files and folders with a public link (own page)
- QuickToggle - adds a toolbar for toggling some preferences
- Redirect - redirects folders to any web page
- SaveSettings - saves web interface settings into properties database
- Search - searches file/folders by name or content including duplicate file search
- SendByMail - sends mails with attached files/folders
- TextEditor - offers a simple text editor with integrated CKEditor™ for HTML editing
- SourceCodeViewer - show syntax highlighted source code
- VideoJS - plays mp3/ogv/webm videos with VideoJS player
- ViewerJS - shows OpenDocument and PDF files (odt,odp,ods)
- Zip - (un)compresses files/folders

## AFSACLManager

    # SETUP:
    # allow_afsaclchanges - (dis)allows AFS ACL changes
    # template - default template
    # disable_fileactionpopup - disables popup menu entry
    # disable_apps - disables apps entry
    # ptscmd - path to the pts command (default: /usr/bin/pts)

## AFSGroupManager

    # SETUP:
    # disallow_afsgroupchanges - disallows afs group changes
    # ptscmd - sets the AFS pts command (default: /usr/bin/pts)
    # disable_fileactionpopup - disables fileaction entry in popup menu
    # disable_apps - disables sidebar menu entry
    # template - sets the template (default: afsgroupmanager)

## Diff

    # SETUP:
    # diff - sets the path to GNU diff (default: /usr/bin/diff)
    # disable_fileactionpopup - disables fileaction entry in popup menu
    # enable_apps - enables sidebar menu entry
    # files_only - disables folder comparision (recommended for SMB, DBB)

## DiskUsage

    # SETUP:
    # enable_fileaction - enables fileaction entry
    # disable_fileactionpopup - disables fileaction entry in popup menu
    # disable_apps - disables sidebar menu entry
    # timeout - timeout in seconds (default: 60)
    # filelimit - limits file count for treemap (default: 50)
    # folderlimit - limits folder count for details and treemap (default: 50)
    # template - dialog template (default: diskusage)
    # followsymlinks - follows sym links (default: 1 (on))

## Download

    # SETUP:
    # disable_fileaction - disables fileaction entry
    # disable_fileactionpopup - disables fileaction entry in popup menu
    # enable_apps - enables sidebar menu entry
    # disable_binarydownload - sets the right MIME type

## Feedback

    # SETUP:
    # contact - TO recipient address[es] (default: d.rohde@cms.hu-berlin.de)
    # contact_cc - CC recipient address[es] (default: undef)
    # contact_bcc - BCC recipient address[es] (default: undef)
    # emailallowed - enables email field in feedback form (default: 0 [disabled])
    # domain - mail domain for 'from' address (only used if a REMOTE_USER doesn't contain a domain)
    # subject - email subject (default: "WebDAV CGI")
    # body - email body (default: "\$msg\n\n%s\n" [%s - client info data, \$msg - message])
    # clientinfo - if enabled add client info to feedback mail (default: 1 [enabled])
    # mailrelay - sets the host(name|ip) of the mail relay  (default: localhost)
    # timeout - mailrelay timeout in seconds (default: 2)
    # sizelimit - defines the mail size limit excepted by your mail relay (default: 20971520 [=20MB])

## GPX Viewer

## HexDump

    # SETUP:
    # sizelimit - file size limit (default: 2097152 (=2MB))
    # chunksize - chunk size (bytes in a row, default: 16)

## Highlighter

    # SETUP:
    # namespace - XML namespace for attributes
    #  (default: {http://webdavcgi.sf.net/extension/Highlighter/$REMOTE_USER})
    # attributes - CSS attributes to change for a file list entry

## History

## ImageInfo

    # SETUP:
    #   hidegroups - sets a list of groups to hide (default: ['ExifTool'])

## ODFConverter

    # SETUP:
    # ooffice - path to ooffice (default: /usr/bin/soffice)

## Permissions

    # SETUP:
    # disable_fileactionpopup - disables popup menu entry
    # disable_apps - disables apps entry

## PosixAclManager

    # SETUP:
    # getfacl - getfacl path (default: /usr/bin/getfacl)
    # setfacl - setfacl path (default: /usr/bin/setfacl)

## PublicUri

Go to the PublicUri page.

## QuickToggle

    # toggles - template file
    # disable_filterbox - disables filterbox entry
    # enable_apps - enables sidebar menu entry
    # enable_pref - enables sidebar menu entry (after preferences)

## Search

    # disable_fileactionpopup - disables fileaction entry in popup menu
    # disable_apps - disables sidebar menu entry
    # allow_contentsearch - allows file content search
    # resultlimit - sets result limit (default: 1000)
    # searchtimeout - sets a timeout in seconds (default: 30 seconds)
    # sizelimit - sets size limit for content search (default: 2097152 (=2MB))
    # disable_dupseaerch - disables duplicate file search
    # maxdepth - maximum search level (default: 100)
    # duplicate_sample_size - sample size for doublet search (default: 1024 (=1KB))

## Redirect

    # SETUP:
    # redirect - sets folder/files for a redirect
    #             format: { '/full/file/path' => 'url' , ... }
    # enable_directredirect - enables redirects of direct calls to redirected pathes (default: off)

## SaveSettings

    # SETUP:
    # settings.savesettings - default behavior
    #     (one of savesettings.dontsave, savesettings.saveall,
    #      savesettings.savesettingsonly, savesettings.savebookmarksonly)

## SendByMail

    # SETUP:
    #   mailrelay - sets the host(name|ip) of the mail relay  (default: localhost)
    #   login - sets the login for the mail relay (default: not used)
    #   password - sets the password for the login (default: not used)
    #   sizelimit - sets the mail size limit
    #               (depends on your SMTP setup, default: 20971520 bytes)
    #   defaultfrom - sets default sender mail addresss (default: REMOTE_USER)
    #   defaultto - sets default recipient (default: empty string)
    #   defaultsubject - sets default subject (default: empty string)
    #   defaultmessage - sets default message (default: empty string)
    #   defaultzipfilename - sets a default filename for ZIP files
    #   enable_savemailasfile - allows to save a mail as a eml file
    #   disable_fileactionpopup - disables entry in popup menu
    #   disable_fileaction - disables entry in toolbar
    #   enable_apps - enables sidebar menu entry
    #   addressboook - Perl module name with a addressbook implementation
    #                  LDAP: 'WebInterface::Extension::SendByMail::LdapAddressbook'
    #      ldap.server - sets the LDAP server name (IP or hostname)
    #      ldap.basedn - sets base DN for entry search
    #      ldap.filter - sets search filter (default: '(|(mail=*%s*)(cn=*%s*))' )
    #      ldap.scope - sets search scope (default: 'sub')
    #      ldap.timelimit - sets search time limit in seconds (default: 5)
    #      ldap.sizelimit - sets number of search results (default: 5)
    #      ldap.cn - sets CN attribute name (default: 'cn')
    #      ldap.mail - sets mail attribute name (default: 'mail')
    #      ldap.debug - sets debug level (default: 0)
    #                   (see man Net::LDAP  3 - in/out hexdump, 12 - in/out dump)
    #      ldap.starttls - enables TLS support (default: 0 (off))
    #      ldap.verify - enables certificate verification for TLS (default: 'required')
    #      ldap.sslversion - sets SSL version (default: 'tlsv1')
    #      ldap.binddn - sets DN for LDAP login (default: 0 (off))
    #      ldap.password - sets password for LDAP login

## SourceCodeViewer

    # SETUP:
    # supportedsuffixes - list of supported file suffixes (without a dot)
    # sizelimit - file size limit (deafult:  2097152 (=2MB))

## TextEditor

    # SETUP:
    # editablefiles - list of regular expressions to identify text files
    # editablecategories - regular expression of categories (default: (text|soruce|shell|config|markup))
    # disableckeditor - disables CKEditor for HTML editing
    # sizelimit - size limit for text files in bytes (default: 2097152 (=2MB))
    # template - template file (default: editform)

## VideoJS

    # SETUP:
    # disable_fileactionpopup - disables file action entry in popup menu
    # disable_fileaction - disables file action
    # template - viewerjs template filename

## ViewerJS

    # SETUP:
    # disable_fileactionpopup - disables file action entry in popup menu
    # disable_fileaction - disables file action

## Zip

    # SETUP:
    # disable_fileaction - disables fileaction entry
    # disable_filelistaction - disables fileaction entry
    # disable_fileactionpopup - disables fileaction entry in popup menu
    # disable_new - disables new menu entry
    # enable_apps - enables sidebar menu entry

© ZE CMS, Humboldt-Universität zu Berlin | Written 2011-2015 by Daniel Rohde