From a52be768746a7739eb49eb865c001953bdefa01a Mon Sep 17 00:00:00 2001
From: "Mark M. Florida" <markflorida@wustl.edu>
Date: Fri, 22 Jul 2016 16:20:58 -0500
Subject: [PATCH] XNAT-4431: better checking for port conflicts when
 creating/editing DICOM SCP receivers

---
 .../webapp/scripts/xnat/admin/dicomScpManager.js | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/main/webapp/scripts/xnat/admin/dicomScpManager.js b/src/main/webapp/scripts/xnat/admin/dicomScpManager.js
index d2131a1e..f66d5c8e 100644
--- a/src/main/webapp/scripts/xnat/admin/dicomScpManager.js
+++ b/src/main/webapp/scripts/xnat/admin/dicomScpManager.js
@@ -105,6 +105,7 @@ var XNAT = getObject(XNAT || {});
     dicomScpManager.dialog = function(item, isNew){
         var tmpl = $('#dicom-scp-editor-template');
         var doWhat = !item ? 'New' : 'Edit';
+        var oldPort = item && item.port ? item.port : null;
         isNew = firstDefined(isNew, doWhat === 'New');
         console.log(isNew);
         item = item || {};
@@ -148,17 +149,18 @@ var XNAT = getObject(XNAT || {});
                             }
                         });
 
-                        var portNumber = $port.val();
+                        var newPort = $port.val();
 
-                        console.log(portNumber);
+                        console.log(newPort);
 
-                        if (isNew){
-                            dicomScpManager.usedPorts.forEach(function(port){
-                                if (port+'' === portNumber+''){
+                        // only check for port conflicts if we're changing the port
+                        if (newPort+'' !== oldPort+''){
+                            dicomScpManager.usedPorts.forEach(function(usedPort){
+                                if (usedPort+'' === newPort+''){
                                     errors++;
-                                    errorMsg += '<li>Port <b>' + portNumber + '</b> is already in use. Please use another port number.</li>';
+                                    errorMsg += '<li>Port <b>' + newPort + '</b> is already in use. Please use another port number.</li>';
                                     $port.addClass('invalid');
-                                return false;
+                                    return false;
                                 }
                             });
                         }
-- 
GitLab