Hi Chris,

How about abstracting these tests into a generic method in the
LedgerSMB::Template module: format_available($) which takes the format
string as its argument and returns true or not?

The implementation can be as easy as:

sub format_available {
   my ($format) = @_;
   return ! eval { require "LedgerSMB::Template::$format"; };
}

?

Bye,


Erik.

On Fri, Mar 16, 2012 at 11:16 AM, <[email protected]> wrote:

> Revision: 4485
>
> http://ledger-smb.svn.sourceforge.net/ledger-smb/?rev=4485&view=rev
> Author:   ehuelsmann
> Date:     2012-03-16 10:16:52 +0000 (Fri, 16 Mar 2012)
> Log Message:
> -----------
> Disable export buttons when the required Perl modules are missing (fixes
> 3473861).
>
> Modified Paths:
> --------------
>    branches/1.3/bin/am.pl
>    branches/1.3/bin/rp.pl
>
> Modified: branches/1.3/bin/am.pl
> ===================================================================
> --- branches/1.3/bin/am.pl      2012-03-16 07:16:58 UTC (rev 4484)
> +++ branches/1.3/bin/am.pl      2012-03-16 10:16:52 UTC (rev 4485)
> @@ -252,6 +252,11 @@
>         push @rows, \%column_data;
>     }
>
> +    my %can_load;
> +    $can_load{CSV} = 1;
> +    $can_load{XLS} = ! eval { require Excel::Template::Plus };
> +    $can_load{ODS} = ! eval { require OpenOffice::OODoc };
> +
>     my @buttons;
>     for my $type (qw(CSV XLS ODS)) {
>         push @buttons, {
> @@ -260,6 +265,7 @@
>             text => $locale->text("[_1] Report", $type),
>             type => 'submit',
>             class => 'submit',
> +            disabled => $can_load{$type} ? "" : "disabled",
>         };
>     }
>     my %hiddens = (
>
> Modified: branches/1.3/bin/rp.pl
> ===================================================================
> --- branches/1.3/bin/rp.pl      2012-03-16 07:16:58 UTC (rev 4484)
> +++ branches/1.3/bin/rp.pl      2012-03-16 10:16:52 UTC (rev 4485)
> @@ -854,6 +854,12 @@
>     $column_data{debit} = $totaldebit;
>     $column_data{credit} = $totalcredit;
>
> +
> +    my %can_load;
> +    $can_load{CSV} = 1;
> +    $can_load{XLS} = ! eval { require Excel::Template::Plus };
> +    $can_load{ODS} = ! eval { require OpenOffice::OODoc };
> +
>     my @buttons;
>     for my $type (qw(CSV XLS ODS)) {
>         push @buttons, {
> @@ -862,6 +868,7 @@
>             text => $locale->text("[_1] Report", $type),
>             type => 'submit',
>             class => 'submit',
> +            disabled => $can_load{$type} ? "" : "disabled",
>         };
>     }
>     my $format;
> @@ -1265,6 +1272,11 @@
>  ##        &menubar;
>  ##    }
>
> +    my %can_load;
> +    $can_load{CSV} = 1;
> +    $can_load{XLS} = ! eval { require Excel::Template::Plus };
> +    $can_load{ODS} = ! eval { require OpenOffice::OODoc };
> +
>     for my $type (qw(CSV XLS ODS)) {
>         push @buttons, {
>             name => 'action',
> @@ -1272,6 +1284,7 @@
>             text => $locale->text("[_1] Report", $type),
>             type => 'submit',
>             class => 'submit',
> +            disabled => $can_load{$type} ? "" : "disabled",
>         };
>     }
>     my $format;
>
> This was sent by the SourceForge.net collaborative development platform,
> the world's largest Open Source development site.
>
>
>
> ------------------------------------------------------------------------------
> This SF email is sponsosred by:
> Try Windows Azure free for 90 days Click Here
> http://p.sf.net/sfu/sfd2d-msazure
> _______________________________________________
> Ledger-smb-commits mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ledger-smb-commits
>
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ledger-smb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel

Reply via email to