mirror of
				https://git.code.sf.net/p/seeddms/code
				synced 2025-10-31 13:18:06 +00:00 
			
		
		
		
	check diff of attributes after all changes have been saved
This commit is contained in:
		
							parent
							
								
									83ac7adf25
								
							
						
					
					
						commit
						9b525b10a2
					
				|  | @ -59,10 +59,15 @@ if (!is_object($version)) { | |||
| 	UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("invalid_version")); | ||||
| } | ||||
| 
 | ||||
| $attributes = $_POST["attributes"]; | ||||
| /* Make a real copy of each attribute because setting a new attribute value | ||||
|  * will just update the old attribute object in array attributes[] and hence | ||||
|  * also update the old value | ||||
|  */ | ||||
| foreach($version->getAttributes() as $ai=>$aa) | ||||
| 	$oldattributes[$ai] = clone $aa; | ||||
| 
 | ||||
| $attributes = $_POST["attributes"]; | ||||
| if($attributes) { | ||||
| 	$oldattributes = $version->getAttributes(); | ||||
| 	foreach($attributes as $attrdefid=>$attribute) { | ||||
| 		$attrdef = $dms->getAttributeDefinition($attrdefid); | ||||
| 		if($attribute) { | ||||
|  | @ -73,32 +78,6 @@ if($attributes) { | |||
| 			if(!isset($oldattributes[$attrdefid]) || $attribute != $oldattributes[$attrdefid]->getValue()) { | ||||
| 				if(!$version->setAttributeValue($dms->getAttributeDefinition($attrdefid), $attribute)) { | ||||
| 					UI::exitError(getMLText("document_title", array("documentname" => $document->getName())),getMLText("error_occured")); | ||||
| 				} else { | ||||
| 					if($notifier) { | ||||
| 						$notifyList = $document->getNotifyList(); | ||||
| 						$subject = "attribute_changed_email_subject"; | ||||
| 						$message = "attribute_changed_email_body"; | ||||
| 						$params = array(); | ||||
| 						$params['name'] = $document->getName(); | ||||
| 						$params['version'] = $version->getVersion(); | ||||
| 						$params['attribute_name'] = $dms->getAttributeDefinition($attrdefid)->getName(); | ||||
| 						$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValue(); | ||||
| 						$params['attribute_new_value'] = $attribute; | ||||
| 						$params['folder_path'] = $folder->getFolderPathPlain(); | ||||
| 						$params['username'] = $user->getFullName(); | ||||
| 						$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID()."&version=".$version->getVersion(); | ||||
| 						$params['sitename'] = $settings->_siteName; | ||||
| 						$params['http_root'] = $settings->_httpRoot; | ||||
| 
 | ||||
| 						$notifier->toList($user, $notifyList["users"], $subject, $message, $params); | ||||
| 						foreach ($notifyList["groups"] as $grp) { | ||||
| 							$notifier->toGroup($user, $grp, $subject, $message, $params); | ||||
| 						} | ||||
| 						// if user is not owner send notification to owner
 | ||||
| //						if ($user->getID() != $document->getOwner()->getID()) 
 | ||||
| //							$notifier->toIndividual($user, $document->getOwner(), $subject, $message, $params);
 | ||||
| 
 | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		} elseif($attrdef->getMinValues() > 0) { | ||||
|  | @ -110,6 +89,63 @@ if($attributes) { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| $newattributes = $version->getAttributes(); | ||||
| if($oldattributes) { | ||||
| 	foreach($oldattributes as $attrdefid=>$attribute) { | ||||
| 		if(!isset($newattributes[$attrdefid]) || $newattributes[$attrdefid]->getValueAsArray() !== $oldattributes[$attrdefid]->getValueAsArray()) { | ||||
| 			if($notifier) { | ||||
| 				$notifyList = $document->getNotifyList(); | ||||
| 				$subject = "attribute_changed_email_subject"; | ||||
| 				$message = "attribute_changed_email_body"; | ||||
| 				$params = array(); | ||||
| 				$params['name'] = $document->getName(); | ||||
| 				$params['version'] = $version->getVersion(); | ||||
| 				$params['attribute_name'] = $attribute->getAttributeDefinition()->getName(); | ||||
| 				$params['attribute_old_value'] = $oldattributes[$attrdefid]->getValue(); | ||||
| 				$params['attribute_new_value'] = isset($newattributes[$attrdefid]) ? $newattributes[$attrdefid]->getValue() : ''; | ||||
| 				$params['folder_path'] = $folder->getFolderPathPlain(); | ||||
| 				$params['username'] = $user->getFullName(); | ||||
| 				$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); | ||||
| 				$params['sitename'] = $settings->_siteName; | ||||
| 				$params['http_root'] = $settings->_httpRoot; | ||||
| 
 | ||||
| 				$notifier->toList($user, $notifyList["users"], $subject, $message, $params); | ||||
| 				foreach ($notifyList["groups"] as $grp) { | ||||
| 					$notifier->toGroup($user, $grp, $subject, $message, $params); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| /* Check for new attributes which didn't have a value before */ | ||||
| if($newattributes) { | ||||
| 	foreach($newattributes as $attrdefid=>$attribute) { | ||||
| 		if(!isset($oldattributes[$attrdefid]) && $attribute) { | ||||
| 			if($notifier) { | ||||
| 				$notifyList = $document->getNotifyList(); | ||||
| 				$subject = "attribute_changed_email_subject"; | ||||
| 				$message = "attribute_changed_email_body"; | ||||
| 				$params = array(); | ||||
| 				$params['name'] = $document->getName(); | ||||
| 				$params['version'] = ''; | ||||
| 				$params['attribute_name'] = $dms->getAttributeDefinition($attrdefid)->getName(); | ||||
| 				$params['attribute_old_value'] = ''; | ||||
| 				$params['attribute_new_value'] = $attribute->getValue(); | ||||
| 				$params['folder_path'] = $folder->getFolderPathPlain(); | ||||
| 				$params['username'] = $user->getFullName(); | ||||
| 				$params['url'] = "http".((isset($_SERVER['HTTPS']) && (strcmp($_SERVER['HTTPS'],'off')!=0)) ? "s" : "")."://".$_SERVER['HTTP_HOST'].$settings->_httpRoot."out/out.ViewDocument.php?documentid=".$document->getID(); | ||||
| 				$params['sitename'] = $settings->_siteName; | ||||
| 				$params['http_root'] = $settings->_httpRoot; | ||||
| 
 | ||||
| 				$notifier->toList($user, $notifyList["users"], $subject, $message, $params); | ||||
| 				foreach ($notifyList["groups"] as $grp) { | ||||
| 					$notifier->toGroup($user, $grp, $subject, $message, $params); | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| add_log_line("?documentid=".$documentid); | ||||
| 
 | ||||
| header("Location:../out/out.DocumentVersionDetail.php?documentid=".$documentid."&version=".$versionid); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Uwe Steinmann
						Uwe Steinmann