Ignore:
Timestamp:
01/29/09 13:35:57 (3 years ago)
Author:
CrawfordCurrie
Message:

Item455: port to foswiki Item5974: correct CSS for search results table Item5938: load CSS for ACTIONSEARCH Item5606: Item5915: respect global settings for time format

Location:
trunk/ActionTrackerPlugin/lib/Foswiki
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/ActionTrackerPlugin/lib/Foswiki/Plugins/ActionTrackerPlugin.pm

    r1340 r2226  
    11# 
    22# Copyright (C) 2002 Motorola - All rights reserved 
    3 # Copyright (C) 2004-2005 Crawford Currie http://c-dot.co.uk 
     3# Copyright (C) 2004-2009 Crawford Currie http://c-dot.co.uk 
    44# 
    55# TWiki extension that adds tags for action tracking 
     
    1616# http://www.gnu.org/copyleft/gpl.html 
    1717# 
    18 package TWiki::Plugins::ActionTrackerPlugin; 
     18package Foswiki::Plugins::ActionTrackerPlugin; 
    1919 
    2020use strict; 
     
    2222use Error qw( :try ); 
    2323 
    24 require TWiki::Func; 
    25 require TWiki::Plugins; 
     24require Foswiki::Func; 
     25require Foswiki::Plugins; 
    2626 
    2727use vars qw( $VERSION $RELEASE $initialised $SHORTDESCRIPTION ); 
     
    4343    # COVERAGE OFF standard plugin code 
    4444 
    45     if( $TWiki::Plugins::VERSION < 1.026 ) { 
    46         TWiki::Func::writeWarning( 'Version mismatch between ActionTrackerPlugin and Plugins.pm $TWiki::Plugins::VERSION. 1.026 required.' ); 
     45    if( $Foswiki::Plugins::VERSION < 1.026 ) { 
     46        Foswiki::Func::writeWarning( 'Version mismatch between ActionTrackerPlugin and Plugins.pm $Foswiki::Plugins::VERSION. 1.026 required.' ); 
    4747    } 
    4848    # COVERAGE ON 
     
    5151    $doneHeader = 0; 
    5252 
    53     TWiki::Func::registerRESTHandler( 'update', \&_updateRESTHandler ); 
    54     TWiki::Func::registerTagHandler( 
     53    Foswiki::Func::registerRESTHandler( 'update', \&_updateRESTHandler ); 
     54    Foswiki::Func::registerTagHandler( 
    5555        'ACTIONSEARCH', \&_handleActionSearch, 'context-free'); 
    5656 
     
    5858}; 
    5959 
     60sub _addCSSAndJS { 
     61    my $debug = ''; 
     62    $debug = '_src' if DEBUG; 
     63 
     64    Foswiki::Func::addToHEAD('ACTIONTRACKERPLUGIN_CSS', <<HERE); 
     65<link rel="stylesheet" href="$options->{CSS}" type="text/css" media="all" /> 
     66HERE 
     67    Foswiki::Func::addToHEAD('ACTIONTRACKERPLUGIN_JS', <<HERE); 
     68<script type='text/javascript' src='%PUBURLPATH%/%SYSTEMWEB%/ActionTrackerPlugin/atp$debug.js'></script> 
     69HERE 
     70} 
     71 
    6072sub commonTagsHandler { 
    6173    my( $otext, $topic, $web, $meta ) = @_; 
     
    6577    return unless _lazyInit($web, $topic); 
    6678 
    67     my $debug = ''; 
    68     $debug = '_src' if DEBUG; 
    69  
    70     TWiki::Func::addToHEAD('ACTIONTRACKERPLUGIN_CSS', <<HERE); 
    71 <link rel="stylesheet" href="$options->{CSS}" type="text/css" media="all" /> 
    72 HERE 
    73     TWiki::Func::addToHEAD('ACTIONTRACKERPLUGIN_JS', <<HERE); 
    74 <script type='text/javascript' src='%PUBURLPATH%/%SYSTEMWEB%/ActionTrackerPlugin/atp$debug.js'></script> 
    75 HERE 
     79    _addCSSAndJS(); 
    7680 
    7781    # Format actions in the topic. 
    7882    # Done this way so we get tables built up by 
    7983    # collapsing successive actions. 
    80     my $as = TWiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
     84    my $as = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
    8185        $web, $topic, $otext, 1); 
    8286    my $actionGroup; 
     
    8791            if (!$actionGroup) { 
    8892                $actionGroup = 
    89                   new TWiki::Plugins::ActionTrackerPlugin::ActionSet(); 
     93                  new Foswiki::Plugins::ActionTrackerPlugin::ActionSet(); 
    9094            } 
    9195            $actionGroup->add($entry); 
     
    127131    #my( $text, $topic, $web, $meta ) = @_; 
    128132 
    129     if( TWiki::Func::getSkin() =~ /\baction\b/ ) { 
     133    if( Foswiki::Func::getSkin() =~ /\baction\b/ ) { 
     134print STDERR "Action edit\n"; 
    130135        return _beforeActionEdit(@_); 
    131136    } else { 
     137print STDERR "Noamrl edit\n"; 
    132138        return _beforeNormalEdit(@_); 
    133139    } 
     
    143149        return unless _lazyInit($_[2], $_[1]); 
    144150 
    145         my $as = TWiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
     151        my $as = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
    146152            $_[2], $_[1], $_[0], 1); 
    147153        $_[0] = $as->stringify(); 
     
    154160    return unless _lazyInit($web, $topic); 
    155161 
    156     my $query = TWiki::Func::getCgiQuery(); 
     162    my $query = Foswiki::Func::getCgiQuery(); 
    157163 
    158164    my $uid = $query->param( 'atp_action' ); 
     
    162168    # as %TEXT%. This is done so we can use the standard template mechanism 
    163169    # without screwing up the content of the subtemplate. 
    164     my $tmpl = TWiki::Func::readTemplate( 'actionform', 
    165                                           TWiki::Func::getSkin()); 
    166  
    167     my $date = TWiki::Func::formatTime( time(), undef, 'gmtime' ); 
     170    my $tmpl = Foswiki::Func::readTemplate( 'actionform', 
     171                                          Foswiki::Func::getSkin()); 
     172 
     173    my $date = Foswiki::Func::formatTime( time(), undef, 
     174                                          $Foswiki::cfg{DisplayTimeValues} ); 
    168175 
    169176    die unless ($date); 
    170177 
    171178    $tmpl =~ s/%DATE%/$date/go; 
    172     my $user = TWiki::Func::getWikiUserName(); 
     179    my $user = Foswiki::Func::getWikiUserName(); 
    173180    $tmpl =~ s/%WIKIUSERNAME%/$user/go; 
    174     $tmpl = TWiki::Func::expandCommonVariables( $tmpl, $topic, $web ); 
    175     $tmpl = TWiki::Func::renderText( $tmpl, $web ); 
     181    $tmpl = Foswiki::Func::expandCommonVariables( $tmpl, $topic, $web ); 
     182    $tmpl = Foswiki::Func::renderText( $tmpl, $web ); 
    176183 
    177184    # The 'command' parameter is used to signal to the afterEditHandler and 
     
    188195 
    189196    # Find the action. 
    190     my $as = TWiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
     197    my $as = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
    191198        $web, $topic, $text, 1); 
    192199    my ( $action, $pre, $post ) = $as->splitOnAction( $uid ); 
     
    228235    $tmpl =~ s/%SUBMITCOMMAND%/$submitCmd/go; 
    229236 
    230     my $fmt = new TWiki::Plugins::ActionTrackerPlugin::Format( 
     237    my $fmt = new Foswiki::Plugins::ActionTrackerPlugin::Format( 
    231238        $options->{EDITHEADER}, 
    232239        $options->{EDITFORMAT}, 
     
    252259 
    253260    # Add styles and javascript for the calendar 
    254     TWiki::Func::addToHEAD( 
     261    Foswiki::Func::addToHEAD( 
    255262        'ATP_CSS', 
    256263        '<style type="text/css" media="all">@import url("%ACTIONTRACKERPLUGIN_CSS%");</style>'); 
    257264 
    258     use TWiki::Contrib::JSCalendarContrib; 
    259     if( $@ || !$TWiki::Contrib::JSCalendarContrib::VERSION ) { 
    260         TWiki::Func::writeWarning('JSCalendarContrib not found '.$@); 
     265    use Foswiki::Contrib::JSCalendarContrib; 
     266    if( $@ || !$Foswiki::Contrib::JSCalendarContrib::VERSION ) { 
     267        Foswiki::Func::writeWarning('JSCalendarContrib not found '.$@); 
    261268    } else { 
    262         TWiki::Contrib::JSCalendarContrib::addHEAD( 'twiki' ); 
     269        Foswiki::Contrib::JSCalendarContrib::addHEAD( 'foswiki' ); 
    263270    } 
    264271} 
     
    282289    ### my ( $text, $topic, $web ) = @_; 
    283290 
    284     my $query = TWiki::Func::getCgiQuery(); 
     291    my $query = Foswiki::Func::getCgiQuery(); 
    285292    return unless ( $query->param( 'closeactioneditor' )); 
    286293 
     
    303310 
    304311    my $action = 
    305       TWiki::Plugins::ActionTrackerPlugin::Action::createFromQuery( 
     312      Foswiki::Plugins::ActionTrackerPlugin::Action::createFromQuery( 
    306313          $_[2], $_[1], $an, $query ); 
    307314 
     
    325332    return unless _lazyInit($web, $topic); 
    326333 
    327     my $query = TWiki::Func::getCgiQuery(); 
     334    my $query = Foswiki::Func::getCgiQuery(); 
    328335    return unless ( $query ); # Fix from GarethEdwards 13 Jun 2003 
    329336 
     
    368375    my %seenUID; 
    369376 
    370     my $as = TWiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
     377    my $as = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
    371378        $_[2], $_[1], $_[0], 1); 
    372379 
     
    394401    return unless _lazyInit($web, $topic); 
    395402 
     403    _addCSSAndJS(); 
     404 
    396405    # use default format unless overridden 
    397406    my $fmt; 
     
    406415        $hdrs = $defaultFormat->getHeaders() unless ( defined( $hdrs )); 
    407416        $orient = $defaultFormat->getOrientation() unless ( defined( $orient )); 
    408         $fmt = new TWiki::Plugins::ActionTrackerPlugin::Format( $hdrs, $fmts, $orient, '', '' ); 
     417        $fmt = new Foswiki::Plugins::ActionTrackerPlugin::Format( $hdrs, $fmts, $orient, '', '' ); 
    409418    } else { 
    410419        $fmt = $defaultFormat; 
    411420    } 
    412421 
    413     my $actions = TWiki::Plugins::ActionTrackerPlugin::ActionSet::allActionsInWebs( $web, $attrs, 0 ); 
     422    my $actions = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::allActionsInWebs( $web, $attrs, 0 ); 
    414423    $actions->sort( $sort ); 
    415424    return $actions->formatAsHTML( $fmt, 'href', $options->{USENEWWINDOW}, 
     
    424433 
    425434    eval { 
    426         require TWiki::Attrs; 
    427         require TWiki::Plugins::ActionTrackerPlugin::Options; 
    428         require TWiki::Plugins::ActionTrackerPlugin::Action; 
    429         require TWiki::Plugins::ActionTrackerPlugin::ActionSet; 
    430         require TWiki::Plugins::ActionTrackerPlugin::Format; 
     435        require Foswiki::Attrs; 
     436        require Foswiki::Plugins::ActionTrackerPlugin::Options; 
     437        require Foswiki::Plugins::ActionTrackerPlugin::Action; 
     438        require Foswiki::Plugins::ActionTrackerPlugin::ActionSet; 
     439        require Foswiki::Plugins::ActionTrackerPlugin::Format; 
    431440    }; 
    432441    if ($@) { 
    433         TWiki::Func::writeWarning("ActionTrackerPlugin: init failed $@"); 
     442        Foswiki::Func::writeWarning("ActionTrackerPlugin: init failed $@"); 
    434443        return 0; 
    435444    } 
    436445 
    437     $options = TWiki::Plugins::ActionTrackerPlugin::Options::load( 
     446    $options = Foswiki::Plugins::ActionTrackerPlugin::Options::load( 
    438447        $web, $topic); 
    439448 
    440     $defaultFormat = new TWiki::Plugins::ActionTrackerPlugin::Format( 
     449    $defaultFormat = new Foswiki::Plugins::ActionTrackerPlugin::Format( 
    441450        $options->{TABLEHEADER}, 
    442451        $options->{TABLEFORMAT}, 
     
    446455 
    447456    if( $options->{EXTRAS} ) { 
    448         my $e = TWiki::Plugins::ActionTrackerPlugin::Action::extendTypes( 
     457        my $e = Foswiki::Plugins::ActionTrackerPlugin::Action::extendTypes( 
    449458            $options->{EXTRAS} ); 
    450459        # COVERAGE OFF safety net 
    451460        if ( defined( $e )) { 
    452             TWiki::Func::writeWarning( "- TWiki::Plugins::ActionTrackerPlugin ERROR $e" ); 
     461            Foswiki::Func::writeWarning( "- Foswiki::Plugins::ActionTrackerPlugin ERROR $e" ); 
    453462        } 
    454463        # COVERAGE ON 
     
    466475    my ( $web, $expr ) = @_; 
    467476 
    468     eval 'require TWiki::Plugins::ActionTrackerPlugin::ActionNotify'; 
     477    eval 'require Foswiki::Plugins::ActionTrackerPlugin::ActionNotify'; 
    469478    if( $@ ) { 
    470         TWiki::Func::writeWarning("ATP: $@"); 
     479        Foswiki::Func::writeWarning("ATP: $@"); 
    471480        return; 
    472481    } 
    473482 
    474     my $text = TWiki::Plugins::ActionTrackerPlugin::ActionNotify::doNotifications( $web, $expr, 1 ); 
     483    my $text = Foswiki::Plugins::ActionTrackerPlugin::ActionNotify::doNotifications( $web, $expr, 1 ); 
    475484 
    476485    $text =~ s/<html>/<\/pre>/gios; 
     
    483492sub _updateRESTHandler { 
    484493    my $session = shift; 
    485     my $query = TWiki::Func::getCgiQuery(); 
     494    my $query = Foswiki::Func::getCgiQuery(); 
    486495    try { 
    487496        my $topic = $query->param('topic'); 
    488497        my $web; 
    489         ($web, $topic) = TWiki::Func::normalizeWebTopicName(undef, $topic); 
     498        ($web, $topic) = Foswiki::Func::normalizeWebTopicName(undef, $topic); 
    490499        _lazyInit($web, $topic); 
    491500        _updateSingleAction( 
     
    498507        print CGI::header('text/plain', 500); 
    499508        print $e->{-text}; 
    500     } catch TWiki::AccessControlException with { 
     509    } catch Foswiki::AccessControlException with { 
    501510        my $e = shift; 
    502511        print CGI::header('text/plain', 500); 
     
    509518    my ( $web, $topic, $uid, %changes ) = @_; 
    510519 
    511     my ($meta, $text) = TWiki::Func::readTopic($web, $topic); 
     520    my ($meta, $text) = Foswiki::Func::readTopic($web, $topic); 
    512521 
    513522    my $descr; 
     
    518527    my %seenUID; 
    519528 
    520     my $as = TWiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
     529    my $as = Foswiki::Plugins::ActionTrackerPlugin::ActionSet::load( 
    521530        $web, $topic, $text, 1); 
    522531 
     
    530539        } 
    531540    } 
    532     TWiki::Func::saveTopic($web, $topic, $meta, $as->stringify(), 
     541    Foswiki::Func::saveTopic($web, $topic, $meta, $as->stringify(), 
    533542                           { comment => 'atp save' }); 
    534543} 
Note: See TracChangeset for help on using the changeset viewer.