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 .= "
"; } $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;