mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 15:32:13 +00:00
move all documentation into a directory
This commit is contained in:
parent
086cfedf4b
commit
c1b54a8450
396
doc/README.Install.md
Normal file
396
doc/README.Install.md
Normal file
|
@ -0,0 +1,396 @@
|
||||||
|
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 <info@seeddms.org>.
|
||||||
|
|
||||||
|
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-<version>.tar.gz`) and the web
|
||||||
|
application itself (`seeddms-<version>.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-<version>.tar.gz`
|
||||||
|
which can be downloaded from the SeedDMS web page. Version 4.0.0 show
|
||||||
|
preview images of documents which requires `SeedDMS_Preview-<version>.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-<version>.tar.gz below the document root of
|
||||||
|
your web server.
|
||||||
|
Install `SeedDMS_Preview-<version>.tar.gz` and
|
||||||
|
`SeedDMS_Core-<version>.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-<version>.tar.gz`.
|
||||||
|
|
||||||
|
For the following instructions we will assume a structure like above
|
||||||
|
and seeddms-<version> 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-<version>.tar.gz`, `SeedDMS_Preview-<version>.tar.gz` and
|
||||||
|
`SeedDMS_Core-<version>.tgz`. For the
|
||||||
|
full text search engine support, you will also need to unpack
|
||||||
|
`SeedDMS_Lucene-<version>.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-<version>.tgz`,
|
||||||
|
`SeedDMS_Preview-<version>.tgz` and
|
||||||
|
`SeedDMS_Lucene-<version>.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-<version>
|
||||||
|
> 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-<version>.tgz
|
||||||
|
> pear install SeedDMS_Lucene-<version>.tgz
|
||||||
|
> pear install SeedDMS_Preview-<version>.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.
|
||||||
|
|
||||||
|
> <Files ~ "^settings\.xml">
|
||||||
|
> Order allow,deny
|
||||||
|
> Deny from all
|
||||||
|
> </Files>
|
||||||
|
|
||||||
|
|
||||||
|
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 (<seeddms-source> is the
|
||||||
|
directory of your initial SeedDMS intallation).
|
||||||
|
|
||||||
|
> src -> <seeddms-source>
|
||||||
|
> 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-<version> 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
|
||||||
|
<http://jumploader.com/>
|
||||||
|
|
||||||
|
-- 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 <info@seeddms.org>
|
114
doc/README.Notification
Normal file
114
doc/README.Notification
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
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
|
39
doc/README.ReviewApproval.md
Normal file
39
doc/README.ReviewApproval.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
Review/Approval
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The traditional Review/Approval process has been around for a long time
|
||||||
|
already and is still available, though the new workflow engine has been
|
||||||
|
introduced.
|
||||||
|
|
||||||
|
Review/Approval is a very simple, but in many cases sufficient, workflow
|
||||||
|
to review and approve document versions. Review and approval is done by users
|
||||||
|
in behalf of themself or the group they belong to. A document version
|
||||||
|
is reviewed or approved if all users and groups in charge of it, have
|
||||||
|
found the document version to be ready and worth for release. If a single
|
||||||
|
user rejects it, it will not change its status to 'released' but to 'rejected'.
|
||||||
|
|
||||||
|
Review is always done before approval, but a document version may not have
|
||||||
|
to run through both processes.
|
||||||
|
A version can use just the approval process without a review before,
|
||||||
|
and it can also skip the approval process and just run through review. In
|
||||||
|
the second case the document will be released immidiately after successful
|
||||||
|
review.
|
||||||
|
|
||||||
|
If a group is in charge for reviewing/approving a document, it will be
|
||||||
|
sufficient if one member of that group takes action.
|
||||||
|
|
||||||
|
Internally SeedDMS keeps a record of all approval/review actions done on
|
||||||
|
a document version. When a document version is uploaded with both processes
|
||||||
|
in place, then for each user/group a list of log entries is created. Any
|
||||||
|
action on the document will add a new entry to the log. Those entries
|
||||||
|
contain the action (release/reject), a user comment and the current date.
|
||||||
|
Each entry will also trigger an internal function which checks, whether
|
||||||
|
the last action causes a document state change. Such a state change happens
|
||||||
|
when all reviews or approvals are done, or if a review/approval is rejected.
|
||||||
|
If a user or a group is deleted and some documents are still waiting for
|
||||||
|
a review/approval, this will also be logged and the review/approval will
|
||||||
|
no longer be needed to release the document.
|
||||||
|
|
||||||
|
Before a document leaves the approval or review state any review/approval
|
||||||
|
or reject can be changed. So if a user initially approves a document and
|
||||||
|
later changes her/his mind, he/she can still reject the document.
|
143
doc/README.Ubuntu
Normal file
143
doc/README.Ubuntu
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
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.
|
89
doc/README.Workflow
Normal file
89
doc/README.Workflow
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
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.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user