diff --git a/README.Notification b/README.Notification deleted file mode 100644 index 8ec3dffd5..000000000 --- a/README.Notification +++ /dev/null @@ -1,114 +0,0 @@ -Notifications ------------------------------------------------ - -Most changes made to documents or folders in SeedDMS can be monitored -by the users. Notifications are send by email if a user or group -has subscribed it. - -The following notifications are send to all users and groups having -registered a notification for the event: - -op/op.AddDocument.php -op/op.AddMultiDocument.php -* adding a new document to a folder - subscribers of the parent folder - -op/op.AddSubFolder.php -* adding a new subfolder to a folder - subscribers of the parent folder - -op/op.AddFile2.php -op/op.AddFile.php -* adding a new file to a document - subscribers of the document - -op/op.ApproveDocument.php -* approval status has changed - subscribers of the document - -op/op.DocumentAccess.php -* access rights or ownership has changed - subscribers of the document - -op/op.DocumentNotify.php -* document notification was changed - owner or group of the document/notification - -op/op.EditComment.php -* document's comment has been changed - subscribers of the document - -op/op.EditDocument.php -* document has been changed - subscribers of the document - -op/op.EditFolder.php -* folder has been changed - subscribers of the folder - -op/op.FolderAccess.php -* access rights or ownership has changed - subscribers of the folder - -op/op.FolderNotify.php -* folder notification was changed - owner or group of the folder/notification - -op/op.ManageNotify.php -* notification was removed - owner of the notification - -op/op.MoveDocument.php -* document was moved - subscribers of the document - -op/op.MoveFolder.php -* folder was moved - subscribers of the folder - -op/op.OverrideContentStatus.php - -op/op.RemoveDocumentFile.php -* file of document was removed - subscribers of the document - -op/op.RemoveDocument.php -* document was removed - subscribers of the document - -op/op.RemoveFolder.php -* folder was removed - subscribers of the folder - -op/op.RemoveVersion.php -* version of document was removed - subscribers of the document - -op/op.RemoveWorkflowFromDocument.php -* Workflow has been removed from document version - subscribers of the document - -op/op.ReturnFromSubWorkflow.php -* Subworkflow has been ended and parent workflow will be continued - subscribers of the document - -op/op.ReviewDocument.php -* document was reviewed - subscribers of the document - -op/op.RewindWorkflow.php -* Workflow was rewind to beginning - subscribers of the document - -op/op.RunSubWorkflow.php -* Subworkflow was started - subscribers of the document - -op/op.TriggerWorkflow.php -* Workflow transition was triggered - subscribers of the document - -op/op.UpdateDocument2.php -op/op.UpdateDocument.php -* document was updated - subscribers of the document diff --git a/README.Ubuntu b/README.Ubuntu deleted file mode 100644 index a50be1d63..000000000 --- a/README.Ubuntu +++ /dev/null @@ -1,143 +0,0 @@ -This README was written by Eric Smith - -====================================================== -Steps that I took to install SeedDMS on Ubuntu 12.10 -- a personal account and not an authoritative guide. -====================================================== - -Download four tar balls from; -http://sourceforge.net/projects/seeddms/files/seeddms-4.0.0-pre5/ - -seeddms-4.0.0-pre5.tar.gz -SeedDMS_Preview-1.0.0.tgz -SeedDMS_Lucene-1.1.1.tgz -SeedDMS_Core-4.0.0pre5.tgz - -Install as follows the pear components: -sudo pear install SeedDMS_Core-4.0.0pre5.tgz -sudo pear install SeedDMS_Preview-1.0.0.tgz -sudo pear install SeedDMS_Lucene-1.1.1.tgz - -Download and install the pear Log application: -wget http://download.pear.php.net/package/Log-1.12.7.tgz -sudo pear install Log-1.12.7.tgz - -And zend: -sudo pear channel-discover zend.googlecode.com/svn -sudo pear install zend/zend - -I installed the following packages, not all of which may be required -and you may require other packages, please check the dependencies on -the README.md for example for full text search, you need pdftotext, -catdoc, xls2csv or scconvert, cat, id3 - -sudo apt-get install php5-mysql php5-mysqlnd libapache2-mod-php5 -sudo apt-get install pdo_mysql php5-gd id3 scconvert -sudo apt-get install php-http-webdav-server -sudo apt-get install zend-framework zend-framework-bin -sudo apt-get install libzend-framework-zendx-php -sudo apt-get install libjs-dojo-core libjs-dojo-dijit libjs-dojo-dojox -sudo apt-get install libzend-framework-php (It kept bitching about Zend so I just kept piling on packages until it worked) - -mbstring is already a part of libapache2-mod-php5 -pepper:~> show libapache2-mod-php5|grep mbstring - mbstring mhash openssl pcre Phar posix Reflection session shmop SimpleXML - - -Define three locations: -[1] Some cosy place in yourfile system for the source files to which you -will link -I chose "/opt/seeddms-4.0.0-pre5/" -untar seeddms-4.0.0-pre5.tar.gz into this location - -[2] Make a directory and three subdirectories for the data for your site; -I chose to do this under "/opt/dms/seeddms_multisite_test/data" -sudo mkdir -p /opt/dms/seeddms_multisite_test/data/lucene/ -sudo mkdir /opt/dms/seeddms_multisite_test/data/staging/ -sudo mkdir /opt/dms/seeddms_multisite_test/data/cache/ - -Give ownership (or write access) to your httpd process to those directories; -sudo chown -cvR www-data /opt/dms/seeddms_multisite_test/data/ - -[3] Somewhere under your www root, make a directory for the sources of -your site: -These can be of course under different virtual domains. -/var/www/www.mydomain.eu/seeddms_multisite_test -cd /var/www/www.mydomain.eu/seeddms_multisite_test; -sudo ln -s /opt/seeddms-4.0.0-pre5 src (README.md does not include the `src'!) -ln -s src/inc inc -ln -s src/op op -ln -s src/out out -ln -s src/js js -ln -s src/views views -ln -s src/languages languages -ln -s src/styles styles -ln -s src/themes themes -ln -s src/install install -ln -s src/index.php index.php - -If need be; -sudo chown -cvR www-data /var/www/www.mydomain.eu/seeddms_multisite_test/ - -Create Dataabse; -Run the following sql commands to create your db and a user with -appropriate privileges. - -mysql> create database seeddms_multisite_test; -mysql> grant all privileges on seeddms_multisite_test.* to seeddms@localhost identified by 'your_passwd'; - - -Point your browser to the location of your instance as in [3] above -and /install -I resorted to a text browser on my server due to failure to access the -db from a remote browser; - -pepper:~> elinks www.mydomain.eu/seeddms_multisite_test/install - -This is how I filled it in; - SeedDMS: INSTALL - SeedDMS Installation for version 4.0.0 - - Server settings - Root directory: /opt/seeddms-4.0.0-pre5/_______________________ - Http Root: /seeddms_multisite_test/_______________________ - Content directory: /opt/dms/seeddms_multisite_test/data___________ - Directory for full text index: /opt/dms/seeddms_multisite_test/data/lucene/___ - Directory for partial uploads: /opt/dms/seeddms_multisite_test/data/staging/__ - Core SeedDMS directory: _______________________________________________ - Lucene SeedDMS directory: _______________________________________________ - Extra PHP include Path: _______________________________________________ - Database settings - Database Type: mysql________________ - Server name: localhost____________ - Database: seeddms_multisite_tes - Username: seeddms______________ - Password: ********_____________ - Create database tables: [X] - - [ Apply ] - - -If all is okay (and I hope this happens more quickly for you than for me), -you should be notified accordingly and invited to login to your new site -with credentials admin/admin. (This password is cleverly set to expire -in a couple of days. So do not get a shock like I did when it suddenly -does not work). - -------------------------------------------------------------------------------- - -To make additional sites; - -If you wish to make additional sites, you need to copy the data directories thusly; -sudo cp -avr /opt/dms/seeddms_multisite_test /opt/dms/seeddms_multisite_test_2 -And the sources thusly; -sudo cp -avr /var/www/www.mydomain.eu/seeddms_multisite_test /var/www/www.mydomain.eu/seeddms_multisite_test_2 - -And of course make data directories for this site: -sudo mkdir -p /opt/dms/seeddms_multisite_test_2/data/lucene/ -sudo mkdir /opt/dms/seeddms_multisite_test_2/data/staging/ -sudo mkdir /opt/dms/seeddms_multisite_test_2/data/cache/ - -Then create another database as shown above but of course give the db -another name. -Run the install again from the new location. diff --git a/README.Workflow b/README.Workflow deleted file mode 100644 index 783743bd0..000000000 --- a/README.Workflow +++ /dev/null @@ -1,89 +0,0 @@ -Workflows in SeedDMS -==================== - -SeedDMS supports approval and review of documents for a long time. -In many cases this is sufficient for a simple workflow management. -Nevertheless there was growing demand for a more powerful document -workflow. Since version 4.0.0 SeedDMS allows to define arbitrary -workflows for each document content. In order to understand how -workflows in SeedDMS work, one has to understand how a workflow is modelled. -Let's start with a definition of some terms. - -workflow: a list of document states and transitions. A workflow starts - in a preset initial state and traverses along the transitions into other - states until no more transitions are possible. - -state: the current status of a document (actually a document content) - A state can be for example 'rejected', 'approved', 'waiting for qm'. - Document jump from state to state when transitions are fired. - States are the nodes of a graph. - -transition: a transition is the change from one state to a new state - Transitions are the edges of a graph. A transition can only be - triggered by a given list of users and groupѕ, when a defined action - is run. Such an action can be 'approve', 'revise', 'reject', etc. - transitions may need more than one trigger to fire, e.g. if several - users have to approve a document. - -trigger a transition: a user runs an action on the document which possibly - changes the state. Internally this is identical to triggering a transition. - Such a trigger may or may not change the state of the document, - because there could - be other users which also have to trigger the transition. - After each trigger of an transition it will - be checked whether all conditions are met to change the state. - Triggers are currently only implemented for user interaction, but - other triggers could be added. - -action: the actual operation run on the document. Each transition has - an action which when run, triggers the transition. Actions have just a name. - -sub workflow: The modelling of a workflow is identical to a regular - workflow. Any workflow can be used as a sub workflow. Branching into - a sub workflow is only possible if the current state is equal to the - initial state of the sub workflow and the user is allowed to trigger - the next transition in the current workflow. - -A workflow and a sub workflow are just a list -of transitions and an initial state. There is no principal difference -between the two and they are equally modelled. Starting from an initial state -there are a number of possible transitions ending in a new state. Each -transition can only be triggered if the user has the right to do so. - -A workflow can be assigned to a document just like any other attribute -if the user has sufficient rights. Once a workflow is assigned, the document -will be in the initial state of the workflow. As long as the workflow -has not left its initial state, it can be removed from the document by -any users with write permission on the document. Once it has left the -initial state it cannot be removed without rewinding the workflow to -its initial state. Rewinding the workflow will remove the log of triggered -transitions and set the document status on the initial state of the -workflow. Rewinding can only be done by administrators. - -The purpose of sub workflows is to replace a transition with more -states in between. Such a case can happen, if approval or rejection -of a document is put in charge of a group of persons, e.g. a department. -If the department head decides to set up its own workflow within his -department, he can run a sub workflow. During the lifetime of the sub -workflow, the former workflow (parent workflow) will be paused. Sub workflows -can only be started if the current document state is equal to the initial -state of the sub workflow. -In order to return to the parent workflow two conditions must be met: -1. the state of the document must be a valid state in the parent workflow -2. the person initiating the return to the parent workflow must be allowed - to trigger the transition which was replaced by the sub workflow -The second condition requires all end states in the sub workflow, also -being a state in the parent workflow. Currently this is not checked before -entering the sub workflow. - -A workflow that was accidently added to a document can be removed -as long as it is still in the initial state of the workflow. Once -a transition into a consecutive state has happemed the workflow cannot -be removed anymore. In such a case the administrator has to rewind -the workflow, which removes all triggers including the users comments -and resets the initial state. The same procedure is true for sub workflows -as well. Once a sub workflow has started it can only be left as long -as it is in its initial state or has reached a state in the parent -workflow. Leaving a workflow inbetween will required to rewind it to -the begining and dismiss all transitions done so far. - diff --git a/README.md b/README.md deleted file mode 100644 index 1dfe92bb8..000000000 --- a/README.md +++ /dev/null @@ -1,396 +0,0 @@ -SeedDMS Installation Instructions -================================== - -NOTE FOR VERSION 4.0.0 -====================== - -Since version 4.0.0 of SeedDMS installation has been simplified. -ADOdb is no longer needed because the database access is done by -PDO. - -IMPORTANT NOTE ABOUT TRANSLATIONS -================================= - -As you can see SeedDMS provides a lot of languages but we are not professional -translators and therefore rely on user contributions. - -If your language is not present in the login panel: -- copy the language/English/ folder and rename it appropriately for your - language -- open the file `languages/your_lang/lang.inc` and translate it -- open the help file `languages/your_lang/help.htm` and translate it too - -If you see some wrong or not translated messages: -- open the file `languages/your_lang/lang.inc` -- search the wrong messages and translate them - -if you have some "error getting text": -- search the string in the english file `languages/english/lang.inc` -- copy to your language file `languages/your_lang/lang.inc` -- translate it - -If there is no help in your language: -- Copy the English help `english/help.htm` file to your language folder -- translate it - -If you apply any changes to the language files please send them to the -SeedDMS developers . - -http://www.iana.org/assignments/language-subtag-registry has a list of -all language and country codes. - -REQUIREMENTS -============ - -SeedDMS is a web-based application written in PHP. It uses the MySQL RDBMS -or sqlite3 to manage the documents that were uploaded into the application. - -Make sure you have PHP 5.3 and MySQL 5 or higher installed. SeedDMS -will work with PHP running in CGI-mode as well as running as module under -apache. If you want to give your users the opportunity of uploading passport -photos you have to enable the gd-library (but the rest of SeedDMS will -work without gd, too). - -Here is a detailed list of requirements: - -1. A web server with at least php 5.3 -2. A mysql database, unless you use sqlite -3. The php installation must have support for `pdo_mysql` or `pdo_sqlite`, - `php_gd2`, `php_mbstring` -4. Various command line programms to convert files into text for indexing - pdftotext, catdoc, xls2csv or scconvert, cat, id3 (optional, only needed - for fulltext search) -5. ImageMagic (the convert program) is needed for creating preview images -6. The Zend Framework (version 1) (optional, only needed for fulltext search) -7. The pear Log package -8. The pear HTTP_WebDAV_Server package (optional, only need for webdav) -9. SLIM RestApi -10. FeedWriter from https://github.com/mibe/FeedWriter - - -BEFORE YOU START -================ - -SeedDMS has changed its installation process with version 3.0.0. This gives -you many more options in how to install SeedDMS. First of all, SeedDMS was -split into a core package (`SeedDMS_Core-.tar.gz`) and the web -application itself (`seeddms-.tar.gz`). The core is a pear package -which could be installed as one. It is responsible for all the database -operations. The web application contains the ui not knowing anything about -the database layout. Second, one SeedDMS installation can be used for -various customer instances by sharing a common source. Starting with -version 3.2.0 a full text search engine has been added. This requires -the zend framework and another pear package `SeedDMS_Lucene-.tar.gz` -which can be downloaded from the SeedDMS web page. Version 4.0.0 show -preview images of documents which requires `SeedDMS_Preview-.tar.gz`. -Finally, SeedDMS has -got a web based installation, which takes care of most of the installation -process. - -Before you proceed you have to decide how to install SeedDMS: -1. with multiple instances -2. as a single instance - -Both have its pros and cons, but -1. setting up a single instance is easier if you have no shell access to - the web server -2. the installation script is only tested for single instances - -Installation for multiple instances shares the same source by many -instances but requires to create links which is not in any case possible -on your web server. - -0. Some preparation -------------------- - -A common source of problems in the past have been the additional software -packages needed by SeedDMS. Those are the PEAR packages `Log` and -`HTTP_WebDAV_Server` as well as the `Zend_Framework`. -If you have full access to the server running a Linux distribution it is -recommended to install those with your package manager if they are provided -by your Linux distribution. If you cannot install it this way then choose -a directory (preferable not below your web document root), unpack the -software into it and extend the php include path with your newly created -directory. Extending the php include can be either done by modifying -php.ini or adding a line like - -> php_value include_path '/home/mypath:.:/usr/share/php' - -to your apache configuration or setting the `extraPath` configuration -variable of SeedDMS. - -For historical reasons the path to the SeedDMS_Core and SeedDMS_Lucene package -can still be set -in the configuration, which is not recommend anymore. Just leave those -parameters empty. - -On Linux/Unix your web server should be run with the environment variable -LANG set to your system default. If LANG=C, then the original filename -of an uploaded document will not be preserved if the filename contains -non ascii characters. - -Turn off magic_quotes_gpc in your php.ini, if you are using a php version -below 5.4. - -1. Using the installation tool ------------------------------- - -Unpack seeddms-.tar.gz below the document root of -your web server. -Install `SeedDMS_Preview-.tar.gz` and -`SeedDMS_Core-.tar.gz` either as a regular pear package or -set up a file system structure like pear did somewhere on you server. -For the full text search engine support, you will also -need to install `SeedDMS_Lucene-.tar.gz`. - -For the following instructions we will assume a structure like above -and seeddms- being accessible through -http://localhost/seeddms/ - -* Point you web browser towards http://hostname/seeddms/install/ - -* Follow the instructions on the page and create a file `ENABLE_INSTALL_TOOL` - in the conf directory. - -* Create a data directory with the thre sub directories staging, cache - and lucene. - Make sure the data directory is either *not* below your document root - or is protected with a .htaccess file against web access. The data directory - needs to be writable by the web server. - -* Clicking on 'Start installation' will show a form with all necessary - settings for a basic installation. - -* After saving your settings succesfully you are ready to log in as admin and - continue customizing your installation with the 'Admin Tools' - -2. Detailed installation instructions (single instance) -------------------------------------------------------- - -You need a working web server with MySQL/PHP5 support and the files -`SeedDMS-.tar.gz`, `SeedDMS_Preview-.tar.gz` and -`SeedDMS_Core-.tgz`. For the -full text search engine support, you will also need to unpack -`SeedDMS_Lucene-.tgz`. - -* Unpack all the files in a public web server folder. If you're working on - a host machine your provider will tell you where to upload the files. - If possible, do not unpack the pear packages `SeedDMS_Core-.tgz`, - `SeedDMS_Preview-.tgz` and - `SeedDMS_Lucene-.tgz` below the document root of your web server. - Choose a temporary folder, as the files will be moved in a second. - - Create a directory e.g. `pear` in the same directory where you unpacked - seeddms and create a sub directory SeedDMS. Move the content except for the - `tests` directory of all SeedDMS pear - packages into that directory. Please note that `pear/SeedDMS` may not - (and for security reasons should not) be below your document root. - - You will end up with a directory structure like the following - - > seeddms- - > pear - > SeedDMS - > Core.php - > Core - > Lucene.php - > Lucene - > Preview - > Preview.php - - Since they are pear packages they can also be installed with - - > pear install SeedDMS_Core-.tgz - > pear install SeedDMS_Lucene-.tgz - > pear install SeedDMS_Preview-.tgz - -* The PEAR package Log is also needed. It can be downloaded from - http://pear.php.net/package/Log. Either install it as a pear package - or place it under your new directory 'pear' - - > pear - > Log - > Log.php - -* The package HTTP_WebDAV_Server is also needed. It can be downloaded from - http://pear.php.net/package/HTTP_WebDAV_Server. Either install it as a - pear package or place it under your new directory 'pear' - - > pear - > HTTP - > WebDAV - > Server - > Server.php - - If you run PHP in CGI mode, you also need to place a .htaccess file - in the webdav directory with the following content. - - RewriteEngine on - RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last] - -* Create a data folder somewhere on your web server including the subdirectories - staging, cache and lucene and make sure they are writable by your web server, - but not accessible through the web. - -For security reason the data folder should not be inside the public folders -or should be protected by a .htaccess file. The folder containing the -configuration (settings.xml) must be protected by an .htaccess file like the -following. - - > - > Order allow,deny - > Deny from all - > - - -If you install SeedDMS for the first time continue with the database setup. - -* Create a new database on your web server - e.g. for mysql: - create database seeddms; -* Create a new user for the database with all permissions on the new database - e.g. for mysql: - grant all privileges on seeddms.* to seeddms@localhost identified by 'secret'; - (replace 'secret' with you own password) -* Optionally import `create_tables-innodb.sql` in the new database - e.g. for mysql: - > cat create_tables-innodb.sql | mysql -useeddms -p seeddms - This step can also be done by the install tool. -* create a file `ENABLE_INSTALL_TOOL` in the conf directory and point - your browser at http://hostname/seeddms/install - - -NOTE: UPDATING FROM A PREVIOUS VERSION OR SEEDDMS - -As SeedDMS is a smooth continuation of LetoDMS there is no difference -in updating from LetoDMS or SeedDMS - -- make a backup archive of your installation folder -- make a backup archive of your data folder -- dump your current database -- extract the SeedDMS archive to your web server -- edit the conf/settings.xml file to match your previuos settings - (you can even replace the file with your own one eventualy adding by hand - the missing new parameters) -- create a file `ENABLE_INSTALL_TOOL` in the conf directory and point - your browser at http://hostname/seeddms/install - -The install tool will detect the version of your current SeedDMS installation -and run the required database updates. - - -3. Email Notification ---------------------- - -A notification system allows users to receive an email when a -document or folder is changed. This is an event-based mechanism that -notifies the user as soon as the change has been made and replaces the -cron mechanism originally developed. Any user that has read access to a -document or folder can subscribe to be notified of changes. Users that -have been assigned as reviewers or approvers for a document are -automatically added to the notification system for that document. - -A new page has been created for users to assist with the management of -their notification subscriptions. This can be found in the "My Account" -section under "Notification List". - - -4. Nearly finished ------------------- - -Now point your browser to http://hostname/seeddms/index.php -and login with "admin" both as username and password. -After having logged in you should first choose "My Account" and -change the Administrator's password and email-address. - - -CONFIGURING MULTIPLE INSTANCES -============================== - -Since version 3.0.0, SeedDMS can be set up to run several parallel instances -sharing the same source but each instance has its own configuration. This is -quite useful if you intend to host SeedDMS for several customers. This -approach still allows to have diffenrent version of SeedDMS installed -and will not force you to upgrade a customer instance, because other -instances are upgraded. A customer instance consists of -1. a directory containing mostly links to the SeedDMS source and a - configuration file -2. a directory containing the document content files -3. a database - -1. Unpack the SeedDMS distribution ----------------------------------- - -Actually there is no need to set up the database at this point but it won't -hurt since you'll need one in the next step anyway. The sources of SeedDMS -can be anywhere you like. The do not have to be in you www-root. If you just -have access to your www-root directory, then put them there. - -2. Setup the instance ---------------------- - -Unpack the files as described in the quick installation. - -Create a directory in your www-root or use www-root for your instance. In the -second case, you will not be able to create a second instance, because each -instance needs its own directory. - -Go into that directory create the following links ( is the -directory of your initial SeedDMS intallation). - -> src -> -> inc -> src/inc -> op -> src/op -> out -> src/out -> js -> src/js -> views -> src/views -> languages -> src/languages -> styles -> src/styles -> themes -> src/themes -> install -> src/install -> index.php -> src/index.php - -> ln -s ../seeddms- src -> ln -s src/inc inc -> ln -s src/op op -> ln -s src/out out -> ln -s src/js js -> ln -s src/views views -> ln -s src/languages languages -> ln -s src/styles styles -> ln -s src/themes themes -> ln -s src/install install -> ln -s src/index.php index.php - -Create a new directory named conf and run the installation tool. - -Creating the links as above has the advantage that you can easily switch -to a new version and go back if it is necessary. You could even run various -instances of SeedDMS using different versions. - -3. Create a database and data store for each instance ------------------------------------------------------ - -Create a database and data store for each instance and adjust the database -settings in conf/settings.xml or run the installation tool. - -Point your web browser towards the index.php file in your new instance. - -LICENSING -========= - -SeedDMS is licensed unter GPLv2 - -Jumploader is licensed as stated by the author on th web site - - --- Taken from web site of jumploader --- -You may use this software for free, however, you should not: - -- Decompile binaries. -- Alter or replace class and/or resource files. -- Redistribute this software under different name or authority. - -If you would like a customized version, I can do this for a fee. Don't hesitate to contact me with questions or comments. - -Uwe Steinmann diff --git a/doc/README.Synology.txt b/doc/README.Synology.txt new file mode 100644 index 000000000..0326d4504 --- /dev/null +++ b/doc/README.Synology.txt @@ -0,0 +1,109 @@ +********************************************* +How to set up SeedDMS Preview on Synology NAS +********************************************* + +Introduction +############ +SeedDMS provides a function creating a preview of each document which is displayed on the document page. + +Synology stations do not support the creation of the previews by default due to a missing Ghostscript implementation. Therefore +loading of a document page can use a lot of time because SeedDMS tries to create the missing preview images each time the document +page is being loaded. + +Prerequisites +############# +In order to complete the steps outlined below, you must be able to carry out the following tasks: + +* Use the command line and know essential commands +* Install a 3rd party package system and install packages using this system + +To complete the installation, the following prerequisites on your Synology must be met: + +* IPKG or OPKG (OPKG preferred) installed +* Pear Package SeedDMS_Preview already installed + +Installation and configuration +############################## + +In the following steps, you will first install the required packages, followed by doing the neccesary configurations. These steps +must be done on the terminal. + +Install Ghostscript +*************************** + +The first step is to install Ghostscript to make ImageMagick capable of converting PDF files to images. Use IPKG or OPKG to complete this +step. + +Make Ghostscript available to PHP +***************************************** + +To check where Ghostscript is installed run *which gs* to get the installation path. Now check if this path is visible to PHP. To check this, +use phpinfo and find **_SERVER["PATH"]**. If you can't find /opt inside, PHP can't see applications installed there. You can now either try to +update the paths or just make a symlink. +To create the symlink, cd to /usr/bin and type *ln -s /opt/bin/gs gs*. Verify the created symlink. + +Fix Ghostscript package bug +**************************************** + +Unfortunately the version delivered by OPKG has a bug, making Ghostscript failing to work properly. The bug requries fixing at the time +of the writing are the following: + +* Resource path pointing to a wrong version (9.10 instead of 9.16) + +First, fix the resource path. Go to /opt/bin and find **gs** in there. Open the file with VI. Change the GS_LIB path from */opt/share/ghostscript/9.10/Resource* +to */opt/share/ghostscript/9.16/Resource*. This will now allow Ghostscript to find it's files in the proper path. + +Fix ImageMagick +******************** + +Not only Ghostscript is affected by bugs, the default configuration files are missing. Unfortunately some work is required here as well. + +To check where ImageMagick looks for it's files, invoke the command *convert -debug configure logo: null:*. You will see some paths shown, these +are the paths where ImageMagic tries to locate it's configuration files. The first path shown will point to */usr/share/ImageMagick-6* followed by the +name of an XML file. At the very end of the output you will see which configuration file has been loaded, in the default setting there will be an error. + +Point to */usr/share* and check if you can find the **ImageMagick-6** directory. If is not present, create it. Cd into the directory. + +Next step is to fill the directory with files. Use the following list to download the files (credit goes to Thibault, http://blog.taillandier.name/2010/08/04/mediawiki-sur-son-nas-synology/). + +* wget http://www.imagemagick.org/source/coder.xml +* wget http://www.imagemagick.org/source/colors.xml +* wget http://www.imagemagick.org/source/configure.xml +* wget http://www.imagemagick.org/source/delegates.xml +* wget http://www.imagemagick.org/source/english.xml +* wget http://www.imagemagick.org/source/francais.xml +* wget http://www.imagemagick.org/source/locale.xml +* wget http://www.imagemagick.org/source/log.xml +* wget http://www.imagemagick.org/source/magic.xml +* wget http://www.imagemagick.org/source/mime.xml +* wget http://www.imagemagick.org/source/policy.xml +* wget http://www.imagemagick.org/source/thresholds.xml +* wget http://www.imagemagick.org/source/type-ghostscript.xml +* wget http://www.imagemagick.org/source/type-windows.xml +* wget http://www.imagemagick.org/source/type.xml + +Testing +************* + +Now you should be ready to test. Put a PDF file in a directory, cd into this directory. + +To test convert directly, invoke the following command (replace file.pdf with your filename, replace output.png with your desired name): + +**convert file.pdf output.png** + +If everything goes well you should now receive a png file which can be opened. There may be a warning message about iCCP which can be ignored. + +If you want to test Ghostcript as well, invoke the follwing command: + +**gs -sDEVICE=pngalpha -sOutputFile=output.png -r144 file.pdf** + +This command should go through without any errors and as well output a png file. + +If the tests above are successful, you are ready to use SeedDMS Preview. Go to your SeedDMS Installation and open a folder. For the first test you +may take a folder with less files in it. Be patient while the previews are generated. You may check the process using *top* on the terminal. + +At the end your document page should show the previews like shown below: + +.. figure:: preview.png + :alt: Document previews + :scale: 75% diff --git a/doc/preview.png b/doc/preview.png new file mode 100644 index 000000000..47676ee22 Binary files /dev/null and b/doc/preview.png differ