use strict; use Pos::Webtop::Toolbox (); use Pos::Policy::LayeredBurrito (); use Pos::Webtop::Web::ContentModule::UserPrefs::PrefModule (); # derived class package Pos::Webtop::Web::ContentModule::UserPrefs::PrefModule::XPRDASettings; my $className = "Pos::Webtop::Web::ContentModule::UserPrefs::PrefModule::XPRDASettings"; our @ISA = qw( Pos::Webtop::Web::ContentModule::UserPrefs::PrefModule ); sub new { my $this = shift; my $class = ref($this) || $this; my ($self) = @{{@_}}{qw/self/}; if ( not defined $self ) { $self = {}; bless($self,$class); } my %args = @_; $args{'self'} = $self; Pos::Webtop::Web::ContentModule::UserPrefs::PrefModule->new( %args ); $self->setPreferenceName( preferenceName=> "XP Remote Desktop Settings" ); $self->setPolicyTypeId( policyTypeId=> 1088 ); return $self; } # these can be cut and pasted from the polyp script .. I have # made the pref form use the same hash to generate the color # map on the page for the end user # implemented pure virtual sub getEmbeddedHtml { my $self = shift; my $toolBox = $self->getToolBox(); my $client = $toolBox->getClient(); my $cgi = $toolBox->getCgi(); my $pdb = $toolBox->getPolicyDb(); my $dbr = $toolBox->getWebtopDbReader(); my $policyValues = $self->getPolicyValues(); my $value = ""; my $remoteDesktopSizeFull = undef; my $remoteDesktopSize1400 = undef; my $remoteDesktopSize1280 = undef; my $remoteDesktopSize1152 = undef; my $remoteDesktopSize1024 = undef; my $remoteDesktopSize800 = undef; my $remoteDesktopSize640 = undef; my $remoteDesktopColors256 = undef; my $remoteDesktopColors15 = undef; my $remoteDesktopColors16 = undef; my $remoteDesktopColors24 = undef; my $remoteComputerSound_Bring = undef; my $remoteComputerSound_Donot = undef; my $remoteComputerSound_Leave = undef; my $keyboard_fullscreen = undef; my $keyboard_localComputer = undef; my $keyboard_remoteComputer = undef; my $ret = ""; foreach my $val ( @{ $policyValues } ) { $value = $val->{'policyValue'}; } $ret .= $self->getEmbeddedHeader(); my ($remoteDesktopSize, $remoteDesktopColors, $remoteComputerSound, $keyboard, $diskDrives, $printers, $serialPorts, $desktopBackground, $showContents, $menuandwindowanimation, $themes, $bitmapcaching, $connectionBar, $commandOptions, $plugPlayDevices) = split(",", $value); if (defined($remoteDesktopSize)) { if($remoteDesktopSize eq '1') { $remoteDesktopSizeFull = '1'; } elsif($remoteDesktopSize eq '2') { $remoteDesktopSize1400 = '2'; } elsif($remoteDesktopSize eq '3') { $remoteDesktopSize1280 = '3'; } elsif($remoteDesktopSize eq '4') { $remoteDesktopSize1152 = '4'; } elsif($remoteDesktopSize eq '5') { $remoteDesktopSize1024 = '5'; } elsif($remoteDesktopSize eq '6') { $remoteDesktopSize800 = '6'; } elsif($remoteDesktopSize eq '7') { $remoteDesktopSize640 = '7'; } } if (defined($remoteDesktopColors)) { if($remoteDesktopColors eq '1') { $remoteDesktopColors256 = '1'; } elsif($remoteDesktopColors eq '2') { $remoteDesktopColors15 = '2'; } elsif($remoteDesktopColors eq '3') { $remoteDesktopColors16 = '3'; } elsif($remoteDesktopColors eq '4') { $remoteDesktopColors24 = '4'; } } if (defined($remoteComputerSound)) { if($remoteComputerSound eq '1') { $remoteComputerSound_Bring = '1'; } elsif($remoteComputerSound eq '2') { $remoteComputerSound_Donot = '2'; } elsif($remoteComputerSound eq '3') { $remoteComputerSound_Leave = '3'; } } if (defined($keyboard)) { if($keyboard eq '1') { $keyboard_fullscreen = '1'; } elsif($keyboard eq '2') { $keyboard_localComputer = '2'; } elsif($keyboard eq '3') { $keyboard_remoteComputer = '3'; } } $ret .= "
"; my $action = $cgi->param('action'); if(not defined($action)) { $action = ''; } if($action eq 'save') { my $cancel = $cgi->param('cancel'); if(defined($cancel)) { $self->setDone(); return ""; } else { my $remoteDesktopSize = $cgi->param('remoteDesktopSize'); my $remoteDesktopColors = $cgi->param('remoteDesktopColors'); my $remoteComputerSound = $cgi->param('remoteComputerSound'); my $keyboard = $cgi->param('keyboard'); my $diskDrives = $cgi->param('diskDrives'); if ( defined $diskDrives and $diskDrives eq "on") { $diskDrives = '1'; } else { $diskDrives = '0'; } my $printers = $cgi->param('printers'); if ( defined $printers and $printers eq "on") { $printers = '1'; } else { $printers = '0'; } my $serialPorts = $cgi->param('serialPorts'); if ( defined $serialPorts and $serialPorts eq "on") { $serialPorts = '1'; } else { $serialPorts = '0'; } my $desktopBackground = $cgi->param('desktopBackground'); if ( defined $desktopBackground and $desktopBackground eq "on") { $desktopBackground = '1'; } else { $desktopBackground = '0'; } my $showContents = $cgi->param('showContents'); if ( defined $showContents and $showContents eq "on") { $showContents = '1'; } else { $showContents = '0'; } my $menuandwindowanimation = $cgi->param('menuandwindowanimation'); if ( defined $menuandwindowanimation and $menuandwindowanimation eq "on") { $menuandwindowanimation = '1'; } else { $menuandwindowanimation = '0'; } my $themes = $cgi->param('themes'); if ( defined $themes and $themes eq "on") { $themes = '1'; } else { $themes = '0'; } my $bitmapcaching = $cgi->param('bitmapcaching'); if ( defined $bitmapcaching and $bitmapcaching eq "on") { $bitmapcaching = '1'; } else { $bitmapcaching = '0'; } my $connectionBar = $cgi->param('connectionBar'); if ( defined $connectionBar and $connectionBar eq "on") { $connectionBar = '1'; } else { $connectionBar = '0'; } my $commandOptions = $cgi->param('commandOptions'); if ( !defined($commandOptions) && !length($commandOptions) ) { $commandOptions = ''; } my $plugPlayDevices = $cgi->param('plugPlayDevices'); if ( defined $plugPlayDevices && $plugPlayDevices eq "on") { $plugPlayDevices = '1'; } else { $plugPlayDevices = '0'; } my $policyValue = "$remoteDesktopSize,$remoteDesktopColors,$remoteComputerSound,$keyboard,$diskDrives,$printers,$serialPorts,$desktopBackground,$showContents,$menuandwindowanimation,$themes,$bitmapcaching,$connectionBar,$commandOptions,$plugPlayDevices"; $self->setPolicyValues( values=> [ { type=> "DEFAULT", value=> $policyValue } ] ); $self->setDone(); return ""; } } else { $ret .= "
Please specify the default settings of the XP Remote Desktop Client.
Remote desktop size :
 
". $client->getFormInputs(values => [ { name => 'action', value => '' } ]) . "
"; } $ret .= $self->getEmbeddedFooter(); return $ret; } # implemented pure virtual sub getPreviewText { my $self = shift; my $policyValues = $self->getPolicyValues(); my $value = ""; my $tb = $self->getToolBox(); my $client = $tb->getClient(); foreach my $val ( @{ $policyValues } ) { $value = $val->{'policyValue'}; } my $display = ''; my ($remoteDesktopSize, $remoteDesktopColors, $remoteComputerSound, $keyboard, $diskDrives, $printers, $serialPorts, $desktopBackground, $showContents, $menuandwindowanimation, $themes, $bitmapcaching, $connectionBar, $commandOptions, $plugPlayDevices) = split(",", $value); if (defined($remoteDesktopSize)) { if($remoteDesktopSize eq '1') { $display .= "Full Screen"; } elsif($remoteDesktopSize eq '2') { $display .= "1400 by 1050"; } elsif($remoteDesktopSize eq '3') { $display .= "1280 by 1024"; } elsif($remoteDesktopSize eq '4') { $display .= "1152 by 864"; } elsif($remoteDesktopSize eq '5') { $display .= "1024 by 768"; } elsif($remoteDesktopSize eq '6') { $display .= "800 by 600"; } elsif($remoteDesktopSize eq '7') { $display .= "640 by 480"; } } if(defined($connectionBar) && $connectionBar eq '1') { $display .= ", Connection bar"; } if (defined($remoteDesktopColors)) { if($remoteDesktopColors eq '1') { $display .= ", 256 Colors"; } elsif($remoteDesktopColors eq '2') { $display .= ", High Color (15 bit)"; } elsif($remoteDesktopColors eq '3') { $display .= ", High Color (16 bit)"; } elsif($remoteDesktopColors eq '4') { $display .= ", True Color (24 bit)"; } } if (defined($remoteComputerSound)) { if($remoteComputerSound eq '1') { $display .= ", Bring sound to this computer"; } elsif($remoteComputerSound eq '2') { $display .= ", Do not play sound"; } elsif($remoteComputerSound eq '3') { $display .= ", Leave sound at remote computer"; } } if (defined($keyboard)) { if($keyboard eq '1') { $display .= ", Keyboard shortcuts in full screen mode only"; } elsif($keyboard eq '2') { $display .= ", Keyboard shortcuts on the local computer"; } elsif($keyboard eq '3') { $display .= ", Keyboard shortcuts on the remote computer"; } } if(defined($diskDrives) && $diskDrives eq '1') { $display .= ", Disk drives"; } if(defined($printers) && $printers eq '1') { $display .= ", Printers"; } if(defined($serialPorts) && $serialPorts eq '1') { $display .= ", Serial ports"; } if(defined($plugPlayDevices) && $plugPlayDevices eq '1') { $display .= ", Plug and Play devices"; } if(defined($desktopBackground) && $desktopBackground eq '1') { $display .= ", Desktop background"; } if(defined($showContents) && $showContents eq '1') { $display .= ", Show contents of window while dragging"; } if(defined($menuandwindowanimation) && $menuandwindowanimation eq '1') { $display .= ", Window animation"; } if(defined($themes) && $themes eq '1') { $display .= ", Desktop themes"; } if(defined($bitmapcaching) && $bitmapcaching eq '1') { $display .= ", Bitmap caching"; } if(defined($commandOptions) && length($commandOptions)) { $display .= ", Command line options: $commandOptions"; } return $display; } 1;