Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Anchor
childAndParentDetectorDeleteValidator-anchor
childAndParentDetectorDeleteValidator-anchor
childAndParentDetectorDeleteValidator
Questa è una validazione che viene chiamata in ogni flusso di Laboratori, Grupppi di Ricerca, Grandi Attrezzature, Public-Engagement e Progetti quando si prova ad eliminare l'oggetto.
Essa impedisce che si possa eliminare l'oggetto in questione se è collegato (sia da parte di padre sia da parte di figlio) ad un qualsiasi altro oggetto.
In caso trovasse questi collegamenti, verrà presentato un messaggio di errore che mostrerà un elenco con tutti gli oggetti trovati.
Il messaggio di errore viene ricavato dall'etichetta con chiave error.delete.link.childAndParentDetected
Per maggiori dettagli cfr. modello dati dell'entità in questione
Code Block
languagejs
linenumberstrue
collapsetrue
						
			var wfItemFull = wfService.getWfItem(wfItem.getWfItemId());
			var listOfLinksDetected = '<ul>';
			
			var childWfItemLinkSet = wfItemFull.getChildWfItemLinkSet();
			//var listOfChildsLinked = '';
			var isChildDetected = false;
			
			if(childWfItemLinkSet.size() != 0){
				
				//listOfChildsLinked += '<ul>';
			
				var childWfItemLinkSetIterator = childWfItemLinkSet.iterator();									
				while (childWfItemLinkSetIterator.hasNext()){
				
					var childLink = childWfItemLinkSetIterator.next();
					
					//considero solo quelli che non sono version
					if(!childLink.getDiscriminator().equals('version')){
					
						isChildDetected = true;
						var childWfItem = childLink.getChild();
						//listOfChildsLinked += '<li>' + childWfItem.getIdentifier() + '-' + childWfItem.getDescription() + '</li>';
						listOfLinksDetected += '<li>' + childWfItem.getIdentifier() + ' - ' + childWfItem.getDescription() + '</li>';
					}
				}
				
				//ricontrollo così da escludere completamente anche le versioni
				/*if(isChildDetected)
					listOfChildsLinked += '</ul>';
				else
					listOfChildsLinked = 'Non è stato trovato nessun figlio';*/
			}else{
				//listOfChildsLinked = 'Non è stato trovato nessun figlio';
			}
			
			var parentWfItemLinkSet = wfItemFull.getParentWfItemLinkSet();
			//var listOfParentsLinked = '';
			var isParentDetected = false;
			
			if(parentWfItemLinkSet.size() != 0){
				
				//listOfParentsLinked += '<ul>';
			
				var parentWfItemLinkSetIterator = parentWfItemLinkSet.iterator();									
				while (parentWfItemLinkSetIterator.hasNext()){
				
					var parentLink = parentWfItemLinkSetIterator.next();
					
					//considero solo quelli che non sono version
					if(!parentLink.getDiscriminator().equals('version')){
					
						isParentDetected = true;
						var parentWfItem = parentLink.getParent();
						//listOfParentsLinked += '<li>' + parentWfItem.getIdentifier() + '-' + parentWfItem.getDescription() + '</li>';
						listOfLinksDetected += '<li>' + parentWfItem.getIdentifier() + ' - ' + parentWfItem.getDescription() + '</li>';
					}
				}
				
				//ricontrollo così da escludere completamente anche le versioni
				/*if(isParentDetected)
					listOfParentsLinkedlistOfLinksDetected += '</ul>';
				else
					listOfParentsLinked = 'Non è stato trovato nessun padre';*/
			}else{
				//listOfParentsLinked = 'Non è stato trovato nessun padre';
			}
			
			listOfLinksDetected +if(listOfLinksDetected != '</ul>';
			
			//se trovo anche solo uno dei due, scateno l'errore
			if(isChildDetected || isParentDetected){
			
				//var messageContainer = [listOfChildsLinked, listOfParentsLinked];<ul></ul>'){
				var messageContainer = [listOfLinksDetected];
				errors.reject("error.delete.link.childAndParentDetected", messageContainer, "error.delete.link.childAndParentDetected.default");
			}