From 78328df95245323a6ba5055288f19c94e99231f6 Mon Sep 17 00:00:00 2001 From: Uwe Steinmann Date: Tue, 16 Feb 2016 07:05:45 +0100 Subject: [PATCH] add more documentation --- README.Notification | 114 ------------ README.Ubuntu | 143 --------------- README.Workflow | 89 --------- README.md | 396 ---------------------------------------- doc/README.Synology.txt | 109 +++++++++++ doc/preview.png | Bin 0 -> 11516 bytes 6 files changed, 109 insertions(+), 742 deletions(-) delete mode 100644 README.Notification delete mode 100644 README.Ubuntu delete mode 100644 README.Workflow delete mode 100644 README.md create mode 100644 doc/README.Synology.txt create mode 100644 doc/preview.png 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 0000000000000000000000000000000000000000..47676ee22dcc227b93e600e33baa4042ed739d5f GIT binary patch literal 11516 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

u?8!vWtsmbCaV>* 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