Code

Updated gotoXdmcp server settings.
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 29 Jan 2008 09:42:44 +0000 (09:42 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Tue, 29 Jan 2008 09:42:44 +0000 (09:42 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@8629 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-plugins/goto/admin/systems/goto/class_terminalService.inc
gosa-plugins/goto/admin/systems/goto/terminalService.tpl

index b48beded02a38f9bdcd35b6f2ae1ab34dc8ebc98..ec1dd12ac71a0b3c76605c554262526fcfaab7ef 100644 (file)
@@ -336,16 +336,35 @@ class termservice extends plugin
     $smarty->assign("XKbLayoutKeys",array_flip($this->XKbLayouts));
     $smarty->assign("nfsservers", $this->config->data['SERVERS']['NFS']);
   
-     
+    
+    /* Create a list of useable servers for the currently selected 
+     *  connection type.
+     */ 
     $xdmcp_types =  $this->config->data['SERVERS']['TERMINAL_SESSION_TYPES'];
     $available_servers = array();
     if(isset($xdmcp_types[strtoupper($this->gotoXMethod)])){
       $available_servers = $xdmcp_types[strtoupper($this->gotoXMethod)];
     }
+
+    /* Append additional information to invalid server selections.
+     */
     $tmp = array();
     foreach($this->selected_xdmcp_servers as $server){
-        $tmp[] = $server;
+      if(in_array($server,$available_servers)){
+        $tmp[$server] = $server;
+      }else{
+        $tmp[$server] = $server."&nbsp;-&nbsp;"._("Unsupported");
+      }
     }
+
+    /* Remove already selected servers from available list. 
+     */
+    foreach($available_servers as $key => $server){
+      if(isset($tmp[$server])){
+        unset($available_servers[$key]);
+      }
+    }
+
     $smarty->assign("selected_xdmcp_servers", $tmp);
     $smarty->assign("inherited_xdmcp_servers", $this->inherited_xdmcp_servers);
     $smarty->assign("available_xdmcp_servers", $available_servers);
@@ -484,6 +503,19 @@ class termservice extends plugin
   {
     /* Call common method to give check the hook */
     $message= plugin::check();
+
+    $xdmcp_types =  $this->config->data['SERVERS']['TERMINAL_SESSION_TYPES'];
+    $available_servers = array();
+    if(isset($xdmcp_types[strtoupper($this->gotoXMethod)])){
+      $available_servers = $xdmcp_types[strtoupper($this->gotoXMethod)];
+    }
+    foreach($this->selected_xdmcp_servers as $server){
+      if(!in_array($server,$available_servers)){
+        $message[] = _("Remote desktop settings contains servers that do not support the selected connection method.");
+        break;
+      }
+    }
+
     return ($message);
   }
 
index 8080d9ea5dabe16a21a77d9e7446528dd0d3e486..750dcd57f2abc27d4ebe0311f65cb294b3c44d26 100644 (file)
                {if $gotoXMethod_select == "default"}
                        {html_options values=$inherited_xdmcp_servers output=$inherited_xdmcp_servers}
                {else}
-                       {html_options values=$selected_xdmcp_servers output=$selected_xdmcp_servers}
+                       {html_options options=$selected_xdmcp_servers}
                {/if}
       </select><br>
 {/render}