#!/usr/bin/perl
# cache_modapps.cgi
# Mod app Objects
# STTA Rev. 1.3 Copyright (c) 2001-2004 Jesús Pérez Lorenzo  --- license GNU GPL 
# stta: (@#) 1.31051043346- [2004_01_29_102036]

require './stta-lib.pl';
do 'app-lib.pl';
if ( $config{'is_ldapcache'} eq "true" ) {
     do "ldap-lib.pl";
}

&foreign_require("proc", "proc-lib.pl");

&ReadParse();

 $aliasapp=$in{appname};
 if (!$aliasapp) { &redirect("cache_selapps.cgi?form=modapps"); }
 $postform = $in{postform};

 &headerstta($text{'index_modapp'}, "","modapp" ,undef,1,0,"$text{'headpage_right'}"."$text{'head_logout'}",undef,undef,"$text{head_below}" ); 
 if ( $config{'is_ldapcache'} ne "true" ) { &footCacheHere; exit }
 $ttacmd="edit";
 # Cleaning and reset values ...
 $descrip="";
 $maxsess="";
 $appname="";
 $dn_app="";
 $ens_app="";
 $alias="";
 %h_apps=&list_apps();
 if  ( $h_apps{$aliasapp}->{'alias'} ne $aliasapp ) {
       $err_msg=$text{'list_errno'};
       &footHere;
       exit;
 }
 $dn_apps=$h_apps{$aliasapp}->{'obj'};
 $ens_apps=$h_apps{$aliasapp}->{'ens'};
 $appname=$h_apps{$aliasapp}->{'name'};
 $grpalias=$h_apps{$aliasapp}->{'grpalias'};
 $descrip=$h_apps{$aliasapp}->{'descrip'};
 $alias=$h_apps{$aliasapp}->{'alias'};
 $maxsess=$h_apps{$aliasapp}->{'maxsess'};

  $ens_obj = "\"".$config{tta_base}."/$ens_apps\"";
  # loading object attributes ...
  $op="attributes";
  $type_cmd="attributes";
  $status_cmd=&run_tta_cmd($type_cmd,$ens_obj);
  if ( !$status_cmd ) { $str_cmds="<tr><td> ".$text{'tta_noobject'}."</td></tr>";}
  # Assigning and collecting values to be used in the form ...
  %h_ttaobj=&load_ttaobj();
  $tta_AppType="";
  if ( $h_ttaobj{objectclass}{value} =~ /ttacharacterapplication/ ) { 
       $tta_AppType="charapp"; 
  } elsif ( $h_ttaobj{objectclass}{value} =~ /ttawindowsapplication/ ) {
       $tta_AppType="windowsapp";
  } elsif ( $h_ttaobj{objectclass}{value} =~ /ttaxapplication/ ) { 
       $tta_AppType="xapp"; 
  }
  %h_hosts=&list_hosts(4);
  %h_tta_apps=&load_tta_apptypes(); 
  &read_file("$root_directory/$module_name/dataconf/map_vars", \%h_map);
  @appdef=&get_tta_appdef($tta_AppType);
  foreach $data (@appdef) {
       $i=$data->{att};
       if ( $i eq "appserv" ) {
           $hosts_list ="";
           foreach $h (split(/,/, $h_ttaobj{$i}{value})) {
                   $h=~ s/$config{tta_base}\///g;
                   if ( $hosts_list ne "" ) { $hosts_list .= "\n" }
                   $hosts_list .=$h_hosts{$h}->{alias};
           }
           $data->{'value'} = $hosts_list;
       } else {
           $ens_map="ens_".$i."_".$h_ttaobj{$i}{value};
           if ( defined($h_map{$ens_map}) ) {
                 $data->{'value'} = $h_map{$ens_map};
           } else {
                 $data->{'value'} = $h_ttaobj{$i}{value};
           }
       }
  }

if ( $config{'is_ldapcache'} eq "true" ) { 
   $dn_cache="cn=$config{ldapcache_defaultobj},$dn_apps,".$config{ldapcache_base};  
   $ldapcache_server=$in{ldapcacheserver} || "1";
   &connect_cache();
   # loading variables
   &load_tta3tier_vars($dn_cache);
}
 if ( $tta_AppType =~ /windows/  && $tta3tier_domain eq "" ) { $tta3tier_domain=$config{cache_domain};  }

 print "<hr><p>\n";
 print "<SCRIPT SRC=\"global.js\">\n"; 
 print "</SCRIPT>\n"; 
 print "<SCRIPT LANGUAGE=\"JavaScript\">\n"; 
 print "<!--\n"; 
 print "/*  Strings for locales  */\n"; 
 print "var msg0=\"".$text{'msg_0'},"\";\n";
 print "var msg1=\"".$text{'msg_1'},"\";\n";
 print "var msg2=\"".$text{'msg_2'},"\";\n";
 print "var msg3=\"".$text{'msg_3'},"\";\n";
 print "var msg4=\"".$text{'msg_4'},"\";\n";
 print "var msg5=\"".$text{'msg_5'},"\";\n";
 print "var msg6=\"".$text{'msg_6'},"\";\n";
 print "var msg7=\"".$text{'msg_7'},"\";\n";
 print "var ask_confadmin=true;\n"; 
 print "\n"; 
 &htmlCheckAlias("apps");
if ( $config{'is_ldapcache'} eq "true" ) { &htmlCacheaShowPassw }
 print "/******************************************************************\n"; 
 print "   Check_fields(obj)\n"; 
 print "*******************************************************************/\n"; 
 print "function Check_fields(obj) {\n"; 
 print "     nro=parseInt(obj.maxsess.value);\n";
 print "     if ( nro+1 > 0) { \n";
 print "          obj.maxsess.value=nro;\n";
 print "     } else {;\n";
 print "          alert(obj.maxsess.name+\":\"+msg1+\"->\"+obj.maxsess.value+\"<-\");\n";
 print "          obj.maxsess.focus();\n";
 print "          return false;\n";
 print "     };\n";
 &out_tta_app_js(@appdef);
 if ( $config{'is_ldapcache'} eq "true" ) { &script_cache_chek; };
 print "     return confirm(obj.appname.value+msg7+obj.grpalias.value);\n"; 
 print "\n"; 
 print "     return true;\n"; 
 print "}\n"; 
 print "//-->\n"; 
 print "</SCRIPT>\n"; 
 print "\n"; 
 print "<table width=100% border>\n";
 print "<tr $tb> <td><font color='$revtext'><b>$text{'titidx_modapp'}</b></td> </tr>\n";
 print "<tr $cb> <td><table width=100%>\n";
 print "<form METHOD=POST name=modapp ACTION=\"modapps.cgi\" onSubmit=\"return Check_fields(this)\">\n"; 
 print "	<input TYPE=\"hidden\" NAME=\"ttacmd\" VALUE=\"",$ttacmd,"\">\n"; 
 print "	<input TYPE=\"hidden\" NAME=\"aliasapp\" VALUE=\"",$aliasapp,"\">\n"; 
 print "	<input TYPE=\"hidden\" NAME=\"grpalias\" VALUE=\"",$grpalias,"\">\n"; 
 print "	<input TYPE=\"hidden\" NAME=\"appname\" VALUE=\"",$appname,"\">\n"; 
 print "        <input TYPE=\"hidden\" NAME=\"ttaapptype\" VALUE=\"",$tta_AppType,"\">\n";
 print "	<tr><td valign=top>",&hlink("<b>$text{'f_aliasapp'}</b>","faliasapp"),"&nbsp;</td>\n";
 print "         <td valign=top><b>$aliasapp</b>&nbsp;</td></tr>\n";     
 print "	<tr><td valign=top>",&hlink("<b>$text{'f_appobjname'}</b>","fappobjname"),"&nbsp;</td>\n";
 print "         <td valign=top><b>$appname</b>&nbsp;</td></tr>\n";     
 print "	<tr><td valign=top>",&hlink("<b>$text{'f_descrip'}</b>","fdescrip"),"</td>\n"; 
 print "	<td valign=top><input TYPE=\"text\" NAME=\"descrip\" VALUE=\"$descrip\" cols=\"40\" size=\"40\" ALIGN=left></td></tr>\n"; 
 print "        <tr><td valign=top>",&hlink("<b>$text{'f_maxsess'}</b>","fmaxsess"),"&nbsp;</td>\n";
 print "        <td valign=top><input TYPE=\"text\" NAME=\"maxsess\" VALUE=\"$maxsess\" cols=\"5\" size=\"5\" ALIGN=left onChange=\"isNroThis(this)\">\n";
print "</tr></table></td></tr>\n";

     print "<tr $cb><td><b>$text{tta_obj}</b> -- $h_tta_apps{$tta_AppType} -- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$text{msg_fieldsreq}</td></tr>\n";
     print "<tr $cb> <td><table width=100% border=1 >\n";                                               &out_tta_appform(@appdef);
     print "</td></tr></table></td></tr>\n";
     print "<tr $cb> <td><table width=100%>\n";

if ( $config{'is_ldapcache'} eq "true" ) { $formObj="modapp";$msgObj=$text{'default_obj'};&htmlCacheapp(msgObj) }

 print "        <tr><td valign=top><input TYPE=\"submit\" NAME=\"",$text{'f_sendreq'},"\" VALUE=\"",$text{'f_sendreq'},"\">\n";
 print "        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
 print "        <td valign=top><input TYPE=\"reset\" NAME=\"",$text{'f_cancelreq'},"\" VALUE=\"",$text{'f_cancelreq'},"\"></td></tr>\n";
 print "	</form>\n"; 
 print "<tr><tr></table></table><hr><p>\n"; 
 &footer($config{'back_return'},$text{'index'}); 
 print "<p><p><p>\n";
 do "footer.pl";
 exit;
