Merge branch 'seeddms-5.1.x' into master
|
@ -14,7 +14,7 @@ RewriteRule "^doc/.*$" "" [F]
|
|||
|
||||
# Anything below the following dirs will never be rewritten
|
||||
RewriteRule "^pdfviewer/.*$" "-" [L]
|
||||
RewriteRule "^views/bootstrap/images.*$" "-" [L]
|
||||
RewriteRule "^views/.*/images.*$" "-" [L]
|
||||
RewriteRule "^out/images.*$" "-" [L]
|
||||
RewriteRule "^styles/.*$" "-" [L]
|
||||
|
||||
|
|
29
CHANGELOG
|
@ -1,3 +1,32 @@
|
|||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.19
|
||||
--------------------------------------------------------------------------------
|
||||
- add hooks showDocumentAttribute and showDocumentContentAttribute in Search view
|
||||
- fix layout problems of select2 menu, add option for adding an icon to each option
|
||||
- better import of users from csv file
|
||||
- fix various methods in restapi (Closes: #481)
|
||||
- add hooks showDocumentKeywords and showDocumentCategories
|
||||
- sort versions of extension in extension manager propperly
|
||||
- fix output of help text for config vars in extension
|
||||
- configuring a user id in the settings uses a list of existing users
|
||||
- form elements can have a help text
|
||||
- open the right page or tab after a document version has been removed
|
||||
(go to folder page if the whole document was removed, go to previous tab
|
||||
if an old version was removed and there are other older version, otherwise
|
||||
go to current tab)
|
||||
- expiration of document can be set through webdav
|
||||
- prefix each attribute with 'attr_' when read through webdav
|
||||
- actually set owner as notified user, not the logged in user,
|
||||
check if notified user has access on document not the logged in user.
|
||||
- fix getting group for notification when transition has fired (Closes: #483)
|
||||
- move lots of javascript packages into views/bootstrap/vendors and update
|
||||
them with npm and grunt
|
||||
- update to font-awesome 4.7.1
|
||||
- add new attribute types 'document', 'folder', 'user', 'group'
|
||||
- overhaul of folder tree which can now be used more than once on a page
|
||||
- fix search of values in attributes of document content
|
||||
- fulltext search finds only documents for which the logged in user has read access
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.18
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
263
Gruntfile.js
Normal file
|
@ -0,0 +1,263 @@
|
|||
module.exports = function (grunt) {
|
||||
'use strict';
|
||||
|
||||
var bootstrapDir = 'views/bootstrap/vendors',
|
||||
tdkDir = 'views/tdk/vendors',
|
||||
nodeDir = 'node_modules';
|
||||
|
||||
grunt.initConfig({
|
||||
clean: {
|
||||
vendors: [ bootstrapDir ]
|
||||
},
|
||||
copy: {
|
||||
'bootstrap': {
|
||||
files: [{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/jquery/dist/*'
|
||||
],
|
||||
dest: bootstrapDir + '/jquery',
|
||||
flatten: true
|
||||
}, {
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/chartjs/chart.js',
|
||||
nodeDir + '/chartjs/README.md',
|
||||
nodeDir + '/chartjs/LICENSE'
|
||||
],
|
||||
dest: bootstrapDir + '/chartjs',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/cytoscape/dist/*',
|
||||
nodeDir + '/cytoscape-grid-guide/cytoscape-grid-guide.js'
|
||||
],
|
||||
dest: bootstrapDir + '/cytoscape',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/jqtree/tree.jquery.js',
|
||||
nodeDir + '/jqtree/jqtree.css'
|
||||
],
|
||||
dest: bootstrapDir + '/jqtree',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/noty/js/noty/jquery.noty.js'
|
||||
],
|
||||
dest: bootstrapDir + '/noty',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/noty/js/noty/themes/*'
|
||||
],
|
||||
dest: bootstrapDir + '/noty/themes',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/noty/js/noty/layouts/*'
|
||||
],
|
||||
dest: bootstrapDir + '/noty/layouts',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/select2/dist/js/*'
|
||||
],
|
||||
dest: bootstrapDir + '/select2/js',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/select2/dist/css/*'
|
||||
],
|
||||
dest: bootstrapDir + '/select2/css',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/fine-uploader/jquery.fine-uploader/*'
|
||||
],
|
||||
dest: bootstrapDir + '/fine-uploader',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/jquery-validation/dist/*'
|
||||
],
|
||||
dest: bootstrapDir + '/jquery-validation',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/flot/source/jquery.canvaswrapper.js',
|
||||
nodeDir + '/flot/source/jquery.colorhelpers.js',
|
||||
nodeDir + '/flot/source/jquery.flot.*'
|
||||
],
|
||||
dest: bootstrapDir + '/flot',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/font-awesome/fonts/*'
|
||||
],
|
||||
dest: bootstrapDir + '/font-awesome/fonts',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/font-awesome/css/*'
|
||||
],
|
||||
dest: bootstrapDir + '/font-awesome/css',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/fullcalendar/LICENSE.txt',
|
||||
nodeDir + '/fullcalendar/dist/*'
|
||||
],
|
||||
dest: bootstrapDir + '/fullcalendar',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/fullcalendar/dist/locale/*'
|
||||
],
|
||||
dest: bootstrapDir + '/fullcalendar/locale',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/moment/LICENSE.txt',
|
||||
nodeDir + '/moment/min/*'
|
||||
],
|
||||
dest: bootstrapDir + '/moment',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/moment/dist/locale/*'
|
||||
],
|
||||
dest: bootstrapDir + '/moment/locale',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/perfect-scrollbar/dist/*'
|
||||
],
|
||||
dest: bootstrapDir + '/perfect-scrollbar',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/bootstrap-datepicker/dist/js/*'
|
||||
],
|
||||
dest: bootstrapDir + '/bootstrap-datepicker/js',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/bootstrap-datepicker/dist/css/*'
|
||||
],
|
||||
dest: bootstrapDir + '/bootstrap-datepicker/css',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/bootstrap-datepicker/dist/locales/*'
|
||||
],
|
||||
dest: bootstrapDir + '/bootstrap-datepicker/locales',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/@coreui/coreui/dist/js/*'
|
||||
],
|
||||
dest: bootstrapDir + '/coreui/js',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/@coreui/coreui/dist/css/*'
|
||||
],
|
||||
dest: bootstrapDir + '/coreui/css',
|
||||
flatten: true
|
||||
}]
|
||||
},
|
||||
'coreui': {
|
||||
files: [{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/@coreui/coreui/dist/js/*'
|
||||
],
|
||||
dest: tdkDir + '/coreui/js',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/@coreui/coreui/dist/css/*'
|
||||
],
|
||||
dest: tdkDir + '/coreui/css',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/perfect-scrollbar/dist/*'
|
||||
],
|
||||
dest: tdkDir + '/perfect-scrollbar',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/bootstrap/dist/js/*'
|
||||
],
|
||||
dest: tdkDir + '/bootstrap/js',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/bootstrap/dist/css/*'
|
||||
],
|
||||
dest: tdkDir + '/bootstrap/css',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/font-awesome/fonts/*'
|
||||
],
|
||||
dest: tdkDir + '/font-awesome/fonts',
|
||||
flatten: true
|
||||
},{
|
||||
expand: true,
|
||||
src: [
|
||||
nodeDir + '/font-awesome/css/*'
|
||||
],
|
||||
dest: tdkDir + '/font-awesome/css',
|
||||
flatten: true
|
||||
}]
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('createVendorDir', 'Creates the necessary vendor directory', function() {
|
||||
// Create the bootstrapDir when it doesn't exists.
|
||||
if (!grunt.file.isDir(bootstrapDir)) {
|
||||
grunt.file.mkdir(bootstrapDir);
|
||||
|
||||
// Output a success message
|
||||
grunt.log.oklns(grunt.template.process(
|
||||
'Directory "<%= directory %>" was created successfully.',
|
||||
{ data: { directory: bootstrapDir } }
|
||||
));
|
||||
}
|
||||
});
|
||||
|
||||
grunt.registerTask('default', [ 'clean', 'createVendorDir', 'copy' ]);
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
};
|
2
Makefile
|
@ -2,7 +2,7 @@ VERSION=$(shell php -r 'include("inc/inc.Version.php"); $$v=new SeedDMS_Version(
|
|||
SRC=CHANGELOG inc conf utils index.php .htaccess languages views op out controllers doc styles TODO LICENSE webdav install restapi pdfviewer
|
||||
# webapp
|
||||
|
||||
NODISTFILES=utils/importmail.php utils/seedddms-importmail utils/remote-email-upload utils/remote-upload utils/da-bv-reminder.php utils/seeddms-da-bv-reminder .svn .gitignore styles/blue styles/hc styles/clean views/blue views/hc views/clean views/pca
|
||||
NODISTFILES=utils/importmail.php utils/seedddms-importmail utils/remote-email-upload utils/remote-upload utils/da-bv-reminder.php utils/seeddms-da-bv-reminder .svn .gitignore styles/blue styles/hc styles/clean views/blue views/hc views/clean views/pca views/tdk
|
||||
|
||||
EXTENSIONS := \
|
||||
dynamic_content.tar.gz\
|
||||
|
|
|
@ -130,7 +130,8 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
|||
* the value set and later turned into a multi value attribute.
|
||||
*/
|
||||
$sep = substr($this->_value, 0, 1);
|
||||
$vsep = $this->_attrdef->getValueSetSeparator();
|
||||
if(!($vsep = $this->_attrdef->getValueSetSeparator()))
|
||||
$vsep = $sep;
|
||||
if($sep == $vsep)
|
||||
return(explode($sep, substr($this->_value, 1)));
|
||||
else
|
||||
|
@ -156,38 +157,55 @@ class SeedDMS_Core_Attribute { /* {{{ */
|
|||
$db = $this->_dms->getDB();
|
||||
|
||||
if($this->_attrdef->getMultipleValues()) {
|
||||
$valuesetstr = $this->_attrdef->getValueSet();
|
||||
/* Multiple values without a value set is not allowed */
|
||||
if(!$valuesetstr = $this->_attrdef->getValueSet())
|
||||
/* No need to have valueset anymore. If none is given, the values are
|
||||
* expected to be separated by ','
|
||||
if(!$valuesetstr)
|
||||
return false;
|
||||
*/
|
||||
$valueset = $this->_attrdef->getValueSetAsArray();
|
||||
|
||||
if(is_array($values)) {
|
||||
if($values) {
|
||||
$error = false;
|
||||
foreach($values as $v) {
|
||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||
$vsep = $this->getValueSetSeparator();
|
||||
if($valueset) {
|
||||
$error = false;
|
||||
foreach($values as $v) {
|
||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||
}
|
||||
if($error)
|
||||
return false;
|
||||
$valuesetstr = $this->_attrdef->getValueSet();
|
||||
$value = $vsep.implode($vsep, $values);
|
||||
} else {
|
||||
$value = $vsep.implode($vsep, $values);
|
||||
}
|
||||
if($error)
|
||||
return false;
|
||||
$valuesetstr = $this->_attrdef->getValueSet();
|
||||
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
||||
} else {
|
||||
$value = '';
|
||||
}
|
||||
} else {
|
||||
if($values) {
|
||||
if($valuesetstr[0] != $values[0])
|
||||
$values = explode($valuesetstr[0], $values);
|
||||
else
|
||||
$values = explode($valuesetstr[0], substr($values, 1));
|
||||
|
||||
$error = false;
|
||||
foreach($values as $v) {
|
||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||
if($valuesetstr) {
|
||||
if($valuesetstr[0] != $values[0])
|
||||
$values = explode($valuesetstr[0], $values);
|
||||
else
|
||||
$values = explode($valuesetstr[0], substr($values, 1));
|
||||
} else {
|
||||
$values = explode(',', substr($values, 1));
|
||||
}
|
||||
|
||||
if($valueset) {
|
||||
$error = false;
|
||||
foreach($values as $v) {
|
||||
if(!in_array($v, $valueset)) { $error = true; break; }
|
||||
}
|
||||
if($error)
|
||||
return false;
|
||||
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
||||
} else {
|
||||
$value = ','.implode(',', $values);
|
||||
}
|
||||
if($error)
|
||||
return false;
|
||||
$value = $valuesetstr[0].implode($valuesetstr[0], $values);
|
||||
} else {
|
||||
$value = $values;
|
||||
}
|
||||
|
@ -395,6 +413,15 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
const type_email = '6';
|
||||
const type_date = '7';
|
||||
|
||||
/*
|
||||
* Addtional data types of an attribute representing objects in seeddms
|
||||
*/
|
||||
const type_folder = '101';
|
||||
const type_document = '102';
|
||||
//const type_documentcontent = '103';
|
||||
const type_user = '104';
|
||||
const type_group = '105';
|
||||
|
||||
/*
|
||||
* The object type for which a attribute may be used
|
||||
*/
|
||||
|
@ -623,10 +650,16 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
* @return string separator or an empty string if a value set is not set
|
||||
*/
|
||||
function getValueSetSeparator() { /* {{{ */
|
||||
if(strlen($this->_valueset) > 1)
|
||||
if(strlen($this->_valueset) > 1) {
|
||||
return $this->_valueset[0];
|
||||
else
|
||||
} elseif($this->_multiple) {
|
||||
if($this->_type == SeedDMS_Core_AttributeDefinition::type_user || $this->_type == SeedDMS_Core_AttributeDefinition::type_group)
|
||||
return ',';
|
||||
else
|
||||
return '';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
@ -774,12 +807,52 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
$sep = substr($value, 0, 1);
|
||||
$vsep = $this->getValueSetSeparator();
|
||||
if($sep == $vsep)
|
||||
return(explode($sep, substr($value, 1)));
|
||||
$values = explode($sep, substr($value, 1));
|
||||
else
|
||||
return(array($value));
|
||||
$values = array($value);
|
||||
} else {
|
||||
return array($value);
|
||||
$values = array($value);
|
||||
}
|
||||
|
||||
switch((string) $this->getType()) {
|
||||
case self::type_document:
|
||||
foreach($values as $value) {
|
||||
if($u = $this->_dms->getDocument((int) $value))
|
||||
$tmp[] = $u->getName();
|
||||
else
|
||||
$tmp[] = '???';
|
||||
}
|
||||
$values = $tmp;
|
||||
break;
|
||||
case self::type_folder:
|
||||
foreach($values as $value) {
|
||||
if($u = $this->_dms->getFolder((int) $value))
|
||||
$tmp[] = $u->getName();
|
||||
else
|
||||
$tmp[] = '???';
|
||||
}
|
||||
$values = $tmp;
|
||||
break;
|
||||
case self::type_user:
|
||||
foreach($values as $value) {
|
||||
if($u = $this->_dms->getUser((int) $value))
|
||||
$tmp[] = $u->getLogin();
|
||||
else
|
||||
$tmp[] = '???';
|
||||
}
|
||||
$values = $tmp;
|
||||
break;
|
||||
case self::type_group:
|
||||
foreach($values as $value) {
|
||||
if($u = $this->_dms->getGroup((int) $value))
|
||||
$tmp[] = $u->getName();
|
||||
else
|
||||
$tmp[] = '???';
|
||||
}
|
||||
$values = $tmp;
|
||||
break;
|
||||
}
|
||||
return $values;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
@ -1058,6 +1131,12 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
}
|
||||
}
|
||||
|
||||
/* Turn $attrvalue into an array of values. Checks if $attrvalue starts
|
||||
* with a separator char as set in the value set and uses it to explode
|
||||
* the $attrvalue. If the separator doesn't match or this attribute
|
||||
* definition doesn't have a value set, then just create a one element
|
||||
* array. if $attrvalue is empty, then create an empty array.
|
||||
*/
|
||||
if($this->getMultipleValues()) {
|
||||
if(is_string($attrvalue)) {
|
||||
$sep = $attrvalue[0];
|
||||
|
@ -1074,11 +1153,13 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
$values = array();
|
||||
}
|
||||
|
||||
/* Check if attribute value has at least the minimum number of values */
|
||||
$this->_validation_error = 0;
|
||||
if($this->getMinValues() > count($values)) {
|
||||
$this->_validation_error = 1;
|
||||
return false;
|
||||
}
|
||||
/* Check if attribute value has not more than maximum number of values */
|
||||
if($this->getMaxValues() && $this->getMaxValues() < count($values)) {
|
||||
$this->_validation_error = 2;
|
||||
return false;
|
||||
|
@ -1137,6 +1218,42 @@ class SeedDMS_Core_AttributeDefinition { /* {{{ */
|
|||
if(!$success)
|
||||
$this->_validation_error = 4;
|
||||
break;
|
||||
case self::type_document:
|
||||
foreach($values as $value) {
|
||||
$success = true;
|
||||
if(!$this->_dms->getDocument((int) $value))
|
||||
$success = false;
|
||||
}
|
||||
if(!$success)
|
||||
$this->_validation_error = 10;
|
||||
break;
|
||||
case self::type_folder:
|
||||
foreach($values as $value) {
|
||||
$success = true;
|
||||
if(!$this->_dms->getFolder((int) $value))
|
||||
$success = false;
|
||||
}
|
||||
if(!$success)
|
||||
$this->_validation_error = 11;
|
||||
break;
|
||||
case self::type_user:
|
||||
foreach($values as $value) {
|
||||
$success = true;
|
||||
if(!$this->_dms->getUser((int) $value))
|
||||
$success = false;
|
||||
}
|
||||
if(!$success)
|
||||
$this->_validation_error = 12;
|
||||
break;
|
||||
case self::type_group:
|
||||
foreach($values as $value) {
|
||||
$success = true;
|
||||
if(!$this->_dms->getGroup((int) $value))
|
||||
$success = false;
|
||||
}
|
||||
if(!$success)
|
||||
$this->_validation_error = 13;
|
||||
break;
|
||||
}
|
||||
|
||||
if(!$success)
|
||||
|
|
|
@ -396,7 +396,7 @@ class SeedDMS_Core_DMS {
|
|||
$this->lasterror = '';
|
||||
$this->version = '@package_version@';
|
||||
if($this->version[0] == '@')
|
||||
$this->version = '5.1.18';
|
||||
$this->version = '5.1.19';
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
|
@ -748,7 +748,9 @@ class SeedDMS_Core_DMS {
|
|||
* Returns a document by its name
|
||||
*
|
||||
* This function searches a document by its name and restricts the search
|
||||
* to given folder if passed as the second parameter.
|
||||
* to the given folder if passed as the second parameter.
|
||||
* If there are more than one document with that name, then only the first
|
||||
* one will be returned.
|
||||
*
|
||||
* @param string $name
|
||||
* @param object $folder
|
||||
|
@ -1662,30 +1664,33 @@ class SeedDMS_Core_DMS {
|
|||
if ($attributes) {
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
if($attribute) {
|
||||
$lsearchAttributes = [];
|
||||
$attrdef = $this->getAttributeDefinition($attrdefid);
|
||||
if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_document || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_all) {
|
||||
if($valueset = $attrdef->getValueSet()) {
|
||||
if($attrdef->getMultipleValues()) {
|
||||
if(is_string($attribute))
|
||||
$attribute = array($attribute);
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
} else
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value`='".$attribute."' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value`='".$attribute."' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
} else
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
} elseif($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent) {
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentAttributes` WHERE `tblDocumentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentAttributes`.`document` = `tblDocuments`.`id`)";
|
||||
}
|
||||
if($attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_documentcontent || $attrdef->getObjType() == SeedDMS_Core_AttributeDefinition::objtype_all) {
|
||||
if($attrdef->getValueSet()) {
|
||||
if($attrdef->getMultipleValues()) {
|
||||
/** @noinspection PhpUndefinedVariableInspection */
|
||||
if(is_string($attribute))
|
||||
$attribute = array($attribute);
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentContentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentContentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentContentAttributes`.`document` = `tblDocumentContent`.`id`)";
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND (`tblDocumentContentAttributes`.`value` like '%".$valueset[0].implode("%' OR `tblDocumentContentAttributes`.`value` like '%".$valueset[0], $attribute)."%') AND `tblDocumentContentAttributes`.`content` = `tblDocumentContent`.`id`)";
|
||||
} else {
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value`='".$attribute."' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)";
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value`='".$attribute."' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)";
|
||||
}
|
||||
} else
|
||||
$searchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)";
|
||||
$lsearchAttributes[] = "EXISTS (SELECT NULL FROM `tblDocumentContentAttributes` WHERE `tblDocumentContentAttributes`.`attrdef`=".$attrdefid." AND `tblDocumentContentAttributes`.`value` like '%".$attribute."%' AND `tblDocumentContentAttributes`.content = `tblDocumentContent`.id)";
|
||||
}
|
||||
$searchAttributes[] = "(".implode(" OR ", $lsearchAttributes).")";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -602,6 +602,19 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
|||
return $this->_folder;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Set folder of a document
|
||||
*
|
||||
* This function basically moves a document from a folder to another
|
||||
* folder.
|
||||
*
|
||||
* @param SeedDMS_Core_Folder $newFolder
|
||||
* @return boolean false in case of an error, otherwise true
|
||||
*/
|
||||
function setParent($newFolder) { /* {{{ */
|
||||
return $this->setFolder($newFolder);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Set folder of a document
|
||||
*
|
||||
|
@ -1732,6 +1745,10 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
|||
foreach ($resArr as $row) {
|
||||
/** @var SeedDMS_Core_DocumentContent $content */
|
||||
$content = new $classname($row["id"], $this, $row["version"], $row["comment"], $row["date"], $row["createdBy"], $row["dir"], $row["orgFileName"], $row["fileType"], $row["mimeType"], $row['fileSize'], $row['checksum']);
|
||||
/* TODO: Better use content id as key in $this->_content. This
|
||||
* would allow to remove a single content object in removeContent().
|
||||
* Currently removeContent() must clear $this->_content completely
|
||||
*/
|
||||
if($user) {
|
||||
if($content->getAccessMode($user) >= M_READ)
|
||||
array_push($this->_content, $content);
|
||||
|
@ -1789,6 +1806,17 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
|||
}
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Check if a given version is the latest version of the document
|
||||
*
|
||||
* @param integer $version version number of content element
|
||||
* @return SeedDMS_Core_DocumentContent|boolean object of class {@link SeedDMS_Core_DocumentContent}
|
||||
* or false
|
||||
*/
|
||||
function isLatestContent($version) { /* {{{ */
|
||||
return $this->getLatestContent()->getVersion() == $version;
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* @return bool|null|SeedDMS_Core_DocumentContent
|
||||
*/
|
||||
|
@ -2005,6 +2033,13 @@ class SeedDMS_Core_Document extends SeedDMS_Core_Object { /* {{{ */
|
|||
return false;
|
||||
}
|
||||
|
||||
/* Invalidate the content list and the latest content of this document,
|
||||
* otherwise getContent() and getLatestContent()
|
||||
* will still return the content just deleted.
|
||||
*/
|
||||
$this->_latestContent = null;
|
||||
$this->_content = null;
|
||||
|
||||
/* Check if 'onPostRemoveDocument' callback is set */
|
||||
if(isset($this->_dms->callbacks['onPostRemoveContent'])) {
|
||||
foreach($this->_dms->callbacks['onPostRemoveContent'] as $callback) {
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<?php
|
||||
namespace SeedDMS;
|
||||
|
||||
/**
|
||||
* Implementation of the document iterartor
|
||||
*
|
||||
|
@ -11,7 +13,7 @@
|
|||
* @version Release: @package_version@
|
||||
*/
|
||||
|
||||
class DocumentIterator implements Iterator {
|
||||
class DocumentIterator implements \Iterator {
|
||||
/**
|
||||
* @var object folder
|
||||
*/
|
||||
|
@ -88,7 +90,7 @@ class DocumentIterator implements Iterator {
|
|||
} /* }}} */
|
||||
}
|
||||
|
||||
class FolderIterator implements Iterator { /* {{{ */
|
||||
class FolderIterator implements \Iterator { /* {{{ */
|
||||
/**
|
||||
* @var object folder
|
||||
*/
|
||||
|
@ -177,7 +179,7 @@ class FolderIterator implements Iterator { /* {{{ */
|
|||
echo $ff->getName()."<br />";
|
||||
}
|
||||
*/
|
||||
class FolderFilterIterator extends FilterIterator { /* {{{ */
|
||||
class FolderFilterIterator extends \FilterIterator { /* {{{ */
|
||||
public function __construct(Iterator $iterator , $filter ) {
|
||||
parent::__construct($iterator);
|
||||
$this->userFilter = $filter;
|
||||
|
@ -196,7 +198,7 @@ class FolderFilterIterator extends FilterIterator { /* {{{ */
|
|||
echo $ff->getID().': '.$ff->getName()."<br />";
|
||||
}
|
||||
*/
|
||||
class RecursiveFolderIterator extends FolderIterator implements RecursiveIterator { /* {{{ */
|
||||
class RecursiveFolderIterator extends FolderIterator implements \RecursiveIterator { /* {{{ */
|
||||
|
||||
public function hasChildren() { /* {{{ */
|
||||
$db = $this->_dms->getDB();
|
||||
|
|
|
@ -238,7 +238,10 @@ class SeedDMS_Core_Object { /* {{{ */
|
|||
break;
|
||||
}
|
||||
if($attrdef->getMultipleValues() && is_array($value)) {
|
||||
$sep = substr($attrdef->getValueSet(), 0, 1);
|
||||
if(in_array($attrdef->getType(), array(SeedDMS_Core_AttributeDefinition::type_user, SeedDMS_Core_AttributeDefinition::type_group)))
|
||||
$sep = ',';
|
||||
else
|
||||
$sep = substr($attrdef->getValueSet(), 0, 1);
|
||||
$value = $sep.implode($sep, $value);
|
||||
}
|
||||
if(!isset($this->_attributes[$attrdef->getId()])) {
|
||||
|
|
|
@ -12,11 +12,11 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2020-05-28</date>
|
||||
<date>2020-07-28</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>5.1.18</release>
|
||||
<api>5.1.18</api>
|
||||
<release>5.1.19</release>
|
||||
<api>5.1.19</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
|
@ -24,9 +24,11 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- fixed remaining todos
|
||||
- fixed parsing of file size in SeedDMS_Core_File::parse_filesize()
|
||||
- fix SeedDMS_Core_DMS::getDocumentByOriginalFilename()
|
||||
- add method SeedDMS_Core_Document::setParent() as an alias for setFolder()
|
||||
- clear the save content list and latest content in SeedDMS_Core_Document after
|
||||
a version has been deleted.
|
||||
- new method SeedDMS_Core_Document::isLatestVersion()
|
||||
- add new attribute types 'document', 'folder', 'user', 'group'
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
@ -1783,5 +1785,23 @@ add method SeedDMS_Core_DatabaseAccess::setLogFp()
|
|||
- add parameters $orderdir, $orderby, $update to SeedDMS_Core::getExpiredDocuments()
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2020-05-28</date>
|
||||
<time>09:43:12</time>
|
||||
<version>
|
||||
<release>5.1.18</release>
|
||||
<api>5.1.18</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
- fixed remaining todos
|
||||
- fixed parsing of file size in SeedDMS_Core_File::parse_filesize()
|
||||
- fix SeedDMS_Core_DMS::getDocumentByOriginalFilename()
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
|
|
@ -138,6 +138,18 @@ class SeedDMS_Lucene_IndexedDocument extends Zend_Search_Lucene_Document {
|
|||
}
|
||||
$this->addField(Zend_Search_Lucene_Field::Text('category', implode(' ', $names), 'utf-8'));
|
||||
}
|
||||
if($acllist = $document->getReadAccessList(1, 1, 1)) {
|
||||
$allu = [];
|
||||
foreach($acllist['users'] as $u)
|
||||
$allu[] = $u->getLogin();
|
||||
$this->addField(Zend_Search_Lucene_Field::Text('users', implode(' ', $allu), 'utf-8'));
|
||||
/*
|
||||
$allg = [];
|
||||
foreach($acllist['groups'] as $g)
|
||||
$allg[] = $g->getName();
|
||||
$this->addField(Zend_Search_Lucene_Field::Text('groups', implode(' ', $allg), 'utf-8'));
|
||||
*/
|
||||
}
|
||||
if($attributes = $document->getAttributes()) {
|
||||
foreach($attributes as $attribute) {
|
||||
$attrdef = $attribute->getAttributeDefinition();
|
||||
|
|
|
@ -59,7 +59,7 @@ class SeedDMS_Lucene_Search {
|
|||
* @param object $index lucene index
|
||||
* @return object instance of SeedDMS_Lucene_Search
|
||||
*/
|
||||
function search($term, $owner, $status='', $categories=array(), $fields=array()) { /* {{{ */
|
||||
function search($term, $owner, $status='', $categories=array(), $fields=array(), $users=array()) { /* {{{ */
|
||||
$querystr = '';
|
||||
if($fields) {
|
||||
} else {
|
||||
|
@ -78,6 +78,13 @@ class SeedDMS_Lucene_Search {
|
|||
$querystr .= implode('" || category:"', $categories);
|
||||
$querystr .= '")';
|
||||
}
|
||||
if($users) {
|
||||
if($querystr)
|
||||
$querystr .= ' && ';
|
||||
$querystr .= '(users:"';
|
||||
$querystr .= implode('" || users:"', $users);
|
||||
$querystr .= '")';
|
||||
}
|
||||
try {
|
||||
$query = Zend_Search_Lucene_Search_QueryParser::parse($querystr);
|
||||
try {
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2018-04-11</date>
|
||||
<time>10:58:13</time>
|
||||
<date>2020-09-02</date>
|
||||
<time>08:55:43</time>
|
||||
<version>
|
||||
<release>1.1.13</release>
|
||||
<api>1.1.13</api>
|
||||
<release>1.1.14</release>
|
||||
<api>1.1.14</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
|
@ -23,7 +23,7 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
IndexedDocument() remembers cmd and mimetype
|
||||
Index users with at least read access on the document
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
@ -299,5 +299,21 @@ allow conversion commands for mimetypes with wildcards
|
|||
execWithTimeout() reads data from stderr and saves it into error msg
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2018-04-11</date>
|
||||
<time>10:58:13</time>
|
||||
<version>
|
||||
<release>1.1.13</release>
|
||||
<api>1.1.13</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
IndexedDocument() remembers cmd and mimetype
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
|
|
@ -150,6 +150,18 @@ class SeedDMS_SQLiteFTS_IndexedDocument extends SeedDMS_SQLiteFTS_Document {
|
|||
if($comment = $document->getComment()) {
|
||||
$this->addField('comment', $comment);
|
||||
}
|
||||
if($acllist = $document->getReadAccessList(1, 1, 1)) {
|
||||
$allu = [];
|
||||
foreach($acllist['users'] as $u)
|
||||
$allu[] = $u->getLogin();
|
||||
$this->addField('users', implode(' ', $allu));
|
||||
/*
|
||||
$allg = [];
|
||||
foreach($acllist['groups'] as $g)
|
||||
$allg[] = $g->getName();
|
||||
$this->addField('groups', implode(' ', $allg));
|
||||
*/
|
||||
}
|
||||
if($version && !$nocontent) {
|
||||
$path = $dms->contentDir . $version->getPath();
|
||||
if(file_exists($path)) {
|
||||
|
|
|
@ -63,9 +63,9 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
*/
|
||||
$version = SQLite3::version();
|
||||
if($version['versionNumber'] >= 3008000)
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, notindexed=created, matchinfo=fts3)';
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, notindexed=created, matchinfo=fts3)';
|
||||
else
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, matchinfo=fts3)';
|
||||
$sql = 'CREATE VIRTUAL TABLE docs USING fts4(title, comment, keywords, category, mimetype, origfilename, owner, content, created, users, matchinfo=fts3)';
|
||||
$res = $index->_conn->exec($sql);
|
||||
if($res === false) {
|
||||
return null;
|
||||
|
@ -96,7 +96,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if(!$this->_conn)
|
||||
return false;
|
||||
|
||||
$sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, origfilename, created) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('origfilename')).", ".$doc->getFieldValue('created')/*time()*/.")";
|
||||
$sql = "INSERT INTO docs (docid, title, comment, keywords, category, owner, content, mimetype, origfilename, created, users) VALUES(".$doc->getFieldValue('document_id').", ".$this->_conn->quote($doc->getFieldValue('title')).", ".$this->_conn->quote($doc->getFieldValue('comment')).", ".$this->_conn->quote($doc->getFieldValue('keywords')).", ".$this->_conn->quote($doc->getFieldValue('category')).", ".$this->_conn->quote($doc->getFieldValue('owner')).", ".$this->_conn->quote($doc->getFieldValue('content')).", ".$this->_conn->quote($doc->getFieldValue('mimetype')).", ".$this->_conn->quote($doc->getFieldValue('origfilename')).", ".$doc->getFieldValue('created').", ".$this->_conn->quote($doc->getFieldValue('users'))/*time()*/.")";
|
||||
$res = $this->_conn->exec($sql);
|
||||
if($res === false) {
|
||||
return false;
|
||||
|
@ -189,7 +189,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
if(!$this->_conn)
|
||||
return false;
|
||||
|
||||
$sql = "SELECT title, comment, owner, keywords, category, mimetype, origfilename, created FROM docs WHERE docid=".(int) $id;
|
||||
$sql = "SELECT title, comment, owner, keywords, category, mimetype, origfilename, created, users FROM docs WHERE docid=".(int) $id;
|
||||
$res = $this->_conn->query($sql);
|
||||
$doc = false;
|
||||
if($res) {
|
||||
|
@ -203,6 +203,7 @@ class SeedDMS_SQLiteFTS_Indexer {
|
|||
$doc->addField('origfilename', $rec['origfilename']);
|
||||
$doc->addField('owner', $rec['owner']);
|
||||
$doc->addField('created', $rec['created']);
|
||||
$doc->addField('users', $rec['users']);
|
||||
}
|
||||
return $doc;
|
||||
} /* }}} */
|
||||
|
|
|
@ -59,7 +59,7 @@ class SeedDMS_SQliteFTS_Search {
|
|||
* @param object $index SQlite FTS index
|
||||
* @return object instance of SeedDMS_Lucene_Search
|
||||
*/
|
||||
function search($term, $owner, $status='', $categories=array(), $fields=array()) { /* {{{ */
|
||||
function search($term, $owner, $status='', $categories=array(), $fields=array(), $users=array()) { /* {{{ */
|
||||
$querystr = '';
|
||||
if($fields) {
|
||||
} else {
|
||||
|
@ -81,6 +81,14 @@ class SeedDMS_SQliteFTS_Search {
|
|||
$querystr .= implode(' OR category:', $categories);
|
||||
$querystr .= '';
|
||||
}
|
||||
if($users) {
|
||||
if($querystr)
|
||||
$querystr .= ' ';
|
||||
//$querystr .= ' AND ';
|
||||
$querystr .= 'users:';
|
||||
$querystr .= implode(' OR users:', $users);
|
||||
$querystr .= '';
|
||||
}
|
||||
try {
|
||||
$hits = $this->index->find($querystr);
|
||||
$recs = array();
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
<email>uwe@steinmann.cx</email>
|
||||
<active>yes</active>
|
||||
</lead>
|
||||
<date>2019-11-28</date>
|
||||
<time>11:00:40</time>
|
||||
<date>2020-09-02</date>
|
||||
<time>08:57:44</time>
|
||||
<version>
|
||||
<release>1.0.11</release>
|
||||
<api>1.0.11</api>
|
||||
<release>1.0.12</release>
|
||||
<api>1.0.12</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
|
@ -23,8 +23,7 @@
|
|||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
Set 'created' in index to creation date of indexed content (was set to current
|
||||
timestamp)
|
||||
Index users with at least read access on a document
|
||||
</notes>
|
||||
<contents>
|
||||
<dir baseinstalldir="SeedDMS" name="/">
|
||||
|
@ -243,5 +242,22 @@ execWithTimeout() reads data from stderr and saves it into error msg
|
|||
IndexedDocument() remembers cmd and mimetype
|
||||
</notes>
|
||||
</release>
|
||||
<release>
|
||||
<date>2019-11-28</date>
|
||||
<time>11:00:40</time>
|
||||
<version>
|
||||
<release>1.0.11</release>
|
||||
<api>1.0.11</api>
|
||||
</version>
|
||||
<stability>
|
||||
<release>stable</release>
|
||||
<api>stable</api>
|
||||
</stability>
|
||||
<license uri="http://opensource.org/licenses/gpl-license">GPL License</license>
|
||||
<notes>
|
||||
Set 'created' in index to creation date of indexed content (was set to current
|
||||
timestamp)
|
||||
</notes>
|
||||
</release>
|
||||
</changelog>
|
||||
</package>
|
||||
|
|
|
@ -123,11 +123,11 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
|
|||
|
||||
/* Add a default notification for the owner of the document */
|
||||
if($settings->_enableOwnerNotification) {
|
||||
$res = $document->addNotify($user->getID(), true);
|
||||
$res = $document->addNotify($owner->getID(), true);
|
||||
}
|
||||
/* Check if additional notification shall be added */
|
||||
foreach($notificationusers as $notuser) {
|
||||
if($document->getAccessMode($user) >= M_READ)
|
||||
if($document->getAccessMode($notuser) >= M_READ)
|
||||
$res = $document->addNotify($notuser->getID(), true);
|
||||
}
|
||||
foreach($notificationgroups as $notgroup) {
|
||||
|
|
51
controllers/class.ClearCache.php
Normal file
|
@ -0,0 +1,51 @@
|
|||
<?php
|
||||
/**
|
||||
* Implementation of ClearCache 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 clearing the cache
|
||||
*
|
||||
* @category DMS
|
||||
* @package SeedDMS
|
||||
* @author Uwe Steinmann <uwe@steinmann.cx>
|
||||
* @copyright Copyright (C) 2010-2013 Uwe Steinmann
|
||||
* @version Release: @package_version@
|
||||
*/
|
||||
class SeedDMS_Controller_ClearCache extends SeedDMS_Controller_Common {
|
||||
|
||||
public function run() {
|
||||
$dms = $this->params['dms'];
|
||||
$user = $this->params['user'];
|
||||
$settings = $this->params['settings'];
|
||||
$post = $this->params['post'];
|
||||
|
||||
$ret = '';
|
||||
if(!empty($post['preview'])) {
|
||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/[1-9]*';
|
||||
system($cmd, $ret);
|
||||
}
|
||||
|
||||
if(!empty($post['js'])) {
|
||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/js/*';
|
||||
system($cmd, $ret);
|
||||
}
|
||||
|
||||
if(false === $this->callHook('clear', $post)) {
|
||||
if(empty($this->errormsg))
|
||||
$this->errormsg = 'hook_clear_failed';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -57,10 +57,12 @@ class SeedDMS_Controller_ExtensionMgr extends SeedDMS_Controller_Common {
|
|||
$extmgr = $this->params['extmgr'];
|
||||
$file = $this->params['file'];
|
||||
|
||||
if($extmgr->updateExtension($file))
|
||||
if($extmgr->updateExtension($file)) {
|
||||
$extmgr->createExtensionConf();
|
||||
else
|
||||
} else {
|
||||
$this->setErrorMsg($extmgr->getErrorMsg());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
|
|||
$settings = $this->params['settings'];
|
||||
$session = $this->params['session'];
|
||||
$sesstheme = $this->params['sesstheme'];
|
||||
$referuri = $this->params['referuri'];
|
||||
$lang = $this->params['lang'];
|
||||
$login = $this->params['login'];
|
||||
$pwd = $this->params['pwd'];
|
||||
|
@ -199,8 +200,8 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
|
|||
$dms_session = $_COOKIE["mydms_session"];
|
||||
if(!$resArr = $session->load($dms_session)) {
|
||||
/* Turn off http only cookies if jumploader is enabled */
|
||||
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot, null, null, !$settings->_enableLargeFileUpload); //delete cookie
|
||||
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$refer);
|
||||
setcookie("mydms_session", $dms_session, time()-3600, $settings->_httpRoot, null, false, true); //delete cookie
|
||||
header("Location: " . $settings->_httpRoot . "out/out.Login.php?referuri=".$referuri);
|
||||
exit;
|
||||
} else {
|
||||
$session->updateAccess($dms_session);
|
||||
|
@ -218,7 +219,7 @@ class SeedDMS_Controller_Login extends SeedDMS_Controller_Common {
|
|||
$lifetime = time() + intval($settings->_cookieLifetime);
|
||||
else
|
||||
$lifetime = 0;
|
||||
setcookie("mydms_session", $id, $lifetime, $settings->_httpRoot, null, null, !$settings->_enableLargeFileUpload);
|
||||
setcookie("mydms_session", $id, $lifetime, $settings->_httpRoot, null, false, true);
|
||||
}
|
||||
|
||||
if($this->callHook('postLogin', $user)) {
|
||||
|
|
|
@ -33,12 +33,12 @@ class SeedDMS_Controller_UserListCsv extends SeedDMS_Controller_Common {
|
|||
$m = max($m, count($u->getGroups()));
|
||||
}
|
||||
$fp = fopen("php://temp/maxmemory", 'r+');
|
||||
$header = array('login', 'name', 'email', 'comment', 'role', 'quota', 'homefolder');
|
||||
$header = array('login', 'passenc', 'name', 'email', 'comment', 'role', 'quota', 'homefolder', 'hidden', 'disabled');
|
||||
for($i=1; $i<=$m; $i++)
|
||||
$header[] = 'group_'.$i;
|
||||
fputcsv($fp, $header, ';');
|
||||
foreach($allUsers as $u) {
|
||||
$data = array($u->getLogin(), $u->getFullName(), $u->getEmail(), $u->getComment(), $u->isAdmin() ? 'admin' : ($u->isGuest() ? 'guest' : 'user'), $u->getQuota(), $u->getHomeFolder() ? $u->getHomeFolder() : '');
|
||||
$data = array($u->getLogin(), $u->getPwd(), $u->getFullName(), $u->getEmail(), $u->getComment(), $u->isAdmin() ? 'admin' : ($u->isGuest() ? 'guest' : 'user'), $u->getQuota(), $u->getHomeFolder() ? $u->getHomeFolder() : '', $u->isHidden() ? '1' : 0, $u->isDisabled() ? '1' : '0');
|
||||
foreach($u->getGroups() as $g)
|
||||
$data[] = $g->getName();
|
||||
fputcsv($fp, $data, ';');
|
||||
|
|
|
@ -54,7 +54,7 @@ Do not set the DocumentRoot or Alias to
|
|||
the `seeddms51x` directory, because this will allow anybody to access
|
||||
your `data` and `conf` directory. This is a major security risk.
|
||||
|
||||
Make sure that the subdіrectory `seeddms51x/data` and the configuration file
|
||||
Make sure that the subdirectory `seeddms51x/data` and the configuration file
|
||||
`seeddms51/conf/settings.xml` is writeable by your web server. All other
|
||||
directories must just be readable by your web server.
|
||||
|
||||
|
@ -120,6 +120,13 @@ As a hoster you may not want this configuration options being set by a SeedDMS
|
|||
administrator. For now you need to make the configuration file `settings.xml`
|
||||
unwritable for the web server.
|
||||
|
||||
Setting a new encryption key
|
||||
------------------------------
|
||||
Though this is not related to setting up the web server environment, it is
|
||||
important to recreated the encryption key in SeedDMS once SeedDMS is running.
|
||||
Just open the settings in the admin tools and empty the currently set
|
||||
encryption key on the tab 'System'. Save the settings and check the key again.
|
||||
It should be new one. Save the settings again
|
||||
|
||||
UPDATING FROM A PREVIOUS VERSION OR SEEDDMS
|
||||
=============================================
|
||||
|
|
|
@ -53,7 +53,7 @@ and possibly add your login data to /etc/davfs2/secrets
|
|||
Making applications work with WebDAV
|
||||
=====================================
|
||||
|
||||
Various programms have differnt strategies to save files to disk and
|
||||
Various programms have differnt strategies to save files to disc and
|
||||
prevent data lost under all circumstances. Those strategies often don't
|
||||
work very well an a WebDAV-Server. The following will list some of those
|
||||
strategies.
|
||||
|
@ -91,3 +91,39 @@ set noswapfile
|
|||
Creating the backup file in a directory outside of WebDAV doesn't help in
|
||||
this case, because it still does the file renaming which is turned of by
|
||||
'nowritebackup'.
|
||||
|
||||
cdaver
|
||||
========
|
||||
|
||||
cadaver is a webdav client similar to classical command line based ftp clients.
|
||||
It can be used to browse through the folders, downloads and uploads files, and
|
||||
also for removing and moving folders and documents (called resources in webdav terminilogy).
|
||||
It's also capable of setting and getting properties of folders and documents.
|
||||
If webdav access isn't working, this client is probably the best for testing.
|
||||
|
||||
Just run
|
||||
|
||||
cadaver https://<your-domain>/<your-basedir>/webdav/index.php
|
||||
|
||||
It will ask for the user name and password. Once you are logged in just
|
||||
type `help` for a list of commands.
|
||||
|
||||
SeedDMS stores a lot more properties not covered by the webdav standard.
|
||||
Those have its own namespace called 'SeedDMS:'. Just type
|
||||
|
||||
propget <resource>
|
||||
|
||||
with `resource` being either the name of a folder or document. You will
|
||||
get a list of all properties stored for this resource. Setting a property
|
||||
requires to set the namespace first
|
||||
|
||||
set namespace SeedDMS:
|
||||
|
||||
Afterwards, you may set a property, e.g. the comment, with
|
||||
|
||||
propset <resource> comment 'Just a comment'
|
||||
|
||||
or even delete a property
|
||||
|
||||
propdel <resource> comment
|
||||
|
||||
|
|
16
doc/README.npm
Normal file
|
@ -0,0 +1,16 @@
|
|||
Installation of external js packages
|
||||
-------------------------------------
|
||||
|
||||
All javascript was located in styles/bootstrap until SeedDMS 5.1.18 and 6.0.11.
|
||||
Since 5.1.19 and 6.0.12 most of it has moved into the view at views/boostrap/vendors
|
||||
and is no longer placed in git but must be installed by npm and grunt.
|
||||
|
||||
Run
|
||||
|
||||
`npm install`
|
||||
|
||||
and afterwards
|
||||
|
||||
`grunt`
|
||||
|
||||
to download the js packages and copy them into the new location.
|
|
@ -58,7 +58,7 @@ class SeedDMS_DbAuthentication extends SeedDMS_Authentication {
|
|||
// Check if password matches (if not a guest user)
|
||||
// Assume that the password has been sent via HTTP POST. It would be careless
|
||||
// (and dangerous) for passwords to be sent via GET.
|
||||
if (md5($password) != $user->getPwd()) {
|
||||
if (!seed_pass_verify($password, $user->getPwd())) {
|
||||
/* if counting of login failures is turned on, then increment its value */
|
||||
if($settings->_loginFailure) {
|
||||
$failures = $user->addLoginFailure();
|
||||
|
|
|
@ -570,6 +570,7 @@ class SeedDMS_Extension_Mgr {
|
|||
}
|
||||
}
|
||||
}
|
||||
uksort($result, function($a, $b){return SeedDMS_Extension_Mgr::cmpVersion($b, $a);});
|
||||
return $result;
|
||||
} /* }}} */
|
||||
|
||||
|
|
|
@ -348,9 +348,9 @@ function add_log_line($msg="", $priority=null) { /* {{{ */
|
|||
else
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
if($user)
|
||||
$logger->log($user->getLogin()." (".$ip.") ".basename($_SERVER["REQUEST_URI"], ".php").($msg ? ' '.$msg : ''), $priority);
|
||||
$logger->log($user->getLogin()." (".$ip.") ".basename($_SERVER["REQUEST_URI"], ".php").($msg ? $msg : ''), $priority);
|
||||
else
|
||||
$logger->log("-- (".$ip.") ".basename($_SERVER["REQUEST_URI"], ".php").($msg ? ' '.$msg : ''), $priority);
|
||||
$logger->log("-- (".$ip.") ".basename($_SERVER["REQUEST_URI"], ".php").($msg ? $msg : ''), $priority);
|
||||
} /* }}} */
|
||||
|
||||
function _add_log_line($msg="") { /* {{{ */
|
||||
|
@ -598,7 +598,7 @@ function getBaseUrl() { /* {{{ */
|
|||
return "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'];
|
||||
} /* }}} */
|
||||
|
||||
function getToken($length){
|
||||
function getToken($length){ /* {{{ */
|
||||
$token = "";
|
||||
$codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
$codeAlphabet.= "abcdefghijklmnopqrstuvwxyz";
|
||||
|
@ -610,21 +610,53 @@ function getToken($length){
|
|||
}
|
||||
|
||||
return $token;
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
class SeedDMS_CSRF {
|
||||
/**
|
||||
* Hash a password
|
||||
*
|
||||
* @param string $password
|
||||
* @return string hashed password
|
||||
*/
|
||||
function seed_pass_hash($password) { /* {{{ */
|
||||
return md5($password);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Verify a password
|
||||
*
|
||||
* @param string $password
|
||||
* @return string hashed password
|
||||
*/
|
||||
function seed_pass_verify($password, $hash) { /* {{{ */
|
||||
return $hash == md5($password);
|
||||
} /* }}} */
|
||||
|
||||
/**
|
||||
* Class for creating encrypted api keys
|
||||
*
|
||||
* <code>
|
||||
* <?php
|
||||
* $CSRF = new SeedDMS_CSRF($settings->_encryptionKey);
|
||||
* $kkk = $CSRF->create_api_key();
|
||||
* echo $kkk;
|
||||
* echo $CSRF->check_api_key($kkk) ? 'valid' : 'invalid';
|
||||
* ?>
|
||||
* </code>
|
||||
*/
|
||||
class SeedDMS_CSRF { /* {{{ */
|
||||
|
||||
protected $secret;
|
||||
|
||||
public function __construct($secret) {
|
||||
public function __construct($secret) { /* {{{ */
|
||||
$this->secret = $secret;
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function create_api_key() {
|
||||
public function create_api_key() { /* {{{ */
|
||||
return base64_encode($this->encrypt(time().'|'.$_SERVER['REMOTE_ADDR'])); // !change if you dont want IP check
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function check_api_key($key, $timeout = 5) {
|
||||
public function check_api_key($key, $timeout = 5) { /* {{{ */
|
||||
if (empty($key)) exit('Invalid Key');
|
||||
|
||||
$keys = explode('|', $this->decrypt(base64_decode($key)));
|
||||
|
@ -634,9 +666,9 @@ class SeedDMS_CSRF {
|
|||
$keys[0] >= (time() - $timeout) &&
|
||||
$keys[1] == $_SERVER['REMOTE_ADDR'] // !change if you dont want IP check
|
||||
);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function encrypt($string, $key = 'PrivateKey', $method = 'AES-256-CBC') {
|
||||
public function encrypt($string, $key = 'PrivateKey', $method = 'AES-256-CBC') { /* {{{ */
|
||||
// hash
|
||||
$key = hash('sha256', $key);
|
||||
// create iv - encrypt method AES-256-CBC expects 16 bytes
|
||||
|
@ -645,9 +677,9 @@ class SeedDMS_CSRF {
|
|||
$output = openssl_encrypt($string, $method, $key, 0, $iv);
|
||||
// encode
|
||||
return base64_encode($output);
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
public function decrypt($string, $key = 'PrivateKey', $method = 'AES-256-CBC') {
|
||||
public function decrypt($string, $key = 'PrivateKey', $method = 'AES-256-CBC') { /* {{{ */
|
||||
// hash
|
||||
$key = hash('sha256', $key);
|
||||
// create iv - encrypt method AES-256-CBC expects 16 bytes
|
||||
|
@ -656,10 +688,18 @@ class SeedDMS_CSRF {
|
|||
$string = base64_decode($string);
|
||||
// decrypt
|
||||
return openssl_decrypt($string, $method, $key, 0, $iv);
|
||||
}
|
||||
}
|
||||
} /* }}} */
|
||||
} /* }}} */
|
||||
|
||||
//$CSRF = new SeedDMS_CSRF($settings->_encryptionKey);
|
||||
//$kkk = $CSRF->create_api_key();
|
||||
//echo $kkk;
|
||||
//echo $CSRF->check_api_key($kkk) ? 'valid' : 'invalid';
|
||||
class SeedDMS_FolderTree { /* {{{ */
|
||||
|
||||
public function __construct($folder, $callback) { /* {{{ */
|
||||
$iter = new \SeedDMS\RecursiveFolderIterator($folder);
|
||||
$iter2 = new RecursiveIteratorIterator($iter, RecursiveIteratorIterator:: SELF_FIRST);
|
||||
foreach($iter2 as $ff) {
|
||||
call_user_func($callback, $ff);
|
||||
// echo $ff->getID().': '.$ff->getFolderPathPlain().'-'.$ff->getName()."<br />";
|
||||
}
|
||||
} /* }}} */
|
||||
|
||||
} /* }}} */
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
class SeedDMS_Version { /* {{{ */
|
||||
|
||||
const _number = "5.1.18";
|
||||
const _number = "5.1.19";
|
||||
const _string = "SeedDMS";
|
||||
|
||||
function __construct() {
|
||||
|
|
10
index.php
|
@ -55,11 +55,11 @@ if(true) {
|
|||
foreach($GLOBALS['SEEDDMS_HOOKS']['initDMS'] as $hookObj) {
|
||||
if (method_exists($hookObj, 'addRoute')) {
|
||||
$hookObj->addRoute(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings));
|
||||
} else {
|
||||
include("inc/inc.Authentication.php");
|
||||
if (method_exists($hookObj, 'addRouteAfterAuthentication')) {
|
||||
$hookObj->addRouteAfterAuthentication(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'user'=>$user));
|
||||
}
|
||||
// } else {
|
||||
// include("inc/inc.Authentication.php");
|
||||
// if (method_exists($hookObj, 'addRouteAfterAuthentication')) {
|
||||
// $hookObj->addRouteAfterAuthentication(array('dms'=>$dms, 'app'=>$app, 'settings'=>$settings, 'user'=>$user));
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,6 +144,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'ادارة تعريف السمات',
|
||||
'attrdef_maxvalues' => 'اكبر عدد من القيم',
|
||||
'attrdef_minvalues' => 'اقل عدد من القيم',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'الأقل اكبر من الأكبر',
|
||||
'attrdef_multiple' => 'السماح باكثر من قيمة',
|
||||
'attrdef_multiple_needs_valueset' => 'يحتاج أكثر من قيمة',
|
||||
|
@ -152,15 +153,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'لا يوجد اسم',
|
||||
'attrdef_objtype' => 'نوع الورقة',
|
||||
'attrdef_regex' => 'attrdef_regex',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'نوع',
|
||||
'attrdef_type_boolean' => 'boolean',
|
||||
'attrdef_type_date' => 'تاريخ',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'بريد إلكتروني',
|
||||
'attrdef_type_float' => 'رقم مع فواصل',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'رقم صحيح',
|
||||
'attrdef_type_string' => 'نص',
|
||||
'attrdef_type_url' => 'رابط',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'مجموعة القيم',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'السمات',
|
||||
'attribute_changed_email_body' => 'تم تغيير سمة
|
||||
Document: [name]
|
||||
|
@ -361,6 +368,7 @@ Parent folder: [folder_path]
|
|||
المستخدم: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - تم تعديل التعليق',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'تعداد المستندات',
|
||||
'document_deleted' => 'تم مسح المستند',
|
||||
'document_deleted_email' => 'تم مسح المستند',
|
||||
|
@ -539,8 +547,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'سجل التعديلات',
|
||||
'extension_loading' => 'تحميل الإضافات',
|
||||
'extension_manager' => 'إدارة الإضافات',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'تثبيت إدارة الإضافات',
|
||||
'extension_mgr_no_upload' => 'لا يمكن تحميل إضافات جديدة لأن دليل الإضافات غير قابل للكتابة.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'مستودع إدارة الإضافات',
|
||||
'extension_version_list' => 'لائحة الإضافات حسب الإصدار',
|
||||
'february' => 'فبراير',
|
||||
|
@ -648,6 +658,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'اشمل مجلدات فرعية',
|
||||
'indexing_tasks_in_queue' => 'فهرسة المهات بالترتيب',
|
||||
'index_converters' => 'تحويل الفهرسة',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'تمت الفهرسة',
|
||||
'index_error' => 'خطأ في الفهرسة',
|
||||
'index_folder' => 'فهرسة المجلد',
|
||||
|
@ -856,6 +867,7 @@ URL: [url]',
|
|||
'no_action' => 'لايوجد اجراء مطلوب',
|
||||
'no_approval_needed' => 'لايوجد موافقات منتظره',
|
||||
'no_attached_files' => 'لا يوجد مرفقات',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'لا يوجد اصدار جديد',
|
||||
'no_default_keywords' => 'لايوجد كلمات بحثية متاحة',
|
||||
|
@ -1780,6 +1792,7 @@ URL: [url]',
|
|||
'tr_TR' => 'التركية',
|
||||
'tuesday' => 'الثلاثاء',
|
||||
'tuesday_abbr' => 'ث',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'نوع المسار',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'اكتب لتبحث',
|
||||
|
|
|
@ -135,6 +135,7 @@ $text = array(
|
|||
'attrdef_management' => 'Управление дефинирането на атрибути',
|
||||
'attrdef_maxvalues' => 'Max. брой стойности',
|
||||
'attrdef_minvalues' => 'Min. брой стойности',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '',
|
||||
'attrdef_multiple' => 'ПОзволи няколко стойности',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -143,15 +144,21 @@ $text = array(
|
|||
'attrdef_noname' => '',
|
||||
'attrdef_objtype' => 'Тип на обекта',
|
||||
'attrdef_regex' => '',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Тип',
|
||||
'attrdef_type_boolean' => '',
|
||||
'attrdef_type_date' => 'Дата',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '',
|
||||
'attrdef_type_float' => '',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '',
|
||||
'attrdef_type_string' => '',
|
||||
'attrdef_type_url' => '',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Набор стойности',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Атрибути',
|
||||
'attribute_changed_email_body' => '',
|
||||
'attribute_changed_email_subject' => '',
|
||||
|
@ -338,6 +345,7 @@ $text = array(
|
|||
'document_comment_changed_email' => '',
|
||||
'document_comment_changed_email_body' => '',
|
||||
'document_comment_changed_email_subject' => '',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Документът изтрит',
|
||||
'document_deleted_email' => 'Документът изтрит',
|
||||
|
@ -488,8 +496,10 @@ $text = array(
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'управление на добавките',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Февруари',
|
||||
|
@ -577,6 +587,7 @@ $text = array(
|
|||
'include_subdirectories' => 'Включи под-папки',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Индекс на директорията',
|
||||
|
@ -761,6 +772,7 @@ $text = array(
|
|||
'no_action' => 'Действие не е нужно',
|
||||
'no_approval_needed' => 'Утвърждение не е нужно',
|
||||
'no_attached_files' => 'Няма прикрачени файлове',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => '',
|
||||
'no_default_keywords' => 'Няма ключови думи',
|
||||
|
@ -1634,6 +1646,7 @@ $text = array(
|
|||
'tr_TR' => 'Турски',
|
||||
'tuesday' => 'вторник',
|
||||
'tuesday_abbr' => '',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Тип за търсене',
|
||||
|
|
|
@ -140,6 +140,7 @@ URL: [url]',
|
|||
'attrdef_management' => '',
|
||||
'attrdef_maxvalues' => '',
|
||||
'attrdef_minvalues' => '',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '',
|
||||
'attrdef_multiple' => '',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -148,15 +149,21 @@ URL: [url]',
|
|||
'attrdef_noname' => '',
|
||||
'attrdef_objtype' => '',
|
||||
'attrdef_regex' => '',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => '',
|
||||
'attrdef_type_boolean' => '',
|
||||
'attrdef_type_date' => 'Data',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '',
|
||||
'attrdef_type_float' => '',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '',
|
||||
'attrdef_type_string' => '',
|
||||
'attrdef_type_url' => '',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => '',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atributs',
|
||||
'attribute_changed_email_body' => '',
|
||||
'attribute_changed_email_subject' => '',
|
||||
|
@ -343,6 +350,7 @@ URL: [url]',
|
|||
'document_comment_changed_email' => '',
|
||||
'document_comment_changed_email_body' => '',
|
||||
'document_comment_changed_email_subject' => '',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Document eliminat',
|
||||
'document_deleted_email' => 'Document eliminat',
|
||||
|
@ -493,8 +501,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Gestiona les Extensions',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Febrer',
|
||||
|
@ -582,6 +592,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Incloure subdirectoris',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Carpeta d\'índex',
|
||||
|
@ -766,6 +777,7 @@ URL: [url]',
|
|||
'no_action' => 'No és necessària cap acció',
|
||||
'no_approval_needed' => 'No hi ha aprovacions pendents.',
|
||||
'no_attached_files' => 'No hi ha fitxers adjunts',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => '',
|
||||
'no_default_keywords' => 'No hi ha mots clau disponibles',
|
||||
|
@ -1639,6 +1651,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turc',
|
||||
'tuesday' => 'Dimarts',
|
||||
'tuesday_abbr' => '',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Cerca',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Správa definic atributů',
|
||||
'attrdef_maxvalues' => 'Max. počet hodnot',
|
||||
'attrdef_minvalues' => 'Min. počet hodnot',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimální počet hodnot je větší, než maximální počet hodnot',
|
||||
'attrdef_multiple' => 'Povolit více hodnot',
|
||||
'attrdef_multiple_needs_valueset' => 'Definice atributu s více hodnotami potřebuje nastavit hodnoty.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Chybí název definice atributu',
|
||||
'attrdef_objtype' => 'Typ objektu',
|
||||
'attrdef_regex' => 'Regulární výraz',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Typ',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Datum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Integer',
|
||||
'attrdef_type_string' => 'Řetězec',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Soubor hodnot',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atributy',
|
||||
'attribute_changed_email_body' => 'Atributy změněny
|
||||
Dokument: [name]
|
||||
|
@ -380,6 +387,7 @@ Nadřazená složka: [folder_path]
|
|||
Uživatel: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Změna komentáře',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Počet dokumentů',
|
||||
'document_deleted' => 'Dokument odstraněn',
|
||||
'document_deleted_email' => 'Dokument odstraněn',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Changelog',
|
||||
'extension_loading' => 'Načítání rozšíření',
|
||||
'extension_manager' => 'Správa rozšíření',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Instalováno',
|
||||
'extension_mgr_no_upload' => 'Nahrání nového rozšíření není možné, jelikož do složky rozšíření nelze zapisovat.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Dostupný',
|
||||
'extension_version_list' => 'Verze',
|
||||
'february' => 'Únor',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Včetně podadresářů',
|
||||
'indexing_tasks_in_queue' => 'Indexování úkolů ve frontě',
|
||||
'index_converters' => 'Indexování převodníků',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Indexování hotovo',
|
||||
'index_error' => 'Chyba',
|
||||
'index_folder' => 'Složka indexu',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => 'Nic se nevykoná',
|
||||
'no_approval_needed' => 'Nic nečeká na schválení.',
|
||||
'no_attached_files' => 'Žádné přiložené soubory',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Používáte starou verzi SeedDMS. Nejnovější dostupná verze je [latestversion].',
|
||||
'no_default_keywords' => 'Nejsou dostupná žádná klíčová slova.',
|
||||
|
@ -1852,6 +1864,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turečtina',
|
||||
'tuesday' => 'Úterý',
|
||||
'tuesday_abbr' => 'Út',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Typ hooku',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Zadejte hledaný výraz',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (2790), dgrutsch (22)
|
||||
// Translators: Admin (2804), dgrutsch (22)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-Faktor Authentifizierung',
|
||||
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Attributdefinitions-Management',
|
||||
'attrdef_maxvalues' => 'Max. Anzahl Werte',
|
||||
'attrdef_minvalues' => 'Min. Anzahl Werte',
|
||||
'attrdef_minvalues_help' => 'Minimale Anzahl der Werte. Setzen Sie diesen Wert auf 1, wenn ein Attribut gesetzt werden muss.',
|
||||
'attrdef_min_greater_max' => 'Zahl der minimalen Werte ist größer als Zahl der maximalen Werte',
|
||||
'attrdef_multiple' => 'Mehrfachwerte erlaubt',
|
||||
'attrdef_multiple_needs_valueset' => 'Attributdefinition mit Mehrfachwerten erfordert eine Werteliste.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Kein Name für die Attributedefinition eingegeben',
|
||||
'attrdef_objtype' => 'Objekttyp',
|
||||
'attrdef_regex' => 'Regulärer Ausdruck',
|
||||
'attrdef_regex_help' => 'Regulärer Ausdruck, der beim Typ Zeichenkette auf den Wert zutreffen muss.',
|
||||
'attrdef_type' => 'Typ',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Datum',
|
||||
'attrdef_type_document' => 'Dokument',
|
||||
'attrdef_type_email' => 'E-Mail',
|
||||
'attrdef_type_float' => 'Dezimalzahl',
|
||||
'attrdef_type_folder' => 'Ordner',
|
||||
'attrdef_type_group' => 'Gruppe',
|
||||
'attrdef_type_int' => 'Ganzahlig',
|
||||
'attrdef_type_string' => 'Zeichenkette',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => 'Benutzer',
|
||||
'attrdef_valueset' => 'Werteauswahl',
|
||||
'attrdef_valueset_help' => 'Eine Liste von Werten, durch ein beliebiges Zeichen getrennt, welches auch am Anfang dieer Zeichenkette stehen muss, z.B. #ja#nein#vielleicht',
|
||||
'attributes' => 'Attribute',
|
||||
'attribute_changed_email_body' => 'Attribut geändert
|
||||
Dokument: [name]
|
||||
|
@ -380,6 +387,7 @@ Elternordner: [folder_path]
|
|||
Benutzer: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar geändert',
|
||||
'document_content_missing' => 'Datei der Version nicht vorhanden',
|
||||
'document_count' => 'Anzahl der Dokumente',
|
||||
'document_deleted' => 'Dokument gelöscht',
|
||||
'document_deleted_email' => 'Dokument gelöscht',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Versionshistorie',
|
||||
'extension_loading' => 'Lade Erweiterungen ...',
|
||||
'extension_manager' => 'Erweiterungen verwalten',
|
||||
'extension_mgr_error_upload' => 'Beim Hochladen der Extension ist ein Fehler aufgetreten.',
|
||||
'extension_mgr_installed' => 'Installiert',
|
||||
'extension_mgr_no_upload' => 'Der Upload neuer Erweiterungen ist nicht möglich, weil das Verzeichnis für Erweiterungen nicht beschreibbar ist.',
|
||||
'extension_mgr_no_zipfile' => 'Die hochgeladene Erweiterung ist keine Zip-Datei',
|
||||
'extension_mgr_repository' => 'Verfügbar',
|
||||
'extension_version_list' => 'Versionen',
|
||||
'february' => 'Februar',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Unterverzeichnisse miteinbeziehen',
|
||||
'indexing_tasks_in_queue' => 'Indiziervorgänge in der Warteschleife',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => 'Dokument unverändert',
|
||||
'index_done' => 'Fertig',
|
||||
'index_error' => 'Fehler',
|
||||
'index_folder' => 'Indiziere Ordner',
|
||||
|
@ -886,6 +897,7 @@ URL: [url]',
|
|||
'no_action' => 'Keine Aktion erforderlich.',
|
||||
'no_approval_needed' => 'Keine offenen Freigaben.',
|
||||
'no_attached_files' => 'Keine angehängten Dokumente',
|
||||
'no_attribute_definitions' => 'Es wurde bisher keine Attribute definiert',
|
||||
'no_backup_dir' => 'Das Backup-Verzeichnis ist nicht gesetzt',
|
||||
'no_current_version' => 'Sie verwenden eine ältere Version als die zur Zeit verfügbare Version [latestversion].',
|
||||
'no_default_keywords' => 'Keine Vorlagen vorhanden',
|
||||
|
@ -1773,7 +1785,7 @@ Name: [username]
|
|||
'submit_userinfo' => 'Daten setzen',
|
||||
'submit_webauthn_login' => '',
|
||||
'submit_webauthn_register' => '',
|
||||
'subsribe_timelinefeed' => 'Verauf als RSS-Feed abonnieren',
|
||||
'subsribe_timelinefeed' => 'Verlauf als RSS-Feed abonnieren',
|
||||
'substitute_to_user' => 'Wechsel zu \'[username]\'',
|
||||
'substitute_user' => 'Benutzer wechseln',
|
||||
'success_add_aro' => 'Zugriffsobjekt hinzugefügt',
|
||||
|
@ -1863,6 +1875,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Türkisch',
|
||||
'tuesday' => 'Dienstag',
|
||||
'tuesday_abbr' => 'Di',
|
||||
'types_generic' => 'Generische Typen',
|
||||
'type_of_hook' => 'Typ',
|
||||
'type_to_filter' => 'Hier tippen zum Filtern der Liste',
|
||||
'type_to_search' => 'Hier tippen zum Suchen',
|
||||
|
|
|
@ -135,6 +135,7 @@ $text = array(
|
|||
'attrdef_management' => '',
|
||||
'attrdef_maxvalues' => 'Μέγιστος αριθμός τιμών',
|
||||
'attrdef_minvalues' => 'Ελάχιστος αριθμός τιμών',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '',
|
||||
'attrdef_multiple' => '',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -143,15 +144,21 @@ $text = array(
|
|||
'attrdef_noname' => '',
|
||||
'attrdef_objtype' => '',
|
||||
'attrdef_regex' => '',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => '',
|
||||
'attrdef_type_boolean' => '',
|
||||
'attrdef_type_date' => '',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '',
|
||||
'attrdef_type_float' => '',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '',
|
||||
'attrdef_type_string' => '',
|
||||
'attrdef_type_url' => '',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => '',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => '',
|
||||
'attribute_changed_email_body' => '',
|
||||
'attribute_changed_email_subject' => '',
|
||||
|
@ -338,6 +345,7 @@ $text = array(
|
|||
'document_comment_changed_email' => '',
|
||||
'document_comment_changed_email_body' => '',
|
||||
'document_comment_changed_email_subject' => '',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => '',
|
||||
'document_deleted_email' => '',
|
||||
|
@ -488,8 +496,10 @@ $text = array(
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Διαχείριση πρόσθετων',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Φεβρουάριος',
|
||||
|
@ -577,6 +587,7 @@ $text = array(
|
|||
'include_subdirectories' => '',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Ταξινόμηση φακέλου',
|
||||
|
@ -772,6 +783,7 @@ URL: [url]',
|
|||
'no_action' => '',
|
||||
'no_approval_needed' => '',
|
||||
'no_attached_files' => 'Δεν υπάρχουν επισυναπτόμενα αρχεία',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => '',
|
||||
'no_default_keywords' => '',
|
||||
|
@ -1645,6 +1657,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Τούρκικα',
|
||||
'tuesday' => 'Τρίτη',
|
||||
'tuesday_abbr' => '',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Πληκτρολόγησε για αναζήτηση',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1897), archonwang (3), dgrutsch (9), netixw (14)
|
||||
// Translators: Admin (1912), archonwang (3), dgrutsch (9), netixw (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '2-factor authentication',
|
||||
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Attribute definition management',
|
||||
'attrdef_maxvalues' => 'Max. number of values',
|
||||
'attrdef_minvalues' => 'Min. number of values',
|
||||
'attrdef_minvalues_help' => 'Minimum number of values. Set to 1 if attribute must be set.',
|
||||
'attrdef_min_greater_max' => 'Minimum number of values is larger than maximum number of values',
|
||||
'attrdef_multiple' => 'Allow multiple values',
|
||||
'attrdef_multiple_needs_valueset' => 'Attribute definition with multiple values needs value set.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Missing name for attribute definition',
|
||||
'attrdef_objtype' => 'Object type',
|
||||
'attrdef_regex' => 'Regular expression',
|
||||
'attrdef_regex_help' => 'Regular expression which must match the attribute value if type is string.',
|
||||
'attrdef_type' => 'Type',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Date',
|
||||
'attrdef_type_document' => 'Document',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => 'Folder',
|
||||
'attrdef_type_group' => 'Group',
|
||||
'attrdef_type_int' => 'Integer',
|
||||
'attrdef_type_string' => 'String',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => 'User',
|
||||
'attrdef_valueset' => 'Set of values',
|
||||
'attrdef_valueset_help' => 'A list of values separated by an arbitrary char, which also must be the first char of this string, e.g. #yes#no#maybe',
|
||||
'attributes' => 'Attributes',
|
||||
'attribute_changed_email_body' => 'Attribute changed
|
||||
Document: [name]
|
||||
|
@ -319,7 +326,7 @@ URL: [url]',
|
|||
'current_version' => 'Current version',
|
||||
'daily' => 'Daily',
|
||||
'databasesearch' => 'Database search',
|
||||
'database_schema_version' => 'Version of database scheman',
|
||||
'database_schema_version' => 'Version of database schema',
|
||||
'date' => 'Date',
|
||||
'days' => 'days',
|
||||
'debug' => 'Debug',
|
||||
|
@ -380,6 +387,7 @@ Parent folder: [folder_path]
|
|||
User: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Comment changed',
|
||||
'document_content_missing' => 'Document content missing',
|
||||
'document_count' => 'Number of documents',
|
||||
'document_deleted' => 'Document deleted',
|
||||
'document_deleted_email' => 'Document deleted',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Changelog',
|
||||
'extension_loading' => 'Loading extensions ...',
|
||||
'extension_manager' => 'Manage extensions',
|
||||
'extension_mgr_error_upload' => 'Error while uploading the extension.',
|
||||
'extension_mgr_installed' => 'Installed',
|
||||
'extension_mgr_no_upload' => 'Uploading new extensions is not possible because the extentension directory is not writable.',
|
||||
'extension_mgr_no_zipfile' => 'The uploaded extension is not a zip file',
|
||||
'extension_mgr_repository' => 'Available',
|
||||
'extension_version_list' => 'Versions',
|
||||
'february' => 'February',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Include subdirectories',
|
||||
'indexing_tasks_in_queue' => 'Indexing tasks in queue',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => 'document unchanged',
|
||||
'index_done' => 'Done',
|
||||
'index_error' => 'Error',
|
||||
'index_folder' => 'Index folder',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => 'No action required',
|
||||
'no_approval_needed' => 'No approval pending.',
|
||||
'no_attached_files' => 'No attached files',
|
||||
'no_attribute_definitions' => 'There are currently no attribute definitions',
|
||||
'no_backup_dir' => 'Backup directory is not set.',
|
||||
'no_current_version' => 'You are running an old version of SeedDMS. The latest available version is [latestversion].',
|
||||
'no_default_keywords' => 'No keywords available',
|
||||
|
@ -1857,6 +1869,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turkish',
|
||||
'tuesday' => 'Tuesday',
|
||||
'tuesday_abbr' => 'Tu',
|
||||
'types_generic' => 'Generic types',
|
||||
'type_of_hook' => 'Type',
|
||||
'type_to_filter' => 'Type to filter list',
|
||||
'type_to_search' => 'Type to search',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: acabello (20), Admin (1187), angel (123), francisco (2), jaimem (14)
|
||||
// Translators: acabello (20), Admin (1276), angel (123), francisco (2), jaimem (14)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => '',
|
||||
|
@ -98,8 +98,8 @@ URL: [url]',
|
|||
'approvals_not_touched_latest' => '',
|
||||
'approvals_rejected' => '',
|
||||
'approvals_rejected_latest' => '',
|
||||
'approvals_without_group' => '',
|
||||
'approvals_without_user' => '',
|
||||
'approvals_without_group' => 'Aprobaciones sin grupo',
|
||||
'approvals_without_user' => 'Aprobaciones sin usuario',
|
||||
'approval_deletion_email' => 'Petición de aprobación eliminada',
|
||||
'approval_deletion_email_body' => '',
|
||||
'approval_deletion_email_subject' => '',
|
||||
|
@ -151,6 +151,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Gestión de definición de atributos',
|
||||
'attrdef_maxvalues' => 'Núm. máximo de valores',
|
||||
'attrdef_minvalues' => 'Núm. mínimo de valores',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'El número mínimo de valores es mayor que el numero máximo de valores',
|
||||
'attrdef_multiple' => 'Permitir múltiples valores',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -159,15 +160,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Ingrese el nombre del atributo',
|
||||
'attrdef_objtype' => 'Tipo de objeto',
|
||||
'attrdef_regex' => 'Expresión regular',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Tipo',
|
||||
'attrdef_type_boolean' => 'Lógico (booleano)',
|
||||
'attrdef_type_date' => 'Fecha',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-mail',
|
||||
'attrdef_type_float' => 'Número decimal',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Número entero',
|
||||
'attrdef_type_string' => 'Texto',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Conjunto de valores',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atributos',
|
||||
'attribute_changed_email_body' => 'Atributo modificado
|
||||
Documento: [name]
|
||||
|
@ -314,7 +321,7 @@ URL: [url]',
|
|||
'current_version' => 'Versión actual',
|
||||
'daily' => 'Diaria',
|
||||
'databasesearch' => 'Búsqueda en base de datos',
|
||||
'database_schema_version' => '',
|
||||
'database_schema_version' => 'Versión del esquema de base de datos',
|
||||
'date' => 'Fecha',
|
||||
'days' => 'días',
|
||||
'debug' => 'Depuración',
|
||||
|
@ -328,8 +335,8 @@ URL: [url]',
|
|||
'de_DE' => 'Aleman',
|
||||
'disclaimer' => 'Esta es un área restringida. Se permite el acceso únicamente a personal autorizado. Cualquier intrusión se perseguirá conforme a las leyes internacionales.',
|
||||
'discspace' => 'Espacio en disco',
|
||||
'docs_in_reception_no_access' => '',
|
||||
'docs_in_revision_no_access' => '',
|
||||
'docs_in_reception_no_access' => 'Documentos recibidos sin acceso por recipiente',
|
||||
'docs_in_revision_no_access' => 'Documentos en revisión sin acceso para el revisor',
|
||||
'document' => 'Documento',
|
||||
'documentcontent' => 'Contenido del documento',
|
||||
'documents' => 'Documentos',
|
||||
|
@ -368,6 +375,7 @@ Carpeta principal: [folder_path]
|
|||
Usuario: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Comentario modificado',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Documento eliminado',
|
||||
'document_deleted_email' => 'Documento eliminado',
|
||||
|
@ -451,7 +459,7 @@ URL: [url]',
|
|||
'dropfolderdir_missing' => '',
|
||||
'dropfolder_file' => 'Fichero de la carpeta destino',
|
||||
'dropfolder_folder' => 'Carpeta de la carpeta destino',
|
||||
'dropfolder_metadata' => '',
|
||||
'dropfolder_metadata' => 'Metadata de carpeta de destino',
|
||||
'dropupload' => 'Carga Rapida',
|
||||
'drop_files_here' => 'Arrastre archivos aquí!',
|
||||
'dump_creation' => 'Creación de volcado de BDD',
|
||||
|
@ -476,8 +484,8 @@ URL: [url]',
|
|||
'edit_folder_notify' => 'Lista de notificación',
|
||||
'edit_folder_props' => 'Editar carpeta',
|
||||
'edit_group' => 'Editar grupo...',
|
||||
'edit_online' => '',
|
||||
'edit_online_warning' => '',
|
||||
'edit_online' => 'Editar en línea',
|
||||
'edit_online_warning' => 'Al guardar sus cambios sobrescribirá el contenido de la versión actual, en lugar de crear una nueva versión.',
|
||||
'edit_task' => '',
|
||||
'edit_transmittal_props' => '',
|
||||
'edit_user' => 'Editar usuario...',
|
||||
|
@ -491,7 +499,7 @@ URL: [url]',
|
|||
'email_not_given' => 'Por favor, introduzca una dirección de correo válida.',
|
||||
'empty_attribute_group_list' => '',
|
||||
'empty_folder_list' => 'Sin documentos o carpetas',
|
||||
'empty_list' => '',
|
||||
'empty_list' => 'Sin registros',
|
||||
'empty_notify_list' => 'Sin entradas',
|
||||
'en_GB' => 'Ingless (GB)',
|
||||
'equal_transition_states' => 'Estado inicial y final son iguales',
|
||||
|
@ -520,7 +528,7 @@ URL: [url]',
|
|||
'event_details' => 'Detalles del evento',
|
||||
'exclude_items' => 'Registros excluidos',
|
||||
'expired' => 'Caducado',
|
||||
'expired_at_date' => '',
|
||||
'expired_at_date' => 'Expirado en [datetime]',
|
||||
'expired_documents' => 'Documentos expirados',
|
||||
'expires' => 'Caduca',
|
||||
'expire_by_date' => 'Fecha de expiración',
|
||||
|
@ -546,8 +554,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Log de Cambios',
|
||||
'extension_loading' => 'Cargando extensiones',
|
||||
'extension_manager' => 'Administrar extensiones',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Instalada',
|
||||
'extension_mgr_no_upload' => 'No es posible cargar mas extensiones porque el directorio de extensiones no se puede escribir',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Disponible',
|
||||
'extension_version_list' => 'Versiones',
|
||||
'february' => 'Febrero',
|
||||
|
@ -648,13 +658,14 @@ URL: [url]',
|
|||
'import_fs' => 'Importar desde sistema de archivos',
|
||||
'import_fs_warning' => 'Esto funciona únicamente con carpetas dentro de la carpeta destino. La operación importa recursivamente todos los archivos y carpetas. Los archivos serán liberados inmediatamente.',
|
||||
'import_users' => 'Importar usuarios',
|
||||
'import_users_addnew' => '',
|
||||
'import_users_update' => '',
|
||||
'import_users_addnew' => 'Agregar nuevos usuarios',
|
||||
'import_users_update' => 'Actualizar usuarios existentes',
|
||||
'include_content' => '',
|
||||
'include_documents' => 'Incluir documentos',
|
||||
'include_subdirectories' => 'Incluir subcarpetas',
|
||||
'indexing_tasks_in_queue' => 'Tareas de indexación en cola',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Índice de carpetas',
|
||||
|
@ -750,7 +761,7 @@ URL: [url]',
|
|||
'lock_document' => 'Bloquear',
|
||||
'lock_message' => 'Este documento ha sido bloqueado por [username]. Sólo usuarios autorizados pueden desbloquear este documento (vea el final de la página).',
|
||||
'lock_status' => 'Estado',
|
||||
'logfile_loading' => '',
|
||||
'logfile_loading' => 'Por favor espera, hasta que el archivo se haya cargado',
|
||||
'login' => 'Iniciar sesión',
|
||||
'login_disabled_text' => 'Su cuenta está deshabilitada, probablemente es debido a demasiados intentos de acceso fallidos.',
|
||||
'login_disabled_title' => 'La cuenta está deshabilitada',
|
||||
|
@ -843,7 +854,7 @@ URL: [url]',
|
|||
'next_state' => 'Nuevo estado',
|
||||
'nl_NL' => 'Holandes',
|
||||
'no' => 'No',
|
||||
'notification' => '',
|
||||
'notification' => 'Notificación',
|
||||
'notify_added_email' => 'Ha sido añadido a la lista de notificación',
|
||||
'notify_added_email_body' => 'Añadido a la lista de notificación
|
||||
Nombre: [name]
|
||||
|
@ -863,6 +874,7 @@ URL: [url]',
|
|||
'no_action' => 'No es necesaria ninguna acción',
|
||||
'no_approval_needed' => 'No hay aprobaciones pendientes.',
|
||||
'no_attached_files' => 'No hay ficheros adjuntos',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'El directorio de backup no está definido',
|
||||
'no_current_version' => 'Está utilizando una versión desactualizada de este producto. La última versión disponible es [latestversion].',
|
||||
'no_default_keywords' => 'No hay palabras clave disponibles',
|
||||
|
@ -892,8 +904,8 @@ URL: [url]',
|
|||
'no_version_modification' => 'Ninguna Modificación de Versión',
|
||||
'no_workflow_available' => '',
|
||||
'objectcheck' => 'Chequeo de carpeta/documento',
|
||||
'object_check_critical' => '',
|
||||
'object_check_warning' => '',
|
||||
'object_check_critical' => 'Errores críticos',
|
||||
'object_check_warning' => 'Alertas',
|
||||
'obsolete' => 'Obsoleto',
|
||||
'october' => 'Octubre',
|
||||
'old' => 'Viejo',
|
||||
|
@ -969,8 +981,8 @@ Si continua teniendo problemas de acceso, por favor contacte con el administrado
|
|||
'receipts_not_touched_latest' => '',
|
||||
'receipts_rejected' => '',
|
||||
'receipts_rejected_latest' => '',
|
||||
'receipts_without_group' => '',
|
||||
'receipts_without_user' => '',
|
||||
'receipts_without_group' => 'Recibos sin grupo',
|
||||
'receipts_without_user' => 'Recibos sin usuario',
|
||||
'receipt_deletion_email_body' => '',
|
||||
'receipt_deletion_email_subject' => '',
|
||||
'receipt_log' => '',
|
||||
|
@ -1037,12 +1049,12 @@ nURL: [url]',
|
|||
'reviews_not_touched_latest' => '',
|
||||
'reviews_rejected' => '',
|
||||
'reviews_rejected_latest' => '',
|
||||
'reviews_without_group' => '',
|
||||
'reviews_without_user' => '',
|
||||
'reviews_without_group' => 'Revisiones sin grupo',
|
||||
'reviews_without_user' => 'Revisiones sin usuario',
|
||||
'review_deletion_email' => 'Petición de revisión eliminada',
|
||||
'review_deletion_email_body' => '',
|
||||
'review_deletion_email_subject' => '',
|
||||
'review_file' => '',
|
||||
'review_file' => 'Revisar Archivo',
|
||||
'review_group' => 'Grupo de revisión',
|
||||
'review_log' => 'Traza de revisión',
|
||||
'review_request_email' => 'Petición de revisión',
|
||||
|
@ -1071,8 +1083,8 @@ URL: [url]',
|
|||
'revisions_pending_latest' => '',
|
||||
'revisions_rejected' => '',
|
||||
'revisions_rejected_latest' => '',
|
||||
'revisions_without_group' => '',
|
||||
'revisions_without_user' => '',
|
||||
'revisions_without_group' => 'Revisiones sin grupo',
|
||||
'revisions_without_user' => 'Revisiones sin usuario',
|
||||
'revision_date' => '',
|
||||
'revision_log' => 'Histórico de revisiones',
|
||||
'revision_request_email_body' => '',
|
||||
|
@ -1165,12 +1177,12 @@ URL: [url]',
|
|||
'seeddms_version' => 'Versión de SeedDMS',
|
||||
'selection' => 'Selección',
|
||||
'select_attrdefgrp_show' => '',
|
||||
'select_attribute_value' => '',
|
||||
'select_attribute_value' => 'Seleccionar valores de atributos',
|
||||
'select_category' => 'Haga Click para seleccionar categoría',
|
||||
'select_group' => 'Seleccionar Grupo',
|
||||
'select_groups' => 'Haga Click para seleccionar grupos',
|
||||
'select_grp_approvers' => 'Haga Click para seleccionar grupo de aprobadores',
|
||||
'select_grp_ind_approvers' => '',
|
||||
'select_grp_ind_approvers' => 'Click para seleccionar el grupo',
|
||||
'select_grp_ind_notification' => '',
|
||||
'select_grp_ind_recipients' => 'Seleccione grupo',
|
||||
'select_grp_ind_reviewers' => 'Dar click para seleccionar el grupo',
|
||||
|
@ -1209,19 +1221,19 @@ URL: [url]',
|
|||
'settings_adminIP' => 'IP de administración',
|
||||
'settings_adminIP_desc' => 'Si establece que el administrador solo puede conectar desde una dirección IP específica, deje en blanco para evitar el control. NOTA: funciona únicamente con autenticación local (no LDAP).',
|
||||
'settings_Advanced' => 'Avanzado',
|
||||
'settings_advancedAcl' => '',
|
||||
'settings_advancedAcl_desc' => '',
|
||||
'settings_allowChangeRevAppInProcess' => '',
|
||||
'settings_allowChangeRevAppInProcess_desc' => '',
|
||||
'settings_advancedAcl' => 'Control de acceso avanzad',
|
||||
'settings_advancedAcl_desc' => 'El control de acceso avanzado permitirá encender o apagar ciertos módulos del software. No puede ser utilizado con derechos de acceso sobre documentos y carpetas.',
|
||||
'settings_allowChangeRevAppInProcess' => 'Permitir el cambio de revisor/aprobador después de iniciado el proceso',
|
||||
'settings_allowChangeRevAppInProcess_desc' => 'Por defecto, los revisores y aprobadores no se pueden cambiar una vez que se ha enviado una revisión o aprobación esta opción permitirá al administrador hacer esto mientras el documento no sea liberado o rechazado.',
|
||||
'settings_allowReviewerOnly' => 'Permitir habilitar la función de Revisor para un usuario',
|
||||
'settings_allowReviewerOnly_desc' => 'Habilite esto si se requiere permitir que un usuario sea lector o revisor sin capacidad de aprobar un documento en un proceso de workflow tradicional',
|
||||
'settings_apache_mod_rewrite' => 'Apache - Módulo Reescritura',
|
||||
'settings_apiKey' => '',
|
||||
'settings_apiKey_desc' => '',
|
||||
'settings_apiOrigin' => '',
|
||||
'settings_apiOrigin_desc' => '',
|
||||
'settings_apiUserId' => '',
|
||||
'settings_apiUserId_desc' => '',
|
||||
'settings_apiKey' => 'Clave de autenticación para la API de descanso.',
|
||||
'settings_apiKey_desc' => 'Esta clave se utiliza como autenticación alternativa para la API de descanso. Selecciona una cadena de 32 caracteres.',
|
||||
'settings_apiOrigin' => 'Origen permitido de llamadas API',
|
||||
'settings_apiOrigin_desc' => 'Una lista de direcciones separadas por punto y coma. Cada dirección tiene la forma ://[:]. El puerto puede ser omitido. Si este campo está vacío, no apicarán restricciones.',
|
||||
'settings_apiUserId' => 'Usuario para API de descanso.',
|
||||
'settings_apiUserId_desc' => 'Este usuario es será utilizado con la API de descanso, si la autenticación se realizó con la clave confogurada para la API.',
|
||||
'settings_Authentication' => 'Configuración de autenticación',
|
||||
'settings_autoLoginUser' => 'Acceso automatico',
|
||||
'settings_autoLoginUser_desc' => 'Utilice esta clave de usuario para accesos si el usuario no ha ingresado al sistema todavía. Este tipo de acceso no creará una sesión.',
|
||||
|
@ -1235,8 +1247,8 @@ URL: [url]',
|
|||
'settings_calendarDefaultView' => 'Vista por defecto de calendario',
|
||||
'settings_calendarDefaultView_desc' => 'Vista por defecto descripción de calendario',
|
||||
'settings_cannot_disable' => 'No es posible eliminar el archivo ENABLE_INSTALL_TOOL',
|
||||
'settings_checkOutDir' => '',
|
||||
'settings_checkOutDir_desc' => '',
|
||||
'settings_checkOutDir' => 'Directorio para documentos revisados',
|
||||
'settings_checkOutDir_desc' => 'Este es el directorio donde se copia el último contenido de un documento, si el documento ya esta revisado. Si haces accesible este documento para los usuarios, podrán editar el archivo y volverlo a revisar cuando hayan terminado.',
|
||||
'settings_cmdTimeout' => 'Tiempo limite para comandos externos',
|
||||
'settings_cmdTimeout_desc' => 'Esta duración definirá cuando debe interrumpirse la ejecución de un comando externo (i.e. para crear el índice de texto completo).',
|
||||
'settings_contentDir' => 'Carpeta de contenidos',
|
||||
|
@ -1249,8 +1261,8 @@ URL: [url]',
|
|||
'settings_cookieLifetime_desc' => 'Tiempo de vida de las cookies en segundos. Si asigna 0 la cookie será eliminada cuando el navegador se cierre.',
|
||||
'settings_coreDir' => 'Carpeta de SeedDMS Core',
|
||||
'settings_coreDir_desc' => 'Ruta hacia SeedDMS_Core (opcional)',
|
||||
'settings_createCheckOutDir' => '',
|
||||
'settings_createCheckOutDir_desc' => '',
|
||||
'settings_createCheckOutDir' => 'Crea un directorio de revisiones',
|
||||
'settings_createCheckOutDir_desc' => 'Crea un directorio de revisiones si no existe',
|
||||
'settings_createdatabase' => 'Crear tablas de base de datos',
|
||||
'settings_createdirectory' => 'Crear carpeta',
|
||||
'settings_currentvalue' => 'Valor actual',
|
||||
|
@ -1286,12 +1298,12 @@ URL: [url]',
|
|||
'settings_Edition' => 'Configuración de edición',
|
||||
'settings_editOnlineFileTypes' => 'Editar los tipos de archivo online',
|
||||
'settings_editOnlineFileTypes_desc' => 'Los archivos con las siguientes terminaciones pueden ser editados online (USE SOLO MINUSCULAS)',
|
||||
'settings_enable2FactorAuthentication' => '',
|
||||
'settings_enable2FactorAuthentication_desc' => '',
|
||||
'settings_enable2FactorAuthentication' => 'Habilitar autenticación de doble factor',
|
||||
'settings_enable2FactorAuthentication_desc' => 'Habilitar/deshabilitar autenticación de doble factor. Los usuarios requerirán del autenticador de Google en su telefóno móbil.',
|
||||
'settings_enableAcknowledgeWorkflow' => '',
|
||||
'settings_enableAcknowledgeWorkflow_desc' => '',
|
||||
'settings_enableAdminReceipt' => '',
|
||||
'settings_enableAdminReceipt_desc' => '',
|
||||
'settings_enableAdminReceipt' => 'Permitir la recepción de documentos por los administradores',
|
||||
'settings_enableAdminReceipt_desc' => 'Habilite esto si desea que los adimistradores sean listados como recipientes de documentos.',
|
||||
'settings_enableAdminRevApp' => 'Habilitar Administrador Rev Apr',
|
||||
'settings_enableAdminRevApp_desc' => 'Deseleccione para no mostrar al administrador como revisor/aprobador',
|
||||
'settings_enableCalendar' => 'Habilitar calendario',
|
||||
|
@ -1300,8 +1312,8 @@ URL: [url]',
|
|||
'settings_enableClipboard_desc' => 'Habilitar/deshabilitar el portapapeles',
|
||||
'settings_enableConverting' => 'Habilitar conversión',
|
||||
'settings_enableConverting_desc' => 'Habilitar/Deshabilitar conversión de ficheros',
|
||||
'settings_enableDebugMode' => '',
|
||||
'settings_enableDebugMode_desc' => '',
|
||||
'settings_enableDebugMode' => 'Modo de depuración',
|
||||
'settings_enableDebugMode_desc' => 'Habilitar esto para encender el modo depuración que añade nueco menú en las herramientas de administración',
|
||||
'settings_enableDropFolderList' => 'Habilitar lista de archivos en la carpeta de subida en el menú',
|
||||
'settings_enableDropFolderList_desc' => 'Habilita una lista de archivos en la carpeta desplegable. Lista mostrada en menú principal.',
|
||||
'settings_enableDropUpload' => 'Habilitar Subida Rapida',
|
||||
|
@ -1312,8 +1324,8 @@ URL: [url]',
|
|||
'settings_enableDuplicateSubFolderNames_desc' => 'Permite tener nombres duplicados de subcarpetas dentro de una carpeta',
|
||||
'settings_enableEmail' => 'Habilitar E-mail',
|
||||
'settings_enableEmail_desc' => 'Habilitar/Deshabilitar notificación automática por correo electrónico',
|
||||
'settings_enableFilterReceipt' => '',
|
||||
'settings_enableFilterReceipt_desc' => '',
|
||||
'settings_enableFilterReceipt' => 'Filtrar por propietario, recisor, ... de la lista de recepción.',
|
||||
'settings_enableFilterReceipt_desc' => 'Habilitar, para filtrar algunos recipientes de la lista de receptores, si los miembros del grupo son seleccionados.',
|
||||
'settings_enableFolderTree' => 'Habilitar árbol de carpetas',
|
||||
'settings_enableFolderTree_desc' => 'Falso para no mostrar el árbol de carpetas',
|
||||
'settings_enableFullSearch' => 'Habilitar búsqueda de texto completo',
|
||||
|
@ -1338,34 +1350,34 @@ URL: [url]',
|
|||
'settings_enableNotificationWorkflow_desc' => 'Si esta opción esta activa, los usuarios y grupos que deban tomar una acción en la siguiente transacción del flujo, serán notificados. Incluso si ellos no han adicionado una notificación al documento.',
|
||||
'settings_enableOwnerNotification' => 'Habilitar notificación al propietario por defecto',
|
||||
'settings_enableOwnerNotification_desc' => 'Marcar para añadir una notificación al propietario del documento cuando es añadido.',
|
||||
'settings_enableOwnerReceipt' => '',
|
||||
'settings_enableOwnerReceipt_desc' => '',
|
||||
'settings_enableOwnerReceipt' => 'Permitir la recepción de documentos por el propietario.',
|
||||
'settings_enableOwnerReceipt_desc' => 'Habilitar esto si deseas que el propietario de un documento sea listado como receptor.',
|
||||
'settings_enableOwnerRevApp' => 'Permitir al propietario revisar/aprobar',
|
||||
'settings_enableOwnerRevApp_desc' => 'Habilitar esto si quiere que el propietario de un documento sea listado como revisor/aprobador y para las transiciones del flujo de trabajo.',
|
||||
'settings_enablePasswordForgotten' => 'Habilitar recordatorio de contraseña',
|
||||
'settings_enablePasswordForgotten_desc' => 'Si quiere permitir a los usuarios fijar una nueva contraseña recibiendo un correo electrónico, active esta opción.',
|
||||
'settings_enableReceiptReject' => '',
|
||||
'settings_enableReceiptReject_desc' => '',
|
||||
'settings_enableReceiptReject' => 'Habilitar rechazo de recepciones',
|
||||
'settings_enableReceiptReject_desc' => 'Habilitar, para encender el rechazo de recepciones.',
|
||||
'settings_enableReceiptWorkflow' => '',
|
||||
'settings_enableReceiptWorkflow_desc' => '',
|
||||
'settings_enableRecursiveCount' => 'Habilitar cuenta de documento/carpeta recursivo',
|
||||
'settings_enableRecursiveCount_desc' => 'Si cambia a activado, el número de documentos y carpetas en la carpeta será determinado por la cuenta de todos los objetos recursivos procesados de la carpeta y una vez contados el usuarios tendrá permiso para acceder.',
|
||||
'settings_enableRevisionOneVoteReject' => '',
|
||||
'settings_enableRevisionOneVoteReject_desc' => '',
|
||||
'settings_enableRevisionOneVoteReject' => 'Rechazado por un revisor',
|
||||
'settings_enableRevisionOneVoteReject_desc' => 'Si está habilitado, una vez que el primer revisor rechaza el documento, el estado del documento será \'necesita corrección\'. Si se encuentra deshabilitado, el estado del docuento no cambiará hast que todos los revisores hayan concluido su revisión.',
|
||||
'settings_enableRevisionOnVoteReject' => '',
|
||||
'settings_enableRevisionOnVoteReject_desc' => '',
|
||||
'settings_enableRevisionWorkflow' => '',
|
||||
'settings_enableRevisionWorkflow_desc' => '',
|
||||
'settings_enableSelfReceipt' => '',
|
||||
'settings_enableSelfReceipt_desc' => '',
|
||||
'settings_enableRevisionWorkflow' => 'Habilitar la revisión de documentos',
|
||||
'settings_enableRevisionWorkflow_desc' => 'Habilitar, para poder correr el fujo de trabajo para revisión de documentos despues de un periodo de tiempo dado.',
|
||||
'settings_enableSelfReceipt' => 'Permite la recepción de documentos para el usuario conectado.',
|
||||
'settings_enableSelfReceipt_desc' => 'Habilitar esto si deseas que el usuario actual sea listado como receptor del documento.',
|
||||
'settings_enableSelfRevApp' => 'Permitir al usuario identificado revisar/aprobar.',
|
||||
'settings_enableSelfRevApp_desc' => 'Habilitar esto si quiere que el usuario identificado sea listado como revisor/aprobador y para las transiciones del flujo de trabajo.',
|
||||
'settings_enableSessionList' => 'Activar en el menú la lista de usuarios conectados',
|
||||
'settings_enableSessionList_desc' => 'Habilita lista de firmados (logged) en usuarios en menú.',
|
||||
'settings_enableThemeSelector' => 'Selección de temas (skins)',
|
||||
'settings_enableThemeSelector_desc' => 'Habilitar/deshabilitar la selección de temas en la página de login',
|
||||
'settings_enableUpdateReceipt' => '',
|
||||
'settings_enableUpdateReceipt_desc' => '',
|
||||
'settings_enableUpdateReceipt' => 'Permitir la edición de recepciones existentes',
|
||||
'settings_enableUpdateReceipt_desc' => 'Habilitar esto si el usuario que ha hecho una recepción puede cambiar su decisión.',
|
||||
'settings_enableUpdateRevApp' => 'Permitir edición de revisión/aprobación existente',
|
||||
'settings_enableUpdateRevApp_desc' => 'Habilite si el usuario que ha hecho la revisión/aprobación puede cambiar de decisión siempre que el flujo de trabajo no haya culminado.',
|
||||
'settings_enableUserImage' => 'Habilitar imágenes de usuario',
|
||||
|
@ -1405,10 +1417,10 @@ URL: [url]',
|
|||
'settings_httpRoot_desc' => 'La ruta relativa de la URL, después de la parte del servidor. No incluir el prefijo http:// o el nombre del servidor. Por ejemplo, si la URL completa es http://www.example.com/seeddms/, configure «/seeddms/». Si la URL completa es http://www.example.com/, configure «/»',
|
||||
'settings_incItemsPerPage' => 'Número de entradas cargadas al final de la página',
|
||||
'settings_incItemsPerPage_desc' => 'Si el número de folders y documentos está limitado, aquí se ajusta el número de objetos que serán mostrados adicionalmente cuando se desplace al final de la vista de este folder. Con 0 se mostrará el mismo número de objetos que se mostrarían inicialmente.',
|
||||
'settings_initialDocumentStatus' => '',
|
||||
'settings_initialDocumentStatus_desc' => '',
|
||||
'settings_initialDocumentStatus_draft' => '',
|
||||
'settings_initialDocumentStatus_released' => '',
|
||||
'settings_initialDocumentStatus' => 'Estado incial del documento',
|
||||
'settings_initialDocumentStatus_desc' => 'Este estatus se fijará cuando un documento sea añadido.',
|
||||
'settings_initialDocumentStatus_draft' => 'Borrador',
|
||||
'settings_initialDocumentStatus_released' => 'Liberado',
|
||||
'settings_installADOdb' => 'Instalar ADOdb',
|
||||
'settings_install_disabled' => 'El archivo ENABLE_INSTALL_TOOL ha sido eliminado. Ahora puede conectarse a SeedDMS y seguir con la configuración.',
|
||||
'settings_install_pear_package_log' => 'Instale el paquete Pear \'Log\'',
|
||||
|
@ -1419,8 +1431,8 @@ URL: [url]',
|
|||
'settings_install_zendframework' => 'Instale Zend Framework, si quiere usar el sistema de búsqueda de texto completo',
|
||||
'settings_language' => 'Idioma por defecto',
|
||||
'settings_language_desc' => 'Idioma por defecto (nombre de una subcarpeta en la carpeta "languages")',
|
||||
'settings_libraryFolder' => '',
|
||||
'settings_libraryFolder_desc' => '',
|
||||
'settings_libraryFolder' => 'Biblioteca de carpetas',
|
||||
'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_logFileRotation' => 'Rotación del archivo de registro',
|
||||
|
@ -1444,14 +1456,14 @@ URL: [url]',
|
|||
'settings_maxUploadSize' => 'Tamaño máximo de subida archivos',
|
||||
'settings_maxUploadSize_desc' => 'Tamaño máximo de archivos a cargar. Se tomará en cuenta para versiones de documentos y anexos de correo electrónico',
|
||||
'settings_more_settings' => 'Configure más parámetros. Acceso por defecto: admin/admin',
|
||||
'settings_noDocumentFormFields' => '',
|
||||
'settings_noDocumentFormFields_desc' => '',
|
||||
'settings_noDocumentFormFields' => 'No mostrar estos campos',
|
||||
'settings_noDocumentFormFields_desc' => 'Estos campos no están siendo mostrados al añadir o editar un documento. Se conservarán los valores existentes.',
|
||||
'settings_notfound' => 'No encontrado',
|
||||
'settings_Notification' => 'Parámetros de notificación',
|
||||
'settings_notwritable' => 'La configuración no se puede guardar porque el fichero de configuración no es escribible.',
|
||||
'settings_no_content_dir' => 'Carpeta de contenidos',
|
||||
'settings_onePageMode' => 'Modo una página',
|
||||
'settings_onePageMode_desc' => '',
|
||||
'settings_onePageMode_desc' => 'El modo una página encenderá el código javascript en la página visor de carpetas, el cual actualiza la lista de carpetas/documentos, navegación, etc. Al hacer click en una carpeta o al cambiar el parametro ordenar.',
|
||||
'settings_overrideMimeType' => 'Anular MimeType',
|
||||
'settings_overrideMimeType_desc' => 'Permitir que SeedDMS fije el tipo MIME sobreescribiendo el que haya definido el navegador durante el proceso de carga de un archivo.',
|
||||
'settings_partitionSize' => 'Tamaño de fichero parcial',
|
||||
|
@ -1485,12 +1497,12 @@ URL: [url]',
|
|||
'settings_previewWidthMenuList_desc' => 'Ancho de las imágenes mostradas en vista previa dell menú desplegable.',
|
||||
'settings_printDisclaimer' => 'Mostrar renuncia',
|
||||
'settings_printDisclaimer_desc' => 'Si es Verdadero el mensaje de renuncia de los ficheros lang.inc se mostratá al final de la página',
|
||||
'settings_proxyUPassword' => '',
|
||||
'settings_proxyUPassword_desc' => '',
|
||||
'settings_proxyUrl' => '',
|
||||
'settings_proxyUrl_desc' => '',
|
||||
'settings_proxyUser' => '',
|
||||
'settings_proxyUser_desc' => '',
|
||||
'settings_proxyUPassword' => 'Contraseña del proxy',
|
||||
'settings_proxyUPassword_desc' => 'Contraseña de autenticación con el proxy',
|
||||
'settings_proxyUrl' => 'URL del prox',
|
||||
'settings_proxyUrl_desc' => 'URL del proxy utilizado para acceder la extensión del repositorio.',
|
||||
'settings_proxyUser' => 'Nombre de usuario para el proxy',
|
||||
'settings_proxyUser_desc' => 'Nombre de usuario utilizado para autenticación con el proxy',
|
||||
'settings_quota' => 'Cuota de usuario',
|
||||
'settings_quota_desc' => 'El número máximo de bytes que el usuario puede ocupar en disco. Asignar 0 para no limitar el espacio de disco. Este valor puede ser sobreescrito por cada uso en su perfil.',
|
||||
'settings_removeFromDropFolder' => 'Elimina el archivo de la carpeta de subida despues de una subida exitosa',
|
||||
|
@ -1547,14 +1559,14 @@ URL: [url]',
|
|||
'settings_strictFormCheck_desc' => 'Comprobación estricta de formulario. Si se configura como cierto, entonces se comprobará el valor de todos los campos del formulario. Si se configura como false, entonces (la mayor parte) de los comentarios y campos de palabras clave se convertirán en opcionales. Los comentarios siempre son obligatorios al enviar una revisión o sobreescribir el estado de un documento',
|
||||
'settings_suggestionvalue' => 'Valor sugerido',
|
||||
'settings_System' => 'Sistema',
|
||||
'settings_tasksInMenu' => '',
|
||||
'settings_tasksInMenu_approval' => '',
|
||||
'settings_tasksInMenu_desc' => '',
|
||||
'settings_tasksInMenu_needscorrection' => '',
|
||||
'settings_tasksInMenu_receipt' => '',
|
||||
'settings_tasksInMenu_review' => '',
|
||||
'settings_tasksInMenu_revision' => '',
|
||||
'settings_tasksInMenu_workflow' => '',
|
||||
'settings_tasksInMenu' => 'Tareas seleccionadas',
|
||||
'settings_tasksInMenu_approval' => 'Aprobaciones',
|
||||
'settings_tasksInMenu_desc' => 'Selecciona aquéllas tareas que serán contadas. Si no se selecciona alguna, todas la tareas serán contadas.',
|
||||
'settings_tasksInMenu_needscorrection' => 'Se requere correciones',
|
||||
'settings_tasksInMenu_receipt' => 'Recibos',
|
||||
'settings_tasksInMenu_review' => 'Revisiones',
|
||||
'settings_tasksInMenu_revision' => 'Revisiones',
|
||||
'settings_tasksInMenu_workflow' => 'Flujo de trabajo',
|
||||
'settings_theme' => 'Tema por defecto',
|
||||
'settings_theme_desc' => 'Estilo por defecto (nombre de una subcarpeta de la carpeta "styles")',
|
||||
'settings_titleDisplayHack' => 'Arreglo para mostrar título',
|
||||
|
@ -1574,7 +1586,7 @@ URL: [url]',
|
|||
'settings_workflowMode' => 'Workflow mode',
|
||||
'settings_workflowMode_desc' => 'El flujo de trabajo avanzado permite especificar su propia versión de flujo para las versiones de documento.',
|
||||
'settings_workflowMode_valadvanced' => 'avanzado',
|
||||
'settings_workflowMode_valnone' => '',
|
||||
'settings_workflowMode_valnone' => 'ninguno',
|
||||
'settings_workflowMode_valtraditional' => 'tradicional',
|
||||
'settings_workflowMode_valtraditional_only_approval' => 'Tradicional(sin revisión)',
|
||||
'settings_zendframework' => 'Zend Framework',
|
||||
|
@ -1592,7 +1604,7 @@ URL: [url]',
|
|||
'site_brand' => '',
|
||||
'sk_SK' => 'Slovaco',
|
||||
'sort_by_date' => 'Ordenar por Fecha',
|
||||
'sort_by_expiration_date' => '',
|
||||
'sort_by_expiration_date' => 'Ordenar por fecha de vencimiento',
|
||||
'sort_by_name' => 'Ordenar por nombre',
|
||||
'sort_by_sequence' => 'Ordenar por secuencia',
|
||||
'space_used_on_data_folder' => 'Espacio usado en la carpeta de datos',
|
||||
|
@ -1795,6 +1807,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turco',
|
||||
'tuesday' => 'Martes',
|
||||
'tuesday_abbr' => 'M',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Tipo de búsqueda',
|
||||
|
@ -1821,7 +1834,7 @@ URL: [url]',
|
|||
'update_fulltext_index' => 'Actualizar índice de texto completo',
|
||||
'update_info' => 'Actualizar información',
|
||||
'update_locked_msg' => 'Este documento está bloqueado.',
|
||||
'update_recipients' => '',
|
||||
'update_recipients' => 'Actualizaar lista de receptores',
|
||||
'update_reviewers' => 'Actualizar lista de revisores',
|
||||
'update_revisors' => '',
|
||||
'update_transmittalitem' => '',
|
||||
|
@ -1831,7 +1844,7 @@ URL: [url]',
|
|||
'uploading_zerosize' => 'Subiendo un fichero vacío. -Subida cancelada.',
|
||||
'used_discspace' => 'Espacio de disco utilizado',
|
||||
'user' => 'Usuario',
|
||||
'userdata_file' => '',
|
||||
'userdata_file' => 'Archivo con usuarios',
|
||||
'userid_groupid' => 'ID Usuario/ID Grupo',
|
||||
'users' => 'Usuarios',
|
||||
'users_and_groups' => 'Usuarios/Grupos',
|
||||
|
@ -1854,7 +1867,7 @@ URL: [url]',
|
|||
'versioning_file_creation_warning' => 'Con esta operación usted puede crear un fichero que contenga la información de versiones de una carpeta del DMS completa. Después de la creación todos los ficheros se guardarán en la carpeta de documentos.',
|
||||
'versioning_info' => 'Información de versiones',
|
||||
'versiontolow' => 'Versión',
|
||||
'version_comment' => '',
|
||||
'version_comment' => 'Comentario de la versión',
|
||||
'version_deleted_email' => 'Versión eliminada',
|
||||
'version_deleted_email_body' => 'Versión eliminada
|
||||
Documento: [name]
|
||||
|
@ -1902,7 +1915,7 @@ URL: [url]',
|
|||
'workflow_title' => '',
|
||||
'workflow_transition_without_user_group' => '',
|
||||
'workflow_user_summary' => 'Resumen Usuario',
|
||||
'wrong_filetype' => '',
|
||||
'wrong_filetype' => 'Tipo de archivo erróneo',
|
||||
'x_more_objects' => '[number] más objetos',
|
||||
'year_view' => 'Vista del año',
|
||||
'yes' => 'Sí',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1103), jeromerobert (50), lonnnew (9), Oudiceval (929)
|
||||
// Translators: Admin (1103), jeromerobert (50), lonnnew (9), Oudiceval (951)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Authentification forte',
|
||||
|
@ -156,6 +156,7 @@ URL : [url]',
|
|||
'attrdef_management' => 'Gestion des définitions d\'attributs',
|
||||
'attrdef_maxvalues' => 'Nombre maximum de valeurs',
|
||||
'attrdef_minvalues' => 'Nombre minimum de valeurs',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Le nombre minimum de valeurs est supérieur au maximum',
|
||||
'attrdef_multiple' => 'Permettre des valeurs multiples',
|
||||
'attrdef_multiple_needs_valueset' => 'Une définition d’attribut à valeurs multiples nécessite un ensemble de valeurs.',
|
||||
|
@ -164,15 +165,21 @@ URL : [url]',
|
|||
'attrdef_noname' => 'Le nom d\'attribut est manquant',
|
||||
'attrdef_objtype' => 'Type objet',
|
||||
'attrdef_regex' => 'Expression régulière',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Type',
|
||||
'attrdef_type_boolean' => 'Valeur booléenne',
|
||||
'attrdef_type_date' => 'Date',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-mail',
|
||||
'attrdef_type_float' => 'Décimal',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Entier',
|
||||
'attrdef_type_string' => 'Chaîne',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Ensemble de valeurs',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Attributs',
|
||||
'attribute_changed_email_body' => 'Attribut changé
|
||||
Document: [name]
|
||||
|
@ -294,7 +301,7 @@ URL: [url]',
|
|||
'confirm_rm_folder_files' => 'Voulez-vous vraiment supprimer tous les fichiers du dossier « [foldername] » et ses sous-dossiers ?<br>Attention : Cette action est irréversible.',
|
||||
'confirm_rm_group' => 'Voulez-vous vraiment supprimer le groupe « [groupname] » ?<br>Attention : Cette action est irréversible.',
|
||||
'confirm_rm_log' => 'Voulez-vous vraiment supprimer le fichier journal « [logname] » ?<br>Attention : Cette action est irréversible.',
|
||||
'confirm_rm_task' => '',
|
||||
'confirm_rm_task' => 'Veuillez confirmer la suppression de cette tâche.',
|
||||
'confirm_rm_transmittal' => 'Veuillez confirmer la suppression de la transmission.',
|
||||
'confirm_rm_transmittalitem' => 'Confirmer la suppression',
|
||||
'confirm_rm_user' => 'Voulez-vous vraiment supprimer l’utilisateur « [username] » ?<br>Attention : Cette action est irréversible.',
|
||||
|
@ -319,7 +326,7 @@ URL: [url]',
|
|||
'current_version' => 'Version actuelle',
|
||||
'daily' => 'Journalier',
|
||||
'databasesearch' => 'Recherche dans la base de données',
|
||||
'database_schema_version' => '',
|
||||
'database_schema_version' => 'Version du schéma de base de données',
|
||||
'date' => 'Date',
|
||||
'days' => 'jours',
|
||||
'debug' => 'Débogage',
|
||||
|
@ -380,6 +387,7 @@ Dossier parent: [folder_path]
|
|||
Utilisateur: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename] : [name] - Commentaire modifié',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Nombre de documents',
|
||||
'document_deleted' => 'Document supprimé',
|
||||
'document_deleted_email' => 'Document supprimé',
|
||||
|
@ -558,13 +566,15 @@ Utilisateur : [username]
|
|||
URL : [url]',
|
||||
'expiry_changed_email_subject' => '[sitename] : [name] - Date d’expiration modifiée',
|
||||
'export' => 'Exporter',
|
||||
'export_user_list_csv' => '',
|
||||
'export_user_list_csv' => 'Exporter les utilisateurs en CSV',
|
||||
'extension_archive' => 'Extension',
|
||||
'extension_changelog' => 'Journal des modifications',
|
||||
'extension_loading' => 'Chargement des extensions…',
|
||||
'extension_manager' => 'Gestionnaire d\'extensions',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Installées',
|
||||
'extension_mgr_no_upload' => 'L’ajout de nouvelles extensions n’est pas possible car le répertoire des extensions n’est pas accessible en écriture.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Disponibles',
|
||||
'extension_version_list' => 'Versions',
|
||||
'february' => 'Février',
|
||||
|
@ -672,13 +682,14 @@ URL: [url]',
|
|||
'import_fs' => 'Importer depuis le système de fichiers',
|
||||
'import_fs_warning' => 'L’importation peut se faire à partir du dossier de dépôt personnel uniquement. Tous les sous-dossiers et fichiers seront importés. Les fichiers seront immédiatement publiés.',
|
||||
'import_users' => 'Importer des utilisateurs',
|
||||
'import_users_addnew' => '',
|
||||
'import_users_update' => '',
|
||||
'import_users_addnew' => 'Ajouter de nouveaux utilisateurs',
|
||||
'import_users_update' => 'Mettre à jour des utilisateurs existants',
|
||||
'include_content' => 'Inclure le contenu',
|
||||
'include_documents' => 'Inclure les documents',
|
||||
'include_subdirectories' => 'Inclure les sous-dossiers',
|
||||
'indexing_tasks_in_queue' => 'Opérations d’indexation en attente',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Terminé',
|
||||
'index_error' => 'Erreur',
|
||||
'index_folder' => 'Dossier Index',
|
||||
|
@ -692,7 +703,7 @@ URL: [url]',
|
|||
'inherits_access_copy_msg' => 'Recopier la liste des accès hérités',
|
||||
'inherits_access_empty_msg' => 'Commencer avec une liste d\'accès vide',
|
||||
'inherits_access_msg' => 'L\'accès est hérité.',
|
||||
'installed_php_extensions' => '',
|
||||
'installed_php_extensions' => 'Extensions PHP installées',
|
||||
'internal_error' => 'Erreur interne',
|
||||
'internal_error_exit' => 'Erreur interne. Impossible d\'achever la demande.',
|
||||
'invalid_access_mode' => 'Droits d\'accès invalides',
|
||||
|
@ -808,7 +819,7 @@ URL: [url]',
|
|||
'missing_checksum' => 'Checksum manquante',
|
||||
'missing_file' => 'Fichier manquant',
|
||||
'missing_filesize' => 'Taille de fichier manquante',
|
||||
'missing_php_extensions' => '',
|
||||
'missing_php_extensions' => 'Extensions PHP manquantes',
|
||||
'missing_reception' => 'Réception manquante',
|
||||
'missing_request_object' => '',
|
||||
'missing_transition_user_group' => 'Utilisateur/groupe manquant pour transition',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => 'Aucune action n\'est nécessaire',
|
||||
'no_approval_needed' => 'Aucune approbation en attente',
|
||||
'no_attached_files' => 'Aucun fichier attaché',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'Le répertoire de sauvegarde n’est pas défini.',
|
||||
'no_current_version' => 'Vous utilisez une ancienne version de SeedDMS. La dernière version disponible est la [latestversion].',
|
||||
'no_default_keywords' => 'Aucun mot-clé disponible',
|
||||
|
@ -966,7 +978,7 @@ En cas de problème persistant, veuillez contacter votre administrateur.',
|
|||
'pending_revision' => 'Révisions en attente',
|
||||
'pending_workflows' => 'Workflows en attente',
|
||||
'personal_default_keywords' => 'Mots-clés personnels',
|
||||
'php_info' => '',
|
||||
'php_info' => 'Informations PHP',
|
||||
'pl_PL' => 'Polonais',
|
||||
'possible_substitutes' => 'Substituts',
|
||||
'preset_expires' => 'Expiration prédéfinie',
|
||||
|
@ -1161,7 +1173,7 @@ URL : [url]',
|
|||
'rm_from_clipboard' => 'Supprimer du presse-papier',
|
||||
'rm_group' => 'Supprimer ce groupe',
|
||||
'rm_role' => 'Supprimer ce rôle',
|
||||
'rm_task' => '',
|
||||
'rm_task' => 'Supprimer la tâche',
|
||||
'rm_transmittal' => 'Supprimer la transmission',
|
||||
'rm_transmittalitem' => 'Supprimer l’élément',
|
||||
'rm_user' => 'Supprimer cet utilisateur',
|
||||
|
@ -1216,8 +1228,8 @@ URL : [url]',
|
|||
'search_results_access_filtered' => 'L\'accès à certains résultats de la recherche pourrait être refusé.',
|
||||
'search_time' => 'Temps écoulé: [time] sec.',
|
||||
'seconds' => 'secondes',
|
||||
'seeddms_info' => '',
|
||||
'seeddms_version' => '',
|
||||
'seeddms_info' => 'Informations sur SeedDMS',
|
||||
'seeddms_version' => 'Version de SeedDMS',
|
||||
'selection' => 'Sélection',
|
||||
'select_attrdefgrp_show' => 'Choisir quand afficher',
|
||||
'select_attribute_value' => 'Sélectionnez la valeur de l’attribut',
|
||||
|
@ -1276,12 +1288,12 @@ Nom : [username]
|
|||
'settings_allowReviewerOnly' => 'Permettre d’affecter l’examinateur uniquement',
|
||||
'settings_allowReviewerOnly_desc' => 'Activer cette option pour permettre d’affecter un examinateur mais pas d’approbateur dans le mode de Workflow traditionnel.',
|
||||
'settings_apache_mod_rewrite' => 'Apache - Module Rewrite',
|
||||
'settings_apiKey' => '',
|
||||
'settings_apiKey_desc' => '',
|
||||
'settings_apiOrigin' => '',
|
||||
'settings_apiOrigin_desc' => '',
|
||||
'settings_apiUserId' => '',
|
||||
'settings_apiUserId_desc' => '',
|
||||
'settings_apiKey' => 'Clé d’authentification pour l’API REST',
|
||||
'settings_apiKey_desc' => 'Cette clé est utilisée pour l’authentification alternative via l\'API REST. Utilisez une chaîne de 32 caractères.',
|
||||
'settings_apiOrigin' => 'Origines autorisées pour les appels à l’API',
|
||||
'settings_apiOrigin_desc' => 'Liste d’adresses séparées par des points-virgules qui sont autorisées à accéder à l’API REST. Chaque adresse doit être spécifiée sous la forme <protocole>://<domaine>[:<port>]. Le port est facultatif. Si ce champ reste vide, l’accès est libre.',
|
||||
'settings_apiUserId' => 'Utilisateur de l’API REST',
|
||||
'settings_apiUserId_desc' => 'Cet utilisateur sera utilisé par l\'API REST, à condition que l’authentification par clé API soit configurée.',
|
||||
'settings_Authentication' => 'Paramètres d\'authentification',
|
||||
'settings_autoLoginUser' => 'Connexion automatique',
|
||||
'settings_autoLoginUser_desc' => 'Utiliser l’ID de cet utilisateur pour se connecter automatiquement. Ce type d’accès ne permet pas la création de nouveaux comptes.',
|
||||
|
@ -1652,7 +1664,7 @@ Nom : [username]
|
|||
'site_brand' => '',
|
||||
'sk_SK' => 'Slovaque',
|
||||
'sort_by_date' => 'Trier par date',
|
||||
'sort_by_expiration_date' => '',
|
||||
'sort_by_expiration_date' => 'Trier par date d’expiration',
|
||||
'sort_by_name' => 'Trier par nom',
|
||||
'sort_by_sequence' => 'Trier par position',
|
||||
'space_used_on_data_folder' => 'Espace utilisé dans le répertoire de données',
|
||||
|
@ -1662,7 +1674,7 @@ Nom : [username]
|
|||
'splash_add_group' => 'Nouveau groupe ajouté',
|
||||
'splash_add_group_member' => 'Nouveau membre ajouté au groupe',
|
||||
'splash_add_role' => 'Nouveau rôle ajouté',
|
||||
'splash_add_task' => '',
|
||||
'splash_add_task' => 'Nouvelle tâche ajoutée',
|
||||
'splash_add_to_transmittal' => 'Ajouter à la transmission',
|
||||
'splash_add_transmittal' => 'Ajouté à la transmission',
|
||||
'splash_add_user' => 'Nouvel utilisateur ajouté',
|
||||
|
@ -1786,7 +1798,7 @@ Nom : [username]
|
|||
'takeOverIndReviewer' => 'Récupérer les examinateurs de la dernière version.',
|
||||
'takeOverIndReviewers' => 'Récupérer les examinateurs individuels',
|
||||
'tasks' => 'Tâches',
|
||||
'task_core_expireddocs_days' => '',
|
||||
'task_core_expireddocs_days' => 'jours',
|
||||
'task_description' => 'Description',
|
||||
'task_disabled' => 'Désactivée',
|
||||
'task_frequency' => 'Fréquence',
|
||||
|
@ -1822,7 +1834,7 @@ Nom : [username]
|
|||
'to' => 'Au',
|
||||
'toggle_manager' => 'Basculer \'Responsable\'',
|
||||
'toggle_qrcode' => 'Afficher/masquer le QR code',
|
||||
'total' => '',
|
||||
'total' => 'Total',
|
||||
'to_before_from' => 'La date de fin ne peut pas être avant la date de début.',
|
||||
'transfer_content' => 'Transférer le contenu',
|
||||
'transfer_document' => 'Transférer le document',
|
||||
|
@ -1855,6 +1867,7 @@ URL : [url]',
|
|||
'tr_TR' => 'Turc',
|
||||
'tuesday' => 'Mardi',
|
||||
'tuesday_abbr' => 'Mar.',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Type',
|
||||
'type_to_filter' => 'Filtrer dans la liste',
|
||||
'type_to_search' => 'Effectuer une recherche',
|
||||
|
@ -1891,7 +1904,7 @@ URL : [url]',
|
|||
'uploading_zerosize' => 'Chargement d\'un fichier vide. Chargement annulé.',
|
||||
'used_discspace' => 'Espace disque utilisé',
|
||||
'user' => 'Utilisateur',
|
||||
'userdata_file' => '',
|
||||
'userdata_file' => 'Données utilisateur',
|
||||
'userid_groupid' => 'ID utilisateur/ID groupe',
|
||||
'users' => 'Utilisateurs',
|
||||
'users_and_groups' => 'Utilisateurs/groupes',
|
||||
|
|
|
@ -156,6 +156,7 @@ Internet poveznica: [url]',
|
|||
'attrdef_management' => 'Upravljanje definicijama atributa',
|
||||
'attrdef_maxvalues' => 'Max. broj vrijednosti',
|
||||
'attrdef_minvalues' => 'Min. broj vrijednosti',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimalni broj vrijednosti je veći od maksimalnog broja vrijednosti',
|
||||
'attrdef_multiple' => 'Dozvoli više vrijednosti',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -164,15 +165,21 @@ Internet poveznica: [url]',
|
|||
'attrdef_noname' => 'Nedostaje naziv za definiciju atributa',
|
||||
'attrdef_objtype' => 'Vrsta objekta',
|
||||
'attrdef_regex' => 'Pravilni izraz',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Vrsta',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Datum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Integer',
|
||||
'attrdef_type_string' => 'String',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Skup vrijednosti',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atributi',
|
||||
'attribute_changed_email_body' => 'Promijenjen atribut
|
||||
Dokument: [name]
|
||||
|
@ -373,6 +380,7 @@ Glavna mapa: [folder_path]
|
|||
Korisnik: [username]
|
||||
Internet poveznica: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Promijenjen komentar',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Izbrisan dokument',
|
||||
'document_deleted_email' => 'Izbrisan dokument',
|
||||
|
@ -551,8 +559,10 @@ Internet poveznica: [url]',
|
|||
'extension_changelog' => 'Popis promjena',
|
||||
'extension_loading' => 'Učitavanje dodataka…',
|
||||
'extension_manager' => 'Upravljanje ekstenzijama',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => 'Upload novih ekstenzija nije moguć pošto mapa ekstenzija nema dozvolu pisanja',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Dostupno',
|
||||
'extension_version_list' => 'Inačice',
|
||||
'february' => 'Veljača',
|
||||
|
@ -660,6 +670,7 @@ Internet poveznica: [url]',
|
|||
'include_subdirectories' => 'Sadrži podmape',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Mapa indeksa',
|
||||
|
@ -867,6 +878,7 @@ Internet poveznica: [url]',
|
|||
'no_action' => 'Nema zahtjevane radnje',
|
||||
'no_approval_needed' => 'Nema odobrenja na čekanju.',
|
||||
'no_attached_files' => 'Nema priloženih datoteka',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Koristite na staru verziju ProsperaDMS-a. Najnovija dostupna verzija je[latestversion].',
|
||||
'no_default_keywords' => 'Nema dostupnih ključnih riječi',
|
||||
|
@ -1816,6 +1828,7 @@ Internet poveznica: [url]',
|
|||
'tr_TR' => 'Turski',
|
||||
'tuesday' => 'Utorak',
|
||||
'tuesday_abbr' => 'Ut',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Unesi za pretragu',
|
||||
|
|
|
@ -151,6 +151,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Jellemző meghatározás kezelése',
|
||||
'attrdef_maxvalues' => 'Legnagyobb érték',
|
||||
'attrdef_minvalues' => 'Legkisebb érték',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'A minimum érték magasabb mint a maximum érték',
|
||||
'attrdef_multiple' => 'Több érték is megadható',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -159,15 +160,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Hiányzó név a tulajdonság megadásánál',
|
||||
'attrdef_objtype' => 'Objektum típus',
|
||||
'attrdef_regex' => 'Szabályos kifejezés',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Típus',
|
||||
'attrdef_type_boolean' => 'Logikai',
|
||||
'attrdef_type_date' => 'Dátum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Szám tizedesjeggyel',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Egész szám',
|
||||
'attrdef_type_string' => 'Szöveg',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Értékek beállítása',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Jellemzők',
|
||||
'attribute_changed_email_body' => 'Jellemző módosult
|
||||
Dokumentum: [name]
|
||||
|
@ -368,6 +375,7 @@ Szülő mappa: [folder_path]
|
|||
Felhasználó: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Megjegyzés módosult',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Dokumentumok száma',
|
||||
'document_deleted' => 'Dokumentum törölve',
|
||||
'document_deleted_email' => 'Dokumentum törölve',
|
||||
|
@ -546,8 +554,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Változásnapló',
|
||||
'extension_loading' => 'Kiterjesztések betöltése ...',
|
||||
'extension_manager' => 'Bővítmények kezelése',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Telepített',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Telepíthető',
|
||||
'extension_version_list' => 'Verziók',
|
||||
'february' => 'Február',
|
||||
|
@ -655,6 +665,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Tartalmazó alkönyvtárak',
|
||||
'indexing_tasks_in_queue' => 'Indexelés folyamatban',
|
||||
'index_converters' => 'Index konvertáló',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Mappa indexelése',
|
||||
|
@ -863,6 +874,7 @@ URL: [url]',
|
|||
'no_action' => 'Nincs teendő',
|
||||
'no_approval_needed' => 'Nincs folyamatban lévő jóváhagyás.',
|
||||
'no_attached_files' => 'Nincsenek csatolt állományok',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Ön a SeedDMS régebbi változatát futtatja. A legutolsó elérhető verzió [latestversion].',
|
||||
'no_default_keywords' => 'Nincsenek elérhető kulcsszavak',
|
||||
|
@ -1794,6 +1806,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Török',
|
||||
'tuesday' => 'Kedd',
|
||||
'tuesday_abbr' => 'Ke',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Adja meg a keresendő kifejezést',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Gestione attributi',
|
||||
'attrdef_maxvalues' => 'Numero di valori max.',
|
||||
'attrdef_minvalues' => 'Numero di valori min.',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Il numero minimo di valori è maggiore del massimo',
|
||||
'attrdef_multiple' => 'Permetti valori multipli',
|
||||
'attrdef_multiple_needs_valueset' => 'Attributo definizione con i molteplici valori esigenze un valore impostato.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Nella definizione dell\'attributo manca il nome',
|
||||
'attrdef_objtype' => 'Tipo di oggetto',
|
||||
'attrdef_regex' => 'Espressione regolare',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Tipo',
|
||||
'attrdef_type_boolean' => 'Booleano',
|
||||
'attrdef_type_date' => 'Data',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Virgola mobile',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Intero',
|
||||
'attrdef_type_string' => 'Stringa',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Set di valori',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Attributi',
|
||||
'attribute_changed_email_body' => 'Attributo modificato
|
||||
Documento: [name]
|
||||
|
@ -373,6 +380,7 @@ Cartella: [folder_path]
|
|||
Utente: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Commento modificato',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Numero di documenti',
|
||||
'document_deleted' => 'Documento cancellato',
|
||||
'document_deleted_email' => 'Documento cancellato',
|
||||
|
@ -556,8 +564,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Registro delle modifiche delle estensioni',
|
||||
'extension_loading' => 'Caricamento estensioni...',
|
||||
'extension_manager' => 'Gestisci le estensioni dei files',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Installato',
|
||||
'extension_mgr_no_upload' => 'Il caricamento della nuova estensione non è possibile perchè la cartella delle estensioni non ha diritti di scrittura',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Disponibile',
|
||||
'extension_version_list' => 'Versioni',
|
||||
'february' => 'Febbraio',
|
||||
|
@ -665,6 +675,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Includi sottocartelle',
|
||||
'indexing_tasks_in_queue' => 'Operazione di indicizzazione in corso',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Eseguito',
|
||||
'index_error' => 'Errore di indicizzazione',
|
||||
'index_folder' => 'Indicizza cartella',
|
||||
|
@ -873,6 +884,7 @@ URL: [url]',
|
|||
'no_action' => 'Non è richiesto alcun intervento',
|
||||
'no_approval_needed' => 'Non è richiesta approvazione.',
|
||||
'no_attached_files' => 'Nessun file allegato',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'Cartella di Backup non configurata',
|
||||
'no_current_version' => 'La corrente versione di SeedDMS non è aggiornata. La versione più recente disponibile è la [latestversion].',
|
||||
'no_default_keywords' => 'Nessuna parola-chiave disponibile',
|
||||
|
@ -1843,6 +1855,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turco',
|
||||
'tuesday' => 'Martedì',
|
||||
'tuesday_abbr' => 'Mar',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Tipo',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Digitare per cercare',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => '속성 관리',
|
||||
'attrdef_maxvalues' => '최대수',
|
||||
'attrdef_minvalues' => '최소수',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '최소값은 최대 값 보다 큽니다',
|
||||
'attrdef_multiple' => '여러 값 허용',
|
||||
'attrdef_multiple_needs_valueset' => '정의된 복수의 속성',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => '속성 정의명이 없습',
|
||||
'attrdef_objtype' => '개체 유형',
|
||||
'attrdef_regex' => '정규 표현식',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => '유형',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => '날짜',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '전자우편',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '정수',
|
||||
'attrdef_type_string' => '문자열',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => '값 설정',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => '속성',
|
||||
'attribute_changed_email_body' => '속성 변경
|
||||
문서: [name]
|
||||
|
@ -376,6 +383,7 @@ URL: [url]',
|
|||
사용자: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - 주석 변경됨',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '문서 수',
|
||||
'document_deleted' => '삭제된 문서',
|
||||
'document_deleted_email' => '삭제된 문서',
|
||||
|
@ -552,8 +560,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => '확장자 관리',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => '2월',
|
||||
|
@ -661,6 +671,7 @@ URL: [url]',
|
|||
'include_subdirectories' => '하위 디렉터리 포함',
|
||||
'indexing_tasks_in_queue' => '큐에서 대기중인 색인 작업들',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '마침',
|
||||
'index_error' => '오류',
|
||||
'index_folder' => '인덱스 폴더',
|
||||
|
@ -869,6 +880,7 @@ URL : [url]',
|
|||
'no_action' => '조치가 필요하지 않습니다',
|
||||
'no_approval_needed' => '승인을 보류하지 않습니다',
|
||||
'no_attached_files' => '첨부 파일 없음',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => '당신은 이전 버전의 SeedDMS를 사용하고 있습니다. 사용 가능한 최신 버전은 [latestversion] 입니다.',
|
||||
'no_default_keywords' => '사용 가능한 키워드가 존재하지 않습니다.',
|
||||
|
@ -1810,6 +1822,7 @@ URL : [url]',
|
|||
'tr_TR' => '터키어',
|
||||
'tuesday' => '화요일',
|
||||
'tuesday_abbr' => '화',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '유형',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => '유형 검색',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'ການຈັດການຄວາມຫມາຍຂອງຄຳວ່າລັກສະນະ',
|
||||
'attrdef_maxvalues' => 'ຈຳນວນ ມູນຄ່າຫຼາຍສຸດ',
|
||||
'attrdef_minvalues' => 'ຈຳນວນ ມູນຄ່ານ້ອຍສຸດ',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'ຈຳນວນມູນຄ່ານ້ອຍສຸດຫຼາຍກວ່າມູນຄ່າຫຼາຍສຸດ',
|
||||
'attrdef_multiple' => 'ອະນຸຍາດຄ່າຫຼາຍຄ່າ',
|
||||
'attrdef_multiple_needs_valueset' => 'ນິຍາມແອັດທີບິວທີ່ມີຫຼາຍຄ່າຕ້ອງມີການຕັ້ງຄ່າ',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'ບໍ່ມີຊືຄຳນິຍາມຂອງຄຳວ່າລັກສະນະ',
|
||||
'attrdef_objtype' => 'ຊະນຶດຂອງວັດຖຸ',
|
||||
'attrdef_regex' => 'ໂດຍທົ່ວໄປແລ້ວ',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'ຊະນຶດ',
|
||||
'attrdef_type_boolean' => 'ບູລຶນ',
|
||||
'attrdef_type_date' => 'ວັນທີ',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'ອີເມວ',
|
||||
'attrdef_type_float' => 'ລອຍ',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'ຈຳນວນເຕັມ',
|
||||
'attrdef_type_string' => 'ເຊື່ອກ',
|
||||
'attrdef_type_url' => 'ຢູ່ອາແອວ',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'ກຳນົດຄ່າຕ່າງ',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'ແອັດທີບິວ',
|
||||
'attribute_changed_email_body' => 'ປ່ຽນແອັດທີບິວແລ້ວ
|
||||
ເອກະສານ: [name]
|
||||
|
@ -371,6 +378,7 @@ URL: [url]',
|
|||
ຜູ້ໄຊ້: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]:[name] - ປ່ຽນຄວາມຄິດເຫັນແລ້ວ',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'ຈຳນວນເອກະສານ',
|
||||
'document_deleted' => ']ລົບເອກະສານແລ້ວ',
|
||||
'document_deleted_email' => 'ລົບເອກະສານແລ້ວ',
|
||||
|
@ -549,8 +557,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'ການຈັດການສ່ວນຂະຫຍາຍ',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'ເດືອນ ກຸມພາ',
|
||||
|
@ -658,6 +668,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'ລວມໄດເລັກທໍລີຍ່ອຍ',
|
||||
'indexing_tasks_in_queue' => 'ຈັດທຳດັດສະນີວຽກໃນຄິວ',
|
||||
'index_converters' => 'ການແປງເອກະສານດັດສະນີ',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'ສຳເລັດ',
|
||||
'index_error' => 'ຂໍ້ຜິດພາດ',
|
||||
'index_folder' => 'ໂຟລເດີດັດສະນີ',
|
||||
|
@ -866,6 +877,7 @@ URL: [url]',
|
|||
'no_action' => 'ບໍ່ຕ້ອງດຳເນີນການໄດໆ',
|
||||
'no_approval_needed' => 'ຍັງບໍ່ມີການອະນຸມັດ',
|
||||
'no_attached_files' => 'ບໍ່ມີການແນບໄຟລມາ',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'ເຈົ້າກຳລັງນຳໄຊ້ເວີຊັນເກົ່າຄື ຊິສ DMS. ສວນເວີຊັນທີ່ມີຢູ່ລ້າສຸດຄື [latestversion]',
|
||||
'no_default_keywords' => 'ບໍ່ມີຄຳຫລັກ',
|
||||
|
@ -1836,6 +1848,7 @@ URL: [url]',
|
|||
'tr_TR' => 'ຕວກກີ',
|
||||
'tuesday' => 'ວັນອັງຄານ',
|
||||
'tuesday_abbr' => 'ວັນອັງຄານ',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'ຊະນິດ',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'ພິມເພື່ອຄົ້ນຫາ',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Styring av egenskaps definisjon',
|
||||
'attrdef_maxvalues' => 'Maks. antall verdier',
|
||||
'attrdef_minvalues' => 'Min. antall verdier',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Verdien av minste tall er større en verdien av maksimum tall',
|
||||
'attrdef_multiple' => 'Tillat flere verdier',
|
||||
'attrdef_multiple_needs_valueset' => 'Egenskaps definisjon med flere verdier trenger verdisettes.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Mangler navn for egenskapsdefinisjon',
|
||||
'attrdef_objtype' => 'Objekt type',
|
||||
'attrdef_regex' => 'Standard uttrykk',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Type',
|
||||
'attrdef_type_boolean' => 'Logisk',
|
||||
'attrdef_type_date' => 'Dato',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-post',
|
||||
'attrdef_type_float' => 'Flyttall',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Heltall',
|
||||
'attrdef_type_string' => 'Tekststreng',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Verdisett',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Egenskap',
|
||||
'attribute_changed_email_body' => 'Endret egenskap
|
||||
Dokument: [name]
|
||||
|
@ -380,6 +387,7 @@ Overordnet mappe: [folder_path]
|
|||
Bruker: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar endret',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Antall dokumenter',
|
||||
'document_deleted' => 'Dokumentet slettet',
|
||||
'document_deleted_email' => 'Dokumentet er slettet',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Endringslogg',
|
||||
'extension_loading' => 'Laster inn utvidelser ...',
|
||||
'extension_manager' => 'Administrer utvidelser',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Innstallert',
|
||||
'extension_mgr_no_upload' => 'Det er ikke mulig å laste opp nye utvidelser fordi utvidelseskatalogen ikke kan skrives til.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Tilgjengelig',
|
||||
'extension_version_list' => 'Versjon',
|
||||
'february' => 'Februar',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Inkludere undermapper',
|
||||
'indexing_tasks_in_queue' => 'Indekserings oppgaver i kø',
|
||||
'index_converters' => 'Index konvertering',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Ferdig',
|
||||
'index_error' => 'Feil',
|
||||
'index_folder' => 'Indekseringsmappe',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => 'Ingen handling nødvendig',
|
||||
'no_approval_needed' => 'Ingen godkjenning i påvente.',
|
||||
'no_attached_files' => 'Ingen vedlagte filer',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'Sikkerhetskopi mappe er ikke angitt.',
|
||||
'no_current_version' => 'Du har en gammal version av SeedDMS. Siste versionen er [latestversion].',
|
||||
'no_default_keywords' => 'Ingen søkeord tilgjengelig',
|
||||
|
@ -1849,6 +1861,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Tyrkisk',
|
||||
'tuesday' => 'Tirsdag',
|
||||
'tuesday_abbr' => 'Ti',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Type',
|
||||
'type_to_filter' => 'Skriv for filter liste',
|
||||
'type_to_search' => 'Skriv for å søke',
|
||||
|
|
|
@ -149,6 +149,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Kenmerkdefinitie-beheer',
|
||||
'attrdef_maxvalues' => 'Max. aantal waarden',
|
||||
'attrdef_minvalues' => 'Min. aantal waarden',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Het minimum aantal is groter dan het maximum aantal',
|
||||
'attrdef_multiple' => 'Meerdere waarden toegestaan',
|
||||
'attrdef_multiple_needs_valueset' => 'Meerdere waarden nodig',
|
||||
|
@ -157,15 +158,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Geen naam voor attribuut definitie',
|
||||
'attrdef_objtype' => 'Object type',
|
||||
'attrdef_regex' => 'Veelgebruikte uitdrukking',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Type',
|
||||
'attrdef_type_boolean' => 'attribuut: boolean',
|
||||
'attrdef_type_date' => 'attribuut: datum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'attribuut: email',
|
||||
'attrdef_type_float' => 'attribuut: decimaal getal',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'attribuut: geheel getal',
|
||||
'attrdef_type_string' => 'attribuut: string',
|
||||
'attrdef_type_url' => 'attribuut: url',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Verzameling waarden',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Attributen',
|
||||
'attribute_changed_email_body' => 'Attribuut gewijzigd
|
||||
Document: [name]
|
||||
|
@ -366,6 +373,7 @@ Bovenliggende map: [folder_path]
|
|||
Gebruiker: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Commentaar gewijzigd',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Aantal documenten',
|
||||
'document_deleted' => 'Document verwijderd',
|
||||
'document_deleted_email' => 'Document verwijderd',
|
||||
|
@ -544,8 +552,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Overzicht wijzigingen',
|
||||
'extension_loading' => 'Laden van extensies ...',
|
||||
'extension_manager' => 'Beheer uitbreidingen',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Geïnstalleerd',
|
||||
'extension_mgr_no_upload' => 'Installeren nieuwe extensies is niet mogelijk omdat de extensies map niet schrijfbaar is.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Beschikbaar',
|
||||
'extension_version_list' => 'Versies',
|
||||
'february' => 'februari',
|
||||
|
@ -653,6 +663,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Inclusief submappen',
|
||||
'indexing_tasks_in_queue' => 'Indexerings taken in wachtrij',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Indexering gereed',
|
||||
'index_error' => 'Fout bij indexering',
|
||||
'index_folder' => 'Inhoud',
|
||||
|
@ -860,6 +871,7 @@ URL: [url]',
|
|||
'no_action' => 'Geen actie nodig',
|
||||
'no_approval_needed' => 'Geen goedkeuring gaande.',
|
||||
'no_attached_files' => 'Geen bijlagen',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'U werkt met een oude versie van SeedDMS. De laatste versie beschikbaar is [latestversion].',
|
||||
'no_default_keywords' => 'Geen Sleutelwoorden beschikbaar',
|
||||
|
@ -1833,6 +1845,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turks',
|
||||
'tuesday' => 'dinsdag',
|
||||
'tuesday_abbr' => 'di',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Soort hook',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'zoeken naar',
|
||||
|
|
|
@ -144,6 +144,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Zarządzanie definicją atrybutu',
|
||||
'attrdef_maxvalues' => 'Max. ilość wartości',
|
||||
'attrdef_minvalues' => 'Min. ilość wartości',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimalna ilość wartości jest większa od ich maksymalnej ilości',
|
||||
'attrdef_multiple' => 'Pozwól na wiele wartości',
|
||||
'attrdef_multiple_needs_valueset' => 'Definiowanie atrybutów z wieloma wartościami wymaga podania tych wartości',
|
||||
|
@ -152,15 +153,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Brak nazwy dla definicji atrybutu',
|
||||
'attrdef_objtype' => 'Typ obiektu',
|
||||
'attrdef_regex' => 'Wyrażenie regularne',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Typ',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Data',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Liczna zmiennoprzecinkowa',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Liczba całkowita',
|
||||
'attrdef_type_string' => 'Ciąg znaków',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Zestaw wartości',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atrybuty',
|
||||
'attribute_changed_email_body' => 'Zmiana atrybutu
|
||||
Dokument: [name]
|
||||
|
@ -361,6 +368,7 @@ Folder macierzysty: [folder_path]
|
|||
Użytkownik: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Zmiana komentarza',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Liczba dokumentów',
|
||||
'document_deleted' => 'Dokument usunięty',
|
||||
'document_deleted_email' => 'Dokument usunięty',
|
||||
|
@ -539,8 +547,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Log Zmian',
|
||||
'extension_loading' => 'Wgrywam dodatki...',
|
||||
'extension_manager' => 'Zarządzanie rozszerzeniami',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Zainstalowane',
|
||||
'extension_mgr_no_upload' => 'Wgrywanie nowych rozszerzeń jest niemożliwe ponieważ folder rozszerzeń jest zablokowany do zapisu',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Dostępne',
|
||||
'extension_version_list' => 'Wersje',
|
||||
'february' => 'Luty',
|
||||
|
@ -648,6 +658,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Uwzględnij podkatalogi',
|
||||
'indexing_tasks_in_queue' => 'Zadanie indeksowania w kolejce',
|
||||
'index_converters' => 'Bez zmian',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Gotowy',
|
||||
'index_error' => 'Błąd',
|
||||
'index_folder' => 'Indeksuj folder',
|
||||
|
@ -856,6 +867,7 @@ URL: [url]',
|
|||
'no_action' => 'Żadne działanie nie jest wymagane',
|
||||
'no_approval_needed' => 'Nie ma dokumentów oczekujących na akceptację.',
|
||||
'no_attached_files' => 'Brak załączonych plików',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'Katalog kopii zapasowej nie jest ustawiony',
|
||||
'no_current_version' => 'Brak aktualnej wersji',
|
||||
'no_default_keywords' => 'Nie ma słów kluczowych',
|
||||
|
@ -1779,6 +1791,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turecki',
|
||||
'tuesday' => 'Wtorek',
|
||||
'tuesday_abbr' => 'Wt',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Typ',
|
||||
'type_to_filter' => 'Wpisz, aby przefiltrować listę',
|
||||
'type_to_search' => 'Wpisz wyszukiwane',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Gerência de definição de atributo',
|
||||
'attrdef_maxvalues' => 'Max. número de valores',
|
||||
'attrdef_minvalues' => 'Min. número de valores',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Número mínimo de valores é maior do que o número máximo de valores',
|
||||
'attrdef_multiple' => 'Permitir múltiplos valores',
|
||||
'attrdef_multiple_needs_valueset' => 'A definição de atributo com vários valores precisa de um conjunto de valores.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Está faltando o nome de definição de atributo',
|
||||
'attrdef_objtype' => 'Tipo de objeto',
|
||||
'attrdef_regex' => 'Expressão regular',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Tipo',
|
||||
'attrdef_type_boolean' => 'Binário',
|
||||
'attrdef_type_date' => 'Data',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-mail',
|
||||
'attrdef_type_float' => 'Flutuante',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Inteiro',
|
||||
'attrdef_type_string' => 'Texto',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Conjunto de valores',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atributos',
|
||||
'attribute_changed_email_body' => 'Atributo alterado
|
||||
Documento: [name]
|
||||
|
@ -380,6 +387,7 @@ Pasta mãe: [folder_path]
|
|||
Usuário: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Comentário modificado',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Número de documentos',
|
||||
'document_deleted' => 'Documento deletado',
|
||||
'document_deleted_email' => 'Documento eliminado',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Alterações no Log',
|
||||
'extension_loading' => 'Carregando Extensões',
|
||||
'extension_manager' => 'Gerenciar extensões',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Instalado',
|
||||
'extension_mgr_no_upload' => 'O envio de novas extensões não esta disponível pois o diretório Extensões recebeu a atribuição de Somente Leitura.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Disponível',
|
||||
'extension_version_list' => 'Versões',
|
||||
'february' => 'Fevereiro',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Include subdirectories',
|
||||
'indexing_tasks_in_queue' => 'Tarefas de indexação em fila',
|
||||
'index_converters' => 'conversores de índice',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Finalizado',
|
||||
'index_error' => 'Erro',
|
||||
'index_folder' => 'Pasta Raiz',
|
||||
|
@ -886,6 +897,7 @@ URL: [url]',
|
|||
'no_action' => 'Nenhuma ação é requerida',
|
||||
'no_approval_needed' => 'Nenhuma aprovação pendente.',
|
||||
'no_attached_files' => 'Não há arquivos anexados',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => 'Nenhum diretório de backup',
|
||||
'no_current_version' => 'Você está executando uma versão atualizda do Sistema GED. A última versão disponível é [latestversion].',
|
||||
'no_default_keywords' => 'não há palavras-chave disponíveis',
|
||||
|
@ -1855,6 +1867,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turco',
|
||||
'tuesday' => 'Terça-feira',
|
||||
'tuesday_abbr' => 'Te',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'tipo de gancho',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Tipo de pesquisa',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Management definitii atribute',
|
||||
'attrdef_maxvalues' => 'Numar maxim de valori',
|
||||
'attrdef_minvalues' => 'Numar minim de valori',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Numărul minim de valori este mai mare decât numărul maxim de valori',
|
||||
'attrdef_multiple' => 'Permiteți valori multiple',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Lipsește numele pentru definirea atributului',
|
||||
'attrdef_objtype' => 'Tip obiect',
|
||||
'attrdef_regex' => 'Expresie regulată',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Tip',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Data',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Intreg',
|
||||
'attrdef_type_string' => 'String',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Set de valori',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atribute',
|
||||
'attribute_changed_email_body' => 'Atribut schimbat
|
||||
Document: [name]
|
||||
|
@ -373,6 +380,7 @@ Folder parinte: [folder_path]
|
|||
Utilizator: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Comentariu schimbat',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Document șters',
|
||||
'document_deleted_email' => 'Document șters',
|
||||
|
@ -551,8 +559,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => 'Se incarca extensiile',
|
||||
'extension_manager' => 'Gestionați extensiile',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Instalata',
|
||||
'extension_mgr_no_upload' => 'Nu se poate incarca o extensie noua pentru ca directorul nu are drepturi de scriere',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Disponibila',
|
||||
'extension_version_list' => 'Versiuni',
|
||||
'february' => 'Februarie',
|
||||
|
@ -660,6 +670,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Include subfoldere',
|
||||
'indexing_tasks_in_queue' => 'Actiuni de indexare in stiva',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Index folder',
|
||||
|
@ -868,6 +879,7 @@ URL: [url]',
|
|||
'no_action' => 'Nici o acțiune necesară',
|
||||
'no_approval_needed' => 'Nici o aprobare în așteptare.',
|
||||
'no_attached_files' => 'Nu sunt fișiere atașate',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Utilizați o versiune veche de SeedDMS. Cea mai recentă versiune disponibilă este [latestversion].',
|
||||
'no_default_keywords' => 'Nu există cuvinte cheie disponibile',
|
||||
|
@ -1817,6 +1829,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turcă',
|
||||
'tuesday' => 'Marți',
|
||||
'tuesday_abbr' => 'Ma',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Tastați pentru a căuta',
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
//
|
||||
// Translators: Admin (1682)
|
||||
// Translators: Admin (1684)
|
||||
|
||||
$text = array(
|
||||
'2_factor_auth' => 'Двухфакторная аутентификация',
|
||||
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Управление определениями атрибутов',
|
||||
'attrdef_maxvalues' => 'Макс. количество значений',
|
||||
'attrdef_minvalues' => 'Мин. количество значений',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Минимальное значений превышает максимальное значение',
|
||||
'attrdef_multiple' => 'Несколько значений',
|
||||
'attrdef_multiple_needs_valueset' => 'Атрибут с несколькими значениями нуждается в установке значений',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Отсутствует имя для определения атрибута',
|
||||
'attrdef_objtype' => 'Тип объекта',
|
||||
'attrdef_regex' => 'Регулярное выражение',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Тип',
|
||||
'attrdef_type_boolean' => 'Булево',
|
||||
'attrdef_type_date' => 'Дата',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-mail',
|
||||
'attrdef_type_float' => 'Вещественное',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Целое',
|
||||
'attrdef_type_string' => 'Строка',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Набор значений',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Атрибуты',
|
||||
'attribute_changed_email_body' => 'Изменён атрибут
|
||||
Документ: [name]
|
||||
|
@ -373,6 +380,7 @@ URL: [url]',
|
|||
Пользователь: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: изменён комментарий к «[name]»',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Количество документов',
|
||||
'document_deleted' => 'Документ удалён',
|
||||
'document_deleted_email' => 'Документ удалён',
|
||||
|
@ -551,8 +559,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Управление расширениями',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Установленные',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Февраль',
|
||||
|
@ -636,7 +646,7 @@ URL: [url]',
|
|||
'group_revision_summary' => '',
|
||||
'guest_login' => 'Войти как гость',
|
||||
'guest_login_disabled' => 'Гостевой вход отключён',
|
||||
'hash' => '',
|
||||
'hash' => 'Хэш',
|
||||
'help' => 'Помощь',
|
||||
'home_folder' => 'Домашний каталог',
|
||||
'hook_name' => 'Имя хука',
|
||||
|
@ -660,6 +670,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Включая подкаталоги',
|
||||
'indexing_tasks_in_queue' => 'Задача индексирования поставлена в очередь',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Полнотекстовый индекс',
|
||||
|
@ -867,6 +878,7 @@ URL: [url]',
|
|||
'no_action' => 'Действие не требуется',
|
||||
'no_approval_needed' => 'Утверждение не требуется',
|
||||
'no_attached_files' => 'Нет вложений',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Вы используете старую версию SeedDMS. Последняя доступная версия [latestversion].',
|
||||
'no_default_keywords' => 'Нет меток',
|
||||
|
@ -1824,6 +1836,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Турецкий',
|
||||
'tuesday' => 'Вторник',
|
||||
'tuesday_abbr' => 'Вт',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Введите запрос',
|
||||
|
@ -1877,7 +1890,7 @@ URL: [url]',
|
|||
'use_comment_of_document' => 'Использовать комментарий документа',
|
||||
'use_default_categories' => 'Использовать предопределённые категории',
|
||||
'use_default_keywords' => 'Использовать предопределённые метки',
|
||||
'valid_till' => '',
|
||||
'valid_till' => 'Действительно до',
|
||||
'version' => 'Версия',
|
||||
'versioning_file_creation' => 'Создать файл версий',
|
||||
'versioning_file_creation_warning' => 'Эта операция создаст файлы версий для всего каталога. После создания файлы версий будут сохранены в каталоге документов.',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Správa definície atribútu',
|
||||
'attrdef_maxvalues' => 'Max. počet hodnôt',
|
||||
'attrdef_minvalues' => 'Min. počet hodnôt',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimum number of values is larger than maximum number of values',
|
||||
'attrdef_multiple' => 'Allow multiple values',
|
||||
'attrdef_multiple_needs_valueset' => 'Attribute definition with multiple values needs value set.',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Chýba názov definície atribútu',
|
||||
'attrdef_objtype' => 'Typ objektu',
|
||||
'attrdef_regex' => 'Regulárny výraz',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Typ',
|
||||
'attrdef_type_boolean' => 'Boolean',
|
||||
'attrdef_type_date' => 'Dátum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-mail',
|
||||
'attrdef_type_float' => 'Float',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Integer',
|
||||
'attrdef_type_string' => 'String',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Nastaviť hodnoty',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Atribúty',
|
||||
'attribute_changed_email_body' => 'Zmenené atribúty
|
||||
Dokumentu: [name]
|
||||
|
@ -380,6 +387,7 @@ Nadradená zložka: [folder_path]
|
|||
Užívateľ: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Komentár sa zmenil',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Počet dokumentov',
|
||||
'document_deleted' => 'Dokument zmazaný',
|
||||
'document_deleted_email' => 'Dokument zmazaný',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Denník zmien',
|
||||
'extension_loading' => 'Nahrávajú sa rozšírenia ...',
|
||||
'extension_manager' => 'Spravovať rozšírenia',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Inštalované',
|
||||
'extension_mgr_no_upload' => 'Uploading new extensions is not possible because the extentension directory is not writable.',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Available',
|
||||
'extension_version_list' => 'Versions',
|
||||
'february' => 'Február',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Vrátane podzložiek',
|
||||
'indexing_tasks_in_queue' => 'Indexovacích úloh vo fronte',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Hotovo',
|
||||
'index_error' => 'Chyba',
|
||||
'index_folder' => 'Indexovať zložku',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => 'Nič sa nevykoná',
|
||||
'no_approval_needed' => 'Neprebieha žiadne schvaľovanie.',
|
||||
'no_attached_files' => 'Žiadne prílohy',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Neaktualizovaná verzia',
|
||||
'no_default_keywords' => 'Nie sú dostupné žiadne kľúčové slová.',
|
||||
|
@ -1857,6 +1869,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turecky',
|
||||
'tuesday' => 'Utorok',
|
||||
'tuesday_abbr' => 'Ut',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Zadajte',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Zadajte na vyhľadanie',
|
||||
|
|
|
@ -157,6 +157,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Hantering av attributdefinitioner',
|
||||
'attrdef_maxvalues' => 'Max tillåtna värde',
|
||||
'attrdef_minvalues' => 'Min tillåtna värde',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimum antal värden är större än maximum antal värden',
|
||||
'attrdef_multiple' => 'Tillåt flera värden',
|
||||
'attrdef_multiple_needs_valueset' => 'Attribut med flera värden behöver definieras.',
|
||||
|
@ -165,15 +166,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Namn för definition av attribut saknas',
|
||||
'attrdef_objtype' => 'Objekttyp',
|
||||
'attrdef_regex' => 'Regulär uttryck',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Typ',
|
||||
'attrdef_type_boolean' => 'Logisk',
|
||||
'attrdef_type_date' => 'Datum',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'E-post',
|
||||
'attrdef_type_float' => 'Flyttal',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Heltal',
|
||||
'attrdef_type_string' => 'Textsträng',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Värden',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Attribut',
|
||||
'attribute_changed_email_body' => 'Ändrat attribut
|
||||
Dokument: [name]
|
||||
|
@ -374,6 +381,7 @@ Kommentar: [new_comment]
|
|||
Användare: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Kommentar ändrat',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Antal dokument',
|
||||
'document_deleted' => 'Dokumentet raderades',
|
||||
'document_deleted_email' => 'Dokument har raderats',
|
||||
|
@ -557,8 +565,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Hantera tillägg',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'februari',
|
||||
|
@ -666,6 +676,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Inkludera underkataloger',
|
||||
'indexing_tasks_in_queue' => 'Indexeringsuppgifter i kö',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => 'Klart',
|
||||
'index_error' => 'Fel',
|
||||
'index_folder' => 'Indexeringskatalog',
|
||||
|
@ -874,6 +885,7 @@ URL: [url]',
|
|||
'no_action' => 'Ingen åtgärd behövs.',
|
||||
'no_approval_needed' => 'Inget godkännande behövs.',
|
||||
'no_attached_files' => 'Inga filer har bifogats.',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Du har en gammal version av SeedDMS. Senaste versionen är [latestversion].',
|
||||
'no_default_keywords' => 'Inga nyckelord tillgängliga',
|
||||
|
@ -1830,6 +1842,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turkiska',
|
||||
'tuesday' => 'Tisdag',
|
||||
'tuesday_abbr' => 'Ti',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => 'Typ',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Skriv för att söka',
|
||||
|
|
|
@ -150,6 +150,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Nitelik tanımı yönetimi',
|
||||
'attrdef_maxvalues' => 'Maks. değer',
|
||||
'attrdef_minvalues' => 'Min. değer',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Minimum değer maksimum değerden büyük',
|
||||
'attrdef_multiple' => 'Birden fazla değere izin ver',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -158,15 +159,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Nitelik tanımlamada isim eksik',
|
||||
'attrdef_objtype' => 'Nesne türü',
|
||||
'attrdef_regex' => 'Düzenli ifade (Regular expression)',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Tür',
|
||||
'attrdef_type_boolean' => 'Mantık',
|
||||
'attrdef_type_date' => 'Tarih',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '',
|
||||
'attrdef_type_float' => '',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'TamSayı',
|
||||
'attrdef_type_string' => 'Dizi',
|
||||
'attrdef_type_url' => '',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Değer',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Nitelik',
|
||||
'attribute_changed_email_body' => 'Değer değişti
|
||||
Doküman: [name]
|
||||
|
@ -367,6 +374,7 @@ Açıklama: [new_comment]
|
|||
Kullanıcı: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - Açıklama değişti',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '',
|
||||
'document_deleted' => 'Doküman silindi',
|
||||
'document_deleted_email' => 'Doküman silindi',
|
||||
|
@ -545,8 +553,10 @@ URL: [url]',
|
|||
'extension_changelog' => 'Değişiklik Listesi',
|
||||
'extension_loading' => 'Uzantı yüklendi',
|
||||
'extension_manager' => 'Uzantıları düzenle',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => 'Yüklendi',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => 'Mevcut',
|
||||
'extension_version_list' => 'Veysionlar',
|
||||
'february' => 'Şubat',
|
||||
|
@ -654,6 +664,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Alt klasörleri kapsa',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Klasörü indeksle',
|
||||
|
@ -862,6 +873,7 @@ URL: [url]',
|
|||
'no_action' => 'İşlem gerekmiyor',
|
||||
'no_approval_needed' => 'Onay bekleyen yok.',
|
||||
'no_attached_files' => 'Ek dosya yok',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Kullandığınız SeedDMS versiyonu eski görünüyor. Son versiyon [latestversion].',
|
||||
'no_default_keywords' => 'Anahtar kelime yok',
|
||||
|
@ -1796,6 +1808,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Türkçe',
|
||||
'tuesday' => 'Salı',
|
||||
'tuesday_abbr' => 'Sa',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Aranacak sözcük yazınız',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => 'Керування визначенням атрибутів',
|
||||
'attrdef_maxvalues' => 'Макс. кількість значень',
|
||||
'attrdef_minvalues' => 'Мін. кількість значень',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => 'Мінімальна кількість значень більша за максимальну кількість значень',
|
||||
'attrdef_multiple' => 'Декілька значень',
|
||||
'attrdef_multiple_needs_valueset' => 'Атрибут з кількома значеннями потребує встановлення значень',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => 'Відсутня назва для визначення атрибуту',
|
||||
'attrdef_objtype' => 'Тип об\'єкту',
|
||||
'attrdef_regex' => 'Регулярний вираз',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => 'Тип',
|
||||
'attrdef_type_boolean' => 'Логічне',
|
||||
'attrdef_type_date' => 'Дата',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Електронна пошта',
|
||||
'attrdef_type_float' => 'З плаваючою комою',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => 'Ціле',
|
||||
'attrdef_type_string' => 'Текстовий рядок',
|
||||
'attrdef_type_url' => 'Посилання',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => 'Набір значень',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => 'Атрибути',
|
||||
'attribute_changed_email_body' => 'Змінено атрибут
|
||||
Документ: [name]
|
||||
|
@ -373,6 +380,7 @@ URL: [url]',
|
|||
Користувач: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: змінено коментар «[name]»',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => 'Кількість документів',
|
||||
'document_deleted' => 'Документ видалено',
|
||||
'document_deleted_email' => 'Документ видалено',
|
||||
|
@ -551,8 +559,10 @@ URL: [url]',
|
|||
'extension_changelog' => '',
|
||||
'extension_loading' => '',
|
||||
'extension_manager' => 'Керування розширеннями',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '',
|
||||
'extension_mgr_no_upload' => '',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '',
|
||||
'extension_version_list' => '',
|
||||
'february' => 'Лютий',
|
||||
|
@ -660,6 +670,7 @@ URL: [url]',
|
|||
'include_subdirectories' => 'Включно з підкаталогами',
|
||||
'indexing_tasks_in_queue' => '',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '',
|
||||
'index_error' => '',
|
||||
'index_folder' => 'Каталог індексу',
|
||||
|
@ -867,6 +878,7 @@ URL: [url]',
|
|||
'no_action' => 'Дій не потрібно',
|
||||
'no_approval_needed' => 'Затвердження не потрібно',
|
||||
'no_attached_files' => 'Немає додатків',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => 'Ви використовуєте застарілу версію SeedDMS. Остання версія [latestversion].',
|
||||
'no_default_keywords' => 'Немає ключових слів',
|
||||
|
@ -1817,6 +1829,7 @@ URL: [url]',
|
|||
'tr_TR' => 'Turkish',
|
||||
'tuesday' => 'Вівторок',
|
||||
'tuesday_abbr' => 'Вв',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => 'Введіть запит',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => '属性定义管理',
|
||||
'attrdef_maxvalues' => '最大值',
|
||||
'attrdef_minvalues' => '最小值',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '',
|
||||
'attrdef_multiple' => '允许多个值',
|
||||
'attrdef_multiple_needs_valueset' => '',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => '',
|
||||
'attrdef_objtype' => '类别',
|
||||
'attrdef_regex' => '正则表达式',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => '类型',
|
||||
'attrdef_type_boolean' => '布尔',
|
||||
'attrdef_type_date' => '日期',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => 'Email',
|
||||
'attrdef_type_float' => '浮点',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '整数',
|
||||
'attrdef_type_string' => '字符串',
|
||||
'attrdef_type_url' => 'URL',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => '属性值',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => '属性',
|
||||
'attribute_changed_email_body' => '',
|
||||
'attribute_changed_email_subject' => '',
|
||||
|
@ -367,6 +374,7 @@ URL: [url]',
|
|||
用户: [username]
|
||||
URL: [url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]: [name] - 批注已更新',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '文档数量',
|
||||
'document_deleted' => '删除文档',
|
||||
'document_deleted_email' => '文档已被删除',
|
||||
|
@ -541,8 +549,10 @@ URL: [url]',
|
|||
'extension_changelog' => '更新日志',
|
||||
'extension_loading' => '加载扩展',
|
||||
'extension_manager' => '扩展管理器',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '已安装',
|
||||
'extension_mgr_no_upload' => '上传新扩展名是不可能的,因为extentension目录不可写',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '可得到',
|
||||
'extension_version_list' => '版本列表',
|
||||
'february' => '二 月',
|
||||
|
@ -650,6 +660,7 @@ URL: [url]',
|
|||
'include_subdirectories' => '包含子目录',
|
||||
'indexing_tasks_in_queue' => '队列中的检索任务',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '已完成',
|
||||
'index_error' => '系统错误',
|
||||
'index_folder' => '索引目录',
|
||||
|
@ -858,6 +869,7 @@ URL: [url]',
|
|||
'no_action' => '无动作请求',
|
||||
'no_approval_needed' => '无待审核的文件',
|
||||
'no_attached_files' => '无附件',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '',
|
||||
'no_current_version' => '',
|
||||
'no_default_keywords' => '无关键字',
|
||||
|
@ -1783,6 +1795,7 @@ URL: [url]',
|
|||
'tr_TR' => '土耳其',
|
||||
'tuesday' => 'Tuesday',
|
||||
'tuesday_abbr' => '',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '钩子类型',
|
||||
'type_to_filter' => '',
|
||||
'type_to_search' => '搜索类型',
|
||||
|
|
|
@ -156,6 +156,7 @@ URL: [url]',
|
|||
'attrdef_management' => '屬性定義管理',
|
||||
'attrdef_maxvalues' => '最大值',
|
||||
'attrdef_minvalues' => '最小值',
|
||||
'attrdef_minvalues_help' => '',
|
||||
'attrdef_min_greater_max' => '最小數值大於最大數值',
|
||||
'attrdef_multiple' => '允許多個值',
|
||||
'attrdef_multiple_needs_valueset' => '具有多個值的屬性定義需要設置值。',
|
||||
|
@ -164,15 +165,21 @@ URL: [url]',
|
|||
'attrdef_noname' => '屬性定義的名稱遺失',
|
||||
'attrdef_objtype' => '類別',
|
||||
'attrdef_regex' => '規則運算式',
|
||||
'attrdef_regex_help' => '',
|
||||
'attrdef_type' => '類型',
|
||||
'attrdef_type_boolean' => '布林數',
|
||||
'attrdef_type_date' => '日期',
|
||||
'attrdef_type_document' => '',
|
||||
'attrdef_type_email' => '信箱',
|
||||
'attrdef_type_float' => '浮點數',
|
||||
'attrdef_type_folder' => '',
|
||||
'attrdef_type_group' => '',
|
||||
'attrdef_type_int' => '整數',
|
||||
'attrdef_type_string' => '字串',
|
||||
'attrdef_type_url' => '網址',
|
||||
'attrdef_type_user' => '',
|
||||
'attrdef_valueset' => '屬性值',
|
||||
'attrdef_valueset_help' => '',
|
||||
'attributes' => '屬性',
|
||||
'attribute_changed_email_body' => '屬性已更改
|
||||
文件:[name]
|
||||
|
@ -380,6 +387,7 @@ URL: [url]',
|
|||
使用者:[username]
|
||||
網址:[url]',
|
||||
'document_comment_changed_email_subject' => '[sitename]:[name]-評論已更改',
|
||||
'document_content_missing' => '',
|
||||
'document_count' => '文件數',
|
||||
'document_deleted' => '刪除文件',
|
||||
'document_deleted_email' => '文件已被刪除',
|
||||
|
@ -563,8 +571,10 @@ URL: [url]',
|
|||
'extension_changelog' => '修改紀錄',
|
||||
'extension_loading' => '擴充套件讀取中',
|
||||
'extension_manager' => '擴充套件的管理',
|
||||
'extension_mgr_error_upload' => '',
|
||||
'extension_mgr_installed' => '已安裝',
|
||||
'extension_mgr_no_upload' => '無法上傳新的套件因為套件目錄無法寫入',
|
||||
'extension_mgr_no_zipfile' => '',
|
||||
'extension_mgr_repository' => '可用',
|
||||
'extension_version_list' => '版本',
|
||||
'february' => '二 月',
|
||||
|
@ -679,6 +689,7 @@ URL: [url]',
|
|||
'include_subdirectories' => '包含子目錄',
|
||||
'indexing_tasks_in_queue' => '索引任務正在序列中',
|
||||
'index_converters' => '',
|
||||
'index_document_unchanged' => '',
|
||||
'index_done' => '完成',
|
||||
'index_error' => '錯誤',
|
||||
'index_folder' => '索引目錄',
|
||||
|
@ -887,6 +898,7 @@ URL: [url]',
|
|||
'no_action' => '無動作請求',
|
||||
'no_approval_needed' => '無待審核的檔',
|
||||
'no_attached_files' => '無附件',
|
||||
'no_attribute_definitions' => '',
|
||||
'no_backup_dir' => '未設置備份目錄。',
|
||||
'no_current_version' => '您正在運行舊版本的SeedDMS。最新的可用版本是[latestversion]。',
|
||||
'no_default_keywords' => '無關鍵字',
|
||||
|
@ -1855,6 +1867,7 @@ URL: [url]',
|
|||
'tr_TR' => '土耳其語',
|
||||
'tuesday' => 'Tuesday',
|
||||
'tuesday_abbr' => 'Tu',
|
||||
'types_generic' => '',
|
||||
'type_of_hook' => '類型',
|
||||
'type_to_filter' => '鍵入到篩選列表',
|
||||
'type_to_search' => '搜索類型',
|
||||
|
|
|
@ -88,7 +88,7 @@ if (isset($_COOKIE["mydms_session"])) {
|
|||
*/
|
||||
header("Cache-Control: no-cache,no-store");
|
||||
|
||||
$command = $_REQUEST["command"];
|
||||
$command = isset($_REQUEST["command"]) ? $_REQUEST["command"] : '';
|
||||
switch($command) {
|
||||
case 'checkpwstrength': /* {{{ */
|
||||
$ps = new Password_Strength();
|
||||
|
|
|
@ -71,7 +71,7 @@ if ($action == "addattrdef") {
|
|||
if($minvalues > $maxvalues) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_min_greater_max"));
|
||||
}
|
||||
if($multiple && $valueset == '') {
|
||||
if($multiple && $valueset == '' && !in_array($type, array(SeedDMS_Core_AttributeDefinition::type_user, SeedDMS_Core_AttributeDefinition::type_group))) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_multiple_needs_valueset"));
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ else if ($action == "editattrdef") {
|
|||
if($minvalues > $maxvalues) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_min_greater_max"));
|
||||
}
|
||||
if($multiple && $valueset == '') {
|
||||
if($multiple && $valueset == '' && !in_array($type, array(SeedDMS_Core_AttributeDefinition::type_user, SeedDMS_Core_AttributeDefinition::type_group))) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("attrdef_multiple_needs_valueset"));
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ if (empty($newpassword) || empty($newpasswordrepeat) || $newpassword != $newpass
|
|||
|
||||
$user = $dms->checkPasswordRequest($hash);
|
||||
if($user) {
|
||||
$user->setPwd(md5($newpassword));
|
||||
$user->setPwd(seed_pass_hash($newpassword));
|
||||
$dms->deletePasswordRequest($hash);
|
||||
header('Location: ../out/out.Login.php');
|
||||
exit;
|
||||
|
|
|
@ -24,8 +24,12 @@ include("../inc/inc.Init.php");
|
|||
include("../inc/inc.Extension.php");
|
||||
include("../inc/inc.DBInit.php");
|
||||
include("../inc/inc.ClassUI.php");
|
||||
include("../inc/inc.ClassController.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
|
||||
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
||||
$controller = Controller::factory($tmp[1], array('dms'=>$dms, 'user'=>$user));
|
||||
|
||||
/* Check if the form data comes from a trusted request */
|
||||
if(!checkFormKey('clearcache')) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("invalid_request_token"));
|
||||
|
@ -38,19 +42,8 @@ if(!is_dir($settings->_cacheDir)) {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("error_cleared_cache"));
|
||||
}
|
||||
|
||||
if(!empty($_POST['preview'])) {
|
||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/[1-9]*';
|
||||
$ret = null;
|
||||
system($cmd, $ret);
|
||||
}
|
||||
|
||||
if(!empty($_POST['js'])) {
|
||||
$cmd = 'rm -rf '.$settings->_cacheDir.'/js/*';
|
||||
$ret = null;
|
||||
system($cmd, $ret);
|
||||
}
|
||||
|
||||
if($ret)
|
||||
$controller->setParam('post', $_POST);
|
||||
if(!$controller->run())
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('error_cleared_cache')));
|
||||
else
|
||||
$session->setSplashMsg(array('type'=>'success', 'msg'=>getMLText('splash_cleared_cache')));
|
||||
|
|
|
@ -36,7 +36,7 @@ if (!$settings->_backupDir) {
|
|||
}
|
||||
|
||||
$v = new SeedDMS_Version;
|
||||
$dump_name = addDirSep($settings->_backupDir).date('Y-m-d\TH-i-s')."_".$v->_number.".sql";
|
||||
$dump_name = addDirSep($settings->_backupDir).date('Y-m-d\TH-i-s')."_".$v->version().".sql";
|
||||
if(!$dms->createDump($dump_name))
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ if(isset($_POST["theme"]))
|
|||
$mytheme = $_POST["theme"];
|
||||
$current_pwd = $_POST["currentpwd"];
|
||||
|
||||
if($user->getPwd() != md5($current_pwd)) {
|
||||
if(!seed_pass_verify($current_pwd, $user->getPwd())) {
|
||||
UI::exitError(getMLText("edit_user_details"),getMLText("password_wrong"));
|
||||
}
|
||||
|
||||
|
@ -61,14 +61,14 @@ if (isset($_POST["pwd"]) && ($_POST["pwd"] != "")) {
|
|||
if ($current_pwd == $_POST["pwd"]) // history doesn't have the initial pw stored yet
|
||||
UI::exitError(getMLText("set_password"),getMLText("password_already_used"));
|
||||
$phm = new SeedDMS_PasswordHistoryManager($db);
|
||||
$oldpwd = $phm->search($user, md5($_POST["pwd"]));
|
||||
$oldpwd = $phm->search($user, seed_pass_hash($_POST["pwd"]));
|
||||
if($oldpwd) {
|
||||
UI::exitError(getMLText("set_password"),getMLText("password_already_used"));
|
||||
} else {
|
||||
$phm->add($user, md5($_POST["pwd"]));
|
||||
$phm->add($user, seed_pass_hash($_POST["pwd"]));
|
||||
}
|
||||
}
|
||||
$user->setPwd(md5($_POST["pwd"]));
|
||||
$user->setPwd(seed_pass_hash($_POST["pwd"]));
|
||||
$user->setPwdExpiration(date('Y-m-d H:i:s', time()+$settings->_passwordExpiration*86400));
|
||||
} else {
|
||||
UI::exitError(getMLText("set_password"),getMLText("password_strength_insuffient"));
|
||||
|
@ -76,14 +76,14 @@ if (isset($_POST["pwd"]) && ($_POST["pwd"] != "")) {
|
|||
} else {
|
||||
if($settings->_passwordHistory > 0) {
|
||||
$phm = new SeedDMS_PasswordHistoryManager($db);
|
||||
$oldpwd = $phm->search($user, md5($_POST["pwd"]));
|
||||
$oldpwd = $phm->search($user, seed_pass_hash($_POST["pwd"]));
|
||||
if($oldpwd) {
|
||||
UI::exitError(getMLText("set_password"),getMLText("password_already_used"));
|
||||
} else {
|
||||
$phm->add($user, md5($_POST["pwd"]));
|
||||
$phm->add($user, seed_pass_hash($_POST["pwd"]));
|
||||
}
|
||||
}
|
||||
$user->setPwd(md5($_POST["pwd"]));
|
||||
$user->setPwd(seed_pass_hash($_POST["pwd"]));
|
||||
$user->setPwdExpiration(date('Y-m-d H:i:s', time()+$settings->_passwordExpiration*86400));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,10 +76,10 @@ elseif ($action == "upload") { /* {{{ */
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_no_upload"));
|
||||
}
|
||||
if($_FILES['userfile']['error']) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_error_upload"));
|
||||
}
|
||||
if(!in_array($_FILES['userfile']['type'], array('application/zip', 'application/x-zip-compressed'))) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("error_occured"));
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("extension_mgr_no_zipfile"));
|
||||
}
|
||||
// $extMgr = new SeedDMS_Extension_Mgr($settings->_rootDir."/ext", $settings->_cacheDir);
|
||||
$controller->setParam('extmgr', $extMgr);
|
||||
|
|
|
@ -31,6 +31,19 @@ function getBaseData($colname, $coldata, $objdata) { /* {{{ */
|
|||
return $objdata;
|
||||
} /* }}} */
|
||||
|
||||
function renderBaseData($colname, $objdata) { /* {{{ */
|
||||
return $objdata[$colname];
|
||||
} /* }}} */
|
||||
|
||||
function getPasswordPlainData($colname, $coldata, $objdata) { /* {{{ */
|
||||
$objdata['passenc'] = seed_pass_hash($coldata);
|
||||
return $objdata;
|
||||
} /* }}} */
|
||||
|
||||
function renderPasswordPlainData($colname, $objdata) { /* {{{ */
|
||||
return $objdata[$colname];
|
||||
} /* }}} */
|
||||
|
||||
function getQuotaData($colname, $coldata, $objdata) { /* {{{ */
|
||||
$objdata[$colname] = SeedDMS_Core_File::parse_filesize($coldata);
|
||||
return $objdata;
|
||||
|
@ -41,6 +54,9 @@ function getFolderData($colname, $coldata, $objdata) { /* {{{ */
|
|||
if($coldata) {
|
||||
if($folder = $dms->getFolder((int)$coldata)) {
|
||||
$objdata['homefolder'] = $folder;
|
||||
} else {
|
||||
$objdata['homefolder'] = null;
|
||||
$objdata['__logs__'][] = array('type'=>'error', 'msg'=> "No such folder with id '".(int) $coldata."'");
|
||||
}
|
||||
} else {
|
||||
$objdata['homefolder'] = null;
|
||||
|
@ -48,14 +64,30 @@ function getFolderData($colname, $coldata, $objdata) { /* {{{ */
|
|||
return $objdata;
|
||||
} /* }}} */
|
||||
|
||||
function renderFolderData($colname, $objdata) { /* {{{ */
|
||||
return is_object($objdata[$colname]) ? $objdata[$colname]->getName() : '';
|
||||
} /* }}} */
|
||||
|
||||
function getGroupData($colname, $coldata, $objdata) { /* {{{ */
|
||||
global $dms;
|
||||
if(!isset($objdata['groups']))
|
||||
$objdata['groups'] = [];
|
||||
if($group = $dms->getGroupByName($coldata)) {
|
||||
$objdata['groups'][] = $group;
|
||||
} else {
|
||||
$objdata['groups'] = [];
|
||||
$objdata['__logs__'][] = array('type'=>'error', 'msg'=> "No such group with name '".$coldata."'");
|
||||
}
|
||||
return $objdata;
|
||||
} /* }}} */
|
||||
|
||||
function renderGroupData($colname, $objdata) { /* {{{ */
|
||||
$html = '';
|
||||
foreach($objdata[$colname] as $g)
|
||||
$html .= $g->getName().';';
|
||||
return $html;
|
||||
} /* }}} */
|
||||
|
||||
function getRoleData($colname, $coldata, $objdata) { /* {{{ */
|
||||
switch($coldata) {
|
||||
case 'admin':
|
||||
|
@ -64,18 +96,28 @@ function getRoleData($colname, $coldata, $objdata) { /* {{{ */
|
|||
case 'guest':
|
||||
$role = 2;
|
||||
break;
|
||||
case 'user':
|
||||
$role = 0;
|
||||
break;
|
||||
default:
|
||||
$role = 0;
|
||||
$objdata['__logs__'][] = array('type'=>'error', 'msg'=> "No such role with name '".$coldata."'");
|
||||
}
|
||||
$objdata['role'] = $role;
|
||||
return $objdata;
|
||||
} /* }}} */
|
||||
|
||||
function renderRoleData($colname, $objdata) { /* {{{ */
|
||||
return ($objdata[$colname] == 1 ? 'admin' : ($objdata[$colname] == 2 ? 'guest' : 'user'));
|
||||
} /* }}} */
|
||||
|
||||
if (!$user->isAdmin()) {
|
||||
UI::exitError(getMLText("admin_tools"),getMLText("access_denied"));
|
||||
}
|
||||
|
||||
$log = array();
|
||||
$newusers = array();
|
||||
$csvheader = array();
|
||||
if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) {
|
||||
if(!is_uploaded_file($_FILES["userdata"]["tmp_name"]))
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
|
@ -86,24 +128,37 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) {
|
|||
$csvdelim = ';';
|
||||
$csvencl = '"';
|
||||
if($fp = fopen($_FILES['userdata']['tmp_name'], 'r')) {
|
||||
/* First of all build up a column map, which contains for each columen
|
||||
* the column name
|
||||
* (taken from the first line of the csv file), a function for getting
|
||||
* interpreting the data from the csv file and a function to return the
|
||||
* interpreted data as a string.
|
||||
* The column map will only contain entries for known column (whose head
|
||||
* line is one of 'login', 'email', 'name', 'role', 'homefolder', etc.)
|
||||
* Unknown columns will be skipped and the index in the column map will
|
||||
* be left out.
|
||||
*/
|
||||
$colmap = array();
|
||||
if($header = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
|
||||
foreach($header as $i=>$colname) {
|
||||
if($csvheader = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
|
||||
foreach($csvheader as $i=>$colname) {
|
||||
$colname = trim($colname);
|
||||
if(substr($colname, 0, 5) == 'group') {
|
||||
$colmap[$i] = array("getGroupData", $colname);
|
||||
$colmap[$i] = array("getGroupData", "renderGroupData", $colname);
|
||||
} elseif(in_array($colname, array('role'))) {
|
||||
$colmap[$i] = array("getRoleData", $colname);
|
||||
$colmap[$i] = array("getRoleData", "renderRoleData", $colname);
|
||||
} elseif(in_array($colname, array('homefolder'))) {
|
||||
$colmap[$i] = array("getFolderData", $colname);
|
||||
$colmap[$i] = array("getFolderData", "renderFolderData", $colname);
|
||||
} elseif(in_array($colname, array('quota'))) {
|
||||
$colmap[$i] = array("getQuotaData", $colname);
|
||||
} elseif(in_array($colname, array('login', 'name', 'email', 'comment', 'group'))) {
|
||||
$colmap[$i] = array("getBaseData", $colname);
|
||||
$colmap[$i] = array("getQuotaData", "renderQuotaData", $colname);
|
||||
} elseif(in_array($colname, array('password'))) {
|
||||
/* getPasswordPlainData() will set 'passenc' */
|
||||
$colmap[$i] = array("getPasswordPlainData", "renderPasswordPlainData", 'passenc');
|
||||
} elseif(in_array($colname, array('login', 'name', 'passenc', 'email', 'comment', 'group'))) {
|
||||
$colmap[$i] = array("getBaseData", "renderBaseData", $colname);
|
||||
} elseif(substr($colname, 0, 5) == 'attr:') {
|
||||
$kk = explode(':', $colname, 2);
|
||||
if(($attrdef = $dms->getAttributeDefinitionByName($kk[1])) || ($attrdef = $dms->getAttributeDefinition((int) $kk[1]))) {
|
||||
$colmap[$i] = array("getAttributeData", $attrdef);
|
||||
$colmap[$i] = array("getAttributeData", "renderAttributeData", $attrdef);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -114,56 +169,71 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) {
|
|||
$userids = array();
|
||||
foreach($allusers as $muser)
|
||||
$userids[$muser->getLogin()] = $muser;
|
||||
/* Run through all records in the csv file and fill $newusers.
|
||||
* $newusers will contain an associated array for each record, with
|
||||
* the key being the column name. The array may be shorter than
|
||||
* the number of columns, because $colmap may not contain a mapping
|
||||
* for each column.
|
||||
*/
|
||||
$newusers = array();
|
||||
while(!feof($fp)) {
|
||||
if($data = fgetcsv($fp, 0, $csvdelim, $csvencl)) {
|
||||
$md = array();
|
||||
foreach($data as $i=>$coldata) {
|
||||
/* First check if a column mapping exists. It could be missing
|
||||
* because the column has a not known header or it is missing.
|
||||
*/
|
||||
if(isset($colmap[$i])) {
|
||||
$md = call_user_func($colmap[$i][0], $colmap[$i][1], $coldata, $md);
|
||||
$md = call_user_func($colmap[$i][0], $colmap[$i][2], $coldata, $md);
|
||||
}
|
||||
}
|
||||
if($md)
|
||||
$newusers[] = $md;
|
||||
if($md && $md['login'])
|
||||
$newusers[$md['login']] = $md;
|
||||
}
|
||||
}
|
||||
// echo "<pre>";print_r($newusers);echo "</pre>";
|
||||
$makeupdate = !empty($_POST['update']);
|
||||
foreach($newusers as $u) {
|
||||
foreach($newusers as $uhash=>$u) {
|
||||
$log[$uhash] = [];
|
||||
if($eu = $dms->getUserByLogin($u['login'])) {
|
||||
if(isset($u['name']) && $u['name'] != $eu->getFullName()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Name of user updated. '".$u['name']."' != '".$eu->getFullName()."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Name of user updated. '".$u['name']."' != '".$eu->getFullName()."'");
|
||||
if($makeupdate)
|
||||
$eu->setFullName($u['name']);
|
||||
}
|
||||
if(isset($u['email']) && $u['email'] != $eu->getEmail()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Email of user updated. '".$u['email']."' != '".$eu->getEmail()."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Email of user updated. '".$u['email']."' != '".$eu->getEmail()."'");
|
||||
if($makeupdate)
|
||||
$eu->setEmail($u['email']);
|
||||
}
|
||||
if(isset($u['passenc']) && $u['passenc'] != $eu->getPwd()) {
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Encrypted password of user updated. '".$u['passenc']."' != '".$eu->getPwd()."'");
|
||||
if($makeupdate)
|
||||
$eu->setPwd($u['passenc']);
|
||||
}
|
||||
if(isset($u['comment']) && $u['comment'] != $eu->getComment()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Comment of user updated. '".$u['comment']."' != '".$eu->getComment()."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Comment of user updated. '".$u['comment']."' != '".$eu->getComment()."'");
|
||||
if($makeupdate)
|
||||
$eu->setComment($u['comment']);
|
||||
}
|
||||
if(isset($u['language']) && $u['language'] != $eu->getLanguage()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Language of user updated. '".$u['language']."' != '".$eu->getLanguage()."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Language of user updated. '".$u['language']."' != '".$eu->getLanguage()."'");
|
||||
if($makeupdate)
|
||||
$eu->setLanguage($u['language']);
|
||||
}
|
||||
if(isset($u['quota']) && $u['quota'] != $eu->getQuota()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Quota of user updated. '".$u['quota']."' != '".$eu->getQuota()."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Quota of user updated. '".$u['quota']."' != '".$eu->getQuota()."'");
|
||||
if($makeupdate)
|
||||
$eu->setQuota($u['language']);
|
||||
}
|
||||
if(isset($u['homefolder']) && $u['homefolder']->getId() != $eu->getHomeFolder()) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Homefolder of user updated. '".(is_object($u['homefolder']) ? $u['homefolder']->getId() : '')."' != '".($eu->getHomeFolder() ? $eu->getHomeFolder() : '')."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Homefolder of user updated. '".(is_object($u['homefolder']) ? $u['homefolder']->getId() : '')."' != '".($eu->getHomeFolder() ? $eu->getHomeFolder() : '')."'");
|
||||
if($makeupdate)
|
||||
$eu->setHomeFolder($u['homefolder']);
|
||||
}
|
||||
$func = function($o) {return $o->getID();};
|
||||
if(isset($u['groups']) && implode(',',array_map($func, $u['groups'])) != implode(',',array_map($func, $eu->getGroups()))) {
|
||||
$log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Groups of user updated. '".implode(',',array_map($func, $u['groups']))."' != '".implode(',',array_map($func, $eu->getGroups()))."'");
|
||||
$log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "Groups of user updated. '".implode(',',array_map($func, $u['groups']))."' != '".implode(',',array_map($func, $eu->getGroups()))."'");
|
||||
if($makeupdate) {
|
||||
foreach($eu->getGroups() as $g)
|
||||
$eu->leaveGroup($g);
|
||||
|
@ -171,15 +241,21 @@ if (isset($_FILES['userdata']) && $_FILES['userdata']['error'] == 0) {
|
|||
$eu->joinGroup($g);
|
||||
}
|
||||
}
|
||||
// $log[] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "User '".$eu->getLogin()."' updated.");
|
||||
// $log[$uhash][] = array('id'=>$eu->getLogin(), 'type'=>'success', 'msg'=> "User '".$eu->getLogin()."' updated.");
|
||||
} else {
|
||||
if(!empty($_POST['addnew'])) {
|
||||
if(!empty($u['login']) && !empty($u['name']) && !empty($u['email'])) {
|
||||
if(!empty($u['login']) && !empty($u['name']) && !empty($u['email'])) {
|
||||
if(!empty($_POST['addnew'])) {
|
||||
$ret = $dms->addUser($u['login'], '', $u['name'], $u['email'], !empty($u['language']) ? $u['language'] : 'en_GB', 'bootstrap', !empty($u['comment']) ? $u['comment'] : '', $u['role']);
|
||||
var_dump($ret);
|
||||
if($ret)
|
||||
$log[$uhash][] = array('id'=>$u['login'], 'type'=>'success', 'msg'=> "User '".$u['name']."' added.");
|
||||
else
|
||||
$log[$uhash][] = array('id'=>$u['login'], 'type'=>'error', 'msg'=> "User '".$u['name']."' could not be added.");
|
||||
} else {
|
||||
// $log[$uhash][] = array('id'=>$u['login'], 'type'=>'success', 'msg'=> "User '".$u['name']."' can be added.");
|
||||
}
|
||||
} else {
|
||||
$log[$uhash][] = array('id'=>$u['login'], 'type'=>'error', 'msg'=> "Too much data missing");
|
||||
}
|
||||
$log[] = array('id'=>$u['login'], 'type'=>'success', 'msg'=> "User '".$u['name']."' added.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -190,6 +266,8 @@ $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
|
|||
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user));
|
||||
if($view) {
|
||||
$view->setParam('log', $log);
|
||||
$view->setParam('newusers', $newusers);
|
||||
$view->setParam('colmap', $colmap);
|
||||
$view($_GET);
|
||||
exit;
|
||||
}
|
||||
|
|
|
@ -75,6 +75,7 @@ $session = new SeedDMS_Session($db);
|
|||
// TODO: by the PHP manual: The superglobals $_GET and $_REQUEST are already decoded.
|
||||
// Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.
|
||||
|
||||
$referuri = '';
|
||||
if (isset($_POST["referuri"]) && strlen($_POST["referuri"])>0) {
|
||||
$referuri = trim(urldecode($_POST["referuri"]));
|
||||
}
|
||||
|
@ -88,6 +89,7 @@ $controller->setParam('login', $login);
|
|||
$controller->setParam('pwd', $pwd);
|
||||
$controller->setParam('lang', $lang);
|
||||
$controller->setParam('sesstheme', $sesstheme);
|
||||
$controller->setParam('referuri', $referuri);
|
||||
$controller->setParam('session', $session);
|
||||
if(!$controller->run()) {
|
||||
add_log_line("login failed", PEAR_LOG_ERR);
|
||||
|
|
|
@ -63,6 +63,8 @@ if (!is_object($version)) {
|
|||
|
||||
require_once("SeedDMS/Preview.php");
|
||||
$previewer = new SeedDMS_Preview_Previewer($settings->_cacheDir);
|
||||
$folder = $document->getFolder();
|
||||
/* Check if there is just one version. In that case remove the document */
|
||||
if (count($document->getContent())==1) {
|
||||
$previewer->deleteDocumentPreviews($document);
|
||||
$nl = $document->getNotifyList();
|
||||
|
@ -70,6 +72,7 @@ if (count($document->getContent())==1) {
|
|||
if (!$document->remove()) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
$nexturl = "../out/out.ViewFolder.php?folderid=".$folder->getId();
|
||||
/* Remove the document from the fulltext index */
|
||||
if($settings->_enableFullSearch) {
|
||||
$index = $indexconf['Indexer']::open($settings->_luceneDir);
|
||||
|
@ -127,9 +130,17 @@ else {
|
|||
|
||||
$previewer->deletePreview($version, $settings->_previewWidthDetail);
|
||||
$previewer->deletePreview($version, $settings->_previewWidthList);
|
||||
/* Check if the version to be delete is the latest version. This is
|
||||
* later used to set the redirect url.
|
||||
*/
|
||||
$islatest = $version->getVersion() == $document->getLatestContent()->getVersion();
|
||||
if (!$document->removeContent($version)) {
|
||||
UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured"));
|
||||
} else {
|
||||
if($islatest || count($document->getContent()) == 1)
|
||||
$nexturl = "../out/out.ViewDocument.php?documentid=".$documentid;
|
||||
else
|
||||
$nexturl = "../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=previous";
|
||||
/* Remove the document from the fulltext index and reindex latest version */
|
||||
if($settings->_enableFullSearch) {
|
||||
$index = $indexconf['Indexer']::open($settings->_luceneDir);
|
||||
|
@ -183,6 +194,6 @@ else {
|
|||
|
||||
add_log_line("?documentid=".$documentid."&version".$version_num);
|
||||
|
||||
header("Location:../out/out.ViewDocument.php?documentid=".$documentid."¤ttab=previous");
|
||||
header("Location:".$nexturl);
|
||||
|
||||
?>
|
||||
|
|
|
@ -151,7 +151,7 @@ if ($action == "saveSettings")
|
|||
$settings->_loginFailure = intval($_POST["loginFailure"]);
|
||||
$settings->_autoLoginUser = intval($_POST["autoLoginUser"]);
|
||||
$settings->_quota = intval($_POST["quota"]);
|
||||
$settings->_undelUserIds = strval($_POST["undelUserIds"]);
|
||||
$settings->_undelUserIds = is_array($_POST["undelUserIds"]) ? implode(',', $_POST["undelUserIds"]) : strval($_POST["undelUserIds"]);
|
||||
$settings->_encryptionKey = strval($_POST["encryptionKey"]);
|
||||
$settings->_cookieLifetime = intval($_POST["cookieLifetime"]);
|
||||
$settings->_defaultAccessDocs = intval($_POST["defaultAccessDocs"]);
|
||||
|
|
|
@ -126,7 +126,7 @@ if($version->triggerWorkflowTransition($user, $transition, $_POST["comment"])) {
|
|||
}
|
||||
}
|
||||
foreach($ntransition->getGroups() as $tuser) {
|
||||
if(!in_array($tuser->getUser()->getID(), $groupsinformed)) {
|
||||
if(!in_array($tuser->getGroup()->getID(), $groupsinformed)) {
|
||||
$groupsinformed[] = $tuser->getGroup()->getID();
|
||||
$notifier->toGroup($user, $tuser->getGroup(), $subject, $message, $params);
|
||||
}
|
||||
|
|
|
@ -26,11 +26,13 @@ include("../inc/inc.Init.php");
|
|||
include("../inc/inc.Extension.php");
|
||||
include("../inc/inc.DBInit.php");
|
||||
include("../inc/inc.ClassUI.php");
|
||||
include("../inc/inc.Authentication.php");
|
||||
//include("../inc/inc.Authentication.php");
|
||||
|
||||
//print_r($_FILES);
|
||||
//print_r($_POST);
|
||||
//exit;
|
||||
if(empty($_GET['formkey']) || $_GET['formkey'] != md5($settings->_encryptionKey.'uploadchunks')) {
|
||||
header("Content-Type: text/plain");
|
||||
echo json_encode(array('success'=>false, 'error'=>'Wrong formkey'));
|
||||
exit;
|
||||
}
|
||||
|
||||
$file_param_name = 'qqfile';
|
||||
$file_name = $_FILES[ $file_param_name ][ 'name' ];
|
||||
|
|
|
@ -68,7 +68,7 @@ if ($action == "adduser") {
|
|||
UI::exitError(getMLText("admin_tools"),getMLText("user_exists"));
|
||||
}
|
||||
|
||||
$newUser = $dms->addUser($login, md5($pwd), $name, $email, $settings->_language, $settings->_theme, $comment, $role, $isHidden, $isDisabled, $pwdexpiration, $quota, $homefolder);
|
||||
$newUser = $dms->addUser($login, seed_pass_hash($pwd), $name, $email, $settings->_language, $settings->_theme, $comment, $role, $isHidden, $isDisabled, $pwdexpiration, $quota, $homefolder);
|
||||
if ($newUser) {
|
||||
|
||||
/* Set user image if uploaded */
|
||||
|
@ -367,7 +367,7 @@ else if ($action == "edituser") {
|
|||
$editedUser->setPwd('');
|
||||
} else {
|
||||
if (isset($pwd) && ($pwd != "")) {
|
||||
$editedUser->setPwd(md5($pwd));
|
||||
$editedUser->setPwd(seed_pass_hash($pwd));
|
||||
}
|
||||
}
|
||||
if ($editedUser->getFullName() != $name)
|
||||
|
|
|
@ -128,7 +128,7 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"] && $settings->_enableFullSe
|
|||
$startTime = getTime();
|
||||
$index = $indexconf['Indexer']::open($settings->_luceneDir);
|
||||
$lucenesearch = new $indexconf['Search']($index);
|
||||
$hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categorynames);
|
||||
$hits = $lucenesearch->search($query, $owner ? $owner->getLogin() : '', '', $categorynames, array(), $user->isAdmin() ? [] : [$user->getLogin()]);
|
||||
if($hits === false) {
|
||||
$session->setSplashMsg(array('type'=>'error', 'msg'=>getMLText('splash_invalid_searchterm')));
|
||||
$totalPages = 0;
|
||||
|
|
34
package.json
Normal file
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"name": "seeddms",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"author": "Uwe Steinmann",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@coreui/coreui": "^3.2.2",
|
||||
"@popperjs/core": "^2.4.4",
|
||||
"bootstrap": "^4.5.2",
|
||||
"bootstrap-datepicker": "^1.9.0",
|
||||
"chartjs": "^0.3.24",
|
||||
"cytoscape": "^3.15.2",
|
||||
"cytoscape-grid-guide": "^2.3.2",
|
||||
"fine-uploader": "^5.16.2",
|
||||
"flot": "^4.2.1",
|
||||
"font-awesome": "^4.7.0",
|
||||
"fullcalendar": "^3.*",
|
||||
"grunt": "^1.3.0",
|
||||
"grunt-contrib-clean": "^2.0.0",
|
||||
"grunt-contrib-copy": "^1.0.0",
|
||||
"jqtree": "^1.4.12",
|
||||
"jquery": "^1.12.4",
|
||||
"jquery-validation": "^1.19.2",
|
||||
"moment": "^2.17.1",
|
||||
"noty": "^2.4.1",
|
||||
"perfect-scrollbar": "^1.5.0",
|
||||
"select2": "^4.0.13"
|
||||
}
|
||||
}
|
|
@ -443,6 +443,7 @@ class RestapiController { /* {{{ */
|
|||
function createFolder($request, $response, $args) { /* {{{ */
|
||||
$dms = $this->container->dms;
|
||||
$userobj = $this->container->userobj;
|
||||
$settings = $this->container->config;
|
||||
|
||||
if(!$userobj) {
|
||||
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||
|
@ -584,6 +585,7 @@ class RestapiController { /* {{{ */
|
|||
function uploadDocument($request, $response, $args) { /* {{{ */
|
||||
$dms = $this->container->dms;
|
||||
$userobj = $this->container->userobj;
|
||||
$settings = $this->container->config;
|
||||
|
||||
if(!$userobj) {
|
||||
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||
|
@ -748,6 +750,7 @@ class RestapiController { /* {{{ */
|
|||
function uploadDocumentPut($request, $response, $args) { /* {{{ */
|
||||
$dms = $this->container->dms;
|
||||
$userobj = $this->container->userobj;
|
||||
$settings = $this->container->config;
|
||||
|
||||
if(!$userobj) {
|
||||
return $response->withJson(array('success'=>false, 'message'=>'Not logged in', 'data'=>''), 403);
|
||||
|
|
|
@ -30,7 +30,7 @@ span.list-details {
|
|||
#admin-tools i {
|
||||
font-size: 300%;
|
||||
line-height: 110%;
|
||||
min-height: 100px;
|
||||
/* min-height: 100px; */
|
||||
}
|
||||
|
||||
#admin-tools a {
|
||||
|
@ -215,6 +215,9 @@ ul.jqtree-tree li.jqtree_common > .jqtree-element:hover {
|
|||
background-color: #E0E0E0;
|
||||
}
|
||||
|
||||
i.success {color: #00b000;}
|
||||
i.error {color: #b00000;}
|
||||
|
||||
i.initstate {color: #ff9900;}
|
||||
i.released {color: #00b000;}
|
||||
i.rejected {color: #b00000;}
|
||||
|
|
|
@ -11,11 +11,14 @@ chzn_template_func = function (state) {
|
|||
var warning = '';
|
||||
if($(state.element).data('warning'))
|
||||
warning = $(state.element).data('warning')+''; /* make sure it is a string */
|
||||
var html = '<span>'+state.text.replace(/</g, '<')+'';
|
||||
var html = '<span>';
|
||||
if($(state.element).data('fa fa-before'))
|
||||
html += '<i class="fa fa-'+$(state.element).data('fa fa-before')+'"></i> ';
|
||||
html += state.text.replace(/</g, '<')+'';
|
||||
if(subtitle)
|
||||
html += '<br /><i>'+subtitle.replace(/</g, '<')+'</i>';
|
||||
if(warning)
|
||||
html += '<br /><span class="label label-warning"><i class="icon-warning-sign"></i></span> '+warning+'';
|
||||
html += '<br /><span class="label label-warning"><i class="fa fa-warning"></i></span> '+warning+'';
|
||||
html += '</span>';
|
||||
var $newstate = $(html);
|
||||
return $newstate;
|
||||
|
@ -31,12 +34,25 @@ function escapeHtml(text) {
|
|||
|
||||
return text.replace(/[&<>"']/g, function(m) { return map[m]; });
|
||||
}
|
||||
|
||||
function treeFolderSelected(formid, nodeid, nodename) {
|
||||
$('#targetid'+formid).val(nodeid);
|
||||
$('#choosefoldersearch'+formid).val(nodename);
|
||||
$('#folderChooser'+formid).modal('hide');
|
||||
}
|
||||
|
||||
function treeDocumentSelected(formid, nodeid, nodename) {
|
||||
$('#docid'+formid).val(nodeid);
|
||||
$('#choosedocsearch'+formid).val(nodename);
|
||||
$('#docChooser'+formid).modal('hide');
|
||||
}
|
||||
|
||||
$(document).ready( function() {
|
||||
/* close popovers when clicking somewhere except in the popover or the
|
||||
* remove icon
|
||||
*/
|
||||
$('html').on('click', function(e) {
|
||||
if (typeof $(e.target).data('original-title') == 'undefined' && !$(e.target).parents().is('.popover.in') && !$(e.target).is('.icon-remove')) {
|
||||
if (typeof $(e.target).data('original-title') == 'undefined' && !$(e.target).parents().is('.popover.in') && !$(e.target).is('.fa fa-remove')) {
|
||||
$('[data-original-title]').popover('hide');
|
||||
}
|
||||
});
|
||||
|
@ -58,8 +74,8 @@ $(document).ready( function() {
|
|||
|
||||
$(".chzn-select").select2({
|
||||
width: '100%',
|
||||
templateResult: chzn_template_func,
|
||||
templateSelection: chzn_template_func
|
||||
templateResult: chzn_template_func//,
|
||||
//templateSelection: chzn_template_func
|
||||
});
|
||||
|
||||
/* change the color and length of the bar graph showing the password
|
||||
|
@ -101,11 +117,11 @@ $(document).ready( function() {
|
|||
},
|
||||
highlighter : function (item) {
|
||||
if(item.charAt(0) == 'D')
|
||||
return '<i class="icon-file"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
return '<i class="fa fa-file"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
else if(item.charAt(0) == 'F')
|
||||
return '<i class="icon-folder-close-alt"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
return '<i class="fa fa-folder-o"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
else
|
||||
return '<i class="icon-search"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
return '<i class="fa fa-search"></i> ' + item.substring(1).replace(/</g, '<');
|
||||
}
|
||||
}); /* }}} */
|
||||
|
||||
|
@ -133,7 +149,7 @@ $(document).ready( function() {
|
|||
},
|
||||
highlighter : function (item) {
|
||||
strarr = item.split("#");
|
||||
return '<i class="icon-file"></i> ' + strarr[1].replace(/</g, '<');
|
||||
return '<i class="fa fa-file"></i> ' + strarr[1].replace(/</g, '<');
|
||||
}
|
||||
}); /* }}} */
|
||||
|
||||
|
@ -162,10 +178,26 @@ $(document).ready( function() {
|
|||
},
|
||||
highlighter : function (item) {
|
||||
strarr = item.split("#");
|
||||
return '<i class="icon-folder-close-alt"></i> ' + strarr[1].replace(/</g, '<');
|
||||
return '<i class="fa fa-folder-o"></i> ' + strarr[1].replace(/</g, '<');
|
||||
}
|
||||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '[id^=clearfolder]', function(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
target = $(this).data('target');
|
||||
$('#choosefoldersearch'+target).val('');
|
||||
$('#'+target).val('');
|
||||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '[id^=cleardocument]', function(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
target = $(this).data('target');
|
||||
$('#choosedocsearch'+target).val('');
|
||||
$('#'+target).val('');
|
||||
}); /* }}} */
|
||||
|
||||
$('body').on('click', '#clipboard-float', function(ev) { /* {{{ */
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
|
@ -377,8 +409,8 @@ $(document).ready( function() {
|
|||
element.html(data);
|
||||
$(".chzn-select").select2({
|
||||
width: '100%',
|
||||
templateResult: chzn_template_func,
|
||||
templateSelection: chzn_template_func
|
||||
templateResult: chzn_template_func//,
|
||||
//templateSelection: chzn_template_func
|
||||
});
|
||||
$(".pwd").passStrength({ /* {{{ */
|
||||
url: "../op/op.Ajax.php",
|
||||
|
@ -426,8 +458,8 @@ $(document).ready( function() {
|
|||
element.html(data);
|
||||
$(".chzn-select").select2({
|
||||
width: '100%',
|
||||
templateResult: chzn_template_func,
|
||||
templateSelection: chzn_template_func
|
||||
templateResult: chzn_template_func//,
|
||||
//templateSelection: chzn_template_func
|
||||
});
|
||||
$(".pwd").passStrength({ /* {{{ */
|
||||
url: "../op/op.Ajax.php",
|
||||
|
@ -781,9 +813,9 @@ $(document).ready(function() { /* {{{ */
|
|||
if(source_type == 'document') {
|
||||
var bootbox_message = trans.confirm_move_document;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="icon-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='icon-remove'></i> "+trans.move_document,
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get('../op/op.Ajax.php',
|
||||
|
@ -825,9 +857,9 @@ $(document).ready(function() { /* {{{ */
|
|||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
var bootbox_message = trans.confirm_move_folder;
|
||||
if(source_info.name)
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="icon-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox_message += "<p> "+escapeHtml(source_info.name)+' <i class="fa fa-arrow-right"></i> '+escapeHtml(target_name)+"</p>";
|
||||
bootbox.dialog(bootbox_message, [{
|
||||
"label" : "<i class='icon-remove'></i> "+trans.move_folder,
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_folder,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get('../op/op.Ajax.php',
|
||||
|
@ -882,7 +914,7 @@ $(document).ready(function() { /* {{{ */
|
|||
if(source_type == 'document') {
|
||||
if(source_id != target_id) {
|
||||
bootbox.dialog(trans.confirm_transfer_link_document, [{
|
||||
"label" : "<i class='icon-remove'></i> "+trans.transfer_content,
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.transfer_content,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get('../op/op.Ajax.php',
|
||||
|
@ -1047,7 +1079,7 @@ $(document).ready(function() { /* {{{ */
|
|||
formtoken = source_info.formtoken;
|
||||
if(source_type == 'document') {
|
||||
bootbox.dialog(trans.confirm_move_document, [{
|
||||
"label" : "<i class='icon-remove'></i> "+trans.move_document,
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_document,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get('../op/op.Ajax.php',
|
||||
|
@ -1088,7 +1120,7 @@ $(document).ready(function() { /* {{{ */
|
|||
// document.location = url;
|
||||
} else if(source_type == 'folder' && source_id != target_id) {
|
||||
bootbox.dialog(trans.confirm_move_folder, [{
|
||||
"label" : "<i class='icon-remove'></i> "+trans.move_folder,
|
||||
"label" : "<i class='fa fa-remove'></i> "+trans.move_folder,
|
||||
"class" : "btn-danger",
|
||||
"callback": function() {
|
||||
$.get('../op/op.Ajax.php',
|
||||
|
|
32
styles/bootstrap/markitup/jquery.markitup.js
Normal file → Executable file
|
@ -45,6 +45,7 @@
|
|||
previewParser: false,
|
||||
previewParserPath: '',
|
||||
previewParserVar: 'data',
|
||||
previewParserAjaxType: 'POST',
|
||||
resizeHandle: true,
|
||||
beforeInsert: '',
|
||||
afterInsert: '',
|
||||
|
@ -59,7 +60,7 @@
|
|||
// compute markItUp! path
|
||||
if (!options.root) {
|
||||
$('script').each(function(a, tag) {
|
||||
miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/);
|
||||
var miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/);
|
||||
if (miuScript !== null) {
|
||||
options.root = miuScript[1];
|
||||
}
|
||||
|
@ -202,7 +203,7 @@
|
|||
$('li:hover > ul', ul).css('display', 'block');
|
||||
$.each(markupSet, function() {
|
||||
var button = this, t = '', title, li, j;
|
||||
title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||'');
|
||||
button.title ? title = (button.key) ? (button.title||'')+' [Ctrl+'+button.key+']' : (button.title||'') : title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||'');
|
||||
key = (button.key) ? 'accesskey="'+button.key+'"' : '';
|
||||
if (button.separator) {
|
||||
li = $('<li class="markItUpSeparator">'+(button.separator||'')+'</li>').appendTo(ul);
|
||||
|
@ -211,16 +212,16 @@
|
|||
for (j = levels.length -1; j >= 0; j--) {
|
||||
t += levels[j]+"-";
|
||||
}
|
||||
li = $('<li class="markItUpButton markItUpButton'+t+(i)+' '+(button.className||'')+'"><a href="" '+key+' title="'+title+'">'+(button.name||'')+'</a></li>')
|
||||
li = $('<li class="markItUpButton markItUpButton'+t+(i)+' '+(button.className||'')+'"><a href="#" '+key+' title="'+title+'">'+(button.name||'')+'</a></li>')
|
||||
.bind("contextmenu.markItUp", function() { // prevent contextmenu on mac and allow ctrl+click
|
||||
return false;
|
||||
}).bind('click.markItUp', function(e) {
|
||||
e.preventDefault();
|
||||
}).bind("focusin.markItUp", function(){
|
||||
$$.focus();
|
||||
}).bind('mouseup', function() {
|
||||
}).bind('mouseup', function(e) {
|
||||
if (button.call) {
|
||||
eval(button.call)();
|
||||
eval(button.call)(e); // Pass the mouseup event to custom delegate
|
||||
}
|
||||
setTimeout(function() { markup(button) },1);
|
||||
return false;
|
||||
|
@ -537,18 +538,19 @@
|
|||
|
||||
function renderPreview() {
|
||||
var phtml;
|
||||
var parsedData = $$.val();
|
||||
if (options.previewParser && typeof options.previewParser === 'function') {
|
||||
parsedData = options.previewParser(parsedData);
|
||||
}
|
||||
if (options.previewHandler && typeof options.previewHandler === 'function') {
|
||||
options.previewHandler( $$.val() );
|
||||
} else if (options.previewParser && typeof options.previewParser === 'function') {
|
||||
var data = options.previewParser( $$.val() );
|
||||
writeInPreview(localize(data, 1) );
|
||||
options.previewHandler(parsedData);
|
||||
} else if (options.previewParserPath !== '') {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
type: options.previewParserAjaxType,
|
||||
dataType: 'text',
|
||||
global: false,
|
||||
url: options.previewParserPath,
|
||||
data: options.previewParserVar+'='+encodeURIComponent($$.val()),
|
||||
data: options.previewParserVar+'='+encodeURIComponent(parsedData),
|
||||
success: function(data) {
|
||||
writeInPreview( localize(data, 1) );
|
||||
}
|
||||
|
@ -560,7 +562,7 @@
|
|||
dataType: 'text',
|
||||
global: false,
|
||||
success: function(data) {
|
||||
writeInPreview( localize(data, 1).replace(/<!-- content -->/g, $$.val()) );
|
||||
writeInPreview( localize(data, 1).replace(/<!-- content -->/g, parsedData) );
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -636,6 +638,12 @@
|
|||
function remove() {
|
||||
$$.unbind(".markItUp").removeClass('markItUpEditor');
|
||||
$$.parent('div').parent('div.markItUp').parent('div').replaceWith($$);
|
||||
|
||||
var relativeRef = $$.parent('div').parent('div.markItUp').parent('div');
|
||||
if (relativeRef.length) {
|
||||
relativeRef.replaceWith($$);
|
||||
}
|
||||
|
||||
$$.data('markItUp', null);
|
||||
}
|
||||
|
||||
|
|
0
styles/bootstrap/markitup/sets/default/images/bold.png
Normal file → Executable file
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 304 B |
0
styles/bootstrap/markitup/sets/default/images/clean.png
Normal file → Executable file
Before Width: | Height: | Size: 667 B After Width: | Height: | Size: 667 B |
0
styles/bootstrap/markitup/sets/default/images/image.png
Normal file → Executable file
Before Width: | Height: | Size: 516 B After Width: | Height: | Size: 516 B |
0
styles/bootstrap/markitup/sets/default/images/italic.png
Normal file → Executable file
Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 223 B |
0
styles/bootstrap/markitup/sets/default/images/link.png
Normal file → Executable file
Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 343 B |
0
styles/bootstrap/markitup/sets/default/images/list-bullet.png
Normal file → Executable file
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 344 B |
0
styles/bootstrap/markitup/sets/default/images/list-numeric.png
Normal file → Executable file
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 357 B |
0
styles/bootstrap/markitup/sets/default/images/picture.png
Normal file → Executable file
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 606 B |
0
styles/bootstrap/markitup/sets/default/images/preview.png
Normal file → Executable file
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
0
styles/bootstrap/markitup/sets/default/images/stroke.png
Normal file → Executable file
Before Width: | Height: | Size: 269 B After Width: | Height: | Size: 269 B |
4
styles/bootstrap/markitup/sets/default/set.js
Normal file → Executable file
|
@ -24,7 +24,7 @@ var mySettings = {
|
|||
{name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' },
|
||||
{name:'Link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' },
|
||||
{separator:'---------------' },
|
||||
{name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } }/*,
|
||||
{name:'Preview', className:'preview', call:'preview'}*/
|
||||
{name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } },
|
||||
{name:'Preview', className:'preview', call:'preview'}
|
||||
]
|
||||
}
|
||||
|
|
0
styles/bootstrap/markitup/sets/default/style.css
Normal file → Executable file
0
styles/bootstrap/markitup/skins/markitup/images/bg-container.png
Normal file → Executable file
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 322 B |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-bbcode.png
Normal file → Executable file
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-dotclear.png
Normal file → Executable file
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-html.png
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-json.png
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-markdown.png
Normal file → Executable file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-textile.png
Normal file → Executable file
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-wiki.png
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor-xml.png
Normal file → Executable file
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/bg-editor.png
Normal file → Executable file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
0
styles/bootstrap/markitup/skins/markitup/images/handle.png
Normal file → Executable file
Before Width: | Height: | Size: 258 B After Width: | Height: | Size: 258 B |
0
styles/bootstrap/markitup/skins/markitup/images/menu.png
Normal file → Executable file
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |