Compare commits

..

No commits in common. "master" and "5.1.34" have entirely different histories.

381 changed files with 6374 additions and 26064 deletions

401
CHANGELOG
View File

@ -1,404 +1,3 @@
--------------------------------------------------------------------------------
Changes in version 6.0.33
--------------------------------------------------------------------------------
- merge changes up to 5.1.40
--------------------------------------------------------------------------------
Changes in version 6.0.32
--------------------------------------------------------------------------------
- merge changes up to 5.1.39
- fix setting attributes (user, group, document, folder) when checking in
a new document version
- validate setting revision date
--------------------------------------------------------------------------------
Changes in version 6.0.31
--------------------------------------------------------------------------------
- merge changes up to 5.1.38
- fix various restapi endpoints which hadn't been updated to slim4
--------------------------------------------------------------------------------
Changes in version 6.0.30
--------------------------------------------------------------------------------
- merge changes up to 5.1.37
- receipt comment can be disabled
- send request receipt notification only when document is released
--------------------------------------------------------------------------------
Changes in version 6.0.29
--------------------------------------------------------------------------------
- merge changes up to 5.1.36
- fix regression in FolderNotify
--------------------------------------------------------------------------------
Changes in version 6.0.28
--------------------------------------------------------------------------------
- merge changes up to 5.1.35
--------------------------------------------------------------------------------
Changes in version 6.0.27
--------------------------------------------------------------------------------
- merge changes up to 5.1.34
- Document/folder check distinguishes between documents which cannot be
receiped/revised because of access rights or the recipient/revisor being
disabled.
- fix creating user via rest api
- checkout info does not depend on whether the logged in user was substituted
- add new endpoints for managing roles by rest api
- add transmittals in menu
- add legacy access check for controllers
--------------------------------------------------------------------------------
Changes in version 6.0.26
--------------------------------------------------------------------------------
- merge changes up to 5.1.33
- add task to import files from drop folder
- add substitution of users in bootstrap4 theme
--------------------------------------------------------------------------------
Changes in version 6.0.25
--------------------------------------------------------------------------------
- merge changes up to 5.1.32
- status log can be turned on with advanced access control
- scheduler has more condensed layout
--------------------------------------------------------------------------------
Changes in version 6.0.24
--------------------------------------------------------------------------------
- add task to send list of recent changes by email
- merge changes up to 5.1.31
--------------------------------------------------------------------------------
Changes in version 6.0.23
--------------------------------------------------------------------------------
- fix setting recipients and revisors
- check in of a document is allowed for the user having done the check out
or those users with unlimited access rights on the document
- merge changes up to 5.1.30
--------------------------------------------------------------------------------
Changes in version 6.0.22
--------------------------------------------------------------------------------
- merge changes up to 5.1.29
--------------------------------------------------------------------------------
Changes in version 6.0.21
--------------------------------------------------------------------------------
- merge changes up to 5.1.28
- add new check for documents with identical sequence numbers in a folder
--------------------------------------------------------------------------------
Changes in version 6.0.20
--------------------------------------------------------------------------------
- merge changes up to 5.1.27
- fix triggering workflow (Closes: #542)
- create original file name from new document name when uploading document
from the library folder. Used to be the original file name
--------------------------------------------------------------------------------
Changes in version 6.0.19
--------------------------------------------------------------------------------
- merge changes up to 5.1.26
- fix deletion of tasks when using bootstrap4 theme
- fix deletion of documents when clicking on icon in document list (my documents)
--------------------------------------------------------------------------------
Changes in version 6.0.18
--------------------------------------------------------------------------------
- finish op/op.Cron.php, returns json
- merge changes up to 5.1.25
- fix sending trigger workflow notification (Closes: #522)
- fix updating und deleting items in document lists
- call hook 'filenameDownloadItem' in search export and transmittal download
- fix possible xss attack in UsrMgr (CVE-2022-28479)
--------------------------------------------------------------------------------
Changes in version 6.0.17
--------------------------------------------------------------------------------
- merge changes up to 5.1.24
- send notification when a receiption of a document was submitted
--------------------------------------------------------------------------------
Changes in version 6.0.16
--------------------------------------------------------------------------------
- cancel checkout needs confirmation
- add input field to filter list of recipients if more then 10
- add task for creating missing preview images
- no longer use old PHPExcel classes, use PhpOffice\PhpSpreadsheet\Spreadsheet
instead
--------------------------------------------------------------------------------
Changes in version 6.0.15
--------------------------------------------------------------------------------
- merge changes up to 5.1.22
- add a new task for checking the checksum of all document versions
- add searching for revision date
- list of open tasks will no longer contain expired documents but MyDocuments
page still list them
- fixed downloading approval file (Closes: #503)
- regular users can no longer set owner of document while uploading
--------------------------------------------------------------------------------
Changes in version 6.0.14
--------------------------------------------------------------------------------
- show debug menu only if debug mode is on
- merge changes up to 5.1.21
- document links can be added by regular users again
- add list of checked out documents to tasks
- issue a warning when removing a document which is checked out
- checked out can be discarded if it was changed
--------------------------------------------------------------------------------
Changes in version 6.0.13
--------------------------------------------------------------------------------
- merge changes up to 5.1.20
- create download file for transmittal in system tmp (Closes: #478)
- sync source code of checkin with update document
--------------------------------------------------------------------------------
Changes in version 6.0.12
--------------------------------------------------------------------------------
- merge changes up to 5.1.19
- fix various errors concerning workflows
- show menu tasks even if not admin (Closes: #485)
--------------------------------------------------------------------------------
Changes in version 6.0.11
--------------------------------------------------------------------------------
- merge changes up to 5.1.18
- fix access restriction for roles (content of documents was visible even if the
role and status didn't allow it)
- fix missing Content-Type in UserList (Closes: #480)
--------------------------------------------------------------------------------
Changes in version 6.0.10
--------------------------------------------------------------------------------
- merge changes up to 5.1.17
- fix list of previous document versions (Closes: #471)
- fix uploading files with fine uploader (Closes: #472)
- clear revision date when all revisors have been deleted
- improve scheduler task management, tasks can be deleted, fix setting parameters
- add op.Cron.php for running all scheduled tasks
--------------------------------------------------------------------------------
Changes in version 6.0.9
--------------------------------------------------------------------------------
- merge changes up to 5.1.16
- fix removal of roles (Closes: #465)
- fix password forgotten process
- fix setting role of new user and retrieving role of existing user
- processes of users can be deleted again, instead of only transfered to
another user
- fix export of search results, headers of excel file can be translated
- fix arcordeon for folder filters on search page
- fix upload from dropfolder
- fix adding new calendar event
--------------------------------------------------------------------------------
Changes in version 6.0.8
--------------------------------------------------------------------------------
- merge changes up to 5.1.15
- fix syntax error in op/op.EditComment.php
- fix use of private variable in op/op.SetRecipients.php and op/op.SetRevisors.php
- fix triggering a transition in advanced workflow mode
--------------------------------------------------------------------------------
Changes in version 6.0.7
--------------------------------------------------------------------------------
- fix editing of document attachments
- make receipt summary look like approval/review summary
- merge changes up to 5.1.14
- do not show the updating user in a revision workflow if the status is 0
this is misleading because the user starting the revision workflow is the one
first accessing the document
- rejection of document receipts are turned off by default, but can be turned
on in the settings
- documents in DocumentChooser are sorted by name
- instead of just removing a user from all processes it can be replaced by a new user
--------------------------------------------------------------------------------
Changes in version 6.0.6
--------------------------------------------------------------------------------
- fix setting attributes when checking in a new document version
- setting a document revision to 'needs correction' will no longer set the
documents status to 'needѕ correction' if this was turned off in the settings
- a document will not leave draft status when setting the approver/reviewer
without setting a reviewer/approver
- tasks to be counted in menu can be configured
- add number of documents which need correction to menu
- minor 2 factor auth. fixes when initially setting the secret
- remove ѕome unneeded code from AddDocument which just caused php warnings
- do not set the uploader of new documents to owner if the owner is different from
the uploader
- add scheduler
- add hook showVersionComment in out.ViewDocument.php
- Various minor corrections of database tables tblWorkflowLog and
tblWorkflowDocumentContent
- merge changes up to 5.1.7
--------------------------------------------------------------------------------
Changes in version 6.0.5
--------------------------------------------------------------------------------
- sync form for updating document by upload and checkin
- add list of documents which need correction on MyDocuments page
--------------------------------------------------------------------------------
Changes in version 6.0.4
--------------------------------------------------------------------------------
- merge changes up to 5.1.5
--------------------------------------------------------------------------------
Changes in version 6.0.3
--------------------------------------------------------------------------------
- add list of documents without a receiver on MyDocuments page
- propperly calculate number of documents for each value of value set in attribute mgr
- output of progress bar for reception of a document can be controlled by access list
- recipientof a document version can be set when uploading the file
- fix export of search and display of 2nd, 3rd, ... search page
- speed up creation of document lists if reception progress bar is shown
- status of rejected documents can be overriden
- do not add users from group as recipients if they are the uploader or reviewer
of a document
- add list of documents without a receiver, list of drafts, and list of absolete
documents on MyDocuments page
- add callback onCheckAccessDocument to SeedDMS_Core_Document
- add new document status 'needs correction', revised documents which do not pass
will no longer be in status 'rejected' but 'needs correction'
- better error handling when indexing documents fails
- apache xsendfile module is used for downloading documents when installed
- add view access check for ApprovalSummary, ReviewSummary, ReceiptSummary,
WorkflowSummary, DocumentAccess, GroupView, UsrView, WorkflowSummary
- filter out reviewers and uploader of a document version when setting recipients
by user group
--------------------------------------------------------------------------------
Changes in version 6.0.2
--------------------------------------------------------------------------------
- check if user has access on document and is not disabled if set as
receiver, revisor
- check if group has members if set as reviewer, approver, receiver, revisor
- fix bug in notification of approver after successful review
- add document check for docs in revision and missing access rights of revisor
- add document check for docs requiring receptions but user lacks access right
- fix Acl manager when using pgsql
- list all open tasks of user in user info of user manager
- owner of document may see review/approval/receipt/revision log
- fix sending mails to reviewer/approvers after check in
- downloading of review/approval files works again
- optimizing retrieval of open tasks
- do not show user which has been removed from a process except for admins
- show scheduled revisions in calendar
- merge changes up to 5.1.5
--------------------------------------------------------------------------------
Changes in version 6.0.1
--------------------------------------------------------------------------------
- call hook 'rawcontent' when downloading transmittal list or search content
- speed up list of locked documents on MyDocuments page
- sql queries and execution times can be written to file in database layer
--------------------------------------------------------------------------------
Changes in version 6.0.0
--------------------------------------------------------------------------------
- merge changes up to 5.0.10
- filter documents by status 'draft' on search page
- list of documents to look at now contains documents in revision
- add list of documents waiting for reception on MyDocuments page
- group document lists on MyDocuments page into three sections
- show progressbar and comments for reception of document in documentlist
- restructure page for document/folder check, add check for missing access
on documents by recipient or revisor
- overhaul revision workflow, add hook after revision workflow was finished
- add two factor authentication based on google authenticator
- set timeout for ajax call 'mytasks' from 200ms to 1000ms
- use a similar layout for document list on the ViewDocument page
- add RSS feed of timeline
- put more operations under access control
- add receipent list for documents
- add revision of documents
- add substitute user command for regular users
- add access controll list for many functions
- add document list which can be exported as an archive
- search results can be exported
--------------------------------------------------------------------------------
Changes in version 5.1.40
--------------------------------------------------------------------------------
- fix saving user data when language selection is turned of (Closes: #568)
- add much better support for new storage drivers
- fix possible xss attacks
- saver way to collect plugin configuration
- fix update of postgres database
- add hook displayPreviewThumb
- add searching for mimetype in database
- list of expired documents can be filtered by user
- use quoted printable encoding instead of base64 for email subjects
--------------------------------------------------------------------------------
Changes in version 5.1.39
--------------------------------------------------------------------------------
- show quota on chart page when listing total document size per user
- turn off legend for chart sizepermonth
- do not add group manager as mandatory approver/reviewer if logged in
user is the manager itself
- fixed setting group approvers from previous document version
- very experimental support of memcached for accelerating some database
operations (do not use in production)
- prevent malicious manipulation of referer when setting language
- fix setting attributes of type user, group, document, folder when updating
a document
- objects can be removed from clipboard
- call hooks for document/folder list in attribute manager
--------------------------------------------------------------------------------
Changes in version 5.1.38
--------------------------------------------------------------------------------
- require php 8.2
- fix php error in out/out.ReviewSummary.php
--------------------------------------------------------------------------------
Changes in version 5.1.37
--------------------------------------------------------------------------------
- do not show chart by category if there are no categories
- documents in certain folders can be excluded from dashboard, could be useful
for folders containing archived documents
- migrate from Slim 3 to Slim 4 (check for extension updates)
- fix reloading more entries in list of folders/documents at end of page if
maxItemsPerPage is set
- prevent xss attack
- log level for rest api can be set separately
--------------------------------------------------------------------------------
Changes in version 5.1.36
--------------------------------------------------------------------------------
- add new page for send test notification
- remove deprecated function formatted_size()
- fix bugs when importing files from filesystem with metadata, better logging
- fix potential xss attack when showing log file
- support for different storage of documents (not yet used)
- do not treat repository url like a directory name (will no longer add a
directory seperator)
- use rename() on windows when moving an extension to its final destination
- fixed bug in AddDocument, approver group wasn't checked properly against
mandatory approvers
- email From-address in settings can be forced for all outgoing mail
- checking of ssl certificate for smtp can be turned off
- add chart for disk space per month
- clearing cache of js files works for a large number of files
- WebDAV returns `quota-used-bytes` and `quota-available-bytes`
- fix settings SeedDMS attributes in WebDAV server
- propperly check for duplicate folder names in op/op.Ajax.php
- add searching for file size (fulltext search)
--------------------------------------------------------------------------------
Changes in version 5.1.35
--------------------------------------------------------------------------------
- check access rights on EditDocumentFile and RemoveDocumentFile
- allow to set expiration dates in the past again
- fix authentication with ldap if AD is used
- fix progress bar in list of users if quota is active
- field storing email in ldap can be configured
--------------------------------------------------------------------------------
Changes in version 5.1.34
--------------------------------------------------------------------------------

View File

@ -74,13 +74,6 @@ module.exports = function (grunt) {
],
dest: bootstrapDir + '/select2/js',
flatten: true
},{
expand: true,
src: [
nodeDir + '/select2/dist/js/i18n/*'
],
dest: bootstrapDir + '/select2/js/i18n',
flatten: true
},{
expand: true,
src: [
@ -213,14 +206,6 @@ module.exports = function (grunt) {
],
dest: bootstrapDir + '/spectrum-colorpicker2',
flatten: true
},{
expand: true,
src: [
nodeDir + '/jquery-lazy/jquery.lazy.min.js',
nodeDir + '/jquery-lazy/jquery.lazy.plugins.js'
],
dest: bootstrapDir + '/jquery-lazy',
flatten: true
},{
expand: true,
src: [

View File

@ -16,7 +16,7 @@
<propertyregex property="shortversion" subject="${version} kk" pattern="([56])\.([0-9]).*" replace="seeddms$1$2x" override="true"/>
<property name="majorversion" value="${version}" />
<propertyregex property="majorversion" subject="${version}" pattern="([56])\..*" replace="$1" override="true"/>
<property name="composer_version" value="2.8.5" />
<property name="composer_version" value="2.2.22" />
<property name="composer_extra_params" value="" />
<property name="composer_env" value="" />
<property name="mink_driver" value="chrome" />
@ -73,13 +73,8 @@
<then>
<httpget url="https://getcomposer.org/composer-2.phar" sslVerifyPeer="false" dir="${srcdir}" filename="composer.phar" />
</then>
<else>
<if>
<not><available file="composer.phar" /></not>
<then>
<httpget url="https://getcomposer.org/download/${composer_version}/composer.phar" sslVerifyPeer="false" dir="${srcdir}" />
</then>
</if>
<else>
<httpget url="https://getcomposer.org/download/${composer_version}/composer.phar" sslVerifyPeer="false" dir="${srcdir}" />
</else>
</if>
<echo message="Installing dependencies..." />

View File

@ -1,41 +1,32 @@
{
"config": {
"platform": {
"php": "8.2"
"php": "7.4"
}
},
"require": {
"robthree/twofactorauth": "^1.5",
"slim/slim": "^4.0",
"guzzlehttp/psr7": "*",
"sabre/dav": "^4.",
"sabre/xml": "*",
"slim/slim": "^3.0",
"erusev/parsedown": "*",
"erusev/parsedown-extra": "*",
"mibe/feedwriter": "^1.1",
"phpoffice/phpspreadsheet": "*",
"sabre/xml": "*",
"sabre/dav": "^4.",
"pear/log": "*",
"pear/mail": "*",
"pear/mail_mime": "*",
"pear/net_smtp": "*",
"pear/auth_sasl": "*",
"pear/db": "*",
"dragonmantank/cron-expression": "^3.1",
"alecrabbit/php-console-colour": "*",
"dragonmantank/cron-expression": "^3",
"zf1/zend-search-lucene": "*",
"symfony/http-foundation": "^5.4",
"php-di/php-di": "^6.4",
"slim/psr7": "^1.7",
"seeddms/core": "dev-master",
"seeddms/lucene": "dev-master",
"seeddms/preview": "dev-master",
"seeddms/sqlitefts": "dev-master",
"seeddms/http_webdav_server": "dev-master"
},
"require-dev": {
"composer/composer": "dev-main"
},
"repositories": [
{
"type": "path",
@ -73,4 +64,5 @@
}
}
]
}

View File

@ -57,7 +57,7 @@
enableLanguageSelector = "true"
stopWordsFile = ""
sortUsersInList = ""
enableDropUpload = "true"
enableDropUpload = "false"
enableRecursiveCount = "false"
maxRecursiveCount = "0"
enableThemeSelector = "true"
@ -112,7 +112,6 @@
dropFolderDir = ""
cacheDir = ""
backupDir = ""
logFileMaxLevel="6"
/>
<!--
- enableGuestLogin: If you want anybody to login as guest, set the following line to true
@ -296,7 +295,7 @@
updateNotifyTime = "86400"
extraPath = ""
maxExecutionTime = "30"
cmdTimeout = "10"
cmdTimeout = "1"
/>
<!--
- enableNotificationAppRev: set to true if reviewers and approvers shall be informed about a pending review/approval
@ -309,15 +308,21 @@
enableNotificationWorkflow = "false"
/>
<converters target="fulltext">
<converter mimeType="application/pdf">pdftotext -nopgbrk %s -</converter>
<converter mimeType="application/pdf">pdftotext -nopgbrk %s - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g'</converter>
<converter mimeType="application/msword">catdoc %s</converter>
<converter mimeType="application/vnd.ms-excel">ssconvert -T Gnumeric_stf:stf_csv -S %s fd://1</converter>
<converter mimeType="audio/mp3">id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'</converter>
<converter mimeType="audio/mpeg">id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'</converter>
<converter mimeType="text/plain">cat %s</converter>
<converter mimeType="text/html">html2text %s</converter>
<converter mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document">docx2txt %s -</converter>
</converters>
<converters target="preview">
<converter mimeType="application/msword">unoconv -d document -e PageRange=1 -f pdf --stdout -v '%f'|gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72x72 -sOutputFile=- -dFirstPage=1 -dLastPage=1 -q - | convert -resize %wx png:- '%o'</converter>
<converter mimeType="image/png">convert -resize %wx '%f' '%o'</converter>
<converter mimeType="image/jpg">convert -resize %wx '%f' '%o'</converter>
<converter mimeType="image/gif">convert -resize %wx '%f' '%o'</converter>
<converter mimeType="text/plain">a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- '%o'</converter>
</converters>
</advanced>
<extensions>

View File

@ -52,7 +52,6 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
$sequence = $this->getParam('sequence');
$reviewers = $this->getParam('reviewers');
$approvers = $this->getParam('approvers');
$recipients = $this->getParam('recipients');
$reqversion = $this->getParam('reqversion');
$version_comment = $this->getParam('versioncomment');
$attributes = $this->getParam('attributes');
@ -161,7 +160,6 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
$workflow = $this->getParam('workflow');
$notificationgroups = $this->getParam('notificationgroups');
$notificationusers = $this->getParam('notificationusers');
$initialdocumentstatus = $this->getParam('initialdocumentstatus');
$maxsizeforfulltext = $this->getParam('maxsizeforfulltext');
$defaultaccessdocs = $this->getParam('defaultaccessdocs');
@ -172,7 +170,7 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
$cats, $userfiletmp, utf8_basename($userfilename),
$filetype, $userfiletype, $sequence,
$reviewers, $approvers, $reqversion,
$version_comment, $attributes, $attributes_version, $workflow, $initialdocumentstatus);
$version_comment, $attributes, $attributes_version, $workflow);
if (is_bool($res) && !$res) {
$this->errormsg = "error_occured";
@ -189,24 +187,6 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
}
}
$lc = $document->getLatestContent();
if($recipients) {
if($recipients['i']) {
foreach($recipients['i'] as $uid) {
if($u = $dms->getUser($uid)) {
$res = $lc->addIndRecipient($u, $user);
}
}
}
if($recipients['g']) {
foreach($recipients['g'] as $gid) {
if($g = $dms->getGroup($gid)) {
$res = $lc->addGrpRecipient($g, $user);
}
}
}
}
/* Add a default notification for the owner of the document */
if($settings->_enableOwnerNotification) {
$res = $document->addNotify($owner->getID(), true);

View File

@ -40,76 +40,62 @@ class SeedDMS_Controller_ApproveDocument extends SeedDMS_Controller_Common {
$this->oldstatus = $overallStatus['status'];
$this->newstatus = $this->oldstatus;
if(!$this->callHook('preApproveDocument', $content)) {
if ($approvaltype == "ind") {
$approvalLogID = $content->setApprovalByInd($user, $user, $approvalstatus, $approvalcomment, $approvalfile);
} elseif ($approvaltype == "grp") {
$approvalLogID = $content->setApprovalByGrp($approvalgroup, $user, $approvalstatus, $approvalcomment, $approvalfile);
} else {
$this->errormsg = "approval_wrong_type";
return false;
}
if($approvalLogID === false || 0 > $approvalLogID) {
$this->errormsg = "approval_update_failed";
return false;
}
$result = $this->callHook('approveDocument', $content);
if($result === null) {
if ($approvaltype == "ind") {
$approvalLogID = $content->setApprovalByInd($user, $user, $approvalstatus, $approvalcomment, $approvalfile);
} elseif ($approvaltype == "grp") {
$approvalLogID = $content->setApprovalByGrp($approvalgroup, $user, $approvalstatus, $approvalcomment, $approvalfile);
} else {
$this->errormsg = "approval_wrong_type";
if($approvalstatus == -1) {
$this->newstatus = S_REJECTED;
if($content->setStatus(S_REJECTED, $approvalcomment, $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['approveDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['approveDocument'] as $hookObj) {
if (method_exists($hookObj, 'postApproveDocument')) {
$hookObj->postApproveDocument(null, $content, S_REJECTED);
}
}
}
}
} else {
$docApprovalStatus = $content->getApprovalStatus();
if (is_bool($docApprovalStatus) && !$docApprovalStatus) {
$this->errormsg = "cannot_retrieve_approval_snapshot";
return false;
}
if($approvalLogID === false || 0 > $approvalLogID) {
$this->errormsg = "approval_update_failed";
return false;
$approvalCT = 0;
$approvalTotal = 0;
foreach ($docApprovalStatus as $drstat) {
if ($drstat["status"] == 1) {
$approvalCT++;
}
if ($drstat["status"] != -2) {
$approvalTotal++;
}
}
}
$result = $this->callHook('approveUpdateDocumentStatus', $content);
if($result === null) {
if($approvalstatus == -1) {
$this->newstatus = S_REJECTED;
if($content->setStatus(S_REJECTED, $approvalcomment, $user)) {
// If all approvals have been received and there are no rejections, retrieve a
// count of the approvals required for this document.
if ($approvalCT == $approvalTotal) {
// Change the status to released.
$this->newstatus=S_RELEASED;
if($content->setStatus($this->newstatus, getMLText("automatic_status_update"), $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['approveDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['approveDocument'] as $hookObj) {
if (method_exists($hookObj, 'postApproveDocument')) {
$hookObj->postApproveDocument(null, $content, S_REJECTED);
}
}
}
}
} else {
$docApprovalStatus = $content->getApprovalStatus();
if (is_bool($docApprovalStatus) && !$docApprovalStatus) {
$this->errormsg = "cannot_retrieve_approval_snapshot";
return false;
}
$approvalCT = 0;
$approvalTotal = 0;
foreach ($docApprovalStatus as $drstat) {
if ($drstat["status"] == 1) {
$approvalCT++;
}
if ($drstat["status"] != -2) {
$approvalTotal++;
}
}
// If all approvals have been received and there are no rejections, retrieve a
// count of the approvals required for this document.
if ($approvalCT == $approvalTotal) {
// Change the status to released.
$this->newstatus=S_RELEASED;
if($content->setStatus($this->newstatus, getMLText("automatic_status_update"), $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['approveDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['approveDocument'] as $hookObj) {
if (method_exists($hookObj, 'postApproveDocument')) {
$hookObj->postApproveDocument(null, $content, S_RELEASED);
}
$hookObj->postApproveDocument(null, $content, S_RELEASED);
}
}
}
}
}
}
if(!$this->callHook('postApproveDocument', $content)) {
}
return true;
} /* }}} */
}

View File

@ -1,114 +0,0 @@
<?php
/**
* Implementation of CheckInDocument controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2024 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for downloading a document
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2024 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_CheckInDocument extends SeedDMS_Controller_Common {
public function run() { /* {{{ */
$name = $this->getParam('name');
$comment = $this->getParam('comment');
/* Call preCheckInDocument early, because it might need to modify some
* of the parameters.
*/
if(false === $this->callHook('preCheckInDocument', $this->params['document'])) {
if(empty($this->errormsg))
$this->errormsg = 'hook_preCheckInDocument_failed';
return null;
}
$comment = $this->getParam('comment');
$dms = $this->params['dms'];
$user = $this->params['user'];
$document = $this->params['document'];
$settings = $this->params['settings'];
$fulltextservice = $this->params['fulltextservice'];
$folder = $this->params['folder'];
$userfiletmp = $this->getParam('userfiletmp');
$userfilename = $this->getParam('userfilename');
$filetype = $this->getParam('filetype');
$userfiletype = $this->getParam('userfiletype');
$reviewers = $this->getParam('reviewers');
$approvers = $this->getParam('approvers');
$recipients = $this->getParam('recipients');
$reqversion = $this->getParam('reqversion');
$comment = $this->getParam('comment');
$attributes = $this->getParam('attributes');
$workflow = $this->getParam('workflow');
$maxsizeforfulltext = $this->getParam('maxsizeforfulltext');
$initialdocumentstatus = $this->getParam('initialdocumentstatus');
$content = $this->callHook('checkinDocument');
if($content === null) {
if($contentResult=$document->checkIn($comment, $user, $reviewers, $approvers, $version=0, $attributes, $workflow, $initialdocumentstatus)) {
if ($this->hasParam('expires')) {
if($document->setExpires($this->getParam('expires'))) {
} else {
}
}
if(!empty($recipients['i'])) {
foreach($recipients['i'] as $uid) {
if($u = $dms->getUser($uid)) {
$res = $contentResult->getContent()->addIndRecipient($u, $user);
}
}
}
if(!empty($recipients['g'])) {
foreach($recipients['g'] as $gid) {
if($g = $dms->getGroup($gid)) {
$res = $contentResult->getContent()->addGrpRecipient($g, $user);
}
}
}
$content = $contentResult->getContent();
} else {
$this->errormsg = 'error_checkin_document';
$result = false;
}
} elseif($result === false) {
if(empty($this->errormsg))
$this->errormsg = 'hook_checkinDocument_failed';
return false;
}
if($fulltextservice && ($index = $fulltextservice->Indexer()) && $content) {
$idoc = $fulltextservice->IndexedDocument($document);
if(false !== $this->callHook('preIndexDocument', $document, $idoc)) {
$lucenesearch = $fulltextservice->Search();
if($hit = $lucenesearch->getDocument((int) $document->getId())) {
$index->delete($hit->id);
}
$index->addDocument($idoc);
$index->commit();
}
}
if(false === $this->callHook('postCheckInDocument', $document, $content)) {
}
return $content;
} /* }}} */
}

View File

@ -45,8 +45,8 @@ class SeedDMS_Controller_ClearCache extends SeedDMS_Controller_Common {
}
if(!empty($post['js'])) {
/* system('rm ...') does not work anymore if the number of files is too large */
array_map('unlink', array_filter((array) glob(addDirSep($settings->_cacheDir).'js'.DIRECTORY_SEPARATOR.'*')));
$cmd = 'rm -rf '.addDirSep($settings->_cacheDir).'js'.DIRECTORY_SEPARATOR.'*';
system($cmd, $ret);
}
if(false === $this->callHook('clear', $post)) {

View File

@ -1,108 +0,0 @@
<?php
/**
* Implementation of Cron controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2020 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for the regular cron job
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2020 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_Cron extends SeedDMS_Controller_Common {
public function run() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$settings = $this->params['settings'];
$logger = $this->params['logger'];
$mode = $this->params['mode'];
$seltask = $this->params['task'];
$db = $dms->getDb();
$scheduler = new SeedDMS_Scheduler($db);
$tasks = $scheduler->getTasks();
$jsonarr = [];
foreach($tasks as $task) {
if($seltask && $seltask != $task->getExtension()."::".$task->getTask())
continue;
if(isset($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()]) && is_object($taskobj = resolveTask($GLOBALS['SEEDDMS_SCHEDULER']['tasks'][$task->getExtension()][$task->getTask()]))) {
$arr = array(
'extension'=>$task->getExtension(),
'name'=>$task->getTask(),
'mode'=>$mode,
'disabled' => (bool) $task->getDisabled(),
'isdue' => $task->isDue(),
);
switch($mode) {
case "run":
case "dryrun":
if(method_exists($taskobj, 'execute')) {
if(!$task->getDisabled() && $task->isDue()) {
if($mode == 'run') {
/* Schedule the next run right away to prevent a second execution
* of the task when the cron job of the scheduler is called before
* the last run was finished. The task itself can still be scheduled
* to fast, but this is up to the admin of seeddms.
*/
$task->updateLastNextRun();
if($taskobj->execute($task)) {
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." successful.");
$arr['success'] = true;
} else {
add_log_line("Execution of task ".$task->getExtension()."::".$task->getTask()." failed, task has been disabled.", PEAR_LOG_ERR);
$arr['success'] = false;
$task->setDisabled(1);
}
} elseif($mode == 'dryrun') {
$arr['success'] = true;
}
}
}
break;
case "check":
$arr['error'] = false;
if(!method_exists($taskobj, 'execute')) {
$arr['error'] = true;
$arr['messages'][] = 'Missing method execute()';
}
if(get_parent_class($taskobj) != 'SeedDMS_SchedulerTaskBase') {
$arr['error'] = true;
$arr['error'][] = "Wrong parent class";
}
break;
case "list":
default:
header("Content-Type: application/json");
$arr['nextrun']=$task->getNextRun();
$arr['frequency']=$task->getFrequency();
$arr['params']=array();
if($params = $task->getParameter()) {
foreach($params as $key=>$value) {
$p = $taskobj->getAdditionalParamByName($key);
$arr['params'][$key] = ($p['type'] == 'password') ? '*******' : $value;
}
}
break;
}
$jsonarr[] = $arr;
}
}
echo json_encode($jsonarr);
return true;
} /* }}} */
}

View File

@ -22,192 +22,49 @@
*/
class SeedDMS_Controller_Download extends SeedDMS_Controller_Common {
public function version() { /* {{{ */
$dms = $this->params['dms'];
$version = $this->params['version'];
$document = $this->params['document'];
if($version < 1) {
$content = $this->callHook('documentLatestContent', $document);
if($content === null)
$content = $document->getLatestContent();
} else {
$content = $this->callHook('documentContent', $document, $version);
if($content === null)
$content = $document->getContentByVersion($version);
}
if (!is_object($content)) {
$this->errormsg = 'invalid_version';
return false;
}
/* set params['content'] for compatiblity with older extensions which
* expect the content in the controller
*/
$this->params['content'] = $content;
if(null === $this->callHook('version')) {
if(file_exists($dms->contentDir . $content->getPath())) {
header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($content->getOriginalFileName());
header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename);
header("Content-Type: " . $content->getMimeType());
header("Cache-Control: must-revalidate");
header("ETag: ".$content->getChecksum());
sendFile($dms->contentDir . $content->getPath());
}
}
return true;
} /* }}} */
public function file() { /* {{{ */
$dms = $this->params['dms'];
$file = $this->params['file'];
if(null === $this->callHook('file')) {
if(file_exists($dms->contentDir . $file->getPath())) {
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"" . $file->getOriginalFileName() . "\"");
header("Content-Type: " . $file->getMimeType());
header("Cache-Control: must-revalidate");
sendFile($dms->contentDir . $file->getPath());
}
}
return true;
} /* }}} */
public function archive() { /* {{{ */
$dms = $this->params['dms'];
$filename = $this->params['file'];
$basedir = $this->params['basedir'];
if(null === $this->callHook('archive')) {
if(file_exists($basedir . $filename)) {
header('Content-Description: File Transfer');
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($filename);
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
header("Cache-Control: public");
sendFile($basedir .$filename );
}
}
return true;
} /* }}} */
public function log() { /* {{{ */
$dms = $this->params['dms'];
$filename = $this->params['file'];
$basedir = $this->params['basedir'];
if(null === $this->callHook('log')) {
if(file_exists($basedir . $filename)) {
header("Content-Type: text/plain; name=\"" . $filename . "\"");
header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($filename);
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
header("Cache-Control: must-revalidate");
sendFile($basedir.$filename);
}
}
return true;
} /* }}} */
public function sqldump() { /* {{{ */
$dms = $this->params['dms'];
$filename = $this->params['file'];
$basedir = $this->params['basedir'];
if(null === $this->callHook('sqldump')) {
if(file_exists($basedir . $filename)) {
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($filename);
header("Content-Disposition: attachment; filename=\"" .$efilename . "\"; filename*=UTF-8''".$efilename);
header("Cache-Control: must-revalidate");
sendFile($basedir.$filename);
}
}
return true;
} /* }}} */
public function approval() { /* {{{ */
$dms = $this->params['dms'];
$document = $this->params['document'];
$logid = $this->params['approvelogid'];
$filename = $dms->contentDir . $document->getDir().'a'.$logid;
if (!file_exists($filename) ) {
$this->error = 1;
return false;
}
if(null === $this->callHook('approval')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype);
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename=\"approval-" . $document->getID()."-".(int) $_GET['approvelogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
sendFile($filename);
}
return true;
} /* }}} */
public function review() { /* {{{ */
$dms = $this->params['dms'];
$document = $this->params['document'];
$logid = $this->params['reviewlogid'];
$filename = $dms->contentDir . $document->getDir().'r'.$logid;
if (!file_exists($filename) ) {
$this->error = 1;
return false;
}
if(null === $this->callHook('review')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $filename);
header("Content-Type: ".$mimetype);
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename ));
header("Content-Disposition: attachment; filename=\"review-" . $document->getID()."-".(int) $_GET['reviewlogid'] . get_extension($mimetype) . "\"");
header("Cache-Control: must-revalidate");
sendFile($filename);
}
return true;
} /* }}} */
public function run() { /* {{{ */
public function run() {
$dms = $this->params['dms'];
$type = $this->params['type'];
switch($type) {
case "version":
return $this->version();
break;
case "file":
return $this->file();
break;
case "archive":
return $this->archive();
break;
case "log":
return $this->log();
break;
case "sqldump":
return $this->sqldump();
break;
case "approval":
return $this->approval();
break;
case "review":
return $this->review();
if(empty($this->params['content'])) {
$version = $this->params['version'];
$document = $this->params['document'];
if($version < 1) {
$content = $this->callHook('documentLatestContent', $document);
if($content === null)
$content = $document->getLatestContent();
} else {
$content = $this->callHook('documentContent', $document, $version);
if($content === null)
$content = $document->getContentByVersion($version);
}
if (!is_object($content)) {
$this->errormsg = 'invalid_version';
return false;
}
/* set params['content'] for compatiblity with older extensions which
* expect the content in the controller
*/
$this->params['content'] = $content;
} else {
$content = $this->params['content'];
}
if(null === $this->callHook('version')) {
if(file_exists($dms->contentDir . $content->getPath())) {
header("Content-Transfer-Encoding: binary");
$efilename = rawurlencode($content->getOriginalFileName());
header("Content-Disposition: attachment; filename=\"" . $efilename . "\"; filename*=UTF-8''".$efilename);
header("Content-Type: " . $content->getMimeType());
header("Cache-Control: must-revalidate");
header("ETag: ".$content->getChecksum());
sendFile($dms->contentDir.$content->getPath());
}
}
break;
}
} /* }}} */
return true;
}
}

View File

@ -64,16 +64,6 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
return false;
}
if($settings->_enable2FactorAuthentication) {
if($user->getSecret()) {
$tfa = new \RobThree\Auth\TwoFactorAuth('SeedDMS');
if($tfa->verifyCode($user->getSecret(), $_POST['twofactauth']) !== true) {
$this->setErrorMsg("login_error_text");
return false;
}
}
}
/* Run any additional checks which may prevent login */
if(false === $this->callHook('restrictLogin', $user)) {
if(empty($this->errormsg))
@ -232,8 +222,7 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
}
}
if(!is_object($user))
$user = $authenticator->authenticate($login, $pwd);
$user = $authenticator->authenticate($login, $pwd);
if(0) {
/* Authenticate against LDAP server {{{ */

View File

@ -1,67 +0,0 @@
<?php
/**
* Implementation of ReceiptDocument controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for downloading a document
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_ReceiptDocument extends SeedDMS_Controller_Common {
public function run() {
$dms = $this->params['dms'];
$user = $this->params['user'];
$settings = $this->params['settings'];
$document = $this->params['document'];
$content = $this->params['content'];
$receiptstatus = $this->params['receiptstatus'];
$receipttype = $this->params['receipttype'];
$group = $this->params['group'];
$comment = $this->params['comment'];
/* Get the document id and name before removing the document */
$docname = $document->getName();
$documentid = $document->getID();
if(!$this->callHook('preReceiptDocument', $content)) {
}
$result = $this->callHook('receiptDocument', $content);
if($result === null) {
if ($receipttype == "ind") {
if(0 > $content->setReceiptByInd($user, $user, $receiptstatus, $comment)) {
$this->error = 1;
$this->errormsg = "receipt_update_failed";
return false;
}
} elseif ($receipttype == "grp") {
if(0 > $content->setReceiptByGrp($group, $user, $receiptstatus, $comment)) {
$this->error = 1;
$this->errormsg = "receipt_update_failed";
return false;
}
}
}
if(!$this->callHook('postReceiptDocument', $content)) {
}
return true;
}
}

View File

@ -36,96 +36,83 @@ class SeedDMS_Controller_ReviewDocument extends SeedDMS_Controller_Common {
$this->oldstatus = $overallStatus['status'];
$this->newstatus = $this->oldstatus;
if(!$this->callHook('preReviewDocument', $content)) {
if ($reviewtype == "ind") {
$reviewLogID = $content->setReviewByInd($user, $user, $reviewstatus, $reviewcomment, $reviewfile);
} elseif($reviewtype == "grp") {
$reviewLogID = $content->setReviewByGrp($reviewgroup, $user, $reviewstatus, $reviewcomment, $reviewfile);
} else {
$this->errormsg = "review_wrong_type";
return false;
}
if($reviewLogID === false || 0 > $reviewLogID) {
$this->errormsg = "review_update_failed";
return false;
}
$result = $this->callHook('reviewDocument', $content);
if($result === null) {
if ($reviewtype == "ind") {
$reviewLogID = $content->setReviewByInd($user, $user, $reviewstatus, $reviewcomment, $reviewfile);
} elseif($reviewtype == "grp") {
$reviewLogID = $content->setReviewByGrp($reviewgroup, $user, $reviewstatus, $reviewcomment, $reviewfile);
} else {
$this->errormsg = "review_wrong_type";
if($reviewstatus == -1) {
$this->newstatus = S_REJECTED;
if($content->setStatus(S_REJECTED, $reviewcomment, $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'] as $hookObj) {
if (method_exists($hookObj, 'postReviewDocument')) {
$hookObj->postReviewDocument(null, $content, S_REJECTED);
}
}
}
}
} else {
$docReviewStatus = $content->getReviewStatus();
if (is_bool($docReviewStatus) && !$docReviewStatus) {
$this->errormsg = "cannot_retrieve_review_snapshot";
return false;
}
if($reviewLogID === false || 0 > $reviewLogID) {
$this->errormsg = "review_update_failed";
return false;
$reviewCT = 0;
$reviewTotal = 0;
foreach ($docReviewStatus as $drstat) {
if ($drstat["status"] == 1) {
$reviewCT++;
}
if ($drstat["status"] != -2) {
$reviewTotal++;
}
}
}
$result = $this->callHook('reviewUpdateDocumentStatus', $content);
if($result === null) {
if($reviewstatus == -1) {
$this->newstatus = S_REJECTED;
if($content->setStatus(S_REJECTED, $reviewcomment, $user)) {
// If all reviews have been received and there are no rejections, retrieve a
// count of the approvals required for this document.
if ($reviewCT == $reviewTotal) {
$docApprovalStatus = $content->getApprovalStatus();
if (is_bool($docApprovalStatus) && !$docApprovalStatus) {
$this->errormsg = "cannot_retrieve_approval_snapshot";
return false;
}
$approvalCT = 0;
$approvalTotal = 0;
foreach($docApprovalStatus as $dastat) {
if($dastat["status"] == 1) {
$approvalCT++;
}
if($dastat["status"] != -2) {
$approvalTotal++;
}
}
// If the approvals received is less than the approvals total, then
// change status to pending approval.
if($approvalCT < $approvalTotal) {
$this->newstatus = S_DRAFT_APP;
} else {
// Otherwise, change the status to released.
$this->newstatus = S_RELEASED;
}
if($content->setStatus($this->newstatus, getMLText("automatic_status_update"), $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'] as $hookObj) {
if (method_exists($hookObj, 'postReviewDocument')) {
$hookObj->postReviewDocument(null, $content, S_REJECTED);
}
}
}
}
} else {
$docReviewStatus = $content->getReviewStatus();
if (is_bool($docReviewStatus) && !$docReviewStatus) {
$this->errormsg = "cannot_retrieve_review_snapshot";
return false;
}
$reviewCT = 0;
$reviewTotal = 0;
foreach ($docReviewStatus as $drstat) {
if ($drstat["status"] == 1) {
$reviewCT++;
}
if ($drstat["status"] != -2) {
$reviewTotal++;
}
}
// If all reviews have been received and there are no rejections, retrieve a
// count of the approvals required for this document.
if ($reviewCT == $reviewTotal) {
$docApprovalStatus = $content->getApprovalStatus();
if (is_bool($docApprovalStatus) && !$docApprovalStatus) {
$this->errormsg = "cannot_retrieve_approval_snapshot";
return false;
}
$approvalCT = 0;
$approvalTotal = 0;
foreach($docApprovalStatus as $dastat) {
if($dastat["status"] == 1) {
$approvalCT++;
}
if($dastat["status"] != -2) {
$approvalTotal++;
}
}
// If the approvals received is less than the approvals total, then
// change status to pending approval.
if($approvalCT < $approvalTotal) {
$this->newstatus = S_DRAFT_APP;
} else {
// Otherwise, change the status to released.
$this->newstatus = S_RELEASED;
}
if($content->setStatus($this->newstatus, getMLText("automatic_status_update"), $user)) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['reviewDocument'] as $hookObj) {
if (method_exists($hookObj, 'postReviewDocument')) {
$hookObj->postReviewDocument(null, $content, $this->newstatus);
}
$hookObj->postReviewDocument(null, $content, $this->newstatus);
}
}
}
}
}
}
if(!$this->callHook('postReviewDocument', $content)) {
}
return true;
} /* }}} */
}

View File

@ -1,143 +0,0 @@
<?php
/**
* Implementation of ReviseDocument controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for downloading a document
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_ReviseDocument extends SeedDMS_Controller_Common {
public $oldstatus;
public $newstatus;
public function run() {
$dms = $this->params['dms'];
$user = $this->params['user'];
$settings = $this->params['settings'];
$document = $this->params['document'];
$content = $this->params['content'];
$revisionstatus = $this->params['revisionstatus'];
$revisiontype = $this->params['revisiontype'];
$group = $this->params['group'];
$comment = $this->params['comment'];
$overallStatus = $content->getStatus();
$this->oldstatus = $overallStatus['status'];
$this->newstatus = $this->oldstatus;
/* if set to true, a single reject will reject the doc. If set to false
* all revisions will be collected first and afterwards the doc is rejected
* if one has rejected it. So in the very end the doc is rejected, but
* doc remainѕ in S_IN_REVISION until all have revised the doc
*/
$onevotereject = $this->params['onevotereject'];
/* Get the document id and name before removing the document */
$docname = $document->getName();
$documentid = $document->getID();
if(!$this->callHook('preReviseDocument', $content)) {
}
$result = $this->callHook('reviseDocument', $content);
if($result === null) {
if ($revisiontype == "ind") {
if(0 > $content->setRevision($user, $user, $revisionstatus, $comment)) {
$this->error = 1;
$this->errormsg = "revision_update_failed";
return false;
}
} elseif ($revisiontype == "grp") {
if(0 > $content->setRevision($group, $user, $revisionstatus, $comment)) {
$this->error = 1;
$this->errormsg = $ll."revision_update_failed";
return false;
}
}
}
/* Check to see if the overall status for the document version needs to be
* updated.
*/
$result = $this->callHook('reviseUpdateDocumentStatus', $content);
if($result === null) {
if ($onevotereject && $revisionstatus == -1){
$this->newstatus = S_NEEDS_CORRECTION;
if(!$content->setStatus(S_NEEDS_CORRECTION,$comment,$user)) {
$this->error = 1;
$this->errormsg = "revision_update_failed";
return false;
}
} else {
$docRevisionStatus = $content->getRevisionStatus();
if (is_bool($docRevisionStatus) && !$docRevisionStatus) {
$this->error = 1;
$this->errormsg = "cannot_retrieve_revision_snapshot";
return false;
}
$revisionok = 0;
$revisionnotok = 0;
$revisionTotal = 0;
foreach ($docRevisionStatus as $drstat) {
if ($drstat["status"] == 1) {
$revisionok++;
}
if ($drstat["status"] == -1) {
$revisionnotok++;
}
if ($drstat["status"] != -2) {
$revisionTotal++;
}
}
// If all revisions have been done and there are no rejections,
// then release the document. If all revisions have been done but some
// of them were rejections then documents needs correction.
// Otherwise put it back into revision workflow
if ($revisionok == $revisionTotal) {
$this->newstatus=S_RELEASED;
if ($content->finishRevision($user, $this->newstatus, 'Finished revision workflow', getMLText("automatic_status_update"))) {
if(!$this->callHook('finishReviseDocument', $content)) {
}
}
} elseif (($revisionok + $revisionnotok) == $revisionTotal) {
$this->newstatus=S_NEEDS_CORRECTION;
// if ($content->finishRevision($user, $this->newstatus, 'Finished revision workflow', getMLText("automatic_status_update"))) {
if(!$content->setStatus($this->newstatus,$comment,$user)) {
$this->error = 1;
$this->errormsg = "revision_update_failed";
return false;
}
} else {
$this->newstatus=S_IN_REVISION;
if(!$content->setStatus($this->newstatus,$comment,$user)) {
$this->error = 1;
$this->errormsg = "revision_update_failed";
return false;
}
}
}
}
if(!$this->callHook('postReviseDocument', $content)) {
}
return true;
}
}

View File

@ -1,56 +0,0 @@
<?php
/**
* Implementation of Role manager controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for role manager
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_RoleMgr extends SeedDMS_Controller_Common {
public function run() {
}
public function addrole() {
$dms = $this->params['dms'];
$name = $this->params['name'];
$role = $this->params['role'];
return($dms->addRole($name, $role));
}
public function removerole() {
$roleobj = $this->params['roleobj'];
return $roleobj->remove();
}
public function editrole() {
$dms = $this->params['dms'];
$name = $this->params['name'];
$role = $this->params['role'];
$roleobj = $this->params['roleobj'];
$noaccess = $this->params['noaccess'];
if ($roleobj->getName() != $name)
$roleobj->setName($name);
if ($roleobj->getRole() != $role)
$roleobj->setRole($role);
$roleobj->setNoAccess($noaccess);
return true;
}
}

View File

@ -1,68 +0,0 @@
<?php
/**
* Implementation of Transmittal Download controller
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class which does the busines logic for downloading a transmittal
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Controller_TransmittalDownload extends SeedDMS_Controller_Common {
public function run() {
$dms = $this->params['dms'];
$user = $this->params['user'];
$transmittal = $this->params['transmittal'];
$items = $transmittal->getItems();
if($items) {
include("../inc/inc.ClassDownloadMgr.php");
$downmgr = new SeedDMS_Download_Mgr();
if($extraheader = $this->callHook('extraDownloadHeader'))
$downmgr->addHeader($extraheader);
foreach($items as $item) {
$content = $item->getContent();
$document = $content->getDocument();
if ($document->getAccessMode($user) >= M_READ) {
$extracols = $this->callHook('extraDownloadColumns', $document);
$filename = $this->callHook('filenameDownloadItem', $content);
if($rawcontent = $this->callHook('rawcontent', $content)) {
$downmgr->addItem($content, $extracols, $rawcontent, $filename);
} else
$downmgr->addItem($content, $extracols, null, $filename);
}
}
$filename = tempnam(sys_get_temp_dir(), 'transmittal-download-');
if($filename) {
if($downmgr->createArchive($filename)) {
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($filename));
header("Content-Disposition: attachment; filename=\"export-" .date('Y-m-d') . ".zip\"");
header("Content-Type: application/zip");
header("Cache-Control: must-revalidate");
readfile($filename);
} else {
}
unlink($filename);
}
exit;
}
}
}

View File

@ -48,18 +48,16 @@ class SeedDMS_Controller_UpdateDocument extends SeedDMS_Controller_Common {
$userfiletype = $this->getParam('userfiletype');
$reviewers = $this->getParam('reviewers');
$approvers = $this->getParam('approvers');
$recipients = $this->getParam('recipients');
$reqversion = $this->getParam('reqversion');
$comment = $this->getParam('comment');
$attributes = $this->getParam('attributes');
$workflow = $this->getParam('workflow');
$maxsizeforfulltext = $this->getParam('maxsizeforfulltext');
$initialdocumentstatus = $this->getParam('initialdocumentstatus');
$content = $this->callHook('updateDocument');
if($content === null) {
$filesize = SeedDMS_Core_File::fileSize($userfiletmp);
if($contentResult=$document->addContent($comment, $user, $userfiletmp, utf8_basename($userfilename), $filetype, $userfiletype, $reviewers, $approvers, 0, $attributes, $workflow, $initialdocumentstatus)) {
if($contentResult=$document->addContent($comment, $user, $userfiletmp, utf8_basename($userfilename), $filetype, $userfiletype, $reviewers, $approvers, $version=0, $attributes, $workflow)) {
if ($this->hasParam('expires')) {
if($document->setExpires($this->getParam('expires'))) {
@ -67,21 +65,6 @@ class SeedDMS_Controller_UpdateDocument extends SeedDMS_Controller_Common {
}
}
if(!empty($recipients['i'])) {
foreach($recipients['i'] as $uid) {
if($u = $dms->getUser($uid)) {
$res = $contentResult->getContent()->addIndRecipient($u, $user);
}
}
}
if(!empty($recipients['g'])) {
foreach($recipients['g'] as $gid) {
if($g = $dms->getGroup($gid)) {
$res = $contentResult->getContent()->addGrpRecipient($g, $user);
}
}
}
$content = $contentResult->getContent();
} else {
$this->errormsg = 'error_update_document';

View File

@ -1,3 +1,3 @@
#!/bin/sh
# This command retrieves the strings that need to be translated
sgrep -o "%r\n" '"getMLText(\"" __ "\""' */*.php views/bootstrap/*.php |sort|uniq -c
sgrep -o "%r\n" '"getMLText(\"" __ "\""' */*.php|sort|uniq -c

View File

@ -1,7 +1,7 @@
<?php
/* Determine all languages keys used in the php files */
$output = array();
if(exec('sgrep -o "%r\n" \'"tMLText(\"" __ "\""\' */*.php views/bootstrap/*.php|sort|uniq -c', $output)) {
if(exec('sgrep -o "%r\n" \'"tMLText(\"" __ "\""\' */*.php|sort|uniq -c', $output)) {
$allkeys = array();
foreach($output as $line) {
$data = explode(' ', trim($line));
@ -9,9 +9,8 @@ if(exec('sgrep -o "%r\n" \'"tMLText(\"" __ "\""\' */*.php views/bootstrap/*.php|
}
}
$languages = array('ar_EG', 'bg_BG', 'ca_ES', 'cs_CZ', 'de_DE', 'en_GB', 'es_ES', 'fr_FR', 'hu_HU', 'it_IT', 'nl_NL', 'pl_PL', 'pt_BR', 'ro_RO', 'ru_RU', 'sk_SK', 'sv_SE', 'tr_TR', 'zh_CN', 'zh_TW');
/* Reading languages */
foreach($languages as $lang) {
foreach(array('en_GB', 'de_DE', 'it_IT', 'sk_SK', 'cs_CZ') as $lang) {
include('languages/'.$lang.'/lang.inc');
ksort($text);
$langarr[$lang] = $text;
@ -21,7 +20,7 @@ foreach($languages as $lang) {
echo "List of missing keys\n";
echo "-----------------------------\n";
foreach(array_keys($allkeys) as $key) {
foreach($languages as $lang) {
foreach(array('en_GB', 'de_DE', 'it_IT', 'sk_SK', 'cs_CZ') as $lang) {
if(!isset($langarr[$lang][$key])) {
echo "Missing key '".$key."' in language ".$lang."\n";
}
@ -32,7 +31,7 @@ echo "\n";
/* Check for phrases not used anymore */
echo "List of superflous keys\n";
echo "-----------------------------\n";
foreach($languages as $lang) {
foreach(array('en_GB', 'de_DE', 'it_IT', 'sk_SK', 'cs_CZ') as $lang) {
$n = 0;
foreach($langarr[$lang] as $key=>$value) {
if(!isset($allkeys[$key])) {

View File

@ -1,31 +1,3 @@
Commands for converting documents
----------------------------------
This file contains commands for converting different document types
into
* text (for fulltext search)
* png (for preview images)
* pdf (for pdf documents)
Such conversions may not necessarily output an excact equivalent of
the input file, but outputs a suitable representation, e.g.
converting an mp3 file into text may output the metadata or even the
lyrics of the song. Converting it into a preview image may result
in a picture of the album cover.
Please note, that when ever a command outputs anything to stderr,
this will considered as a failure of the command. Most command line
programs have a parameter (.e.g. `-q`) to suppress such an output.
If you run php-fpm you may encounter problems with charsets based on
UTF-8. Programms like `catdoc` read LANG from the environment to
set the correct encoding of the output. php-fpm often clears the
environment and programms like `catdoc` will not longer output any
UTF-8 chars. In such a case you may want to set `clear_env=no` in
php-fpm's configuration. On Debian this is done in the file
`/etc/php/<php version>/fpm/pool.d/www.conf`. Search for `clear_env`.
Conversion to text for fulltext search
=======================================
@ -49,9 +21,6 @@ application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/msword
catdoc %s
application/vnd.oasis.opendocument.text
odt2txt %s
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx2csv -d tab %s
@ -109,17 +78,6 @@ message/rfc822
text/plain
iconv -c -f utf-8 -t latin1 '%f' | a2ps -1 -q -a1 -R -B -o - - | ps2pdf - -
The parameter `-q` is important because a2ps sends some statistical
data to stderr, which makes SeedDMS believe the command has failed.
application/x-xopp
xournalpp -p "%o" "%f"
Converting from application/x-xopp to pdf only works if the xopp file
does not use a pdf document as a background, because this pdf is not
stored in the xopp fіle.
Conversion to png for preview images
=====================================
@ -153,12 +111,7 @@ application/pdf
convert -density 100 -resize %wx '%f[0]' 'png:%o'
mutool draw -F png -w %w -q -N -o '%o' '%f' 1
pdftocairo '%f' -png -singlefile -scale-to-x %w -scale-to-y -1 - > '%o'
pdftocairo needs to output to stdout because the output file name passed
to pdftocairo will be suffixed with png
mutool draw -F png -w %w -q -N -o %o %f 1
application/postscript
convert -density 100 -resize %wx '%f[0]' 'png:%o'
@ -197,10 +150,3 @@ video/mp4
audio/mpeg
sox "%f" -n spectrogram -x 600 -Y 550 -r -l -o - | convert -resize %wx png:- "png:%o"
application/x-xopp
xournalpp -i "%o" --export-png-width=%w "%f"
Converting from application/x-xopp to png only works if the xopp file
does not use a pdf document as a background, because this pdf is not
stored in the xopp fіle.

View File

@ -8,13 +8,13 @@ SeedDMS is a web-based application written in PHP. It uses MySQL,
SQLite3 or PostgreSQL to manage the documents that were uploaded into
the application. Be aware that PostgreSQL is not very well tested.
Make sure you have PHP >= 8.2 and MySQL 5 or higher installed. SeedDMS
Make sure you have PHP >= 7.3 and MySQL 5 or higher installed. SeedDMS
will work with PHP running in CGI-mode as well as running as a module under
apache.
Here is a detailed list of requirements:
1. A web server with at least php 8.2
1. A web server with at least php 7.4
2. A mysql database, unless you use SQLite
3. The php installation must have support for `pdo_mysql`, `pdo_pgsql` or `pdo_sqlite`,
`php_gd2`, `php_mbstring`, `php_xml`
@ -240,7 +240,7 @@ in your current installation with new versions from the quickstart archive.
current installation and make the link `seeddms` point to this new directory.
3. copy the directory `pear` from the unpacked archive into your current
installation, replacing the existing directory. Make a backup of `pear` before
the replacement if you want to ensure to be able to go back to your old version.
the replacement if you want to ensure to be able to go back to your old version.
4. you may compare your `conf/settings.xml` file with the shipped version
`conf/settings.xml.template` for new parameters. If you don't do it, the next
time you save the configuration the default values will be used.
@ -350,7 +350,7 @@ http://localhost/seeddms/
* 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
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
@ -371,9 +371,9 @@ full text search engine support, you will also need to unpack
* 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_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.
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
@ -395,36 +395,36 @@ full text search engine support, you will also need to unpack
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
> pear install SeedDMS_Core-<version>.tgz
> pear install SeedDMS_Lucene-<version>.tgz
> pear install SeedDMS_Preview-<version>.tgz
* The PEAR packages Log and Mail are also needed. They can be downloaded from
http://pear.php.net/package/Log and http://pear.php.net/package/Mail.
Either install it as a pear package
or place it under your new directory 'pear'
Either install it as a pear package
or place it under your new directory 'pear'
> pear
> Log
> Log.php
> Mail
> Mail.php
> Log
> Log.php
> Mail
> Mail.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 package or place it under your new directory 'pear'
> pear
> HTTP
> WebDAV
> Server
> Server.php
> 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.
in the webdav directory with the following content.
RewriteEngine on
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
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,
@ -435,24 +435,24 @@ 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>
> <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 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)
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
> 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

View File

@ -35,14 +35,6 @@ is set to false. In that case the common name (cn) and email address is taken
from ldap. An already existing account in SeedDMS will be updated with data from
ldap.
Since version 5.1.35 and 6.0.28 the field name of the email address in ldap
can be set with the attribute `mailField`. If it is not set it defaults to `mail`.
Since version 5.1.34 and 6.0.27 the groups of a user stored in the ldap directory
can be synchronised with the groups in SeedDMS. The ldap field storing
the groups can be configured with the attribute `mailField`. This will add
new groups in SeedDMS and aѕsign them to the user.
Examples
---------

View File

@ -126,28 +126,3 @@ op/op.TriggerWorkflow.php
op/op.UpdateDocument.php
* document was updated
subscribers of the document
op/op.ReceiptDocument.php
* document was received
subscribers of the document
op/op.ReviseDocument.php
* document was revised
subscribers of the document
op/op.SetRevisors.php
* Revisors were added/deleted
subscribers of the document
uploader of version
revisor
op/op.ReceiptDocument.php
* document was receipt
subscribers of the document
op/op.SetRecipients.php
* Recipients were added/deleted
subscribers of the document
uploader of version
recipient

View File

@ -1,55 +0,0 @@
# How to access the Rest API
Below are various examples on how to access the Rest API. Some of them
start by calling the `login` endpoint which creates a cookie based
session which is stored in a local file named `cookies.txt`.
The authentication is done with the user `admin`. You may use any other
user as well.
You may as well pass `-H Authorization: <api key>` instead of `-b cookies.txt`
to `curl` after setting the api key in the configuration of your SeedDMS.
Of course, in that case you will not need the initial call of the `login`
endpoint.
The examples often use the `jq` programm for formating the returned
json data.
## Initial test
The `echo` endpoint does not require any authentication.
```
#!/bin/sh
BASEURL="https://your-domain/"
curl --silent -X GET ${BASEURL}restapi/index.php/echo/test | jq '.'
```
## Getting list of users
```
#!/bin/sh
BASEURL="https://your-domain/"
curl --silent -F "user=admin" -F "pass=admin" -b cookies.txt -c cookies.txt ${BASEURL}restapi/index.php/login | jq
curl --silent -b cookies.txt -X GET "${BASEURL}restapi/index.php/users" | jq '.'
```
## Getting meta data of a folder
```
#!/bin/sh
BASEURL="https://your-domain/"
curl --silent -H "Authorization: <api key>" -X GET "${BASEURL}restapi/index.php/folder/1" | jq '.'
```
## Notes
Make sure to encode the data properly when using restapi functions which uses
put. If you use curl with PHP, then encode the data as the following
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

View File

@ -1,26 +0,0 @@
Scheduler
==========
The scheduler in SeedDMS manages frequently run tasks. It is very similar
to regular unix cron jobs. A task in SeedDMS is an instanciation of a task
class which itself is defined by an extension or SeedDMS itself.
SeedDMS has some predefined classes e.g. core::expireddocs.
In order for tasks to be runnalbe, a user `cli_scheduler` must exists in
SeedDMS.
All tasks are executed by a single cronjob in the directory `utils`
> */5 * * * * /home/www-data/seeddms60x/seeddms/utils/seeddms-schedulercli --mode=run
Please keep in mind, that the php interpreter used for the cronjob may be
different from the php interpreter used für the web application. Hence, two
different php.ini files might be used. php and the php extensions may differ as
well. This can cause some extensions to be disabled and consequently some task
classes are not defined.
`utils/seeddms-schedulercli` can also be run on the command line. If you
do that, run it with the same system user used for the web server. On Debian
this is www-data. Hence run it like
sudo -u www-data utils/seeddms-schedulercli --mode=list

View File

@ -1,42 +0,0 @@
Running the scheduler
======================
Since version 6 of SeedDMS a scheduler is implemented which runs
scheduled tasks. Such tasks must be implemented in an extension
and can be scheduled by the administrator within the user interface.
In order to check frequently for tasks ready to run, a system cron job
must be installed. On Linux this can be done by adding the following line
to the crontab
*/5 * * * * /var/www/seeddms60x/seeddms/utils/seeddms-schedulercli --mode=run
(Of course you need to change the path to `seeddms-schedulercli`)
This will install a cronjob running every 5 minutes. `seeddms-schedulercli` will check
for tasks ready to run and execute them in that case. You can decrease the time between
two calls of the cronjob, but keep in mind that seeddms tasks may take longer and
are being started again before the previous task has been ended.
If the configuration file of SeedDMS is not found, its path can be passed
on the command, though this should not be needed in a regular installation
obeying the directory structure of the quickstart archive.
*/5 * * * * /var/www/seeddms60x/seeddms/utils/seeddms-schedulercli --config /var/www/seeddms60x/seeddms/conf/settings.xml --mode=run
For testing purposes it may be usefull to run `seeddms-schedulercli` in list mode.
seeddms-schedulercli --mode=list
This will just list all tasks and its scheduled exection time. Tasks ready to run,
because its scheduled execution time is already in the past will be marked with
a `*`. Tasks which are disabled will be marked with a `-`.
Executing `seeddms-schedulercli` in `dryrun` mode will behave just like in `run` mode
but instead of running the task it will just issue a line.
Instead of running utils/seeddms-schedulercli you may as well access
op/op.Cron.php which also runs all scheduled tasks. On Linux you do this
by setting up a cronjob like
*/5 * * * * wget -q -O - "http://<your domain>/op/op.Cron.php"

View File

@ -177,32 +177,7 @@ class SeedDMS_ExtExample_ViewFolder {
* @package SeedDMS
* @subpackage example
*/
class SeedDMS_ExtExample_Task extends SeedDMS_SchedulerTaskBase {
/**
* Run the task
*
* @param $task task to be executed
* @return boolean true if task was executed succesfully, otherwise false
*/
public function execute($task) {
$dms = $this->dms;
$user = $this->user;
$settings = $this->settings;
$logger = $this->logger;
$taskparams = $task->getParameter();
return true;
}
public function getDescription() {
return 'Description';
}
public function getAdditionalParams() {
return array(array(
'name'=>'email',
'type'=>'string',
'description'=> '',
));
class SeedDMS_ExtExample_Task {
public function execute() {
}
}

View File

@ -1,7 +1,7 @@
<?php
$EXT_CONF['example'] = array(
'title' => 'Example Extension',
'description' => 'This sample extension demonstrates the use of various hooks',
'description' => 'This sample extension demonstrate the use of various hooks',
'disable' => true,
'version' => '1.0.1',
'releasedate' => '2018-03-21',

View File

@ -1,9 +1,4 @@
<?php
$__lang['de_DE'] = array(
'folder_contents' => 'Dies war mal "Ordner enthält". Wurde von sample Extension geändert.',
'task_example_example_email' => 'Email',
);
$__lang['en_GB'] = array(
'folder_contents' => 'This used to be "Folder contents". Was changed by sample Extension.',
'task_example_example_email' => 'Email',
);

View File

@ -21,23 +21,17 @@ if (!strncmp("/op", $refer, 3)) {
} else {
$refer = urlencode($refer);
}
/* Check if this is a ajax call. In that case do not redirect to any page */
$isajax = isset($_GET['action']) && ($_GET['action'] != 'show');
if (!isset($_COOKIE["mydms_session"])) {
if($settings->_enableGuestLogin && $settings->_enableGuestAutoLogin) {
$session = new SeedDMS_Session($db);
if(!$dms_session = $session->create(array('userid'=>$settings->_guestID, 'theme'=>$settings->_theme, 'lang'=>$settings->_language))) {
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
$resArr = $session->load($dms_session);
} elseif($settings->_autoLoginUser) {
if(!($user = $dms->getUser($settings->_autoLoginUser))/* || !$user->isGuest()*/) {
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
$theme = $user->getTheme();
@ -52,14 +46,12 @@ if (!isset($_COOKIE["mydms_session"])) {
}
$session = new SeedDMS_Session($db);
if(!$dms_session = $session->create(array('userid'=>$user->getID(), 'theme'=>$theme, 'lang'=>$lang))) {
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
$resArr = $session->load($dms_session);
} else {
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
} else {
@ -68,8 +60,7 @@ if (!isset($_COOKIE["mydms_session"])) {
$session = new SeedDMS_Session($db);
if(!$resArr = $session->load($dms_session)) {
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
}
@ -82,16 +73,13 @@ if((int)$resArr['lastAccess']+60 < time())
$user = $dms->getUser($resArr["userID"]);
if (!is_object($user)) {
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot); //delete cookie
if(!$isajax)
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
exit;
}
$origuser = null;
if($resArr["su"] && $su = $dms->getUser($resArr["su"])) {
if($user->isAdmin() || $user->maySwitchToUser($su)) {
$origuser = $user;
$user = $su;
if($user->isAdmin()) {
if($resArr["su"]) {
$user = $dms->getUser($resArr["su"]);
} else {
// $session->resetSu();
}
@ -104,8 +92,6 @@ if($settings->_useHomeAsRootFolder && !$user->isAdmin() && $user->getHomeFolder(
$dms->checkWithinRootDir = true;
$dms->setRootFolderID($user->getHomeFolder());
}
$role = $user->getRole();
$dms->noReadForStatus = $role->getNoAccess();
/* Include additional language file for view
* This file must set $LANG[xx][]
@ -114,17 +100,13 @@ if(file_exists($settings->_rootDir . "view/".$theme."/languages/" . $lang . "/la
include $settings->_rootDir . "view/".$theme."/languages/" . $lang . "/lang.inc";
}
/* if this is a ajax call, then exit early as the rest of the script is irrelevant */
if($isajax)
return;
/* Check if password needs to be changed because it expired. If it needs
* to be changed redirect to out/out.ForcePasswordChange.php. Do this
* check only if password expiration is turned on, we are not on the
* page to change the password or the page that changes the password, the
* current user is not admin, and no user substitution has occured. */
if (!$user->isAdmin() && $origuser == null) {
if (!$user->isAdmin() && !$resArr['su']) {
if($settings->_passwordExpiration > 0) {
if(basename($_SERVER['SCRIPT_NAME']) != 'out.ForcePasswordChange.php' && basename($_SERVER['SCRIPT_NAME']) != 'op.EditUserData.php' && basename($_SERVER['SCRIPT_NAME']) != 'op.Logout.php') {
$pwdexp = $user->getPwdExpiration();
@ -139,17 +121,6 @@ if (!$user->isAdmin() && $origuser == null) {
}
}
/* Check if secret is set for 2-factor authentication. Redirect to Setup2Factor.php
* if secret is not set and 2-factor authentication is turned on. Also check if
* already on the page Setup2Factor.php and no user substiation has occured.
*/
if($settings->_enable2FactorAuthentication && $settings->_guestID != $user->getID() && $settings->_autoLoginUser != $user->getID() && $origuser == null && $user->getSecret() == '') {
if(basename($_SERVER['SCRIPT_NAME']) != 'out.Setup2Factor.php' && basename($_SERVER['SCRIPT_NAME']) != 'op.Setup2Factor.php') {
header("Location: ../out/out.Setup2Factor.php");
exit;
}
}
/* Update cookie lifetime */
if($settings->_cookieLifetime) {
$lifetime = time() + intval($settings->_cookieLifetime);

View File

@ -1,41 +0,0 @@
<?php
/**
* Do authentication of users and session management
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2002-2005 Markus Westphal,
* 2006-2008 Malcolm Cowe, 2010 Uwe Steinmann
* @version Release: @package_version@
*/
require_once("inc.Utils.php");
require_once("inc.ClassNotificationService.php");
require_once("inc.ClassEmailNotify.php");
require_once("inc.ClassSession.php");
require_once("inc.ClassAccessOperation.php");
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="'.$settings->_siteName.'"');
header('HTTP/1.0 401 Unauthorized');
echo getMLText('cancel_basic_authentication');
exit;
} else {
if(!($user = $authenticator->authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']))) {
header('WWW-Authenticate: Basic realm="'.$settings->_siteName.'"');
header('HTTP/1.0 401 Unauthorized');
echo getMLText('cancel_basic_authentication');
exit;
}
}
/* Clear login failures if login was successful */
$user->clearLoginFailures();
$dms->setUser($user);
require_once('inc/inc.Notification.php');

View File

@ -11,8 +11,6 @@
* @version Release: @package_version@
*/
require_once "inc.ClassAcl.php";
/**
* Class to check certain access restrictions
*
@ -29,32 +27,33 @@ class SeedDMS_AccessOperation {
*/
private $dms;
/**
* @var object $obj object being accessed
* @access protected
*/
private $obj;
/**
* @var object $user user requesting the access
* @access protected
*/
protected $user;
private $user;
/**
* @var object $settings SeedDMS Settings
* @access protected
*/
protected $settings;
private $settings;
/**
* @var object $aro access request object for caching
* @access protected
*/
private $_aro;
/**
* @var array $legacy_access list of objects with access use for view and controller
* @var array $legacy_access list of objects with access
* @access protected
*/
private $legacy_access;
function __construct($dms, $user, $settings) { /* {{{ */
function __construct($dms, $obj, $user, $settings) { /* {{{ */
$this->dms = $dms;
$this->obj = $obj;
$this->user = $user;
$this->settings = $settings;
$this->legacy_access['guest'] = array(
@ -81,7 +80,6 @@ class SeedDMS_AccessOperation {
'CategoryChooser',
'ChangePassword',
'CheckInDocument',
'CheckOutDocument',
'Clipboard',
'Dashboard',
'DocumentAccess',
@ -165,15 +163,15 @@ class SeedDMS_AccessOperation {
* document may delete versions. The admin may even delete a version
* even if is disallowed in the settings.
*/
function mayEditVersion($document, $vno=0) { /* {{{ */
if($document->isType('document')) {
function mayEditVersion($vno=0) { /* {{{ */
if($this->obj->isType('document')) {
if($vno)
$version = $document->getContentByVersion($vno);
$version = $this->obj->getContentByVersion($vno);
else
$version = $document->getLatestContent();
$version = $this->obj->getLatestContent();
if (!isset($this->settings->_editOnlineFileTypes) || !is_array($this->settings->_editOnlineFileTypes) || (!in_array(strtolower($version->getFileType()), $this->settings->_editOnlineFileTypes) && !in_array(strtolower($version->getMimeType()), $this->settings->_editOnlineFileTypes)))
return false;
if ($document->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) {
if ($this->obj->getAccessMode($this->user) == M_ALL || $this->user->isAdmin()) {
return true;
}
}
@ -189,10 +187,10 @@ class SeedDMS_AccessOperation {
* document may delete versions. The admin may even delete a version
* even if is disallowed in the settings.
*/
function mayRemoveVersion($document) { /* {{{ */
if($document->isType('document')) {
$versions = $document->getContent();
if ((($this->settings->_enableVersionDeletion && ($document->getAccessMode($this->user, 'removeVersion') == M_ALL)) || $this->user->isAdmin() ) && (count($versions) > 1)) {
function mayRemoveVersion() { /* {{{ */
if($this->obj->isType('document')) {
$versions = $this->obj->getContent();
if ((($this->settings->_enableVersionDeletion && ($this->obj->getAccessMode($this->user, 'removeVersion') == M_ALL)) || $this->user->isAdmin() ) && (count($versions) > 1)) {
return true;
}
}
@ -209,11 +207,11 @@ class SeedDMS_AccessOperation {
* The admin may even modify the status
* even if is disallowed in the settings.
*/
function mayOverrideStatus($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function mayOverwriteStatus() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_DRAFT || $status["status"]==S_RELEASED || $status["status"]==S_REJECTED || $status["status"]==S_OBSOLETE || $status["status"]==S_NEEDS_CORRECTION)) {
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_RELEASED || $status["status"]==S_OBSOLETE )) {
return true;
}
}
@ -228,13 +226,12 @@ class SeedDMS_AccessOperation {
* reviewers/approvers is only allowed if version modification is turned on
* in the settings and the document has not been reviewed/approved by any
* user/group already.
* The admin may even set reviewers/approvers after the review/approval
* process has been started, but only if _allowChangeRevAppInProcess
* explicitly allows it.
* The admin may even set reviewers/approvers if is disallowed in the
* settings.
*/
function maySetReviewersApprovers($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function maySetReviewersApprovers() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
$reviewstatus = $latestContent->getReviewStatus();
$hasreview = false;
@ -248,49 +245,7 @@ class SeedDMS_AccessOperation {
if($r['status'] == 1 || $r['status'] == -1)
$hasapproval = true;
}
if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (($status["status"]==S_DRAFT_REV && (!$hasreview || ($this->user->isAdmin() && $this->settings->_allowChangeRevAppInProcess))) || ($status["status"]==S_DRAFT_APP && ((!$hasreview && !$hasapproval) || ($this->user->isAdmin() && $this->settings->_allowChangeRevAppInProcess))) || $status["status"]==S_DRAFT)) {
return true;
}
}
}
return false;
} /* }}} */
/**
* Check if recipients may be edited
*
* This check can only be done for documents. Setting the document
* recipients is only allowed if version modification is turned on
* in the settings. The
* admin may even set recipients if is disallowed in the
* settings.
*/
function maySetRecipients($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus();
if (($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) >= M_READWRITE)) || $this->user->isAdmin()) {
return true;
}
}
}
return false;
} /* }}} */
/**
* Check if revisors may be edited
*
* This check can only be done for documents. Setting the document
* revisors is only allowed if version modification is turned on
* in the settings. The
* admin may even set revisors if is disallowed in the
* settings.
*/
function maySetRevisors($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus();
if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && ($status["status"]==S_RELEASED || $status["status"]==S_IN_REVISION)) {
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (($status["status"]==S_DRAFT_REV && !$hasreview) || ($status["status"]==S_DRAFT_APP && !$hasreview && !$hasapproval))) {
return true;
}
}
@ -307,12 +262,12 @@ class SeedDMS_AccessOperation {
* admin may even set the workflow if is disallowed in the
* settings.
*/
function maySetWorkflow($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function maySetWorkflow() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$workflow = $latestContent->getWorkflow();
$workflowstate = $latestContent->getWorkflowState();
if ((($this->settings->_enableVersionModification && ($document->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflowstate && ($workflow->getInitState()->getID() == $workflowstate->getID())))) {
if ((($this->settings->_enableVersionModification && ($this->obj->getAccessMode($this->user) == M_ALL)) || $this->user->isAdmin()) && (!$workflow || ($workflowstate && ($workflow->getInitState()->getID() == $workflowstate->getID())))) {
return true;
}
}
@ -326,11 +281,11 @@ class SeedDMS_AccessOperation {
* This check can only be done for documents. Setting the documents
* expiration date is only allowed if the document has not been obsoleted.
*/
function maySetExpires($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function maySetExpires() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
if ((($document->getAccessMode($this->user) >= M_READWRITE) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
if ((($this->obj->getAccessMode($this->user) == M_ALL) || $this->user->isAdmin()) && ($status["status"]!=S_OBSOLETE)) {
return true;
}
}
@ -347,17 +302,17 @@ class SeedDMS_AccessOperation {
* The admin may set the comment even if is
* disallowed in the settings.
*/
function mayEditComment($document) { /* {{{ */
if($document->isType('document')) {
if($document->getAccessMode($this->user) < M_READWRITE)
function mayEditComment() { /* {{{ */
if($this->obj->isType('document')) {
if($this->obj->getAccessMode($this->user) < M_READWRITE)
return false;
if($document->isLocked()) {
$lockingUser = $document->getLockingUser();
if (($lockingUser->getID() != $this->user->getID()) && ($document->getAccessMode($this->user) != M_ALL)) {
if($this->obj->isLocked()) {
$lockingUser = $this->obj->getLockingUser();
if (($lockingUser->getID() != $this->user->getID()) && ($this->obj->getAccessMode($this->user) != M_ALL)) {
return false;
}
}
if($latestContent = $document->getLatestContent()) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
if (($this->settings->_enableVersionModification || $this->user->isAdmin()) && !in_array($status["status"], array(S_OBSOLETE, S_EXPIRED))) {
return true;
@ -375,15 +330,15 @@ class SeedDMS_AccessOperation {
* the settings or the document is still in an approval/review
* or intial workflow step.
*/
function mayEditAttributes($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function mayEditAttributes() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
$workflow = $latestContent->getWorkflow();
$workflowstate = $latestContent->getWorkflowState();
if($document->getAccessMode($this->user) < M_READWRITE)
if($this->obj->getAccessMode($this->user) < M_READWRITE)
return false;
if ($this->settings->_enableVersionModification || in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP, S_IN_REVISION)) || ($workflow && $workflowstate && $workflow->getInitState()->getID() == $workflowstate->getID())) {
if ($this->settings->_enableVersionModification || in_array($status["status"], array(S_DRAFT_REV, S_DRAFT_APP)) || ($workflow && $workflowstate && $workflow->getInitState()->getID() == $workflowstate->getID())) {
return true;
}
}
@ -398,11 +353,11 @@ class SeedDMS_AccessOperation {
* review. There are other requirements which are not taken into
* account here.
*/
function mayReview($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function mayReview() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
if ($document->getAccessMode($this->user) >= M_READ && $status["status"]==S_DRAFT_REV) {
if ($status["status"]==S_DRAFT_REV) {
return true;
}
}
@ -416,24 +371,9 @@ class SeedDMS_AccessOperation {
* A review may only be updated by the user who originaly addedd the
* review and if it is allowed in the settings
*/
function mayUpdateReview($document, $updateUser) { /* {{{ */
if($document->isType('document')) {
if($this->settings->_enableUpdateRevApp && ($updateUser == $this->user) && $document->getAccessMode($this->user) >= M_READ && !$document->hasExpired()) {
return true;
}
}
return false;
} /* }}} */
/**
* Check if a approval maybe edited
*
* An approval may only be updated by the user who originaly addedd the
* approval and if it is allowed in the settings
*/
function mayUpdateApproval($document, $updateUser) { /* {{{ */
if($document->isType('document')) {
if($this->settings->_enableUpdateRevApp && ($updateUser == $this->user) && $document->getAccessMode($this->user) >= M_READ && !$document->hasExpired()) {
function mayUpdateReview($updateUser) { /* {{{ */
if($this->obj->isType('document')) {
if($this->settings->_enableUpdateRevApp && ($updateUser == $this->user) && !$this->obj->hasExpired()) {
return true;
}
}
@ -449,11 +389,11 @@ class SeedDMS_AccessOperation {
* There are other requirements which are not taken into
* account here.
*/
function mayApprove($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
function mayApprove() { /* {{{ */
if($this->obj->isType('document')) {
if($latestContent = $this->obj->getLatestContent()) {
$status = $latestContent->getStatus();
if ($document->getAccessMode($this->user) >= M_READ && $status["status"]==S_DRAFT_APP) {
if ($status["status"]==S_DRAFT_APP) {
return true;
}
}
@ -462,70 +402,14 @@ class SeedDMS_AccessOperation {
} /* }}} */
/**
* Check if document content may be receipted
* Check if a approval maybe edited
*
* Reviewing a document content is only allowed if the document was not
* obsoleted. There are other requirements which are not taken into
* account here.
* An approval may only be updated by the user who originaly addedd the
* approval and if it is allowed in the settings
*/
function mayReceipt($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus();
if ($document->getAccessMode($this->user) >= M_READ && $status["status"]==S_RELEASED) {
return true;
}
}
}
return false;
} /* }}} */
/**
* Check if a review maybe edited
*
* A review may only be updated by the user who originaly addedd the
* review and if it is allowed in the settings
*/
function mayUpdateReceipt($document, $updateUser) { /* {{{ */
if($document->isType('document')) {
if($this->settings->_enableUpdateReceipt && ($updateUser == $this->user) && $document->getAccessMode($this->user) >= M_READ && !$document->hasExpired()) {
return true;
}
}
return false;
} /* }}} */
/**
* Check if document content may be revised
*
* Revising a document content is only allowed if the document was not
* obsoleted. There may be other requirements which are not taken into
* account here.
*/
function mayRevise($document) { /* {{{ */
if($document->isType('document')) {
if($latestContent = $document->getLatestContent()) {
$status = $latestContent->getStatus();
if ($document->getAccessMode($this->user) >= M_READ && $status["status"]!=S_OBSOLETE) {
return true;
}
}
}
return false;
} /* }}} */
/**
* Check if document content may be checked in
*
*
*/
function mayCheckIn($document) { /* {{{ */
if($document->isType('document')) {
$checkoutinfo = $document->getCheckOutInfo();
if(!$checkoutinfo)
return false;
$info = $checkoutinfo[0];
if($this->user->getID() == $info['userID'] || $document->getAccessMode($this->user) == M_ALL) {
function mayUpdateApproval($updateUser) { /* {{{ */
if($this->obj->isType('document')) {
if($this->settings->_enableUpdateRevApp && ($updateUser == $this->user) && !$this->obj->hasExpired()) {
return true;
}
}
@ -564,44 +448,11 @@ class SeedDMS_AccessOperation {
return false;
} /* }}} */
protected function check_controller_legacy_access($controller, $get=array()) { /* {{{ */
if($this->user->isAdmin())
return true;
if(is_string($controller)) {
$scripts = array($controller);
} elseif(is_array($controller)) {
$scripts = $controller;
} elseif(is_subclass_of($controller, 'SeedDMS_Controller_Common')) {
$scripts = array($controller->getParam('class'));
} else {
return false;
}
if($this->user->isGuest()) {
$user_allowed = $this->legacy_access['guest'];
} else {
$user_allowed = $this->legacy_access['user'];
}
if(array_intersect($scripts, $user_allowed))
return true;
return false;
} /* }}} */
/**
* Check for access permission on view
*
* If the parameter $view is an array then each element is considered the
* name of a view and true will be returned if one of them is accessible.
* Whether access is allowed also depends on the currently logged in user
* stored in the view object. If the user is an admin the access
* on a view must be explicitly disallowed. For regular users the access
* must be explicitly allowed.
*
* If advanced access control is turn off, this function will always return
* true for admins and false for other users.
* This function will always return true because it was added to smooth
* migration from 5.1.x to 6.0.x
*
* @param mixed $view Instanz of view, name of view or array of view names
* @param string $get query parameters possible containing the element 'action'
@ -609,79 +460,20 @@ class SeedDMS_AccessOperation {
* no specific access right is set, otherwise false
*/
function check_view_access($view, $get=array()) { /* {{{ */
if(!$this->settings->_advancedAcl) {
return $this->check_view_legacy_access($view, $get);
}
if(is_string($view)) {
$scripts = array($view);
} elseif(is_array($view)) {
$scripts = $view;
} elseif(is_subclass_of($view, 'SeedDMS_View_Common')) {
$scripts = array($view->getParam('class'));
} else {
return false;
}
$scope = 'Views';
$action = (isset($get['action']) && $get['action']) ? $get['action'] : 'show';
$acl = new SeedDMS_Acl($this->dms);
if(!$this->_aro)
$this->_aro = SeedDMS_Aro::getInstance($this->user->getRole(), $this->dms);
foreach($scripts as $script) {
$aco = SeedDMS_Aco::getInstance($scope.'/'.$script.'/'.$action, $this->dms);
$ll = $acl->check($this->_aro, $aco);
if($ll === 1 && !$this->user->isAdmin() || $ll !== -1 && $this->user->isAdmin())
return true;
}
return false;
return $this->check_view_legacy_access($view, $get);
} /* }}} */
/**
* Check for access permission on controller
*
* If the parameter $controller is an array then each element is considered the
* name of a controller and true will be returned if one is accesible.
* If advanced access controll is turn off, this function will return false
* for guest users and true otherwise.
* This function will always return true because it was added to smooth
* migration from 5.1.x to 6.0.x
*
* @param mixed $controller Instanz of controller, name of controller or array of controller names
* @param string $get query parameters
* @return boolean true if access is allowed otherwise false
*/
function check_controller_access($controller, $get=array()) { /* {{{ */
if(!$this->settings->_advancedAcl) {
return $this->check_controller_legacy_access($controller, $get);
/*
if($this->user->isGuest())
return false;
elseif($this->user->isAdmin())
return true;
else {
if($controller == 'AddDocument' && isset($get['action']) && $get['action'] == 'setOwner')
return false;
return true;
}
*/
}
if(is_string($controller)) {
$scripts = array($controller);
} elseif(is_array($controller)) {
$scripts = $controller;
} elseif(is_subclass_of($controller, 'SeedDMS_Controller_Common')) {
$scripts = array($controller->getParam('class'));
} else {
return false;
}
$scope = 'Controllers';
$action = (isset($get['action']) && $get['action']) ? $get['action'] : 'run';
$acl = new SeedDMS_Acl($this->dms);
if(!$this->_aro)
$this->_aro = SeedDMS_Aro::getInstance($this->user->getRole(), $this->dms);
foreach($scripts as $script) {
$aco = SeedDMS_Aco::getInstance($scope.'/'.$script.'/'.$action, $this->dms);
$ll = $acl->check($this->_aro, $aco);
if($ll === 1 && !$this->user->isAdmin() || $ll !== -1 && $this->user->isAdmin())
return true;
}
return false;
return true;
} /* }}} */
}

View File

@ -1,390 +0,0 @@
<?php
/**
* Implementation of a access control list.
*
* SeedDMS uses access control list for setting permission,
* on various operations.
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2016 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class to represent an access request object
*
* This class provides a model for access request objects.
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2016 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Acl { /* {{{ */
/**
* @var object $dms reference to dms object.
* @access public
*/
public $_dms;
/**
* Create a new instance of an acl
*
* @param object $dms object of dms
* @return object instance of SeedDMS_Acl
*/
public function __construct($dms) { /* {{{ */
$this->_dms = $dms;
} /* }}} */
/**
* Check if Aro has access on Aco
*
* @param object $aro access request object
* @param object $aco access control object
* @return integer/boolean -1 if access is explictly denied, 1 if access
* is explictly allow, 0 if no access restrictions exists, false if
* an error occured.
*/
public function check($aro, $aco) { /* {{{ */
$db = $this->_dms->getDB();
while($aco) {
$acoid = $aco->getID();
$queryStr = "SELECT * FROM `tblArosAcos` WHERE `aro`=".$aro->getID()." AND `aco`=".$acoid;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return false;
if (count($resArr) == 1)
return((int) $resArr[0]['read']);
$aco = $aco->getParent();
}
return 0;
} /* }}} */
public function toggle($aro, $aco) { /* {{{ */
$db = $this->_dms->getDB();
$queryStr = "SELECT * FROM `tblArosAcos` WHERE `aro`=".$aro->getID()." AND `aco`=".$aco->getID();
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return false;
if (count($resArr) != 1)
return false;
$resArr = $resArr[0];
$newperm = $resArr['read'] == 1 ? -1 : 1;
$queryStr = "UPDATE `tblArosAcos` SET `read`=".$newperm." WHERE `aro`=".$aro->getID()." AND `aco`=".$aco->getID();
if (!$db->getResult($queryStr))
return false;
return true;
} /* }}} */
public function add($aro, $aco, $perm=-1) { /* {{{ */
$db = $this->_dms->getDB();
$queryStr = "SELECT * FROM `tblArosAcos` WHERE `aro`=".$aro->getID()." AND `aco`=".$aco->getID();
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return false;
if (count($resArr) == 1) {
$resArr = $resArr[0];
$newperm = $resArr['read'] == 1 ? -1 : 1;
$queryStr = "UPDATE `tblArosAcos` SET `read`=".$newperm." WHERE `aro`=".$aro->getID()." AND `aco`=".$aco->getID();
if (!$db->getResult($queryStr))
return false;
} else {
$queryStr = "INSERT INTO `tblArosAcos` (`aro`, `aco`, `read`) VALUES (".$aro->getID().", ".$aco->getID().", ".$perm.")";
if (!$db->getResult($queryStr))
return false;
}
return true;
} /* }}} */
public function remove($aro, $aco) { /* {{{ */
$db = $this->_dms->getDB();
$queryStr = "DELETE FROM `tblArosAcos` WHERE `aro`=".$aro->getID()." AND `aco`=".$aco->getID();
if (!$db->getResult($queryStr))
return false;
return true;
} /* }}} */
} /* }}} */
/**
* Class to represent an access request/controll object
*
* This class provides a model for access request/controll objects.
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2016 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_AroAco { /* {{{ */
/**
* @var object $dms reference to dms object.
* @access protected
*/
public $_dms;
/**
* @var integer id of access request object
*/
protected $_id;
/**
* @var integer id of parent of access request object
*/
protected $_parent;
/**
* @var string alias of access request object
*/
protected $_alias;
/**
* @var object object of access request object
*/
protected $_object;
/**
* Create a new instance of an aro
*
* @param object $dms object of dms
* @return object instance of SeedDMS_Aco
*/
function __construct($dms, $id, $parent, $object, $alias) { /* {{{ */
$this->_dms = $dms;
$this->_id = $id;
$this->_parent = $parent;
$this->_object = $object;
$this->_alias = $alias;
} /* }}} */
public function setDMS($dms) { /* {{{ */
$this->_dms = $dms;
} /* }}} */
public function getDMS() { /* {{{ */
return($this->_dms);
} /* }}} */
public function getID() { /* {{{ */
return $this->_id;
} /* }}} */
public function getAlias() { /* {{{ */
return $this->_alias;
} /* }}} */
public function getObject() { /* {{{ */
return $this->_object;
} /* }}} */
} /* }}} */
/**
* Class to represent an access request object
*
* This class provides a model for access request objects.
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2016 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Aro extends SeedDMS_AroAco { /* {{{ */
/**
* Create a new instance of an aro
*
* @param object $dms object to access the underlying database
* @return object instance of SeedDMS_Aro
*/
public static function getInstance($id, $dms) { /* {{{ */
$db = $dms->getDB();
if(is_int($id)) {
$queryStr = "SELECT * FROM `tblAros` WHERE `id` = " . (int) $id;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) != 1)
return null;
$resArr = $resArr[0];
} elseif(is_object($id)) {
if($dms->getClassname('role') == get_class($id)) {
$model = 'Role';
$queryStr = "SELECT * FROM `tblAros` WHERE `model`=".$db->qstr($model)." AND `foreignid`=".$id->getID();
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) == 0) {
$queryStr = "INSERT INTO `tblAros` (`parent`, `model`, `foreignid`) VALUES (0, ".$db->qstr($model).", ".$id->getID().")";
if (!$db->getResult($queryStr))
return null;
$id = $db->getInsertID();
$queryStr = "SELECT * FROM `tblAros` WHERE `id` = " . $id;
$resArr = $db->getResultArray($queryStr);
}
$resArr = $resArr[0];
} else {
return null;
}
}
if($resArr['model'] == 'Role') {
$classname = $dms->getClassname('role');
$object = $classname::getInstance($resArr['foreignid'], $dms);
} else {
$object = null;
}
$aro = new SeedDMS_Aro($dms, $resArr["id"], $resArr['parent'], $object, $resArr['alias']);
$aro->setDMS($dms);
return $aro;
} /* }}} */
} /* }}} */
/**
* Class to represent an access control object
*
* This class provides a model for access control objects.
*
* @category DMS
* @package SeedDMS
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2016 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Aco extends SeedDMS_AroAco{ /* {{{ */
/**
* Create a new instance of an aco
*
* @param object $dms object to access the underlying database
* @return object instance of SeedDMS_Aco
*/
public static function getInstance($id, $dms) { /* {{{ */
$db = $dms->getDB();
if(is_int($id)) {
$queryStr = "SELECT * FROM `tblAcos` WHERE `id` = " . (int) $id;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) == 0) {
return null;
}
$resArr = $resArr[0];
} elseif(is_string($id)) {
$tmp = explode('/', $id);
$parentid = 0;
foreach($tmp as $part) {
$queryStr = "SELECT * FROM `tblAcos` WHERE `alias` = " . $db->qstr($part);
// if($parentid)
$queryStr .= " AND parent=".$parentid;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) == 0) {
$queryStr = "INSERT INTO `tblAcos` (`parent`, `alias`, `model`) VALUES (".$parentid.",".$db->qstr($part).", '')";
if (!$db->getResult($queryStr))
return null;
$id = $db->getInsertID();
$queryStr = "SELECT * FROM `tblAcos` WHERE `id` = " . $id;
$resArr = $db->getResultArray($queryStr);
}
$parentid = (int) $resArr[0]['id'];
}
$resArr = $resArr[0];
}
if($resArr['model'] == 'Document') {
$classname = $dms->getClassname('document');
$object = $classname::getInstance($resArr['foreignid'], $dms);
} elseif($resArr['model'] == 'Folder') {
$classname = $dms->getClassname('focument');
$object = $classname::getInstance($resArr['foreignid'], $dms);
} else {
$object = null;
}
$aco = new SeedDMS_Aco($dms, $resArr["id"], $resArr['parent'], $object, $resArr['alias']);
$aco->setDMS($dms);
return $aco;
} /* }}} */
public function getChildren() { /* {{{ */
$dms = $this->getDMS();
$db = $dms->getDB();
$queryStr = "SELECT * FROM `tblAcos` WHERE `parent` = ".$this->_id." ORDER BY `alias`";
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) == 0)
return null;
$acos = array();
foreach($resArr as $row) {
$aco = new SeedDMS_Aco($dms, $row["id"], $row['parent'], null, $row['alias']);
$aco->setDMS($dms);
$acos[] = $aco;
}
return $acos;
} /* }}} */
public function getPermission($aro) { /* {{{ */
if(!$aro)
return 0;
$dms = $this->getDMS();
$db = $dms->getDB();
$queryStr = "SELECT * FROM `tblArosAcos` WHERE `aro`=".$aro->getID()." AND `aco`=".$this->_id;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return false;
if (count($resArr) != 1)
return 0;
return (int) $resArr[0]['read'];
} /* }}} */
public static function getRoot($dms) { /* {{{ */
$db = $dms->getDB();
$queryStr = "SELECT * FROM `tblAcos` WHERE `parent` = 0 ORDER BY `alias`";
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
$acos = array();
foreach($resArr as $row) {
$aco = new SeedDMS_Aco($dms, $row["id"], $row['parent'], null, $row['alias']);
$aco->setDMS($dms);
$acos[] = $aco;
}
return $acos;
} /* }}} */
public function getParent() { /* {{{ */
$dms = $this->getDMS();
$db = $dms->getDB();
$queryStr = "SELECT * FROM `tblAcos` WHERE `id` = ".$this->_parent;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr === false)
return null;
if (count($resArr) != 1)
return null;
$row = $resArr[0];
$aco = new SeedDMS_Aco($dms, $row["id"], $row['parent'], null, $row['alias']);
$aco->setDMS($dms);
return $aco;
} /* }}} */
} /* }}} */

View File

@ -1,35 +1,4 @@
<?php
/**
* MyDMS. Document Management System
* Copyright (C) 2002-2005 Markus Westphal
* Copyright (C) 2006-2008 Malcolm Cowe
* Copyright (C) 2010 Matteo Lucarelli
* Copyright (C) 2010-2024 Uwe Steinmann
*
* PHP version 8
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* @category SeedDMS
* @package SeedDMS
* @author Uwe Steinmann <info@seeddms.org>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link https://www.seeddms.org Main Site
*/
/* Middleware for authentication based on session */
class SeedDMS_Auth_Middleware_Session { /* {{{ */
@ -48,31 +17,30 @@ class SeedDMS_Auth_Middleware_Session { /* {{{ */
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function __invoke($request, $handler) {
public function __invoke($request, $response, $next) {
// $this->container has the DI
$dms = $this->container->get('dms');
$settings = $this->container->get('config');
$logger = $this->container->get('logger');
$dms = $this->container->dms;
$settings = $this->container->config;
$logger = $this->container->logger;
$userobj = null;
if ($this->container->has('userobj')) {
$userobj = $this->container->get('userobj');
if($this->container->has('userobj'))
$userobj = $this->container->userobj;
if($userobj) {
$response = $next($request, $response);
return $response;
}
if ($userobj) {
$response = $handler->handle($request);
return $response;
}
$logger->log("Invoke middleware for method " . $request->getMethod() . " on '" . $request->getUri()->getPath() . "'", PEAR_LOG_INFO);
$logger->log("Invoke middleware for method ".$request->getMethod()." on '".$request->getUri()->getPath()."'", PEAR_LOG_INFO);
require_once("inc/inc.ClassSession.php");
$session = new SeedDMS_Session($dms->getDb());
if (isset($_COOKIE["mydms_session"])) {
$dms_session = $_COOKIE["mydms_session"];
$logger->log("Session key: " . $dms_session, PEAR_LOG_DEBUG);
if (!$resArr = $session->load($dms_session)) {
$logger->log("Session key: ".$dms_session, PEAR_LOG_DEBUG);
if(!$resArr = $session->load($dms_session)) {
/* Delete Cookie */
setcookie("mydms_session", $dms_session, time() - 3600, $settings->_httpRoot);
$logger->log("Session for id '" . $dms_session . "' has gone", PEAR_LOG_ERR);
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot);
$logger->log("Session for id '".$dms_session."' has gone", PEAR_LOG_ERR);
return $response->withStatus(403);
}
@ -80,29 +48,26 @@ class SeedDMS_Auth_Middleware_Session { /* {{{ */
$userobj = $dms->getUser($resArr["userID"]);
if (!is_object($userobj)) {
/* Delete Cookie */
setcookie("mydms_session", $dms_session, time() - 3600, $settings->_httpRoot);
if ($settings->_enableGuestLogin) {
if (!($userobj = $dms->getUser($settings->_guestID))) {
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot);
if($settings->_enableGuestLogin) {
if(!($userobj = $dms->getUser($settings->_guestID)))
return $response->withStatus(403);
}
} else {
} else
return $response->withStatus(403);
}
}
if ($userobj->isAdmin()) {
if ($resArr["su"]) {
if (!($userobj = $dms->getUser($resArr["su"]))) {
if($userobj->isAdmin()) {
if($resArr["su"]) {
if(!($userobj = $dms->getUser($resArr["su"])))
return $response->withStatus(403);
}
}
}
$dms->setUser($userobj);
} else {
return $response->withStatus(403);
}
$this->container->set('userobj', $userobj);
$this->container['userobj'] = $userobj;
$response = $handler->handle($request);
$response = $next($request, $response);
return $response;
}
} /* }}} */

View File

@ -33,11 +33,6 @@ class SeedDMS_Calendar {
*/
protected $db;
/**
* Instanz of user
*/
protected $user;
public function __construct($db, $user) { /* {{{ */
$this->db = $db;
$this->user = $user;

View File

@ -30,7 +30,7 @@ class Controller {
* @return object an object of a class implementing the view
*/
static function factory($class, $params=array()) { /* {{{ */
global $settings, $session, $extMgr, $request, $logger, $notifier;
global $settings, $session, $extMgr, $request, $logger;
if(!$class) {
return null;
}
@ -52,7 +52,6 @@ class Controller {
require_once($filename);
$controller = new $classname($params);
/* Set some configuration parameters */
$controller->setParam('class', $class);
$controller->setParam('postVars', $_POST);
$controller->setParam('getVars', $_GET);
$controller->setParam('requestVars', $_REQUEST);
@ -60,7 +59,6 @@ class Controller {
$controller->setParam('request', $request);
$controller->setParam('settings', $settings);
$controller->setParam('logger', $logger);
$controller->setParam('notifier', $notifier);
return $controller;
}
return null;

View File

@ -75,7 +75,7 @@ class SeedDMS_Controller_Common {
if(method_exists($this, $action)) {
$refl = new ReflectionMethod($this, $action);
if($refl->isPublic())
$ret = $this->{$action}();
return $this->{$action}();
else {
echo "Action '".$action."' not public";
return false;
@ -85,12 +85,11 @@ class SeedDMS_Controller_Common {
return false;
}
} else
$ret = $this->run();
return $this->run();
} else {
return false;
}
$this->callHook('postRun', get_class($this), $action ? $action : 'run');
return $ret;
}
public function setParams($params) {
@ -317,26 +316,4 @@ class SeedDMS_Controller_Common {
}
return false;
} /* }}} */
/**
* Check if the access on the contoller with given name or the current
* controller itself may be accessed.
*
* The function requires the parameter 'accessobject' to be available in the
* controller, because it calls SeedDMS_AccessOperation::check_controller_access()
* to check access rights. If the the optional $name is not set the
* current controller is used.
*
* @param string|array $name name of controller or list of controller names
* @return boolean true if access is allowed otherwise false
*/
protected function check_access($name='') { /* {{{ */
if(!$name)
$name = $this;
if(!isset($this->params['accessobject']))
return false;
$access = $this->params['accessobject']->check_controller_access($name);
return $access;
} /* }}} */
}

View File

@ -35,9 +35,7 @@ class SeedDMS_ConversionServiceHtmlToText extends SeedDMS_ConversionServiceBase
public function convert($infile, $target = null, $params = array()) {
$d = new DOMDocument;
libxml_use_internal_errors(true);
$d->loadHTMLFile($infile);
libxml_clear_errors();
$body = $d->getElementsByTagName('body')->item(0);
$str = '';
foreach($body->childNodes as $childNode) {

View File

@ -94,12 +94,6 @@ class SeedDMS_ConversionServiceImageToImage extends SeedDMS_ConversionServiceBas
case 'image/gif':
$im = @imagecreatefromgif($infile);
break;
case 'image/webp':
$im = @imagecreatefromwebp($infile);
break;
case 'image/avif':
$im = @imagecreatefromavif($infile);
break;
}
if($im) {
$width = imagesx($im);

View File

@ -28,16 +28,16 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase
*/
public $timeout;
public function __construct($from, $to) { /* {{{ */
public function __construct($from, $to) {
parent::__construct();
$this->from = $from;
$this->to = $to;
$this->timeout = 5;
} /* }}} */
}
public function getInfo() { /* {{{ */
public function getInfo() {
return "Convert with imagick php functions";
} /* }}} */
}
public function getAdditionalParams() { /* {{{ */
return [
@ -46,7 +46,7 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase
];
} /* }}} */
public function convert($infile, $target = null, $params = array()) { /* {{{ */
public function convert($infile, $target = null, $params = array()) {
$start = microtime(true);
$imagick = new Imagick();
/* Setting a smaller resolution will speed up the conversion
@ -96,6 +96,8 @@ class SeedDMS_ConversionServicePdfToImage extends SeedDMS_ConversionServiceBase
return false;
}
return false;
} /* }}} */
}
}

View File

@ -39,48 +39,12 @@ class SeedDMS_Download_Mgr {
*/
protected $items;
/**
* @var array $folder_items list of folder content items
* @access protected
*/
protected $folder_items;
/**
* @var array $extracols list of arrays with extra columns per item
* @access protected
*/
protected $extracols;
/**
* @var array $folder_extracols list of arrays with extra columns per folder item
* @access protected
*/
protected $folder_extracols;
/**
* @var array $header list of entries in header (first line)
* @access protected
*/
protected $header;
/**
* @var array $folder_header list of entries in header (first line)
* @access protected
*/
protected $folder_header;
/**
* @var array $extraheader list of extra entries in header
* @access protected
*/
protected $extraheader;
/**
* @var array $folder_extraheader list of extra entries in header
* @access protected
*/
protected $folder_extraheader;
/**
* @var array $rawcontents list of content used instead of document content
* @access protected
@ -91,50 +55,21 @@ class SeedDMS_Download_Mgr {
* @var array $filenames filename used in archive
* @access protected
*/
protected $filenames;
/**
* @var boolean $skipdefaultcols skip default columns, will only export extracols
* @access protected
*/
protected $skipdefaultcols;
protected $filnames;
function __construct($tmpdir = '') {
$this->tmpdir = $tmpdir;
$this->items = array();
$this->folder_items = array();
$this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'));
$this->header[] = getMLText('download_header_reviewer');
$this->header[] = getMLText('download_header_review_date');
$this->header[] = getMLText('download_header_review_comment');
$this->header[] = getMLText('download_header_review_state');
$this->header[] = getMLText('download_header_approver');
$this->header[] = getMLText('download_header_approval_date');
$this->header[] = getMLText('download_header_approval_comment');
$this->header[] = getMLText('download_header_approval_state');
$this->folder_header = array(getMLText('download_header_folder_no'), getMLText('download_header_folder_name'));
$this->header = array(getMLText('download_header_document_no'), getMLText('download_header_document_name'), getMLText('download_header_filename'), getMLText('download_header_state'), getMLText('download_header_internal_version'), getMLText('download_header_reviewer'), getMLText('download_header_review_date'), getMLText('download_header_review_comment'), getMLText('download_header_review_state'), getMLText('download_header_approver'), getMLText('download_header_approval_date'), getMLText('download_header_approval_comment'), getMLText('download_header_approval_state'));
$this->extracols = array();
$this->folder_extracols = array();
$this->rawcontents = array();
$this->extraheader = array();
$this->folder_extraheader = array();
$this->filenames = array();
$this->includereviewers = false;
$this->includeapprovers = false;
}
public function skipDefaultCols($v) { /* {{{ */
$this->skipdefaultcols = (bool) $v;
} /* }}} */
public function addHeader($extraheader) { /* {{{ */
$this->extraheader = $extraheader;
} /* }}} */
public function addFolderHeader($extraheader) { /* {{{ */
$this->folder_extraheader = $extraheader;
} /* }}} */
public function addItem($item, $extracols=array(), $rawcontent='', $filename='') { /* {{{ */
$this->items[$item->getID()] = $item;
$this->extracols[$item->getID()] = $extracols;
@ -142,44 +77,34 @@ class SeedDMS_Download_Mgr {
$this->filenames[$item->getID()] = $filename;
} /* }}} */
public function addFolderItem($item, $extracols=array()) { /* {{{ */
$this->folder_items[$item->getID()] = $item;
$this->folder_extracols[$item->getID()] = $extracols;
} /* }}} */
public function createToc($file) { /* {{{ */
$items = $this->items;
$objPHPExcel = new PhpOffice\PhpSpreadsheet\Spreadsheet();
$objPHPExcel->setValueBinder(new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder());
$objPHPExcel->getProperties()->setCreator("SeedDMS")->setTitle("Metadata");
if($items = $this->items) {
$sheet = $objPHPExcel->setActiveSheetIndex(0);
$sheet->setTitle(getMLText('documents'));
$i = 1;
$col = 1;
if(!$this->skipdefaultcols)
foreach($this->header as $h)
$sheet->setCellValue([$col++, $i], $h);
$col = 0;
foreach($this->header as $h)
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
foreach($this->extraheader as $h)
$sheet->setCellValue([$col++, $i], $h);
$sheet->setCellValueByColumnAndRow($col++, $i, $h);
$i++;
foreach($items as $item) {
if($item->isType('documentcontent')) {
$document = $item->getDocument();
$dms = $document->_dms;
$status = $item->getStatus();
$reviewStatus = $item->getReviewStatus();
$approvalStatus = $item->getApprovalStatus();
$col = 1;
$l = $i; // Number of reviewers
$k = $i; // Number of approvers
if(!$this->skipdefaultcols) {
$sheet->setCellValue([$col++, $i], $document->getID());
$sheet->setCellValue([$col++, $i], $document->getName());
$sheet->setCellValue([$col++, $i], $document->getID()."-".$item->getOriginalFileName());
$sheet->setCellValue([$col++, $i], getOverallStatusText($status['status']));
$sheet->setCellValue([$col++, $i], $item->getVersion());
$col = 0;
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getID());
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getName());
$sheet->setCellValueByColumnAndRow($col++, $i, $document->getID()."-".$item->getOriginalFileName());
$sheet->setCellValueByColumnAndRow($col++, $i, getOverallStatusText($status['status']));
$sheet->setCellValueByColumnAndRow($col++, $i, $item->getVersion());
$l = $i;
$k = $i;
if($reviewStatus) {
foreach ($reviewStatus as $r) {
switch ($r["type"]) {
@ -201,11 +126,11 @@ class SeedDMS_Download_Mgr {
break;
}
$tcol = $col;
$sheet->setCellValue([$tcol++, $l], $reqName);
$sheet->setCellValue([$tcol, $l], ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
$sheet->getStyle([$tcol++, $l])->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
$sheet->setCellValue([$tcol++, $l], $r['comment']);
$sheet->setCellValue([$tcol++, $l], getReviewStatusText($r["status"]));
$sheet->setCellValueByColumnAndRow($tcol++, $l, $reqName);
$sheet->setCellValueByColumnAndRow($tcol, $l, ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
$sheet->getStyleByColumnAndRow($tcol++, $l)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
$sheet->setCellValueByColumnAndRow($tcol++, $l, $r['comment']);
$sheet->setCellValueByColumnAndRow($tcol++, $l, getReviewStatusText($r["status"]));
$l++;
}
$l--;
@ -232,61 +157,23 @@ class SeedDMS_Download_Mgr {
break;
}
$tcol = $col;
$sheet->setCellValue([$tcol++, $k], $reqName);
$sheet->setCellValue([$tcol, $k], ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
$sheet->getStyle([$tcol++, $k])->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
$sheet->setCellValue([$tcol++, $k], $r['comment']);
$sheet->setCellValue([$tcol++, $k], getApprovalStatusText($r["status"]));
$sheet->setCellValueByColumnAndRow($tcol++, $k, $reqName);
$sheet->setCellValueByColumnAndRow($tcol, $k, ($r['status']==1 || $r['status']==-1) ? \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(new DateTime($r['date'])) : null);
$sheet->getStyleByColumnAndRow($tcol++, $k)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME);
$sheet->setCellValueByColumnAndRow($tcol++, $k, $r['comment']);
$sheet->setCellValueByColumnAndRow($tcol++, $k, getApprovalStatusText($r["status"]));
$k++;
}
$k--;
}
$col += 4;
}
if(isset($this->extracols[$item->getID()]) && $this->extracols[$item->getID()]) {
foreach($this->extracols[$item->getID()] as $column)
$sheet->setCellValue([$col++, $i], is_array($column) ? implode("\n", $column) : $column );
$sheet->setCellValueByColumnAndRow($col++, $i, is_array($column) ? implode("\n", $column) : $column );
}
$i = max($l, $k);
$i++;
}
}
}
if($items = $this->folder_items) {
if($this->items)
$sheet = $objPHPExcel->createSheet($i);
else
$sheet = $objPHPExcel->setActiveSheetIndex(0);
$sheet->setTitle(getMLText('folders'));
$i = 1;
$col = 1;
if(!$this->skipdefaultcols)
foreach($this->folder_header as $h)
$sheet->setCellValue([$col++, $i], $h);
foreach($this->folder_extraheader as $h)
$sheet->setCellValue([$col++, $i], $h);
$i++;
$items = $this->folder_items;
foreach($items as $item) {
if($item->isType('folder')) {
$folder = $item;
$dms = $folder->_dms;
$col = 1;
if(!$this->skipdefaultcols) {
$sheet->setCellValue([$col++, $i], $folder->getID());
$sheet->setCellValue([$col++, $i], $folder->getName());
}
if(isset($this->folder_extracols[$item->getID()]) && $this->folder_extracols[$item->getID()]) {
foreach($this->folder_extracols[$item->getID()] as $column)
$sheet->setCellValue([$col++, $i], is_array($column) ? implode("\n", $column) : $column );
}
$i++;
}
}
}
$objWriter = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($objPHPExcel);
$objWriter->save($file);

View File

@ -46,13 +46,11 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
protected $from_address;
protected $force_from;
protected $lazy_ssl;
protected $debug;
function __construct($dms, $from_address='', $smtp_server='', $smtp_port='', $smtp_username='', $smtp_password='', $lazy_ssl=true, $force_from=false) { /* {{{ */
function __construct($dms, $from_address='', $smtp_server='', $smtp_port='', $smtp_username='', $smtp_password='', $lazy_ssl=true) { /* {{{ */
$this->_dms = $dms;
$this->smtp_server = $smtp_server;
$this->smtp_port = $smtp_port;
@ -60,7 +58,6 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
$this->smtp_password = $smtp_password;
$this->from_address = $from_address;
$this->lazy_ssl = $lazy_ssl;
$this->force_from = $force_from;
$this->debug = false;
} /* }}} */
@ -104,13 +101,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
return false;
$returnpath = $this->from_address;
if($this->force_from && $this->from_address) {
if(is_object($sender) && !strcasecmp(get_class($sender), $this->_dms->getClassname('user'))) {
$from = $sender->getFullName() ." <". $this->from_address .">";
} else {
$from = $this->from_address;
}
} elseif(is_object($sender) && !strcasecmp(get_class($sender), $this->_dms->getClassname('user'))) {
if(is_object($sender) && !strcasecmp(get_class($sender), $this->_dms->getClassname('user'))) {
$from = $sender->getFullName() ." <". $sender->getEmail() .">";
if(!$returnpath)
$returnpath = $sender->getEmail();
@ -122,6 +113,7 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
$from = $this->from_address;
}
$body = '';
if(!isset($params['__skip_header__']) || !$params['__skip_header__']) {
if(!isset($params['__header__']))
@ -205,8 +197,8 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
if($returnpath)
$headers['Return-Path'] = $returnpath;
$headers['To'] = $to;
$preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8", "scheme"=>"Q");
$encoded_subject = iconv_mime_encode("Subject", getMLText($subject, $params, null, $lang), $preferences);
$preferences = array("input-charset" => "UTF-8", "output-charset" => "UTF-8");
$encoded_subject = iconv_mime_encode("Subject", getMLText($subject, $params, "", $lang), $preferences);
$headers['Subject'] = substr($encoded_subject, strlen('Subject: '));
$headers['Date'] = date('r', time());
$headers['MIME-Version'] = "1.0";
@ -279,12 +271,10 @@ class SeedDMS_EmailNotify extends SeedDMS_Notify {
* The dispatching is now done in SeedDMS_NotificationService::toList()
*/
function toList($sender, $recipients, $subject, $message, $params=array()) { /* {{{ */
/*
if ((!is_object($sender) && strcasecmp(get_class($sender), $this->_dms->getClassname('user'))) ||
(!is_array($recipients) && count($recipients)==0)) {
return false;
}
*/
$ret = true;
foreach ($recipients as $recipient) {

View File

@ -148,10 +148,6 @@ class SeedDMS_Extension_Mgr {
}
} /* }}} */
public function getRepositoryUrl() { /* {{{ */
return $this->reposurl;
} /* }}} */
private function getStreamContext() { /* {{{ */
if(!$this->proxyurl)
return null;
@ -210,19 +206,13 @@ class SeedDMS_Extension_Mgr {
$fp = @fopen(self::getExtensionsConfFile(), "w");
if($fp) {
if($extensions) {
$EXT_CONF = [];
foreach($extensions as $_ext) {
if(file_exists($this->extdir . "/" . $_ext . "/conf.php")) {
include $this->extdir . "/" . $_ext . "/conf.php";
// $content = file_get_contents($this->extdir . "/" . $_ext . "/conf.php");
// fwrite($fp, $content);
$content = file_get_contents($this->extdir . "/" . $_ext . "/conf.php");
fwrite($fp, $content);
}
}
}
// fclose($fp);
// $fp = @fopen(self::getExtensionsConfFile(), "w");
fwrite($fp, '<?php
$EXT_CONF = '.var_export($EXT_CONF, true).';');
fclose($fp);
return true;
} else {
@ -412,7 +402,7 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
*/
public function checkExtensionByName($extname, $extconf, $options=array()) { /* {{{ */
if(isset($this->configcache[$extname])) {
// return $this->configcache[$extname];
return $this->configcache[$extname];
}
$this->errmsgs = array();
@ -500,6 +490,19 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
return $this->configcache[$extname];
} /* }}} */
static protected function rrmdir($dir) { /* {{{ */
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") self::rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
} /* }}} */
/**
* Update an extension
*
@ -515,7 +518,7 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
$newdir = addDirSep($this->cachedir)."ext.new";
/* First remove a left over from a previous extension */
if(file_exists($newdir)) {
SeedDMS_Utils::rrmdir($newdir);
self::rrmdir($newdir);
}
if(!mkdir($newdir, 0755)) {
$this->errmsgs[] = "Cannot create temp. extension directory";
@ -535,7 +538,7 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
/* Check if extension is complete and fullfills the constraints */
if(!self::checkExtensionByDir($newdir)) {
SeedDMS_Utils::rrmdir($newdir);
self::rrmdir($newdir);
return false;
}
@ -546,11 +549,11 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
if(!is_dir($this->extdir)) {
if(!mkdir($this->extdir, 0755)) {
$this->errmsgs[] = "Cannot create extension directory";
SeedDMS_Utils::rrmdir($newdir);
self::rrmdir($newdir);
return false;
}
} elseif(is_dir($this->extdir ."/". $extname)) {
SeedDMS_Utils::rrmdir($this->extdir ."/". $extname);
$this->rrmdir($this->extdir ."/". $extname);
}
/* Move the temp. created ext directory to the final location */
/* rename() may fail if dirs are moved from one device to another.
@ -562,17 +565,13 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
* location and leave the extracted archive in place. The next time an
* extension is imported the last extracted archive will be removed.
*/
if(strpos(PHP_OS, 'WIN') === 0)
$ret = rename($newdir, $this->extdir ."/". $extname);
else
$ret = exec('mv '.escapeshellarg($newdir).' '.escapeshellarg($this->extdir."/".$extname));
if(false === $ret) {
// if(!rename($newdir, $this->extdir ."/". $extname)) {
if(false === exec('mv '.escapeshellarg($newdir).' '.escapeshellarg($this->extdir."/".$extname))) {
/* If copy didn't succeed, then there is probably nothing to delete,
* but do it anyway, just to be sure not just parts of the extension
* has been copied.
*/
$this->errmsgs[] = "Cannot move temp. extension directory to final destination";
SeedDMS_Utils::rrmdir($this->extdir ."/". $extname);
$this->rrmdir($this->extdir ."/". $extname);
return false;
}
@ -616,15 +615,14 @@ $EXT_CONF = '.var_export($EXT_CONF, true).';');
$result = array();
$vcache = array(); // keep highest version of extension
foreach($list as $e) {
if($e[0] != '#' && trim($e)) {
if($re = json_decode($e, true)) {
if(!isset($result[$re['name']])) {
$result[$re['name']] = $re;
$vcache[$re['name']] = $re['version'];
} elseif(self::cmpVersion($re['version'], $vcache[$re['name']]) > 0) {
$result[$re['name']] = $re;
$vcache[$re['name']] = $re['version'];
}
if($e[0] != '#') {
$re = json_decode($e, true);
if(!isset($result[$re['name']])) {
$result[$re['name']] = $re;
$vcache[$re['name']] = $re['version'];
} elseif(self::cmpVersion($re['version'], $vcache[$re['name']]) > 0) {
$result[$re['name']] = $re;
$vcache[$re['name']] = $re['version'];
}
}
}

View File

@ -209,7 +209,7 @@ class SeedDMS_FulltextService {
if($this->index)
return $this->index;
if($this->services) {
if($this->services[0]) {
if($recreate)
$this->index = $this->services[0]['Indexer']::create($this->services[0]['Conf']);
else
@ -222,7 +222,7 @@ class SeedDMS_FulltextService {
public function Search() { /* {{{ */
if($this->search)
return $this->search;
if($this->services) {
if($this->services[0]) {
$this->search = new $this->services[0]['Search']($this->index);
return $this->search;
} else {

View File

@ -29,17 +29,15 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication {
var $settings;
protected function addUser($username, $info) {
$mailfield = !empty($this->settings->_ldapMailField) ? $this->settings->_ldapMailField : 'mail';
return $this->dms->addUser($username, null, $info['cn'][0], isset($info[$mailfield]) ? $info[$mailfield][0] : '', $this->settings->_language, $this->settings->_theme, "User was added from LDAP");
return $this->dms->addUser($username, null, $info['cn'][0], isset($info['mail']) ? $info['mail'][0] : '', $this->settings->_language, $this->settings->_theme, "User was added from LDAP");
}
protected function updateUser($user, $info) {
$mailfield = !empty($this->settings->_ldapMailField) ? $this->settings->_ldapMailField : 'mail';
if(isset($info['cn'][0]) && ($info['cn'][0] != $user->getFullName())) {
$user->setFullName($info['cn'][0]);
}
if(isset($info[$mailfield][0]) && ($info[$mailfield][0] != $user->getEmail())) {
$user->setEmail($info[$mailfield][0]);
if(isset($info['mail'][0]) && ($info['mail'][0] != $user->getEmail())) {
$user->setEmail($info['mail'][0]);
}
}
@ -170,7 +168,7 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication {
if($settings->_enableLoginByEmail) {
$ldapsearchterm = "|(".$ldapsearchterm.")(mail=".$username.")";
}
/* If a ldap filter is set, it will be added */
/* If a ldap filter is set, it will be anded */
if($settings->_ldapFilter) {
$ldapsearchterm = "&(".$ldapsearchterm.")".$settings->_ldapFilter;
}
@ -201,7 +199,7 @@ class SeedDMS_LdapAuthentication extends SeedDMS_Authentication {
if (!is_bool($info) && $info["count"]>0) {
$dn = $info[0]['dn'];
/* Set username to login name in case the email was used for authentication */
$username = $info[0][strtolower($ldapSearchAttribut)][0];
$username = $info[0][$ldapSearchAttribut][0];
}
}
} elseif(!empty($settings->_enableLoginByEmail)) {

View File

@ -51,8 +51,6 @@ class SeedDMS_NotificationService {
const RECV_APPROVER = 4;
const RECV_WORKFLOW = 5;
const RECV_UPLOADER = 6;
const RECV_REVISOR = 7;
const RECV_RECIPIENT = 8;
public function __construct($logger = null, $settings = null) { /* {{{ */
$this->services = array();
@ -573,7 +571,7 @@ class SeedDMS_NotificationService {
* the currently logged in user is not the
* owner and the owner is not already in the list of notifiers.
*/
if($user->getID() != $content->getUser()->getID() && $content->getUser()->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $notifyList['users']))
if($user->getID() != $content->getUser()->getID() && $content->getUser()->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users']))
$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER);
} /* }}} */
@ -1177,80 +1175,6 @@ class SeedDMS_NotificationService {
$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER);
} /* }}} */
public function sendSubmittedReceiptMail($content, $user, $receiptlog) { /* {{{ */
$document = $content->getDocument();
$nl=$document->getNotifyList();
$folder = $document->getFolder();
$subject = "receipt_submit_email_subject";
$message = "receipt_submit_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['version'] = $content->getVersion();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['status'] = getReceiptStatusText($receiptlog["status"]);
$params['comment'] = $receiptlog['comment'];
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
$this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
foreach ($nl["groups"] as $grp) {
$this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
/* Send mail to owner only if the currently logged in user is not the
* owner and the owner is not already in the list of notifiers.
*/
/*
if($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users']))
$this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER);
*/
/* Send mail to uploader of version only if the uploader is not the owner and
* the currently logged in user is not the
* owner and the owner is not already in the list of notifiers.
*/
if($user->getID() != $content->getUser()->getID() /* && $content->getUser()->getID() != $document->getOwner()->getID() */ && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users']))
$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER);
} /* }}} */
public function sendSubmittedRevisionMail($content, $user, $revisionlog) { /* {{{ */
$document = $content->getDocument();
$nl=$document->getNotifyList();
$folder = $document->getFolder();
$subject = "revision_submit_email_subject";
$message = "revision_submit_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['version'] = $content->getVersion();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['status'] = getRevisionStatusText($revisionlog["status"]);
$params['comment'] = $revisionlog['comment'];
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
$this->toList($user, $nl["users"], $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
foreach ($nl["groups"] as $grp) {
$this->toGroup($user, $grp, $subject, $message, $params, SeedDMS_NotificationService::RECV_NOTIFICATION);
}
/* Send mail to owner only if the currently logged in user is not the
* owner and the owner is not already in the list of notifiers.
*/
/*
if($user->getID() != $document->getOwner()->getID() && false === SeedDMS_Core_DMS::inList($document->getOwner(), $nl['users']))
$this->toIndividual($user, $document->getOwner(), $subject, $message, $params, SeedDMS_NotificationService::RECV_OWNER);
*/
/* Send mail to uploader of version only if the uploader is not the owner and
* the currently logged in user is not the
* owner and the owner is not already in the list of notifiers.
*/
if($user->getID() != $content->getUser()->getID() /* && $content->getUser()->getID() != $document->getOwner()->getID() */ && false === SeedDMS_Core_DMS::inList($content->getUser(), $nl['users']))
$this->toIndividual($user, $content->getUser(), $subject, $message, $params, SeedDMS_NotificationService::RECV_UPLOADER);
} /* }}} */
public function sendDeleteApprovalMail($content, $user, $approver) { /* {{{ */
$document = $content->getDocument();
$folder = $document->getFolder();
@ -1284,11 +1208,7 @@ class SeedDMS_NotificationService {
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($reviewer->isType('user'))
$params['reviewer'] = $reviewer->getFullName();
elseif($reviewer->isType('group'))
$params['reviewer'] = $reviewer->getName();
$params['username'] = $user->getName();
$params['username'] = $user->getFullName();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
@ -1299,58 +1219,6 @@ class SeedDMS_NotificationService {
$this->toGroup($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER);
} /* }}} */
public function sendDeleteRevisionMail($content, $user, $revisor) { /* {{{ */
$document = $content->getDocument();
$folder = $document->getFolder();
$subject = "revision_deletion_email_subject";
$message = "revision_deletion_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($revisor->isType('user'))
$params['revisor'] = $revisor->getFullName();
elseif($revisor->isType('group'))
$params['revisor'] = $revisor->getName();
$params['username'] = $user->getFullName();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
if($revisor->isType('user'))
$this->toIndividual($user, $revisor, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVISOR);
elseif($revisor->isType('group'))
$this->toGroup($user, $revisor, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVISOR);
} /* }}} */
public function sendDeleteReceiptMail($content, $user, $recipient) { /* {{{ */
$document = $content->getDocument();
$folder = $document->getFolder();
$subject = "receipt_deletion_email_subject";
$message = "receipt_deletion_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($recipient->isType('user'))
$params['recipient'] = $recipient->getFullName();
elseif($recipient->isType('group'))
$params['recipient'] = $recipient->getName();
$params['username'] = $user->getFullName();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
if($recipient->isType('user'))
$this->toIndividual($user, $recipient, $subject, $message, $params, SeedDMS_NotificationService::RECV_RECIPIENT);
elseif($recipient->isType('group'))
$this->toGroup($user, $recipient, $subject, $message, $params, SeedDMS_NotificationService::RECV_RECIPIENT);
} /* }}} */
/**
* This notification is send if a new approver is added.
*
@ -1402,10 +1270,6 @@ class SeedDMS_NotificationService {
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($reviewer->isType('user'))
$params['reviewer'] = $reviewer->getFullName();
elseif($reviewer->isType('group'))
$params['reviewer'] = $reviewer->getName();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
@ -1417,89 +1281,6 @@ class SeedDMS_NotificationService {
$this->toGroup($user, $reviewer, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVIEWER);
} /* }}} */
public function sendAddRevisionMail($content, $user, $revisor) { /* {{{ */
$document = $content->getDocument();
$folder = $document->getFolder();
$subject = "revision_request_email_subject";
$message = "revision_request_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($revisor->isType('user'))
$params['revisor'] = $revisor->getFullName();
elseif($revisor->isType('group'))
$params['revisor'] = $user->getName();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($revisor->isType('user'))
$this->toIndividual($user, $revisor, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVISOR);
elseif($revisor->isType('group'))
$this->toGroup($user, $revisor, $subject, $message, $params, SeedDMS_NotificationService::RECV_REVISOR);
} /* }}} */
public function sendAddReceiptMail($content, $user, $recipient) { /* {{{ */
$document = $content->getDocument();
$folder = $document->getFolder();
$subject = "receipt_request_email_subject";
$message = "receipt_request_email_body";
$params = array();
$params['name'] = $document->getName();
$params['document_id'] = $document->getId();
$params['folder_path'] = $folder->getFolderPathPlain();
$params['version'] = $content->getVersion();
$params['comment'] = $content->getComment();
if($recipient->isType('user'))
$params['recipient'] = $recipient->getFullName();
elseif($recipient->isType('group'))
$params['recipient'] = $user->getName();
$params['username'] = $user->getFullName();
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
$params['sitename'] = $this->settings->_siteName;
$params['http_root'] = $this->settings->_httpRoot;
if($recipient->isType('user'))
$this->toIndividual($user, $recipient, $subject, $message, $params, SeedDMS_NotificationService::RECV_RECIPIENT);
elseif($recipient->isType('group'))
$this->toGroup($user, $recipient, $subject, $message, $params, SeedDMS_NotificationService::RECV_RECIPIENT);
} /* }}} */
/**
* Send a request receipt notification to all recipients of the document content
*
* This method can be called when the status of a document content changes
* to 'released'. The recipients haven't been informed when the
* document content was created but not immediatly released.
*/
public function sendToAllReceiptMail($content, $user) { /* {{{ */
$dms = $content->getDMS();
$receiptStatus = $content->getReceiptStatus();
if (!empty($receiptStatus)) {
foreach ($receiptStatus as $r) {
if($r['status'] == 0) {
switch ($r["type"]) {
case 0: // Recipient is an individual.
if($recipient = $dms->getUser($r["required"]))
$this->sendAddReceiptMail($content, $user, $recipient);
break;
case 1: // Recipient is a group.
if($recipient = $dms->getGroup($r["required"]))
$this->sendAddReceiptMail($content, $user, $recipient);
break;
}
}
}
}
} /* }}} */
public function sendChangedDocumentOwnerMail($document, $user, $oldowner) { /* {{{ */
if($oldowner->getID() != $document->getOwner()->getID()) {
$notifyList = $document->getNotifyList();

View File

@ -1,74 +0,0 @@
<?php
/**
* Implementation of an SchedulerTask.
*
* SeedDMS can be extended by extensions. Extension usually implement
* hook.
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2018 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class to represent a SchedulerTask
*
* This class provides some very basic methods to manage extensions.
*
* @category DMS
* @package SeedDMS
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2011 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_Scheduler {
/**
* Instanz of database
*/
protected $db;
public function getTask($id) { /* {{{ */
return SeedDMS_SchedulerTask::getInstance($id, $this->db);
} /* }}} */
public function getTasksByExtension($extname, $taskname) { /* {{{ */
return SeedDMS_SchedulerTask::getInstancesByExtension($extname, $taskname, $this->db);
} /* }}} */
public function getTasks() { /* {{{ */
return SeedDMS_SchedulerTask::getInstances($this->db);
} /* }}} */
public function addTask($extname, $taskname, $name, $description, $frequency, $disabled, $params) { /* {{{ */
$db = $this->db;
if(!$extname)
return false;
if(!$taskname)
return false;
try {
$cron = Cron\CronExpression::factory($frequency);
} catch (Exception $e) {
return false;
}
$nextrun = $cron->getNextRunDate()->format('Y-m-d H:i:s');
$queryStr = "INSERT INTO `tblSchedulerTask` (`extension`, `task`, `name`, `description`, `frequency`, `disabled`, `params`, `nextrun`, `lastrun`) VALUES (".$db->qstr($extname).", ".$db->qstr($taskname).", ".$db->qstr($name).", ".$db->qstr($description).", ".$db->qstr($frequency).", ".intval($disabled).", ".$db->qstr(json_encode($params)).", '".$nextrun."', NULL)";
$res = $db->getResult($queryStr);
if (!$res)
return false;
$task = SeedDMS_SchedulerTask::getInstance($db->getInsertID('tblSchedulerTask'), $db);
return $task;
} /* }}} */
function __construct($db) {
$this->db = $db;
}
}

View File

@ -1,347 +0,0 @@
<?php
/**
* Implementation of an SchedulerTask.
*
* SeedDMS can be extended by extensions. Extension usually implement
* hook.
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2018 Uwe Steinmann
* @version Release: @package_version@
*/
/**
* Class to represent a SchedulerTask
*
* This class provides some very basic methods to manage extensions.
*
* @category DMS
* @package SeedDMS
* @author Markus Westphal, Malcolm Cowe, Uwe Steinmann <uwe@steinmann.cx>
* @copyright 2011 Uwe Steinmann
* @version Release: @package_version@
*/
class SeedDMS_SchedulerTask {
/**
* Instanz of database
*/
protected $db;
/**
* @var integer unique id of task
*/
protected $_id;
/**
* @var string name of task
*/
protected $_name;
/**
* @var string description of task
*/
protected $_description;
/**
* @var string extension of task
*/
protected $_extension;
/**
* @var string task of task
*/
protected $_task;
/**
* @var string frequency of task
*/
protected $_frequency;
/**
* @var integer set if disabled
*/
protected $_disabled;
/**
* @var array list of parameters
*/
protected $_params;
/**
* @var integer last run
*/
protected $_lastrun;
/**
* @var integer next run
*/
protected $_nextrun;
public static function getInstance($id, $db) { /* {{{ */
$queryStr = "SELECT * FROM `tblSchedulerTask` WHERE `id` = " . (int) $id;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr == false)
return false;
if (count($resArr) != 1)
return null;
$row = $resArr[0];
$task = new self($row["id"], $row['name'], $row["description"], $row["extension"], $row["task"], $row["frequency"], $row['disabled'], json_decode($row['params'], true), $row["nextrun"], $row["lastrun"]);
$task->setDB($db);
return $task;
} /* }}} */
public static function getInstances($db) { /* {{{ */
$queryStr = "SELECT * FROM `tblSchedulerTask`";
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr == false)
return false;
if (count($resArr) == 0)
return array();
$tasks = array();
foreach($resArr as $row) {
$task = new self($row["id"], $row['name'], $row["description"], $row["extension"], $row["task"], $row["frequency"], $row['disabled'], json_decode($row['params'], true), $row["nextrun"], $row["lastrun"]);
$task->setDB($db);
$tasks[] = $task;
}
return $tasks;
} /* }}} */
public static function getInstancesByExtension($extname, $taskname, $db) { /* {{{ */
$queryStr = "SELECT * FROM `tblSchedulerTask` WHERE `extension` = '".$extname."' AND `task` = '".$taskname."'";
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr == false)
return false;
if (count($resArr) == 0)
return array();
$tasks = array();
foreach($resArr as $row) {
$task = new self($row["id"], $row['name'], $row["description"], $row["extension"], $row["task"], $row["frequency"], $row['disabled'], json_decode($row['params'], true), $row["nextrun"], $row["lastrun"]);
$task->setDB($db);
$tasks[] = $task;
}
return $tasks;
} /* }}} */
function __construct($id, $name, $description, $extension, $task, $frequency, $disabled, $params, $nextrun, $lastrun) {
$this->_id = $id;
$this->_name = $name;
$this->_description = $description;
$this->_extension = $extension;
$this->_task = $task;
$this->_frequency = $frequency;
$this->_disabled = $disabled;
$this->_params = $params;
$this->_nextrun = $nextrun;
$this->_lastrun = $lastrun;
}
public function setDB($db) {
$this->db = $db;
}
public function getID() {
return $this->_id;
}
public function getName() {
return $this->_name;
}
public function setName($newName) { /* {{{ */
$db = $this->db;
$queryStr = "UPDATE `tblSchedulerTask` SET `name` =".$db->qstr($newName)." WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_name = $newName;
return true;
} /* }}} */
public function getDescription() {
return $this->_description;
}
public function setDescription($newDescripion) { /* {{{ */
$db = $this->db;
$queryStr = "UPDATE `tblSchedulerTask` SET `description` =".$db->qstr($newDescripion)." WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_description = $newDescripion;
return true;
} /* }}} */
public function getExtension() {
return $this->_extension;
}
public function getTask() {
return $this->_task;
}
public function getFrequency() {
return $this->_frequency;
}
public function setFrequency($newFrequency) { /* {{{ */
$db = $this->db;
try {
$cron = Cron\CronExpression::factory($newFrequency);
} catch (Exception $e) {
return false;
}
$nextrun = $cron->getNextRunDate()->format('Y-m-d H:i:s');
$queryStr = "UPDATE `tblSchedulerTask` SET `frequency` =".$db->qstr($newFrequency).", `nextrun` = '".$nextrun."' WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_frequency = $newFrequency;
$this->_nextrun = $nextrun;
return true;
} /* }}} */
public function getNextRun() {
return $this->_nextrun;
}
public function getLastRun() {
return $this->_lastrun;
}
public function getDisabled() {
return $this->_disabled;
}
public function setDisabled($newDisabled) { /* {{{ */
$db = $this->db;
$queryStr = "UPDATE `tblSchedulerTask` SET `disabled` =".intval($newDisabled)." WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_disabled = $newDisabled;
return true;
} /* }}} */
public function setParameter($newParams) { /* {{{ */
$db = $this->db;
$queryStr = "UPDATE `tblSchedulerTask` SET `params` =".$db->qstr(json_encode($newParams))." WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_params = $newParams;
return true;
} /* }}} */
public function getParameter($name = '') {
if($name)
return isset($this->_params[$name]) ? $this->_params[$name] : null;
return $this->_params;
}
/**
* Check if task is due
*
* This methods compares the current time with the time in the database
* field `nextrun`.
* If nextrun is smaller than the current time, the the task is due.
* The methode does not rely on the value in the class variable `_nextrun`,
* because that value could be 'very old', retrieved at a time
* when the task list was fetched for checking due tasks e.g. by the
* scheduler client. There is good reason to always take the current
* value of nextrun from the database.
*
* Assuming there are two tasks. Task 1 takes 13 mins and task 2 takes only
* 30 sec. Task 1 is run every hour and task 2 starts at 8:06. The cronjob
* runs every 5 min. At e.g. 8:00 the list of tasks is read from the database
* task 1 is due and starts running and before it runs it sets the database
* field nextrun to 9:00. Task 2 isn't due at that time.
* At 8:05 the cron job runs again, task 1 has already a new nextrun value
* and will not run again. Task 2 isn't due yet and task 1 started at 8:00 is
* still running.
* At 8:10 task 1 is still running an not due again, but task 2 is due and
* will be run. The database field `nextrun` of task 2 will be set to 8:06
* on the next day.
* At 8:13 task 1 which started at 8:00 is finished and the list of tasks
* from that time will be processed further. Task 2 still has the old value
* in the class variable `_nextrun` (8:06 the current day),
* though the database field `nextrun` has been updated in
* between. Taking the value of the class variable would rerun task 2 again,
* though it ran at 8:10 already.
* That's why this method always takes the current value of nextrun
* from the database.
*
* @return boolean true if task is due, otherwise false
*/
public function isDue() {
$db = $this->db;
$queryStr = "SELECT * FROM `tblSchedulerTask` WHERE `id` = " . $this->_id;
$resArr = $db->getResultArray($queryStr);
if (is_bool($resArr) && $resArr == false)
return false;
if (count($resArr) != 1)
return false;
$row = $resArr[0];
$this->_nextrun = $row['nextrun'];
return $this->_nextrun < date('Y-m-d H:i:s');
}
public function updateLastNextRun() {
$db = $this->db;
$lastrun = date('Y-m-d H:i:s');
try {
$cron = Cron\CronExpression::factory($this->_frequency);
$nextrun = $cron->getNextRunDate()->format('Y-m-d H:i:s');
} catch (Exception $e) {
$nextrun = null;
}
$queryStr = "UPDATE `tblSchedulerTask` SET `lastrun`=".$db->qstr($lastrun).", `nextrun`=".($nextrun ? $db->qstr($nextrun) : "NULL")." WHERE `id` = " . $this->_id;
$res = $db->getResult($queryStr);
if (!$res)
return false;
$this->_lastrun = $lastrun;
$this->_nextrun = $nextrun;
}
/**
* Delete task
*
* @return boolean true on success or false in case of an error
*/
function remove() { /* {{{ */
$db = $this->db;
$queryStr = "DELETE FROM `tblSchedulerTask` WHERE `id` = " . $this->_id;
if (!$db->getResult($queryStr)) {
return false;
}
return true;
} /* }}} */
}

View File

@ -1,139 +0,0 @@
<?php
/***************************************************************
* Copyright notice
*
* (c) 2018 Uwe Steinmann <uwe@steinmann.cx>
* All rights reserved
*
* This script is part of the SeedDMS project. The SeedDMS project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* Base class for scheduler task
*
* @author Uwe Steinmann <uwe@steinmann.cx>
* @package SeedDMS
*/
class SeedDMS_SchedulerTaskBase {
var $dms;
var $user;
var $settings;
var $logger;
var $fulltextservice;
var $notifier;
var $conversionmgr;
/**
* Call a hook with a given name
*
* Checks if a hook with the given name and for the current task
* exists and executes it. The name of the current task is taken
* from the current class name by lower casing the first char.
* This function will execute all registered hooks in the order
* they were registered.
*
* Attention: as func_get_arg() cannot handle references passed to the hook,
* callHook() should not be called if that is required. In that case get
* a list of hook objects with getHookObjects() and call the hooks yourself.
*
* @params string $hook name of hook
* @return string concatenated string, merged arrays or whatever the hook
* function returns
*/
public function callHook($hook) { /* {{{ */
$tmps = array();
$tmp = explode('_', get_class($this));
$tmps[] = $tmp[1];
$tmp = explode('_', get_parent_class($this));
$tmps[] = $tmp[1];
/* Run array_unique() in case the parent class has the same suffix */
$tmps = array_unique($tmps);
$ret = null;
foreach($tmps as $tmp)
if(isset($GLOBALS['SEEDDMS_HOOKS']['task'][lcfirst($tmp)])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['task'][lcfirst($tmp)] as $hookObj) {
if (method_exists($hookObj, $hook)) {
switch(func_num_args()) {
case 1:
$tmpret = $hookObj->$hook($this);
break;
case 2:
$tmpret = $hookObj->$hook($this, func_get_arg(1));
break;
case 3:
$tmpret = $hookObj->$hook($this, func_get_arg(1), func_get_arg(2));
break;
case 4:
$tmpret = $hookObj->$hook($this, func_get_arg(1), func_get_arg(2), func_get_arg(3));
break;
default:
case 5:
$tmpret = $hookObj->$hook($this, func_get_arg(1), func_get_arg(2), func_get_arg(3), func_get_arg(4));
break;
}
if($tmpret !== null) {
if(is_string($tmpret)) {
$ret = ($ret === null) ? $tmpret : (is_string($ret) ? $ret.$tmpret : array_merge($ret, array($tmpret)));
} elseif(is_array($tmpret) || is_object($tmpret)) {
$ret = ($ret === null) ? $tmpret : (is_string($ret) ? array_merge(array($ret), $tmpret) : array_merge($ret, $tmpret));
} else
$ret = $tmpret;
}
}
}
}
return $ret;
} /* }}} */
public function __construct($dms=null, $user=null, $settings=null, $logger=null, $fulltextservice=null, $notifier=null, $conversionmgr=null) { /* {{{ */
$this->dms = $dms;
$this->user = $user;
$this->settings = $settings;
$this->logger = $logger;
$this->fulltextservice = $fulltextservice;
$this->notifier = $notifier;
$this->conversionmgr = $conversionmgr;
} /* }}} */
public function execute(SeedDMS_SchedulerTask $task) { /* {{{ */
return true;
} /* }}} */
public function getDescription() { /* {{{ */
return '';
} /* }}} */
public function getAdditionalParams() { /* {{{ */
return array();
} /* }}} */
public function getAdditionalParamByName($name) { /* {{{ */
foreach($this->getAdditionalParams() as $param) {
if($param['name'] == $name)
return $param;
}
return null;
} /* }}} */
}
?>

View File

@ -286,24 +286,6 @@ class SeedDMS_Session {
return (array) $this->data['clipboard'];
} /* }}} */
/**
* Check if object is on clipboard
*
* @param object $object Document or folder
*/
function isOnClipboard($object) { /* {{{ */
/* id is only set if load() was called before */
if($this->id) {
$dms = $object->getDMS();
if($object->isType('document')) {
return in_array($object->getID(), $this->data['clipboard']['docs']);
} elseif($object->isType('folder')) {
return in_array($object->getID(), $this->data['clipboard']['folders']);
}
}
return false;
} /* }}} */
/**
* Add to clipboard of session
*

View File

@ -45,8 +45,6 @@ class Settings { /* {{{ */
var $_enableGuestLogin = false;
// If you even want guest to be logged in automatically, set the following to true
var $_enableGuestAutoLogin = false;
// Set to true for 2-factor Authentication
var $_enable2FactorAuthentication = false;
// If you want to allow login by email, set the following to true
var $_enableLoginByEmail = false;
// Allow users to reset their password
@ -118,12 +116,6 @@ class Settings { /* {{{ */
var $_dropFolderDir = null;
// Where the backup directory is located
var $_backupDir = null;
// Where the library folder is located
var $_libraryFolder = 1;
// Where the checked out files are located
var $_checkOutDir = null;
// Create checkout dir if it doesn't exists
var $_createCheckOutDir = false;
// Where the repository for extensions is located
var $_repositoryUrl = null;
// URL of proxy
@ -152,8 +144,6 @@ class Settings { /* {{{ */
var $_batchOperations = array(); // or 'all', 'change_owner', etc.
// jump straight to the document if it is the only hit of a search
var $_showSingleSearchHit = true;
// enable/disable use of memcached
var $_enableMemcached = false;
// contentOffsetDirTo
var $_contentOffsetDir = "1048576";
// Maximum number of sub-directories per parent directory
@ -196,18 +186,6 @@ class Settings { /* {{{ */
var $_enableUpdateRevApp = false;
// enable/disable removal of a review/approval by the administrator
var $_enableRemoveRevApp = false;
// enable/disable listing logged in user as recipient
var $_enableSelfReceipt = false;
// enable/disable hidden user as recipient
var $_enableHiddenReceipt = true;
// enable/disable update of a receipt by the recipient
var $_enableUpdateReceipt = false;
// enable/disable listing administrator as recipient
var $_enableAdminReceipt = false;
// enable/disable listing owner as recipient
var $_enableOwnerReceipt = false;
// enable/disable filter for receipt by the recipient
var $_enableFilterReceipt = false;
// group manager is mandatory reviewer
var $_addManagerAsReviewer = false;
// group manager is mandatory approver
@ -230,12 +208,8 @@ class Settings { /* {{{ */
var $_enableDuplicateDocNames = true;
// enable/disable duplicate names of a subfolder in a folder
var $_enableDuplicateSubFolderNames = true;
// allow/disallow to cancel a checkout
var $_enableCancelCheckout = true;
// override mimetype set by browser when uploading a file
var $_overrideMimeType = false;
// advanced access control lists
var $_advancedAcl = false;
// enable/disable notification when added as a reviewer/approver
var $_enableNotificationAppRev = true;
// enable/disable notification of users/group who need to take action for
@ -245,32 +219,14 @@ class Settings { /* {{{ */
var $_enableNotificationWorkflow = false;
// preset expiration date
var $_presetExpirationDate = "";
// initial document status
var $_initialDocumentStatus = 2; //S_RELEASED;
// the name of the versioning info file created by the backup tool
var $_versioningFileName = "versioning_info.txt";
// the mode of workflow
var $_workflowMode = "traditional";
// enable/disable acknowledge workflow
var $_enableReceiptWorkflow = true;
// enable/disable reject of reception
var $_enableReceiptReject = false;
// enable/disable comment of reception
var $_disableReceiptComment = false;
// enable/disable revision workflow
var $_enableRevisionWorkflow = true;
// enable/disable revision on vote reject
var $_enableRevisionOneVoteReject = true;
// Allow to set just a reviewer in tradional workflow
var $_allowReviewerOnly = true;
// Allow to change reviewer/approver after review/approval has started
var $_allowChangeRevAppInProcess = false;
// enable/disable log system
var $_logFileEnable = true;
// max log level
var $_logFileMaxLevel = 6; // PEAR_LOG_INFO
// max log level for restapi
var $_logFileRestApiMaxLevel = 6; // PEAR_LOG_INFO
// the log file rotation
var $_logFileRotation = "d";
// Enable file upload by fine-uploader (was 'jumploader')
@ -301,12 +257,8 @@ class Settings { /* {{{ */
var $_enableClipboard = true;
// show always clipboard in main menu, even if empty
var $_alwaysShowClipboard = false;
// enable/disable list of transmittals in main menu
var $_enableMenuTransmittals = false;
// enable/disable list of tasks in main menu
var $_enableMenuTasks = true;
// select which tasks show up in main menu
var $_tasksInMenu = array();
// show always tasks in main menu, even if none are due
var $_alwaysShowMenuTasks = true;
// enable/disable list of files in drop folder
@ -325,8 +277,6 @@ class Settings { /* {{{ */
var $_maxRecursiveCount = 10000;
// number of days in the past of the dashboard
var $_daysPastDashboard = 7;
// list of folders not considered for dashboard
var $_excludeFoldersDashboard = [];
// enable/disable help
var $_enableHelp = true;
// enable/disable language selection menu
@ -394,10 +344,6 @@ class Settings { /* {{{ */
var $_smtpPort = null;
// SMTP : send from
var $_smtpSendFrom = null;
// SMTP : force send from
var $_smtpForceFrom = false;
// SMTP : allow self signed certificates
var $_smtpLazySSL = false;
// SMTP : user
var $_smtpUser = null;
// SMTP : password
@ -418,8 +364,6 @@ class Settings { /* {{{ */
// Name of the ldap field containing the groups of the user, e.g. memeberOf
// This field must contain the DN of the groups
var $_ldapGroupField = "";
// Name of the ldap field containing the email of the user, e.g. mail, or mailprimaryaddress
var $_ldapMailField = "";
// Type of Ldap server: 0 = ldap; 1 = AD
var $_ldapType = 1;
// Additional filter when searching for the user. If not set, the user will be searched
@ -485,18 +429,6 @@ class Settings { /* {{{ */
return $out;
} /* }}} */
/**
* Check if a variable is a string and returns an array
*
* @param array $var value
* @return true/false
*/
function arrayVal($var) { /* {{{ */
if((string) $var)
return explode(';', $var);
return array();
} /* }}} */
/**
* Return ';' seperated string from array
*
@ -514,7 +446,7 @@ class Settings { /* {{{ */
*
*/
function stringToArray($value) { /* {{{ */
return explode(";", $value);
return explode(";", $Value);
} /* }}} */
/**
@ -621,10 +553,8 @@ class Settings { /* {{{ */
$this->_enableSessionList = Settings::boolVal($tab["enableSessionList"]);
$this->_enableClipboard = Settings::boolVal($tab["enableClipboard"]);
$this->_alwaysShowClipboard = Settings::boolVal($tab["alwaysShowClipboard"]);
$this->_enableMenuTransmittals = Settings::boolVal($tab["enableMenuTransmittals"]);
$this->_enableMenuTasks = Settings::boolVal($tab["enableMenuTasks"]);
$this->_alwaysShowMenuTasks = Settings::boolVal($tab["alwaysShowMenuTasks"]);
$this->_tasksInMenu = Settings::arrayVal($tab["tasksInMenu"]);
$this->_enableDropFolderList = Settings::boolVal($tab["enableDropFolderList"]);
$this->_enableDropUpload = Settings::boolVal($tab["enableDropUpload"]);
$this->_enableMultiUpload = Settings::boolVal($tab["enableMultiUpload"]);
@ -632,8 +562,6 @@ class Settings { /* {{{ */
$this->_enableRecursiveCount = Settings::boolVal($tab["enableRecursiveCount"]);
$this->_maxRecursiveCount = intval($tab["maxRecursiveCount"]);
$this->_daysPastDashboard = intval($tab["daysPastDashboard"]);
if(trim(strval($tab["excludeFoldersDashboard"])))
$this->_excludeFoldersDashboard = explode(',',strval($tab["excludeFoldersDashboard"]));
$this->_enableHelp = Settings::boolVal($tab["enableHelp"]);
$this->_enableLanguageSelector = Settings::boolVal($tab["enableLanguageSelector"]);
$this->_enableThemeSelector = Settings::boolVal($tab["enableThemeSelector"]);
@ -650,7 +578,6 @@ class Settings { /* {{{ */
$this->_sortUsersInList = strval($tab["sortUsersInList"]);
$this->_sortFoldersDefault = strval($tab["sortFoldersDefault"]);
$this->_expandFolderTree = intval($tab["expandFolderTree"]);
$this->_libraryFolder = intval($tab["libraryFolder"]);
$this->_defaultDocPosition = strval($tab["defaultDocPosition"]);
$this->_defaultFolderPosition = strval($tab["defaultFolderPosition"]);
@ -694,28 +621,24 @@ class Settings { /* {{{ */
$this->_luceneDir = strval($tab["luceneDir"]);
$this->_dropFolderDir = strval($tab["dropFolderDir"]);
$this->_backupDir = strval($tab["backupDir"]);
$this->_checkOutDir = strval($tab["checkOutDir"]);
$this->_createCheckOutDir = Settings::boolVal($tab["createCheckOutDir"]);
$this->_repositoryUrl = strval($tab["repositoryUrl"]);
$this->_proxyUrl = strval($tab["proxyUrl"]);
$this->_proxyUser = strval($tab["proxyUser"]);
$this->_proxyPassword = strval($tab["proxyPassword"]);
$this->_logFileEnable = Settings::boolVal($tab["logFileEnable"]);
$this->_logFileMaxLevel = strval($tab["logFileMaxLevel"]);
$this->_logFileRestApiMaxLevel = strval($tab["logFileRestApiMaxLevel"]);
$this->_logFileRotation = strval($tab["logFileRotation"]);
$this->_enableLargeFileUpload = Settings::boolVal($tab["enableLargeFileUpload"]);
$this->_partitionSize = strval($tab["partitionSize"]);
$this->_maxUploadSize = strval($tab["maxUploadSize"]);
$this->_enableXsendfile = Settings::boolVal($tab["enableXsendfile"]);
$this->_enableMemcached = Settings::boolVal($tab["enableMemcached"]);
}
// XML Path: /configuration/system/authentication
$node = $xml->xpath('/configuration/system/authentication');
// XML Path: /configuration/system/authentication
$node = $xml->xpath('/configuration/system/authentication');
if($node) {
$tab = $node[0]->attributes();
$this->_enableGuestLogin = Settings::boolVal($tab["enableGuestLogin"]);
$this->_enableGuestAutoLogin = Settings::boolVal($tab["enableGuestAutoLogin"]);
$this->_enable2FactorAuthentication = Settings::boolVal($tab["enable2FactorAuthentication"]);
$this->_enableLoginByEmail = Settings::boolVal($tab["enableLoginByEmail"]);
$this->_enablePasswordForgotten = Settings::boolVal($tab["enablePasswordForgotten"]);
$this->_passwordStrength = intval($tab["passwordStrength"]);
@ -765,7 +688,6 @@ class Settings { /* {{{ */
$this->_ldapType = 0;
$this->_ldapFilter = strVal($connectorNode["filter"]);
$this->_ldapGroupField = strVal($connectorNode["groupField"]);
$this->_ldapMailField = strVal($connectorNode["mailField"]);
}
else if ($params['enable'] && ($typeConn == "AD"))
{
@ -778,7 +700,6 @@ class Settings { /* {{{ */
$this->_ldapFilter = strVal($connectorNode["filter"]);
$this->_ldapAccountDomainName = strVal($connectorNode["accountDomainName"]);
$this->_ldapGroupField = strVal($connectorNode["groupField"]);
$this->_ldapMailField = strVal($connectorNode["mailField"]);
}
}
@ -814,8 +735,6 @@ class Settings { /* {{{ */
$this->_smtpSendFrom = strval($tab["smtpSendFrom"]);
else
$this->_smtpSendFrom = ini_get("sendmail_from");
$this->_smtpForceFrom = Settings::boolVal($tab["smtpForceFrom"]);
$this->_smtpLazySSL = Settings::boolVal($tab["smtpLazySSL"]);
// smtpUser
$this->_smtpUser = strval($tab["smtpUser"]);
$this->_smtpPassword = strval($tab["smtpPassword"]);
@ -853,11 +772,6 @@ class Settings { /* {{{ */
$this->_enableHiddenRevApp = Settings::boolval($tab["enableHiddenRevApp"]);
$this->_enableUpdateRevApp = Settings::boolval($tab["enableUpdateRevApp"]);
$this->_enableRemoveRevApp = Settings::boolval($tab["enableRemoveRevApp"]);
$this->_enableSelfReceipt = Settings::boolval($tab["enableSelfReceipt"]);
$this->_enableAdminReceipt = Settings::boolval($tab["enableAdminReceipt"]);
$this->_enableOwnerReceipt = Settings::boolval($tab["enableOwnerReceipt"]);
$this->_enableUpdateReceipt = Settings::boolval($tab["enableUpdateReceipt"]);
$this->_enableFilterReceipt = Settings::boolval($tab["enableFilterReceipt"]);
$this->_addManagerAsReviewer = Settings::boolval($tab["addManagerAsReviewer"]);
$this->_addManagerAsApprover = Settings::boolval($tab["addManagerAsApprover"]);
if(trim(strval($tab["globalReviewer"])))
@ -869,23 +783,14 @@ class Settings { /* {{{ */
if(trim(strval($tab["globalGroupApprover"])))
$this->_globalGroupApprover = explode(',',strval($tab["globalGroupApprover"]));
$this->_presetExpirationDate = strval($tab["presetExpirationDate"]);
$this->_initialDocumentStatus = intval($tab["initialDocumentStatus"]);
$this->_versioningFileName = strval($tab["versioningFileName"]);
$this->_workflowMode = strval($tab["workflowMode"]);
$this->_enableReceiptWorkflow = Settings::boolval($tab["enableReceiptWorkflow"]);
$this->_enableReceiptReject = Settings::boolval($tab["enableReceiptReject"]);
$this->_disableReceiptComment = Settings::boolval($tab["disableReceiptComment"]);
$this->_enableRevisionWorkflow = Settings::boolval($tab["enableRevisionWorkflow"]);
$this->_enableRevisionOneVoteReject = Settings::boolval($tab["enableRevisionOneVoteReject"]);
$this->_allowReviewerOnly = Settings::boolval($tab["allowReviewerOnly"]);
$this->_allowChangeRevAppInProcess = Settings::boolval($tab["allowChangeRevAppInProcess"]);
$this->_enableVersionDeletion = Settings::boolval($tab["enableVersionDeletion"]);
$this->_enableVersionModification = Settings::boolval($tab["enableVersionModification"]);
$this->_enableDuplicateDocNames = Settings::boolval($tab["enableDuplicateDocNames"]);
$this->_enableDuplicateSubFolderNames = Settings::boolval($tab["enableDuplicateSubFolderNames"]);
$this->_enableCancelCheckout = Settings::boolval($tab["enableCancelCheckout"]);
$this->_overrideMimeType = Settings::boolval($tab["overrideMimeType"]);
$this->_advancedAcl = Settings::boolval($tab["advancedAcl"]);
$this->_removeFromDropFolder = Settings::boolval($tab["removeFromDropFolder"]);
$this->_uploadedAttachmentIsPublic = Settings::boolval($tab["uploadedAttachmentIsPublic"]);
}
@ -970,8 +875,6 @@ class Settings { /* {{{ */
$attributValue = "true";
else
$attributValue = "false";
} elseif(is_array($attributValue)) {
$attributValue = implode(';', $attributValue);
}
if (isset($node[$attributName])) {
@ -1014,8 +917,6 @@ class Settings { /* {{{ */
if (is_null($configFilePath))
$configFilePath = $this->_configFilePath;
// copy($configFilePath, $configFilePath.'.'.time());
// Load
$xml = simplexml_load_string(file_get_contents($configFilePath));
$this->getXMLNode($xml, '/', 'configuration');
@ -1057,10 +958,8 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableSessionList", $this->_enableSessionList);
$this->setXMLAttributValue($node, "enableClipboard", $this->_enableClipboard);
$this->setXMLAttributValue($node, "alwaysShowClipboard", $this->_alwaysShowClipboard);
$this->setXMLAttributValue($node, "enableMenuTransmittals", $this->_enableMenuTransmittals);
$this->setXMLAttributValue($node, "enableMenuTasks", $this->_enableMenuTasks);
$this->setXMLAttributValue($node, "alwaysShowMenuTasks", $this->_alwaysShowMenuTasks);
$this->setXMLAttributValue($node, "tasksInMenu", $this->_tasksInMenu);
$this->setXMLAttributValue($node, "enableDropFolderList", $this->_enableDropFolderList);
$this->setXMLAttributValue($node, "enableDropUpload", $this->_enableDropUpload);
$this->setXMLAttributValue($node, "enableMultiUpload", $this->_enableMultiUpload);
@ -1068,7 +967,6 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableRecursiveCount", $this->_enableRecursiveCount);
$this->setXMLAttributValue($node, "maxRecursiveCount", $this->_maxRecursiveCount);
$this->setXMLAttributValue($node, "daysPastDashboard", $this->_daysPastDashboard);
$this->setXMLAttributValue($node, "excludeFoldersDashboard", implode(',', $this->_excludeFoldersDashboard));
$this->setXMLAttributValue($node, "enableHelp", $this->_enableHelp);
$this->setXMLAttributValue($node, "enableLanguageSelector", $this->_enableLanguageSelector);
$this->setXMLAttributValue($node, "enableThemeSelector", $this->_enableThemeSelector);
@ -1083,7 +981,6 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "stopWordsFile", $this->_stopWordsFile);
$this->setXMLAttributValue($node, "sortUsersInList", $this->_sortUsersInList);
$this->setXMLAttributValue($node, "sortFoldersDefault", $this->_sortFoldersDefault);
$this->setXMLAttributValue($node, "libraryFolder", $this->_libraryFolder);
$this->setXMLAttributValue($node, "defaultDocPosition", $this->_defaultDocPosition);
$this->setXMLAttributValue($node, "defaultFolderPosition", $this->_defaultFolderPosition);
@ -1115,27 +1012,21 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "luceneDir", $this->_luceneDir);
$this->setXMLAttributValue($node, "dropFolderDir", $this->_dropFolderDir);
$this->setXMLAttributValue($node, "backupDir", $this->_backupDir);
$this->setXMLAttributValue($node, "checkOutDir", $this->_checkOutDir);
$this->setXMLAttributValue($node, "createCheckOutDir", $this->_createCheckOutDir);
$this->setXMLAttributValue($node, "repositoryUrl", $this->_repositoryUrl);
$this->setXMLAttributValue($node, "proxyUrl", $this->_proxyUrl);
$this->setXMLAttributValue($node, "proxyUser", $this->_proxyUser);
$this->setXMLAttributValue($node, "proxyPassword", $this->_proxyPassword);
$this->setXMLAttributValue($node, "logFileEnable", $this->_logFileEnable);
$this->setXMLAttributValue($node, "logFileMaxLevel", $this->_logFileMaxLevel);
$this->setXMLAttributValue($node, "logFileRestApiMaxLevel", $this->_logFileRestApiMaxLevel);
$this->setXMLAttributValue($node, "logFileRotation", $this->_logFileRotation);
$this->setXMLAttributValue($node, "enableLargeFileUpload", $this->_enableLargeFileUpload);
$this->setXMLAttributValue($node, "partitionSize", $this->_partitionSize);
$this->setXMLAttributValue($node, "maxUploadSize", $this->_maxUploadSize);
$this->setXMLAttributValue($node, "enableXsendfile", $this->_enableXsendfile);
$this->setXMLAttributValue($node, "enableMemcached", $this->_enableMemcached);
// XML Path: /configuration/system/authentication
$node = $this->getXMLNode($xml, '/configuration/system', 'authentication');
$this->setXMLAttributValue($node, "enableGuestLogin", $this->_enableGuestLogin);
$this->setXMLAttributValue($node, "enableGuestAutoLogin", $this->_enableGuestAutoLogin);
$this->setXMLAttributValue($node, "enable2FactorAuthentication", $this->_enable2FactorAuthentication);
$this->setXMLAttributValue($node, "enableLoginByEmail", $this->_enableLoginByEmail);
$this->setXMLAttributValue($node, "enablePasswordForgotten", $this->_enablePasswordForgotten);
$this->setXMLAttributValue($node, "passwordStrength", $this->_passwordStrength);
@ -1217,8 +1108,6 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "smtpServer", $this->_smtpServer);
$this->setXMLAttributValue($node, "smtpPort", $this->_smtpPort);
$this->setXMLAttributValue($node, "smtpSendFrom", $this->_smtpSendFrom);
$this->setXMLAttributValue($node, "smtpForceFrom", $this->_smtpForceFrom);
$this->setXMLAttributValue($node, "smtpLazySSL", $this->_smtpLazySSL);
$this->setXMLAttributValue($node, "smtpUser", $this->_smtpUser);
$this->setXMLAttributValue($node, "smtpPassword", $this->_smtpPassword);
@ -1247,13 +1136,6 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "enableHiddenRevApp", $this->_enableHiddenRevApp);
$this->setXMLAttributValue($node, "enableUpdateRevApp", $this->_enableUpdateRevApp);
$this->setXMLAttributValue($node, "enableRemoveRevApp", $this->_enableRemoveRevApp);
$this->setXMLAttributValue($node, "enableSelfReceipt", $this->_enableSelfReceipt);
$this->setXMLAttributValue($node, "enableAdminReceipt", $this->_enableAdminReceipt);
$this->setXMLAttributValue($node, "enableOwnerReceipt", $this->_enableOwnerReceipt);
$this->setXMLAttributValue($node, "enableUpdateReceipt", $this->_enableUpdateReceipt);
$this->setXMLAttributValue($node, "enableFilterReceipt", $this->_enableFilterReceipt);
$this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate);
$this->setXMLAttributValue($node, "initialDocumentStatus", $this->_initialDocumentStatus);
$this->setXMLAttributValue($node, "addManagerAsReviewer", $this->_addManagerAsReviewer);
$this->setXMLAttributValue($node, "addManagerAsApprover", $this->_addManagerAsApprover);
$this->setXMLAttributValue($node, "globalReviewer", implode(',', $this->_globalReviewer));
@ -1263,21 +1145,14 @@ class Settings { /* {{{ */
$this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate);
$this->setXMLAttributValue($node, "apiOrigin", $this->_apiOrigin);
$this->setXMLAttributValue($node, "versioningFileName", $this->_versioningFileName);
$this->setXMLAttributValue($node, "presetExpirationDate", $this->_presetExpirationDate);
$this->setXMLAttributValue($node, "workflowMode", $this->_workflowMode);
$this->setXMLAttributValue($node, "enableReceiptWorkflow", $this->_enableReceiptWorkflow);
$this->setXMLAttributValue($node, "enableReceiptReject", $this->_enableReceiptReject);
$this->setXMLAttributValue($node, "disableReceiptComment", $this->_disableReceiptComment);
$this->setXMLAttributValue($node, "enableRevisionWorkflow", $this->_enableRevisionWorkflow);
$this->setXMLAttributValue($node, "enableRevisionOneVoteReject", $this->_enableRevisionOneVoteReject);
$this->setXMLAttributValue($node, "allowReviewerOnly", $this->_allowReviewerOnly);
$this->setXMLAttributValue($node, "allowChangeRevAppInProcess", $this->_allowChangeRevAppInProcess);
$this->setXMLAttributValue($node, "enableVersionDeletion", $this->_enableVersionDeletion);
$this->setXMLAttributValue($node, "enableVersionModification", $this->_enableVersionModification);
$this->setXMLAttributValue($node, "enableDuplicateDocNames", $this->_enableDuplicateDocNames);
$this->setXMLAttributValue($node, "enableDuplicateSubFolderNames", $this->_enableDuplicateSubFolderNames);
$this->setXMLAttributValue($node, "enableCancelCheckout", $this->_enableCancelCheckout);
$this->setXMLAttributValue($node, "overrideMimeType", $this->_overrideMimeType);
$this->setXMLAttributValue($node, "advancedAcl", $this->_advancedAcl);
$this->setXMLAttributValue($node, "removeFromDropFolder", $this->_removeFromDropFolder);
$this->setXMLAttributValue($node, "uploadedAttachmentIsPublic", $this->_uploadedAttachmentIsPublic);
@ -1356,9 +1231,9 @@ class Settings { /* {{{ */
*/
foreach($extension as $fieldname=>$confvalue) {
if($fieldname != '___disable__' && $confvalue) {
$parameter = $extnode->addChild('parameter');
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
$this->setXMLAttributValue($parameter, 'name', $fieldname);
$parameter = $extnode->addChild('parameter');
$parameter[0] = isset($extension[$fieldname]) ? (is_array($extension[$fieldname]) ? implode(',', $extension[$fieldname]) : $extension[$fieldname]) : '';
$this->setXMLAttributValue($parameter, 'name', $fieldname);
}
}
/* Old code saves those parameters listed in the configuration

View File

@ -20,7 +20,6 @@
require_once('inc.ClassUI_Default.php');
require_once('inc.ClassViewCommon.php');
require_once('inc.ClassAccessOperation.php');
/* $theme was possibly set in inc.Authentication.php */
if (!isset($theme) || strlen($theme)==0) {
@ -45,8 +44,8 @@ class UI extends UI_Default {
* @param array $params parameter passed to constructor of view class
* @return object an object of a class implementing the view
*/
static public function factory($theme, $class='', $params=array()) { /* {{{ */
global $settings, $dms, $user, $session, $extMgr, $request, $logger, $notifier, $fulltextservice;
static function factory($theme, $class='', $params=array()) { /* {{{ */
global $settings, $session, $extMgr, $request, $logger;
if(!$class) {
$class = 'Bootstrap';
$class = 'Style';
@ -128,17 +127,13 @@ class UI extends UI_Default {
$params['settings'] = $settings;
$view = new $classname($params, $theme);
/* Set some configuration parameters */
$view->setParam('accessobject', new SeedDMS_AccessOperation($dms, $user, $settings));
$view->setParam('referer', isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '');
$view->setParam('requesturi', $_SERVER['REQUEST_URI']);
$view->setParam('refferer', $_SERVER['REQUEST_URI']);
$view->setParam('absbaseprefix', $settings->_httpRoot.$httpbasedir);
$view->setParam('theme', $theme);
$view->setParam('class', $class);
$view->setParam('session', $session);
$view->setParam('request', $request);
$view->setParam('logger', $logger);
$view->setParam('notifier', $notifier);
$view->setParam('fulltextservice', $fulltextservice);
// $view->setParam('settings', $settings);
$view->setParam('sitename', $settings->_siteName);
$view->setParam('rootfolderid', $settings->_rootFolderID);
@ -156,14 +151,11 @@ class UI extends UI_Default {
$view->setParam('enablefoldertree', $settings->_enableFolderTree);
$view->setParam('enablelanguageselector', $settings->_enableLanguageSelector);
$view->setParam('enableclipboard', $settings->_enableClipboard);
$view->setParam('enablemenutransmittals', $settings->_enableMenuTransmittals);
$view->setParam('enablemenutasks', $settings->_enableMenuTasks);
$view->setParam('tasksinmenu', $settings->_tasksInMenu);
$view->setParam('enabledropfolderlist', $settings->_enableDropFolderList);
$view->setParam('dropfolderdir', $settings->_dropFolderDir);
$view->setParam('enablesessionlist', $settings->_enableSessionList);
$view->setParam('workflowmode', $settings->_workflowMode);
$view->setParam('checkoutdir', $settings->_checkOutDir);
$view->setParam('partitionsize', SeedDMS_Core_File::parse_filesize( $settings->_partitionSize));
$view->setParam('maxuploadsize', $settings->getMaximumUploadSize());
$view->setParam('showmissingtranslations', $settings->_showMissingTranslations);
@ -180,7 +172,7 @@ class UI extends UI_Default {
return null;
} /* }}} */
static public function getStyles() { /* {{{ */
static function getStyles() { /* {{{ */
global $settings;
$themes = array();
@ -197,8 +189,9 @@ class UI extends UI_Default {
return $themes;
} /* }}} */
static public function exitError($pagetitle, $error, $noexit=false, $plain=false) {
static function exitError($pagetitle, $error, $noexit=false, $plain=false) {
global $theme, $dms, $user, $settings;
$accessop = new SeedDMS_AccessOperation($dms, null, $user, $settings);
$view = UI::factory($theme, 'ErrorDlg');
$request = $view->getParam('request');
if($request) {
@ -206,6 +199,7 @@ class UI extends UI_Default {
}
$view->setParam('dms', $dms);
$view->setParam('user', $user);
$view->setParam('accessobject', $accessop);
$view->setParam('pagetitle', $pagetitle);
$view->setParam('errormsg', $error);
$view->setParam('plain', $plain);

View File

@ -322,10 +322,8 @@ class SeedDMS_View_Common {
*/
protected function html_url($view, $urlparams=array()) { /* {{{ */
$url = $this->params['settings']->_httpRoot."out/out.".$view.".php";
if(is_array($urlparams))
if($urlparams)
$url .= "?".http_build_query($urlparams);
elseif(is_string($urlparams))
$url .= "?".$urlparams;
return $url;
} /* }}} */

View File

@ -1,73 +1,40 @@
<?php
/**
* MyDMS. Document Management System
* Copyright (C) 2002-2005 Markus Westphal
* Copyright (C) 2006-2008 Malcolm Cowe
* Copyright (C) 2010 Matteo Lucarelli
* Copyright (C) 2010-2024 Uwe Steinmann
*
* PHP version 8
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* @category SeedDMS
* @package SeedDMS
* @author Uwe Steinmann <info@seeddms.org>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link https://www.seeddms.org Main Site
*/
$conversionmgr = null;
require_once "inc.ClassConversionMgr.php";
require_once("inc.ClassConversionMgr.php");
$conversionmgr = new SeedDMS_ConversionMgr();
if (!empty($settings->_converters['preview'])) {
foreach ($settings->_converters['preview'] as $mimetype => $cmd) {
if(!empty($settings->_converters['preview'])) {
foreach($settings->_converters['preview'] as $mimetype=>$cmd) {
$conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'image/png', $cmd), $settings->_cmdTimeout)->setLogger($logger);
}
}
if (!empty($settings->_converters['pdf'])) {
foreach ($settings->_converters['pdf'] as $mimetype => $cmd) {
if(!empty($settings->_converters['pdf'])) {
foreach($settings->_converters['pdf'] as $mimetype=>$cmd) {
$conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'application/pdf', $cmd, $settings->_cmdTimeout))->setLogger($logger);
}
}
if (!empty($settings->_converters['fulltext'])) {
foreach ($settings->_converters['fulltext'] as $mimetype => $cmd) {
if(!empty($settings->_converters['fulltext'])) {
foreach($settings->_converters['fulltext'] as $mimetype=>$cmd) {
$conversionmgr->addService(new SeedDMS_ConversionServiceExec($mimetype, 'text/plain', $cmd, $settings->_cmdTimeout))->setLogger($logger);
}
}
if (extension_loaded('imagick')) {
if(extension_loaded('imagick')) {
$conversionmgr->addService(new SeedDMS_ConversionServicePdfToImage('application/pdf', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/tiff', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/svg+xml', 'image/png'))->setLogger($logger);
}
if (extension_loaded('gd') || extension_loaded('imagick')) {
if(extension_loaded('gd') || extension_loaded('imagick')) {
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpeg', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/png', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/jpg', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/gif', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/webp', 'image/png'))->setLogger($logger);
$conversionmgr->addService(new SeedDMS_ConversionServiceImageToImage('image/avif', 'image/png'))->setLogger($logger);
}
if (extension_loaded('imagick')) {
if(extension_loaded('imagick')) {
$conversionmgr->addService(new SeedDMS_ConversionServiceTextToImage('text/plain', 'image/png'))->setLogger($logger);
}
@ -80,11 +47,11 @@ $conversionmgr->addService(new SeedDMS_ConversionServiceTextToText('text/x-rst',
$conversionmgr->addService(new SeedDMS_ConversionServiceHtmlToText('text/html', 'text/plain'))->setLogger($logger);
if (isset($GLOBALS['SEEDDMS_HOOKS']['initConversion'])) {
foreach ($GLOBALS['SEEDDMS_HOOKS']['initConversion'] as $hookObj) {
if(isset($GLOBALS['SEEDDMS_HOOKS']['initConversion'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initConversion'] as $hookObj) {
if (method_exists($hookObj, 'getConversionServices')) {
if ($services = $hookObj->getConversionServices(array('dms' => $dms, 'settings' => $settings, 'logger' => $logger))) {
foreach ($services as $service) {
if($services = $hookObj->getConversionServices(array('dms'=>$dms, 'settings'=>$settings, 'logger'=>$logger))) {
foreach($services as $service) {
$conversionmgr->addService($service)->setLogger($logger);
}
}

View File

@ -45,24 +45,7 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
}
}
$storage = null;
if(isset($GLOBALS['SEEDDMS_HOOKS']['initStorage'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initStorage'] as $hookObj) {
if (method_exists($hookObj, 'getStorage')) {
$storage = $hookObj->getStorage(array('db'=>$db, 'settings'=>$settings, 'logger'=>$logger));
}
}
}
$dms = new SeedDMS_Core_DMS($db, $storage ? $storage : $settings->_contentDir.$settings->_contentOffsetDir);
if($settings->_enableMemcached && extension_loaded('memcached')) {
$memcache = new Memcached('seeddms');
$memcache->addServers(array(
array('localhost',11211),
));
$dms->setMemcache($memcache);
}
$dms = new SeedDMS_Core_DMS($db, $settings->_contentDir.$settings->_contentOffsetDir);
if(!$settings->_doNotCheckDBVersion && !$dms->checkVersion()) {
echo "Database update needed.";
@ -87,7 +70,6 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
}
}
require_once('inc/inc.Tasks.php');
require_once("inc.ConversionInit.php");
require_once('inc.FulltextInit.php');
require_once('inc.AuthenticationInit.php');

View File

@ -14,7 +14,6 @@
global $logger;
require "inc.ClassExtensionMgr.php";
require_once "inc.ClassSchedulerTaskBase.php";
require_once "inc.ClassExtBase.php";
$extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir, $settings->_repositoryUrl, $settings->_proxyUrl, $settings->_proxyUser, $settings->_proxyPassword);

View File

@ -26,7 +26,6 @@ $fulltextservice = null;
if($settings->_enableFullSearch) {
require_once("inc.ClassFulltextService.php");
$fulltextservice = new SeedDMS_FulltextService();
$fulltextservice->setLogger($logger);
if($settings->_fullSearchEngine == 'sqlitefts') {
$indexconf = array(

View File

@ -1,45 +1,28 @@
<?php
/**
* MyDMS. Document Management System
* Copyright (C) 2002-2005 Markus Westphal
* Copyright (C) 2006-2008 Malcolm Cowe
* Copyright (C) 2010 Matteo Lucarelli
* Copyright (C) 2010-2024 Uwe Steinmann
*
* PHP version 8
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* @category SeedDMS
* @package SeedDMS
* @author Uwe Steinmann <info@seeddms.org>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link https://www.seeddms.org Main Site
*/
// MyDMS. Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
// Copyright (C) 2010 Matteo Lucarelli
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
use Symfony\Component\HttpFoundation\Request;
/* Actually not needed anymore, but some old extension may still use
* S_RELEASED, S_REJECTED, etc. from SeedDMS_Core_Document. So we keep
* it for a while. Should be removed von 6.0.31 and 5.1.38 is released.
*/
if (!empty($settings->_coreDir)) {
require_once $settings->_coreDir . '/Core.php';
} else {
require_once 'vendor/seeddms/core/Core.php';
}
if(!empty($settings->_coreDir))
require_once($settings->_coreDir.'/Core.php');
else
require_once('vendor/seeddms/core/Core.php');
$request = Request::createFromGlobals();

View File

@ -174,68 +174,6 @@ function getReviewStatusText($status, $date=0) { /* {{{ */
}
} /* }}} */
function printReceiptStatusText($status, $date=0) { /* {{{ */
print getReceiptStatusText($status, $date);
} /* }}} */
function getReceiptStatusText($status, $date=0) { /* {{{ */
if (is_null($status)) {
return getMLText("status_unknown");
}
else {
switch ($status) {
case -2:
return getMLText("status_recipient_removed");
break;
case -1:
return getMLText("status_receipt_rejected").($date !=0 ? " ".$date : "");
break;
case 0:
return getMLText("status_not_receipted");
break;
case 1:
return getMLText("status_receipted").($date !=0 ? " ".$date : "");
break;
default:
return getMLText("status_unknown");
break;
}
}
} /* }}} */
function printRevisionStatusText($status, $date=0) { /* {{{ */
print getRevisionStatusText($status, $date);
} /* }}} */
function getRevisionStatusText($status, $date=0) { /* {{{ */
if (is_null($status)) {
return getMLText("status_unknown");
}
else {
switch ($status) {
case -3:
return getMLText("status_revision_sleeping");
break;
case -2:
return getMLText("status_revisor_removed");
break;
case -1:
return getMLText("status_needs_correction").($date !=0 ? " ".$date : "");
return getMLText("status_revision_rejected").($date !=0 ? " ".$date : "");
break;
case 0:
return getMLText("status_not_revised");
break;
case 1:
return getMLText("status_revised").($date !=0 ? " ".$date : "");
break;
default:
return getMLText("status_unknown");
break;
}
}
} /* }}} */
function printApprovalStatusText($status, $date=0) { /* {{{ */
if (is_null($status)) {
print getMLText("status_unknown");
@ -317,15 +255,6 @@ function getOverallStatusText($status) { /* {{{ */
case S_EXPIRED:
return getMLText("expired");
break;
case S_IN_REVISION:
return getMLText("in_revision");
break;
case S_DRAFT:
return getMLText("draft");
break;
case S_NEEDS_CORRECTION:
return getMLText("needs_correction");
break;
default:
return getMLText("status_unknown");
break;

View File

@ -21,5 +21,5 @@
require_once("Log.php");
require_once("inc/inc.Utils.php");
$logger = getLogger('', (int) $settings->_logFileMaxLevel);
$logger = getLogger();

View File

@ -24,7 +24,7 @@ if(isset($GLOBALS['SEEDDMS_HOOKS']['notification'])) {
}
if($settings->_enableEmail) {
$notifier->addService(new SeedDMS_EmailNotify($dms, $settings->_smtpSendFrom, $settings->_smtpServer, $settings->_smtpPort, $settings->_smtpUser, $settings->_smtpPassword, $settings->_smtpLazySSL, $settings->_smtpForceFrom), 'email');
$notifier->addService(new SeedDMS_EmailNotify($dms, $settings->_smtpSendFrom, $settings->_smtpServer, $settings->_smtpPort, $settings->_smtpUser, $settings->_smtpPassword), 'email');
}
if(isset($GLOBALS['SEEDDMS_HOOKS']['notification'])) {

View File

@ -1,17 +0,0 @@
<?php
/**
* Initialize scheduler
*
* @category DMS
* @package SeedDMS
* @license GPL 2
* @version @version@
* @author Uwe Steinmann <uwe@steinmann.cx>
* @copyright Copyright (C) 2018 Uwe Steinmann
* @version Release: @package_version@
*/
require_once "inc.ClassSchedulerTaskBase.php";
require_once "inc.ClassScheduler.php";
require_once "inc.ClassSchedulerTask.php";

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,14 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
/* deprecated! use SeedDMS_Core_File::format_filesize() instead */
function formatted_size($size_bytes) { /* {{{ */
if ($size_bytes>1000000000) return number_format($size_bytes/1000000000,1,".","")." GBytes";
else if ($size_bytes>1000000) return number_format($size_bytes/1000000,1,".","")." MBytes";
else if ($size_bytes>1000) return number_format($size_bytes/1000,1,".","")." KBytes";
return number_format($size_bytes,0,"","")." Bytes";
} /* }}} */
/* Date picker needs a different syntax for date formats using
* yyyy for %Y
* yy for %y
@ -447,7 +455,7 @@ function utf8_basename($path, $suffix='') { /* {{{ */
* @return string valid file name
*/
function getFilenameByDocname($content) { /* {{{ */
if(is_string($content)) {
if(is_string) {
$filename = $content;
} else {
$document = $content->getDocument();
@ -718,7 +726,6 @@ function get_extension($mimetype) { /* {{{ */
case 'image/gif': return '.gif';
case 'image/ief': return '.ief';
case 'image/jpeg': return '.jpg';
case 'image/jpg': return '.jpg';
case 'image/pipeg': return '.jfif';
case 'image/tiff': return '.tif';
case 'image/x-cmu-raster': return '.ras';
@ -744,27 +751,16 @@ function get_extension($mimetype) { /* {{{ */
case 'application/zip': return '.zip';
case 'application/x-gzip': return '.gz';
case 'application/x-rar': return '.rar';
case 'application/x-7z-compressed': return '.7z';
case 'application/x-compressed-tar': return '.tgz';
case 'application/x-tar': return '.tar';
case 'application/x-xopp': return '.xopp';
case 'application/pdf': return '.pdf';
case 'application/dxf': return '.dxf';
case 'application/msword': return '.doc';
case 'application/vnd.ms-powerpoint': return '.ppt';
case 'application/vnd.ms-excel': return '.xls';
case 'application/postscript': return '.ps';
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': return '.docx';
case 'application/vnd.openxmlformats-officedocument.presentationml.presentation': return '.pptx';
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': return '.xlsx';
case 'application/vnd.oasis.opendocument.text': return '.odt';
case 'application/vnd.oasis.opendocument.spreadsheet': return '.ods';
case 'application/vnd.oasis.opendocument.presentation': return '.odp';
case 'application/vnd.apple.pages': return '.pages';
case 'application/vnd.apple.numbers': return '.numbers';
case 'application/vnd.apple.keynote': return '.keynote';
case 'application/vnd.wordperfect': return '.wpd';
case 'application/vnd.ms-works': return '.wps';
case 'text/plain': return '.txt';
case 'text/csv': return '.csv';
case 'text/rtf': return '.rtf';
@ -795,18 +791,6 @@ function addDirSep($str, $chr=DIRECTORY_SEPARATOR) { /* {{{ */
} /* }}} */
/**
* Formats comments for aknowledge of reception.
*
* Only use in documentListRow()
*/
function formatComment($an) { /* {{{ */
$t = array();
foreach($an as $a)
$t[] = $a['n']." × ".$a['c'];
return $t;
} /* }}} */
/*
* Determines if a command exists on the current environment
*
* @param string $command The command to check
@ -982,19 +966,6 @@ function seed_pass_verify($password, $hash) { /* {{{ */
return $hash === md5($password);
} /* }}} */
function resolveTask($task) { /* {{{ */
global $dms, $user, $settings, $logger, $fulltextservice, $notifier, $conversionmgr;
if(is_object($task))
return $task;
if(is_string($task)) {
if(class_exists($task)) {
$task = new $task($dms, $user, $settings, $logger, $fulltextservice, $notifier, $conversionmgr);
}
}
return $task;
} /* }}} */
/**
* Return nonce for CSP
*
@ -1100,9 +1071,7 @@ function getMandatoryReviewers($folder, $document, $user) { /* {{{ */
foreach($groups as $group) {
$managers = $group->getManagers();
foreach($managers as $manager) {
/* Do not add myself, if I'm the manager of the group */
if($manager->getId() != $user->getId())
$revi[] = $manager->getId();
$revi[] = $manager->getId();
}
}
}
@ -1197,9 +1166,7 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
foreach($groups as $group) {
$managers = $group->getManagers();
foreach($managers as $manager) {
/* Do not add myself, if I'm the manager of the group */
if($manager->getId() != $user->getId())
$appi[] = $manager->getId();
$appi[] = $manager->getId();
}
}
}
@ -1260,34 +1227,6 @@ function getMandatoryApprovers($folder, $document, $user) { /* {{{ */
return $approvers;
} /* }}} */
/**
* Class with various utility methods
*
* This class will sooner or later comprise the functions above
*
*/
class SeedDMS_Utils { /* {{{ */
/**
* Recursively remove a directory on disc
*
* @param string $dir name of directory
*/
static public function rrmdir($dir) { /* {{{ */
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") self::rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
} /* }}} */
} /* }}} */
/**
* Class for creating encrypted api keys
*
@ -1420,659 +1359,3 @@ class SeedDMS_FolderTree { /* {{{ */
} /* }}} */
} /* }}} */
class SeedDMS_Search { /* {{{ */
protected $dms;
protected $user;
protected $fulltextservice;
protected $settings;
public $searchparams;
protected $dcount;
protected $fcount;
protected $totalPages;
protected $entries;
protected $terms;
protected $searchTime;
public function __construct($dms, $user, $fulltextservice, $settings) {
$this->dms = $dms;
$this->user = $user;
$this->fulltextservice = $fulltextservice;
$this->settings = $settings;
$this->searchparams = [];
$this->dcount = 0;
$this->fcount = 0;
$this->totalPages = 0;
$this->entries = array();
$this->terms = array();
$this->searchTime = 0;
}
protected function getTime() { /* {{{ */
if (function_exists('microtime')) {
$tm = microtime();
$tm = explode(' ', $tm);
return (float) sprintf('%f', $tm[1] + $tm[0]);
}
return time();
} /* }}} */
public function createSearchFromQuery($get) { /* {{{ */
$dms = $this->dms;
/* Creation date {{{ */
$createstartts = null;
$createstartdate = null;
$createendts = null;
$createenddate = null;
$created['from'] = null;
$created['to'] = null;
if(!empty($get["created"]["from"])) {
$createstartts = makeTsFromDate($get["created"]["from"]);
$createstartdate = array('year'=>(int)date('Y', $createstartts), 'month'=>(int)date('m', $createstartts), 'day'=>(int)date('d', $createstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
if (!checkdate($createstartdate['month'], $createstartdate['day'], $createstartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
}
$created['from'] = $createstartts;
}
if(!empty($get["created"]["to"])) {
$createendts = makeTsFromDate($get["created"]["to"]);
$createenddate = array('year'=>(int)date('Y', $createendts), 'month'=>(int)date('m', $createendts), 'day'=>(int)date('d', $createendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
if (!checkdate($createenddate['month'], $createenddate['day'], $createenddate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_create_date_end"));
}
$created['to'] = $createendts;
}
$this->searchparams['created'] = $created;
/* }}} */
/* Modification date {{{ */
$modifystartts = null;
$modifystartdate = null;
$modifyendts = null;
$modifyenddate = null;
$modified['from'] = null;
$modified['to'] = null;
if(!empty($get["modified"]["from"])) {
$modifystartts = makeTsFromDate($get["modified"]["from"]);
$modifystartdate = array('year'=>(int)date('Y', $modifystartts), 'month'=>(int)date('m', $modifystartts), 'day'=>(int)date('d', $modifystartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
if (!checkdate($modifystartdate['month'], $modifystartdate['day'], $modifystartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
}
$modified['from'] = $modifystartts;
}
if(!empty($get["modified"]["to"])) {
$modifyendts = makeTsFromDate($get["modified"]["to"]);
$modifyenddate = array('year'=>(int)date('Y', $modifyendts), 'month'=>(int)date('m', $modifyendts), 'day'=>(int)date('d', $modifyendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
if (!checkdate($modifyenddate['month'], $modifyenddate['day'], $modifyenddate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_modification_date_end"));
}
$modified['to'] = $modifyendts;
}
$this->searchparams['modified'] = $modified;
/* }}} */
/* Filesize {{{ */
$filesizestart = 0;
$filesizeend = 0;
$filesize['from'] = null;
$filesize['to'] = null;
if(!empty($get["filesize"]["from"])) {
$filesizestart = $get["filesize"]["from"];
$filesize['from'] = $get["filesize"]["from"];
}
if(!empty($get["filesize"]["to"])) {
$filesizeend = $get["filesize"]["to"];
$filesize['to'] = $get["filesize"]["to"];
}
$this->searchparams['filesize'] = $filesize;
/* }}} */
// Check to see if the search has been restricted to a particular
// document owner.
// $get['owner'] can be a name of an array of names or ids {{{
$owner = [];
$ownernames = []; // Needed by fulltext search
$ownerobjs = []; // Needed by database search
if(!empty($get["owner"])) {
$owner = $get['owner'];
if (!is_array($get['owner'])) {
if(is_numeric($get['owner']))
$o = $dms->getUser($get['owner']);
else
$o = $dms->getUserByLogin($get['owner']);
if($o) {
$ownernames[] = $o->getLogin();
$ownerobjs[] = $o;
}
} else {
foreach($get["owner"] as $l) {
if($l) {
if(is_numeric($l))
$o = $dms->getUser($l);
else
$o = $dms->getUserByLogin($l);
if($o) {
$ownernames[] = $o->getLogin();
$ownerobjs[] = $o;
}
}
}
}
}
$this->searchparams['ownernames'] = $ownernames;
$this->searchparams['ownerobjs'] = $ownerobjs;
/* }}} */
// category {{{
$categories = array();
$categorynames = array();
$category = array();
if(isset($get['category']) && $get['category']) {
$category = $get['category'];
foreach($get['category'] as $catid) {
if($catid) {
if(is_numeric($catid)) {
if($cat = $dms->getDocumentCategory($catid)) {
$categories[] = $cat;
$categorynames[] = $cat->getName();
}
} else {
$categorynames[] = $catid;
}
}
}
}
$this->searchparams['categorynames'] = $categorynames;
$this->searchparams['categories'] = $categories;
/* }}} */
if (isset($get["orderby"]) && is_string($get["orderby"])) {
$orderby = $get["orderby"];
} else {
$orderby = "";
}
$this->searchparams['orderby'] = $orderby;
$limit = (isset($get["limit"]) && is_numeric($get["limit"])) ? (int) $get['limit'] : 20;
$this->searchparams['limit'] = $limit;
$fullsearch = ((!isset($get["fullsearch"]) && $this->settings->_defaultSearchMethod == 'fulltext') || !empty($get["fullsearch"])) && $this->settings->_enableFullSearch;
$this->searchparams['fullsearch'] = $fullsearch;
$facetsearch = !empty($get["facetsearch"]) && $this->settings->_enableFullSearch;
$this->searchparams['facetsearch'] = $facetsearch;
if (isset($get["query"]) && is_string($get["query"])) {
$query = $get["query"];
} else {
$query = "";
}
$this->searchparams['query'] = $query;
// Check to see if the search has been restricted to a particular
// mimetype. {{{
$mimetype = [];
if (isset($get["mimetype"])) {
if (!is_array($get['mimetype'])) {
if(!empty($get['mimetype']))
$mimetype[] = $get['mimetype'];
} else {
foreach($get["mimetype"] as $l) {
if($l)
$mimetype[] = $l;
}
}
}
$this->searchparams['mimetype'] = $mimetype;
/* }}} */
// status
$status = isset($get['status']) ? $get['status'] : array();
$this->searchparams['status'] = $status;
// Get the page number to display. If the result set contains more than
// 25 entries, it is displayed across multiple pages.
//
// This requires that a page number variable be used to track which page the
// user is interested in, and an extra clause on the select statement.
//
// Default page to display is always one.
$pageNumber=1;
if (isset($get["pg"])) {
if (is_numeric($get["pg"]) && $get["pg"]>0) {
$pageNumber = (int) $get["pg"];
}
elseif (!strcasecmp($get["pg"], "all")) {
$pageNumber = "all";
}
}
$this->searchparams['pageNumber'] = $pageNumber;
if($fullsearch) {
// Search in Fulltext {{{
// record_type
if(isset($get['record_type']))
$record_type = $get['record_type'];
else
$record_type = array();
$this->searchparams['record_type'] = $record_type;
if (isset($get["attributes"]))
$attributes = $get["attributes"];
else
$attributes = array();
foreach($attributes as $an=>&$av) {
if(substr($an, 0, 5) == 'attr_') {
$tmp = explode('_', $an);
if($attrdef = $dms->getAttributeDefinition($tmp[1])) {
switch($attrdef->getType()) {
/* Turn dates into timestamps */
case SeedDMS_Core_AttributeDefinition::type_date:
foreach(['from', 'to'] as $kk)
if(!empty($av[$kk])) {
if(!is_numeric($av[$kk])) {
$av[$kk] = makeTsFromDate($av[$kk]);
}
}
break;
}
}
}
}
$this->searchparams['attributes'] = $attributes;
/* Create $order array for fulltext search */
$order = ['by'=>'', 'dir'=>''];
switch($orderby) {
case 'dd':
$order = ['by'=>'created', 'dir'=>'desc'];
break;
case 'd':
$order = ['by'=>'created', 'dir'=>'asc'];
break;
case 'nd':
$order = ['by'=>'title', 'dir'=>'desc'];
break;
case 'n':
$order = ['by'=>'title', 'dir'=>'asc'];
break;
case 'id':
$order = ['by'=>'id', 'dir'=>'desc'];
break;
case 'i':
$order = ['by'=>'id', 'dir'=>'asc'];
break;
default:
$order = ['by'=>'', 'dir'=>''];
}
$this->searchparams['order'] = $order;
// Check to see if the search has been restricted to a particular sub-tree in
// the folder hierarchy.
$startFolder = null;
if (isset($get["folderfullsearchid"]) && is_numeric($get["folderfullsearchid"]) && $get["folderfullsearchid"]>0) {
$targetid = $get["folderfullsearchid"];
$startFolder = $this->dms->getFolder($targetid);
if (!is_object($startFolder)) {
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
}
}
$this->searchparams['startFolder'] = $startFolder;
$rootFolder = $this->dms->getFolder($this->settings->_rootFolderID);
$this->searchparams['rootFolder'] = $rootFolder;
// }}}
} else {
// Search in Database {{{
/* Select if only documents (0x01), only folders (0x02) or both (0x03)
* are found
*/
$resultmode = 0x03;
if (isset($get["resultmode"]) && is_numeric($get["resultmode"])) {
$resultmode = $get['resultmode'];
}
$this->searchparams['resultmode'] = $resultmode;
$mode = "AND";
if (isset($get["mode"]) && is_numeric($get["mode"]) && $get["mode"]==0) {
$mode = "OR";
}
$this->searchparams['mode'] = $mode;
$searchin = array();
if (isset($get['searchin']) && is_array($get["searchin"])) {
foreach ($get["searchin"] as $si) {
if (isset($si) && is_numeric($si)) {
switch ($si) {
case 1: // keywords
case 2: // name
case 3: // comment
case 4: // attributes
case 5: // id
$searchin[$si] = $si;
break;
}
}
}
}
// if none is checkd search all
if (count($searchin)==0) $searchin=array(1, 2, 3, 4, 5);
$this->searchparams['searchin'] = $searchin;
// Check to see if the search has been restricted to a particular sub-tree in
// the folder hierarchy.
if (isset($get["targetid"]) && is_numeric($get["targetid"]) && $get["targetid"]>0) {
$targetid = $get["targetid"];
$startFolder = $this->dms->getFolder($targetid);
}
else {
$startFolder = $this->dms->getRootFolder();
}
if (!is_object($startFolder)) {
UI::exitError(getMLText("search"),getMLText("invalid_folder_id"));
}
$this->searchparams['startFolder'] = $startFolder;
/* Revision date {{{ */
$revisionstartts = null;
$revisionstartdate = array();
$revisionendts = null;
$revisionenddate = array();
$revised['from'] = null;
$revised['to'] = null;
if(!empty($get["revisiondatestart"])) {
$revisionstartts = makeTsFromDate($get["revisiondatestart"]);
$revisionstartdate = array('year'=>(int)date('Y', $revisionstartts), 'month'=>(int)date('m', $revisionstartts), 'day'=>(int)date('d', $revisionstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
if (!checkdate($revisionstartdate['month'], $revisionstartdate['day'], $revisionstartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_start"));
}
$revised['from'] = $revisionstartts;
}
$this->searchparams['revisionstartdate'] = $revisionstartdate;
if(!empty($get["revisiondateend"])) {
$revisionendts = makeTsFromDate($get["revisiondateend"]);
$revisionenddate = array('year'=>(int)date('Y', $revisionendts), 'month'=>(int)date('m', $revisionendts), 'day'=>(int)date('d', $revisionendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
if (!checkdate($revisionenddate['month'], $revisionenddate['day'], $revisionenddate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_revision_date_end"));
}
$revised['to'] = $revisionendts;
}
$this->searchparams['revisionenddate'] = $revisionenddate;
/* }}} */
/* Status date {{{ */
$statusstartdate = array();
$statusenddate = array();
if(!empty($get["statusdatestart"])) {
$statusstartts = makeTsFromDate($get["statusdatestart"]);
$statusstartdate = array('year'=>(int)date('Y', $statusstartts), 'month'=>(int)date('m', $statusstartts), 'day'=>(int)date('d', $statusstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
}
$this->searchparams['statusstartdate'] = $statusstartdate;
if ($statusstartdate && !checkdate($statusstartdate['month'], $statusstartdate['day'], $statusstartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_status_date_start"));
}
$this->searchparams['statusstartdate'] = $statusstartdate;
if(!empty($get["statusdateend"])) {
$statusendts = makeTsFromDate($get["statusdateend"]);
$statusenddate = array('year'=>(int)date('Y', $statusendts), 'month'=>(int)date('m', $statusendts), 'day'=>(int)date('d', $statusendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
}
if ($statusenddate && !checkdate($statusenddate['month'], $statusenddate['day'], $statusenddate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_status_date_end"));
}
$this->searchparams['statusenddate'] = $statusenddate;
/* }}} */
/* Expiration date {{{ */
$expstartdate = array();
$expenddate = array();
if(!empty($get["expirationstart"])) {
$expstartts = makeTsFromDate($get["expirationstart"]);
$expstartdate = array('year'=>(int)date('Y', $expstartts), 'month'=>(int)date('m', $expstartts), 'day'=>(int)date('d', $expstartts), 'hour'=>0, 'minute'=>0, 'second'=>0);
if (!checkdate($expstartdate['month'], $expstartdate['day'], $expstartdate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_start"));
}
}
$this->searchparams['expstartdate'] = $expstartdate;
if(!empty($get["expirationend"])) {
$expendts = makeTsFromDate($get["expirationend"]);
$expenddate = array('year'=>(int)date('Y', $expendts), 'month'=>(int)date('m', $expendts), 'day'=>(int)date('d', $expendts), 'hour'=>23, 'minute'=>59, 'second'=>59);
if (!checkdate($expenddate['month'], $expenddate['day'], $expenddate['year'])) {
UI::exitError(getMLText("search"),getMLText("invalid_expiration_date_end"));
}
}
$this->searchparams['expenddate'] = $expenddate;
/* }}} */
$reception = array();
if (isset($get["reception"])){
$reception = $get["reception"];
}
$this->searchparams['reception'] = $reception;
/* Do not search for folders if result shall be filtered by status.
* If this is not done, unexplainable results will be delivered.
* e.g. a search for expired documents of a given user will list
* also all folders of that user because the status doesn't apply
* to folders.
*/
// if($status)
// $resultmode = 0x01;
if (isset($get["attributes"]))
$attributes = $get["attributes"];
else
$attributes = array();
foreach($attributes as $attrdefid=>$attribute) {
$attrdef = $this->dms->getAttributeDefinition($attrdefid);
if($attribute) {
if($attrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date) {
if(is_array($attribute)) {
if(!empty($attributes[$attrdefid]['from']))
$attributes[$attrdefid]['from'] = date('Y-m-d', makeTsFromDate($attribute['from']));
if(!empty($attributes[$attrdefid]['to']))
$attributes[$attrdefid]['to'] = date('Y-m-d', makeTsFromDate($attribute['to']));
} else {
$attributes[$attrdefid] = date('Y-m-d', makeTsFromDate($attribute));
}
}
}
}
$this->searchparams['attributes'] = $attributes;
// }}}
}
return $this->searchparams;
} /* }}} */
public function setSearchParam($name, $value) {
$this->searchparams[$name] = $value;
}
public function search() { /* {{{ */
if($this->searchparams['fullsearch']) {
if($this->settings->_fullSearchEngine == 'lucene') {
Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
}
$startTime = $this->getTime();
$total = 0;
$index = $this->fulltextservice->Indexer();
if($index) {
if(!empty($this->settings->_suggestTerms) && !empty($get['query'])) {
$st = preg_split("/[\s,]+/", trim($get['query']));
if($lastterm = end($st))
$this->terms = $index->terms($lastterm, $this->settings->_suggestTerms);
}
$limit = $this->searchparams['limit'];
$lucenesearch = $this->fulltextservice->Search();
$searchresult = $lucenesearch->search($this->searchparams['query'],
array(
'record_type'=>$this->searchparams['record_type'],
'owner'=>$this->searchparams['ownernames'],
'status'=>$this->searchparams['status'],
'category'=>$this->searchparams['categorynames'],
'user'=>$this->user->isAdmin() ? [] : [$this->user->getLogin()],
'mimetype'=>$this->searchparams['mimetype'],
'startFolder'=>$this->searchparams['startFolder'],
'rootFolder'=>$this->searchparams['rootFolder'],
'created_start'=>$this->searchparams['created']['from'],
'created_end'=>$this->searchparams['created']['to'],
'modified_start'=>$this->searchparams['modified']['from'],
'modified_end'=>$this->searchparams['modified']['to'],
'filesize_start'=>$this->searchparams['filesize']['from'],
'filesize_end'=>$this->searchparams['filesize']['to'],
'attributes'=>$this->searchparams['attributes']
), ($this->searchparams['pageNumber'] == 'all' ? array() : array('limit'=>$limit, 'offset'=>$limit * ($this->searchparams['pageNumber']-1))), $this->searchparams['order']);
if($searchresult !== false) {
$entries = array();
$facets = $searchresult['facets'];
$stats = $searchresult['stats'] ?? null;
$dcount = 0;
$fcount = 0;
if($searchresult['hits']) {
foreach($searchresult['hits'] as $hit) {
if($hit['document_id'][0] == 'D') {
if($tmp = $this->dms->getDocument(substr($hit['document_id'], 1))) {
// if($tmp->getAccessMode($user) >= M_READ) {
$tmp->verifyLastestContentExpriry();
$entries[] = $tmp;
$dcount++;
// }
}
} elseif($hit['document_id'][0] == 'F') {
if($tmp = $this->dms->getFolder(substr($hit['document_id'], 1))) {
// if($tmp->getAccessMode($user) >= M_READ) {
$entries[] = $tmp;
$fcount++;
// }
}
}
}
if(isset($facets['record_type'])) {
$fcount = isset($facets['record_type']['folder']) ? $facets['record_type']['folder'] : 0;
$dcount = isset($facets['record_type']['document']) ? $facets['record_type']['document'] : 0 ;
}
}
$this->fcount = $fcount;
$this->dcount = $dcount;
$this->stats = $stats;
$this->entries = $entries;
$this->facets = $facets;
$totalPages = 0;
if($limit > 0) {
if($searchresult['count'] > $limit) {
$totalPages = (int) ($searchresult['count']/$limit);
if($searchresult['count']%$limit)
$totalPages++;
} else {
$totalPages = 1;
}
}
$this->total = $searchresult['count'];
$this->totalPages = $totalPages;
}
$searchTime = $this->getTime() - $startTime;
$this->searchTime = round($searchTime, 2);
}
} else {
// ---------------- Start searching -----------------------------------------
$startTime = $this->getTime();
$resArr = $this->dms->search(array(
'query'=>$this->searchparams['query'],
'limit'=>0,
'offset'=>0,
'logicalmode'=>$this->searchparams['mode'],
'searchin'=>$this->searchparams['searchin'],
'startFolder'=>$this->searchparams['startFolder'],
'owner'=>$this->searchparams['ownerobjs'],
'status'=>$this->searchparams['status'],
'mimetype'=>$this->searchparams['mimetype'],
'creationstartdate'=>$this->searchparams['created']['from'],
'creationenddate'=>$this->searchparams['created']['to'],
'modificationstartdate'=>$this->searchparams['modified']['from'],
'modificationenddate'=>$this->searchparams['modified']['to'],
'filesizestart'=>$this->searchparams['filesize']['from'],
'filesizeend'=>$this->searchparams['filesize']['to'],
'categories'=>$this->searchparams['categories'],
'attributes'=>$this->searchparams['attributes'],
'mode'=>$this->searchparams['resultmode'],
'expirationstartdate'=>$this->searchparams['expstartdate'],
'expirationenddate'=>$this->searchparams['expenddate'],
'revisionstartdate'=>$this->searchparams['revisionstartdate'],
'revisionenddate'=>$this->searchparams['revisionenddate'],
'reception'=>$this->searchparams['reception'],
'statusstartdate'=>$this->searchparams['statusstartdate'],
'statusenddate'=>$this->searchparams['statusenddate'],
'orderby'=>$this->searchparams['orderby']
));
$this->total = $resArr['totalDocs'] + $resArr['totalFolders'];
$searchTime = $this->getTime() - $startTime;
$this->searchTime = round($searchTime, 2);
$entries = array();
$fcount = 0;
if($resArr['folders']) {
foreach ($resArr['folders'] as $entry) {
if ($entry->getAccessMode($this->user) >= M_READ) {
$entries[] = $entry;
$fcount++;
}
}
}
$this->fcount = $fcount;
$dcount = 0;
if($resArr['docs']) {
foreach ($resArr['docs'] as $entry) {
if ($entry->getAccessMode($this->user) >= M_READ) {
if($entry->getLatestContent()) {
$entry->verifyLastestContentExpriry();
$entries[] = $entry;
$dcount++;
}
}
}
}
$limit = $this->searchparams['limit'];
$this->dcount = $dcount;
$totalPages = 0;
if($limit > 0) {
$totalPages = (int) (count($entries)/$limit);
if(count($entries)%$limit)
$totalPages++;
}
if($this->searchparams['pageNumber'] != 'all')
$this->entries = array_slice($entries, ($this->searchparams['pageNumber']-1)*$limit, $limit);
$this->totalPages = $totalPages;
$this->facets = array();
$this->stats = array();
}
} /* }}} */
public function getFolderCount() {
return $this->fcount;
}
public function getDocumentCount() {
return $this->dcount;
}
public function getTotal() {
return $this->total;
}
} /* }}} */

View File

@ -20,7 +20,7 @@
class SeedDMS_Version { /* {{{ */
const _number = "6.0.33";
const _number = "5.1.34";
const _string = "SeedDMS";
function __construct() {

134
index.php
View File

@ -1,38 +1,23 @@
<?php
/**
* SeedDMS (Formerly MyDMS) Document Management System
*
* PHP version 8
*
* Copyright (C) 2002-2005 Markus Westphal
* Copyright (C) 2006-2008 Malcolm Cowe
* Copyright (C) 2010-2024 Uwe Steinmann
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* @category SeedDMS
* @package SeedDMS
* @author Uwe Steinmann <info@seeddms.org>
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License
* @link https://www.seeddms.org Main Site
*/
// SeedDMS (Formerly MyDMS) Document Management System
// Copyright (C) 2002-2005 Markus Westphal
// Copyright (C) 2006-2008 Malcolm Cowe
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
require "inc/inc.Settings.php";
use DI\ContainerBuilder;
use Slim\Factory\AppFactory;
require("inc/inc.Settings.php");
if(true) {
require_once("inc/inc.Utils.php");
@ -42,51 +27,66 @@ if(true) {
require_once("inc/inc.Extension.php");
require_once("inc/inc.DBInit.php");
$containerBuilder = new \DI\ContainerBuilder();
$c = $containerBuilder->build();
AppFactory::setContainer($c);
$app = AppFactory::create();
/* put lots of data into the container, because if slim instanciates
* a class by itself (with the help from the DI container), it will
* pass the container to the constructor of the instanciated class.
*/
$container = $app->getContainer();
$container->set('dms', $dms);
$container->set('config', $settings);
$container->set('conversionmgr', $conversionmgr);
$container->set('logger', $logger);
$container->set('fulltextservice', $fulltextservice);
$container->set('notifier', $notifier);
$container->set('authenticator', $authenticator);
if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
if (method_exists($hookObj, 'addMiddleware')) {
$hookObj->addMiddleware($app);
}
$c = new \Slim\Container(); //Create Your container
$c['notFoundHandler'] = function ($c) use ($settings, $dms) {
return function ($request, $response) use ($c, $settings, $dms) {
$uri = $request->getUri();
if($uri->getBasePath())
$file = $uri->getPath();
else
$file = substr($uri->getPath(), 1);
if(file_exists($file) && is_file($file)) {
$_SERVER['SCRIPT_FILENAME'] = basename($file);
// include($file);
exit;
}
}
$app->addErrorMiddleware(false, true, true);
if($request->isXhr()) {
exit;
}
// print_r($request->getUri());
// exit;
return $c['response']
->withStatus(302)
->withHeader('Location', isset($settings->_siteDefaultPage) && strlen($settings->_siteDefaultPage)>0 ? $settings->_httpRoot.$settings->_siteDefaultPage : $settings->_httpRoot."out/out.ViewFolder.php");
};
};
$app = new \Slim\App($c);
$container = $app->getContainer();
$container['dms'] = $dms;
$container['config'] = $settings;
$container['conversionmgr'] = $conversionmgr;
$container['logger'] = $logger;
$container['fulltextservice'] = $fulltextservice;
$container['notifier'] = $notifier;
$container['authenticator'] = $authenticator;
if(isset($GLOBALS['SEEDDMS_HOOKS']['initDMS'])) {
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
if (method_exists($hookObj, 'addRoute')) {
// FIXME: pass $app only just like initRestAPI. $app has a container
// which contains all other objects
$hookObj->addRoute(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'conversionmgr'=>$conversionmgr, 'authenticator'=>$authenticator, 'fulltextservice'=>$fulltextservice, 'logger'=>$logger));
// } else {
// include("inc/inc.Authentication.php");
// if (method_exists($hookObj, 'addRouteAfterAuthentication')) {
// $hookObj->addRouteAfterAuthentication(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'user'=>$user));
// }
}
}
}
/* Catch all route */
$app->get('/{path:.*}', function($request, $response) use ($settings) {
return $response
->withHeader('Location', $settings->_httpRoot.'out/out.ViewFolder.php')
->withStatus(302);
/*
$app->get('/out/[{path:.*}]', function($request, $response, $path = null) use ($app) {
$uri = $request->getUri();
if($uri->getBasePath())
$file = $uri->getPath();
else
$file = substr($uri->getPath(), 1);
if(file_exists($file) && is_file($file)) {
$_SERVER['SCRIPT_FILENAME'] = basename($file);
include($file);
exit;
}
});
*/
$app->run();
} else {

View File

@ -406,97 +406,86 @@ echo '<p><a href="install.php">' . getMLText("settings_start_install") . '</a></
$this->contentHeading("SeedDMS Installation for version ".$_GET['version']);
$this->contentContainerStart();
$sqlfile = "update.sql";
switch($settings->_dbDriver) {
case 'mysql':
case 'mysqli':
case 'mysqlnd':
$tmp = explode(":", $settings->_dbHostname);
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
if(isset($tmp[1]))
$dsn .= ";port=".$tmp[1];
break;
case 'sqlite':
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
$sqlfile = "update-sqlite3.sql";
break;
case 'pgsql':
$tmp = explode(":", $settings->_dbHostname);
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
if(isset($tmp[1]))
$dsn .= ";port=".$tmp[1];
if(file_exists('update-'.$_GET['version'].'/update-postgres.sql'))
$sqlfile = "update-postgres.sql";
}
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
if (!$db) {
die;
}
$sqlfile = "update.sql";
switch($settings->_dbDriver) {
case 'mysql':
case 'mysqli':
case 'mysqlnd':
$tmp = explode(":", $settings->_dbHostname);
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
if(isset($tmp[1]))
$dsn .= ";port=".$tmp[1];
break;
case 'sqlite':
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
$sqlfile = "update-sqlite3.sql";
break;
case 'pgsql':
$tmp = explode(":", $settings->_dbHostname);
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
if(isset($tmp[1]))
$dsn .= ";port=".$tmp[1];
if(file_exists('update-'.$_GET['version'].'/update-postgres.sql'))
$sqlfile = "update-postgres.sql";
}
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
if (!$db) {
die;
}
$errorMsg = '';
switch($settings->_dbDriver) {
case 'mysql':
case 'mysqli':
case 'mysqlnd':
case 'sqlite':
$sql = 'select * from `tblVersion`';
break;
case 'pgsql':
$sql = 'select * from "tblVersion"';
break;
}
$res = $db->query($sql);
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
if(!empty($recs)) {
$rec = $recs[0];
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
$errorMsg = '';
$res = $db->query('select * from tblVersion');
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
if(!empty($recs)) {
$rec = $recs[0];
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
$queries = explode(";", $queries);
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
$queries = explode(";", $queries);
// execute queries
if($queries) {
echo "<h3>Updating database schema</h3>";
foreach($queries as $query) {
$query = trim($query);
if (!empty($query)) {
echo $query."<br />";
if(false === $db->exec($query)) {
$e = $db->ErrorInfo();
$errorMsg .= $e[2] . "<br/>";
}
}
// execute queries
if($queries) {
echo "<h3>Updating database schema</h3>";
foreach($queries as $query) {
$query = trim($query);
if (!empty($query)) {
echo $query."<br />";
if(false === $db->exec($query)) {
$e = $db->ErrorInfo();
$errorMsg .= $e[2] . "<br/>";
}
}
} else {
echo "<p>SQL file for update missing!</p>";
}
} else {
echo "<p>Database schema already up to date.</p>";
}
if(!$errorMsg) {
if(file_exists('update-'.$_GET['version'].'/update.php')) {
echo "<h3>Running update script</h3>";
include('update-'.$_GET['version'].'/update.php');
}
} else {
echo "<h3>Error Messages</h3>";
echo $errorMsg;
}
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
} else {
echo "<p>Could not determine database schema version.</p>";
echo "<p>SQL file for update missing!</p>";
}
$db = null;
} else {
echo "<p>Database schema already up to date.</p>";
}
// just remove info for web page installation
$settings->_printDisclaimer = false;
$settings->_footNote = false;
// end of the page
if(!$errorMsg) {
if(file_exists('update-'.$_GET['version'].'/update.php')) {
echo "<h3>Running update script</h3>";
include('update-'.$_GET['version'].'/update.php');
}
} else {
echo "<h3>Error Messages</h3>";
echo $errorMsg;
}
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
} else {
echo "<p>Could not determine database schema version.</p>";
}
$db = null;
// just remove info for web page installation
$settings->_printDisclaimer = false;
$settings->_footNote = false;
// end of the page
$this->contentContainerEnd();
$this->contentEnd();
$this->htmlEndPage();

View File

@ -47,35 +47,19 @@ CREATE TABLE `tblAttributeDefinitions` (
-- --------------------------------------------------------
--
-- Table structure for table `tblRoles`
--
CREATE TABLE `tblRoles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`role` smallint(1) NOT NULL DEFAULT '0',
`noaccess` varchar(30) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblUsers`
--
--
CREATE TABLE `tblUsers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(50) DEFAULT NULL,
`pwd` varchar(50) DEFAULT NULL,
`secret` varchar(50) DEFAULT NULL,
`fullName` varchar(100) DEFAULT NULL,
`email` varchar(70) DEFAULT NULL,
`language` varchar(32) NOT NULL,
`theme` varchar(32) NOT NULL,
`comment` text NOT NULL,
`role` int(11) NOT NULL,
`role` smallint(1) NOT NULL DEFAULT '0',
`hidden` smallint(1) NOT NULL DEFAULT '0',
`pwdExpiration` datetime DEFAULT NULL,
`loginfailures` tinyint(4) NOT NULL DEFAULT '0',
@ -83,28 +67,11 @@ CREATE TABLE `tblUsers` (
`quota` bigint(20) DEFAULT NULL,
`homefolder` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `login` (`login`),
CONSTRAINT `tblUsers_role` FOREIGN KEY (`role`) REFERENCES `tblRoles` (`id`)
UNIQUE KEY `login` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblUserSubstitutes`
--
CREATE TABLE `tblUserSubstitutes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) DEFAULT null,
`substitute` int(11) DEFAULT null,
PRIMARY KEY (`id`),
UNIQUE KEY `user` (`user`,`substitute`),
CONSTRAINT `tblUserSubstitutes_user` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`substitute`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
);
-- --------------------------------------------------------
--
-- Table structure for table `tblUserPasswordRequest`
--
@ -255,7 +222,6 @@ CREATE TABLE `tblDocumentApprovers` (
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentApprovers_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentApproversRequired` ON `tblDocumentApprovers` (`required`);
-- --------------------------------------------------------
@ -296,7 +262,6 @@ CREATE TABLE `tblDocumentContent` (
`mimeType` varchar(100) NOT NULL DEFAULT '',
`fileSize` bigint(20) DEFAULT NULL,
`checksum` char(32) DEFAULT NULL,
`revisiondate` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `document` (`document`,`version`),
CONSTRAINT `tblDocumentContent_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`)
@ -385,23 +350,6 @@ CREATE TABLE `tblDocumentLocks` (
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentCheckOuts`
--
CREATE TABLE `tblDocumentCheckOuts` (
`document` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`userID` int(11) NOT NULL DEFAULT '0',
`date` datetime NOT NULL,
`filename` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`document`),
CONSTRAINT `tblDocumentCheckOuts_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentCheckOuts_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentReviewers`
--
@ -415,7 +363,6 @@ CREATE TABLE `tblDocumentReviewers` (
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentReviewers_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentReviewersRequired` ON `tblDocumentReviewers` (`required`);
-- --------------------------------------------------------
@ -439,83 +386,6 @@ CREATE TABLE `tblDocumentReviewLog` (
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRecipients`
--
CREATE TABLE `tblDocumentRecipients` (
`receiptID` int(11) NOT NULL AUTO_INCREMENT,
`documentID` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`type` tinyint(4) NOT NULL DEFAULT '0',
`required` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`receiptID`),
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentRecipients_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentRecipientsRequired` ON `tblDocumentRecipients` (`required`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentReceiptLog`
--
CREATE TABLE `tblDocumentReceiptLog` (
`receiptLogID` int(11) NOT NULL AUTO_INCREMENT,
`receiptID` int(11) NOT NULL DEFAULT '0',
`status` tinyint(4) NOT NULL DEFAULT '0',
`comment` text NOT NULL,
`date` datetime NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`receiptLogID`),
KEY `tblDocumentReceiptLog_receipt` (`receiptID`),
KEY `tblDocumentReceiptLog_user` (`userID`),
CONSTRAINT `tblDocumentReceiptLog_recipient` FOREIGN KEY (`receiptID`) REFERENCES `tblDocumentRecipients` (`receiptID`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentReceiptLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRevisors`
--
CREATE TABLE `tblDocumentRevisors` (
`revisionID` int(11) NOT NULL AUTO_INCREMENT,
`documentID` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`type` tinyint(4) NOT NULL DEFAULT '0',
`required` int(11) NOT NULL DEFAULT '0',
`startdate` datetime DEFAULT NULL,
PRIMARY KEY (`revisionID`),
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentRevisors_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentRevisorsRequired` ON `tblDocumentRevisors` (`required`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRevisionLog`
--
CREATE TABLE `tblDocumentRevisionLog` (
`revisionLogID` int(11) NOT NULL AUTO_INCREMENT,
`revisionID` int(11) NOT NULL DEFAULT '0',
`status` tinyint(4) NOT NULL DEFAULT '0',
`comment` text NOT NULL,
`date` datetime NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`revisionLogID`),
KEY `tblDocumentRevisionLog_revision` (`revisionID`),
KEY `tblDocumentRevisionLog_user` (`userID`),
CONSTRAINT `tblDocumentRevisionLog_revision` FOREIGN KEY (`revisionID`) REFERENCES `tblDocumentRevisors` (`revisionID`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentRevisionLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentStatus`
--
@ -738,7 +608,6 @@ CREATE TABLE `tblWorkflows` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`initstate` int(11) NOT NULL,
`layoutdata` text DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `tblWorkflow_initstate` (`initstate`),
CONSTRAINT `tblWorkflow_initstate` FOREIGN KEY (`initstate`) REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE
@ -805,48 +674,49 @@ CREATE TABLE `tblWorkflowTransitionGroups` (
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowDocumentContent`
--
CREATE TABLE `tblWorkflowDocumentContent` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` int(11) DEFAULT NULL,
`workflow` int(11) DEFAULT NULL,
`document` int(11) DEFAULT NULL,
`version` smallint(5) DEFAULT NULL,
`state` int(11) DEFAULT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `tblWorkflowDocument_document` (`document`),
KEY `tblWorkflowDocument_workflow` (`workflow`),
KEY `tblWorkflowDocument_state` (`state`),
CONSTRAINT `tblWorkflowDocument_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowDocument_state` FOREIGN KEY (`state`) REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowDocumentContent_parent` FOREIGN KEY (`parent`) REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowDocument_workflow` FOREIGN KEY (`workflow`) REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowLog`
--
CREATE TABLE `tblWorkflowLog` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`workflowdocumentcontent` int(11) NOT NULL DEFAULT '0',
`document` int(11) DEFAULT NULL,
`version` smallint(5) DEFAULT NULL,
`workflow` int(11) DEFAULT NULL,
`userid` int(11) DEFAULT NULL,
`transition` int(11) DEFAULT NULL,
`date` datetime NOT NULL,
`comment` text,
PRIMARY KEY (`id`),
KEY `tblWorkflowLog_document` (`document`),
KEY `tblWorkflowLog_workflow` (`workflow`),
KEY `tblWorkflowLog_userid` (`userid`),
KEY `tblWorkflowLog_transition` (`transition`),
KEY `tblWorkflowLog_workflowdocumentcontent` (`workflowdocumentcontent`),
CONSTRAINT `tblWorkflowLog_workflowdocumentcontent` FOREIGN KEY (`workflowdocumentcontent`) REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowLog_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowLog_transition` FOREIGN KEY (`transition`) REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowLog_userid` FOREIGN KEY (`userid`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
CONSTRAINT `tblWorkflowLog_userid` FOREIGN KEY (`userid`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowLog_workflow` FOREIGN KEY (`workflow`) REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowDocumentContent`
--
CREATE TABLE `tblWorkflowDocumentContent` (
`parentworkflow` int(11) DEFAULT '0',
`workflow` int(11) DEFAULT NULL,
`document` int(11) DEFAULT NULL,
`version` smallint(5) DEFAULT NULL,
`state` int(11) DEFAULT NULL,
`date` datetime NOT NULL,
KEY `tblWorkflowDocument_document` (`document`),
KEY `tblWorkflowDocument_workflow` (`workflow`),
KEY `tblWorkflowDocument_state` (`state`),
CONSTRAINT `tblWorkflowDocument_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowDocument_state` FOREIGN KEY (`state`) REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblWorkflowDocument_workflow` FOREIGN KEY (`workflow`) REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
@ -866,127 +736,6 @@ CREATE TABLE `tblWorkflowMandatoryWorkflow` (
-- --------------------------------------------------------
--
-- Table structure for transmittal
--
CREATE TABLE `tblTransmittals` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`comment` text NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
`date` datetime DEFAULT NULL,
`public` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
CONSTRAINT `tblTransmittals_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for transmittal item
--
CREATE TABLE `tblTransmittalItems` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transmittal` int(11) NOT NULL DEFAULT '0',
`document` int(11) DEFAULT NULL,
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`date` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE (transmittal, document, version),
CONSTRAINT `tblTransmittalItems_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblTransmittalItem_transmittal` FOREIGN KEY (`transmittal`) REFERENCES `tblTransmittals` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for cached read access
--
CREATE TABLE `tblCachedAccess` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`document` int(11) DEFAULT NULL,
`user` int(11) DEFAULT null,
`mode` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
CONSTRAINT `tblCachedAccess_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblCachedAccess_user` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for access request objects
--
CREATE TABLE `tblAros` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` int(11),
`model` text NOT NULL,
`foreignid` int(11) NOT NULL DEFAULT '0',
`alias` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for access control objects
--
CREATE TABLE `tblAcos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` int(11),
`model` text NOT NULL,
`foreignid` int(11) NOT NULL DEFAULT '0',
`alias` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for acos/aros relation
--
CREATE TABLE `tblArosAcos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aro` int(11) NOT NULL DEFAULT '0',
`aco` int(11) NOT NULL DEFAULT '0',
`create` tinyint(4) NOT NULL DEFAULT '-1',
`read` tinyint(4) NOT NULL DEFAULT '-1',
`update` tinyint(4) NOT NULL DEFAULT '-1',
`delete` tinyint(4) NOT NULL DEFAULT '-1',
PRIMARY KEY (`id`),
UNIQUE (aco, aro),
CONSTRAINT `tblArosAcos_acos` FOREIGN KEY (`aco`) REFERENCES `tblAcos` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblArosAcos_aros` FOREIGN KEY (`aro`) REFERENCES `tblAros` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblSchedulerTask`
--
CREATE TABLE `tblSchedulerTask` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`description` text DEFAULT NULL,
`disabled` smallint(1) NOT NULL DEFAULT '0',
`extension` varchar(100) DEFAULT NULL,
`task` varchar(100) DEFAULT NULL,
`frequency` varchar(100) DEFAULT NULL,
`params` text DEFAULT NULL,
`nextrun` datetime DEFAULT NULL,
`lastrun` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Table structure for table `tblVersion`
--
@ -1004,10 +753,7 @@ CREATE TABLE `tblVersion` (
-- Initial content for database
--
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (1, 'Admin', 1);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (2, 'Guest', 2);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (3, 'User', 0);
INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL);
INSERT INTO tblUsers VALUES (2, 'guest', NULL, '', 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL);
INSERT INTO tblUsers VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL);
INSERT INTO tblUsers VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL);
INSERT INTO tblFolders VALUES (1, 'DMS', 0, '', 'DMS root', UNIX_TIMESTAMP(), 1, 0, 2, 0);
INSERT INTO tblVersion VALUES (NOW(), 6, 0, 0);
INSERT INTO tblVersion VALUES (NOW(), 5, 1, 0);

View File

@ -43,19 +43,6 @@ CREATE TABLE "tblAttributeDefinitions" (
-- --------------------------------------------------------
--
-- Table structure for table `tblRoles`
--
CREATE TABLE "tblRoles" (
"id" SERIAL UNIQUE,
"name" varchar(50) default NULL,
"role" INTEGER NOT NULL default '0',
"noaccess" varchar(30) NOT NULL default ''
) ;
-- --------------------------------------------------------
--
-- Table structure for table "tblUsers"
--
@ -64,7 +51,6 @@ CREATE TABLE "tblUsers" (
"id" SERIAL UNIQUE,
"login" varchar(50) default NULL,
"pwd" varchar(50) default NULL,
"secret" varchar(50) default NULL,
"fullName" varchar(100) default NULL,
"email" varchar(70) default NULL,
"language" varchar(32) NOT NULL,
@ -82,18 +68,6 @@ CREATE TABLE "tblUsers" (
-- --------------------------------------------------------
--
-- Table structure for table `tblUserSubstitutes`
--
CREATE TABLE "tblUserSubstitutes" (
"id" SERIAL UNIQUE,
"user" INTEGER NOT NULL default '0' REFERENCES "tblUsers" ("id") ON DELETE CASCADE,
"substitute" INTEGER NOT NULL default '0' REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
-- --------------------------------------------------------
--
-- Table structure for table "tblUserPasswordRequest"
--
@ -251,7 +225,6 @@ CREATE TABLE "tblDocumentContent" (
"mimeType" varchar(100) NOT NULL default '',
"fileSize" BIGINT,
"checksum" char(32),
"revisiondate" TIMESTAMP default NULL,
UNIQUE ("document","version")
) ;
@ -317,21 +290,6 @@ CREATE TABLE "tblDocumentLocks" (
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentCheckOuts`
--
CREATE TABLE "tblDocumentCheckOuts" (
"document" INTEGER REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER NOT NULL default '0',
"userID" INTEGER NOT NULL default '0' REFERENCES "tblUsers" ("id"),
"date" TEXT NOT NULL,
"filename" varchar(255) NOT NULL default '',
UNIQUE ("document")
) ;
-- --------------------------------------------------------
--
-- Table structure for table "tblDocumentReviewers"
--
@ -362,67 +320,6 @@ CREATE TABLE "tblDocumentReviewLog" (
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRecipients`
--
CREATE TABLE "tblDocumentRecipients" (
"receiptID" SERIAL UNIQUE,
"documentID" INTEGER NOT NULL default '0' REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER NOT NULL default '0',
"type" INTEGER NOT NULL default '0',
"required" INTEGER NOT NULL default '0',
UNIQUE ("documentID","version","type","required")
) ;
-- --------------------------------------------------------
--
-- Table structure for table "tblDocumentReceiptLog"
--
CREATE TABLE "tblDocumentReceiptLog" (
"receiptLogID" SERIAL UNIQUE,
"receiptID" INTEGER NOT NULL default 0 REFERENCES "tblDocumentRecipients" ("receiptID") ON DELETE CASCADE,
"status" INTEGER NOT NULL default 0,
"comment" TEXT NOT NULL,
"date" TEXT NOT NULL,
"userID" INTEGER NOT NULL default 0 REFERENCES "tblUsers" ("id") ON DELETE CASCADE
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRevisors`
--
CREATE TABLE "tblDocumentRevisors" (
"revisionID" SERIAL UNIQUE,
"documentID" INTEGER NOT NULL default '0' REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER NOT NULL default '0',
"type" INTEGER NOT NULL default '0',
"required" INTEGER NOT NULL default '0',
"startdate" TIMESTAMP default NULL,
UNIQUE ("documentID","version","type","required")
) ;
-- --------------------------------------------------------
--
-- Table structure for table "tblDocumentRevisionLog"
--
CREATE TABLE "tblDocumentRevisionLog" (
"revisionLogID" SERIAL UNIQUE,
"revisionID" INTEGER NOT NULL default 0 REFERENCES "tblDocumentRevisors" ("revisionID") ON DELETE CASCADE,
"status" INTEGER NOT NULL default 0,
"comment" TEXT NOT NULL,
"date" TIMESTAMP default NULL,
"userID" INTEGER NOT NULL default 0 REFERENCES "tblUsers" ("id") ON DELETE CASCADE
) ;
-- --------------------------------------------------------
--
-- Table structure for table "tblDocumentStatus"
--
@ -536,7 +433,7 @@ CREATE TABLE "tblSessions" (
"theme" varchar(30) NOT NULL default '',
"language" varchar(30) NOT NULL default '',
"clipboard" text default NULL,
"su" INTEGER DEFAULT NULL,
"su" INTEGER DEFAULT NULL,
"splashmsg" text default NULL
) ;
@ -617,8 +514,7 @@ CREATE TABLE "tblWorkflowActions" (
CREATE TABLE "tblWorkflows" (
"id" SERIAL UNIQUE,
"name" text NOT NULL,
"initstate" INTEGER NOT NULL REFERENCES "tblWorkflowStates" ("id") ON DELETE CASCADE,
"layoutdata" text default NULL
"initstate" INTEGER NOT NULL REFERENCES "tblWorkflowStates" ("id") ON DELETE CASCADE
) ;
-- --------------------------------------------------------
@ -663,29 +559,15 @@ CREATE TABLE "tblWorkflowTransitionGroups" (
-- --------------------------------------------------------
--
-- Table structure for workflow document relation
--
CREATE TABLE "tblWorkflowDocumentContent" (
"id" SERIAL UNIQUE,
"parent" INTEGER DEFAULT NULL REFERENCES "tblWorkflowDocumentContent" ("id") ON DELETE CASCADE,
"workflow" INTEGER DEFAULT NULL REFERENCES "tblWorkflows" ("id") ON DELETE CASCADE,
"document" INTEGER DEFAULT NULL REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER DEFAULT NULL,
"state" INTEGER DEFAULT NULL REFERENCES "tblWorkflowStates" ("id") ON DELETE CASCADE,
"date" TIMESTAMP default NULL
) ;
-- --------------------------------------------------------
--
-- Table structure for workflow log
--
CREATE TABLE "tblWorkflowLog" (
"id" SERIAL UNIQUE,
"workflowdocumentcontent" INTEGER DEFAULT NULL REFERENCES "tblWorkflowDocumentContent" ("id") ON DELETE CASCADE,
"document" INTEGER default NULL REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER default NULL,
"workflow" INTEGER default NULL REFERENCES "tblWorkflows" ("id") ON DELETE CASCADE,
"userid" INTEGER default NULL REFERENCES "tblUsers" ("id") ON DELETE CASCADE,
"transition" INTEGER default NULL REFERENCES "tblWorkflowTransitions" ("id") ON DELETE CASCADE,
"date" TIMESTAMP default NULL,
@ -694,6 +576,21 @@ CREATE TABLE "tblWorkflowLog" (
-- --------------------------------------------------------
--
-- Table structure for workflow document relation
--
CREATE TABLE "tblWorkflowDocumentContent" (
"parentworkflow" INTEGER DEFAULT 0,
"workflow" INTEGER DEFAULT NULL REFERENCES "tblWorkflows" ("id") ON DELETE CASCADE,
"document" INTEGER DEFAULT NULL REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER DEFAULT NULL,
"state" INTEGER DEFAULT NULL REFERENCES "tblWorkflowStates" ("id") ON DELETE CASCADE,
"date" TIMESTAMP default NULL
) ;
-- --------------------------------------------------------
--
-- Table structure for mandatory workflows
--
@ -706,101 +603,6 @@ CREATE TABLE "tblWorkflowMandatoryWorkflow" (
-- --------------------------------------------------------
--
-- Table structure for transmittal
--
CREATE TABLE "tblTransmittals" (
"id" SERIAL UNIQUE,
"name" text NOT NULL,
"comment" text NOT NULL,
"userID" INTEGER NOT NULL default '0' REFERENCES "tblUsers" ("id") ON DELETE CASCADE,
"date" TIMESTAMP default NULL,
"public" INTEGER NOT NULL default '0'
);
-- --------------------------------------------------------
--
-- Table structure for transmittal item
--
CREATE TABLE "tblTransmittalItems" (
"id" SERIAL UNIQUE,
"transmittal" INTEGER NOT NULL DEFAULT '0' REFERENCES "tblTransmittals" ("id") ON DELETE CASCADE,
"document" INTEGER default NULL REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
"version" INTEGER NOT NULL default '0',
"date" TIMESTAMP default NULL,
UNIQUE (transmittal, document, version)
);
-- --------------------------------------------------------
--
-- Table structure for access request objects
--
CREATE TABLE "tblAros" (
"id" SERIAL UNIQUE,
"parent" INTEGER,
"model" TEXT NOT NULL,
"foreignid" INTEGER NOT NULL DEFAULT '0',
"alias" TEXT
) ;
-- --------------------------------------------------------
--
-- Table structure for access control objects
--
CREATE TABLE "tblAcos" (
"id" SERIAL UNIQUE,
"parent" INTEGER,
"model" TEXT NOT NULL,
"foreignid" INTEGER NOT NULL DEFAULT '0',
"alias" TEXT
) ;
-- --------------------------------------------------------
--
-- Table structure for acos/aros relation
--
CREATE TABLE "tblArosAcos" (
"id" SERIAL UNIQUE,
"aro" INTEGER NOT NULL DEFAULT '0' REFERENCES "tblAros" ("id") ON DELETE CASCADE,
"aco" INTEGER NOT NULL DEFAULT '0' REFERENCES "tblAcos" ("id") ON DELETE CASCADE,
"create" INTEGER NOT NULL DEFAULT '-1',
"read" INTEGER NOT NULL DEFAULT '-1',
"update" INTEGER NOT NULL DEFAULT '-1',
"delete" INTEGER NOT NULL DEFAULT '-1',
UNIQUE (aco, aro)
) ;
-- --------------------------------------------------------
--
-- Table structure for tblSchedulerTask
--
CREATE TABLE "tblSchedulerTask" (
"id" SERIAL UNIQUE,
"name" varchar(100) DEFAULT NULL,
"description" TEXT DEFAULT NULL,
"disabled" INTEGER NOT NULL DEFAULT '0',
"extension" varchar(100) DEFAULT NULL,
"task" varchar(100) DEFAULT NULL,
"frequency" varchar(100) DEFAULT NULL,
"params" TEXT DEFAULT NULL,
"nextrun" TIMESTAMP DEFAULT NULL,
"lastrun" TIMESTAMP DEFAULT NULL
) ;
-- --------------------------------------------------------
--
-- Table structure for version
--
@ -818,16 +620,10 @@ CREATE TABLE "tblVersion" (
-- Initial content for database
--
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (1, 'Admin', 1);
SELECT nextval('"tblRoles_id_seq"');
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (2, 'Guest', 2);
SELECT nextval('"tblRoles_id_seq"');
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (3, 'User', 0);
SELECT nextval('"tblRoles_id_seq"');
INSERT INTO "tblUsers" VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL);
INSERT INTO "tblUsers" VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, NULL, 0, 0, 0, NULL);
SELECT nextval('"tblUsers_id_seq"');
INSERT INTO "tblUsers" VALUES (2, 'guest', NULL, '', 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL);
INSERT INTO "tblUsers" VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, NULL, 0, 0, 0, NULL);
SELECT nextval('"tblUsers_id_seq"');
INSERT INTO "tblFolders" VALUES (1, 'DMS', 0, '', 'DMS root', extract(epoch from now()), 1, 0, 2, 0);
SELECT nextval('"tblFolders_id_seq"');
INSERT INTO "tblVersion" VALUES (CURRENT_TIMESTAMP, 6, 0, 0);
INSERT INTO "tblVersion" VALUES (CURRENT_TIMESTAMP, 5, 1, 0);

View File

@ -43,20 +43,6 @@ CREATE TABLE `tblAttributeDefinitions` (
-- --------------------------------------------------------
--
-- Table structure for table `tblRoles`
--
CREATE TABLE `tblRoles` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` varchar(50) default NULL,
`role` INTEGER NOT NULL default '0',
`noaccess` varchar(30) NOT NULL default '',
UNIQUE (`name`)
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblUsers`
--
@ -65,13 +51,12 @@ CREATE TABLE `tblUsers` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`login` varchar(50) default NULL,
`pwd` varchar(50) default NULL,
`secret` varchar(50) default NULL,
`fullName` varchar(100) default NULL,
`email` varchar(70) default NULL,
`language` varchar(32) NOT NULL,
`theme` varchar(32) NOT NULL,
`comment` text NOT NULL,
`role` INTEGER NOT NULL REFERENCES `tblRoles` (`id`),
`role` INTEGER NOT NULL default '0',
`hidden` INTEGER NOT NULL default '0',
`pwdExpiration` TEXT default NULL,
`loginfailures` INTEGER NOT NULL default '0',
@ -83,19 +68,6 @@ CREATE TABLE `tblUsers` (
-- --------------------------------------------------------
--
-- Table structure for table `tblUserSubstitutes`
--
CREATE TABLE `tblUserSubstitutes` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`user` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`substitute` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
UNIQUE (`user`, `substitute`)
);
-- --------------------------------------------------------
--
-- Table structure for table `tblUserPasswordRequest`
--
@ -163,7 +135,7 @@ CREATE TABLE `tblFolderAttributes` (
`folder` INTEGER default NULL REFERENCES `tblFolders` (`id`) ON DELETE CASCADE,
`attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`),
`value` text default NULL,
UNIQUE (`folder`, `attrdef`)
UNIQUE (folder, attrdef)
) ;
-- --------------------------------------------------------
@ -199,7 +171,7 @@ CREATE TABLE `tblDocumentAttributes` (
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`),
`value` text default NULL,
UNIQUE (`document`, `attrdef`)
UNIQUE (document, attrdef)
) ;
-- --------------------------------------------------------
@ -216,7 +188,6 @@ CREATE TABLE `tblDocumentApprovers` (
`required` INTEGER NOT NULL default '0',
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentApproversRequired` ON `tblDocumentApprovers` (`required`);
-- --------------------------------------------------------
@ -232,7 +203,6 @@ CREATE TABLE `tblDocumentApproveLog` (
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentApproveLogApproveID` ON `tblDocumentApproveLog` (`approveID`);
-- --------------------------------------------------------
@ -253,7 +223,6 @@ CREATE TABLE `tblDocumentContent` (
`mimeType` varchar(100) NOT NULL default '',
`fileSize` INTEGER,
`checksum` char(32),
`revisiondate` TEXT default NULL,
UNIQUE (`document`,`version`)
) ;
@ -268,7 +237,7 @@ CREATE TABLE `tblDocumentContentAttributes` (
`content` INTEGER default NULL REFERENCES `tblDocumentContent` (`id`) ON DELETE CASCADE,
`attrdef` INTEGER default NULL REFERENCES `tblAttributeDefinitions` (`id`),
`value` text default NULL,
UNIQUE (`content`, `attrdef`)
UNIQUE (content, attrdef)
) ;
-- --------------------------------------------------------
@ -319,21 +288,6 @@ CREATE TABLE `tblDocumentLocks` (
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentCheckOuts`
--
CREATE TABLE `tblDocumentCheckOuts` (
`document` INTEGER REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`),
`date` TEXT NOT NULL,
`filename` varchar(255) NOT NULL default '',
UNIQUE (`document`)
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentReviewers`
--
@ -346,7 +300,6 @@ CREATE TABLE `tblDocumentReviewers` (
`required` INTEGER NOT NULL default '0',
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentReviewersRequired` ON `tblDocumentReviewers` (`required`);
-- --------------------------------------------------------
@ -362,72 +315,6 @@ CREATE TABLE `tblDocumentReviewLog` (
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentReviewLogReviewID` ON `tblDocumentReviewLog` (`reviewID`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRecipients`
--
CREATE TABLE `tblDocumentRecipients` (
`receiptID` INTEGER PRIMARY KEY AUTOINCREMENT,
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`type` INTEGER NOT NULL default '0',
`required` INTEGER NOT NULL default '0',
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentRecipientsRequired` ON `tblDocumentRecipients` (`required`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentReceiptLog`
--
CREATE TABLE `tblDocumentReceiptLog` (
`receiptLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
`receiptID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRecipients` (`receiptID`) ON DELETE CASCADE,
`status` INTEGER NOT NULL default 0,
`comment` TEXT NOT NULL,
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentReceiptLogReceiptID` ON `tblDocumentReceiptLog` (`receiptID`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRevisors`
--
CREATE TABLE `tblDocumentRevisors` (
`revisionID` INTEGER PRIMARY KEY AUTOINCREMENT,
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`type` INTEGER NOT NULL default '0',
`required` INTEGER NOT NULL default '0',
`startdate` TEXT default NULL,
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentRevisorsRequired` ON `tblDocumentRevisors` (`required`);
-- --------------------------------------------------------
--
-- Table structure for table `tblDocumentRevisionLog`
--
CREATE TABLE `tblDocumentRevisionLog` (
`revisionLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
`revisionID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRevisors` (`revisionID`) ON DELETE CASCADE,
`status` INTEGER NOT NULL default 0,
`comment` TEXT NOT NULL,
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentRevisionLogRevisionID` ON `tblDocumentRevisionLog` (`revisionID`);
-- --------------------------------------------------------
@ -456,7 +343,6 @@ CREATE TABLE `tblDocumentStatusLog` (
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentStatusLogStatusID` ON `tblDocumentStatusLog` (`StatusID`);
-- --------------------------------------------------------
@ -626,8 +512,7 @@ CREATE TABLE `tblWorkflowActions` (
CREATE TABLE `tblWorkflows` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` text NOT NULL,
`initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
`layoutdata` text default NULL
`initstate` INTEGER NOT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE
) ;
-- --------------------------------------------------------
@ -672,29 +557,15 @@ CREATE TABLE `tblWorkflowTransitionGroups` (
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowDocumentContent`
--
CREATE TABLE `tblWorkflowDocumentContent` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER DEFAULT NULL,
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
`date` datetime NOT NULL
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowLog`
--
CREATE TABLE `tblWorkflowLog` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`workflowdocumentcontent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER default NULL,
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
`date` datetime NOT NULL,
@ -703,6 +574,21 @@ CREATE TABLE `tblWorkflowLog` (
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowDocumentContent`
--
CREATE TABLE `tblWorkflowDocumentContent` (
`parentworkflow` INTEGER DEFAULT 0,
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER DEFAULT NULL,
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
`date` datetime NOT NULL
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblWorkflowMandatoryWorkflow`
--
@ -710,102 +596,7 @@ CREATE TABLE `tblWorkflowLog` (
CREATE TABLE `tblWorkflowMandatoryWorkflow` (
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`workflow` INTEGER default NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
UNIQUE(`userid`, `workflow`)
) ;
-- --------------------------------------------------------
--
-- Table structure for transmittal
--
CREATE TABLE `tblTransmittals` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` text NOT NULL,
`comment` text NOT NULL,
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`date` TEXT default NULL,
`public` INTEGER NOT NULL default '0'
);
-- --------------------------------------------------------
--
-- Table structure for transmittal item
--
CREATE TABLE `tblTransmittalItems` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`transmittal` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblTransmittals` (`id`) ON DELETE CASCADE,
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`date` TEXT default NULL,
UNIQUE (`transmittal`, `document`, `version`)
);
-- --------------------------------------------------------
--
-- Table structure for access request objects
--
CREATE TABLE `tblAros` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER,
`model` TEXT NOT NULL,
`foreignid` INTEGER NOT NULL DEFAULT '0',
`alias` TEXT
) ;
-- --------------------------------------------------------
--
-- Table structure for access control objects
--
CREATE TABLE `tblAcos` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER,
`model` TEXT NOT NULL,
`foreignid` INTEGER NOT NULL DEFAULT '0',
`alias` TEXT
) ;
-- --------------------------------------------------------
--
-- Table structure for acos/aros relation
--
CREATE TABLE `tblArosAcos` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`aro` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAros` (`id`) ON DELETE CASCADE,
`aco` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAcos` (`id`) ON DELETE CASCADE,
`create` INTEGER NOT NULL DEFAULT '-1',
`read` INTEGER NOT NULL DEFAULT '-1',
`update` INTEGER NOT NULL DEFAULT '-1',
`delete` INTEGER NOT NULL DEFAULT '-1',
UNIQUE (`aco`, `aro`)
) ;
-- --------------------------------------------------------
--
-- Table structure for table `tblSchedulerTask`
--
CREATE TABLE `tblSchedulerTask` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` varchar(100) DEFAULT NULL,
`description` TEXT DEFAULT NULL,
`disabled` INTEGER NOT NULL DEFAULT '0',
`extension` varchar(100) DEFAULT NULL,
`task` varchar(100) DEFAULT NULL,
`frequency` varchar(100) DEFAULT NULL,
`params` TEXT DEFAULT NULL,
`nextrun` TEXT DEFAULT NULL,
`lastrun` TEXT DEFAULT NULL
UNIQUE(userid, workflow)
) ;
-- --------------------------------------------------------
@ -827,10 +618,7 @@ CREATE TABLE `tblVersion` (
-- Initial content for database
--
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (1, 'Admin', 1);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (2, 'Guest', 2);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (3, 'User', 0);
INSERT INTO `tblUsers` (`id`, `login`, `pwd`, `fullName`, `email`, `language`, `theme`, `comment`, `role`, `hidden`, `pwdExpiration`, `loginfailures`, `disabled`, `quota`, `homefolder`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'info@seeddms.org', '', '', '', 1, 0, '', 0, 0, 0, NULL);
INSERT INTO `tblUsers` (`id`, `login`, `pwd`, `fullName`, `email`, `language`, `theme`, `comment`, `role`, `hidden`, `pwdExpiration`, `loginfailures`, `disabled`, `quota`, `homefolder`) VALUES (2, 'guest', NULL, 'Guest User', NULL, '', '', '', 2, 0, '', 0, 0, 0, NULL);
INSERT INTO `tblFolders` (`id`, `name`, `parent`, `folderList`, `comment`, `date`, `owner`, `inheritAccess`, `defaultAccess`, `sequence`) VALUES (1, 'DMS', NULL, '', 'DMS root', strftime('%s','now'), 1, 0, 2, 0);
INSERT INTO `tblVersion` VALUES (DATETIME(), 6, 0, 0);
INSERT INTO `tblVersion` VALUES (DATETIME(), 5, 1, 0);

View File

@ -1,181 +0,0 @@
START TRANSACTION;
ALTER TABLE "tblDocumentContent" ADD COLUMN "revisiondate" TIMESTAMP default NULL;
ALTER TABLE "tblUsers" ADD COLUMN "secret" varchar(50) default NULL;
ALTER TABLE "tblWorkflows" ADD COLUMN "layoutdata" text default NULL;
ALTER TABLE "tblWorkflowDocumentContent" ADD COLUMN "id" SERIAL UNIQUE;
ALTER TABLE "tblWorkflowLog" ADD COLUMN "workflowdocumentcontent" INTEGER NOT NULL DEFAULT '0';
UPDATE "tblWorkflowLog" SET "workflowdocumentcontent" = "tblWorkflowDocumentContent"."id" FROM "tblWorkflowDocumentContent" WHERE "tblWorkflowLog"."document" = "tblWorkflowDocumentContent"."document" AND "tblWorkflowLog"."version" = "tblWorkflowDocumentContent"."version" AND "tblWorkflowLog"."workflow" = "tblWorkflowDocumentContent"."workflow";
INSERT INTO "tblWorkflowDocumentContent" ("parentworkflow", "workflow", "document", "version", "state", "date") SELECT 0 AS "parentworkflow", "workflow", "document", "version", NULL AS "state", max("date") AS "date" FROM "tblWorkflowLog" WHERE "workflowdocumentcontent" = 0 GROUP BY "workflow", "document", "version";
UPDATE "tblWorkflowLog" SET "workflowdocumentcontent" = "tblWorkflowDocumentContent"."id" FROM "tblWorkflowDocumentContent" WHERE "tblWorkflowLog"."document" = "tblWorkflowDocumentContent"."document" AND "tblWorkflowLog"."version" = "tblWorkflowDocumentContent"."version" AND "tblWorkflowLog"."workflow" = "tblWorkflowDocumentContent"."workflow";
ALTER TABLE "tblWorkflowLog" ADD CONSTRAINT "tblWorkflowLog_workflowdocumentcontent" FOREIGN KEY ("workflowdocumentcontent") REFERENCES "tblWorkflowDocumentContent" ("id") ON DELETE CASCADE;
ALTER TABLE "tblWorkflowDocumentContent" ADD COLUMN "parent" INTEGER DEFAULT NULL;
ALTER TABLE "tblWorkflowDocumentContent" ADD CONSTRAINT "tblWorkflowDocumentContent_parent" FOREIGN KEY ("parent") REFERENCES "tblWorkflowDocumentContent" ("id") ON DELETE CASCADE;
ALTER TABLE "tblWorkflowDocumentContent" DROP COLUMN "parentworkflow";
ALTER TABLE "tblWorkflowLog" DROP COLUMN "document";
ALTER TABLE "tblWorkflowLog" DROP COLUMN "version";
ALTER TABLE "tblWorkflowLog" DROP COLUMN "workflow";
CREATE TABLE "tblUserSubstitutes" (
"id" SERIAL UNIQUE,
"user" INTEGER default null,
"substitute" INTEGER default null,
UNIQUE ("user", "substitute"),
CONSTRAINT "tblUserSubstitutes_user" FOREIGN KEY ("user") REFERENCES "tblUsers" ("id") ON DELETE CASCADE,
CONSTRAINT "tblUserSubstitutes_substitute" FOREIGN KEY ("user") REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblDocumentCheckOuts" (
"document" INTEGER NOT NULL default '0',
"version" INTEGER NOT NULL default '0',
"userID" INTEGER NOT NULL default '0',
"date" TIMESTAMP NOT NULL,
"filename" varchar(255) NOT NULL default '',
CONSTRAINT "tblDocumentCheckOuts_document" FOREIGN KEY ("document") REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
CONSTRAINT "tblDocumentCheckOuts_user" FOREIGN KEY ("userID") REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblDocumentRecipients" (
"receiptID" SERIAL UNIQUE,
"documentID" INTEGER NOT NULL default '0',
"version" INTEGER NOT NULL default '0',
"type" INTEGER NOT NULL default '0',
"required" INTEGER NOT NULL default '0',
UNIQUE ("documentID","version","type","required"),
CONSTRAINT "tblDocumentRecipients_document" FOREIGN KEY ("documentID") REFERENCES "tblDocuments" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblDocumentReceiptLog" (
"receiptLogID" SERIAL UNIQUE,
"receiptID" INTEGER NOT NULL default '0',
"status" INTEGER NOT NULL default '0',
"comment" text NOT NULL,
"date" TIMESTAMP NOT NULL,
"userID" INTEGER NOT NULL default '0',
CONSTRAINT "tblDocumentReceiptLog_recipient" FOREIGN KEY ("receiptID") REFERENCES "tblDocumentRecipients" ("receiptID") ON DELETE CASCADE,
CONSTRAINT "tblDocumentReceiptLog_user" FOREIGN KEY ("userID") REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblDocumentRevisors" (
"revisionID" SERIAL UNIQUE,
"documentID" INTEGER NOT NULL default '0',
"version" INTEGER NOT NULL default '0',
"type" INTEGER NOT NULL default '0',
"required" INTEGER NOT NULL default '0',
"startdate" TIMESTAMP default NULL,
UNIQUE ("documentID","version","type","required"),
CONSTRAINT "tblDocumentRevisors_document" FOREIGN KEY ("documentID") REFERENCES "tblDocuments" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblDocumentRevisionLog" (
"revisionLogID" SERIAL UNIQUE,
"revisionID" INTEGER NOT NULL default '0',
"status" INTEGER NOT NULL default '0',
"comment" text NOT NULL,
"date" TIMESTAMP NOT NULL,
"userID" INTEGER NOT NULL default '0',
CONSTRAINT "tblDocumentRevisionLog_revision" FOREIGN KEY ("revisionID") REFERENCES "tblDocumentRevisors" ("revisionID") ON DELETE CASCADE,
CONSTRAINT "tblDocumentRevisionLog_user" FOREIGN KEY ("userID") REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblTransmittals" (
"id" SERIAL UNIQUE,
"name" text NOT NULL,
"comment" text NOT NULL,
"userID" INTEGER NOT NULL default '0',
"date" TIMESTAMP default NULL,
"public" INTEGER NOT NULL default '0',
CONSTRAINT "tblTransmittals_user" FOREIGN KEY ("userID") REFERENCES "tblUsers" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblTransmittalItems" (
"id" SERIAL UNIQUE,
"transmittal" INTEGER NOT NULL DEFAULT '0',
"document" INTEGER default NULL,
"version" INTEGER NOT NULL default '0',
"date" TIMESTAMP default NULL,
UNIQUE ("transmittal", "document", "version"),
CONSTRAINT "tblTransmittalItems_document" FOREIGN KEY ("document") REFERENCES "tblDocuments" ("id") ON DELETE CASCADE,
CONSTRAINT "tblTransmittalItem_transmittal" FOREIGN KEY ("transmittal") REFERENCES "tblTransmittals" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblRoles" (
"id" SERIAL UNIQUE,
"name" varchar(50) default NULL,
"role" INTEGER NOT NULL default '0',
"noaccess" varchar(30) NOT NULL default '',
UNIQUE ("name")
);
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (1, 'Admin', 1);
SELECT nextval('"tblRoles_id_seq"');
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (2, 'Guest', 2);
SELECT nextval('"tblRoles_id_seq"');
INSERT INTO "tblRoles" ("id", "name", "role") VALUES (3, 'User', 0);
SELECT nextval('"tblRoles_id_seq"');
ALTER TABLE "tblUsers" ALTER "role" DROP DEFAULT;
ALTER TABLE "tblUsers" ALTER "role" SET NOT NULL;
UPDATE "tblUsers" SET role=3 WHERE role=0;
ALTER TABLE "tblUsers" ADD CONSTRAINT "tblUsers_role" FOREIGN KEY ("role") REFERENCES "tblRoles" ("id");
CREATE TABLE "tblAros" (
"id" SERIAL UNIQUE,
"parent" INTEGER,
"model" text NOT NULL,
"foreignid" INTEGER NOT NULL DEFAULT '0',
"alias" varchar(255)
);
CREATE TABLE "tblAcos" (
"id" SERIAL UNIQUE,
"parent" INTEGER,
"model" text NOT NULL,
"foreignid" INTEGER NOT NULL DEFAULT '0',
"alias" varchar(255)
);
CREATE TABLE "tblArosAcos" (
"id" SERIAL UNIQUE,
"aro" INTEGER NOT NULL DEFAULT '0',
"aco" INTEGER NOT NULL DEFAULT '0',
"create" INTEGER NOT NULL DEFAULT '-1',
"read" INTEGER NOT NULL DEFAULT '-1',
"update" INTEGER NOT NULL DEFAULT '-1',
"delete" INTEGER NOT NULL DEFAULT '-1',
UNIQUE ("aco", "aro"),
CONSTRAINT "tblArosAcos_acos" FOREIGN KEY ("aco") REFERENCES "tblAcos" ("id") ON DELETE CASCADE,
CONSTRAINT "tblArosAcos_aros" FOREIGN KEY ("aro") REFERENCES "tblAros" ("id") ON DELETE CASCADE
);
CREATE TABLE "tblSchedulerTask" (
"id" SERIAL UNIQUE,
"name" varchar(100) DEFAULT NULL,
"description" TEXT DEFAULT NULL,
"disabled" INTEGER NOT NULL DEFAULT '0',
"extension" varchar(100) DEFAULT NULL,
"task" varchar(100) DEFAULT NULL,
"frequency" varchar(100) DEFAULT NULL,
"params" TEXT DEFAULT NULL,
"nextrun" TIMESTAMP DEFAULT NULL,
"lastrun" TIMESTAMP DEFAULT NULL
) ;
UPDATE "tblVersion" set "major"=6, "minor"=0, "subminor"=0;
COMMIT;

View File

@ -1,206 +0,0 @@
BEGIN;
ALTER TABLE `tblDocumentContent` ADD COLUMN `revisiondate` TEXT default NULL;
ALTER TABLE `tblUsers` ADD COLUMN `secret` varchar(50) default NULL;
ALTER TABLE `tblWorkflows` ADD COLUMN `layoutdata` text default NULL;
CREATE TABLE `new_tblWorkflowDocumentContent` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
`workflow` INTEGER DEFAULT NULL REFERENCES `tblWorkflows` (`id`) ON DELETE CASCADE,
`document` INTEGER DEFAULT NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER DEFAULT NULL,
`state` INTEGER DEFAULT NULL REFERENCES `tblWorkflowStates` (`id`) ON DELETE CASCADE,
`date` datetime NOT NULL
) ;
INSERT INTO `new_tblWorkflowDocumentContent` (`parent`, `workflow`, `document`, `version`, `state`, `date`) SELECT NULL as `parent`, `workflow`, `document`, `version`, `state`, `date` FROM `tblWorkflowDocumentContent`;
INSERT INTO `new_tblWorkflowDocumentContent` (`parent`, `workflow`, `document`, `version`, `state`, `date`) SELECT NULL, `a`.`workflow`, `a`.`document`, `a`.`version`, NULL AS `state`, max(`a`.`date`) FROM `tblWorkflowLog` `a` LEFT JOIN `tblWorkflowDocumentContent` `b` ON `a`.`document`=`b`.`document` AND `a`.`version`=`b`.`version` AND `a`.`workflow`=`b`.`workflow` WHERE `b`.`document` IS NULL GROUP BY `a`.`document`, `a`.`version`, `a`.`workflow`;
CREATE TABLE `new_tblWorkflowLog` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`workflowdocumentcontent` INTEGER DEFAULT NULL REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE,
`userid` INTEGER default NULL REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`transition` INTEGER default NULL REFERENCES `tblWorkflowTransitions` (`id`) ON DELETE CASCADE,
`date` datetime NOT NULL,
`comment` text
) ;
INSERT INTO `new_tblWorkflowLog` (`id`, `workflowdocumentcontent`, `userid`, `transition`, `date`, `comment`) SELECT `a`.`id`, `b`.`id`, `a`.`userid`, `a`.`transition`, `a`.`date`, `a`.`comment` FROM `tblWorkflowLog` `a` LEFT JOIN `new_tblWorkflowDocumentContent` `b` ON `a`.`document`=`b`.`document` AND `a`.`version`=`b`.`version` AND `a`.`workflow`=`b`.`workflow` WHERE `b`.`document` IS NOT NULL;
DROP TABLE `tblWorkflowLog`;
ALTER TABLE `new_tblWorkflowLog` RENAME TO `tblWorkflowLog`;
DROP TABLE `tblWorkflowDocumentContent`;
ALTER TABLE `new_tblWorkflowDocumentContent` RENAME TO `tblWorkflowDocumentContent`;
CREATE TABLE `tblUserSubstitutes` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`user` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`substitute` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
UNIQUE (`user`, `substitute`)
);
CREATE TABLE `tblDocumentCheckOuts` (
`document` INTEGER REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`),
`date` TEXT NOT NULL,
`filename` varchar(255) NOT NULL default '',
UNIQUE (`document`)
) ;
CREATE TABLE `tblDocumentRecipients` (
`receiptID` INTEGER PRIMARY KEY AUTOINCREMENT,
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`type` INTEGER NOT NULL default '0',
`required` INTEGER NOT NULL default '0',
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentRecipientsRequired` ON `tblDocumentRecipients` (`required`);
CREATE TABLE `tblDocumentReceiptLog` (
`receiptLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
`receiptID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRecipients` (`receiptID`) ON DELETE CASCADE,
`status` INTEGER NOT NULL default 0,
`comment` TEXT NOT NULL,
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentReceiptLogReceiptID` ON `tblDocumentReceiptLog` (`receiptID`);
CREATE TABLE `tblDocumentRevisors` (
`revisionID` INTEGER PRIMARY KEY AUTOINCREMENT,
`documentID` INTEGER NOT NULL default '0' REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`type` INTEGER NOT NULL default '0',
`required` INTEGER NOT NULL default '0',
`startdate` TEXT default NULL,
UNIQUE (`documentID`,`version`,`type`,`required`)
) ;
CREATE INDEX `indDocumentRevisorsRequired` ON `tblDocumentRevisors` (`required`);
CREATE TABLE `tblDocumentRevisionLog` (
`revisionLogID` INTEGER PRIMARY KEY AUTOINCREMENT,
`revisionID` INTEGER NOT NULL default 0 REFERENCES `tblDocumentRevisors` (`revisionID`) ON DELETE CASCADE,
`status` INTEGER NOT NULL default 0,
`comment` TEXT NOT NULL,
`date` TEXT NOT NULL,
`userID` INTEGER NOT NULL default 0 REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ;
CREATE INDEX `indDocumentRevisionLogRevisionID` ON `tblDocumentRevisionLog` (`revisionID`);
CREATE TABLE `tblTransmittals` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` text NOT NULL,
`comment` text NOT NULL,
`userID` INTEGER NOT NULL default '0' REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
`date` TEXT default NULL,
`public` INTEGER NOT NULL default '0'
);
CREATE TABLE `tblTransmittalItems` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`transmittal` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblTransmittals` (`id`) ON DELETE CASCADE,
`document` INTEGER default NULL REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
`version` INTEGER unsigned NOT NULL default '0',
`date` TEXT default NULL,
UNIQUE (transmittal, document, version)
);
CREATE TABLE `tblRoles` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` varchar(50) default NULL,
`role` INTEGER NOT NULL default '0',
`noaccess` varchar(30) NOT NULL default '',
UNIQUE (`name`)
);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (1, 'Admin', 1);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (2, 'Guest', 2);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (3, 'User', 0);
UPDATE `tblUsers` SET role=3 WHERE role=0;
CREATE TABLE `new_tblUsers` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`login` varchar(50) default NULL,
`pwd` varchar(50) default NULL,
`fullName` varchar(100) default NULL,
`email` varchar(70) default NULL,
`language` varchar(32) NOT NULL,
`theme` varchar(32) NOT NULL,
`comment` text NOT NULL,
`role` INTEGER NOT NULL REFERENCES `tblRoles` (`id`),
`hidden` INTEGER NOT NULL default '0',
`pwdExpiration` TEXT default NULL,
`loginfailures` INTEGER NOT NULL default '0',
`disabled` INTEGER NOT NULL default '0',
`quota` INTEGER,
`homefolder` INTEGER default NULL REFERENCES `tblFolders` (`id`),
`secret` varchar(50) default NULL,
UNIQUE (`login`)
);
INSERT INTO new_tblUsers SELECT * FROM tblUsers;
DROP TABLE tblUsers;
ALTER TABLE new_tblUsers RENAME TO tblUsers;
CREATE TABLE `tblAros` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER,
`model` TEXT NOT NULL,
`foreignid` INTEGER NOT NULL DEFAULT '0',
`alias` TEXT
) ;
CREATE TABLE `tblAcos` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`parent` INTEGER,
`model` TEXT NOT NULL,
`foreignid` INTEGER NOT NULL DEFAULT '0',
`alias` TEXT
) ;
CREATE TABLE `tblArosAcos` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`aro` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAros` (`id`) ON DELETE CASCADE,
`aco` INTEGER NOT NULL DEFAULT '0' REFERENCES `tblAcos` (`id`) ON DELETE CASCADE,
`create` INTEGER NOT NULL DEFAULT '-1',
`read` INTEGER NOT NULL DEFAULT '-1',
`update` INTEGER NOT NULL DEFAULT '-1',
`delete` INTEGER NOT NULL DEFAULT '-1',
UNIQUE (aco, aro)
) ;
CREATE INDEX `indDocumentStatusLogStatusID` ON `tblDocumentStatusLog` (`StatusID`);
CREATE INDEX `indDocumentApproversRequired` ON `tblDocumentApprovers` (`required`);
CREATE INDEX `indDocumentApproveLogApproveID` ON `tblDocumentApproveLog` (`approveID`);
CREATE INDEX `indDocumentReviewersRequired` ON `tblDocumentReviewers` (`required`);
CREATE INDEX `indDocumentReviewLogReviewID` ON `tblDocumentReviewLog` (`reviewID`);
CREATE TABLE `tblSchedulerTask` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` varchar(100) DEFAULT NULL,
`description` TEXT DEFAULT NULL,
`disabled` INTEGER NOT NULL DEFAULT '0',
`extension` varchar(100) DEFAULT NULL,
`task` varchar(100) DEFAULT NULL,
`frequency` varchar(100) DEFAULT NULL,
`params` TEXT DEFAULT NULL,
`nextrun` TEXT DEFAULT NULL,
`lastrun` TEXT DEFAULT NULL
) ;
UPDATE tblVersion set major=6, minor=0, subminor=0;
COMMIT;

View File

@ -1,200 +0,0 @@
START TRANSACTION;
ALTER TABLE `tblDocumentContent` ADD COLUMN `revisiondate` datetime DEFAULT NULL;
ALTER TABLE `tblUsers` ADD COLUMN `secret` varchar(50) DEFAULT NULL AFTER `pwd`;
ALTER TABLE `tblWorkflows` ADD COLUMN `layoutdata` text DEFAULT NULL AFTER `initstate`;
ALTER TABLE `tblWorkflowDocumentContent` ADD COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);
ALTER TABLE `tblWorkflowLog` ADD COLUMN `workflowdocumentcontent` int(11) NOT NULL DEFAULT '0' AFTER `id`;
UPDATE `tblWorkflowLog` a, `tblWorkflowDocumentContent` b SET a.`workflowdocumentcontent` = b.`id` WHERE a.`document` = b.`document` AND a.`version` = b.`version` AND a.`workflow` = b.`workflow`;
INSERT INTO `tblWorkflowDocumentContent` (`parentworkflow`, `workflow`, `document`, `version`, `state`, `date`) SELECT 0 AS `parentworkflow`, `workflow`, `document`, `version`, NULL AS `state`, max(`date`) AS `date` FROM `tblWorkflowLog` WHERE `workflowdocumentcontent` = 0 GROUP BY `workflow`, `document`, `version`;
UPDATE `tblWorkflowLog` a, `tblWorkflowDocumentContent` b SET a.`workflowdocumentcontent` = b.`id` WHERE a.`document` = b.`document` AND a.`version` = b.`version` AND a.`workflow` = b.`workflow`;
ALTER TABLE `tblWorkflowLog` ADD CONSTRAINT `tblWorkflowLog_workflowdocumentcontent` FOREIGN KEY (`workflowdocumentcontent`) REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE;
ALTER TABLE `tblWorkflowDocumentContent` ADD COLUMN `parent` int(11) DEFAULT NULL AFTER `id`;
ALTER TABLE `tblWorkflowDocumentContent` ADD CONSTRAINT `tblWorkflowDocumentContent_parent` FOREIGN KEY (`parent`) REFERENCES `tblWorkflowDocumentContent` (`id`) ON DELETE CASCADE;
ALTER TABLE `tblWorkflowDocumentContent` DROP COLUMN `parentworkflow`;
ALTER TABLE `tblWorkflowLog` DROP FOREIGN KEY `tblWorkflowLog_document`;
ALTER TABLE `tblWorkflowLog` DROP COLUMN `document`;
ALTER TABLE `tblWorkflowLog` DROP COLUMN `version`;
ALTER TABLE `tblWorkflowLog` DROP FOREIGN KEY `tblWorkflowLog_workflow`;
ALTER TABLE `tblWorkflowLog` DROP COLUMN `workflow`;
CREATE TABLE `tblUserSubstitutes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user` int(11) DEFAULT null,
`substitute` int(11) DEFAULT null,
PRIMARY KEY (`id`),
UNIQUE (`user`, `substitute`),
CONSTRAINT `tblUserSubstitutes_user` FOREIGN KEY (`user`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblUserSubstitutes_substitute` FOREIGN KEY (`substitute`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblDocumentCheckOuts` (
`document` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`userID` int(11) NOT NULL DEFAULT '0',
`date` datetime NOT NULL,
`filename` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`document`),
CONSTRAINT `tblDocumentCheckOuts_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentCheckOuts_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblDocumentRecipients` (
`receiptID` int(11) NOT NULL AUTO_INCREMENT,
`documentID` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`type` tinyint(4) NOT NULL DEFAULT '0',
`required` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`receiptID`),
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentRecipients_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentRecipientsRequired` ON `tblDocumentRecipients` (`required`);
CREATE TABLE `tblDocumentReceiptLog` (
`receiptLogID` int(11) NOT NULL AUTO_INCREMENT,
`receiptID` int(11) NOT NULL DEFAULT '0',
`status` tinyint(4) NOT NULL DEFAULT '0',
`comment` text NOT NULL,
`date` datetime NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`receiptLogID`),
KEY `tblDocumentReceiptLog_receipt` (`receiptID`),
KEY `tblDocumentReceiptLog_user` (`userID`),
CONSTRAINT `tblDocumentReceiptLog_recipient` FOREIGN KEY (`receiptID`) REFERENCES `tblDocumentRecipients` (`receiptID`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentReceiptLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblDocumentRevisors` (
`revisionID` int(11) NOT NULL AUTO_INCREMENT,
`documentID` int(11) NOT NULL DEFAULT '0',
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`type` tinyint(4) NOT NULL DEFAULT '0',
`required` int(11) NOT NULL DEFAULT '0',
`startdate` datetime DEFAULT NULL,
PRIMARY KEY (`revisionID`),
UNIQUE KEY `documentID` (`documentID`,`version`,`type`,`required`),
CONSTRAINT `tblDocumentRevisors_document` FOREIGN KEY (`documentID`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE INDEX `indDocumentRevisorsRequired` ON `tblDocumentRevisors` (`required`);
CREATE TABLE `tblDocumentRevisionLog` (
`revisionLogID` int(11) NOT NULL AUTO_INCREMENT,
`revisionID` int(11) NOT NULL DEFAULT '0',
`status` tinyint(4) NOT NULL DEFAULT '0',
`comment` text NOT NULL,
`date` datetime NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`revisionLogID`),
KEY `tblDocumentRevisionLog_revision` (`revisionID`),
KEY `tblDocumentRevisionLog_user` (`userID`),
CONSTRAINT `tblDocumentRevisionLog_revision` FOREIGN KEY (`revisionID`) REFERENCES `tblDocumentRevisors` (`revisionID`) ON DELETE CASCADE,
CONSTRAINT `tblDocumentRevisionLog_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblTransmittals` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`comment` text NOT NULL,
`userID` int(11) NOT NULL DEFAULT '0',
`date` datetime DEFAULT NULL,
`public` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
CONSTRAINT `tblTransmittals_user` FOREIGN KEY (`userID`) REFERENCES `tblUsers` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblTransmittalItems` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transmittal` int(11) NOT NULL DEFAULT '0',
`document` int(11) DEFAULT NULL,
`version` smallint(5) unsigned NOT NULL DEFAULT '0',
`date` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE (transmittal, document, version),
CONSTRAINT `tblTransmittalItems_document` FOREIGN KEY (`document`) REFERENCES `tblDocuments` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblTransmittalItem_transmittal` FOREIGN KEY (`transmittal`) REFERENCES `tblTransmittals` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblRoles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
`role` smallint(1) NOT NULL DEFAULT '0',
`noaccess` varchar(30) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (1, 'Admin', 1);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (2, 'Guest', 2);
INSERT INTO `tblRoles` (`id`, `name`, `role`) VALUES (3, 'User', 0);
ALTER TABLE `tblRoles` AUTO_INCREMENT=4;
ALTER TABLE tblUsers CHANGE role role int(11) NOT NULL;
UPDATE `tblUsers` SET role=3 WHERE role=0;
ALTER TABLE tblUsers ADD CONSTRAINT `tblUsers_role` FOREIGN KEY (`role`) REFERENCES `tblRoles` (`id`);
CREATE TABLE `tblAros` (
`id` int(11) NOT NULL auto_increment,
`parent` int(11),
`model` text NOT NULL,
`foreignid` int(11) NOT NULL DEFAULT '0',
`alias` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblAcos` (
`id` int(11) NOT NULL auto_increment,
`parent` int(11),
`model` text NOT NULL,
`foreignid` int(11) NOT NULL DEFAULT '0',
`alias` varchar(255),
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblArosAcos` (
`id` int(11) NOT NULL auto_increment,
`aro` int(11) NOT NULL DEFAULT '0',
`aco` int(11) NOT NULL DEFAULT '0',
`create` tinyint(4) NOT NULL DEFAULT '-1',
`read` tinyint(4) NOT NULL DEFAULT '-1',
`update` tinyint(4) NOT NULL DEFAULT '-1',
`delete` tinyint(4) NOT NULL DEFAULT '-1',
PRIMARY KEY (`id`),
UNIQUE (aco, aro),
CONSTRAINT `tblArosAcos_acos` FOREIGN KEY (`aco`) REFERENCES `tblAcos` (`id`) ON DELETE CASCADE,
CONSTRAINT `tblArosAcos_aros` FOREIGN KEY (`aro`) REFERENCES `tblAros` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `tblSchedulerTask` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`description` text DEFAULT NULL,
`disabled` smallint(1) NOT NULL DEFAULT '0',
`extension` varchar(100) DEFAULT NULL,
`task` varchar(100) DEFAULT NULL,
`frequency` varchar(100) DEFAULT NULL,
`params` text DEFAULT NULL,
`nextrun` datetime DEFAULT NULL,
`lastrun` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
UPDATE tblVersion set major=6, minor=0, subminor=0;
COMMIT;

View File

@ -1,52 +0,0 @@
Caution when you update seeddms with workflow mode `advanced`
=============================================================
The previous database layout for tracking the workflow state of a
document content was not very well done. It did not allow to run
the document through another workflow at a later time, expecially
the same workflow, e.g. for a scheduled revision of a document.
Technical details
==================
This update modifies the tables tblWorkflowDocumentContent and
tblWorkflowLog. It adds a new autoincrement field as a primary key
(id) to tblWorkflowDocumentContent and references that field in
tblWorkflowLog (workflowdocumentcontent). Till now the two tables
where linked by the fields `document`, `version`, and `workflow` which will
be replaced by the two new fields. The fields `document`, `version`, and
`workflow` will be removed from tblWorkflowLog. tblWorkflowDocumentContent
contained just the workflows currently active for a particlar document.
From now on the table will also contain finished workflows, which
will have the field `state` set to null. This allows to run even the
same workflow again and still be able to distinguish the log entries.
MySQL
------
The update process will first add the new auto incrementing, primary
field to tblWorkflowDocumentContent and a referencing field to
tblWorkflowLog. It will then fill out the referencing field with the
automatically incremented field value from tblWorkflowDocumentContent
by joining the two tables with its common fields document, version,
and workflow. This will not fill out all referencing field values,
because once a workflow has ended the record in
tblWorkflowDocumentContent will be deleted and just the records in
tblWorkflowLog are kept. The still missing records in
tblWorkflowDocumentContent for already completed workflows will be
reconstructed from the records in tblWorkflowLog which do not have a
reference to tblWorkflowDocumentContent yet. Once that is done the
referencing field in tblWorkflowLog can be filled in a second pass.
The date of the new records in tblWorkflowDocumentContent will be
taken from the last record for that workflow in tblWorkflowLog. The
state of the new records will be set null, indicating that this
workflow is no longer active.
SQLite
-------
The update process will first create new table for tblWorkflowDocumentContent
containing a new field for the primary key field. It then copies the
records from the old table to the new table. The missing records for
workflows which has been finished already are recreated from the old
table `tblWorkflowLog`. Which is then replaced by a new table having
the foreign key to table `tblWorkflowDocumentContent`.

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'توثيق ذو عاملين',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'معلومات عن توثيق ذو عاملين',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -273,7 +272,6 @@ URL: [url]',
'chart_docsperuser_title' => 'عنوان الجدول حسب المستخدم',
'chart_foldersperuser_title' => '',
'chart_selection' => 'تحديد الجدول',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'عنوان الجدول حسب حجم المستخدم',
'checkedout_file_has_different_version' => 'الملف المراجع لديه نسخة أخرى',
'checkedout_file_has_disappeared' => 'اختفى الملف المسحوب',
@ -285,7 +283,6 @@ URL: [url]',
'checkout_is_disabled' => 'السحب معطل',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'من فضلك اختر تعريف السمة',
@ -307,7 +304,6 @@ URL: [url]',
'clear_cache' => 'مسح المحفوظات',
'clear_clipboard' => 'مسح الحافظة',
'clear_password' => 'مسح الرقم السري',
'click_to_expand_filter_results' => '',
'clipboard' => 'لوحة القصاصات',
'close' => 'إغلاق',
'color' => '',
@ -350,8 +346,6 @@ URL: [url]',
'converter_new_mimetype' => 'نوع جديد من الوثائق',
'copied_to_checkout_as' => 'نسخ الى السب مثل',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'انشاء فهرس للنص الكامل',
'create_fulltext_index_warning' => 'انت على وشك اعادة انشاء فهرس النص الكامل.هذا سيتطلب وقت كافي وسيؤثر بشكل عام على كفاءة النظام. اذا كنت حقا تود اعادة انشاء الفهرس، من فضلك قم بتاكيد العملية.',
@ -465,7 +459,6 @@ Parent folder: [folder_path]
'document_files' => '',
'document_has_no_workflow' => 'المستند لايحتوى مسار عمل',
'document_infos' => 'معلومات المستند',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'تم سحب المستند',
@ -554,8 +547,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -686,8 +677,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'إرشيف أطول',
'extension_changelog' => 'سجل التعديلات',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'تحميل الإضافات',
@ -707,11 +696,11 @@ URL: [url]',
'february' => 'فبراير',
'file' => 'ملف',
'files' => 'ملفات',
'filesize' => 'حجم الملف',
'files_deletion' => 'مسح الملف',
'files_deletion_warning' => 'من خلال تلك الخاصية يمكنك مسح كل الملفات على مجلدات النظام. ملفات معلومات الاصدارات فقط ستظل متاحة للرؤية.',
'files_loading' => 'تحميل الملفات',
'filetype' => '',
'file_size' => 'حجم الملف',
'filter_for_documents' => 'فلتر للمستندات',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'فلتر للملفات',
@ -1103,17 +1092,6 @@ URL: [url]',
'nl_NL' => 'الهولندي',
'no' => 'لا',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'نوفمبر',
'now' => 'الان',
@ -1142,7 +1120,6 @@ URL: [url]',
'no_groups' => 'لايوجد مجموعات',
'no_group_members' => 'هذه المجموعة لايوجد بها اعضاء',
'no_linked_files' => 'لايوجد ملفات مرتبطة',
'no_mimetype' => '',
'no_previous_versions' => 'لايوجد اصدارات سابقة',
'no_receipt_needed' => 'لا يحتاج لأي مستلم',
'no_review_needed' => 'لايوجد مراجعات في الانتظار',
@ -1288,9 +1265,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - تم ازالة مسار العمل من اصدار المستند',
'removeFolderFromDropFolder' => 'إزالة مجلد من إسقاط لائحة',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'ازالة الملفات المختارة',
'remove_review_log' => '',
'remove_task' => '',
@ -1472,7 +1447,6 @@ URL: [url]',
'select_category' => 'اضغط لاختيار قسم',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'اختيار مجموعة',
'select_groups' => 'اضغط لاختيار مجموعة',
'select_grp_approvers' => 'اضغط لاختيار مجموعة الموافقون',
@ -1493,7 +1467,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'اختر واحد',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1505,7 +1478,6 @@ URL: [url]',
'send_login_data' => 'ارسل بيانات تسجيل الدخول',
'send_login_data_body' => 'ارسل محتوى بيانات تسجيل الدخول',
'send_login_data_subject' => 'ارسل موضوع بيانات تسجيل الدخول',
'send_notification' => '',
'send_test_mail' => 'ارسل رسالة تجريبية',
'september' => 'سبتمبر',
'sequence' => 'تتابع',
@ -1520,9 +1492,7 @@ URL: [url]',
'service_name' => '',
'sessions' => 'صفوف',
'setDateFromFile' => 'وضع تاريخ من الملف',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'تحديد التاريخ من المجلد',
'setDateFromFolder_desc' => '',
'settings' => 'الإعدادات',
'settings_activate_module' => 'Activate module',
'settings_activate_php_extension' => 'Activate PHP extension',
@ -1620,8 +1590,6 @@ URL: [url]',
'settings_delete_install_folder' => 'مسح مثبت المجلد',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'تعطيل التحرير الذاتي',
'settings_disableSelfEdit_desc' => 'تعطيل التحرير الذاتي',
'settings_disable_install' => 'تعطيل التثبيت',
@ -1687,8 +1655,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'تمكين تحميل الملفات الكبيرة',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'تمكين مهام القائمة',
'settings_enableMenuTasks_desc' => 'تمكين مهام القائمة',
'settings_enableMenuTransmittals' => '',
@ -1748,8 +1714,6 @@ URL: [url]',
'settings_encryptionKey' => 'مفتاح التشفير',
'settings_encryptionKey_desc' => 'مفتاح التشفير',
'settings_error' => 'خطأ',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'قم بتوسيع شجرة المجلد',
'settings_expandFolderTree_desc' => 'قم بتوسيع شجرة المجلد',
'settings_expandFolderTree_val0' => 'قم بتوسيع شجرة المجلد قيمة0',
@ -1806,22 +1770,10 @@ URL: [url]',
'settings_libraryFolder_desc' => 'مجلد المكتبة',
'settings_logFileEnable' => 'تمكين سجل الملف',
'settings_logFileEnable_desc' => 'تمكين سجل الملف',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'سجل ملف التناوب',
'settings_logFileRotation_desc' => 'سجل ملف التناوب',
'settings_loginFailure' => 'فشل في تسجيل الدخول',
'settings_loginFailure_desc' => 'فشل في تسجيل الدخول',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'luceneClassDir',
'settings_luceneClassDir_desc' => 'luceneClassDir',
'settings_luceneDir' => 'luceneDir',
@ -1920,10 +1872,6 @@ URL: [url]',
'settings_siteName' => 'اسم الموقع',
'settings_siteName_desc' => 'اسم الموقع',
'settings_SMTP' => 'SMTP Server settings',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'smtp Password',
'settings_smtpPassword_desc' => 'smtp Password',
'settings_smtpPort' => 'SMTP Server port',
@ -2007,7 +1955,6 @@ URL: [url]',
'sign_out' => 'تسجيل الخروج',
'sign_out_user' => 'تسجيل خروج مستخدم',
'site_brand' => 'مجلس النواب اللبناني',
'skip_default_export_cols' => '',
'sk_SK' => 'السلوفاكية',
'sort_by_date' => 'رتب حسب التاريخ',
'sort_by_expiration_date' => '',
@ -2137,7 +2084,6 @@ URL: [url]',
'status_revision_sleeping' => 'مراجعة الوضع في حالة النوم',
'status_revisor_removed' => 'تم ازالة حالة المراجع',
'status_unknown' => 'مجهول',
'storage' => '',
'storage_size' => 'حجم التخزين',
'subfolder_duplicate_name' => 'اسم مجلد فرعي مكرر',
'submit_2_fact_auth' => 'قدم ثنائي عامل التوثيق',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -260,7 +259,6 @@ $text = array(
'chart_docsperuser_title' => 'Документи на юзър',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Изберете диаграма',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => '',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -272,7 +270,6 @@ $text = array(
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Изберете attribute definition',
@ -294,7 +291,6 @@ $text = array(
'clear_cache' => 'Изчистване на кеша',
'clear_clipboard' => '',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Клипборд',
'close' => 'Затвори',
'color' => '',
@ -337,8 +333,6 @@ $text = array(
'converter_new_mimetype' => '',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Създай пълнотекстов индекс',
'create_fulltext_index_warning' => 'Вие искате да пресъздадете пълнотекстов индекс. Това ще отнеме време и ще понижи производителността. Да продолжа ли?',
@ -439,7 +433,6 @@ $text = array(
'document_files' => '',
'document_has_no_workflow' => 'Документът няма процес',
'document_infos' => 'Информация за документа',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -492,8 +485,6 @@ $text = array(
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -620,8 +611,6 @@ $text = array(
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -641,11 +630,11 @@ $text = array(
'february' => 'Февруари',
'file' => 'Файл',
'files' => 'Файлове',
'filesize' => 'Размер',
'files_deletion' => 'Изтриване на файлове',
'files_deletion_warning' => 'Тази операция ще изтрие всички файлове във всички папки. Информацията за версиите ще остане достъпна',
'files_loading' => 'Моля изчакайте докато се зареди списъкът на файловете',
'filetype' => '',
'file_size' => 'Размер',
'filter_for_documents' => '',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => '',
@ -981,17 +970,6 @@ $text = array(
'nl_NL' => 'Холандски',
'no' => 'Не',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'ноември',
'now' => 'сега',
@ -1020,7 +998,6 @@ $text = array(
'no_groups' => 'Няма групи',
'no_group_members' => 'Групата няма членове',
'no_linked_files' => 'Няма свързани файлове',
'no_mimetype' => '',
'no_previous_versions' => 'Няма други версии',
'no_receipt_needed' => '',
'no_review_needed' => 'Рецензия не е нужна',
@ -1157,9 +1134,7 @@ $text = array(
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => '',
'remove_review_log' => '',
'remove_task' => '',
@ -1314,7 +1289,6 @@ $text = array(
'select_category' => 'Изберете категория',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => '',
'select_groups' => 'Кликни да избереш групи',
'select_grp_approvers' => 'Кликни да избереш група утвърждаващи',
@ -1335,7 +1309,6 @@ $text = array(
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Избери един',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1347,7 +1320,6 @@ $text = array(
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '',
'september' => 'септември',
'sequence' => 'Последователност',
@ -1362,9 +1334,7 @@ $text = array(
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Настройки',
'settings_activate_module' => 'Активирай модул',
'settings_activate_php_extension' => 'Активирай разширение на PHP',
@ -1462,8 +1432,6 @@ $text = array(
'settings_delete_install_folder' => 'Изтрийте ENABLE_INSTALL_TOOL в папка конфигурация, за да започнете да използвате системата',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Изключи собствено редактиране',
'settings_disableSelfEdit_desc' => 'Ако е включено, потребителите няма да могат да редактират своята информация',
'settings_disable_install' => 'Изтрийте ENABLE_INSTALL_TOOL ако е возможно',
@ -1529,8 +1497,6 @@ $text = array(
'settings_enableLargeFileUpload_desc' => 'Ако е включено, качване на файлове е дустъпно и чрез джава-аплет, именован jumploader, без лимит за размер на файла. Това също ще позволи да се качват няколко файла наведнъж.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1590,8 +1556,6 @@ $text = array(
'settings_encryptionKey' => 'Кодиращ ключ',
'settings_encryptionKey_desc' => 'Този стринг се използва за създаване на уникален идентификатор, който добавен като невидимо поле към формуляр, предотвратява CSRF атаки.',
'settings_error' => 'Грешка',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Разгърни дървото с папките',
'settings_expandFolderTree_desc' => 'Разгръщане на дървото с папките',
'settings_expandFolderTree_val0' => 'започвайки от сгънато дърво',
@ -1648,22 +1612,10 @@ $text = array(
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => 'Включи лог-файл',
'settings_logFileEnable_desc' => 'Включи/изключи лог',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Превъртане на лога',
'settings_logFileRotation_desc' => 'Превъртане на лога',
'settings_loginFailure' => 'Неуспешно влизане',
'settings_loginFailure_desc' => 'Забрани акаунта след n грешни опита за влизане.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Папка Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Път към SeedDMS_Lucene (не е задължително)',
'settings_luceneDir' => 'Каталог за пълнотекстовия индекс',
@ -1762,10 +1714,6 @@ $text = array(
'settings_siteName' => 'Название на сайта',
'settings_siteName_desc' => 'Название на сайта, исползвано в заглавията. По подразбиране: letoDMS',
'settings_SMTP' => 'Настройки на SMTP сървъра',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => '',
'settings_smtpPassword_desc' => '',
'settings_smtpPort' => 'SMTP порт',
@ -1849,7 +1797,6 @@ $text = array(
'sign_out' => 'изход',
'sign_out_user' => '',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Словашки',
'sort_by_date' => 'Сортирай по дата"',
'sort_by_expiration_date' => '',
@ -1979,7 +1926,6 @@ $text = array(
'status_revision_sleeping' => '',
'status_revisor_removed' => '',
'status_unknown' => 'Неизвестен',
'storage' => '',
'storage_size' => 'Размер на хранилището',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -265,7 +264,6 @@ URL: [url]',
'chart_docsperuser_title' => '',
'chart_foldersperuser_title' => '',
'chart_selection' => '',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => '',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -277,7 +275,6 @@ URL: [url]',
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => '',
@ -299,7 +296,6 @@ URL: [url]',
'clear_cache' => 'Neteja memòria cau',
'clear_clipboard' => '',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Portapapers',
'close' => 'Tancar',
'color' => '',
@ -342,8 +338,6 @@ URL: [url]',
'converter_new_mimetype' => '',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Crea un índex full-text',
'create_fulltext_index_warning' => '',
@ -444,7 +438,6 @@ URL: [url]',
'document_files' => '',
'document_has_no_workflow' => '',
'document_infos' => 'Informacions',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -497,8 +490,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -625,8 +616,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -646,11 +635,11 @@ URL: [url]',
'february' => 'Febrer',
'file' => 'Fitxer',
'files' => 'Fitxers',
'filesize' => 'Mida',
'files_deletion' => 'Eliminació de fitxers',
'files_deletion_warning' => 'Amb aquesta opció es poden eliminar tots els fitxers del DMS complet. La informació de versionat romandrà visible.',
'files_loading' => 'Esperi, fins que l\'arxiu estigui carregat …',
'filetype' => '',
'file_size' => 'Mida',
'filter_for_documents' => '',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtre adicional per les carpetes',
@ -986,17 +975,6 @@ URL: [url]',
'nl_NL' => 'Holandès',
'no' => 'No',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Novembre',
'now' => '',
@ -1025,7 +1003,6 @@ URL: [url]',
'no_groups' => 'No hi ha grups',
'no_group_members' => 'Aquest grup no té membres',
'no_linked_files' => 'No hi ha fitxers enllaçats',
'no_mimetype' => '',
'no_previous_versions' => 'No s\'han trobat altres versions',
'no_receipt_needed' => '',
'no_review_needed' => 'No hi ha revisions pendents.',
@ -1162,9 +1139,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '',
'removeFolderFromDropFolder' => 'Esborrar carpeta després de la importació',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => '',
'remove_review_log' => '',
'remove_task' => '',
@ -1319,7 +1294,6 @@ URL: [url]',
'select_category' => 'Prem per seleccionar la categoria',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Seleccionar grup',
'select_groups' => '',
'select_grp_approvers' => '',
@ -1340,7 +1314,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Seleccionar un',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1352,7 +1325,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '',
'september' => 'Setembre',
'sequence' => 'Seqüència',
@ -1367,9 +1339,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Settings',
'settings_activate_module' => 'Activate module',
'settings_activate_php_extension' => 'Activate PHP extension',
@ -1467,8 +1437,6 @@ URL: [url]',
'settings_delete_install_folder' => '',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => '',
'settings_disableSelfEdit_desc' => '',
'settings_disable_install' => '',
@ -1534,8 +1502,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => '',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1595,8 +1561,6 @@ URL: [url]',
'settings_encryptionKey' => '',
'settings_encryptionKey_desc' => '',
'settings_error' => 'Error',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => '',
'settings_expandFolderTree_desc' => '',
'settings_expandFolderTree_val0' => '',
@ -1653,22 +1617,10 @@ URL: [url]',
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => '',
'settings_logFileEnable_desc' => 'Enable/disable log file',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Log File Rotation',
'settings_logFileRotation_desc' => '',
'settings_loginFailure' => '',
'settings_loginFailure_desc' => '',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => '',
'settings_luceneClassDir_desc' => 'Path to LetoDMS_Lucene (optional)',
'settings_luceneDir' => '',
@ -1767,10 +1719,6 @@ URL: [url]',
'settings_siteName' => 'Site Name',
'settings_siteName_desc' => '',
'settings_SMTP' => '',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => '',
'settings_smtpPassword_desc' => '',
'settings_smtpPort' => '',
@ -1854,7 +1802,6 @@ URL: [url]',
'sign_out' => 'desconnectar',
'sign_out_user' => '',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Eslovac',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -1984,7 +1931,6 @@ URL: [url]',
'status_revision_sleeping' => '',
'status_revisor_removed' => '',
'status_unknown' => 'Desconegut',
'storage' => '',
'storage_size' => 'Storage size',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'dvoufaktorové ověření',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Tento systém vyžaduje dvoufaktorové ověření. Na svém mobilním telefonu budete potřebovat Google Authenticator. Níže vidíte dva QR kódy. Správný je vaše současné tajemství. Vlevo můžete nastavit nové tajemství. Pokud nastavíte nové tajemství, ujistěte se, že jste jej znovu otestovali pomocí služby Google Authenticator.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumenty dle uživatele',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Vyberte graf',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Diskový prostor dle uživatele',
'checkedout_file_has_different_version' => 'Zkontrolovaná verze není shodná s aktuální verzí. Přihlášení nebude aktualizovat dokument.',
'checkedout_file_has_disappeared' => 'Soubor dokumentu, který jste kontrolovali, zmizel. Zkontrolování nebude možné.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Kontrola dokumentů je zakázána v konfiguraci.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Zvolte definici atributů',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Vymazat vyrovnávací paměť',
'clear_clipboard' => 'Vyčistit schránku',
'clear_password' => 'Vymazat heslo',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schránka',
'close' => 'Zavřít',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Nový mimetype',
'copied_to_checkout_as' => 'Soubor zkopírován do kontrolního prostoru jako \'[filename]\' v [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Vytvořit fulltext index',
'create_fulltext_index_warning' => 'Hodláte znovu vytvořit fulltext index. Může to trvat dlouho a zpomalit běh systému. Pokud víte, co děláte, potvďte operaci.',
@ -484,7 +478,6 @@ Uživatel: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokument nemá workflow',
'document_infos' => 'Informace o dokumentu',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Dokument je aktuálně zkontrolován. Pokud nahrajete novou verzi, nemůžete již kontrolovanou verzi zkontrolovat.',
@ -578,8 +571,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -710,8 +701,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Rozšíření',
'extension_changelog' => 'Changelog',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Načítání rozšíření',
@ -731,11 +720,11 @@ URL: [url]',
'february' => 'Únor',
'file' => 'Soubor',
'files' => 'Soubory',
'filesize' => 'Velikost souboru',
'files_deletion' => 'Soubor odstraněn',
'files_deletion_warning' => 'Pomocí této volby můžete odstranit všechny soubory z celé složky DMS. Verzovací informace zůstanou viditelné.',
'files_loading' => 'Vyčkejte dokud se nenahraje seznam souborů …',
'filetype' => '',
'file_size' => 'Velikost souboru',
'filter_for_documents' => 'Další filtr pro dokumenty',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Další filtr pro složky',
@ -1134,17 +1123,6 @@ URL: [url]',
'nl_NL' => 'Holandština',
'no' => 'Ne',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Listopad',
'now' => 'nyní',
@ -1173,7 +1151,6 @@ URL: [url]',
'no_groups' => 'Žádné skupiny',
'no_group_members' => 'Tato skupina nemá žádné členy',
'no_linked_files' => 'Žádné propojené soubory',
'no_mimetype' => '',
'no_previous_versions' => 'Nebyly nalezeny žádné jiné verze',
'no_receipt_needed' => 'Nejsou žádné dokumenty, které by vyžadovaly potvrzení o přijetí.',
'no_review_needed' => 'Nic nečeká k recenzi.',
@ -1334,9 +1311,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Odstraněno workflow z verze dokumentu',
'removeFolderFromDropFolder' => 'Odstranit složku po nahrání',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Odstranit označené soubory',
'remove_review_log' => '',
'remove_task' => '',
@ -1539,7 +1514,6 @@ URL: [url]',
'select_category' => 'Kliknutím vybrat kategorii',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Vybrat skupinu',
'select_groups' => 'Kliknutím vybrat skupiny',
'select_grp_approvers' => 'Kliknutím vybrat skupinu schvalovatele',
@ -1560,7 +1534,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Vybrat jeden',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1577,7 +1550,6 @@ Jméno: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - Přihlašovací údaje',
'send_notification' => '',
'send_test_mail' => 'Poslat zkušební zprávu',
'september' => 'Září',
'sequence' => 'Posloupnost',
@ -1592,9 +1564,7 @@ Jméno: [username]
'service_name' => '',
'sessions' => 'seance',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Nastavení',
'settings_activate_module' => 'Aktivovat modul',
'settings_activate_php_extension' => 'Aktivovat PHP extension',
@ -1692,8 +1662,6 @@ Jméno: [username]
'settings_delete_install_folder' => 'Chcete-li použít SeedDMS, musíte v konfiguračním adresáři odstranit soubor ENABLE_INSTALL_TOOL',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Zakázat vlastní úpravy',
'settings_disableSelfEdit_desc' => 'Je-li zaškrtnuto, uživatel nemůže upravit svůj vlastní profil',
'settings_disable_install' => 'Pokud je to možné, smažte soubor ENABLE_INSTALL_TOOL',
@ -1759,8 +1727,6 @@ Jméno: [username]
'settings_enableLargeFileUpload_desc' => 'Je-li nastaveno, nahrávání souborů je také k dispozici prostřednictvím java appletu s názvem jumploader bez omezení velikosti souboru nastaveného prohlížečem. Umožňuje také nahrát několik souborů v jednom kroku.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Povolit seznam úkolů v nabídce',
'settings_enableMenuTasks_desc' => 'Aktivovat / Zakázat položku nabídky, která obsahuje všechny úkoly pro uživatele. Obsahuje dokumenty, které musí být přezkoumány, schváleny atd.',
'settings_enableMenuTransmittals' => '',
@ -1820,8 +1786,6 @@ Jméno: [username]
'settings_encryptionKey' => 'Šifrovací klíč',
'settings_encryptionKey_desc' => 'Tento řetězec se používá k vytvoření jedinečného identifikátoru, který je přidán jako skryté pole formuláře, aby se zabránilo útokům CSRF.',
'settings_error' => 'Chyba',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Rozbalit strom složek',
'settings_expandFolderTree_desc' => 'Rozbalení stromu složek',
'settings_expandFolderTree_val0' => 'začít se skrytým stromem',
@ -1878,22 +1842,10 @@ Jméno: [username]
'settings_libraryFolder_desc' => 'Složka, ve které lze dokumenty kopírovat a vytvářet nové dokumenty.',
'settings_logFileEnable' => 'Povolit protokolový soubor',
'settings_logFileEnable_desc' => 'Povolení / zakázání souboru protokolu',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Otočení souboru protokolu',
'settings_logFileRotation_desc' => 'Otáčení souboru protokolu',
'settings_loginFailure' => 'Přihlášení selhalo',
'settings_loginFailure_desc' => 'Zakázat účet po [n] selhání přihlášení.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS adresář',
'settings_luceneClassDir_desc' => 'Cesta k SeedDMS_Lucene (volitelná)',
'settings_luceneDir' => 'Adresář pro fulltextový index',
@ -1992,10 +1944,6 @@ Jméno: [username]
'settings_siteName' => 'Název webu',
'settings_siteName_desc' => 'Název webu použitý v titulcích stránek. Výchozí: SeedDMS',
'settings_SMTP' => 'Nastavení SMTP serveru',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Heslo SMTP serveru',
'settings_smtpPassword_desc' => 'Heslo SMTP serveru',
'settings_smtpPort' => 'SMTP Server port',
@ -2079,7 +2027,6 @@ Jméno: [username]
'sign_out' => 'Odhlásit',
'sign_out_user' => 'Odhlášení uživatele',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovenština',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2209,7 +2156,6 @@ Jméno: [username]
'status_revision_sleeping' => 'Probíhá',
'status_revisor_removed' => 'Kontrolor odstraněn ze seznamu',
'status_unknown' => 'Neznámý',
'storage' => '',
'storage_size' => 'Velikost úložiště',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => 'Poslán tajný kód',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (3444), dgrutsch (22)
// Translators: Admin (3380), dgrutsch (22)
$text = array(
'2_factor_auth' => '2-Faktor Authentifizierung',
'2_factor_auth_code' => '2ter Faktor',
'2_factor_auth_info' => 'Dieses System erfordert 2-Faktor-Authentifikation. Dazu brauchen Sie einen Authenticator auf Ihrem Mobiltelefon. Unten sehen Sie zwei QR-Codes. Der rechte Code beinhaltet Ihren aktuellen geheimen Schlüssel. Auf der linken Seite wird ein neuer Schlüssel angezeigt. Wenn Sie den neuen Schlüssel speichern, dann stellen Sie zuvor sicher, dass sie ihn mit Ihrem bevorzugten Authenticator (z.B. andOTP) zuvor eingescant haben.',
'2_fact_auth_current_secret' => 'Aktuelles Geheimnis',
'2_fact_auth_new_secret' => 'Neues Geheimnis',
@ -318,7 +317,6 @@ URL: [url]</p>',
'chart_docsperuser_title' => 'Dokumente pro Benutzer',
'chart_foldersperuser_title' => 'Ordner pro Benutzer',
'chart_selection' => 'Diagrammauswahl',
'chart_sizepermonth_title' => 'Speicherplatz pro Monat',
'chart_sizeperuser_title' => 'Speicherplatz pro Benutzer',
'checkedout_file_has_different_version' => 'Die ausgecheckte Version ist nicht identisch mit der aktuellen Version. Das Einchecken wird das Dokument nicht aktualisieren.',
'checkedout_file_has_disappeared' => 'Die Datei des ausgecheckten Dokuments ist nicht mehr vorhanden. Ein Einchecken ist nicht möglich.',
@ -330,7 +328,6 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Auschecken von Dokumenten ist in der Konfiguration ausgeschaltet.',
'check_directory_layout' => 'Prüfe Verzeichnise',
'check_failed' => 'fehlgeschlagen',
'check_notification_filter' => 'Prüfe Benachrichtigungsfilter',
'check_passed' => 'erfolgreich',
'check_secure_installation' => 'Prüfe auf sichere Installation',
'choose_attrdef' => 'Attributdefinition wählen',
@ -352,7 +349,6 @@ URL: [url]</p>',
'clear_cache' => 'Cache löschen',
'clear_clipboard' => 'Zwischenablage leeren',
'clear_password' => 'Passwort löschen',
'click_to_expand_filter_results' => 'Klicken zum Ausklappen der Filterprüfung',
'clipboard' => 'Zwischenablage',
'close' => 'Schließen',
'color' => 'Farbe',
@ -395,8 +391,6 @@ URL: [url]</p>',
'converter_new_mimetype' => 'Neuer Mime-Type',
'copied_to_checkout_as' => 'Datei am [date] von [username] in den Checkout-Space als \'[filename]\' kopiert.',
'created' => 'Erstellt am',
'createSubFolderForImportedFiles' => 'Lege importierten Ordner an',
'createSubFolderForImportedFiles_desc' => 'Ereuge auch den zu importierenden Ordner.',
'create_download_link' => '',
'create_fulltext_index' => 'Erzeuge Volltext-Index',
'create_fulltext_index_warning' => 'Sie möchten den Volltext-Index neu erzeugen. Dies kann beträchtlich Zeit in Anspruch nehmen und Gesamtleistung Ihres System beeinträchtigen. Bestätigen Sie bitte diese Operation.',
@ -409,7 +403,7 @@ URL: [url]</p>',
'current_version' => 'Aktuelle Version',
'daily' => 'täglich',
'dashboard' => 'Übersicht',
'databasesearch' => 'Datenbank',
'databasesearch' => 'Datenbanksuche',
'database_schema_version' => 'Version des Datenbankschemas',
'data_loading' => 'Bitte warten, bis die Daten geladen sind …',
'date' => 'Datum',
@ -559,7 +553,6 @@ Benutzer: [username]</p>',
'document_files' => 'Dokumentenanhänge',
'document_has_no_workflow' => 'Dokument hat keinen Workflow',
'document_infos' => 'Informationen',
'document_in_revision_no_date' => 'Das Dokument ist zur Zeit in der Wiederholungsprüfung. Ein neues Datum kann erst nach Abschluss der Prüfung gesetzt werden.',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => 'Das Dokument ist zur Zeit ausgecheckt. Wenn Sie das Dokument löschen kann die ausgecheckte Version nicht mehr hochgeladen werden und verbleibt im Auscheck-Bereich.',
'document_is_checked_out_update' => 'Das Dokument ist zur Zeit ausgecheckt. Wenn Sie eine neue Version hochladen, werden Sie die ausgecheckte Version nicht mehr einchecken können.',
@ -712,8 +705,6 @@ URL: [url]</p>',
'download_header_document_name' => 'Dokumentenname',
'download_header_document_no' => 'Dokumenten-Nr.',
'download_header_filename' => 'Dateiname',
'download_header_folder_name' => 'Ordnername',
'download_header_folder_no' => 'Ordner-ID',
'download_header_internal_version' => 'Int. Version',
'download_header_reviewer' => 'Prüfer',
'download_header_review_comment' => 'Prüfkommentar',
@ -752,7 +743,7 @@ URL: [url]</p>',
'edit_comment' => 'Kommentar bearbeiten',
'edit_default_keywords' => 'Stichworte bearbeiten',
'edit_document_access' => 'Zugriffsrechte',
'edit_document_notify' => 'Dokument beobachten',
'edit_document_notify' => 'Beobachtung von Dokumenten',
'edit_document_props' => 'Bearbeiten',
'edit_event' => 'Ereignis editieren',
'edit_existing_access' => 'Bestehende Berechtigungen bearbeiten',
@ -760,7 +751,7 @@ URL: [url]</p>',
'edit_existing_notify' => 'Beobachter bearbeiten',
'edit_folder_access' => 'Zugriffsrechte',
'edit_folder_attrdefgrp' => 'Attributgruppen bearbeiten',
'edit_folder_notify' => 'Ordner beobachten',
'edit_folder_notify' => 'Beobachtung von Ordnern',
'edit_folder_props' => 'Bearbeiten',
'edit_group' => 'Gruppe bearbeiten',
'edit_online' => 'Online editieren',
@ -850,8 +841,6 @@ URL: [url]</p>',
'export_user_list_csv' => 'Exportiere Benutzer als CSV-Datei',
'extension_archive' => 'Erweiterung',
'extension_changelog' => 'Versionshistorie',
'extension_config' => 'Einstellungen',
'extension_info' => 'Erweiterungen',
'extension_is_off_now' => 'Erweiterung ist ausgeschaltet',
'extension_is_on_now' => 'Erweiterung ist eingeschaltet',
'extension_loading' => 'Lade Erweiterungen ...',
@ -867,15 +856,15 @@ URL: [url]</p>',
'extension_readme' => 'Readme',
'extension_toggle_error' => 'Konnte Erweiterung nicht aus/einschalten',
'extension_version_list' => 'Versionen',
'facetfullsearch' => 'Volltext (Facetten)',
'facetfullsearch' => 'Volltextsuche (Facetten)',
'february' => 'Februar',
'file' => 'Datei',
'files' => 'Dateien',
'filesize' => 'Dateigröße',
'files_deletion' => 'Dateien löschen',
'files_deletion_warning' => 'Durch diese Operation können Sie Dokumente des DMS löschen. Die Versions-Information bleibt erhalten.',
'files_loading' => 'Bitte warten, bis die Dateiliste geladen ist …',
'filetype' => 'Dateityp',
'file_size' => 'Dateigröße',
'filter_for_documents' => 'Zusätzliche Filter für Dokumente',
'filter_for_documents_and_folders' => 'Zusätzliche Filter für Ordner und Dokumente',
'filter_for_folders' => 'Zusätzliche Filter für Ordner',
@ -1048,7 +1037,7 @@ URL: [url]</p>',
'friday_abbr' => 'Fr',
'from' => 'von',
'fr_FR' => 'Französisch',
'fullsearch' => 'Volltext',
'fullsearch' => 'Volltextsuche',
'fullsearch_hint' => 'Volltext-Index benutzen',
'fulltextsearch_disabled' => 'Volltext-Index ist ausgeschaltet',
'fulltext_converters' => 'Index Dokumentenumwandlung',
@ -1367,17 +1356,6 @@ URL: [url]</p>',
'nl_NL' => 'Niederländisch',
'no' => 'Nein',
'notification' => 'Beobachter',
'notification_msg_tmpl' => 'Schablone',
'notification_recvtype' => 'Empfängertyp',
'notification_recv_any' => 'Jeder',
'notification_recv_approver' => 'Freigeber',
'notification_recv_notification' => 'Beobachter',
'notification_recv_owner' => 'Besitzer',
'notification_recv_reviewer' => 'Prüfer',
'notification_recv_uploader' => 'Hochlader',
'notification_recv_workflow' => 'Workflow',
'notification_service_no_filter' => 'Dieser Benachrichtigungsdienst hat keinen Filter.',
'notification_tmpl' => 'Schablone',
'not_subscribed' => 'Nicht abonniert',
'november' => 'November',
'now' => 'sofort',
@ -1406,7 +1384,6 @@ URL: [url]</p>',
'no_groups' => 'keine Gruppen',
'no_group_members' => 'Diese Gruppe hat keine Mitglieder',
'no_linked_files' => 'Keine verknüpften Dokumente',
'no_mimetype' => 'Kein Mime-Type',
'no_previous_versions' => 'Keine anderen Versionen gefunden',
'no_receipt_needed' => 'Es gibt zur Zeit keine Dokumente, die eine Empfangsbestätigung erfordern.',
'no_review_needed' => 'Keine offenen Prüfungen.',
@ -1623,9 +1600,7 @@ Benutzer: [username]<br />
URL: [url]</p>',
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow von Dokumentenversion',
'removeFolderFromDropFolder' => 'Ordner nach Import entfernen',
'removeFolderFromDropFolder_desc' => 'Schalten Sie dies ein, um den importierten Ordner im Ablageordner auf der Festplatte zu löschen.',
'remove_approval_log' => 'Einzelne Freigabe entfernen',
'remove_from_clipboard' => 'Aus Zwischenablage entfernen',
'remove_marked_files' => 'Markierte Dateien löschen',
'remove_review_log' => 'Einzelne Prüfung entfernen',
'remove_task' => 'Task entfernen',
@ -1928,7 +1903,6 @@ URL: [url]</p>',
'select_category' => 'Klicken zur Auswahl einer Kategorie',
'select_created' => 'Klicken zur Auswahl des Erstellungsdatums',
'select_documents_for_process' => 'Dokumente auswählen',
'select_folder' => 'Ordner auswählen',
'select_group' => 'Gruppe auswählen',
'select_groups' => 'Klicken zur Auswahl einer Gruppe',
'select_grp_approvers' => 'Klicken zur Auswahl einer Freigabegruppe',
@ -1949,7 +1923,6 @@ URL: [url]</p>',
'select_mimetype' => 'Klicken zur Auswahl eines Mimetypes',
'select_modified' => 'Klicken zur Auswahl des Änderungsdatums',
'select_one' => 'Bitte wählen',
'select_option' => 'Option auswählen',
'select_owner' => 'Klicken zur Auswahl eines Besitzers',
'select_record_type' => 'Typ auswählen',
'select_status' => 'Klicken zur Auswahl des Dokumentstatus',
@ -1968,7 +1941,6 @@ Name: [username]
Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Vergessen-Funktion auf der Anmeldeseite, um ein neues Passwort zu setzen.',
'send_login_data_subject' => '[sitename]: [login] - Ihre Login-Daten',
'send_notification' => 'Benachrichtigung verschicken',
'send_test_mail' => 'Sende Test-E-mail',
'september' => 'September',
'sequence' => 'Reihenfolge',
@ -1983,9 +1955,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'service_name' => 'Service-Name',
'sessions' => 'Benutzer Online',
'setDateFromFile' => 'Datum von importierter Datei übernehmen',
'setDateFromFile_desc' => 'Übernimmt das Datum der zu importierenden Datei als Datum des Dokuments in SeedDMS',
'setDateFromFolder' => 'Datum von importierten Verzeichnis übernehmen',
'setDateFromFolder_desc' => 'Übernimmt das Datum des zu importierenden Ordners als Datum des Ordners in SeedDMS',
'settings' => 'Einstellungen',
'settings_activate_module' => 'Modul aktivieren',
'settings_activate_php_extension' => 'PHP-Erweiterung aktivieren',
@ -2083,8 +2053,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'settings_delete_install_folder' => 'Um SeedDMS nutzen zu können, müssen Sie die Datei ENABLE_INSTALL_TOOL aus dem Konfigurationsverzeichnis löschen.',
'settings_disableChangePassword' => 'Kein Ändern des eigenen Passworts',
'settings_disableChangePassword_desc' => 'Anwählen, um das Ändern des eigenen Passworts zu unterbinden. Schalten Sie dies ein, wenn LDAP-Authentifizierung verwendet wird. Es verhindert, dass Benutzer ein Passwort in der Datenbank setzen und damit die LDAP-Authentifizierung umgehen.',
'settings_disableReceiptComment' => 'Kommentar für Empfangsbestätigung ausschalten',
'settings_disableReceiptComment_desc' => 'Wenn Sie dies einschalten wird bei der Empfangsbestätigung kein Kommentar abgefragt.',
'settings_disableSelfEdit' => 'Kein Ändern des eigenen Profils',
'settings_disableSelfEdit_desc' => 'Anwählen, um das Ändern des eigenen Profiles zu verhindern.',
'settings_disable_install' => 'Lösche ENABLE_INSTALL_TOOL wenn möglich',
@ -2150,8 +2118,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'settings_enableLargeFileUpload_desc' => 'Wenn dies gesetzt ist, dann ist ebenfalls der Upload von Dokumenten durch ein java applet mit Namen \'jumploader\' ohne Begrenzung der maximalen Dateigröße möglich. Auch das Hochladen mehrerer Dokumente in einem Schritt wird dadurch ermöglicht. Das Einschalten bewirkt, dass keine http only Cookies mehr gesetzt werden.',
'settings_enableLoginByEmail' => 'Anmeldung mit E-Mail erlauben',
'settings_enableLoginByEmail_desc' => 'Wenn eingeschaltet, dann ist auch die Anmeldung mit der E-Mail-Adresse möglich. Die Anmeldung mit dem Benutzername bleibt weiterhin möglich. Diese Einstellung wird möglicherweise nicht von allen Authentifizierungsmethoden berücksichtigt. Da die E-Mail nicht eindeutig ist, kann die Identifikation fehlschagen, auch wenn das Password aus Sicht des anmeldenen Benutzers korrekt ist.',
'settings_enableMemcached' => 'Memcached verwenden',
'settings_enableMemcached_desc' => 'Verwendet intern memcached, um einige Datenbankoperationen zu beschleunigen und sollte nicht im Produktionsbetrieb eingeschaltet werden.',
'settings_enableMenuTasks' => 'Aufgabenliste im Menü',
'settings_enableMenuTasks_desc' => 'Ein-/Ausschalten des Menüeintrags, der anstehenden Aufgaben des Benutzers enthält. Diese Liste beinhaltet Dokumente die geprüft, freigegeben, usw. werden müssen.',
'settings_enableMenuTransmittals' => 'Dokumentenlisten im Menü',
@ -2211,8 +2177,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'settings_encryptionKey' => 'Verschlüsselungs-Sequenz',
'settings_encryptionKey_desc' => 'Diese Zeichenkette wird verwendet um eine eindeutige Kennung zu erzeugen, die als verstecktes Feld in einem Formular untergebracht wird. Sie dient zur Verhinderung von CSRF-Attacken.',
'settings_error' => 'Fehler',
'settings_excludeFoldersDashboard' => 'Ordner nicht für das Dashboard berücksichtigen',
'settings_excludeFoldersDashboard_desc' => 'Diese Ordner werden bei der Ausgabe der Dokumente auf dem Dashboard nicht berücksichtigt. Das kann z.B. für archivierte Dokumente oder Dokumente im Mülleimer sinnvoll sein.',
'settings_expandFolderTree' => 'Dokumenten-Baum',
'settings_expandFolderTree_desc' => 'Auswählen, wie der Dokumenten-Baum nach der Anmeldung angezeigt wird.',
'settings_expandFolderTree_val0' => 'versteckt',
@ -2269,22 +2233,10 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'settings_libraryFolder_desc' => 'Ordner aus dem Dokumente für neue Dokumente kopiert werden können.',
'settings_logFileEnable' => 'Log-Datei ein-/ausschalten',
'settings_logFileEnable_desc' => 'Anwählen, um alle Aktionen in einer Log-Datei im Datenverzeichnis zu speichern.',
'settings_logFileMaxLevel' => 'Maximal Log-Level',
'settings_logFileMaxLevel_desc' => 'Alle Meldungen bis zu diesem Level werden protokolliert',
'settings_logFileRestApiMaxLevel' => 'Rest Api maximal Log-Level',
'settings_logFileRestApiMaxLevel_desc' => 'Alle Meldungen der Rest Api bis zu diesem Level werden protokolliert',
'settings_logFileRotation' => 'Rotation der Log-Datei',
'settings_logFileRotation_desc' => 'Zeitraum nachdem eine Rotation der Log-Datei durchgeführt wird',
'settings_loginFailure' => 'Anmeldefehlversuche',
'settings_loginFailure_desc' => 'Konto nach n Anmeldefehlversuchen sperren.',
'settings_logLevelAlert' => 'Bedenklich',
'settings_logLevelCritical' => 'Kritisch',
'settings_logLevelDebug' => 'Debug',
'settings_logLevelEmergency' => 'Notfall',
'settings_logLevelError' => 'Fehler',
'settings_logLevelInfo' => 'Information',
'settings_logLevelNotice' => 'Bemerkung',
'settings_logLevelWarning' => 'Warnung',
'settings_luceneClassDir' => 'Lucene SeedDMS Verzeichnis',
'settings_luceneClassDir_desc' => 'Pfad zum PEAR-Paket SeedDMS_Lucene (optional). Lassen Sie diese Einstellung leer, wenn SeedDMS_Lucene ohnehin von PHP gefunden wird, weil es beispielweise im \'Extra PHP Include-Path\' installiert ist.',
'settings_luceneDir' => 'Verzeichnis für Volltext-Index',
@ -2383,10 +2335,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'settings_siteName' => 'Name der Site',
'settings_siteName_desc' => 'Name der Site zur Anzeige in Seitentiteln. Voreingestellt ist \'SeedDMS\'',
'settings_SMTP' => 'SMTP Server-Einstellungen',
'settings_smtpForceFrom' => 'Verwende Absenderadresse',
'settings_smtpForceFrom_desc' => 'Benutze Absenderadresse für alle ausgehenden Mails.',
'settings_smtpLazySSL' => 'Keine SSL-Prüfung',
'settings_smtpLazySSL_desc' => 'Schaltet die Prüfung auf ein gültiges SSL-Zertifikat aus. Dies kann sinnvoll sein wenn beispielsweise selbst signierte Zertifikate verwendet werden oder ein Zertifikat abgelaufen ist. Sie sollten das Risiko kennen, wenn Sie dies einschalten.',
'settings_smtpPassword' => 'SMTP Server password',
'settings_smtpPassword_desc' => 'SMTP Server password',
'settings_smtpPort' => 'SMTP Server Port',
@ -2470,7 +2418,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'sign_out' => 'Abmelden',
'sign_out_user' => 'Benutzer abmelden',
'site_brand' => '',
'skip_default_export_cols' => 'Keine voreingestellten Spalten',
'sk_SK' => 'Slovakisch',
'sort_by_date' => 'Nach Datum sortieren',
'sort_by_expiration_date' => 'Nach Ablaufdatum sortieren',
@ -2600,7 +2547,6 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'status_revision_sleeping' => 'wartend',
'status_revisor_removed' => 'Wiederholungsprüfer von Liste entfernt',
'status_unknown' => 'unbekannt',
'storage' => 'Speicherung',
'storage_size' => 'Speicherverbrauch',
'subfolder_duplicate_name' => 'Doppelter Unterordnername',
'submit_2_fact_auth' => 'Schlüssel speichern',
@ -2662,15 +2608,7 @@ Sollten Sie kein Passwort bekommen haben, dann nutzen Sie bitte die Passwort-Ver
'task_name' => 'Name',
'task_next_run' => 'Nächste Ausführung',
'temp_jscode' => 'Temporärer Javascript-Code',
'testmail_body' => 'Diese Mail ist lediglich zum Test der E-Mail-Konfiguration von SeedDMS.
URL: [url]
Sitename: [sitename]
Version: [version]
SMTP Server: [smtpserver]
SMTP Port: [smtpport]
Kein SSL Check: [lazyssl]
Benutzer Absenderadresse: [forcefrom]',
'testmail_body' => 'Diese Mail ist lediglich zum Test der E-Mail-Konfiguration von SeedDMS',
'testmail_subject' => 'Test Mail',
'theme' => 'Aussehen',
'thursday' => 'Donnerstag',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -260,7 +259,6 @@ $text = array(
'chart_docsperuser_title' => 'Έγγραφα κατά χρήστη',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Επιλογή γραφήματος',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Χώρος κατά χρήστη',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -272,7 +270,6 @@ $text = array(
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => '',
@ -294,7 +291,6 @@ $text = array(
'clear_cache' => 'Εκκαθάριση στιγμιαίας μνήμης',
'clear_clipboard' => '',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Πρόχειρο',
'close' => 'Κλέισιμο',
'color' => '',
@ -337,8 +333,6 @@ $text = array(
'converter_new_mimetype' => '',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Δημιούργησε Αρίθμηση των Κειμένων',
'create_fulltext_index_warning' => 'Είσαστε έτοιμοι για επαναδημιουργία των δεικτών πλήρους κειμένου. Αυτό θα χρειαστεί κάποιο χρόνο και θα μειώσει τη συνολική απόδοση του συστήματος. Αν πραγματικά θέλετε την επαναδημιουργία των δεικτών, παρακαλώ να επιβεβαιώσετε τη λειτουργία αυτή.',
@ -439,7 +433,6 @@ $text = array(
'document_files' => '',
'document_has_no_workflow' => '',
'document_infos' => 'Πληροφορίες Εγγράφου',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -492,8 +485,6 @@ $text = array(
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -620,8 +611,6 @@ $text = array(
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -641,11 +630,11 @@ $text = array(
'february' => 'Φεβρουάριος',
'file' => 'Αρχείο',
'files' => 'Αρχεία',
'filesize' => 'Μέγεθος αρχείου',
'files_deletion' => 'Διαγραφή αρχείων',
'files_deletion_warning' => '',
'files_loading' => 'Παρακαλώ περιμένετε, μέχρι να φορτωθεί το αρχείο',
'filetype' => '',
'file_size' => 'Μέγεθος αρχείου',
'filter_for_documents' => '',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => '',
@ -992,17 +981,6 @@ URL: [url]',
'nl_NL' => 'Δανέζικα',
'no' => 'Όχι',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Νοέμβριος',
'now' => 'τώρα',
@ -1031,7 +1009,6 @@ URL: [url]',
'no_groups' => '',
'no_group_members' => '',
'no_linked_files' => 'δεν υπάρχουν συνδεδεμένα αρχεία',
'no_mimetype' => '',
'no_previous_versions' => '',
'no_receipt_needed' => '',
'no_review_needed' => '',
@ -1168,9 +1145,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => '',
'remove_review_log' => '',
'remove_task' => '',
@ -1325,7 +1300,6 @@ URL: [url]',
'select_category' => 'Επιλογή κατηγορίας',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Επιλογή ομάδας',
'select_groups' => '',
'select_grp_approvers' => '',
@ -1346,7 +1320,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Επιλογή',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1358,7 +1331,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '',
'september' => 'Σεπτέμβριος',
'sequence' => 'Σειρά',
@ -1373,9 +1345,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Ρυθμίσεις',
'settings_activate_module' => '',
'settings_activate_php_extension' => '',
@ -1473,8 +1443,6 @@ URL: [url]',
'settings_delete_install_folder' => '',
'settings_disableChangePassword' => 'Disable changing password',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => '',
'settings_disableSelfEdit_desc' => '',
'settings_disable_install' => '',
@ -1540,8 +1508,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => '',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1601,8 +1567,6 @@ URL: [url]',
'settings_encryptionKey' => '',
'settings_encryptionKey_desc' => '',
'settings_error' => '',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => '',
'settings_expandFolderTree_desc' => '',
'settings_expandFolderTree_val0' => '',
@ -1659,22 +1623,10 @@ URL: [url]',
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => '',
'settings_logFileEnable_desc' => '',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => '',
'settings_logFileRotation_desc' => '',
'settings_loginFailure' => '',
'settings_loginFailure_desc' => '',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => '',
'settings_luceneClassDir_desc' => '',
'settings_luceneDir' => '',
@ -1773,10 +1725,6 @@ URL: [url]',
'settings_siteName' => '',
'settings_siteName_desc' => '',
'settings_SMTP' => '',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => '',
'settings_smtpPassword_desc' => '',
'settings_smtpPort' => '',
@ -1860,7 +1808,6 @@ URL: [url]',
'sign_out' => 'Αποσύνδεση',
'sign_out_user' => 'Αποσύνδεση χρήστη',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Σλοβάκικα',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -1990,7 +1937,6 @@ URL: [url]',
'status_revision_sleeping' => '',
'status_revisor_removed' => '',
'status_unknown' => '',
'storage' => '',
'storage_size' => '',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (2547), archonwang (3), dgrutsch (9), netixw (14)
// Translators: Admin (2480), archonwang (3), dgrutsch (9), netixw (14)
$text = array(
'2_factor_auth' => '2-factor authentication',
'2_factor_auth_code' => '2nd factor',
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need an Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with your preffered authenticator, e.g. andOTP.',
'2_fact_auth_current_secret' => 'Current secret',
'2_fact_auth_new_secret' => 'New secret',
@ -318,7 +317,6 @@ URL: [url]</p>',
'chart_docsperuser_title' => 'Documents per user',
'chart_foldersperuser_title' => 'Folders per user',
'chart_selection' => 'Select chart',
'chart_sizepermonth_title' => 'Disk space per month',
'chart_sizeperuser_title' => 'Disk space per user',
'checkedout_file_has_different_version' => 'The checked out version is not identical to the current version. Check in will not update the document.',
'checkedout_file_has_disappeared' => 'The file of the checked out document has disappeared. Check in will not be possible.',
@ -330,7 +328,6 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Check out of documents is disabled in the configuration.',
'check_directory_layout' => 'Check directory layout',
'check_failed' => 'failed',
'check_notification_filter' => 'Check notification filter',
'check_passed' => 'passed',
'check_secure_installation' => 'Check for a secure installation',
'choose_attrdef' => 'Please choose attribute definition',
@ -352,7 +349,6 @@ URL: [url]</p>',
'clear_cache' => 'Clear cache',
'clear_clipboard' => 'Clear clipboard',
'clear_password' => 'Clear password',
'click_to_expand_filter_results' => 'Click to expand filter check',
'clipboard' => 'Clipboard',
'close' => 'Close',
'color' => 'Color',
@ -395,8 +391,6 @@ URL: [url]</p>',
'converter_new_mimetype' => 'New mimetype',
'copied_to_checkout_as' => 'File copied by [username] to checkout space as \'[filename]\' on [date]',
'created' => 'Created',
'createSubFolderForImportedFiles' => 'Create imported folder',
'createSubFolderForImportedFiles_desc' => 'If enabled, the folder being imported will be created as well.',
'create_download_link' => '',
'create_fulltext_index' => 'Create fulltext index',
'create_fulltext_index_warning' => 'You are about to recreate the fulltext index. This can take a considerable amount of time and reduce your overall system performance. If you really want to recreate the index, please confirm your operation.',
@ -409,7 +403,7 @@ URL: [url]</p>',
'current_version' => 'Current version',
'daily' => 'Daily',
'dashboard' => 'Dashboard',
'databasesearch' => 'Database',
'databasesearch' => 'Database search',
'database_schema_version' => 'Version of database schema',
'data_loading' => 'Please wait, until the data is loaded …',
'date' => 'Date',
@ -467,7 +461,7 @@ URL: [url]</p>',
'documents_user_no_reception' => 'Documents without reception',
'documents_user_obsolete' => 'Obsolete documents',
'documents_user_reception' => 'Documents awaiting reception',
'documents_user_rejected' => 'Documents rejected',
'documents_user_rejected' => 'Rejected documents',
'documents_user_requiring_attention' => 'Documents owned by you that require attention',
'documents_with_notification' => 'Documents with notification',
'document_access_permission_changed_email' => 'Permission changed',
@ -559,7 +553,6 @@ User: [username]</p>',
'document_files' => 'Attachments',
'document_has_no_workflow' => 'Document has no workflow',
'document_infos' => 'Document Information',
'document_in_revision_no_date' => 'The document is currently in revision. A new revision date can be set when the revision was finished.',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => 'Document is currently checked out. If you delete the document, the checked out version can not be added anymore and remains in the checkout area.',
'document_is_checked_out_update' => 'Document is currently checked out. If you upload a new version, then the checked out version cannot be checked back in anymore.',
@ -712,8 +705,6 @@ URL: [url]</p>',
'download_header_document_name' => 'Document name',
'download_header_document_no' => 'Document no',
'download_header_filename' => 'File name',
'download_header_folder_name' => 'Folder name',
'download_header_folder_no' => 'Folder no.',
'download_header_internal_version' => 'Int. version',
'download_header_reviewer' => 'Reviewer',
'download_header_review_comment' => 'Review comment',
@ -850,8 +841,6 @@ URL: [url]</p>',
'export_user_list_csv' => 'Export users as CSV',
'extension_archive' => 'Extension',
'extension_changelog' => 'Changelog',
'extension_config' => 'Settings',
'extension_info' => 'Extensions',
'extension_is_off_now' => 'Extension off now',
'extension_is_on_now' => 'Extension now enabled',
'extension_loading' => 'Loading extensions ...',
@ -867,17 +856,17 @@ URL: [url]</p>',
'extension_readme' => 'Readme',
'extension_toggle_error' => 'Could not toggle extension',
'extension_version_list' => 'Versions',
'facetfullsearch' => 'Full text (facetts)',
'facetfullsearch' => 'Full text search (facetts)',
'february' => 'February',
'file' => 'File',
'files' => 'Files',
'filesize' => 'File size',
'files_deletion' => 'Files deletion',
'files_deletion_warning' => 'With this option you can delete all files of entire DMS folders. The versioning information will remain visible.',
'files_loading' => 'Please wait, until the list of files is loaded …',
'filetype' => 'File type',
'file_size' => 'File size',
'filter_for_documents' => 'Additional filter for documents',
'filter_for_documents_and_folders' => 'Additional filter for folders and documents',
'filter_for_documents_and_folders' => 'Additional filter for folder and documents',
'filter_for_folders' => 'Additional filter for folders',
'finished_workflow_log' => 'Finished workflows',
'folder' => 'Folder',
@ -1048,7 +1037,7 @@ URL: [url]</p>',
'friday_abbr' => 'Fr',
'from' => 'From',
'fr_FR' => 'French',
'fullsearch' => 'Full text',
'fullsearch' => 'Full text search',
'fullsearch_hint' => 'Use fulltext index',
'fulltextsearch_disabled' => 'Fulltext index is disabled',
'fulltext_converters' => 'Index document conversion',
@ -1200,9 +1189,9 @@ URL: [url]</p>',
'language' => 'Language',
'lastaccess' => 'Last access',
'last_update' => 'Last Update',
'latest_newdocuments' => 'Recently added documents',
'latest_statuschange' => 'Documents with recent status change',
'latest_updateddocuments' => 'Recently updated documents',
'latest_newdocuments' => 'Latest added documents',
'latest_statuschange' => 'Latest status change',
'latest_updateddocuments' => 'Latest updated documents',
'legend' => 'Legend',
'librarydoc' => 'Document from library',
'linked_document' => 'Linked document',
@ -1369,17 +1358,6 @@ URL: [url]</p>',
'nl_NL' => 'Dutch',
'no' => 'No',
'notification' => 'Notification',
'notification_msg_tmpl' => 'Template',
'notification_recvtype' => 'Type of receiver',
'notification_recv_any' => 'Any',
'notification_recv_approver' => 'Approver',
'notification_recv_notification' => 'Notifier',
'notification_recv_owner' => 'Owner',
'notification_recv_reviewer' => 'Reviewer',
'notification_recv_uploader' => 'Uploader',
'notification_recv_workflow' => 'Workflow',
'notification_service_no_filter' => 'This notification services does not have a filter.',
'notification_tmpl' => 'Template',
'not_subscribed' => 'Not subscribed',
'november' => 'November',
'now' => 'now',
@ -1408,7 +1386,6 @@ URL: [url]</p>',
'no_groups' => 'No groups',
'no_group_members' => 'This group has no members',
'no_linked_files' => 'No linked files',
'no_mimetype' => 'No mimetype',
'no_previous_versions' => 'No other versions found',
'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.',
'no_review_needed' => 'No review pending.',
@ -1625,9 +1602,7 @@ User: [username]<br />
URL: [url]</p>',
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
'removeFolderFromDropFolder' => 'Remove folder after import',
'removeFolderFromDropFolder_desc' => 'Enable this if you want the folder which was imported to be removed from the drop folder.',
'remove_approval_log' => 'Remove approval',
'remove_from_clipboard' => 'Remove from clipboard',
'remove_marked_files' => 'Remove marked files',
'remove_review_log' => 'Remove review',
'remove_task' => 'Remove task',
@ -1930,7 +1905,6 @@ URL: [url]</p>',
'select_category' => 'Click to select category',
'select_created' => 'Click to select date of creation',
'select_documents_for_process' => 'Select documents',
'select_folder' => 'Select folder',
'select_group' => 'Select group',
'select_groups' => 'Click to select groups',
'select_grp_approvers' => 'Click to select group approver',
@ -1951,7 +1925,6 @@ URL: [url]</p>',
'select_mimetype' => 'Click to select mimetype',
'select_modified' => 'Click to select date of modification',
'select_one' => 'Select one',
'select_option' => 'Select option',
'select_owner' => 'Click to select owner',
'select_record_type' => 'Choose type',
'select_status' => 'Click to select document status',
@ -1970,7 +1943,6 @@ Name: [username]
If you did not receive a password, please use the password forgotten function on the login page to set a new password.',
'send_login_data_subject' => '[sitename]: [login] - Your login data',
'send_notification' => 'Send notification',
'send_test_mail' => 'Send test mail',
'september' => 'September',
'sequence' => 'Sequence',
@ -1985,9 +1957,7 @@ If you did not receive a password, please use the password forgotten function on
'service_name' => 'Name of service',
'sessions' => 'Users online',
'setDateFromFile' => 'Take over date from imported file',
'setDateFromFile_desc' => 'Take over the date of the imported file as the date of the document in SeedDMS',
'setDateFromFolder' => 'Take over date from imported folder',
'setDateFromFolder_desc' => 'Take over the date of the imported directory as the date of the folder in SeedDMS',
'settings' => 'Settings',
'settings_activate_module' => 'Activate module',
'settings_activate_php_extension' => 'Activate PHP extension',
@ -2085,8 +2055,6 @@ If you did not receive a password, please use the password forgotten function on
'settings_delete_install_folder' => 'In order to use SeedDMS, you must delete the file ENABLE_INSTALL_TOOL in the configuration directory',
'settings_disableChangePassword' => 'Disallow changing own password',
'settings_disableChangePassword_desc' => 'If checked the user cannot change his/her password. Turn this on if LDAP authentication is used. It prevents setting a database password and circumvent LDAP authentication.',
'settings_disableReceiptComment' => 'Disable comment for reception',
'settings_disableReceiptComment_desc' => 'Turning this on will disable comments for receptions.',
'settings_disableSelfEdit' => 'Disable Self Edit',
'settings_disableSelfEdit_desc' => 'If checked user cannot edit his own profile',
'settings_disable_install' => 'Delete file ENABLE_INSTALL_TOOL if possible',
@ -2152,8 +2120,6 @@ If you did not receive a password, please use the password forgotten function on
'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step. Turning this on will turn off http only cookies.',
'settings_enableLoginByEmail' => 'Enable login by email',
'settings_enableLoginByEmail_desc' => 'If enabled, the user maya also use the email address for login. This will not disable login with the username. This setting may not be regarded by all authentication methods. Because the email is not unique, authentication may fail, even if the user enters a right password.',
'settings_enableMemcached' => 'Use memcached (experimental)',
'settings_enableMemcached_desc' => 'Use memcached for accelerating some database operations. This should not be be turned on in production.',
'settings_enableMenuTasks' => 'Enable task list in menu',
'settings_enableMenuTasks_desc' => 'Enable/Disable the menu item which contains all tasks for the user. This contains documents, that need to be reviewed, approved, etc.',
'settings_enableMenuTransmittals' => 'Enable transmittals in menu',
@ -2213,8 +2179,6 @@ If you did not receive a password, please use the password forgotten function on
'settings_encryptionKey' => 'Encryption key',
'settings_encryptionKey_desc' => 'This string is used for creating a unique identifier being added as a hidden field to a form in order to prevent CSRF attacks.',
'settings_error' => 'Error',
'settings_excludeFoldersDashboard' => 'Exclude folders from dashboard',
'settings_excludeFoldersDashboard_desc' => 'This folders will not be checked for documents shown on the dashboard. This can be useful for archived documents or documents in the trash.',
'settings_expandFolderTree' => 'Expand Folder Tree',
'settings_expandFolderTree_desc' => 'Expand Folder Tree',
'settings_expandFolderTree_val0' => 'start with tree hidden',
@ -2271,22 +2235,10 @@ If you did not receive a password, please use the password forgotten function on
'settings_libraryFolder_desc' => 'Folder where documents can be copied to create new documents.',
'settings_logFileEnable' => 'Log File Enable',
'settings_logFileEnable_desc' => 'Enable/disable log file',
'settings_logFileMaxLevel' => 'Maximum log level',
'settings_logFileMaxLevel_desc' => 'All messages up to this level will be logged',
'settings_logFileRestApiMaxLevel' => 'Rest Api maximum log level',
'settings_logFileRestApiMaxLevel_desc' => 'All messages of the Rest Api up to this level will be logged',
'settings_logFileRotation' => 'Log File Rotation',
'settings_logFileRotation_desc' => 'The log file rotation',
'settings_loginFailure' => 'Login failure',
'settings_loginFailure_desc' => 'Disable account after n login failures.',
'settings_logLevelAlert' => 'Alert',
'settings_logLevelCritical' => 'Critical',
'settings_logLevelDebug' => 'Debug',
'settings_logLevelEmergency' => 'Emergency',
'settings_logLevelError' => 'Error',
'settings_logLevelInfo' => 'Information',
'settings_logLevelNotice' => 'Notice',
'settings_logLevelWarning' => 'Warning',
'settings_luceneClassDir' => 'Lucene SeedDMS directory',
'settings_luceneClassDir_desc' => 'Path to SeedDMS_Lucene (optional). Leave this empty if you have installed SeedDMS_Lucene at a place where it can be found by PHP, e.g. Extra PHP Include-Path',
'settings_luceneDir' => 'Directory for full text index',
@ -2385,10 +2337,6 @@ If you did not receive a password, please use the password forgotten function on
'settings_siteName' => 'Site Name',
'settings_siteName_desc' => 'Name of site used in the page titles. Default: SeedDMS',
'settings_SMTP' => 'SMTP Server settings',
'settings_smtpForceFrom' => 'Force from email',
'settings_smtpForceFrom_desc' => 'Use address from \'Send from\' for all outgoing mail.',
'settings_smtpLazySSL' => 'Lazy SSL checking',
'settings_smtpLazySSL_desc' => 'Turn off checking for a valid SSL certificate. This can be useful if self signed certificates are used or a certificate has expired. Turning this on can be dangerous, if you do not know the potential risks.',
'settings_smtpPassword' => 'SMTP Server password',
'settings_smtpPassword_desc' => 'SMTP Server password',
'settings_smtpPort' => 'SMTP Server port',
@ -2472,7 +2420,6 @@ If you did not receive a password, please use the password forgotten function on
'sign_out' => 'Sign out',
'sign_out_user' => 'Sign out user',
'site_brand' => '',
'skip_default_export_cols' => 'Skip default columns',
'sk_SK' => 'Slovak',
'sort_by_date' => 'Sort by date',
'sort_by_expiration_date' => 'Sort by date of expiration',
@ -2602,7 +2549,6 @@ If you did not receive a password, please use the password forgotten function on
'status_revision_sleeping' => 'pending',
'status_revisor_removed' => 'Revisor removed from list',
'status_unknown' => 'Unknown',
'storage' => 'Storage',
'storage_size' => 'Storage size',
'subfolder_duplicate_name' => 'Duplicate subfolder name',
'submit_2_fact_auth' => 'Save secret',
@ -2664,15 +2610,7 @@ If you did not receive a password, please use the password forgotten function on
'task_name' => 'Name',
'task_next_run' => 'Next run',
'temp_jscode' => 'Temporary javascript code',
'testmail_body' => 'This mail is just for testing the mail configuration of SeedDMS
URL: [url]
Sitename: [sitename]
Version: [version]
SMTP Server: [smtpserver]
SMTP Port: [smtpport]
No SSL Check: [lazyssl]
Use Sender from: [forcefrom]',
'testmail_body' => 'This mail is just for testing the mail configuration of SeedDMS',
'testmail_subject' => 'Test mail',
'theme' => 'Theme',
'thursday' => 'Thursday',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: acabello (20), Admin (1356), angel (123), francisco (2), jaimem (14)
// Translators: acabello (20), Admin (1355), angel (123), francisco (2), jaimem (14)
$text = array(
'2_factor_auth' => 'Autenticación de doble factor',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -280,7 +279,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Documentos por usuario',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Seleccione un gráfico',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Espacio de almacenamiento por usuario',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -292,7 +290,6 @@ URL: [url]',
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Por favor, seleccione definición de atributo',
@ -314,7 +311,6 @@ URL: [url]',
'clear_cache' => 'Borrar cache',
'clear_clipboard' => 'Limpiar portapapeles',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Portapapeles',
'close' => 'Cerrar',
'color' => '',
@ -357,8 +353,6 @@ URL: [url]',
'converter_new_mimetype' => 'Nuevo mime type',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Crear índice de texto completo',
'create_fulltext_index_warning' => 'Usted va a regenerar el índice te texto completo. Esto puede tardar un tiempo considerable y consumir capacidad de su equipo. Si realmente quiere regenerar el índice, por favor confirme la operación.',
@ -370,7 +364,7 @@ URL: [url]',
'current_state' => 'Estado actual',
'current_version' => 'Versión actual',
'daily' => 'Diaria',
'dashboard' => 'Panel Principal',
'dashboard' => '',
'databasesearch' => 'Búsqueda en base de datos',
'database_schema_version' => 'Versión del esquema de base de datos',
'data_loading' => 'Por favor, espere hasta que los datos sean cargados ...',
@ -478,7 +472,6 @@ Usuario: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Documento sin flujo de trabajo',
'document_infos' => 'Informaciones',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -567,8 +560,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -699,8 +690,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => 'Log de Cambios',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Cargando extensiones',
@ -720,11 +709,11 @@ URL: [url]',
'february' => 'Febrero',
'file' => 'Fichero',
'files' => 'Ficheros',
'filesize' => 'Tamaño',
'files_deletion' => 'Eliminación de ficheros',
'files_deletion_warning' => 'Con esta opción se puede eliminar todos los ficheros del DMS completo. La información de versionado permanecerá visible.',
'files_loading' => 'Por favor espere, mientras la lista de archivos es cargada',
'filetype' => '',
'file_size' => 'Tamaño',
'filter_for_documents' => 'Filtro adicional para documentos',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtro adicional para carpetas',
@ -1118,17 +1107,6 @@ URL: [url]',
'nl_NL' => 'Holandes',
'no' => 'No',
'notification' => 'Notificación',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Noviembre',
'now' => 'ahora',
@ -1157,7 +1135,6 @@ URL: [url]',
'no_groups' => 'No hay grupos',
'no_group_members' => 'Este grupo no tiene miembros',
'no_linked_files' => 'No hay ficheros vinculados',
'no_mimetype' => '',
'no_previous_versions' => 'No se han encontrado otras versiones',
'no_receipt_needed' => '',
'no_review_needed' => 'No hay revisiones pendientes.',
@ -1311,9 +1288,7 @@ nURL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Eliminar flujo de trabajo de la versión del documento',
'removeFolderFromDropFolder' => 'Eliminar carpeta después de importar',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Eliminar ficheros marcados',
'remove_review_log' => '',
'remove_task' => '',
@ -1495,7 +1470,6 @@ URL: [url]',
'select_category' => 'Haga Click para seleccionar categoría',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Seleccionar Grupo',
'select_groups' => 'Haga Click para seleccionar grupos',
'select_grp_approvers' => 'Haga Click para seleccionar grupo de aprobadores',
@ -1516,7 +1490,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Seleccionar uno',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1528,7 +1501,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Enviar correo de prueba',
'september' => 'Septiembre',
'sequence' => 'Secuencia',
@ -1543,9 +1515,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => 'Obtiene la fecha del archivo importado',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Obtiene la fecha de la carpeta importada',
'setDateFromFolder_desc' => '',
'settings' => 'Configuración',
'settings_activate_module' => 'Activar módulo',
'settings_activate_php_extension' => 'Activar extensión PHP',
@ -1643,8 +1613,6 @@ URL: [url]',
'settings_delete_install_folder' => 'Para utilizar SeedDMS, debe eliminar el archivo ENABLE_INSTALL_TOOL de la carpeta de configuración',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Deshabilitar autoedición',
'settings_disableSelfEdit_desc' => 'Si está seleccionado el usuario no podrá editar su propio perfil',
'settings_disable_install' => 'Eliminar el archivo ENABLE_INSTALL_TOOL se es posible',
@ -1710,8 +1678,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Si se habilita, la carga de ficheros también estará disponible a través de un applet java llamado jumploader, sin límite de tamaño de fichero fijado por el navegador. También permite la carga de múltiples ficheros de una sola vez.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Activar en el menú la lista de tareas',
'settings_enableMenuTasks_desc' => 'Habilita/Deshabillita la parte del menú que contiene todas las tareas para el usuario. Contiene documentos que necesitan ser revisados, aprobados, etc.',
'settings_enableMenuTransmittals' => '',
@ -1771,8 +1737,6 @@ URL: [url]',
'settings_encryptionKey' => 'Clave de cifrado',
'settings_encryptionKey_desc' => 'Esta cadena se utiliza para crear un identificador único añadido como campo oculto a formularios para prevenir ataques CSRF.',
'settings_error' => 'Error',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Expandir árbol de carpetas',
'settings_expandFolderTree_desc' => 'Expandir árbol de carpetas',
'settings_expandFolderTree_val0' => 'Comenzar con el árbol oculto',
@ -1829,22 +1793,10 @@ URL: [url]',
'settings_libraryFolder_desc' => 'Carpeta donde un documento puede ser copiado para crear nuevos documentos',
'settings_logFileEnable' => 'Archivo de registro habilitado',
'settings_logFileEnable_desc' => 'Habilitar/Deshabilitar archivo de registro',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotación del archivo de registro',
'settings_logFileRotation_desc' => 'Rotación del archivo de registro',
'settings_loginFailure' => 'Fallo de acceso',
'settings_loginFailure_desc' => 'Deshabilitar cuenta después de n intentos de acceso.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Carpeta de SeedDMS Lucene',
'settings_luceneClassDir_desc' => 'Ruta hacia SeedDMS_Lucene (opcional)',
'settings_luceneDir' => 'Carpeta del índice de texto completo',
@ -1943,10 +1895,6 @@ URL: [url]',
'settings_siteName' => 'Nombre del sitio',
'settings_siteName_desc' => 'Nombre del sitio usado en los títulos de página. Por defecto: SeedDMS',
'settings_SMTP' => 'Configuración del servidor SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Contraseña del servidor SMTP',
'settings_smtpPassword_desc' => 'Contraseña del servidor SMTP',
'settings_smtpPort' => 'Puerto del servidor SMTP',
@ -2030,7 +1978,6 @@ URL: [url]',
'sign_out' => 'Salir',
'sign_out_user' => 'Desconectar usuario',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovaco',
'sort_by_date' => 'Ordenar por Fecha',
'sort_by_expiration_date' => 'Ordenar por fecha de vencimiento',
@ -2160,7 +2107,6 @@ URL: [url]',
'status_revision_sleeping' => 'pendiente',
'status_revisor_removed' => '',
'status_unknown' => 'Desconocido',
'storage' => '',
'storage_size' => 'Tamaño de almacenamiento',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1175), jeromerobert (50), lonnnew (9), Oudiceval (1171)
// Translators: Admin (1171), jeromerobert (50), lonnnew (9), Oudiceval (1171)
$text = array(
'2_factor_auth' => 'Authentification forte',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Ce système requiert une authentification à deux facteurs. Cela nécessite linstallation de Google Authenticator sur votre téléphone mobile. Ci-dessous sont visibles deux QR codes. Celui de droite correspond à votre clé secrète actuelle. Celui de gauche permet de définir une nouvelle clé secrète. Lorsque vous définissez une nouvelle clé secrète, assurez-vous de la scanner avec Google Authenticator.',
'2_fact_auth_current_secret' => 'Clé secrète actuelle',
'2_fact_auth_new_secret' => 'Nouvelle clé secrète',
@ -309,7 +308,6 @@ URL : [url]</p>',
'chart_docsperuser_title' => 'Documents par utilisateur',
'chart_foldersperuser_title' => 'Dossiers par utilisateur',
'chart_selection' => 'Sélectionner un graphique',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Volume par utilisateur',
'checkedout_file_has_different_version' => 'La version bloquée nest pas identique à la version actuelle. Le déblocage ne modifiera pas le document.',
'checkedout_file_has_disappeared' => 'Le fichier du document bloqué nexiste plus. Le déblocage est impossible.',
@ -321,7 +319,6 @@ URL : [url]</p>',
'checkout_is_disabled' => 'Le blocage (check-out) de documents est désactivé dans la configuration.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Choisissez une définition d\'attribut',
@ -343,7 +340,6 @@ URL : [url]</p>',
'clear_cache' => 'Vider le cache',
'clear_clipboard' => 'Vider le presse-papier',
'clear_password' => 'Sans mot de passe',
'click_to_expand_filter_results' => '',
'clipboard' => 'Presse-papier',
'close' => 'Fermer',
'color' => 'Couleur',
@ -386,8 +382,6 @@ URL : [url]</p>',
'converter_new_mimetype' => 'Nouveau type MIME',
'copied_to_checkout_as' => 'Fichier copié dans lespace de blocage en tant que « [filename] » ([date])',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Créer un lien de téléchargement',
'create_fulltext_index' => 'Créer un index de recherche plein texte',
'create_fulltext_index_warning' => 'Vous allez recréer l\'index de recherche plein texte. Cela peut prendre un temps considérable et réduire les performances de votre système dans son ensemble. Si vous voulez vraiment recréer l\'index, merci de confirmer votre opération.',
@ -399,7 +393,7 @@ URL : [url]</p>',
'current_state' => 'État actuel',
'current_version' => 'Version actuelle',
'daily' => 'Journalier',
'dashboard' => 'Tableau de bord',
'dashboard' => '',
'databasesearch' => 'Recherche dans la base de données',
'database_schema_version' => 'Version du schéma de base de données',
'data_loading' => 'Veuillez patienter, jusqu\'à ce que les données soient chargées',
@ -534,7 +528,6 @@ Utilisateur : [username]</p>',
'document_files' => 'Fichiers attachés',
'document_has_no_workflow' => 'Le document n\'a pas de workflow',
'document_infos' => 'Informations sur le document',
'document_in_revision_no_date' => '',
'document_is_checked_out' => 'Ce document est vérifié',
'document_is_checked_out_remove' => 'Le document est actuellement vérifié. Si vous supprimez le document, la version vérifiée ne pourra plus être ajoutée et restera dans la zone de vérification.',
'document_is_checked_out_update' => 'Le document est actuellement vérifié. Si vous ajoutez une nouvelle version, la version vérifiée ne pourra plus être vérifiée à nouveau.',
@ -682,8 +675,6 @@ URL : [url]</p>',
'download_header_document_name' => 'Nom du document',
'download_header_document_no' => 'N° du document',
'download_header_filename' => 'Nom du fichier',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => 'Version interne',
'download_header_reviewer' => 'Examinateur',
'download_header_review_comment' => 'Commentaire de vérification',
@ -782,7 +773,7 @@ URL : [url]</p>',
'error_update_document' => 'Erreur lors de la mise à jour du document',
'error_uploading_reviewer_only' => 'Erreur lors de la création du document. Le document a un examinateur, mais pas dapprobateur.',
'es_ES' => 'Espagnol',
'event' => 'Évenement',
'event' => '',
'event_details' => 'Détails de l\'événement',
'exclude_items' => 'Exclure des élements',
'expired' => 'Expiré',
@ -820,8 +811,6 @@ URL : [url]</p>',
'export_user_list_csv' => 'Exporter les utilisateurs en CSV',
'extension_archive' => 'Extension',
'extension_changelog' => 'Journal des modifications',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => 'Lextension est désactivée',
'extension_is_on_now' => 'Lextension est activée',
'extension_loading' => 'Chargement des extensions…',
@ -841,11 +830,11 @@ URL : [url]</p>',
'february' => 'Février',
'file' => 'Fichier',
'files' => 'Fichiers',
'filesize' => 'Taille',
'files_deletion' => 'Suppression de fichiers',
'files_deletion_warning' => 'Avec cette option, vous pouvez supprimer tous les fichiers d\'un dossier DMS. Les informations de version resteront visibles.',
'files_loading' => 'Veuillez patienter pendant le chargement de la liste des fichiers…',
'filetype' => 'Type de fichier',
'file_size' => 'Taille',
'filter_for_documents' => 'Filtre additionnel pour les documents',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtre additionnel pour les dossiers',
@ -1324,17 +1313,6 @@ URL : [url]</p>',
'nl_NL' => 'Danois',
'no' => 'Non',
'notification' => 'Notification',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => 'Non inscrit',
'november' => 'Novembre',
'now' => 'Maintenant',
@ -1363,7 +1341,6 @@ URL : [url]</p>',
'no_groups' => 'Aucun groupe',
'no_group_members' => 'Ce groupe ne contient aucun membre',
'no_linked_files' => 'Aucun fichier lié',
'no_mimetype' => '',
'no_previous_versions' => 'Aucune autre version trouvée',
'no_receipt_needed' => 'Il ny a actuellement aucun document nécessitant une confirmation de réception.',
'no_review_needed' => 'Aucune vérification en attente',
@ -1578,9 +1555,7 @@ Utilisateur : [username]<br />
URL : [url]</p>',
'removed_workflow_email_subject' => '[sitename] : [name] - Workflow retiré de la version du doument',
'removeFolderFromDropFolder' => 'Suppression du dossier après importation',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => 'Approbation retirée',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Supprimer les fichiers sélectionnés',
'remove_review_log' => 'Vérification retirée',
'remove_task' => '',
@ -1877,7 +1852,6 @@ URL : [url]</p>',
'select_category' => 'Cliquer pour choisir une catégorie',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Sélectionner un groupe',
'select_groups' => 'Cliquer pour choisir un groupe',
'select_grp_approvers' => 'Cliquer pour choisir un groupe d\'approbateur',
@ -1898,7 +1872,6 @@ URL : [url]</p>',
'select_mimetype' => 'Sélectionner un type MIME',
'select_modified' => '',
'select_one' => 'Selectionner',
'select_option' => '',
'select_owner' => 'Sélectionner un propriétaire',
'select_record_type' => '',
'select_status' => 'Cliquer pour sélectionner un statut',
@ -1915,7 +1888,6 @@ Nom : [username]
[comment]',
'send_login_data_subject' => '[sitename] : [login] - Vos informations de connexion',
'send_notification' => '',
'send_test_mail' => 'Envoyer un e-mail test',
'september' => 'Septembre',
'sequence' => 'Position dans le dossier',
@ -1930,9 +1902,7 @@ Nom : [username]
'service_name' => '',
'sessions' => 'Utilisateurs en ligne',
'setDateFromFile' => 'Reprendre la date du fichier importé',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Reprendre la date du dossier importé',
'setDateFromFolder_desc' => '',
'settings' => 'Configuration',
'settings_activate_module' => 'Activez le module',
'settings_activate_php_extension' => 'Activez l\'extension PHP',
@ -2030,8 +2000,6 @@ Nom : [username]
'settings_delete_install_folder' => 'Pour utiliser SeedDMS, vous devez supprimer le fichier ENABLE_INSTALL_TOOL dans le répertoire de configuration',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Désactiver auto modification',
'settings_disableSelfEdit_desc' => 'Si coché, l\'utilisateur ne peut pas éditer son profil',
'settings_disable_install' => 'Si possible, supprimer le fichier ENABLE_INSTALL_TOOL',
@ -2097,8 +2065,6 @@ Nom : [username]
'settings_enableLargeFileUpload_desc' => 'Si défini, le téléchargement de fichier est également disponible via un applet java appelé jumploader sans limite de taille définie par le navigateur. Il permet également de télécharger plusieurs fichiers en une seule fois.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Activer le menu des tâches',
'settings_enableMenuTasks_desc' => 'Affiche un menu avec la liste des tâches. Cette liste contient les documents en attente dune action par lutilisateur.',
'settings_enableMenuTransmittals' => '',
@ -2158,8 +2124,6 @@ Nom : [username]
'settings_encryptionKey' => 'Clé de cryptage',
'settings_encryptionKey_desc' => 'Cette chaîne est utilisée pour créer un identifiant unique étant ajouté comme champ masqué à un formulaire afin de prévenir des attaques CSRF.',
'settings_error' => 'Erreur',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Dérouler l\'arborescence des dossiers',
'settings_expandFolderTree_desc' => 'Dérouler l\'arborescence des dossiers',
'settings_expandFolderTree_val0' => 'Démarrer avec l\'arborescence cachée',
@ -2216,22 +2180,10 @@ Nom : [username]
'settings_libraryFolder_desc' => 'Dossier dans lequel les documents peuvent être copiés pour en créer de nouveaux.',
'settings_logFileEnable' => 'Fichier journal activé',
'settings_logFileEnable_desc' => 'Active/désactive le fichier journal',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotation fichier journal',
'settings_logFileRotation_desc' => 'Rotation fichier journal',
'settings_loginFailure' => 'Max. échecs de connexion',
'settings_loginFailure_desc' => 'Désactiver le compte après n échecs de connexion.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Répertoire Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Chemin vers SeedDMS_Lucene (optionnel)',
'settings_luceneDir' => 'Répertoire index Lucene',
@ -2330,10 +2282,6 @@ Nom : [username]
'settings_siteName' => 'Nom du site',
'settings_siteName_desc' => 'Nom du site utilisé pour les titres de pages. Par défaut : SeedDMS',
'settings_SMTP' => 'Paramètres du serveur SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Mot de passe du serveur SMTP',
'settings_smtpPassword_desc' => 'Mot de passe du serveur SMTP',
'settings_smtpPort' => 'Port serveur SMTP',
@ -2417,7 +2365,6 @@ Nom : [username]
'sign_out' => 'Déconnexion',
'sign_out_user' => 'Déconnecter l\'utilisateur',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovaque',
'sort_by_date' => 'Trier par date',
'sort_by_expiration_date' => 'Trier par date dexpiration',
@ -2547,7 +2494,6 @@ Nom : [username]
'status_revision_sleeping' => 'en attente',
'status_revisor_removed' => 'Réviseur retiré de la liste',
'status_unknown' => 'Inconnu',
'storage' => '',
'storage_size' => 'Taille occupée',
'subfolder_duplicate_name' => 'Un sous-dossier porte déjà ce nom !',
'submit_2_fact_auth' => 'Enregistrer la clé secrète',
@ -2692,7 +2638,7 @@ URL : [url]</p>',
'type_to_filter' => 'Filtrer dans la liste',
'type_to_search' => 'Effectuer une recherche',
'uk_UA' => 'Ukrénien',
'undefined' => 'indéfini',
'undefined' => '',
'under_folder' => 'Dans le dossier',
'unknown_attrdef' => 'Définition dattribut inconnue',
'unknown_command' => 'Commande non reconnue.',
@ -2711,7 +2657,7 @@ URL : [url]</p>',
'unlock_cause_locking_user' => 'Vous pouvez encore le mettre à jour, car vous êtes le seul à l\'avoir verrouillé. Le verrouillage sera automatiquement annulé.',
'unlock_document' => 'Déverrouiller',
'update' => 'Mettre à jour',
'updated' => 'mis à jour',
'updated' => '',
'updated_documents' => '',
'update_approvers' => 'Mettre à jour la liste des approbateurs',
'update_document' => 'Mettre à jour',

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'Kétfaktoros azonosítás',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'A rendszernek két faktoros hitelesítése van. Szükséged lesz a Google Authenticator-ra a mobil telefonodon. Lejebb látható két QR kód. A jobb oldali a saját jelszavát, a baloldali egy új titkos jelszót tartalmaz. Ha új jelszót szeretne beállítani, szkennelje be újra a Goolge Authenticator-al.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -280,7 +279,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumentumok felhasználónként',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Diagram választása',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Lemezterület felhasználónként',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -292,7 +290,6 @@ URL: [url]',
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Kérem válasszon jellemző meghatározást',
@ -314,7 +311,6 @@ URL: [url]',
'clear_cache' => 'Gyorsítótár törlése',
'clear_clipboard' => 'Vágólap törlése',
'clear_password' => 'jelszó törlése',
'click_to_expand_filter_results' => '',
'clipboard' => 'Vágólap',
'close' => 'Bezár',
'color' => '',
@ -357,8 +353,6 @@ URL: [url]',
'converter_new_mimetype' => 'Új mime típus',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Teljes szöveg index létrehozása',
'create_fulltext_index_warning' => 'Ön a teljes szöveg index újraépítését kezdeményezte. Ez a művelet hosszú ideig eltarthat és jelentősen csökkentheti az egész rendszer teljesítményét. Ha biztosan újra kívánja építeni az indexet, kérjük erősítse meg a műveletet.',
@ -472,7 +466,6 @@ Felhasználó: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokumentumhoz nincs munkafolyamat',
'document_infos' => 'Dokumentum információ',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -561,8 +554,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -693,8 +684,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Bővítmények',
'extension_changelog' => 'Változásnapló',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Kiterjesztések betöltése ...',
@ -714,11 +703,11 @@ URL: [url]',
'february' => 'Február',
'file' => 'Állomány',
'files' => 'Állományok',
'filesize' => 'Állomány méret',
'files_deletion' => 'Állományok törlése',
'files_deletion_warning' => 'Ezzel az opcióval törölheti az összes állományt valamennyi DMS mappában. A változási információk láthatók maradnak.',
'files_loading' => 'Kérem, várjon, amíg a fájl lista betöltődik ...',
'filetype' => '',
'file_size' => 'Állomány méret',
'filter_for_documents' => 'További dokumentum szűrők',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'További mappa szűrők',
@ -1109,17 +1098,6 @@ URL: [url]',
'nl_NL' => 'Holland',
'no' => 'Nem',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'November',
'now' => 'most',
@ -1148,7 +1126,6 @@ URL: [url]',
'no_groups' => 'Nincsenek csoportok',
'no_group_members' => 'Ennek a csoportnak nincsenek tagjai',
'no_linked_files' => 'Nincsenek hivatkozott állományok',
'no_mimetype' => '',
'no_previous_versions' => 'Nem találhatók más változatok',
'no_receipt_needed' => '',
'no_review_needed' => 'Nincs folyamatban lévő felülvizsgálat.',
@ -1302,9 +1279,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Dokumentum változatból eltávolított munkafolyamat',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Megjelölt állományok eltávolítása',
'remove_review_log' => '',
'remove_task' => '',
@ -1485,7 +1460,6 @@ URL: [url]',
'select_category' => 'Kattintson a kategória kiválasztásához',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Csoport kiválasztása',
'select_groups' => 'Kattintson a csoportok kijelöléséhez',
'select_grp_approvers' => 'Kattintson a csoport jóváhagyó kijelöléséhez',
@ -1506,7 +1480,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Válasszon egyet',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1518,7 +1491,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Teszt e-mail küldése',
'september' => 'September',
'sequence' => 'Sorrend',
@ -1533,9 +1505,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Beállítások',
'settings_activate_module' => 'Modul aktiválása',
'settings_activate_php_extension' => 'PHP kiterjesztés aktiválása',
@ -1633,8 +1603,6 @@ URL: [url]',
'settings_delete_install_folder' => 'A SeedDMS használatához törölnie kell a konfigurációs könyvtárban található ENABLE_INSTALL_TOOL állományt.',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Saját adatok szerkesztésének tiltása',
'settings_disableSelfEdit_desc' => 'Ha be van jelölve a felhasználó nem szerkesztheti saját profilját',
'settings_disable_install' => 'Törölje az ENABLE_INSTALL_TOOL állományt, ha lehetséges',
@ -1700,8 +1668,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Ha beállítja az állományok feltöltése elérhető lesz egy jumploadernek hívott java appleten keresztül a böngészőprogram állomány méret korlátja nélkül. Ez engedélyezi több állomány feltöltését egy lépésben.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Feladatok menüpont engedélyezése',
'settings_enableMenuTasks_desc' => 'Engedélyezi / letiltja a menüelemet, amely a felhasználó összes feladatát tartalmazza. Ez olyan dokumentumokat tartalmaz, amelyeket felül kell vizsgálni, jóvá kell hagyni stb.',
'settings_enableMenuTransmittals' => '',
@ -1761,8 +1727,6 @@ URL: [url]',
'settings_encryptionKey' => 'Titkosító kulcs',
'settings_encryptionKey_desc' => 'Ez a karaktersorozat használható egyedi azonosító létrehozásához amely rejtett mezőként lesz hozzáadva az űrlapokhoz a CSRF támadások megelőzésére.',
'settings_error' => 'Hiba',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Mappa fastruktúra kibontása',
'settings_expandFolderTree_desc' => 'Mappa fastruktúra kibontása',
'settings_expandFolderTree_val0' => 'indulás rejtett fastruktúrával',
@ -1819,22 +1783,10 @@ URL: [url]',
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => 'Naplóállomány engedélyezése',
'settings_logFileEnable_desc' => 'Naplóállomány engedélyezése/tiltása',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Naplóállomány forgatása',
'settings_logFileRotation_desc' => 'A naplóállomány forgatása',
'settings_loginFailure' => 'Bejelentkezési hiba',
'settings_loginFailure_desc' => 'Letiltja a hozzáférést n bejelentkezési hiba után.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS könyvtár',
'settings_luceneClassDir_desc' => 'Elérési útvonal a SeedDMS_Lucene programhoz (opcionális). Hagyja üresen, ha már telepített SeedDMS_Lucene alkalmazást olyan helyre, ahol azt megtalálja a PHP, pl.: Extra PHP Include-Path segítségével',
'settings_luceneDir' => 'Teljes szöveg index könyvtára',
@ -1933,10 +1885,6 @@ URL: [url]',
'settings_siteName' => 'Webhely név',
'settings_siteName_desc' => 'A webhely neve az oldalak címsorában. Alapérték: SeedDMS',
'settings_SMTP' => 'SMTP kiszolgáló beállítások',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP kiszolgáló jelszó',
'settings_smtpPassword_desc' => 'SMTP kiszolgáló jelszó',
'settings_smtpPort' => 'SMTP kiszolgáló port',
@ -2020,7 +1968,6 @@ URL: [url]',
'sign_out' => 'Kijelentkezés',
'sign_out_user' => 'Kijelentkezés',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Szlovák',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2150,7 +2097,6 @@ URL: [url]',
'status_revision_sleeping' => '',
'status_revisor_removed' => '',
'status_unknown' => 'Ismeretlen',
'storage' => '',
'storage_size' => 'Tároló mérete',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (489), atoz-chevara (835)
// Translators: Admin (485), atoz-chevara (835)
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => 'Kunci rahasi saat ini',
'2_fact_auth_new_secret' => '',
@ -289,7 +288,6 @@ URL: [url]</p>',
'chart_docsperuser_title' => 'Dokumen berdasarkan pengguna',
'chart_foldersperuser_title' => 'Folder berdasarkan pengguna',
'chart_selection' => 'Pilih grafik',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Ruang penyimpanan per pengguna',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => 'Berkas dokumen yang diperiksa telah hilang. Check-in tidak dapat dilakukan.',
@ -301,7 +299,6 @@ URL: [url]</p>',
'checkout_is_disabled' => 'Check out dokumen dinonaktifkan dalam konfigurasi',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Harap memilih definisi label',
@ -323,7 +320,6 @@ URL: [url]</p>',
'clear_cache' => 'Hapus cache',
'clear_clipboard' => 'Hapus Papan klip',
'clear_password' => 'Hapus kata sandi',
'click_to_expand_filter_results' => '',
'clipboard' => 'Papan klip',
'close' => 'Tutup',
'color' => 'Warna',
@ -366,8 +362,6 @@ URL: [url]</p>',
'converter_new_mimetype' => 'Mimetype baru',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Buat link unduhan',
'create_fulltext_index' => 'Buat fulltext indek',
'create_fulltext_index_warning' => 'Anda akan membuat ulang indeks fulltext. Ini dapat memakan banyak waktu dan mengurangi kinerja sistem Anda secara keseluruhan. Jika Anda benar-benar ingin membuat ulang indeks, harap konfirmasikan operasi Anda.',
@ -382,7 +376,7 @@ URL: [url]</p>',
'dashboard' => '',
'databasesearch' => 'Pencarian Basis data',
'database_schema_version' => 'Versi skema basis data',
'data_loading' => 'Harap tunggu, data sedang disiapkan.',
'data_loading' => '',
'date' => 'Tanggal',
'days' => 'hari',
'debug' => 'Debug',
@ -496,7 +490,6 @@ Pengguna: [username]',
'document_files' => 'Lampiran',
'document_has_no_workflow' => 'Dokumen tidak memiliki alur kerja',
'document_infos' => 'Informasi Dokumen',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => 'Dokumen sedang diperiksa. Jika Anda menghapus dokumen, versi check out tidak dapat ditambahkan lagi dan tetap berada di area checkout.',
'document_is_checked_out_update' => '',
@ -616,8 +609,6 @@ URL: [url]</p>',
'download_header_document_name' => 'Nama dokumen',
'download_header_document_no' => 'Nomor Dokumen',
'download_header_filename' => 'Nama berkas',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => 'Int. versi',
'download_header_reviewer' => 'Pengulas',
'download_header_review_comment' => '',
@ -689,7 +680,7 @@ URL: [url]</p>',
'empty_notify_list' => 'Tidak ada entri',
'enable_extension' => 'Aktifkan ekstensi',
'enddate' => '',
'en_GB' => 'Inggris (GB)',
'en_GB' => '',
'equal_transition_states' => 'Status awal dan akhir sama',
'error' => 'Galat',
'error_add_aro' => 'Kesalahan saat menambahkan objek permintaan akses',
@ -749,8 +740,6 @@ URL: [url]',
'export_user_list_csv' => 'Ekspor pengguna sebagai CSV',
'extension_archive' => 'Ekstensi',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => 'Perpanjangan tidak aktif sekarang',
'extension_is_on_now' => '',
'extension_loading' => 'Memuat ekstensi...',
@ -770,11 +759,11 @@ URL: [url]',
'february' => 'Februari',
'file' => 'Berkas',
'files' => '',
'filesize' => 'Ukuran berkas',
'files_deletion' => 'Penghapusan berkas',
'files_deletion_warning' => '',
'files_loading' => 'Harap tunggu, hingga daftar berkas dimuat ...',
'filetype' => '',
'file_size' => 'Ukuran berkas',
'filter_for_documents' => '',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filter tambahan untuk folder',
@ -967,7 +956,7 @@ URL: [url]</p>',
'index_processing' => '',
'index_waiting' => 'Mengunggu',
'individuals' => 'Perorangan',
'individuals_in_groups' => 'Anggota di grup',
'individuals_in_groups' => '',
'ind_review_removed' => 'Perubahan status, karena ulasan pengguna [name] telah dihapus.',
'info_recipients_tab_not_released' => '',
'info_rm_user_from_processes_none' => '',
@ -1202,17 +1191,6 @@ URL: [url]',
'nl_NL' => 'Belanda',
'no' => 'Tidak',
'notification' => 'Notifikasi',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => 'Tidak berlangganan',
'november' => 'November',
'now' => 'sekarang',
@ -1241,7 +1219,6 @@ URL: [url]',
'no_groups' => 'Tidak ada kelompok',
'no_group_members' => 'Kelompok ini tidak memiliki anggota',
'no_linked_files' => 'Tidak ada berkas yang ditautkan',
'no_mimetype' => '',
'no_previous_versions' => 'Tidak ada versi lain yang ditemukan',
'no_receipt_needed' => 'Saat ini tidak ada dokumen yang memerlukan konfirmasi tanda terima.',
'no_review_needed' => 'Tidak ada tinjauan yang tertunda.',
@ -1411,9 +1388,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '',
'removeFolderFromDropFolder' => 'Hapus folder setelah diimpor',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => 'Hapus persetujuan',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Hapus file yang ditandai',
'remove_review_log' => 'Hapus ulasan',
'remove_task' => '',
@ -1568,7 +1543,6 @@ URL: [url]',
'select_category' => 'Klik untuk memilih kategori',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Pilih group',
'select_groups' => 'Klik untuk memilih groups',
'select_grp_approvers' => 'Klik untuk memilih group approver',
@ -1589,7 +1563,6 @@ URL: [url]',
'select_mimetype' => 'Klik untuk memilih mimetype',
'select_modified' => '',
'select_one' => 'Pilih salah satu',
'select_option' => '',
'select_owner' => 'Klik untuk memilih pemilik',
'select_record_type' => '',
'select_status' => 'Klik untuk memilih status dokumen',
@ -1608,7 +1581,6 @@ Nama: [username]
Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di halaman login untuk mengatur kata sandi baru.',
'send_login_data_subject' => '[sitename]: [login] - Data login anda',
'send_notification' => '',
'send_test_mail' => 'Kirim surel percobaan',
'september' => 'September',
'sequence' => 'Urutan',
@ -1623,9 +1595,7 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'service_name' => '',
'sessions' => 'Pengguna Online',
'setDateFromFile' => 'Ambil alih tanggal dari file yang diimpor',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Ambil alih tanggal dari folder yang diimpor',
'setDateFromFolder_desc' => '',
'settings' => 'Pengaturan',
'settings_activate_module' => 'Aktifkan modul',
'settings_activate_php_extension' => 'Aktifkan ekstensi PHP',
@ -1723,8 +1693,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'settings_delete_install_folder' => 'Untuk menggunakan SeedDMS, Anda harus menghapus file ENABLE_INSTALL_TOOL di direktori konfigurasi',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => '',
'settings_disableSelfEdit_desc' => 'Jika dicentang, pengguna tidak dapat mengedit profilnya sendiri',
'settings_disable_install' => '',
@ -1790,8 +1758,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'settings_enableLargeFileUpload_desc' => 'Jika disetel, unggah berkas juga tersedia melalui java applet yang disebut jumploader tanpa batas ukuran berkas yang ditetapkan oleh peramban. Ini juga memungkinkan untuk mengunggah beberapa berkas dalam satu langkah. Mengaktifkan ini akan mematikan cookie http saja.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Aktifkan daftar task di menu',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1851,8 +1817,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'settings_encryptionKey' => '',
'settings_encryptionKey_desc' => '',
'settings_error' => 'Galat',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => '',
'settings_expandFolderTree_desc' => '',
'settings_expandFolderTree_val0' => '',
@ -1909,22 +1873,10 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => '',
'settings_logFileEnable_desc' => '',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => '',
'settings_logFileRotation_desc' => '',
'settings_loginFailure' => 'Gagal masuk',
'settings_loginFailure_desc' => '',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => '',
'settings_luceneClassDir_desc' => '',
'settings_luceneDir' => '',
@ -2023,10 +1975,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'settings_siteName' => 'Nama Situs',
'settings_siteName_desc' => 'Nama situs yang digunakan dalam judul halaman. Bawaan: SeedDMS',
'settings_SMTP' => 'Pengaturan SMTP Server',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Kata sandi SMTP Server',
'settings_smtpPassword_desc' => 'Kata sandi SMTP Server',
'settings_smtpPort' => 'Port SMTP Server',
@ -2110,7 +2058,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'sign_out' => 'Keluar',
'sign_out_user' => '',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovakia',
'sort_by_date' => 'Urutkan berdasarkan tanggal',
'sort_by_expiration_date' => 'Urutkan berdasarkan tanggal kadaluwarsa',
@ -2240,7 +2187,6 @@ Jika Anda tidak menerima kata sandi, silakan gunakan fitur lupa kata sandi di ha
'status_revision_sleeping' => 'tertunda',
'status_revisor_removed' => '',
'status_unknown' => 'Tidak diketahui',
'storage' => '',
'storage_size' => 'Ukuran penyimpanan',
'subfolder_duplicate_name' => 'Duplikasi nama subfolder',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'Autorizzazione a due fattori',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Questo sistema usa autenticazione a due fattori. Sarà necessario il “Google Authenticator” sul tuo telephono cellulare. Qui potete vedere due codici QR. Quello di destra è il tuo segreto. è sulla sinistra chè un nuovo segreto. Se si imposta un nuovo segreto per assicurarsi si deve scansione con “Google Authenticator” di nuovo.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Documenti per utente',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Seleziona grafico',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Spazio su disco per utente',
'checkedout_file_has_different_version' => 'La versione approvata non è uguale alla versione corrente. Non si aggiornerà documento.',
'checkedout_file_has_disappeared' => 'File documento approvato non trovato. Impossibile caricare.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Approvazione dei documenti disabilitata',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Seleziona l\'Attributo',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Pulisci cache',
'clear_clipboard' => 'Cancella appunti',
'clear_password' => 'Cancella la password',
'click_to_expand_filter_results' => '',
'clipboard' => 'Appunti',
'close' => 'Chiudi',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Nuovo mimetype',
'copied_to_checkout_as' => 'File copiato come \'[filename]\'',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Crea indice fulltext',
'create_fulltext_index_warning' => 'Stai creando un indice fulltext. Questo può occupare un tempo considerevole e ridurre le prestazioni del sistema. Sei sicuro di voler ricreare l\'indice? Prego conferma l\'operazione.',
@ -477,7 +471,6 @@ Utente: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Il documento non ha un flusso di lavoro',
'document_infos' => 'Informazioni documento',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Il documento é approvato. Se aggiorni il documento, la versione approvata verrà sovrascritta definitivamente',
@ -571,8 +564,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -703,8 +694,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Archivio estensioni',
'extension_changelog' => 'Registro delle modifiche delle estensioni',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Caricamento estensioni...',
@ -724,11 +713,11 @@ URL: [url]',
'february' => 'Febbraio',
'file' => 'File',
'files' => 'Files',
'filesize' => 'Grandezza del file',
'files_deletion' => 'Cancellazione files',
'files_deletion_warning' => 'Con questa operazione è possible cancellare i file di intere cartelle. Dopo la cancellazione lo storico delle versioni rimarrà comunque disponibile.',
'files_loading' => 'Attendi che il file venga caricato per favore ...',
'filetype' => '',
'file_size' => 'Grandezza del file',
'filter_for_documents' => 'Filtro aggiuntivo per i documenti',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtro aggiuntivo per le cartelle',
@ -1116,17 +1105,6 @@ URL: [url]',
'nl_NL' => 'Olandese',
'no' => 'No',
'notification' => 'Notifica',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Novembre',
'now' => 'Adesso',
@ -1155,7 +1133,6 @@ URL: [url]',
'no_groups' => 'Nessun gruppo',
'no_group_members' => 'Questo gruppo non ha membri',
'no_linked_files' => 'Nessun file collegato',
'no_mimetype' => '',
'no_previous_versions' => 'Nessun\'altra versione trovata',
'no_receipt_needed' => 'Rete disco',
'no_review_needed' => 'Nessuna revisione in corso.',
@ -1320,9 +1297,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Flusso di lavoro rimosso dalla versione del documento',
'removeFolderFromDropFolder' => 'Rimuovi la cartella di pubblicazione dopo l\'importazione',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Rimuovi i files contrassegnati',
'remove_review_log' => '',
'remove_task' => '',
@ -1526,7 +1501,6 @@ URL: [url]',
'select_category' => 'Clicca per selezionare la categoria',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Seleziona gruppo',
'select_groups' => 'Clicca per selezionare i gruppi',
'select_grp_approvers' => 'Seleziona gruppo approvatore',
@ -1547,7 +1521,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Seleziona uno',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1564,7 +1537,6 @@ Name: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - I tuoi dati di login',
'send_notification' => '',
'send_test_mail' => 'Invia messagio di prova',
'september' => 'Settembre',
'sequence' => 'Posizione',
@ -1579,9 +1551,7 @@ Name: [username]
'service_name' => '',
'sessions' => 'Utenti online',
'setDateFromFile' => 'Prende la data dal file importato',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Prende la data dalla cartella importata',
'setDateFromFolder_desc' => '',
'settings' => 'Impostazioni',
'settings_activate_module' => 'Attivazione modulo',
'settings_activate_php_extension' => 'Attivazione estensione PHP',
@ -1679,8 +1649,6 @@ Name: [username]
'settings_delete_install_folder' => 'Per poter usare SeedDMS, devi cancellare il file ENABLE_INSTALL_TOOL nella cartella di configurazione.',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Disabilita auto-modifica',
'settings_disableSelfEdit_desc' => 'Se selezionato l\'utente non può modificare il proprio profilo',
'settings_disable_install' => 'Prova ad eliminare il file ENABLE_INSTALL_TOOL se possibile',
@ -1746,8 +1714,6 @@ Name: [username]
'settings_enableLargeFileUpload_desc' => 'Se selezionato, il caricamento (upload) dei files può essere effettuato anche attraverso un\'applet Java chiamata Jumploader evitando il limite di dimensioni file imposto dal browser; Jumploader permette anche il caricamento di diversi files contemporaneamente.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Abilita compito delle attività nel menù',
'settings_enableMenuTasks_desc' => 'Abilita/disabilita la voce di menu che contiene tutte le attività degli utenti. Questo conterrà i documenti che devono essere rivisti, approvati, etc.',
'settings_enableMenuTransmittals' => '',
@ -1807,8 +1773,6 @@ Name: [username]
'settings_encryptionKey' => 'Chiave di criptazione',
'settings_encryptionKey_desc' => 'La chiave viene usata per creare un identificatore unico da aggiungere come campo nascosto ad un formulario per protezione da attacchi CSRF.',
'settings_error' => 'Errore',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Espandi l\'albero delle cartelle',
'settings_expandFolderTree_desc' => 'Espandi la struttura ad albero delle cartelle',
'settings_expandFolderTree_val0' => 'Inizia con l\'albero nascosto',
@ -1865,22 +1829,10 @@ Name: [username]
'settings_libraryFolder_desc' => 'Cartella dove i documenti possono essere copiati per crearne di nuovi.',
'settings_logFileEnable' => 'Abilita il file di registro',
'settings_logFileEnable_desc' => 'Abilita/disabilita il file di registro',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotazione del file di registro',
'settings_logFileRotation_desc' => 'Abilita/disabilita la rotazione del file di registro',
'settings_loginFailure' => 'Login fallito',
'settings_loginFailure_desc' => 'Account disabilitato: troppi tentativi di accesso falliti.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Cartella Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Cartella del pacchetto SeedDMS_Lucene (opzionale). Lasciare il campo vuoto se SeedDMS_Lucene è stato installato in una cartella localizzabile dal PHP, ad esempio quella indicata per gli include PHP addizionali.',
'settings_luceneDir' => 'Cartella di indicizzazione fulltext',
@ -1979,10 +1931,6 @@ Name: [username]
'settings_siteName' => 'Nome del sito',
'settings_siteName_desc' => 'Nome del sito utilizzato nei titoli di pagina. Default: SeedDMS',
'settings_SMTP' => 'Impostazioni server SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Password server SMTP',
'settings_smtpPassword_desc' => 'Password di accesso al server SMTP (posta in uscita).',
'settings_smtpPort' => 'Porta server SMTP',
@ -2066,7 +2014,6 @@ Name: [username]
'sign_out' => 'Disconnettiti',
'sign_out_user' => 'Disconnetti l\'utente',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovacco',
'sort_by_date' => 'Ordina per data',
'sort_by_expiration_date' => '',
@ -2196,7 +2143,6 @@ Name: [username]
'status_revision_sleeping' => 'in attesa',
'status_revisor_removed' => 'Revisore rimosso dalla lista',
'status_unknown' => 'Sconosciuto',
'storage' => '',
'storage_size' => 'Spazio di archiviazione',
'subfolder_duplicate_name' => 'Nome sottocartella duplicato',
'submit_2_fact_auth' => 'Salva segreto',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (966), daivoc (421), fofwisdom (166)
// Translators: Admin (965), daivoc (421), fofwisdom (166)
$text = array(
'2_factor_auth' => '이중 인증',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -287,7 +286,6 @@ URL: [url]',
'chart_docsperuser_title' => '사용자별 문서',
'chart_foldersperuser_title' => '',
'chart_selection' => '차트 선택',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => '사용자별 디스크 사용량',
'checkedout_file_has_different_version' => '확인된 버전은 현재 버전과 동일하지 않습니다. 문서를 업데이트하지 않습니다.',
'checkedout_file_has_disappeared' => '요청한 문서파일이 사라져 버렸습니다. 확인이 불가능 합니다.',
@ -299,7 +297,6 @@ URL: [url]',
'checkout_is_disabled' => '체크아웃된 문서는 설정에서 비활성화됩니다.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => '속성의 정의를 선택하세요',
@ -321,7 +318,6 @@ URL: [url]',
'clear_cache' => '캐시 비우기',
'clear_clipboard' => '클립 보드 제거',
'clear_password' => '암호 비우기',
'click_to_expand_filter_results' => '',
'clipboard' => '클립보드',
'close' => '닫기',
'color' => '',
@ -365,8 +361,6 @@ URL: [url]',
'converter_new_mimetype' => '새 MIME 형태',
'copied_to_checkout_as' => '체크아웃으로 파일(\'[filename]\')이 파일 복사됨',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => '전체 텍스트 인덱스 만들기',
'create_fulltext_index_warning' => '전체 자료의 텍스트 인덱스를 다시 만들 수 있습니다. 이것은 상당한 시간을 요구하며 진행되는 동안 시스템 성능을 감소시킬 수 있습니다. 인덱스를 재 생성하려면, 확인하시기 바랍니다.',
@ -378,7 +372,7 @@ URL: [url]',
'current_state' => '현재 상태',
'current_version' => '현재 버전',
'daily' => '매일',
'dashboard' => 'ㅁㄹㄴㅇㄻㄴㄹㅇ',
'dashboard' => '',
'databasesearch' => '데이터베이스 검색',
'database_schema_version' => '',
'data_loading' => '데이터 로딩이 완료될 때까지 잠시만 기다려주십시요.',
@ -480,7 +474,6 @@ URL: [url]',
'document_files' => '',
'document_has_no_workflow' => '문서에 워크플로우가 없습니다',
'document_infos' => '문서 정보',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '문서가 현재 체크아웃 되어 있습니다. 새 버전을 업로드하면 체크아웃된 버전은 더 이상 확인 할 수 없습니다.',
@ -567,8 +560,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -699,8 +690,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -720,11 +709,11 @@ URL: [url]',
'february' => '2월',
'file' => '파일',
'files' => '파일',
'filesize' => '파일 크기',
'files_deletion' => '파일 삭제',
'files_deletion_warning' => '이 옵션을 사용하면 전체 DMS 폴더의 모든 파일을 삭제할 수 있습니다. 버전 정보가 표시로 남을 것 입니다 files파일',
'files_loading' => '파일 목록을 가지고 오는 중 ...',
'filetype' => '',
'file_size' => '파일 크기',
'filter_for_documents' => '문서에 대한 추가 필터',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => '폴더에 대한 추가 필터',
@ -1116,17 +1105,6 @@ URL [url]',
'nl_NL' => '네덜란드',
'no' => '아니오',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => '11월',
'now' => '지금',
@ -1155,7 +1133,6 @@ URL [url]',
'no_groups' => '그룹이 없음',
'no_group_members' => '그룹 회원 이 없습니다.',
'no_linked_files' => '연결되지 않은 파일',
'no_mimetype' => '',
'no_previous_versions' => '다른 버전을 찾을 수 없습니다',
'no_receipt_needed' => '접수가 필요하지 않습니다',
'no_review_needed' => '검토중인 자료가 없습니다.',
@ -1301,9 +1278,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename] : [name] - 문서 버전에서 제거 된 워크플로우',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => '마크 파일을 제거',
'remove_review_log' => '',
'remove_task' => '',
@ -1502,7 +1477,6 @@ URL : [url]',
'select_category' => '범주를 선택합니다',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => '',
'select_groups' => '그룹을 선택합니다',
'select_grp_approvers' => '그룹 승인을 선택합니다',
@ -1523,7 +1497,6 @@ URL : [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => '선택',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1535,7 +1508,6 @@ URL : [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => '테스트 메일',
'september' => '9월',
'sequence' => '순서',
@ -1550,9 +1522,7 @@ URL : [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => '설정',
'settings_activate_module' => '모듈 활성화',
'settings_activate_php_extension' => 'PHP 확장 활성화',
@ -1650,8 +1620,6 @@ URL : [url]',
'settings_delete_install_folder' => 'SeedDMS을 사용하려면 구성 디렉토리의 파일 ENABLE_INSTALL_TOOL을 삭제해야합니다',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => '자체 수정 불가',
'settings_disableSelfEdit_desc' => '확인시 사용자가 자신의 프로필을 편집 할 수 없음',
'settings_disable_install' => 'ENABLE_INSTALL_TOOL 삭제',
@ -1717,8 +1685,6 @@ URL : [url]',
'settings_enableLargeFileUpload_desc' => '설정하면, 브라우저가 설정 한 파일 크기 제한없이 jumploader라는 파일 업로드 자바 애플릿을 통해 사용할 수 있습니다. 또한 한 번에 여러 파일을 업로드 할 수 있습니다.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '메뉴의 작업 목록 허용',
'settings_enableMenuTasks_desc' => '사용자의 모든 작업이 포함되어있는 메뉴 항목을 활성/비활성 합니다. 이것은 검토, 승인등이 필요한 문서를 포함 합니다',
'settings_enableMenuTransmittals' => '',
@ -1778,8 +1744,6 @@ URL : [url]',
'settings_encryptionKey' => '암호화 키',
'settings_encryptionKey_desc' => '이 문자열은 CSRF 공격을 방지하기 위해 formular에 숨겨진 필드로 추가되는 고유 식별자를 만드는 데 사용된다.',
'settings_error' => '오류',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => '폴더 트리 확장',
'settings_expandFolderTree_desc' => '폴더 트리 확장',
'settings_expandFolderTree_val0' => '숨겨진 Tree로 시작',
@ -1836,22 +1800,10 @@ URL : [url]',
'settings_libraryFolder_desc' => '새 문서를 작성 하기 위해 문서를 복사하는 폴더.',
'settings_logFileEnable' => '로그 파일 사용',
'settings_logFileEnable_desc' => '로그 파일 활성 / 비활성화',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => '로그 파일 회전',
'settings_logFileRotation_desc' => '로그 파일 회전',
'settings_loginFailure' => '로그인 실패',
'settings_loginFailure_desc' => 'N회 로그인 실패 후 계정 비활성.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS 디렉토리',
'settings_luceneClassDir_desc' => 'SeedDMS_Lucene 경로 (선택 사항). 이이 PHP에 의해 발견 될 수있는 장소에 SeedDMS_Lucene를 설치된 경우 설정하지 않음',
'settings_luceneDir' => '전체 텍스트 인덱스에 대한 디렉토리',
@ -1950,10 +1902,6 @@ URL : [url]',
'settings_siteName' => '사이트 이름',
'settings_siteName_desc' => '페이지 제목에 사용 된 사이트의 이름입니다. 기본값 : SeedDMS',
'settings_SMTP' => 'SMTP 서버 설정',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP 서버 비밀번호',
'settings_smtpPassword_desc' => 'SMTP 서버 비밀번호',
'settings_smtpPort' => 'SMTP 서버 포트',
@ -2037,7 +1985,6 @@ URL : [url]',
'sign_out' => '로그 아웃',
'sign_out_user' => '사용자가 로그 아웃',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => '슬로바키아어',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2167,7 +2114,6 @@ URL : [url]',
'status_revision_sleeping' => '보류',
'status_revisor_removed' => '감사자 목록에서 제거',
'status_unknown' => '알 수없는',
'storage' => '',
'storage_size' => '저장 크기',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'ການກວດສອບແບບ 2 ປັດໃຈ',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'ລະບົບນີ້ໄຊ້ການກວດສອບແບບ 02 ປັດໃຈ. ເຈົ້າຈະຕ້ອງມີ Google Authenticator ໃນໂທລະສັບມືຖືຂອງທ່ານ. ດ້ານລຸ່ມແມ່ນມີ QR Codes ສອງແບບ ທາງດ້ານຂວາຈະມີຄວາມເປັນສ່ວນຕົວຂອງເຈົ້າ, ສ່ວນດ້ານຊ້າຍຂອງເຈົ້າແມ່ນຈະສາມາດຕັ້ງຄ່າຄວາມເປັນສ່ວນຕົວໄຫມ່. ຖ້າເຈົ້າຕັ້ງຄ່າຄວາມເປັນສ່ວນຕົວໄຫມ່ຮຽບຮ້ອຍ ແລ້ວນັ້ນໃຫ້ແນ່ໃຈວ່າໄດ້ສະແກນອີກຄັ້ງດ້ວຍ Google Authenticator',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -283,7 +282,6 @@ URL: [url]',
'chart_docsperuser_title' => 'ເອກະສານສຳລັບຜູ້ໄຊ້',
'chart_foldersperuser_title' => '',
'chart_selection' => 'ເລືອກຕາຕະລາງ',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'ພື້ນທີດິສຂອງຜູ້ນຳໄຊ້',
'checkedout_file_has_different_version' => 'ເວີຊັ້ນເຊັດເອົາບໍ່ຄືກັບເວີຊັນປະຈຸບັນ ໃນຂະນະທີເຊັກອິນຈະບໍ່ມີການປັບປຸງເອກະສານ',
'checkedout_file_has_disappeared' => 'ໄຟລເອກະສານທີ່ເຊັກເອົາຫາຍໄປແລ້ວ ບໍ່ສາມາດເຊັກອິນໄດ້',
@ -295,7 +293,6 @@ URL: [url]',
'checkout_is_disabled' => 'ໃນການກຳນົດຄ່າເຊັກເອົາເອກະສານໄດ້ຖືກປິດໄຊ້ງານ',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'ກະລຸນາເລືອກນິຍາມແອັດທິບິວ',
@ -317,7 +314,6 @@ URL: [url]',
'clear_cache' => 'ລ້າງແຄຣ',
'clear_clipboard' => 'ລ້າງຄິບບອສ',
'clear_password' => 'ລ້າງລະຫັດ',
'click_to_expand_filter_results' => '',
'clipboard' => 'ຄິບບອດ',
'close' => 'ປຶດ',
'color' => '',
@ -360,8 +356,6 @@ URL: [url]',
'converter_new_mimetype' => 'ລະຄອນໃບຊະນິດຫນືື່ງ',
'copied_to_checkout_as' => 'ກັອບປີໄຟລໄປຍັງພື້ນທີ່ເຊັກເອົາເປັນ "[filename] " ໃນ [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'ສ້າງດັດສະນີແບບເຕັມຮູບແບບ',
'create_fulltext_index_warning' => 'ເຈົ້າກຳລັງສ້າງດັດຊະນີຂໍ້ຄວາມເຕັມໄຫມ່ ອາດໄຊ້ເວລາເປັນຈຳນວນຫຼາຍແລະລົດປະສິດທິພາບໂດຍລວມຂອງລະບົບເຈົ້າ ຖ້າຫາກວ່າຕ້ອງການສ້າງດັດຊະນີໄຫມ່ກະລຸນາຢືນຢັນການດຳເນີນການຂອງເຈົ້າ',
@ -475,7 +469,6 @@ URL: [url]',
'document_files' => '',
'document_has_no_workflow' => 'ເອກະສານບໍ່ມີເວີກໂຟ',
'document_infos' => 'ຂໍ້ມູນເອກະສານ',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'ຂະນະນີ້ມີການກວດສອບເອກະສານ ຫາກເຈົ້າອັບໂຫລດເວີຊັນໄຫມ່ລະບົບຈະບໍ່ສາມາດກວດສອບລະບົບທີປິດອອກໄດ້ອີກຕໍ່ໄປ',
@ -564,8 +557,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -696,8 +687,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -717,11 +706,11 @@ URL: [url]',
'february' => 'ເດືອນ ກຸມພາ',
'file' => 'ໄຟລ',
'files' => 'ໄຟລ',
'filesize' => 'ຂະໜາດ',
'files_deletion' => 'ລົບໄຟລ',
'files_deletion_warning' => 'ດ້ວຍຕົວເລືອກນີ້ເຈົ້ສາມາດລົບໄຟລທັງໝົດຂອງ DMS ໂຟລເດີທັງໝົດ ຂໍ້ມູນການກຳນົດລຸ້ນຈະຍັງຄົງປາກົດຢູ່',
'files_loading' => 'ກະລຸນາລໍຖ້າ, ຈົນກວ່າລາຍການໄຟລຈະຖືກໂຫລດ …',
'filetype' => '',
'file_size' => 'ຂະໜາດ',
'filter_for_documents' => 'ຕົວກອງເພີ່ມເຕົມສຳລັບເອກະສານ',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'ຕົວກອງເພີ່ມເຕີມສຳລັບໂຟລເດີ',
@ -1113,17 +1102,6 @@ URL: [url]',
'nl_NL' => 'ດັສ',
'no' => 'ບໍ່',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'ເດືອນພະຈິກ',
'now' => 'ຕອນນີ້',
@ -1152,7 +1130,6 @@ URL: [url]',
'no_groups' => 'ບໍ່ມີກຸ່ມ',
'no_group_members' => 'ກຸ່ມນີ້ຍັງບໍ່ມີສະມາຊິກ',
'no_linked_files' => 'ບໍ່ມີໄຟລທີ່ເຊື່ອມໂຍງ',
'no_mimetype' => '',
'no_previous_versions' => 'ບໍ່ພົບເວີຊັນອື່ນ',
'no_receipt_needed' => 'ປະຈຸບັນນີ້ບໍ່ມີເອກະສານທີ່ຈະຕ້ອງຢືນຢັນກ່ຽວກັບການຮັບສິນຄ້າ',
'no_review_needed' => 'ບໍ່ມີເອກະສານທີຍັງຄ້າງທີລໍຖ້າກວດຄືນ',
@ -1317,9 +1294,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]:[name] - ຍ້າຍການເຮັດວຽກ (ເວີກໂຟລ) ອອກຈາກເວີຊັ້ນຂອງເອກະສານ',
'removeFolderFromDropFolder' => 'ຍ້າຍໂຟລເດີຫຼັງຈາກນຳຂໍ້ມູນເຂົ້າ',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'ລົບໄຟລທີມີເຄື່ອງໝາຍໄວ້',
'remove_review_log' => '',
'remove_task' => '',
@ -1523,7 +1498,6 @@ URL: [url]',
'select_category' => 'ຄິກເພື່ອເລືອກປະເພດ',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => '',
'select_groups' => 'ຄິກເລືອກກຸ່ມ',
'select_grp_approvers' => 'ຄິກເພືອເລືອກຜູ້ອະນຸມັດກຸ່ມ',
@ -1544,7 +1518,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'ເລືອກໜື່ງອັນ',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1561,7 +1534,6 @@ URL: [url]',
[comment]',
'send_login_data_subject' => '[sitename]:[login] - ຂໍ້ມູນການເຂົ້າສູ້ລະບົບຂອງເຈົ້າ',
'send_notification' => '',
'send_test_mail' => 'ສົ່ງອີເມວທົດສອບ',
'september' => 'ເດືອນກັນຍາ',
'sequence' => 'ລຳດັບ',
@ -1576,9 +1548,7 @@ URL: [url]',
'service_name' => '',
'sessions' => 'ຜູ້ໄຊ້ອອນລາຍ',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'ການຕັ້ງຄ່າ',
'settings_activate_module' => 'ເປີດໄຊ້ງານໂມດູນ',
'settings_activate_php_extension' => 'ຂະຫຍາຍພື້ນທີການໄຊ້ງານຂອງ PHP',
@ -1676,8 +1646,6 @@ URL: [url]',
'settings_delete_install_folder' => 'ໃນການໄຊ້ SeedDMS, ເຈົ້າຈະຕ້ອງລົບໄຟລ ເປີດໄຊ້ງານ_ຕິດຕັ້ງ_ເຄື່ອງມືໃນການບໍລິຫານ ການກຳນົດຄ່າ',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'ແກ້ໄຂການປິດໄຊ້ງານດ້ວຍຕົວເອງ',
'settings_disableSelfEdit_desc' => 'ກວດຄືນເບິ່ງວ່າຍ້ອນຫຍັງຜູ້ນຳໄຊ້ຈື່ງບໍ່ສາມາດແກ້ໄຂໂປລໄຟລຂອງພວກເຂົາໄດ້',
'settings_disable_install' => 'ຖ້າເປັນໄປໄດ້ ລົບໄຟລເປີດໄຊ້ງານ-ຕິດຕັ້ງ-ເຄື່ອງມື ຖ້າເປັນໄປໄດ້',
@ -1743,8 +1711,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'ການຕັ້ງຄ່າອັບໂຫລດໄຟລຈະມີໃຫ້ບໍລິການຜ່ານທາງດ້ານຂວາຂອງເອັບເຟັກທີ່ເອີ້ນວ່າ jumploader ໂດຍບໍ່ມີຂິດຈຳກັດຂອງຂະໜາດໄຟລທີກຳນົດໂດຍບາວເຊີ ນອກຈາກນີຍັງຊ່ວຍໃນການອັບໂຫລດໄຟລຫຼາຍໄຟລໃນຂັນຕອນດຽວການເປີດຄຸນລັກສະນະນີ້ຈະປິດຄຸກກີ້ສະເພາະ Http ເທົ່ານັ້ນ',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'ເປີດການໄຊ້ງານ',
'settings_enableMenuTasks_desc' => 'ເປີດ/ປິດ ລາຍການເມນູທີ່ມີວຽກທັງໝົດສຳລັບຜູ້ໄຊ້ເອກະສານນີ້ມີເອກະສານທີຈ້ອງໄດ້ຮັບການກວດສອບ',
'settings_enableMenuTransmittals' => '',
@ -1804,8 +1770,6 @@ URL: [url]',
'settings_encryptionKey' => 'ກະແຈການເຂົ້າລະຫັດລັບ',
'settings_encryptionKey_desc' => 'ສະຕິງນີ້ໄຊ້ສຳຫຼັບສ້າງຕົວ',
'settings_error' => 'ຄວາມຜິດພາດ',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'ຂະຫຍານທີໂຟລເດີ',
'settings_expandFolderTree_desc' => 'ຂະຫຍານທີໂຟລເດີ',
'settings_expandFolderTree_val0' => 'ການເລີ່ມຕົ້ນດ້ວຍສາຂາຍ່ອຍ',
@ -1862,22 +1826,10 @@ URL: [url]',
'settings_libraryFolder_desc' => 'ໂຟລເດີທີສາມາດກັອບປີເອກະສານເພື່ອທີຈະສ້າງເອກະສານໄຫມ່',
'settings_logFileEnable' => 'ເປີດໄຊ້ງານແຟ້ມບັນທຶກ',
'settings_logFileEnable_desc' => 'ເປີດ/ປິດ ໃຊ້ວຽກໄຟລບັນທຶກ',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'ການໝຸນແຟ້ມບັນທືກ',
'settings_logFileRotation_desc' => 'ການໝຸນແຟ້ມບັນທືກ',
'settings_loginFailure' => 'ຄວາມລົ້ມເຫຼວໃນການເຂົາເຖີງ',
'settings_loginFailure_desc' => 'ປິດການໄຊ້ງານບັນຊີຫຼັງຈາກຄວາມລົ້ວເຫຼວໃນການເຂົ້າສູ້ລະບົບ',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS directory',
'settings_luceneClassDir_desc' => 'เส้นทางไป SeedDMS_Lucene (ตัวเลือก) เว้นว่างไว้ถ้าคุณได้ติดตั้ง SeedDMS_Lucene ไว้ ณ ตำแหน่งที่ PHP สามารถพบได้เช่น PHP รวมเส้นทาง.',
'settings_luceneDir' => 'การจัดการดัชนีข้อความเต็มรูปแบบ',
@ -1976,10 +1928,6 @@ URL: [url]',
'settings_siteName' => 'ຊື່ເວັບໄຊຣ',
'settings_siteName_desc' => 'ຊື່ສະຖານທີທີ່ນຳໄຊ້ຊື່ເຟສ ຄ່າເລີ່ມຕົ້ນ: SeedDMS',
'settings_SMTP' => 'ການຕັ້ງຄ່າ ເຊີເວີ SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'ລະຫັດຜ່ານ ເຊີເວີ SMTP',
'settings_smtpPassword_desc' => 'ລະຫັດຜ່ານ ເຊີເວີ SMTP',
'settings_smtpPort' => 'ຟອດ ເຊີເວີSMTP',
@ -2063,7 +2011,6 @@ URL: [url]',
'sign_out' => 'ອອກຈາກລະບົບ',
'sign_out_user' => 'ອອກຈາກລະບົບຜູ້ໄຊ້',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'ສະໂລວາເກຍ',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2193,7 +2140,6 @@ URL: [url]',
'status_revision_sleeping' => 'ຢູ່ລະຫວ່າງດຳເນີນການ',
'status_revisor_removed' => 'ແກ້ໄຂຄຳອະທິບາຍອອກຈາກລາຍການ',
'status_unknown' => 'ບໍ່ຮູ້',
'storage' => '',
'storage_size' => 'ຂະໜາດພື້ນທີ່ເກັບຂໍ້ມູນ',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => 'ເກັບຄວາມລັບໄວ້',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1748)
// Translators: Admin (1745)
$text = array(
'2_factor_auth' => '2-trinns autentisering',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Dette systemet håndhever 2-faktor autentisering. Du trenger Google Authenticator på mobiltelefonen din. Nedenfor ser du to QR-koder. Den rette er din nåværende hemmelighet. På venstre side kan du angi en ny hemmelighet. Hvis du angir en ny hemmelighet, må du huske å skanne den på nytt med Google Authenticator.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumenter pr. bruker',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Velg diagram',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Diskplass pr. bruker',
'checkedout_file_has_different_version' => 'Den utsjekkede versjonen er ikke identisk med den gjeldende versjonen. Innsjekking vil ikke oppdatere dokumentet.',
'checkedout_file_has_disappeared' => 'Filen til det utsjekkede dokumentet har forsvunnet. Innsjekking vil ikke være mulig.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Sjekk ut av dokumentene er deaktivert i konfigurasjonen.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Velg egenskaps definition',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Tøm cache',
'clear_clipboard' => 'Tøm utklippstavle',
'clear_password' => 'Slett passord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Utklippstavle',
'close' => 'Lukk',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Ny MIME-type',
'copied_to_checkout_as' => 'Filen er kopiert til utsjekkingsmappen som \'[filename]\' pr. [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Lag en link for nedlasting',
'create_fulltext_index' => 'Lag fulltekst-søkindex',
'create_fulltext_index_warning' => 'Du er i ferd med å gjenskape fulltekstindeksen. Dette kan ta betydelig tid og redusere den generelle systemytelsen. Hvis du virkelig vil gjenskape indeksen, må du bekrefte operasjonen.',
@ -375,7 +369,7 @@ URL: [url]',
'current_state' => 'Aktuell status',
'current_version' => 'Aktuell version',
'daily' => 'Daglig',
'dashboard' => 'Dashboard',
'dashboard' => '',
'databasesearch' => 'Søk i database',
'database_schema_version' => '',
'data_loading' => 'Vennligst vent, til dataene er lastet ...',
@ -484,7 +478,6 @@ Bruker: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokumentet har ingen arbeidsflyt',
'document_infos' => 'Dokumentinformation',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Dokumentet er allerede utsjekket. Hvis du laster opp en ny version kan den utsjekkede versionen ikke sjekkes inn igen.',
@ -578,8 +571,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -710,8 +701,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Utvidelse',
'extension_changelog' => 'Endringslogg',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Laster inn utvidelser ...',
@ -731,11 +720,11 @@ URL: [url]',
'february' => 'Februar',
'file' => 'Fil',
'files' => 'Filer',
'filesize' => 'Filstørrelse',
'files_deletion' => 'Sletting av filer',
'files_deletion_warning' => 'Med dette alternativet kan du slette alle filer av hele DMS-mapper. Informasjon om versjon vil forbli synlig.',
'files_loading' => 'Vennligst vent til listen over filer er lastet inn ...',
'filetype' => 'Filtype',
'file_size' => 'Filstørrelse',
'filter_for_documents' => 'Tilleggsfilter for dokumentet',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Tilleggsfilter for mapper',
@ -879,13 +868,13 @@ URL: [url]',
'hu_HU' => 'Ungarn',
'id' => 'Navn',
'identical_version' => 'Ny version er identisk med nåverende version.',
'id_ID' => 'Indonesisk',
'id_ID' => '',
'import' => 'Import',
'importfs' => 'Import fra filsystem',
'import_extension' => 'Importer utvidelse',
'import_fs' => 'Import fra filsystem',
'import_fs_warning' => 'Dette fungerer bare for mapper i slippmappen. Operasjonen importerer rekursivt alle mapper og filer. Filer vil bli gitt ut umiddelbart.',
'import_users' => 'Importer brukere',
'import_users' => '',
'import_users_addnew' => '',
'import_users_no_column_mapping' => '',
'import_users_update' => '',
@ -1134,17 +1123,6 @@ URL: [url]',
'nl_NL' => 'Nederland',
'no' => 'Nei',
'notification' => 'Melding',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'November',
'now' => 'nå',
@ -1173,7 +1151,6 @@ URL: [url]',
'no_groups' => 'Ingen grupper',
'no_group_members' => 'Denne gruppen har ingen medlemmer',
'no_linked_files' => 'Ingen koblede filer',
'no_mimetype' => '',
'no_previous_versions' => 'Ingen andre versjoner funnet',
'no_receipt_needed' => 'Det er for øyeblikket ingen dokumenter som krever kvitteringsbekreftelse.',
'no_review_needed' => 'Ingen gjennomgang i påvente.',
@ -1332,9 +1309,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Fjernet arbeidsflyt fra dokumentversjonen',
'removeFolderFromDropFolder' => 'Fjern mappe etter import',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Fjern markerte filer',
'remove_review_log' => '',
'remove_task' => '',
@ -1538,7 +1513,6 @@ URL: [url]',
'select_category' => 'Klikk for å velge kategori',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Klikk for å velge gruppe',
'select_groups' => 'Klikk for å velge grupper',
'select_grp_approvers' => 'Klikk for å velge gruppe godkjennere',
@ -1559,7 +1533,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Velg en',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1574,7 +1547,6 @@ Loginn: [login]
Bruker: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - Dine innloggingsdata',
'send_notification' => '',
'send_test_mail' => 'Send test mail',
'september' => 'September',
'sequence' => 'Sekvens',
@ -1589,9 +1561,7 @@ Bruker: [username]
'service_name' => '',
'sessions' => 'Brukere innlogget',
'setDateFromFile' => 'Overta dato fra importert fil',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Overta dato fra importert mappe',
'setDateFromFolder_desc' => '',
'settings' => 'Innstillinger',
'settings_activate_module' => 'Aktiver modul',
'settings_activate_php_extension' => 'Aktiver PHP-utvidelse',
@ -1689,8 +1659,6 @@ Bruker: [username]
'settings_delete_install_folder' => 'For å bruke SeedDMS, må du slette filen ENABLE_INSTALL_TOOL i konfigurasjonsmappen',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Deaktiver selvredigering',
'settings_disableSelfEdit_desc' => 'Hvis merket kan brukeren ikke redigere sin egen profil',
'settings_disable_install' => 'Slett filen ENABLE_INSTALL_TOOL hvis mulig',
@ -1756,8 +1724,6 @@ Bruker: [username]
'settings_enableLargeFileUpload_desc' => 'Hvis det er satt, er filopplasting også tilgjengelig via en java-applet som heter jumploader uten en filstørrelsesgrense som er angitt av nettleseren. Det gjør det også mulig å laste opp flere filer på ett trinn. Hvis du slår på dette, slås bare av cookies.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Aktiver oppgaveliste i menyen',
'settings_enableMenuTasks_desc' => 'Aktiver/deaktiver menypunktet som inneholder alle oppgaver for brukeren. Denne inneholder dokumenter som må gjennomgås, godkjennes osv.',
'settings_enableMenuTransmittals' => '',
@ -1817,8 +1783,6 @@ Bruker: [username]
'settings_encryptionKey' => 'Krypteringsnøkkel',
'settings_encryptionKey_desc' => 'Denne strengen brukes til å lage en unik identifikator som blir lagt til som et skjult felt til et skjema for å forhindre CSRF-angrep.',
'settings_error' => 'Feil',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Utvid mappetreet',
'settings_expandFolderTree_desc' => 'Utvid mappetreet',
'settings_expandFolderTree_val0' => 'starte med treet gjemt',
@ -1875,22 +1839,10 @@ Bruker: [username]
'settings_libraryFolder_desc' => 'Mappe der dokumenter kan kopieres for å opprette nye dokumenter.',
'settings_logFileEnable' => 'Loggfil Aktiver',
'settings_logFileEnable_desc' => 'Aktiver/deaktiver loggfil',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Loggfil rotasjon',
'settings_logFileRotation_desc' => 'Loggfil rotasjon',
'settings_loginFailure' => 'Påloggingsfeil',
'settings_loginFailure_desc' => 'Deaktiver konto etter n påloggingsfeil.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS mappe',
'settings_luceneClassDir_desc' => 'Sti til SeedDMS_Lucene (valgfritt). La dette være tomt hvis du har installert SeedDMS_Lucene på et sted der det kan bli funnet av PHP, f.eks. Ekstra PHP inkluderer-bane.',
'settings_luceneDir' => 'Mappe for fulltekstindeks',
@ -1989,10 +1941,6 @@ Bruker: [username]
'settings_siteName' => 'Navn på nettsted',
'settings_siteName_desc' => 'Navnet på nettstedet som brukes i sidetitlene. Standard: SeedDMS',
'settings_SMTP' => 'SMTP-serverinnstillinger',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP-serverpassord',
'settings_smtpPassword_desc' => 'SMTP-serverpassord',
'settings_smtpPort' => 'SMTP-serverport',
@ -2076,7 +2024,6 @@ Bruker: [username]
'sign_out' => 'Logg ut',
'sign_out_user' => 'Logg ut bruker',
'site_brand' => 'Nettsted merke/logo',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovakisk',
'sort_by_date' => 'Sorter etter dato',
'sort_by_expiration_date' => '',
@ -2206,7 +2153,6 @@ Bruker: [username]
'status_revision_sleeping' => 'avventer',
'status_revisor_removed' => 'Revisor fjernet fra listen',
'status_unknown' => 'Ukjent',
'storage' => '',
'storage_size' => 'Lagrings størrelse',
'subfolder_duplicate_name' => 'Dupliser navnet på undermappen',
'submit_2_fact_auth' => 'Lagre hemmelighet',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '2-factor-authenticatie',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Dit systeem werkt met 2-factor-authenticatie. U heeft de Google Authenticator nodig op uw mobiele telfoon. Hieronder staan 2 QR-codes. De rechter is uw huidige geheime code. Met de linker kunt u een nieuwe geheime code instellen. Denk erom de nieuwe code opnieuw te scannen met Googke Authenticator.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -278,7 +277,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Documenten per gebruiker',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Kies een grafiek',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Schijfruimte per gebruiker',
'checkedout_file_has_different_version' => 'Checkout-document is een andere versie',
'checkedout_file_has_disappeared' => 'File is onvindbaar',
@ -290,7 +288,6 @@ URL: [url]',
'checkout_is_disabled' => 'Checkout is niet mogelijk',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Kies een attribuutdefinitie',
@ -312,7 +309,6 @@ URL: [url]',
'clear_cache' => 'Cache leegmaken',
'clear_clipboard' => 'Vrijgeven klembord',
'clear_password' => 'Verwijder het wachtwoord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Klembord',
'close' => 'Sluiten',
'color' => '',
@ -355,8 +351,6 @@ URL: [url]',
'converter_new_mimetype' => 'Wijziging: nieuw mimetype',
'copied_to_checkout_as' => 'Gekopieerd naar checkout als:',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Maak een download-link',
'create_fulltext_index' => 'Creëer de index voor de fulltext search',
'create_fulltext_index_warning' => 'U staat op het punt de volledige tekst opnieuw te indexeren. Dit kan behoorlijk veel tijd en snelheid vergen van het systeem. Als u echt opnieuw wilt indexeren, bevestig dan deze actie.',
@ -477,7 +471,6 @@ Gebruiker: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Document bevat geen workflow',
'document_infos' => 'Document-informatie',
'document_in_revision_no_date' => '',
'document_is_checked_out' => 'Document is uitgecheckt.',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Document is uitgecheckt.',
@ -571,8 +564,6 @@ URL: [url]',
'download_header_document_name' => 'Naam document',
'download_header_document_no' => 'Document nr.',
'download_header_filename' => 'Filenaam',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => 'Interne versie',
'download_header_reviewer' => 'Beoordelaar',
'download_header_review_comment' => 'Commentaar bij beoordeling',
@ -703,8 +694,6 @@ URL: [url]',
'export_user_list_csv' => 'Exporteer gebruikers in csv-formaat',
'extension_archive' => 'Extensies',
'extension_changelog' => 'Overzicht van wijzigingen',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => 'Extensie uitgeschakeld',
'extension_is_on_now' => 'Extensie ingeschakeld',
'extension_loading' => 'Laden van extensies ...',
@ -724,11 +713,11 @@ URL: [url]',
'february' => 'februari',
'file' => 'Bestand',
'files' => 'Bestanden',
'filesize' => 'Bestandsomvang',
'files_deletion' => 'Bestanden verwijderen',
'files_deletion_warning' => 'Met deze handeling verwijdert U ALLE bestanden uit het DMS. Versie-informatie blijft beschikbaar',
'files_loading' => 'Even geduld. De lijst met bestanden wordt geladen ...',
'filetype' => 'Type file',
'file_size' => 'Bestandsomvang',
'filter_for_documents' => 'Extra filter voor documenten',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Extra filter voor mappen',
@ -1126,17 +1115,6 @@ URL: [url]',
'nl_NL' => 'Nederlands',
'no' => 'Nee',
'notification' => 'Bericht',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'november',
'now' => 'nu',
@ -1165,7 +1143,6 @@ URL: [url]',
'no_groups' => 'Geen groepen',
'no_group_members' => 'Deze groep heeft geen leden',
'no_linked_files' => 'Geen gekoppelde bestanden',
'no_mimetype' => '',
'no_previous_versions' => 'Geen andere versie(s) gevonden',
'no_receipt_needed' => 'Geen ontvangstbericht nodig',
'no_review_needed' => 'Geen review bezig.',
@ -1330,9 +1307,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow verwijderd van document versie',
'removeFolderFromDropFolder' => 'Map verwijderen uit Dropfilder',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Geselecteerde bestanden worden verwijderd',
'remove_review_log' => '',
'remove_task' => '',
@ -1535,7 +1510,6 @@ URL: [url]',
'select_category' => 'klik om categorie te selecteren',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Selecteer groep',
'select_groups' => 'Klik om groep te selecteren',
'select_grp_approvers' => 'Klik om beoordelaars te selecteren',
@ -1556,7 +1530,6 @@ URL: [url]',
'select_mimetype' => 'Selecteer het mime-type',
'select_modified' => '',
'select_one' => 'Kies er een',
'select_option' => '',
'select_owner' => 'Kies de eigenaar',
'select_record_type' => '',
'select_status' => '',
@ -1573,7 +1546,6 @@ Name: [username]
[comment]',
'send_login_data_subject' => 'Onderwerp',
'send_notification' => '',
'send_test_mail' => 'Testmail versturen',
'september' => 'september',
'sequence' => 'Volgorde',
@ -1588,9 +1560,7 @@ Name: [username]
'service_name' => '',
'sessions' => 'sessies',
'setDateFromFile' => 'Gebruik de datum van de geïmporteerde file',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Gebruik de datum van de geïmporteerde map',
'setDateFromFolder_desc' => '',
'settings' => 'Instellingen',
'settings_activate_module' => 'Activeer module',
'settings_activate_php_extension' => 'Activeer PHP uitbreiding',
@ -1688,8 +1658,6 @@ Name: [username]
'settings_delete_install_folder' => 'Om SeedDMS te kunnen gebruiken moet het bestand ENABLE_INSTALL_TOOL uit de configuratiemap verwijderd worden.',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Uitschakelen Eigenprofiel wijzigen',
'settings_disableSelfEdit_desc' => 'Indien aangevinkt kan de gebruiker zijn eigen profiel niet wijzigen.',
'settings_disable_install' => 'Verwijder het bestand ENABLE_INSTALL_TOOL indien mogelijk',
@ -1755,8 +1723,6 @@ Name: [username]
'settings_enableLargeFileUpload_desc' => 'Indien ingeschakeld, is bestandsupload ook beschikbaar via een java applet jumploader genaamd zonder een bestandsgrootte limiet door de browser. Het staat ook toe om meerdere bestanden in een keer te versturen.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Menu-taken aanzetten',
'settings_enableMenuTasks_desc' => 'Menu-taken aanzetten',
'settings_enableMenuTransmittals' => '',
@ -1816,8 +1782,6 @@ Name: [username]
'settings_encryptionKey' => 'Sleutel voor encryptie',
'settings_encryptionKey_desc' => 'Deze string wordt gebruikt om een unieke identificatie als onzichtbaar veld aan een formulier toe te voegen om CSRF aanvallen tegen te gaan.',
'settings_error' => 'Fout',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Uitvouwen mappenstructuur',
'settings_expandFolderTree_desc' => 'Uitvouwen mappenstructuur',
'settings_expandFolderTree_val0' => 'begin met verborgen structuur',
@ -1874,22 +1838,10 @@ Name: [username]
'settings_libraryFolder_desc' => 'In deze map kunnen documenten worden opgeslagen. Hiermee worden nieuwe documenten gecreëerd.',
'settings_logFileEnable' => 'Inschakelen logbestand',
'settings_logFileEnable_desc' => 'Inschakelen/uitschakelen logbestand',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotering Logbestand',
'settings_logFileRotation_desc' => 'Rotering Logbestand',
'settings_loginFailure' => 'Login-fout',
'settings_loginFailure_desc' => 'Deactiveer account na n foutieve loginpogingen.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS map',
'settings_luceneClassDir_desc' => 'Pad naar SeedDMS_Lucene (optioneel)',
'settings_luceneDir' => 'Map voor volledigetekst index',
@ -1988,10 +1940,6 @@ Name: [username]
'settings_siteName' => 'Naam van de site',
'settings_siteName_desc' => 'Naam van de Locatie dat wordt gebruikt in de titel van de paginas. Standaard: letoDMS',
'settings_SMTP' => 'SMTP Server instellingen',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP Server wachtwoord',
'settings_smtpPassword_desc' => 'SMTP Server wachtwoord',
'settings_smtpPort' => 'SMTP Server poort',
@ -2075,7 +2023,6 @@ Name: [username]
'sign_out' => 'Log uit',
'sign_out_user' => 'Log gebruiker uit',
'site_brand' => 'Merk van de site',
'skip_default_export_cols' => '',
'sk_SK' => 'Slowaaks',
'sort_by_date' => 'Sorteren op datum',
'sort_by_expiration_date' => 'Sorteren op vervaldatum',
@ -2205,7 +2152,6 @@ Name: [username]
'status_revision_sleeping' => 'Slapend',
'status_revisor_removed' => 'Verwijderd',
'status_unknown' => 'Onbekend',
'storage' => '',
'storage_size' => 'Omvang opslag',
'subfolder_duplicate_name' => 'Dubble mapnaam',
'submit_2_fact_auth' => '2-factor-authentificatie verstuurd',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1707), netixw (84), romi (93), uGn (112)
// Translators: Admin (1705), netixw (84), romi (93), uGn (112)
$text = array(
'2_factor_auth' => 'Uwierzytelnianie dwuetapowe',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Uwierzytelnianie dwuetapowe',
'2_fact_auth_current_secret' => 'Obecny poufny kod',
'2_fact_auth_new_secret' => 'Nowy poufny kod',
@ -273,7 +272,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumenty na użytkownika',
'chart_foldersperuser_title' => 'Foldery na użytkownika',
'chart_selection' => 'Wybierz wykres',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Zajętość dysku na użytkownika',
'checkedout_file_has_different_version' => 'Wersja wypisana nie jest identyczna z bieżącą wersją. Zameldowanie nie zaktualizuje dokumentu.',
'checkedout_file_has_disappeared' => 'Plik wyrejestrowanego dokumentu zniknął. Zameldowanie nie będzie możliwe.',
@ -285,7 +283,6 @@ URL: [url]',
'checkout_is_disabled' => 'Wyewidencjonowywanie dokumentów jest wyłączone w konfiguracji.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Proszę wybrać definicję atrybutu',
@ -307,7 +304,6 @@ URL: [url]',
'clear_cache' => 'Wyczyść cache',
'clear_clipboard' => 'Oczyść schowek',
'clear_password' => 'Wyczyść hasło',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schowek',
'close' => 'Zamknij',
'color' => 'Kolor',
@ -350,8 +346,6 @@ URL: [url]',
'converter_new_mimetype' => 'Nowy typ MIME',
'copied_to_checkout_as' => 'Plik skopiowany w celu wyewidencjonowania miejsca jako \'[filename]\' w dniu [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Utwórz link do pobrania',
'create_fulltext_index' => 'Utwórz indeks pełnotekstowy',
'create_fulltext_index_warning' => 'Zamierzasz ponownie utworzyć indeks pełnotekstowy. To może zająć sporo czasu i ograniczyć ogólną wydajność systemu. Jeśli faktycznie chcesz to zrobić, proszę potwierdź tę operację.',
@ -363,7 +357,7 @@ URL: [url]',
'current_state' => 'Bieżący stan',
'current_version' => 'Bieżąca wiersja',
'daily' => 'Codziennie',
'dashboard' => 'Pulpit',
'dashboard' => '',
'databasesearch' => 'Przeszukiwanie bazy danych',
'database_schema_version' => 'Wersja schematu bazy danych',
'data_loading' => 'Proszę czekać, dane są pobierane...',
@ -465,7 +459,6 @@ Użytkownik: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokument nie ma przypisanego procesu',
'document_infos' => 'Informacje o dokumencie',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Ten dokument jest pobierany',
@ -554,8 +547,6 @@ URL: [url]',
'download_header_document_name' => 'Nazwa dokumentu',
'download_header_document_no' => 'Numer dokumentu',
'download_header_filename' => 'Nazwa pliku',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => 'Wersja wewnętrzna',
'download_header_reviewer' => 'Recenzent',
'download_header_review_comment' => 'Komentarz recezenta',
@ -654,7 +645,7 @@ URL: [url]',
'error_update_document' => 'Błąd podczas aktualizacji dokumentu',
'error_uploading_reviewer_only' => 'Błąd podczas tworzenia dokumentu. Dokument ma recenzenta, ale nie ma osoby zatwierdzającej.',
'es_ES' => 'Hiszpański',
'event' => 'Wydarzenie',
'event' => '',
'event_details' => 'Szczegóły zdarzenia',
'exclude_items' => 'Pozycje wykluczone',
'expired' => 'Wygasły',
@ -686,8 +677,6 @@ URL: [url]',
'export_user_list_csv' => 'Eksportuj użytkowników do pliku CSV',
'extension_archive' => 'Rozszerzenie',
'extension_changelog' => 'Log Zmian',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Wgrywam dodatki...',
@ -707,11 +696,11 @@ URL: [url]',
'february' => 'Luty',
'file' => 'Plik',
'files' => 'Pliki',
'filesize' => 'Rozmiar pliku',
'files_deletion' => 'Usuwanie plików',
'files_deletion_warning' => 'Ta operacja pozwala usunąć wszystkie pliki z repozytorium. Informacje o wersjonowaniu pozostaną widoczne.',
'files_loading' => 'Proszę czekać do załadowania lista plików.',
'filetype' => 'Typ pliku',
'file_size' => 'Rozmiar pliku',
'filter_for_documents' => 'Dodatkowe filtrowanie dla dokumentów',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Dodatkowe filtrowanie dla folderów',
@ -1103,17 +1092,6 @@ URL: [url]',
'nl_NL' => 'holenderski',
'no' => 'Nie',
'notification' => 'Powiadomienie',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Listopad',
'now' => 'teraz',
@ -1142,7 +1120,6 @@ URL: [url]',
'no_groups' => 'Brak grup',
'no_group_members' => 'Ta grupa nie ma członków',
'no_linked_files' => 'Brak powiązanych dokumentów',
'no_mimetype' => '',
'no_previous_versions' => 'Nie znaleziono poprzednich wersji',
'no_receipt_needed' => 'Brak dokumentów w trakcie potwierdzenia',
'no_review_needed' => 'Brak dokumentów w trakcie opiniowania',
@ -1296,9 +1273,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Usunięty przepływ dokumentu z wersji dokumentu',
'removeFolderFromDropFolder' => 'Usuń folder po imporcie',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Usuń zaznaczone pliki',
'remove_review_log' => '',
'remove_task' => '',
@ -1466,7 +1441,6 @@ URL: [url]',
'select_category' => 'Kliknij by wybrać kategorię',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Wybierz grupę',
'select_groups' => 'Kliknij by wybrać grupy',
'select_grp_approvers' => 'Kliknij by wybrać grupę zatwierdzającą',
@ -1487,7 +1461,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Wybierz',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => 'Kliknij by wybrać status dokumentu',
@ -1504,7 +1477,6 @@ Name: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - Twoje dane logowania',
'send_notification' => '',
'send_test_mail' => 'Wyślij wiadomość testową',
'september' => 'Wrzesień',
'sequence' => 'Kolejność',
@ -1519,9 +1491,7 @@ Name: [username]
'service_name' => '',
'sessions' => 'Sesja',
'setDateFromFile' => 'Przejmij datę z importowanego pliku',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Przejmij datę z importowanego folderu',
'setDateFromFolder_desc' => '',
'settings' => 'Ustawienia',
'settings_activate_module' => 'Aktywuj moduł',
'settings_activate_php_extension' => 'Aktywuj rozszerzenie PHP',
@ -1619,8 +1589,6 @@ Name: [username]
'settings_delete_install_folder' => 'Aby móc używać SeedDMS, musisz usunąć plik ENABLE_INSTALL_TOOL znajdujący się w katalogu konfiguracyjnym',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Wyłącz auto edycję',
'settings_disableSelfEdit_desc' => 'Jeśli zaznaczone, użytkownik nie może zmieniać własnych danych',
'settings_disable_install' => 'Usuń plik ENABLE_INSTALL_TOOL jeśli to możliwe',
@ -1686,8 +1654,6 @@ Name: [username]
'settings_enableLargeFileUpload_desc' => 'Jeśli zaznaczone, wczytywanie plików będzie możliwe również przez aplet javy bez limitu rozmiaru plików. Aplet pozwala również na wczytywanie wielu plików jednocześnie.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Włącz listę zadań w menu',
'settings_enableMenuTasks_desc' => 'Włącza/Wyłącza pozycję w menu w której znajdują się wszystkie zadania dla użytkownika. Zawiera dokumenty, które potrzebują być ocenione, zatwierdzone, itd.',
'settings_enableMenuTransmittals' => '',
@ -1747,8 +1713,6 @@ Name: [username]
'settings_encryptionKey' => 'Klucz szyfrujący',
'settings_encryptionKey_desc' => 'Ten ciąg znaków jest używany do tworzenia unikatowego identyfikatora dodawanego jako ukryte pole do formularza aby zapobiec atakom CSRF.',
'settings_error' => 'Błąd',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Rozwiń drzewo katalogów',
'settings_expandFolderTree_desc' => 'Rozwiń drzewo katalogów',
'settings_expandFolderTree_val0' => 'Rozpocznij z ukrytym drzewem',
@ -1805,22 +1769,10 @@ Name: [username]
'settings_libraryFolder_desc' => 'Folder, w którym można kopiować dokumenty w celu utworzenia nowych dokumentów.',
'settings_logFileEnable' => 'Włącz plik dziennika',
'settings_logFileEnable_desc' => 'Włącz/Wyłącz plik dziennika',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotowanie pliku dziennika',
'settings_logFileRotation_desc' => 'Rotowanie pliku dziennika',
'settings_loginFailure' => 'Błędy logowania',
'settings_loginFailure_desc' => 'Wyłącz konto po n nieprawidłowych logowaniach.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Katalog Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Ścieżka do Path to SeedDMS_Lucene (opcjonalnie)',
'settings_luceneDir' => 'Katalog dla indeksu pełnotekstowego',
@ -1919,10 +1871,6 @@ Name: [username]
'settings_siteName' => 'Nazwa strony',
'settings_siteName_desc' => 'Nazwa strony używana tytułach. Domyślnie: SeedDMS',
'settings_SMTP' => 'Ustawienia serwera SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Hasło serwera SMTP',
'settings_smtpPassword_desc' => 'Hasło SMTP',
'settings_smtpPort' => 'Port serwera SMTP',
@ -2006,7 +1954,6 @@ Name: [username]
'sign_out' => 'Wyloguj',
'sign_out_user' => 'Wyloguj użytkownika',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'słowacki',
'sort_by_date' => 'Sortuj według daty',
'sort_by_expiration_date' => 'Sortuj według daty ważności',
@ -2136,7 +2083,6 @@ Name: [username]
'status_revision_sleeping' => 'Oczekujące',
'status_revisor_removed' => 'Revisor usunięty z listy',
'status_unknown' => 'Nieznany',
'storage' => '',
'storage_size' => 'Zajętość dysku',
'subfolder_duplicate_name' => 'Zduplikowana nazwa podfolderu',
'submit_2_fact_auth' => 'Zapisz sekretne hasło',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => 'Autenticação de dois fatores',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Este sistema impõe a autenticação de 2 fatores. Você precisará do Google Authenticator no seu celular. Abaixo você vê dois códigos QR. O caminho certo é o seu atual segredo. À esquerda, você pode definir um novo segredo. Se você definir um novo segredo, verifique novamente com o Google Authenticator.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Documentos por usuário',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Selecione gráfico',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Espaço em disco por usuário',
'checkedout_file_has_different_version' => 'A versão retirada não é idêntica à versão atual. A entrada não atualizará o documento.',
'checkedout_file_has_disappeared' => 'O arquivo do documento retirado desapareceu. A entrada não será possível.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'A retirada de documentos está desativada na configuração.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Por favor escolha a definição de atributo',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Limpar o Cache',
'clear_clipboard' => 'Limpar área de transferência',
'clear_password' => 'Limpar senha',
'click_to_expand_filter_results' => '',
'clipboard' => 'Área de transferência',
'close' => 'Fechar',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Novo mimetype',
'copied_to_checkout_as' => 'Arquivo copiado para o espaço de retirada como \'[nome do arquivo]\' em [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => 'Criar link de download',
'create_fulltext_index' => 'Criar índice de texto completo',
'create_fulltext_index_warning' => 'Você está para recriar o índice de texto completo. Isso pode levar uma quantidade considerável de tempo e reduzir o desempenho geral do sistema. Se você realmente deseja recriar o índice, por favor confirme a operação.',
@ -484,7 +478,6 @@ Usuário: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Documento não tem fluxo de trabalho',
'document_infos' => 'Informações',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'O documento está atualmente com estado de retirado. Se você fizer o envio de uma nova versão, a versão retirada não poderá mais ser registrada.',
@ -578,8 +571,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -710,8 +701,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Extensão',
'extension_changelog' => 'Alterações no Log',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Carregando Extensões',
@ -731,11 +720,11 @@ URL: [url]',
'february' => 'Fevereiro',
'file' => 'Arquivo',
'files' => 'Arquivos',
'filesize' => 'Tamanho',
'files_deletion' => 'Arquivos deletados',
'files_deletion_warning' => 'Com essa opção, você pode excluir todos os arquivos de pastas inteiras do DMS. As informações de versão permanecerão visíveis.',
'files_loading' => 'Pro favor aguarde ate a lista de ficheiros é carregado...',
'filetype' => '',
'file_size' => 'Tamanho',
'filter_for_documents' => 'Filtro adicional para documentos',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtro adicional para pasta',
@ -1133,17 +1122,6 @@ URL: [url]',
'nl_NL' => 'Holandês',
'no' => 'Não',
'notification' => 'Notificação',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Novembro',
'now' => 'agora',
@ -1172,7 +1150,6 @@ URL: [url]',
'no_groups' => 'Sem grupos',
'no_group_members' => 'Este grupo não tem membros',
'no_linked_files' => 'Não há arquivos vinculados',
'no_mimetype' => '',
'no_previous_versions' => 'Nenhuma outra versão encontrada',
'no_receipt_needed' => 'Atualmente, não há documentos que exijam uma confirmação de recebimento.',
'no_review_needed' => 'Nenhuma revisão pendente.',
@ -1337,9 +1314,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Fluxo de trabalho removido da versão do documento',
'removeFolderFromDropFolder' => 'Remover pasta após a importação',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Remover arquivos marcados',
'remove_review_log' => '',
'remove_task' => '',
@ -1542,7 +1517,6 @@ URL: [url]',
'select_category' => 'Clique para selecionar a categoria',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Selecione o grupo',
'select_groups' => 'Clique para selecionar os grupos',
'select_grp_approvers' => 'Clique para selecionar o grupo aprovador',
@ -1563,7 +1537,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Selecione um',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => 'Pressione para selecionar o estado do documento',
@ -1580,7 +1553,6 @@ Nome: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - Suas informações para login',
'send_notification' => '',
'send_test_mail' => 'Enviar email de teste',
'september' => 'Setembro',
'sequence' => 'Sequência',
@ -1595,9 +1567,7 @@ Nome: [username]
'service_name' => '',
'sessions' => 'Online',
'setDateFromFile' => 'Assumir a data do arquivo importado',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Assumir a data da pasta importada',
'setDateFromFolder_desc' => '',
'settings' => 'Configurações',
'settings_activate_module' => 'Ativar módulo',
'settings_activate_php_extension' => 'Ativar extensão PHP',
@ -1695,8 +1665,6 @@ Nome: [username]
'settings_delete_install_folder' => 'Para utilizar Sistema GED, você deve excluir o arquivo ENABLE_INSTALL_TOOL do diretório de configuração',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Desativar Auto Editar',
'settings_disableSelfEdit_desc' => 'Se selecionado o usuário não poderá editar seu próprio perfil',
'settings_disable_install' => 'Elimine o arquivo ENABLE_INSTALL_TOOL se possível',
@ -1762,8 +1730,6 @@ Nome: [username]
'settings_enableLargeFileUpload_desc' => 'Se selecionado, o upload de arquivo também estará disponível através de um applet java chamado jumploader sem limite de tamanho de arquivo definido pelo navegador. Ele também permite fazer o upload de vários arquivos de uma só vez.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Ativar lista de tarefas no menu',
'settings_enableMenuTasks_desc' => 'Ativar / desativar o item de menu que contém todas as tarefas do usuário. Contém documentos que precisam ser revisados, aprovados etc.',
'settings_enableMenuTransmittals' => '',
@ -1823,8 +1789,6 @@ Nome: [username]
'settings_encryptionKey' => 'Chave de criptografia',
'settings_encryptionKey_desc' => 'Esta cadeia é usada para a criação de um identificador único a ser adicionado como um campo oculto para formular, a fim de evitar ataques CSRF.',
'settings_error' => 'Erro',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Expandir a árvore de pastas',
'settings_expandFolderTree_desc' => 'Expanda a Árvore de Pastas',
'settings_expandFolderTree_val0' => 'começar com a árvore escondida',
@ -1881,22 +1845,10 @@ Nome: [username]
'settings_libraryFolder_desc' => 'Pasta onde os documentos podem ser copiados para criar novos documentos.',
'settings_logFileEnable' => 'Ativar Log File',
'settings_logFileEnable_desc' => 'Ativar/Dasativar arquivo log',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotação do Arquivo Log',
'settings_logFileRotation_desc' => 'A rotação de arquivo de log',
'settings_loginFailure' => 'Falha de login',
'settings_loginFailure_desc' => 'Desativar conta após n falhas de login.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Diretório Lucene Sistema GED',
'settings_luceneClassDir_desc' => 'Caminho para Sistema GED_Lucene (opcional). Deixe em branco se você tiver instalado Sistema GED_Lucene em um lugar onde ele pode ser encontrado por PHP, por exemplo, PHP extras incluem-Path',
'settings_luceneDir' => 'Diretório para o índice de texto completo',
@ -1995,10 +1947,6 @@ Nome: [username]
'settings_siteName' => 'Nome do Site',
'settings_siteName_desc' => 'Nome do Site usado nos títulos das páginas. Padrão: Sistema GED',
'settings_SMTP' => 'Configurações do servidor SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Senha do servidor SMTP',
'settings_smtpPassword_desc' => 'Senha do servidor SMTP',
'settings_smtpPort' => 'Porta do servidor SMTP',
@ -2082,7 +2030,6 @@ Nome: [username]
'sign_out' => 'Sair',
'sign_out_user' => 'Sair usuário',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Eslovaco',
'sort_by_date' => 'classificar por data',
'sort_by_expiration_date' => '',
@ -2212,7 +2159,6 @@ Nome: [username]
'status_revision_sleeping' => 'Pendente',
'status_revisor_removed' => 'Revisor removido da lista',
'status_unknown' => 'Desconhecido',
'storage' => '',
'storage_size' => 'Tamanho de armazenamento',
'subfolder_duplicate_name' => 'nome duplicado da subpasta',
'submit_2_fact_auth' => 'Salvar senha',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Documente per utilizator',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Selectați grafic',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Spațiu pe disc per utilizator',
'checkedout_file_has_different_version' => 'Versiunea verificata nu este identica cu versiunea curenta. Check in-ul nu va actualiza documentul.',
'checkedout_file_has_disappeared' => 'Fisierul documentului verificat a disparut. Check in-ul nu va fi posibil.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Verificarea documentelor este dezactivata in configurari.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Vă rugăm să alegeți definiția atributului',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Sterge cache',
'clear_clipboard' => 'Goleste clipboard',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Clipboard',
'close' => 'Inchide',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => '',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Creați indexul pentru tot textul',
'create_fulltext_index_warning' => 'Sunteți pe cale sa recreați indexul pentru tot textul. Acest lucru poate dura o perioadă considerabilă de timp și poate reduce performanța sistemului în ansamblu. Dacă doriți cu adevărat să recreati indexul pentru tot textul, vă rugăm să confirmați operațiunea.',
@ -477,7 +471,6 @@ Utilizator: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Documentul nu are workflow',
'document_infos' => 'Informații document',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Documentul este in prezent verificat. Daca incarcati o noua versiune, versiunea verificata nu mai poate fi verificata din nou.',
@ -566,8 +559,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -698,8 +689,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Se incarca extensiile',
@ -719,11 +708,11 @@ URL: [url]',
'february' => 'Februarie',
'file' => 'Fișier',
'files' => 'Fișiere',
'filesize' => 'Mărimea fișierului',
'files_deletion' => 'Ștergere fișiere',
'files_deletion_warning' => 'Cu această opțiune puteți șterge toate fișierele din toate folderele DMS. Informațiile versiunilor vor rămâne vizibile.',
'files_loading' => 'Vă rog așteptați până la încărcarea listei cu fișiere',
'filetype' => '',
'file_size' => 'Mărimea fișierului',
'filter_for_documents' => 'Filtru suplimentar pentru documente',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Filtru suplimentar pentru foldere',
@ -1115,17 +1104,6 @@ URL: [url]',
'nl_NL' => 'Olandeză',
'no' => 'Nu',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Noiembrie',
'now' => 'nou',
@ -1154,7 +1132,6 @@ URL: [url]',
'no_groups' => 'Nu există grupe',
'no_group_members' => 'Acest grup nu are membri',
'no_linked_files' => 'Nici un fișiere asociate',
'no_mimetype' => '',
'no_previous_versions' => 'Nu sunt alte versiuni gasite',
'no_receipt_needed' => '',
'no_review_needed' => 'Nici o revizuire în așteptare.',
@ -1308,9 +1285,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Workflow eliminat din versiunea documentului',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Eliminați fișierele marcate',
'remove_review_log' => '',
'remove_task' => '',
@ -1509,7 +1484,6 @@ URL: [url]',
'select_category' => 'Click pentru a selecta categoria',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Selecteaza grupul',
'select_groups' => 'Click pentru a selecta grupuri',
'select_grp_approvers' => 'Click pentru a selecta grupul de aprobatori',
@ -1530,7 +1504,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Selectați unul',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1542,7 +1515,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Trimite e-mail de test',
'september' => 'Septembrie',
'sequence' => 'Poziție',
@ -1557,9 +1529,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Setări',
'settings_activate_module' => 'Activați modulul',
'settings_activate_php_extension' => 'Activați extensia PHP',
@ -1657,8 +1627,6 @@ URL: [url]',
'settings_delete_install_folder' => 'Pentru a utiliza SeedDMS, trebuie să ștergeți fișierul ENABLE_INSTALL_TOOL din directorul de configurare',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Dezactivați Auto Editarea',
'settings_disableSelfEdit_desc' => 'Dacă este bifată, utilizatorul nu va putea să-și editeze profilul',
'settings_disable_install' => 'Ștergeți fișierul ENABLE_INSTALL_TOOL dacă este posibil',
@ -1724,8 +1692,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Dacă este setat, incărcarea este de asemenea disponibilă prin intermediul unui applet Java numit jumploader fără limită de dimensiune a fișierului stabilită de browser. De asemenea, permite încărcarea mai multor fișiere într-un singur pas. Activand aceasta optiune va dezactiva optiunea http only cookies.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1785,8 +1751,6 @@ URL: [url]',
'settings_encryptionKey' => 'Cheia de criptare',
'settings_encryptionKey_desc' => 'Acest șir este utilizat pentru crearea unui identificator unic ce este adăugat ca un câmp ascuns pentru un formular, cu scopul de a preveni atacurile CSRF.',
'settings_error' => 'Eroare',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Expandați ierarhia Folderului',
'settings_expandFolderTree_desc' => 'Expandați ierarhia Folderului',
'settings_expandFolderTree_val0' => 'începeți cu ierarhia ascunsă',
@ -1843,22 +1807,10 @@ URL: [url]',
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => 'Activare Log fișiser',
'settings_logFileEnable_desc' => 'Activare/dezactivare log fișier',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Rotire Log fișiser',
'settings_logFileRotation_desc' => 'Rotirea Log-ului fișierului',
'settings_loginFailure' => 'Eșec Autentificare',
'settings_loginFailure_desc' => 'Dezactivați contul după n eșecuri de autentificare.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Directorul Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Calea catre SeedDMS_Lucene (optional). Lăsați gol dacă ați instalat SeedDMS_Lucene într-un loc unde poate fi găsit de PHP (exemplu: Extra PHP Include-Path)',
'settings_luceneDir' => 'Directorul pentru indexul de text integral(full text index)',
@ -1957,10 +1909,6 @@ URL: [url]',
'settings_siteName' => 'Nume site',
'settings_siteName_desc' => 'Numele site-ului utilizat în titlurile paginilor. Implicit: SeedDMS',
'settings_SMTP' => 'Setări server SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Parolă server SMTP',
'settings_smtpPassword_desc' => 'Parolă server SMTP',
'settings_smtpPort' => 'Port server SMTP',
@ -2044,7 +1992,6 @@ URL: [url]',
'sign_out' => 'Sign out',
'sign_out_user' => 'Sign out utilizator',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovacă',
'sort_by_date' => 'Sortare dupa data',
'sort_by_expiration_date' => '',
@ -2174,7 +2121,6 @@ URL: [url]',
'status_revision_sleeping' => 'in asteptare',
'status_revisor_removed' => 'Revizuitor eliminat din lista',
'status_unknown' => 'Necunoscut',
'storage' => '',
'storage_size' => 'Dimensiunea de stocare',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1733)
// Translators: Admin (1732)
$text = array(
'2_factor_auth' => 'Двухфакторная аутентификация',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'Использовать усиленную проверку подлинности',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Документы на пользователя',
'chart_foldersperuser_title' => 'Каталоги по пользователям',
'chart_selection' => 'Выбор графика',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Занятое дисковое пространство по пользователям',
'checkedout_file_has_different_version' => 'Полученная версия не совпадает с текущей версией. Загрузка не обновит документ',
'checkedout_file_has_disappeared' => 'Файл полученного документа не найден. Загрузка невозможна.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Загрузка отключена.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Выберите атрибут',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Очистить кэш',
'clear_clipboard' => 'Очистить буфер обмена',
'clear_password' => 'Сбросить пароль',
'click_to_expand_filter_results' => '',
'clipboard' => 'Буфер обмена',
'close' => 'Закрыть',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Новый mime тип',
'copied_to_checkout_as' => 'Файл скопирован в среду загрузки как \'[filename]\' на [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Создать полнотекстовый индекс',
'create_fulltext_index_warning' => 'Вы хотите пересоздать полнотекстовый индекс. Это займёт какое-то время и снизит производительность. Продолжить?',
@ -375,7 +369,7 @@ URL: [url]',
'current_state' => 'Текущее состояние',
'current_version' => 'Текущая версия',
'daily' => 'Ежедневно',
'dashboard' => 'Saya',
'dashboard' => '',
'databasesearch' => 'Поиск по БД',
'database_schema_version' => 'Версия базы',
'data_loading' => 'Пожалуйста подождите, данные загружаются...',
@ -477,7 +471,6 @@ URL: [url]',
'document_files' => '',
'document_has_no_workflow' => 'Для документа не назначен процесс',
'document_infos' => 'Информация о документе',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Документ в настоящее время проверяется. Если вы загрузить новую версию, то проверяемая версия не может быть возвращена обратно.',
@ -566,8 +559,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -698,8 +689,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => 'Журнал изменений',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Загрузка расширений',
@ -719,11 +708,11 @@ URL: [url]',
'february' => 'Февраль',
'file' => 'Файл',
'files' => 'Файлы',
'filesize' => 'Размер',
'files_deletion' => 'Удалить файлы',
'files_deletion_warning' => 'Эта операция удалит все файлы во всех каталогах. Информация о версиях останется доступна',
'files_loading' => 'Пожалуйста подождите, идет загрузка файла …',
'filetype' => '',
'file_size' => 'Размер',
'filter_for_documents' => 'Дополнительный фильтр по документам',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Дополнительный фильтр по папкам',
@ -1114,17 +1103,6 @@ URL: [url]',
'nl_NL' => 'Dutch',
'no' => 'Нет',
'notification' => 'Уведомление',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Ноябрь',
'now' => 'сейчас',
@ -1153,7 +1131,6 @@ URL: [url]',
'no_groups' => 'Нет групп',
'no_group_members' => 'Группа не имеет членов',
'no_linked_files' => 'Нет связанных документов',
'no_mimetype' => '',
'no_previous_versions' => 'Нет предыдущих версий',
'no_receipt_needed' => 'Нет документов, нуждающихся в подтверждении получения',
'no_review_needed' => 'Рецензия не требуется',
@ -1310,9 +1287,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: удалён процесс из версии документа «[name]»',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Удалить выбранные файлы',
'remove_review_log' => '',
'remove_task' => '',
@ -1516,7 +1491,6 @@ URL: [url]',
'select_category' => 'Выберите категорию',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Выберите группу',
'select_groups' => 'Выберите группы',
'select_grp_approvers' => 'Выберите утверждающую группу',
@ -1537,7 +1511,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Выберите',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1549,7 +1522,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Отправить тестовое сообщение',
'september' => 'Сентябрь',
'sequence' => 'Позиция',
@ -1564,9 +1536,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Настройки',
'settings_activate_module' => 'Активировать модуль',
'settings_activate_php_extension' => 'Активировать расширение PHP',
@ -1664,8 +1634,6 @@ URL: [url]',
'settings_delete_install_folder' => 'Удалите ENABLE_INSTALL_TOOL в каталоге конфигурации, для того что бы начать использовать систему',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Отключить собственное редактирование',
'settings_disableSelfEdit_desc' => 'Если включено, пользователи не смогут изменять информацию о себе.',
'settings_disable_install' => 'Удалить ENABLE_INSTALL_TOOL, если возможно',
@ -1731,8 +1699,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Если включено, загрузка файлов доступна так же через Java-апплет, называемый jumploader, без ограничения размера файла. Это также позволит загружать несколько файлов за раз.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Включить список задач в меню',
'settings_enableMenuTasks_desc' => 'Включить/отключить пункт меню, который содержит все задачи пользователя. Там содержатся документы, которые нуждаются в рецензии, утверждении и т.д.',
'settings_enableMenuTransmittals' => '',
@ -1792,8 +1758,6 @@ URL: [url]',
'settings_encryptionKey' => 'Ключ шифрования',
'settings_encryptionKey_desc' => 'Строка используется для создания уникального идентификатора, добавляемого как скрытые поля к формулярам, для предотвращения CSRF-атак.',
'settings_error' => 'Ошибка',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Разворачивать дерево каталогов',
'settings_expandFolderTree_desc' => 'Разворачивать дерево каталогов.',
'settings_expandFolderTree_val0' => 'Начинать со свёрнутого дерева',
@ -1850,22 +1814,10 @@ URL: [url]',
'settings_libraryFolder_desc' => 'Каталог, куда можно копировать документы для создания новых документов',
'settings_logFileEnable' => 'Включить журнал',
'settings_logFileEnable_desc' => 'Включить/отключить журнал.',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Ротация журнала',
'settings_logFileRotation_desc' => 'Ротация файла журнала.',
'settings_loginFailure' => 'Не удалось войти',
'settings_loginFailure_desc' => 'Отключить учётную запись после n неудачных попыток.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Каталог Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Путь к SeedDMS_Lucene (не обязательно).',
'settings_luceneDir' => 'Каталог полнотекстового индекса Lucene',
@ -1964,10 +1916,6 @@ URL: [url]',
'settings_siteName' => 'Название сайта',
'settings_siteName_desc' => 'Название сайта, используемое в заголовках. По умолчанию: SeedDMS',
'settings_SMTP' => 'Настройки SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Пароль сервера SMTP',
'settings_smtpPassword_desc' => 'Пароль сервера SMTP',
'settings_smtpPort' => 'Порт SMTP',
@ -2051,7 +1999,6 @@ URL: [url]',
'sign_out' => 'Выйти',
'sign_out_user' => 'Пользовательский выход',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovak',
'sort_by_date' => 'Сортировка по дате',
'sort_by_expiration_date' => '',
@ -2181,7 +2128,6 @@ URL: [url]',
'status_revision_sleeping' => 'В ожидании рецензии',
'status_revisor_removed' => 'Ревизор удален из списка',
'status_unknown' => 'Неизвестный',
'storage' => '',
'storage_size' => 'Размер хранилища',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '2-faktorové overovanie',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'This system enforces 2 factor authentication. You will need the Google Authenticator on your mobile phone. Below you see two QR codes. The right one is your current secret. On the left you can set a new secret. If you set a new secret make sure to rescan it with Google Authenticator.',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumenty podľa používateľa',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Vyber graf',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Diskový priestor na používateľa',
'checkedout_file_has_different_version' => 'The checked out version is not identical to the current version. Check in will not update the document.',
'checkedout_file_has_disappeared' => 'The file of the checked out document has disappeared. Check in will not be possible.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Kontrola dokumentov je zakázaná v konfigurácii.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Vyberte prosím definíciu atribútu',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Vyčistiť pamäť cache',
'clear_clipboard' => 'Vymazať schránku',
'clear_password' => 'Vymazať heslo',
'click_to_expand_filter_results' => '',
'clipboard' => 'Schránka',
'close' => 'Zavrieť',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Nový mime-type',
'copied_to_checkout_as' => 'File copied to checkout space as \'[filename]\' on [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Vytvoriť fulltext index',
'create_fulltext_index_warning' => 'Chystáte sa obnoviť fulltext index, čo môže dlho trvať a môže znížiť výkon systému. Ak chcete pokračovať, potvrďte svoju voľbu.',
@ -484,7 +478,6 @@ Používateľ: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokument nemá pracovný postup',
'document_infos' => 'Informácie o dokumente',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Document is currently checked out. If you upload a new version, then the checked out version cannot be checked back in anymore.',
@ -578,8 +571,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -710,8 +701,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => 'Rozšírenie',
'extension_changelog' => 'Denník zmien',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Nahrávajú sa rozšírenia ...',
@ -731,11 +720,11 @@ URL: [url]',
'february' => 'Február',
'file' => 'Súbor',
'files' => 'Súbory',
'filesize' => 'Veľkosť súboru',
'files_deletion' => 'Odstránenie súboru',
'files_deletion_warning' => 'Touto akciou môžete odstrániť všetky súbory celých DMS zložiek. Verziovacie informácie zostanú viditeľné.',
'files_loading' => 'Prosím počkajte, kým sa načíta zoznam súborov ...',
'filetype' => '',
'file_size' => 'Veľkosť súboru',
'filter_for_documents' => 'Ďalší filter pre dokumenty',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Ďalší filter pre zložky',
@ -1134,17 +1123,6 @@ URL: [url]',
'nl_NL' => 'Holandština',
'no' => 'Nie',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'November',
'now' => 'teraz',
@ -1173,7 +1151,6 @@ URL: [url]',
'no_groups' => 'Žiadne skupiny',
'no_group_members' => 'Táto skupina nemá žiadnych členov',
'no_linked_files' => 'No linked files',
'no_mimetype' => '',
'no_previous_versions' => 'Neboli nájdené žiadne iné verzie',
'no_receipt_needed' => 'There are currently no documents requiring a receipt confirmation.',
'no_review_needed' => 'No review pending.',
@ -1338,9 +1315,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Removed workflow from document version',
'removeFolderFromDropFolder' => 'Po importe odstrániť zložku',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Odstrániť označené súbory',
'remove_review_log' => '',
'remove_task' => '',
@ -1544,7 +1519,6 @@ URL: [url]',
'select_category' => 'Vyber kategóriu',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Vybrať skupinu',
'select_groups' => 'Kliknutím vyberte skupiny',
'select_grp_approvers' => 'Kliknutím vyberte schvaľovateľa skupiny',
@ -1565,7 +1539,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Vyberte',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1582,7 +1555,6 @@ Meno: [username]
[comment]',
'send_login_data_subject' => '[sitename]: [login] - Vaše prihlasovacie údaje',
'send_notification' => '',
'send_test_mail' => 'Poslať testovací E-mail',
'september' => 'September',
'sequence' => 'Postupnosť',
@ -1597,9 +1569,7 @@ Meno: [username]
'service_name' => '',
'sessions' => 'Používatelia online',
'setDateFromFile' => 'Prebrať dátumy z importovaných súborov',
'setDateFromFile_desc' => '',
'setDateFromFolder' => 'Prebrať dátumy z importovaných zložiek',
'setDateFromFolder_desc' => '',
'settings' => 'Nastavenia',
'settings_activate_module' => 'Aktivovať modul',
'settings_activate_php_extension' => 'Aktivovať PHP rozšírenie',
@ -1697,8 +1667,6 @@ Meno: [username]
'settings_delete_install_folder' => 'In order to use SeedDMS, you must delete the file ENABLE_INSTALL_TOOL in the configuration directory',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Disable Self Edit',
'settings_disableSelfEdit_desc' => 'If checked user cannot edit his own profile',
'settings_disable_install' => 'Delete file ENABLE_INSTALL_TOOL if possible',
@ -1764,8 +1732,6 @@ Meno: [username]
'settings_enableLargeFileUpload_desc' => 'If set, file upload is also available through a java applet called jumploader without a file size limit set by the browser. It also allows to upload several files in one step. Turning this on will turn off http only cookies.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Enable task list in menu',
'settings_enableMenuTasks_desc' => 'Enable/Disable the menu item which contains all tasks for the user. This contains documents, that need to be reviewed, approved, etc.',
'settings_enableMenuTransmittals' => '',
@ -1825,8 +1791,6 @@ Meno: [username]
'settings_encryptionKey' => 'Encryption key',
'settings_encryptionKey_desc' => 'This string is used for creating a unique identifier being added as a hidden field to a form in order to prevent CSRF attacks.',
'settings_error' => 'Chyba',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Rozbaliť',
'settings_expandFolderTree_desc' => 'Rozbaliť strom zložiek',
'settings_expandFolderTree_val0' => 'začať so skrytou stromovou štruktúrou',
@ -1883,22 +1847,10 @@ Meno: [username]
'settings_libraryFolder_desc' => 'Folder where documents can be copied to create new documents.',
'settings_logFileEnable' => 'Povoliť Log súbor',
'settings_logFileEnable_desc' => 'Povoliť/zakázať log súbor',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Log File Rotation',
'settings_logFileRotation_desc' => 'The log file rotation',
'settings_loginFailure' => 'Prihlásenie zlyhalo',
'settings_loginFailure_desc' => 'Disable account after n login failures.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS zložka',
'settings_luceneClassDir_desc' => 'Path to SeedDMS_Lucene (optional). Leave this empty if you have installed SeedDMS_Lucene at a place where it can be found by PHP, e.g. Extra PHP Include-Path',
'settings_luceneDir' => 'Directory for full text index',
@ -1997,10 +1949,6 @@ Meno: [username]
'settings_siteName' => 'Názov stránky',
'settings_siteName_desc' => 'Názov stránky používaný v nadpisoch. Predvolený: SeedDMS',
'settings_SMTP' => 'SMTP Server nastavenia',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP Server heslo',
'settings_smtpPassword_desc' => 'SMTP Server heslo',
'settings_smtpPort' => 'SMTP Server port',
@ -2084,7 +2032,6 @@ Meno: [username]
'sign_out' => 'odhlásiť',
'sign_out_user' => 'Odhlásiť používateľa',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovenčina',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2214,7 +2161,6 @@ Meno: [username]
'status_revision_sleeping' => 'pending',
'status_revisor_removed' => 'Revisor removed from list',
'status_unknown' => 'Neznámy',
'storage' => '',
'storage_size' => 'Objem dát',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => 'Save secret',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '2-faktors autentisering',
'2_factor_auth_code' => '',
'2_factor_auth_info' => 'För stöd av 2-faktors autentisering behöver du Google Authenticator installerad din mobiltelefon.
Nedan ser du två QR-koder. Den högra är din hemliga kod och till vänster kan du skapa en ny kod. Om du skapar en ny kod måste du skanna den nytt med Google Authenticator.',
'2_fact_auth_current_secret' => '',
@ -286,7 +285,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Dokumenter per användare',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Välj diagram',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Diskutrymme per användare',
'checkedout_file_has_different_version' => 'Det utcheckade dokumentet är inte detsamma som nuvarande version. Incheckning kommer inte att uppdatera dokumentet.',
'checkedout_file_has_disappeared' => 'Filen för det utcheckade dokumentet saknas. Incheckning är inte möjlig.',
@ -298,7 +296,6 @@ URL: [url]',
'checkout_is_disabled' => 'Utcheckning av dokument är invaktiverad i systemets inställningar.',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Välj attributdefinition',
@ -320,7 +317,6 @@ URL: [url]',
'clear_cache' => 'Rensa cache',
'clear_clipboard' => 'Rensa urklipp',
'clear_password' => 'Ta bort lösenord',
'click_to_expand_filter_results' => '',
'clipboard' => 'Urklipp',
'close' => 'Stäng',
'color' => '',
@ -363,8 +359,6 @@ URL: [url]',
'converter_new_mimetype' => 'Ny MIME-typ',
'copied_to_checkout_as' => 'Filen har kopierats till utcheckningmappen som \'[filename]\' per [date]',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Skapa fulltext-sökindex',
'create_fulltext_index_warning' => 'Du håller på att skapa fulltext-sökindex. Detta kan ta mycket lång tid och sakta ner den allmänna systemprestandan. Om du verkligen vill skapa indexet, bekräfta åtgärden.',
@ -478,7 +472,6 @@ Användare: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokumentet saknar arbetsflöde',
'document_infos' => 'Dokumentinformation',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Dokumentet är redan utcheckat. Om du laddar upp en ny version kan den utcheckade versionen inte checkas in igen.',
@ -572,8 +565,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -704,8 +695,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -725,11 +714,11 @@ URL: [url]',
'february' => 'februari',
'file' => 'Fil',
'files' => 'Filer',
'filesize' => 'Filstorlek',
'files_deletion' => 'Ta bort filer',
'files_deletion_warning' => 'Med detta alternativ kan du ta bort alla filer i en dokumentkatalog. Versionsinformationen kommer fortfarande att visas.',
'files_loading' => 'Vänligen vänta tills listan med filer har laddats ...',
'filetype' => '',
'file_size' => 'Filstorlek',
'filter_for_documents' => 'Tilläggsfilter för dokument',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Tilläggsfilter för kataloger',
@ -1121,17 +1110,6 @@ URL: [url]',
'nl_NL' => 'Holländska',
'no' => 'Nej',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'November',
'now' => 'nu',
@ -1160,7 +1138,6 @@ URL: [url]',
'no_groups' => 'Inga grupper',
'no_group_members' => 'Denna grupp har inga medlemmar',
'no_linked_files' => 'Inga länkade filer',
'no_mimetype' => '',
'no_previous_versions' => 'Inga andra versioner hittades.',
'no_receipt_needed' => 'Det finns inga dokument som saknar mottagningsbevis.',
'no_review_needed' => 'Det finns inga dokument som du behöver granska.',
@ -1311,9 +1288,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Arbetsflöde borttaget från dokumentversion',
'removeFolderFromDropFolder' => 'Radera katalog efter import',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Ta bort markerade filer',
'remove_review_log' => '',
'remove_task' => '',
@ -1517,7 +1492,6 @@ URL: [url]',
'select_category' => 'Klicka för att välja en kategori',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Välj grupp',
'select_groups' => 'Välj grupper',
'select_grp_approvers' => 'Välj en grupp som ska godkänna',
@ -1538,7 +1512,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Välj',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1555,7 +1528,6 @@ Namn: [username]
Kommentar: [comment]',
'send_login_data_subject' => '[sitename]: [login] - Dina inloggningsuppgifter',
'send_notification' => '',
'send_test_mail' => 'Skicka testmail',
'september' => 'September',
'sequence' => 'Position',
@ -1570,9 +1542,7 @@ Kommentar: [comment]',
'service_name' => '',
'sessions' => 'Användare online',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Inställningar',
'settings_activate_module' => 'Aktivera modul',
'settings_activate_php_extension' => 'Aktivera PHP-extension',
@ -1670,8 +1640,6 @@ Kommentar: [comment]',
'settings_delete_install_folder' => 'För att kunna använda LetoDMS måste du ta bort filen ENABLE_INSTALL_TOOL som finns i konfigurationsmappen.',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Inaktivera själveditering',
'settings_disableSelfEdit_desc' => 'Om ikryssad kan användare inte ändra sin egen profil.',
'settings_disable_install' => 'Ta bort filen ENABLE_INSTALL_TOOL, om det är möjligt.',
@ -1737,8 +1705,6 @@ Kommentar: [comment]',
'settings_enableLargeFileUpload_desc' => 'Om aktiverad, kan filer laddas upp via javaapplet med namnet jumploader, utan begränsningar i filstorlek. Flera filer kan även laddas upp samtidigt i ett steg.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Aktivera uppgiftslista i menyn',
'settings_enableMenuTasks_desc' => 'Aktiverar ett menyobjekt som visar användarens uppgifter, såsom dokument som behöver granskas eller godkännas.',
'settings_enableMenuTransmittals' => '',
@ -1798,8 +1764,6 @@ Kommentar: [comment]',
'settings_encryptionKey' => 'Krypteringsnyckel',
'settings_encryptionKey_desc' => 'Denna sträng används för att generera en unik identifierare, som är inrymd som ett dolt fält i ett formulär. Det används för att förhindra CSRF-attacker.',
'settings_error' => 'Fel',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Expandera katalogträd',
'settings_expandFolderTree_desc' => 'Expandera katalogträd',
'settings_expandFolderTree_val0' => 'Börja med dolt träd',
@ -1856,22 +1820,10 @@ Kommentar: [comment]',
'settings_libraryFolder_desc' => 'Katalog för kopiering av dokument för att skapa nya dokuemnt.',
'settings_logFileEnable' => 'Aktivera loggfil',
'settings_logFileEnable_desc' => 'Aktivera/Inaktivera loggfil',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Loggfils-rotation',
'settings_logFileRotation_desc' => 'Loggfils-rotation',
'settings_loginFailure' => 'Fel vid inloggning',
'settings_loginFailure_desc' => 'Inaktivera kontot efter n antal misslyckade inloggningar.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene LetoDMS-mapp',
'settings_luceneClassDir_desc' => 'Sökväg till LetoDMS_Lucene (valfritt)',
'settings_luceneDir' => 'Mapp för fulltext-index',
@ -1970,10 +1922,6 @@ Kommentar: [comment]',
'settings_siteName' => 'Site namn',
'settings_siteName_desc' => 'Sidans namn som visas i sidhuvud. Standard: letoDMS',
'settings_SMTP' => 'SMTP server-inställningar',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP Server lösenord',
'settings_smtpPassword_desc' => 'SMTP Server lösenord',
'settings_smtpPort' => 'SMTP server-port',
@ -2057,7 +2005,6 @@ Kommentar: [comment]',
'sign_out' => 'Logga ut',
'sign_out_user' => 'Logga ut användare',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovakiska',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2187,7 +2134,6 @@ Kommentar: [comment]',
'status_revision_sleeping' => 'Vilande',
'status_revisor_removed' => 'Reviderare borttagen från listan',
'status_unknown' => 'Okänd',
'storage' => '',
'storage_size' => 'Lagringsstorlek',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => 'Spara hemlighet',

View File

@ -19,11 +19,10 @@
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
// Translators: Admin (1144), aydin (83)
// Translators: Admin (1142), aydin (83)
$text = array(
'2_factor_auth' => 'İki faktörlü yetkilendirme',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -280,7 +279,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Kullanıcıya göre dokümanlar',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Grafik seç',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Kullanıcıya göre disk kullanımı',
'checkedout_file_has_different_version' => '',
'checkedout_file_has_disappeared' => '',
@ -292,7 +290,6 @@ URL: [url]',
'checkout_is_disabled' => '',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Lütfen nitelik tanımını seçiniz',
@ -314,7 +311,6 @@ URL: [url]',
'clear_cache' => 'Ön belleği temizle',
'clear_clipboard' => 'Panoyu temizle',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Pano',
'close' => 'Kapat',
'color' => '',
@ -357,8 +353,6 @@ URL: [url]',
'converter_new_mimetype' => '',
'copied_to_checkout_as' => '',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Tam metin indeksi oluştur',
'create_fulltext_index_warning' => 'Tam metin indeksi yeniden oluşturmak üzeresiniz. Bu işlem bir hayli uzun sürebilir ve sistem performansını olumsuz etkileyebilir. Buna rağmen indeksi oluşturmak istiyorsanız lütfen bu işlemi onaylayın.',
@ -370,7 +364,7 @@ URL: [url]',
'current_state' => 'Mevcut durum',
'current_version' => 'Mevcut versiyon',
'daily' => 'Günlük',
'dashboard' => 'Ana Ekran',
'dashboard' => '',
'databasesearch' => 'Veritabanı arama',
'database_schema_version' => 'Veritabanı tasarım sürümü',
'data_loading' => 'Lütfen veriler yüklenene kadar bekleyin…',
@ -471,7 +465,6 @@ Kullanıcı: [username]',
'document_files' => '',
'document_has_no_workflow' => 'Dokümanın iş akışı yok',
'document_infos' => 'Doküman Bilgisi',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => '',
@ -560,8 +553,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -692,8 +683,6 @@ URL: [url]',
'export_user_list_csv' => 'Kullanıcıları CSV olarak dışa aktar',
'extension_archive' => '',
'extension_changelog' => 'Değişiklik Listesi',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => 'Uzantı yüklendi',
@ -713,11 +702,11 @@ URL: [url]',
'february' => 'Şubat',
'file' => 'Dosya',
'files' => 'Dosyalar',
'filesize' => 'Dosya boyutu',
'files_deletion' => 'Dosya silme',
'files_deletion_warning' => 'Bu işlemle bütün DYS klasörlerindeki dosyaların tamamını silebilirsiniz. Versiyonlama bilgisi görülmeye devam edecek.',
'files_loading' => 'Döküman ağaç yapısı yüklenirken, lütfen bekleyiniz ...',
'filetype' => '',
'file_size' => 'Dosya boyutu',
'filter_for_documents' => 'Dokümanlar için ek filtreler',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Klasörler için ek filtreler',
@ -852,7 +841,7 @@ URL: [url]',
'hu_HU' => 'Macarca',
'id' => 'ID',
'identical_version' => 'Yeni versiyon güncel versiyonla aynı.',
'id_ID' => 'Endoneyza',
'id_ID' => '',
'import' => '',
'importfs' => '',
'import_extension' => '',
@ -1107,17 +1096,6 @@ URL: [url]',
'nl_NL' => 'Hollandaca',
'no' => 'Hayır',
'notification' => 'Notlar',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Kasım',
'now' => 'şimdi',
@ -1146,7 +1124,6 @@ URL: [url]',
'no_groups' => 'Grup yok',
'no_group_members' => 'Bu grubun hiç üyesi yok',
'no_linked_files' => 'Link verilmiş dosya yok',
'no_mimetype' => '',
'no_previous_versions' => 'Başka versiyon yok',
'no_receipt_needed' => '',
'no_review_needed' => 'Bekleyen kontrol yok.',
@ -1302,9 +1279,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: [name] - Doküman versiyonundan iş akışı silindi',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'İşaretli dosyaları sil',
'remove_review_log' => '',
'remove_task' => '',
@ -1486,7 +1461,6 @@ URL: [url]',
'select_category' => 'Kategori seçmek için tıklayın',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => 'Grup Seç',
'select_groups' => 'Grup seçmek için tıklayın',
'select_grp_approvers' => 'Grup onaylayıcı seçmek için tıklayın',
@ -1507,7 +1481,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Birini seçiniz',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1519,7 +1492,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Test maili gönder',
'september' => 'Eylül',
'sequence' => 'Sıralama',
@ -1534,9 +1506,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Ayarlar',
'settings_activate_module' => 'Modülü etkinleştir',
'settings_activate_php_extension' => 'PHP uzantısını etkinleştir',
@ -1634,8 +1604,6 @@ URL: [url]',
'settings_delete_install_folder' => 'SeedDMS kullanabilmeniz için konfigürasyon (conf) dizini içindeki ENABLE_INSTALL_TOOL dosyasını silmelisiniz',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Kendi kendine Düzenlemeyi Kapat',
'settings_disableSelfEdit_desc' => 'Seçilirse kullanıcı kendi profil ayarlarını değiştiremez.',
'settings_disable_install' => 'ENABLE_INSTALL_TOOL dosyasını silmeyi dene',
@ -1701,8 +1669,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Etkinleştirilirse, büyük dosyalar dosya limitine bakılmaksızın jumploader isimli java applet aracılığıyla yüklenebilir. Bu ayrıca bir seferde birden çok dosya yüklemeyi de sağlar. Bu açıldığında sadece http çerezleri kapanmış olur.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => '',
'settings_enableMenuTasks_desc' => '',
'settings_enableMenuTransmittals' => '',
@ -1762,8 +1728,6 @@ URL: [url]',
'settings_encryptionKey' => 'Şifreleme anahtarı',
'settings_encryptionKey_desc' => 'Bu string, CSRF ataklarını önlemek için eşsiz id olarak kaydedilir.',
'settings_error' => 'Hata',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Klasör Ağacını Genişlet',
'settings_expandFolderTree_desc' => 'Klasör Ağacını Genişlet',
'settings_expandFolderTree_val0' => 'ağaç yapısı gizli olarak başlat',
@ -1820,22 +1784,10 @@ URL: [url]',
'settings_libraryFolder_desc' => '',
'settings_logFileEnable' => 'Log Dosyası Etkin',
'settings_logFileEnable_desc' => 'Log dosyasını etkinleştir/devredışı bırak',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Log Dosyası rotasyonu',
'settings_logFileRotation_desc' => 'Log dosyasını seçeceğiniz zaman dilimine göre ayrı ayrı kaydet',
'settings_loginFailure' => 'Hatalı giriş sayısı',
'settings_loginFailure_desc' => 'n sefer hatalı girişte hesabı devredışı bırak.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Lucene SeedDMS dizini',
'settings_luceneClassDir_desc' => 'SeedDMS_Lucene yolu (isteğe bağlı). SeedDMS_Lucene\'i PHP tarafından bulunabilecek bir yere kurduysanız bu alanı boş bırakabilirsiniz. Ör. Ekstra PHP Include-Path',
'settings_luceneDir' => 'Tam metin dizini',
@ -1934,10 +1886,6 @@ URL: [url]',
'settings_siteName' => 'Site Adı',
'settings_siteName_desc' => 'Sayfa başlığında görünecek site ismi. Varsayılan: SeedDMS',
'settings_SMTP' => 'SMTP Sunucu ayarları',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'SMTP Sunucu parolası',
'settings_smtpPassword_desc' => 'SMTP Sunucu parolası',
'settings_smtpPort' => 'SMTP Sunucu portu',
@ -2021,7 +1969,6 @@ URL: [url]',
'sign_out' => ıkış',
'sign_out_user' => 'Kullanıcı hesabından çıkış',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovakça',
'sort_by_date' => 'Tarihe göre sırala',
'sort_by_expiration_date' => '',
@ -2151,7 +2098,6 @@ URL: [url]',
'status_revision_sleeping' => '',
'status_revisor_removed' => '',
'status_unknown' => 'Bilinmeyen',
'storage' => '',
'storage_size' => 'Depo boyutu',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

View File

@ -23,7 +23,6 @@
$text = array(
'2_factor_auth' => '',
'2_factor_auth_code' => '',
'2_factor_auth_info' => '',
'2_fact_auth_current_secret' => '',
'2_fact_auth_new_secret' => '',
@ -285,7 +284,6 @@ URL: [url]',
'chart_docsperuser_title' => 'Документи по користувачах',
'chart_foldersperuser_title' => '',
'chart_selection' => 'Оберіть діаграму',
'chart_sizepermonth_title' => '',
'chart_sizeperuser_title' => 'Зайнятий дисковий простір по користувачах',
'checkedout_file_has_different_version' => 'Отримана версія документу не відповідає останній його версії. Завантаження не оновить документ.',
'checkedout_file_has_disappeared' => 'Файл отримуваного документа не знайдено. Завантаження неможливе.',
@ -297,7 +295,6 @@ URL: [url]',
'checkout_is_disabled' => 'Завантаження відключене',
'check_directory_layout' => '',
'check_failed' => '',
'check_notification_filter' => '',
'check_passed' => '',
'check_secure_installation' => '',
'choose_attrdef' => 'Оберіть атрибут',
@ -319,7 +316,6 @@ URL: [url]',
'clear_cache' => 'Очистити кеш',
'clear_clipboard' => 'Очистити буфер обміну',
'clear_password' => '',
'click_to_expand_filter_results' => '',
'clipboard' => 'Буфер обміну',
'close' => 'Закрити',
'color' => '',
@ -362,8 +358,6 @@ URL: [url]',
'converter_new_mimetype' => 'Новий mime тип',
'copied_to_checkout_as' => 'Файл скопійовано в середовище скачування як',
'created' => '',
'createSubFolderForImportedFiles' => '',
'createSubFolderForImportedFiles_desc' => '',
'create_download_link' => '',
'create_fulltext_index' => 'Створити повнотекстовий індекс',
'create_fulltext_index_warning' => 'Ви хочете перестворити повнотекстовий індекс. Це займе деякий час і знизить продуктивність. Продовжити?',
@ -477,7 +471,6 @@ URL: [url]',
'document_files' => '',
'document_has_no_workflow' => 'Документові не призначено процес',
'document_infos' => 'Інформація про документ',
'document_in_revision_no_date' => '',
'document_is_checked_out' => '',
'document_is_checked_out_remove' => '',
'document_is_checked_out_update' => 'Документ на опрацюванні',
@ -565,8 +558,6 @@ URL: [url]',
'download_header_document_name' => '',
'download_header_document_no' => '',
'download_header_filename' => '',
'download_header_folder_name' => '',
'download_header_folder_no' => '',
'download_header_internal_version' => '',
'download_header_reviewer' => '',
'download_header_review_comment' => '',
@ -697,8 +688,6 @@ URL: [url]',
'export_user_list_csv' => '',
'extension_archive' => '',
'extension_changelog' => '',
'extension_config' => '',
'extension_info' => '',
'extension_is_off_now' => '',
'extension_is_on_now' => '',
'extension_loading' => '',
@ -718,11 +707,11 @@ URL: [url]',
'february' => 'Лютий',
'file' => 'Файл',
'files' => 'Файли',
'filesize' => 'Розмір',
'files_deletion' => 'Видалити файли',
'files_deletion_warning' => 'Ця операція видалить всі файли у всіх каталогах. Інформація про версії залишиться доступною',
'files_loading' => 'Будь ласка, зачекайте, поки завантажується файл …',
'filetype' => '',
'file_size' => 'Розмір',
'filter_for_documents' => 'Додатковий фільтр по документах',
'filter_for_documents_and_folders' => '',
'filter_for_folders' => 'Додатковий фільтр по каталогах',
@ -1113,17 +1102,6 @@ URL: [url]',
'nl_NL' => 'Dutch',
'no' => 'Ні',
'notification' => '',
'notification_msg_tmpl' => '',
'notification_recvtype' => '',
'notification_recv_any' => '',
'notification_recv_approver' => '',
'notification_recv_notification' => '',
'notification_recv_owner' => '',
'notification_recv_reviewer' => '',
'notification_recv_uploader' => '',
'notification_recv_workflow' => '',
'notification_service_no_filter' => '',
'notification_tmpl' => '',
'not_subscribed' => '',
'november' => 'Листопад',
'now' => 'зараз',
@ -1152,7 +1130,6 @@ URL: [url]',
'no_groups' => 'Немає груп',
'no_group_members' => 'Група не має членів',
'no_linked_files' => 'Немає пов\'язаних документів',
'no_mimetype' => '',
'no_previous_versions' => 'Немає попередніх версій',
'no_receipt_needed' => 'Немає документів, які потребують підтвердження отримання',
'no_review_needed' => 'Рецензія не потрібна',
@ -1309,9 +1286,7 @@ URL: [url]',
'removed_workflow_email_body_html' => '',
'removed_workflow_email_subject' => '[sitename]: видалено процес з версії документа «[name]»',
'removeFolderFromDropFolder' => '',
'removeFolderFromDropFolder_desc' => '',
'remove_approval_log' => '',
'remove_from_clipboard' => '',
'remove_marked_files' => 'Видалити обрані файли',
'remove_review_log' => '',
'remove_task' => '',
@ -1508,7 +1483,6 @@ URL: [url]',
'select_category' => 'Оберіть категорію',
'select_created' => '',
'select_documents_for_process' => '',
'select_folder' => '',
'select_group' => '',
'select_groups' => 'Оберіть групи',
'select_grp_approvers' => 'Оберіть групу затверджувачів',
@ -1529,7 +1503,6 @@ URL: [url]',
'select_mimetype' => '',
'select_modified' => '',
'select_one' => 'Оберіть',
'select_option' => '',
'select_owner' => '',
'select_record_type' => '',
'select_status' => '',
@ -1541,7 +1514,6 @@ URL: [url]',
'send_login_data' => '',
'send_login_data_body' => '',
'send_login_data_subject' => '',
'send_notification' => '',
'send_test_mail' => 'Надіслати тестове повідомлення',
'september' => 'Вересень',
'sequence' => 'Позиція',
@ -1556,9 +1528,7 @@ URL: [url]',
'service_name' => '',
'sessions' => '',
'setDateFromFile' => '',
'setDateFromFile_desc' => '',
'setDateFromFolder' => '',
'setDateFromFolder_desc' => '',
'settings' => 'Налаштування',
'settings_activate_module' => 'Активувати модуль',
'settings_activate_php_extension' => 'Активувати розширення PHP',
@ -1656,8 +1626,6 @@ URL: [url]',
'settings_delete_install_folder' => 'Видаліть ENABLE_INSTALL_TOOL в каталозі конфігурації для того, щоби почати використовувати систему',
'settings_disableChangePassword' => '',
'settings_disableChangePassword_desc' => '',
'settings_disableReceiptComment' => '',
'settings_disableReceiptComment_desc' => '',
'settings_disableSelfEdit' => 'Відключити власне редагування',
'settings_disableSelfEdit_desc' => 'Якщо ввімкнено, користувачі не зможуть змінювати інформацію про себе.',
'settings_disable_install' => 'Видалити ENABLE_INSTALL_TOOL, якщо можливо',
@ -1723,8 +1691,6 @@ URL: [url]',
'settings_enableLargeFileUpload_desc' => 'Якщо увімкнено, завантаження файлів доступне також через Java-аплет jumploader без обмеження розміру файлів. Це також дозволить завантажувати кілька файлів за раз.',
'settings_enableLoginByEmail' => '',
'settings_enableLoginByEmail_desc' => '',
'settings_enableMemcached' => '',
'settings_enableMemcached_desc' => '',
'settings_enableMenuTasks' => 'Включити список завдань в меню',
'settings_enableMenuTasks_desc' => 'Включити/відключити пункт меню, який містить всі завдання користувача. Там містяться документи, які потребують рецензії, затвердження і т.ін.',
'settings_enableMenuTransmittals' => '',
@ -1784,8 +1750,6 @@ URL: [url]',
'settings_encryptionKey' => 'Ключ шифрування',
'settings_encryptionKey_desc' => 'Рядок використовується для створення унікального ідентифікатора, який додається як приховане поле до формулярів, для запобігання CSRF-атак.',
'settings_error' => 'Помилка',
'settings_excludeFoldersDashboard' => '',
'settings_excludeFoldersDashboard_desc' => '',
'settings_expandFolderTree' => 'Розгортати дерево каталогів',
'settings_expandFolderTree_desc' => 'Розгортати дерево каталогів.',
'settings_expandFolderTree_val0' => 'Починати із згорнутого дерева',
@ -1842,22 +1806,10 @@ URL: [url]',
'settings_libraryFolder_desc' => 'Каталог, куди можна копіювати документи для створення нових документів',
'settings_logFileEnable' => 'Увімкнути протоколювання (лог)',
'settings_logFileEnable_desc' => 'Увімкнути/вимкнути протоколювання (лог).',
'settings_logFileMaxLevel' => '',
'settings_logFileMaxLevel_desc' => '',
'settings_logFileRestApiMaxLevel' => '',
'settings_logFileRestApiMaxLevel_desc' => '',
'settings_logFileRotation' => 'Ротація журналу (протоколу)',
'settings_logFileRotation_desc' => 'Ротація файлу журналу.',
'settings_loginFailure' => 'Не вдалося увійти',
'settings_loginFailure_desc' => 'Відключити обліковий запис після n невдалих спроб.',
'settings_logLevelAlert' => '',
'settings_logLevelCritical' => '',
'settings_logLevelDebug' => '',
'settings_logLevelEmergency' => '',
'settings_logLevelError' => '',
'settings_logLevelInfo' => '',
'settings_logLevelNotice' => '',
'settings_logLevelWarning' => '',
'settings_luceneClassDir' => 'Каталог Lucene SeedDMS',
'settings_luceneClassDir_desc' => 'Шлях до SeedDMS_Lucene (не обов\'язково).',
'settings_luceneDir' => 'Каталог повнотекстового індексу Lucene',
@ -1956,10 +1908,6 @@ URL: [url]',
'settings_siteName' => 'Назва сайту',
'settings_siteName_desc' => 'Назва сайту, яка використовується в заголовках. По замовчуванню: SeedDMS',
'settings_SMTP' => 'Налаштування SMTP',
'settings_smtpForceFrom' => '',
'settings_smtpForceFrom_desc' => '',
'settings_smtpLazySSL' => '',
'settings_smtpLazySSL_desc' => '',
'settings_smtpPassword' => 'Пароль сервера SMTP',
'settings_smtpPassword_desc' => 'Пароль сервера SMTP',
'settings_smtpPort' => 'Порт SMTP',
@ -2043,7 +1991,6 @@ URL: [url]',
'sign_out' => 'Вийти',
'sign_out_user' => 'Вихід користувача',
'site_brand' => '',
'skip_default_export_cols' => '',
'sk_SK' => 'Slovak',
'sort_by_date' => '',
'sort_by_expiration_date' => '',
@ -2173,7 +2120,6 @@ URL: [url]',
'status_revision_sleeping' => 'Ревізію призупинено',
'status_revisor_removed' => 'Ревізора видалено зі списку',
'status_unknown' => 'Невідомий',
'storage' => '',
'storage_size' => 'Розмір сховища',
'subfolder_duplicate_name' => '',
'submit_2_fact_auth' => '',

Some files were not shown because too many files have changed in this diff Show More