mirror of
https://git.code.sf.net/p/seeddms/code
synced 2024-11-26 07:22:11 +00:00
Merge branch 'seeddms-5.1.x' into seeddms-6.0.x
This commit is contained in:
commit
37478ecd89
|
@ -296,6 +296,7 @@
|
|||
document, still send it to uploader of version
|
||||
- set default language in login form if language selector is turned off
|
||||
- do not show full list of notifiers to none admins
|
||||
- do not list document/folders in sequence selector if its number exceeds 50
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Changes in version 5.1.33
|
||||
|
|
|
@ -56,14 +56,41 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
|
|||
$reqversion = $this->getParam('reqversion');
|
||||
$version_comment = $this->getParam('versioncomment');
|
||||
$attributes = $this->getParam('attributes');
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
foreach($attributes as $attrdefid=>&$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, null, true)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -80,14 +107,41 @@ class SeedDMS_Controller_AddDocument extends SeedDMS_Controller_Common {
|
|||
}
|
||||
}
|
||||
if($attributes_version = $this->getParam('attributesversion')) {
|
||||
foreach($attributes_version as $attrdefid=>$attribute) {
|
||||
foreach($attributes_version as $attrdefid=>&$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, null, true)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
|
|
@ -41,14 +41,41 @@ class SeedDMS_Controller_AddSubFolder extends SeedDMS_Controller_Common {
|
|||
$comment = $this->getParam('comment');
|
||||
$sequence = $this->getParam('sequence');
|
||||
$attributes = $this->getParam('attributes');
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
foreach($attributes as $attrdefid=>&$attribute) {
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, null, true)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
|
|
@ -122,8 +122,35 @@ class SeedDMS_Controller_EditDocument extends SeedDMS_Controller_Common {
|
|||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, $document, false)) {
|
||||
$this->errormsg = getAttributeValidationError($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
|
|
@ -51,13 +51,40 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
|
|||
$oldattributes = $folder->getAttributes();
|
||||
if($attributes) {
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if(null === ($ret = $this->callHook('validateAttribute', $attrdef, $attribute))) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, $folder, false)) {
|
||||
$this->errormsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -81,6 +108,7 @@ class SeedDMS_Controller_EditFolder extends SeedDMS_Controller_Common {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach($oldattributes as $attrdefid=>$oldattribute) {
|
||||
if(!isset($attributes[$attrdefid])) {
|
||||
if(!$folder->removeAttribute($dms->getAttributeDefinition($attrdefid)))
|
||||
|
|
|
@ -644,7 +644,7 @@ class SeedDMS_NotificationService {
|
|||
$params['name'] = $document->getName();
|
||||
$params['document_id'] = $document->getId();
|
||||
$params['attribute_name'] = $attribute->getAttributeDefinition()->getName();
|
||||
$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValue();
|
||||
$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValueAsString();
|
||||
$params['attribute_new_value'] = isset($newattributes[$attrdefid]) ? $newattributes[$attrdefid]->getValue() : '';
|
||||
$params['folder_path'] = $folder->getFolderPathPlain();
|
||||
$params['username'] = $user->getFullName();
|
||||
|
@ -669,7 +669,7 @@ class SeedDMS_NotificationService {
|
|||
$params['name'] = $document->getName();
|
||||
$params['document_id'] = $document->getId();
|
||||
$params['attribute_name'] = $dms->getAttributeDefinition($attrdefid)->getName();
|
||||
$params['attribute_value'] = $attribute->getValue();
|
||||
$params['attribute_value'] = $attribute->getValueAsString();
|
||||
$params['folder_path'] = $folder->getFolderPathPlain();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID();
|
||||
|
@ -699,8 +699,8 @@ class SeedDMS_NotificationService {
|
|||
$params['name'] = $folder->getName();
|
||||
$params['folder_id'] = $folder->getId();
|
||||
$params['attribute_name'] = $attribute->getAttributeDefinition()->getName();
|
||||
$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValue();
|
||||
$params['attribute_new_value'] = isset($newattributes[$attrdefid]) ? $newattributes[$attrdefid]->getValue() : '';
|
||||
$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValueAsString();
|
||||
$params['attribute_new_value'] = isset($newattributes[$attrdefid]) ? $newattributes[$attrdefid]->getValueAsString() : '';
|
||||
$params['folder_path'] = $folder->getFolderPathPlain();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
|
||||
|
@ -722,8 +722,9 @@ class SeedDMS_NotificationService {
|
|||
$message = "folder_attribute_added_email_body";
|
||||
$params = array();
|
||||
$params['name'] = $folder->getName();
|
||||
$params['folder_id'] = $folder->getId();
|
||||
$params['attribute_name'] = $dms->getAttributeDefinition($attrdefid)->getName();
|
||||
$params['attribute_value'] = $attribute->getValue();
|
||||
$params['attribute_value'] = $attribute->getValueAsString();
|
||||
$params['folder_path'] = $folder->getFolderPathPlain();
|
||||
$params['username'] = $user->getFullName();
|
||||
$params['url'] = getBaseUrl().$this->settings->_httpRoot."out/out.ViewFolder.php?folderid=".$folder->getID();
|
||||
|
|
|
@ -75,12 +75,39 @@ foreach($version->getAttributes() as $ai=>$aa)
|
|||
$attributes = $_POST["attributes"];
|
||||
if($attributes) {
|
||||
foreach($attributes as $attrdefid=>$attribute) {
|
||||
$attrdef = $dms->getAttributeDefinition($attrdefid);
|
||||
if($attrdef = $dms->getAttributeDefinition($attrdefid)) {
|
||||
if($attribute) {
|
||||
switch($attrdef->getType()) {
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): string => date('Y-m-d', makeTsFromDate($value)), $attribute);
|
||||
else
|
||||
$attribute = date('Y-m-d', makeTsFromDate($attribute));
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getFolder((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getFolder((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getDocument((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getDocument((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getUser((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getUser((int) $attribute);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
if(is_array($attribute))
|
||||
$attribute = array_map(fn($value): object => $dms->getGroup((int) $value), $attribute);
|
||||
else
|
||||
$attribute = $dms->getGroup((int) $attribute);
|
||||
break;
|
||||
}
|
||||
if(!$attrdef->validate($attribute, $version, false)) {
|
||||
$errmsg = getAttributeValidationText($attrdef->getValidationError(), $attrdef->getName(), $attribute);
|
||||
|
@ -98,6 +125,7 @@ if($attributes) {
|
|||
UI::exitError(getMLText("document_title", array("documentname" => $folder->getName())),getMLText("error_occured"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$newattributes = $version->getAttributes();
|
||||
|
|
|
@ -256,7 +256,7 @@ console.log(params);
|
|||
}
|
||||
}
|
||||
if(!$nodocumentformfields || !in_array('sequence', $nodocumentformfields)) {
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getDocuments('s')).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder, 'd').($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
} else {
|
||||
$minmax = $folder->getDocumentsMinMax();
|
||||
if($this->params['defaultposition'] == 'start') {
|
||||
|
|
|
@ -98,7 +98,7 @@ $(document).ready( function() {
|
|||
)
|
||||
);
|
||||
if(!$nofolderformfields || !in_array('sequence', $nofolderformfields)) {
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getSubFolders('s')).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder, 'f').($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
} else {
|
||||
$minmax = $folder->getFoldersMinMax();
|
||||
if($this->params['defaultposition'] == 'start') {
|
||||
|
|
|
@ -93,14 +93,26 @@ $(document).ready( function() {
|
|||
$content .= "</tr></thead>\n<tbody>\n";
|
||||
$separator = $selattrdef->getValueSetSeparator();
|
||||
foreach($res['frequencies'][$type] as $entry) {
|
||||
$value = $selattrdef->parseValue($entry['value']);
|
||||
if(is_array($entry['value'])) {
|
||||
$values = $entry['value'];
|
||||
} else {
|
||||
$values = [$entry['value']];
|
||||
}
|
||||
$value = [];
|
||||
foreach($values as $v) {
|
||||
if(is_object($v))
|
||||
$value[] = $v->getId();
|
||||
else
|
||||
$value[] = $v;
|
||||
}
|
||||
// $value = $selattrdef->parseValue($entry['value']);
|
||||
$content .= "<tr>";
|
||||
$content .= "<td>".htmlspecialchars(implode('<span style="color: #aaa;">'.($separator ? ' '.$separator.' ' : ' ; ').'</span>', $value))."</td>";
|
||||
$content .= "<td><a href=\"../out/out.Search.php?fullsearch=0&resultmode=".($type == 'folder' ? 2 : ($type == 'document' ? 1 : 3))."&";
|
||||
if($selattrdef->getType() == SeedDMS_Core_AttributeDefinition::type_date)
|
||||
$content .= "attributes[".$selattrdef->getID()."][from]=".urlencode($entry['value'])."&attributes[".$selattrdef->getID()."][to]=".urlencode($entry['value']);
|
||||
else
|
||||
$content .= "attributes[".$selattrdef->getID()."]=".urlencode($entry['value']);
|
||||
$content .= "attributes[".$selattrdef->getID()."]=".urlencode($value[0]);
|
||||
$content .= "\">".urlencode($entry['c'])."</a></td>";
|
||||
$content .= "<td>";
|
||||
/* various checks, if the value is valid */
|
||||
|
|
|
@ -1714,17 +1714,43 @@ $(document).ready(function() {
|
|||
print "</select>";
|
||||
} /* }}} */
|
||||
|
||||
function printSequenceChooser($objArr, $keepID = -1) { /* {{{ */
|
||||
echo $this->getSequenceChooser($objArr, $keepID);
|
||||
function printSequenceChooser($parent, $type, $keepID = -1) { /* {{{ */
|
||||
echo $this->getSequenceChooser($parent, $type, $keepID);
|
||||
} /* }}} */
|
||||
|
||||
function getSequenceChooser($objArr, $keepID = -1) { /* {{{ */
|
||||
if (count($objArr) > 0) {
|
||||
$max = $objArr[count($objArr)-1]->getSequence() + 1;
|
||||
$min = $objArr[0]->getSequence() - 1;
|
||||
/**
|
||||
* Return html code for sequence chooser
|
||||
*
|
||||
* This method will return the html code of the ѕelect menu for setting
|
||||
* the ѕequence number of a document or folder. The select menu will contain
|
||||
* a list of all siblings to select to positon relative to a sibling.
|
||||
* For performance reasons the select menu will not contain any siblings
|
||||
* if the number of siblings is greater than 50.
|
||||
*
|
||||
* @param $parent object parent folder of new or updated document/folder
|
||||
* @param $type string type of new object 'f'=folder, 'd'=document
|
||||
* @param $keepID integer id of current object
|
||||
*/
|
||||
function getSequenceChooser($parent, $type, $keepID = -1) { /* {{{ */
|
||||
$objArr = [];
|
||||
if($type == 'd') {
|
||||
if(($c = $parent->hasDocuments()) < 50)
|
||||
$objArr = $parent->getDocuments('s');
|
||||
$minmax = $parent->getDocumentsMinMax();
|
||||
} elseif($type = 'f') {
|
||||
if(($c = $parent->hasSubFolders()) < 50)
|
||||
$objArr = $parent->getSubFolders('s');
|
||||
$minmax = $parent->getFoldersMinMax();
|
||||
} else
|
||||
return '';
|
||||
|
||||
if ($objArr) {
|
||||
$min = $minmax['min']-1.0;
|
||||
$max = $minmax['max']+1.0;
|
||||
}
|
||||
else {
|
||||
$max = 1.0;
|
||||
$min = (float) $minmax['min'];
|
||||
$max = $minmax['max']+1.0;
|
||||
}
|
||||
$content = "<select name=\"sequence\">\n";
|
||||
if ($keepID != -1) {
|
||||
|
@ -1732,7 +1758,7 @@ $(document).ready(function() {
|
|||
}
|
||||
if($this->params['defaultposition'] != 'start')
|
||||
$content .= " <option value=\"".$max."\">" . getMLText("seq_end");
|
||||
if (count($objArr) > 0) {
|
||||
if ($c > 0) {
|
||||
$content .= " <option value=\"".$min."\">" . getMLText("seq_start");
|
||||
}
|
||||
if($this->params['defaultposition'] == 'start')
|
||||
|
@ -1975,8 +2001,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
if($targetfolder = $dms->getFolder(intval($attr)))
|
||||
foreach($attrs as $targetfolder) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -1984,8 +2009,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
if($targetdoc = $dms->getDocument(intval($attr)))
|
||||
foreach($attrs as $targetdoc) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -1993,8 +2017,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
$curuser = $dms->getUser((int) $attr);
|
||||
foreach($attrs as $curuser) {
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -2002,8 +2025,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
$curgroup = $dms->getGroup((int) $attr);
|
||||
foreach($attrs as $curgroup) {
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -2053,23 +2075,18 @@ $(document).ready(function() {
|
|||
$content .= "<input type=\"text\" id=\"".$attr_id."\" name=\"".$attr_name."\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." data-rule-number=\"true\"/>";
|
||||
break; */
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? (int) $attribute->getValue() : (int) $attribute) : 0;
|
||||
if($objvalue)
|
||||
$target = $dms->getFolder($objvalue);
|
||||
else
|
||||
$target = null;
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$content .= $this->getFolderChooserHtml("attr".$attrdef->getId(), M_READWRITE, -1, $target, $attr_name, false);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? (int) $attribute->getValue() : (int) $attribute) : 0;
|
||||
if($objvalue)
|
||||
$target = $dms->getDocument($objvalue);
|
||||
else
|
||||
$target = null;
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), M_READ, -1, $target, $attr_name);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array();
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
@ -2089,7 +2106,10 @@ $(document).ready(function() {
|
|||
}
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array();
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
$groups = $dms->getAllGroups();
|
||||
if($groups) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
|
|
@ -201,7 +201,7 @@ $(document).ready( function() {
|
|||
}
|
||||
if(!$nodocumentformfields || !in_array('sequence', $nodocumentformfields)) {
|
||||
if ($folder->getAccessMode($user) > M_READ) {
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder->getDocuments('s'), $document->getID()).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($folder, 'd', $document->getID()).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
}
|
||||
}
|
||||
if($attrdefs) {
|
||||
|
|
|
@ -108,7 +108,7 @@ $(document).ready(function() {
|
|||
$parent = ($folder->getID() == $rootfolderid) ? false : $folder->getParent();
|
||||
if(!$nofolderformfields || !in_array('sequence', $nofolderformfields)) {
|
||||
if ($parent && $parent->getAccessMode($user) > M_READ) {
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($parent->getSubFolders('s'), $folder->getID()).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
$this->formField(getMLText("sequence"), $this->getSequenceChooser($parent, 'f', $folder->getID()).($orderby != 's' ? "<br />".getMLText('order_by_sequence_off') : ''));
|
||||
}
|
||||
}
|
||||
if($attrdefs) {
|
||||
|
|
|
@ -1517,7 +1517,7 @@ $(document).ready(function() {
|
|||
$attrstr .= $arr;
|
||||
} else {
|
||||
$attrdef = $docattribute->getAttributeDefinition();
|
||||
$attrstr .= "<tr><td>".htmlspecialchars($attrdef->getName())."</td><td>".htmlspecialchars(implode(', ', $docattribute->getValueAsArray()))."</td></tr>\n";
|
||||
$attrstr .= "<tr><td>".htmlspecialchars($attrdef->getName())."</td><td>".htmlspecialchars($docattribute->getValueAsString())."</td></tr>\n";
|
||||
}
|
||||
}
|
||||
$attrstr .= "</table>\n";
|
||||
|
|
|
@ -1671,17 +1671,43 @@ $(document).ready(function() {
|
|||
print "</select>";
|
||||
} /* }}} */
|
||||
|
||||
function printSequenceChooser($objArr, $keepID = -1) { /* {{{ */
|
||||
echo $this->getSequenceChooser($objArr, $keepID);
|
||||
function printSequenceChooser($parent, $type, $keepID = -1) { /* {{{ */
|
||||
echo $this->getSequenceChooser($parent, $type, $keepID);
|
||||
} /* }}} */
|
||||
|
||||
function getSequenceChooser($objArr, $keepID = -1) { /* {{{ */
|
||||
if (count($objArr) > 0) {
|
||||
$max = $objArr[count($objArr)-1]->getSequence() + 1;
|
||||
$min = $objArr[0]->getSequence() - 1;
|
||||
/**
|
||||
* Return html code for sequence chooser
|
||||
*
|
||||
* This method will return the html code of the ѕelect menu for setting
|
||||
* the ѕequence number of a document or folder. The select menu will contain
|
||||
* a list of all siblings to select to positon relative to a sibling.
|
||||
* For performance reasons the select menu will not contain any siblings
|
||||
* if the number of siblings is greater than 50.
|
||||
*
|
||||
* @param $parent object parent folder of new or updated document/folder
|
||||
* @param $type string type of new object 'f'=folder, 'd'=document
|
||||
* @param $keepID integer id of current object
|
||||
*/
|
||||
function getSequenceChooser($parent, $type, $keepID = -1) { /* {{{ */
|
||||
$objArr = [];
|
||||
if($type == 'd') {
|
||||
if(($c = $parent->hasDocuments()) < 50)
|
||||
$objArr = $parent->getDocuments('s');
|
||||
$minmax = $parent->getDocumentsMinMax();
|
||||
} elseif($type = 'f') {
|
||||
if(($c = $parent->hasSubFolders()) < 50)
|
||||
$objArr = $parent->getSubFolders('s');
|
||||
$minmax = $parent->getFoldersMinMax();
|
||||
} else
|
||||
return '';
|
||||
|
||||
if ($objArr) {
|
||||
$min = $minmax['min']-1.0;
|
||||
$max = $minmax['max']+1.0;
|
||||
}
|
||||
else {
|
||||
$max = 1.0;
|
||||
$min = (float) $minmax['min'];
|
||||
$max = $minmax['max']+1.0;
|
||||
}
|
||||
$content = "<select class=\"form-control\" name=\"sequence\">\n";
|
||||
if ($keepID != -1) {
|
||||
|
@ -1689,7 +1715,7 @@ $(document).ready(function() {
|
|||
}
|
||||
if($this->params['defaultposition'] != 'start')
|
||||
$content .= " <option value=\"".$max."\">" . getMLText("seq_end");
|
||||
if (count($objArr) > 0) {
|
||||
if ($c > 0) {
|
||||
$content .= " <option value=\"".$min."\">" . getMLText("seq_start");
|
||||
}
|
||||
if($this->params['defaultposition'] == 'start')
|
||||
|
@ -1938,8 +1964,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
if($targetfolder = $dms->getFolder(intval($attr)))
|
||||
foreach($attrs as $targetfolder) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewFolder.php?folderid='.$targetfolder->getId().'">'.htmlspecialchars($targetfolder->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -1947,8 +1972,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
if($targetdoc = $dms->getDocument(intval($attr)))
|
||||
foreach($attrs as $targetdoc) {
|
||||
$tmp[] = '<a href="'.$this->params['settings']->_httpRoot.'out/out.ViewDocument.php?documentid='.$targetdoc->getId().'">'.htmlspecialchars($targetdoc->getName()).'</a>';
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -1956,8 +1980,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
$curuser = $dms->getUser((int) $attr);
|
||||
foreach($attrs as $curuser) {
|
||||
$tmp[] = htmlspecialchars($curuser->getFullname()." (".$curuser->getLogin().")");
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -1965,8 +1988,7 @@ $(document).ready(function() {
|
|||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$attrs = $attribute->getValueAsArray();
|
||||
$tmp = array();
|
||||
foreach($attrs as $attr) {
|
||||
$curgroup = $dms->getGroup((int) $attr);
|
||||
foreach($attrs as $curgroup) {
|
||||
$tmp[] = htmlspecialchars($curgroup->getName());
|
||||
}
|
||||
return implode('<br />', $tmp);
|
||||
|
@ -2000,17 +2022,11 @@ $(document).ready(function() {
|
|||
$content .= "<input type=\"checkbox\" id=\"".$attr_id."\" name=\"".$attr_name."\" value=\"1\" ".($objvalue ? 'checked' : '')." />";
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_date:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValue() : $attribute) : '';
|
||||
$objvalue = $attribute ? getReadableDate((is_object($attribute) ? $attribute->getValue() : $attribute)) : '';
|
||||
$dateformat = getConvertDateFormat($this->params['settings']->_dateformat);
|
||||
/*
|
||||
$content .= '<span class="input-append date datepicker" data-date="'.getReadableDate(').'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'">
|
||||
<input id="'.$attr_id.'" class="span9" size="16" name="'.$attr_name.'" type="text" value="'.($objvalue ? $objvalue : '').'">
|
||||
<span class="add-on"><i class="fa fa-calendar"></i></span>
|
||||
</span>';
|
||||
*/
|
||||
$content = '
|
||||
<div class="input-group date">
|
||||
<input type="text" class="form-control" id="'.$attr_id.'" name="'.$attr_name.'" value="'.($objvalue ? getReadableDate($objvalue) : '').'" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'" data-date-autoclose="true" data-provide="datepicker">
|
||||
<input type="text" class="form-control" id="'.$attr_id.'" name="'.$attr_name.'" value="'.($objvalue ? $objvalue : '').'" data-date="'.getReadableDate().'" data-date-format="'.$dateformat.'" data-date-language="'.str_replace('_', '-', $this->params['session']->getLanguage()).'" data-date-autoclose="true" data-provide="datepicker">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fa fa-calendar"></i></span>
|
||||
</div>
|
||||
|
@ -2026,23 +2042,18 @@ $(document).ready(function() {
|
|||
$content .= "<input type=\"text\" class=\"form-control\" id=\"".$attr_id."\" name=\"".$attr_name."\" value=\"".htmlspecialchars($objvalue)."\"".((!$norequire && $attrdef->getMinValues() > 0) ? ' required="required"' : '')." data-rule-number=\"true\"/>";
|
||||
break; */
|
||||
case SeedDMS_Core_AttributeDefinition::type_folder:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? (int) $attribute->getValue() : (int) $attribute) : 0;
|
||||
if($objvalue)
|
||||
$target = $dms->getFolder($objvalue);
|
||||
else
|
||||
$target = null;
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$content .= $this->getFolderChooserHtml("attr".$attrdef->getId(), M_READWRITE, -1, $target, $attr_name, false);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_document:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? (int) $attribute->getValue() : (int) $attribute) : 0;
|
||||
if($objvalue)
|
||||
$target = $dms->getDocument($objvalue);
|
||||
else
|
||||
$target = null;
|
||||
$target = $attribute ? $attribute->getValue() : null;
|
||||
$content .= $this->getDocumentChooserHtml("attr".$attrdef->getId(), M_READ, -1, $target, $attr_name);
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_user:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array();
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
$users = $dms->getAllUsers();
|
||||
if($users) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
@ -2062,7 +2073,10 @@ $(document).ready(function() {
|
|||
}
|
||||
break;
|
||||
case SeedDMS_Core_AttributeDefinition::type_group:
|
||||
$objvalue = $attribute ? (is_object($attribute) ? $attribute->getValueAsArray() : (is_string($attribute) ? [$attribute] : $attribute)) : array();
|
||||
$target = $attribute ? $attribute->getValueAsArray() : [];
|
||||
$objvalue = [];
|
||||
foreach($target as $t)
|
||||
$objvalue[] = $t->getId();
|
||||
$groups = $dms->getAllGroups();
|
||||
if($groups) {
|
||||
$allowempty = $attrdef->getMinValues() == 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user