#!/interwoven/iw-home/iw-perl/bin/perl use TeamSite::CGI_lite; use TeamSite::Config; use JSON; $IWHOME = TeamSite::Config::iwgethome(); $cgi = TeamSite::CGI_lite->new(); $cgi->parse_data(); my $vpath = $cgi->escape_html_data($cgi->{form}{'vpath'}); my $action = $cgi->escape_html_data($cgi->{form}{'action'}); print "Status: 200\n"; print "Content-type: text/javascript\n\n"; for ($action) { if (/getstatus/) { &getStatus(); } if (/unlockdcr/) { &unlockDcr(); } } sub getStatus { my %dcrState; $dcrState{'dcrPath'} = $vpath; if (-e $vpath) { $dcrState{'exists'} = 1; $iwfilestate = `$IWHOME/bin/iwfilestate -f script $vpath`; my ($locked) = $iwfilestate =~ m|locked=(.*)|; for ($locked) { if (/no/) { $dcrState{'locked'} = 0; } elsif (/self/) { $dcrState{'lockedby'} = "self"; $dcrState{'locked'} = 1; } elsif (/yes/) { if ($iwfilestate =~ m|lockowner=(.*)|) { $dcrState{'lockedby'} = $1; $dcrState{'locked'} = 1; } } } } else { $dcrState{'exists'} = 0; } my $json = to_json(\%dcrState); print "callback_getstatus(\'$json\')"; } sub unlockDcr { `$IWHOME/bin/iwunlock $vpath`; print "callback_unlockdcr()"; }