Daniel Munn c76556c507 Parse fix applied for webdav PUT method, where .Net / Office over WebDav pushes content with text/xml mime type. Rails stack automatically will try to parse XML, however unfortunately as content is
not XML, it ends up failing. "init.rb" has a hook adding RedmineDmsf::NoParse into Rails middleware a step before content parsing occurs, and will rewrite content type on put method, within specified
target area (identified in init.rb). Controller has been added to override options function (maybe removed later on).
2012-06-14 22:35:02 +01:00
2012-06-06 11:27:46 +01:00

=Redmine DMSF Plugin

Redmine DMSF is Document Management System Features plugin for Redmine issue tracking system.

It is aimed to replace current Redmine's Documents module.

Initial development was for Kontron AG R&D department and it is released as open source thanks to their generosity.
Project home: http://code.google.com/p/redmine-dmsf/

Redmine Document Management System "Features" plugin is distributed under GNU General Public License v2 (GPL)
Redmine is a flexible project management web application, released under the terms of the GNU General Public License v2 (GPL) at http://www.redmine.org

Further information about the GPL license can be found at http://www.gnu.org/licenses/old-licenses/gpl-2.0.html#SEC1

== Dependencies

As of version 1.4.0 of this plugin:
* Redmine 2.0.x
* Rails 2.3.x (Inline with Redmine installation requirement)
* Zip (Gem)

=== Fulltext search (optional) 

If you want to use fulltext search abilities:
* Xapian (http://xapian.org) search engine
* Xapian Omega indexing tool
* Xapian ruby bindings - xapian or xapian-full gem
 
To index some files with omega you may have to install some other packages like xpdf, antiword, ...

From Omega documentation:

    * PDF (.pdf) if pdftotext is available (comes with xpdf)
    * PostScript (.ps, .eps, .ai) if ps2pdf (from ghostscript) and pdftotext (comes with xpdf) are available
    * OpenOffice/StarOffice documents (.sxc, .stc, .sxd, .std, .sxi, .sti, .sxm, .sxw, .sxg, .stw) if unzip is available
    * OpenDocument format documents (.odt, .ods, .odp, .odg, .odc, .odf, .odb, .odi, .odm, .ott, .ots, .otp, .otg, .otc, .otf, .oti, .oth) if unzip is available
    * MS Word documents (.doc, .dot) if antiword is available
    * MS Excel documents (.xls, .xlb, .xlt) if xls2csv is available (comes with catdoc)
    * MS Powerpoint documents (.ppt, .pps) if catppt is available (comes with catdoc)
    * MS Office 2007 documents (.docx, .dotx, .xlsx, .xlst, .pptx, .potx, .ppsx) if unzip is available
    * Wordperfect documents (.wpd) if wpd2text is available (comes with libwpd)
    * MS Works documents (.wps, .wpt) if wps2text is available (comes with libwps)
    * AbiWord documents (.abw)
    * Compressed AbiWord documents (.zabw) if gzip is available
    * Rich Text Format documents (.rtf) if unrtf is available
    * Perl POD documentation (.pl, .pm, .pod) if pod2text is available
    * TeX DVI files (.dvi) if catdvi is available
    * DjVu files (.djv, .djvu) if djvutxt is available
    * XPS files (.xps) if unzip is available

On Debian use:
apt-get install libxapian-ruby1.8 xapian-omega libxapian-dev xpdf antiword unzip\
  catdoc libwpd8c2a libwps-0.1-1 gzip unrtf catdvi djview djview3

On Ubuntu use:
sudo apt-get install libxapian-ruby1.8 xapian-omega libxapian-dev xpdf antiword unzip\
  catdoc libwpd-0.9-9 libwps-0.2-2 gzip unrtf catdvi djview djview3

== Usage

DMSF act as project module so you must check DMSF in project settings.

Search options will now contain "Dmsf files" check, that allows you to search DMSF content.

There is possibility to link DMSF files from Wiki entries:
[Link to file with id 17] <tt>{{dmsf(17)}}</tt>
[Link to file with id 17 with link text "File"] <tt>{{dmsf(17,File)}}</tt>
[Link to file with id 17 with link text "File" and link pointing to revision 10] <tt>{{dmsf(17,File,10)}}</tt>
DMSF file/revision id can be found in link for file/revision download.

There is possibility to link DMSF folders from Wiki entries:

[Link to folder with id 5] <tt>{{dmsff(5)}}</tt>
[Link to folder with id 5 with link text "Folder"] <tt>{{dmsff(5,Folder)}}</tt>

DMSF folder id can be found in link for folder opening.

You can also publish Wiki help description. 
In file <redmine_root>/public/help/wiki_syntax_detailed.html include after document link description:
  <ul>
      <li>
    	  DMSF:
          <ul>
              <li><strong>{{dmsf(17)}}</strong> (link to file with id 17)</li>
              <li><strong>{{dmsf(17,File)}}</strong> (link to file with id 17 with link text "File")</li>
              <li><strong>{{dmsf(17,File,10)}}</strong> (link to file with id 17 with link text "File" and link pointing to revision 10)</li>
              <li><strong>{{dmsff(5)}}</strong> (link to folder with id 5)</li>
              <li><strong>{{dmsff(5,Folder)}}</strong> (link to folder with id 5 with link text "Folder")</li>
          </ul>
          DMSF file/revision id can be found in link for file/revision download.<br />
          DMSF folder id can be found in link for folder opening.
      </li>
  </ul>

== Setup/Upgrade

Before installing ensure that the Redmine instance is stopped.

1. In case of upgrade BACKUP YOUR DATABASE first
2. Put redmine_dmsf plugin directory into plugins
3. Initialize/Update database:
    rake redmine:plugins:migrate RAILS_ENV="production"
4. The access rights must be set for web server, example: 
    chown -R www-data:www-data /opt/redmine/plugins/redmine_dmsf
5. Restart web server
6. You should configure plugin via Redmine interface: Administration -> Plugins -> DMSF -> Configure
7. Assign DMSF permissions to appropriate roles

=== Fulltext search (optional)

If you want to use fulltext search features, you must setup file content indexing.

It is necessary to index DMSF files with omega before searching attemts to recieve some output:
    omindex -s english -l 1 -U / --db {path to index database from configuration} {path to storage from configuration}

This command must be run on regular basis (e.g. from cron)

Example of cron job (once per hour at 8th minute):
    8 * * * * root /usr/bin/omindex -s english -l 1 -U / --db /opt/redmine/files/dmsf_index /opt/redmine/files/dmsf

Use omindex -h for help.

== Uninstalling DMSF

Before uninstalling the DMSF plugin, please ensure that the Redmine instance is stopped.

1. <tt>cd [redmine-install-dir]</tt>
2. <tt>rake redmine:plugin:migrate NAME=redmine_dmsf VERSION=0</tt>
3. <tt>rm plugins/redmine_dmsf -Rf</tt>

After these steps re-start your instance of Redmine.

==Contributing
If you<6F>ve added something, why not share it. Fork the repository (github.com/danmunn/redmine_dmsf), make the changes and send a pull request to the maintainers.

Changes with tests, and full documentation are preferred.
Description
No description provided
Readme 28 MiB
Languages
HTML 79.8%
Ruby 19%
JavaScript 0.9%
CSS 0.2%
Shell 0.1%