diff options
95 files changed, 6527 insertions, 775 deletions
diff --git a/bin/problem-creation-graph b/bin/problem-creation-graph index 4bba1cdb8..6692ae724 100755 --- a/bin/problem-creation-graph +++ b/bin/problem-creation-graph @@ -104,6 +104,6 @@ END #echo "gpscript $GPSCRIPT" export GDFONTPATH=/usr/share/fonts/truetype/ttf-bitstream-vera -gnuplot < $GPSCRIPT > fixmystreet/web/bci-live-creation$EXTENSION +gnuplot < $GPSCRIPT > fixmystreet/web/bci-live-creation$EXTENSION 2>/dev/null diff --git a/bin/problems-filed-graph b/bin/problems-filed-graph index dbac35639..8addacd62 100755 --- a/bin/problems-filed-graph +++ b/bin/problems-filed-graph @@ -57,5 +57,5 @@ END #echo "gpscript $GPSCRIPT" export GDFONTPATH=/usr/share/fonts/truetype/ttf-bitstream-vera -gnuplot < $GPSCRIPT > fixmystreet/web/bci-live-line$EXTENSION +gnuplot < $GPSCRIPT > fixmystreet/web/bci-live-line$EXTENSION 2>/dev/null diff --git a/bin/send-reports b/bin/send-reports index 22bd12732..eb881d169 100755 --- a/bin/send-reports +++ b/bin/send-reports @@ -22,6 +22,7 @@ use CronFns; use FixMyStreet::App; use EastHantsWSDL; +use BarnetInterfaces::service::ZLBB_SERVICE_ORDER; use Utils; use mySociety::Config; use mySociety::EmailUtil; @@ -30,6 +31,22 @@ use mySociety::Web qw(ent); use Open311; +# maximum number of webservice attempts to send before not trying any more (XXX may be better in config?) +use constant SEND_FAIL_RETRIES_CUTOFF => 3; + +# specific council numbers +use constant COUNCIL_ID_BARNET => 2489; +use constant COUNCIL_ID_EAST_HANTS => 2330; + +use constant MAX_LINE_LENGTH => 132; + +# send_method config values found in by-area config data, for selecting to appropriate method +use constant SEND_METHOD_EMAIL => 'email'; +use constant SEND_METHOD_OPEN311 => 'open311'; +use constant SEND_METHOD_BARNET => 'barnet'; +use constant SEND_METHOD_EAST_HANTS => 'easthants'; +use constant SEND_METHOD_LONDON => 'london'; + # Set up site, language etc. my ($verbose, $nomail) = CronFns::options(); my $base_url = mySociety::Config::get('BASE_URL'); @@ -40,6 +57,9 @@ my $unsent = FixMyStreet::App->model("DB::Problem")->search( { whensent => undef, council => { '!=', undef }, } ); + +my %sending_skipped_by_method = (); + my (%notgot, %note); while (my $row = $unsent->next) { @@ -56,8 +76,10 @@ while (my $row = $unsent->next) { next; } - my $send_email = 0; - my $send_web = 0; + # Due to multiple councils, it's possible to want to send both by email *and* another method + # NB: might need to revist this if multiple councils have custom send methods + my $send_email = 0; + my $send_method = 0; # Template variables for the email my $email_base_url = $cobrand->base_url_for_emails($row->cobrand_data); @@ -118,6 +140,7 @@ while (my $row = $unsent->next) { push @to, [ $council_email, $name ]; @recips = ($council_email); + $send_method = 0; $send_email = 1; $template = Utils::read_file("$FindBin::Bin/../templates/email/emptyhomes/" . $row->lang . "/submit.txt"); @@ -133,15 +156,37 @@ while (my $row = $unsent->next) { foreach my $council (@councils) { my $name = $areas_info->{$council}->{name}; push @dear, $name; - if ($council == 2330) { # E. Hants have a web service - $send_web = 'easthants'; + + # look in the DB to determine if there is a special handler for this council (e.g., open311, or custom) + my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council} )->first; + $send_method = $council_config->send_method if ($council_config and $council_config->send_method); + if ($council == COUNCIL_ID_EAST_HANTS) { # E. Hants have a web service + $send_method = SEND_METHOD_EAST_HANTS; # TODO: delete? should be in the db $h{category} = 'Customer Services' if $h{category} eq 'Other'; - } elsif ($areas_info->{$council}->{type} eq 'LBO') { # London - $send_web = 'london'; - } elsif ( my $endpoint = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council, endpoint => { '!=', '' } } )->first ) { - push @open311_councils, $endpoint; - $send_web = 'open311'; - } else { + } + + # if council lookup provided no explicit send_method, maybe there's some other criterion for setting it: + if (! $send_method) { + if ($areas_info->{$council}->{type} eq 'LBO') { # London + $send_method = SEND_METHOD_LONDON; + } + } + $send_email = 1 unless $send_method; # default to email if nothing explicit was provided + + # currently: open311 or Barnet without an endpoint is useless, so check the endpoint is set + if ($send_method eq SEND_METHOD_OPEN311 or $send_method eq SEND_METHOD_BARNET) { + if ($council_config->endpoint) { + if ($send_method eq SEND_METHOD_OPEN311) { + push @open311_councils, $council_config; + } + } else { + print "Warning: no endpoint specified in config data for council=$council (will try email instead)\n"; + $send_method = 0; + $send_email = 1; + } + } + + if ($send_email) { my $contact = FixMyStreet::App->model("DB::Contact")->find( { deleted => 0, area_id => $council, @@ -160,7 +205,6 @@ while (my $row = $unsent->next) { } push @to, [ $council_email, $name ]; $recips{$council_email} = 1; - $send_email = 1; } } @recips = keys %recips; @@ -199,15 +243,19 @@ while (my $row = $unsent->next) { } - unless ($send_email || $send_web) { + unless ($send_email || $send_method) { die 'Report not going anywhere for ID ' . $row->id . '!'; } if (mySociety::Config::get('STAGING_SITE')) { # on a staging server send emails to ourselves rather than the councils - @recips = ( mySociety::Config::get('CONTACT_EMAIL') ); - $send_web = 0; - $send_email = 1; + # ...webservice calls will only go through if explictly allowed here: + my @testing_councils = (COUNCIL_ID_BARNET); + unless (grep {$row->council eq $_} @testing_councils) { + @recips = ( mySociety::Config::get('CONTACT_EMAIL') ); + $send_method = 0; + $send_email = 1; + } } elsif ($site eq 'emptyhomes') { my $council = $row->council; my $country = $areas_info->{$council}->{country}; @@ -243,17 +291,28 @@ while (my $row = $unsent->next) { ); } - if ($send_web eq 'easthants') { + if ($send_method eq SEND_METHOD_EAST_HANTS) { $h{message} = construct_easthants_message(%h); if (!$nomail) { $result *= post_easthants_message(%h); } - } elsif ($send_web eq 'london') { + } elsif ($send_method eq SEND_METHOD_BARNET) { + $h{message} = construct_barnet_message(%h); + if (!$nomail) { + if (my $cutoff_msg = does_exceed_cutoff_limit($row, "barnet")) { + print "$cutoff_msg\n" if $verbose; + } else { + my ($barnet_result, $err_msg) = post_barnet_message( $row, %h ); + update_send_fail_data($row, $err_msg) if $barnet_result; + $result *= $barnet_result; + } + } + } elsif ($send_method eq SEND_METHOD_LONDON) { $h{message} = construct_london_message(%h); if (!$nomail) { $result *= post_london_report( $row, %h ); } - } elsif ($send_web eq 'open311') { + } elsif ($send_method eq SEND_METHOD_OPEN311) { foreach my $conf ( @open311_councils ) { print 'posting to end point for ' . $conf->area_id . "\n" if $verbose; @@ -316,6 +375,16 @@ if ($verbose) { } } +if ($verbose and keys %sending_skipped_by_method) { + my $c = 0; + print "\nProblem reports that send-reports did not attempt to send because retries >= " . SEND_FAIL_RETRIES_CUTOFF . ":\n"; + foreach my $send_method (sort keys %sending_skipped_by_method) { + printf " %-24s %4d\n", "$send_method:", $sending_skipped_by_method{$send_method}; + $c+=$sending_skipped_by_method{$send_method}; + } + printf " %-24s %4d\n", "Total:", $c; +} + sub _get_district_for_contact { my ( $lat, $lon ) = @_; my $district = @@ -358,6 +427,8 @@ sub construct_easthants_message { $message .= <<EOF; Subject: $h{title} +Category: $h{category} + Details: $h{detail} $h{fuzzy}, or to provide an update on the problem, please visit the following link: @@ -390,6 +461,125 @@ sub post_easthants_message { return $return; } +# currently just blind copy of construct_easthants_message +sub construct_barnet_message { + my %h = @_; + my $message = <<EOF; +Subject: $h{title} + +Details: $h{detail} + +$h{fuzzy}, or to provide an update on the problem, please visit the following link: + +$h{url} + +$h{closest_address} +EOF +} + +sub post_barnet_message { + my ( $problem, %h ) = @_; + my $return = 1; + my $err_msg = ""; + + my $default_kbid = 14; # This is the default, "Street Scene" + my $kbid = sprintf( "%050d", Utils::barnet_categories()->{$h{category}} || $default_kbid); + + my $geo_code = "$h{easting} $h{northing}"; + + my $interface = BarnetInterfaces::service::ZLBB_SERVICE_ORDER->new(); + + my ($nearest_postcode, $nearest_street); + for ($h{closest_address}) { + $nearest_postcode = sprintf("%-10s", $1) if /Nearest postcode [^:]+: ((\w{1,4}\s?\w+|\w+))/; + # use partial postcode or comma as delimiter, strip leading number (possible letter 221B) off too + # "99 Foo Street, London N11 1XX" becomes Foo Street + # "99 Foo Street N11 1XX" becomes Foo Street + $nearest_street = sprintf("%-30s", $1) if /Nearest road [^:]+: (?:\d+\w? )?(.*?)(\b[A-Z]+\d|,|$)/m; + } + my $postcode = $h{postcode} || $nearest_postcode; # use given postcode if available + + # note: endpoint can be of form 'https://username:password@:url' + my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => COUNCIL_ID_BARNET} )->first; + if ($council_config and $council_config->endpoint) { + $interface->set_proxy($council_config->endpoint); + # Barnet web service doesn't like namespaces in the elements so use a prefix + $interface->set_prefix('urn'); + } else { + die "Barnet webservice FAIL: looks like you're missing some config data: no endpoint (URL) found for area_id=" . COUNCIL_ID_BARNET; + } + + eval { + my $result = $interface->Z_CRM_SERVICE_ORDER_CREATE( { + ET_RETURN => { # ignored by server + item => { + TYPE => "", ID => "", NUMBER => "", MESSAGE => "", LOG_NO => "", LOG_MSG_NO => "", + MESSAGE_V1 => "", MESSAGE_V2 => "", MESSAGE_V3 => "", MESSAGE_V4 => "", PARAMETER => "", + ROW => "", FIELD => "", SYSTEM => "", + }, + }, + IT_PROBLEM_DESC => { # MyTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => [ # MyTypes::CRMT_SERVICE_REQUEST_TEXT + map { { TEXT_LINE => $_ } } split_text_with_entities(ent(encode_utf8($h{message})), 132) # char132 + ], + }, + IV_CUST_EMAIL => truncate_string_with_entities(ent(encode_utf8($h{email})), 241), # char241 + IV_CUST_NAME => truncate_string_with_entities(ent(encode_utf8($h{name})), 50), # char50 + IV_KBID => $kbid, # char50 + IV_PROBLEM_ID => $h{id}, # char35 + IV_PROBLEM_LOC => { # MyTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => 'GB', # char2 + REGION => "", # char3 + COUNTY => "", # char30 + CITY => "", # char30 + POSTALCODE => $postcode, # char10 + STREET => $nearest_street, # char30 + STREETNUMBER => "", # char5 + GEOCODE => $geo_code, # char32 + }, + IV_PROBLEM_SUB => truncate_string_with_entities(ent(encode_utf8($h{title})), 40), # char40 + }, + ); + if ($result) { + # currently not using this: get_EV_ORDER_GUID (maybe that's the customer number in the CRM) + if (my $barnet_id = $result->get_EV_ORDER_NO()) { + $problem->external_id( $barnet_id ); + $problem->external_body( 'Barnet Borough Council' ); # better to use $problem->body()? + $problem->send_method_used('barnet'); + $return = 0; + } else { + my @returned_items = split /<item[^>]*>/, $result->get_ET_RETURN; + my @messages = (); + foreach my $item (@returned_items) { + if ($item=~/<MESSAGE [^>]*>\s*(\S.*?)<\/MESSAGE>/) { # if there's a non-null MESSAGE in there, grab it + push @messages, $1; # best stab at extracting useful error message back from convoluted response + } + } + push @messages, "service returned no external id" unless @messages; + $err_msg = "Failed (problem id $h{id}): " . join(" \n ", @messages); + } + } else { + my %fault = ( + 'code' => $result->get_faultcode(), + 'actor' => $result->get_faultactor(), + 'string' => $result->get_faultstring(), + 'detail' => $result->get_detail(), # possibly only contains debug info + ); + $fault{$_}=~s/^\s*|\s*$//g foreach keys %fault; + $fault{actor}&&=" (actor: $fault{actor})"; + $fault{'detail'} &&= "\n" . $fault{'detail'}; + $err_msg = "Failed (problem id $h{id}): Fault $fault{code}$fault{actor}\n$fault{string}$fault{detail}"; + } + + }; + print "$err_msg\n" if $err_msg; + if ($@) { + my $e = shift; + print "Caught an error: $@\n"; + } + return ($return, $err_msg); +} + # London sub construct_london_message { @@ -489,3 +679,80 @@ sub london_lookup { return $str; } +# for barnet webservice: max-length fields require truncate and split + +# truncate_string_with_entities +# args: text to truncate +# max number of chars +# returns: string truncated +# Note: must not partially truncate an entity (e.g., &) +sub truncate_string_with_entities { + my ($str, $max_len) = @_; + my $retVal = ""; + foreach my $chunk (split /(\&(?:\#\d+|\w+);)/, $str) { + if ($chunk=~/^\&(\#\d+|\w+);$/){ + my $next = $retVal.$chunk; + last if length $next > $max_len; + $retVal=$next + } else { + $retVal.=$chunk; + if (length $retVal > $max_len) { + $retVal = substr($retVal, 0, $max_len); + last + } + } + } + return $retVal +} + +# split_text_with_entities into lines +# args: text to be broken into lines +# max length (option: uses constant MAX_LINE_LENGTH) +# returns: array of lines +# Must not to split an entity (e.g., &) +# Not worrying about hyphenating here, since a word is only ever split if +# it's longer than the whole line, which is uncommon in genuine problem reports +sub split_text_with_entities { + my ($text, $max_line_length) = @_; + $max_line_length ||= MAX_LINE_LENGTH; + my @lines; + foreach my $line (split "\n", $text) { + while (length $line > $max_line_length) { + if (! ($line =~ s/^(.{1,$max_line_length})\s// # break on a space + or $line =~ s/^(.{1,$max_line_length})(\&(\#\d+|\w+);)/$2/ # break before an entity + or $line =~ s/(.{$max_line_length})//)) { # break the word ruthlessly + $line =~ s/(.*)//; # otherwise gobble whole line (which is now shorter than max length) + } + push @lines, $1; + } + push @lines, $line; + } + return @lines; +} + +# tests send_fail_count agains cutoff limit +# args: problem (row from problem db) +# returns false if there is no cutoff, otherwise error message +sub does_exceed_cutoff_limit { + my ($problem, $council_name) = @_; + my $err_msg = ""; + if ($problem->send_fail_count >= SEND_FAIL_RETRIES_CUTOFF) { + $sending_skipped_by_method{$council_name || '?'}++; + $council_name &&= " to $council_name"; + $err_msg = "skipped: problem id=" . $problem->id . " send$council_name has failed " + . $problem->send_fail_count . " times, cutoff is " . SEND_FAIL_RETRIES_CUTOFF; + } + return $err_msg; +} + +# update_send_fail_data records the failure (of a webservice send) +# args: problem (row from problem db) +# returns: no return value (updates record) +sub update_send_fail_data { + my ($problem, $err_msg) = @_; + $problem->update( { + send_fail_count => $problem->send_fail_count + 1, + send_fail_timestamp => \'ms_current_timestamp()', + send_fail_reason => $err_msg + } ); +} diff --git a/carton.lock b/carton.lock index 1f73bfad4..cd7b0e70b 100644 --- a/carton.lock +++ b/carton.lock @@ -3336,6 +3336,114 @@ }, "version" : "1.4" }, + "Class::Std" : { + "dist" : "Class-Std-0.011", + "module" : "Class::Std", + "mymeta" : { + "abstract" : "Support for creating standard \"inside-out\" classes", + "author" : [ + "Damian Conway <DCONWAY@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Class-Std", + "prereqs" : { + "runtime" : { + "requires" : { + "Data::Dumper" : 0, + "Scalar::Util" : 0, + "Test::More" : 0 + } + } + }, + "release_status" : "stable", + "version" : "0.011" + }, + "name" : "Class::Std", + "pathname" : "D/DC/DCONWAY/Class-Std-0.011.tar.gz", + "provides" : { + "Class::Std" : { + "file" : "Class/Std.pm", + "version" : "0.011" + }, + "Class::Std::SCR" : { + "file" : "Class/Std.pm" + } + }, + "version" : "0.011" + }, + "Class::Std::Fast" : { + "dist" : "Class-Std-Fast-v0.0.8", + "module" : "Class::Std::Fast::Storable", + "mymeta" : { + "abstract" : "faster but less secure than Class::Std", + "author" : [ + "Andreas 'ac0v' Specht - ACID@cpan.org" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Class-Std-Fast", + "prereqs" : { + "build" : { + "requires" : { + "Test::More" : 0 + } + }, + "runtime" : { + "requires" : { + "Class::Std" : "v0.0.8", + "Data::Dumper" : 0, + "Scalar::Util" : 0, + "version" : 0 + } + } + }, + "provides" : { + "Class::Std::Fast" : { + "file" : "lib/Class/Std/Fast.pm", + "version" : "v0.0.8" + }, + "Class::Std::Fast::Storable" : { + "file" : "lib/Class/Std/Fast/Storable.pm", + "version" : "v0.0.8" + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ] + }, + "version" : "v0.0.8" + }, + "name" : "Class::Std::Fast", + "pathname" : "A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz", + "provides" : { + "Class::Std::Fast" : { + "file" : "Class/Std/Fast.pm", + "version" : "v0.0.8" + }, + "Class::Std::Fast::Storable" : { + "file" : "Class/Std/Fast/Storable.pm", + "version" : "v0.0.8" + } + }, + "version" : "v0.0.8" + }, "Class::Unload" : { "dist" : "Class-Unload-0.07", "module" : "Class::Unload", @@ -5015,6 +5123,311 @@ }, "version" : "0.00011" }, + "DBIx::Class::IntrospectableM2M" : { + "dist" : "DBIx-Class-IntrospectableM2M-0.001001", + "module" : "DBIx::Class::IntrospectableM2M", + "mymeta" : { + "abstract" : "Introspect many-to-many relationships", + "author" : [ + "Guillermo Roditi (groditi) <groditi@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Install version 0.76, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "DBIx-Class-IntrospectableM2M", + "no_index" : { + "directory" : [ + "inc", + "t" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : { + "DBIx::Class" : 0, + "ExtUtils::MakeMaker" : "6.62", + "Test::More" : 0 + } + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ] + }, + "version" : "0.001001" + }, + "name" : "DBIx::Class::IntrospectableM2M", + "pathname" : "G/GR/GRODITI/DBIx-Class-IntrospectableM2M-0.001001.tar.gz", + "provides" : { + "DBIx::Class::IntrospectableM2M" : { + "file" : "DBIx/Class/IntrospectableM2M.pm", + "version" : "0.001001" + } + }, + "version" : "0.001001" + }, + "DBIx::Class::Schema::Loader" : { + "dist" : "DBIx-Class-Schema-Loader-0.07017", + "module" : "DBIx::Class::Schema::Loader", + "mymeta" : { + "abstract" : "Create a DBIx::Class::Schema based on a database", + "author" : [ + "blblack: Brandon Black <blblack@gmail.com>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Install version 1.04, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "DBIx-Class-Schema-Loader", + "no_index" : { + "directory" : [ + "inc", + "t" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "DBD::SQLite" : "1.29", + "DBI" : "1.56", + "DBIx::Class::IntrospectableM2M" : 0, + "ExtUtils::MakeMaker" : "6.62", + "File::Copy" : 0, + "File::Path" : "2.07", + "File::Temp" : "0.16", + "IPC::Open3" : 0, + "Test::Exception" : 0, + "Test::More" : "0.94", + "Test::Warn" : "0.21" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.62" + } + }, + "runtime" : { + "requires" : { + "Carp::Clan" : 0, + "Class::Accessor::Grouped" : "0.10002", + "Class::C3::Componentised" : "1.0008", + "Class::Inspector" : 0, + "Class::Unload" : 0, + "DBD::SQLite" : "1.29", + "DBI" : "1.56", + "DBIx::Class" : "0.08127", + "DBIx::Class::IntrospectableM2M" : 0, + "Data::Dump" : "1.06", + "Digest::MD5" : "2.36", + "Exporter" : "5.63", + "File::Copy" : 0, + "File::Path" : "2.07", + "File::Spec" : 0, + "File::Temp" : "0.16", + "IPC::Open3" : 0, + "Lingua::EN::Inflect::Number" : "1.1", + "Lingua::EN::Inflect::Phrase" : "0.02", + "Lingua::EN::Tagger" : 0, + "List::MoreUtils" : 0, + "MRO::Compat" : "0.09", + "Scalar::Util" : 0, + "Scope::Guard" : 0, + "String::CamelCase" : "0.02", + "String::ToIdentifier::EN" : "0.05", + "Sub::Name" : 0, + "Task::Weaken" : 0, + "Test::Exception" : 0, + "Test::More" : "0.94", + "Test::Warn" : "0.21", + "Try::Tiny" : 0, + "namespace::clean" : "0.20", + "perl" : "5.008001" + } + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ], + "repository" : { + "type" : "git", + "url" : "git://git.shadowcat.co.uk/dbsrgits/DBIx-Class-Schema-Loader.git" + }, + "x_IRC" : "irc://irc.perl.org/#dbix-class", + "x_MailingList" : "http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class" + }, + "version" : "0.07017" + }, + "name" : "DBIx::Class::Schema::Loader", + "pathname" : "R/RK/RKITOVER/DBIx-Class-Schema-Loader-0.07017.tar.gz", + "provides" : { + "DBIx::Class::Schema::Loader" : { + "file" : "DBIx/Class/Schema/Loader.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::Base" : { + "file" : "DBIx/Class/Schema/Loader/Base.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI" : { + "file" : "DBIx/Class/Schema/Loader/DBI.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ADO" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ADO.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ADO::MS_Jet" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ADO/MS_Jet.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ADO::Microsoft_SQL_Server" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ADO/Microsoft_SQL_Server.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Component::QuotedDefault" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Component/QuotedDefault.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::DB2" : { + "file" : "DBIx/Class/Schema/Loader/DBI/DB2.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Firebird" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Firebird.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Informix" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Informix.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::InterBase" : { + "file" : "DBIx/Class/Schema/Loader/DBI/InterBase.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::MSSQL" : { + "file" : "DBIx/Class/Schema/Loader/DBI/MSSQL.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ODBC" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ODBC.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ODBC::ACCESS" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ODBC/ACCESS.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ODBC::Firebird" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ODBC/Firebird.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ODBC::Microsoft_SQL_Server" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ODBC/Microsoft_SQL_Server.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::ODBC::SQL_Anywhere" : { + "file" : "DBIx/Class/Schema/Loader/DBI/ODBC/SQL_Anywhere.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Oracle" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Oracle.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Pg" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Pg.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::SQLAnywhere" : { + "file" : "DBIx/Class/Schema/Loader/DBI/SQLAnywhere.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::SQLite" : { + "file" : "DBIx/Class/Schema/Loader/DBI/SQLite.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Sybase" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Sybase.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Sybase::Common" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Sybase/Common.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Sybase::Microsoft_SQL_Server" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Sybase/Microsoft_SQL_Server.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::Writing" : { + "file" : "DBIx/Class/Schema/Loader/DBI/Writing.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBI::mysql" : { + "file" : "DBIx/Class/Schema/Loader/DBI/mysql.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::DBObject" : { + "file" : "DBIx/Class/Schema/Loader/DBObject.pm" + }, + "DBIx::Class::Schema::Loader::DBObject::Informix" : { + "file" : "DBIx/Class/Schema/Loader/DBObject/Informix.pm" + }, + "DBIx::Class::Schema::Loader::DBObject::Sybase" : { + "file" : "DBIx/Class/Schema/Loader/DBObject/Sybase.pm" + }, + "DBIx::Class::Schema::Loader::Optional::Dependencies" : { + "file" : "DBIx/Class/Schema/Loader/Optional/Dependencies.pm" + }, + "DBIx::Class::Schema::Loader::RelBuilder" : { + "file" : "DBIx/Class/Schema/Loader/RelBuilder.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::RelBuilder::Compat::v0_040" : { + "file" : "DBIx/Class/Schema/Loader/RelBuilder/Compat/v0_040.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::RelBuilder::Compat::v0_05" : { + "file" : "DBIx/Class/Schema/Loader/RelBuilder/Compat/v0_05.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::RelBuilder::Compat::v0_06" : { + "file" : "DBIx/Class/Schema/Loader/RelBuilder/Compat/v0_06.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::RelBuilder::Compat::v0_07" : { + "file" : "DBIx/Class/Schema/Loader/RelBuilder/Compat/v0_07.pm", + "version" : "0.07017" + }, + "DBIx::Class::Schema::Loader::Table" : { + "file" : "DBIx/Class/Schema/Loader/Table.pm" + }, + "DBIx::Class::Schema::Loader::Table::Informix" : { + "file" : "DBIx/Class/Schema/Loader/Table/Informix.pm" + }, + "DBIx::Class::Schema::Loader::Table::Sybase" : { + "file" : "DBIx/Class/Schema/Loader/Table/Sybase.pm" + } + }, + "version" : "0.07017" + }, "Data::Compare" : { "dist" : "Data-Compare-1.22", "module" : "Data::Compare", @@ -15849,24 +16262,63 @@ }, "version" : "6.01" }, - "List::MoreUtils" : { - "dist" : "List-MoreUtils-0.33", - "module" : "List::MoreUtils", + "Lingua::EN::Inflect" : { + "dist" : "Lingua-EN-Inflect-1.893", + "module" : "Lingua::EN::Inflect", "mymeta" : { - "abstract" : "Provide the stuff missing in List::Util", + "abstract" : "Convert singular to plural. Select \"a\" or \"an\".", "author" : [ - "Tassilo von Parseval <tassilo.von.parseval@rwth-aachen.de>" + "Damian Conway <DCONWAY@CPAN.org>" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.56, CPAN::Meta::Converter version 2.112150", + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", "license" : [ - "perl_5" + "unknown" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, - "name" : "List-MoreUtils", + "name" : "Lingua-EN-Inflect", + "prereqs" : { + "runtime" : { + "requires" : { + "Test::More" : 0, + "version" : 0 + } + } + }, + "release_status" : "stable", + "version" : "1.893" + }, + "name" : "Lingua::EN::Inflect", + "pathname" : "D/DC/DCONWAY/Lingua-EN-Inflect-1.893.tar.gz", + "provides" : { + "Lingua::EN::Inflect" : { + "file" : "Lingua/EN/Inflect.pm", + "version" : "1.893" + } + }, + "version" : "1.893" + }, + "Lingua::EN::Inflect::Number" : { + "dist" : "Lingua-EN-Inflect-Number-1.1", + "module" : "Lingua::EN::Inflect::Number", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "unknown" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Lingua-EN-Inflect-Number", "no_index" : { "directory" : [ "t", @@ -15876,45 +16328,44 @@ "prereqs" : { "build" : { "requires" : { - "Test::More" : "0.42" + "ExtUtils::MakeMaker" : 0 } }, "configure" : { "requires" : { - "ExtUtils::CBuilder" : "0.27", - "ExtUtils::MakeMaker" : "6.52" + "ExtUtils::MakeMaker" : 0 } }, "runtime" : { "requires" : { - "Test::More" : "0.82", - "perl" : "5.00503" + "Lingua::EN::Inflect" : 0 } } }, "release_status" : "stable", - "version" : "0.33" + "version" : "1.1" }, - "name" : "List::MoreUtils", - "pathname" : "A/AD/ADAMK/List-MoreUtils-0.33.tar.gz", + "name" : "Lingua::EN::Inflect::Number", + "pathname" : "S/SI/SIMON/Lingua-EN-Inflect-Number-1.1.tar.gz", "provides" : { - "List::MoreUtils" : { - "file" : "List/MoreUtils.pm", - "version" : "0.33" + "Lingua::EN::Inflect::Number" : { + "file" : "Lingua/EN/Inflect/Number.pm", + "version" : "1.1" } }, - "version" : "0.33" + "version" : "1.1" }, - "Locale::Maketext" : { - "dist" : "Locale-Maketext-1.22", - "module" : "Locale::Maketext", + "Lingua::EN::Inflect::Phrase" : { + "dist" : "Lingua-EN-Inflect-Phrase-0.12", + "module" : "Lingua::EN::Inflect::Phrase", "mymeta" : { - "abstract" : "framework for localization", + "abstract" : "Inflect short English Phrases", "author" : [ - "unknown" + "Rafael Kitover <rkitover@cpan.org>", + "Rafael Kitover <rkitover@cpan.org>" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.58, CPAN::Meta::Converter version 2.110930001, CPAN::Meta::Converter version 2.112150", + "generated_by" : "Module::Install version 1.04, CPAN::Meta::Converter version 2.112150", "license" : [ "perl_5" ], @@ -15922,204 +16373,669 @@ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, - "name" : "Locale-Maketext", + "name" : "Lingua-EN-Inflect-Phrase", "no_index" : { "directory" : [ - "t", - "inc" + "inc", + "t" ] }, "prereqs" : { "build" : { "requires" : { - "ExtUtils::MakeMaker" : 0 + "ExtUtils::MakeMaker" : "6.36", + "Test::More" : "0.94" } }, "configure" : { "requires" : { - "ExtUtils::MakeMaker" : 0 + "ExtUtils::MakeMaker" : "6.36" } }, "runtime" : { "requires" : { - "I18N::LangTags" : "0.31", - "I18N::LangTags::Detect" : 0, - "Test::More" : 0 + "Exporter" : "5.63", + "Lingua::EN::Inflect" : "1.891", + "Lingua::EN::Inflect::Number" : "1.1", + "Lingua::EN::Tagger" : "0.15", + "Test::More" : "0.94" } } }, + "provides" : { + "Lingua::EN::Inflect::Phrase" : { + "file" : "lib/Lingua/EN/Inflect/Phrase.pm", + "version" : "0.12" + } + }, "release_status" : "stable", "resources" : { - "bugtracker" : { - "web" : "http://rt.perl.org/perlbug/" - }, "license" : [ "http://dev.perl.org/licenses/" ], "repository" : { - "url" : "http://perl5.git.perl.org/perl.git/tree/HEAD:/dist/Locale-Maketext" - }, - "x_MailingList" : "http://lists.perl.org/list/perl5-porters.html" + "type" : "git", + "url" : "git://github.com/rkitover/lingua-en-inflect-phrase.git" + } }, - "version" : "1.22" + "version" : "0.12" }, - "name" : "Locale::Maketext", - "pathname" : "T/TO/TODDR/Locale-Maketext-1.22.tar.gz", + "name" : "Lingua::EN::Inflect::Phrase", + "pathname" : "R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.12.tar.gz", "provides" : { - "Locale::Maketext" : { - "file" : "Locale/Maketext.pm", - "version" : "1.22" + "Lingua::EN::Inflect::Phrase" : { + "file" : "Lingua/EN/Inflect/Phrase.pm", + "version" : "0.12" + } + }, + "version" : "0.12" + }, + "Lingua::EN::Tagger" : { + "dist" : "Lingua-EN-Tagger-0.16", + "module" : "Lingua::EN::Tagger", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "Maciej Ceglowski and Aaron Coburn <maciej@ceglowski.com>, <aaron@coburncuadrado.com>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.56, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" }, - "Locale::Maketext::Guts" : { - "file" : "Locale/Maketext/Guts.pm", - "version" : "1.20" + "name" : "Lingua-EN-Tagger", + "no_index" : { + "directory" : [ + "t", + "inc" + ] }, - "Locale::Maketext::GutsLoader" : { - "file" : "Locale/Maketext/GutsLoader.pm", - "version" : "1.20" + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : { + "File::Spec" : "0.84", + "HTML::Parser" : "3.45", + "Lingua::Stem" : "0.81", + "Memoize" : "1.01", + "Memoize::ExpireLRU" : "0.55", + "Storable" : "2.10" + } + } + }, + "release_status" : "stable", + "version" : "0.16" + }, + "name" : "Lingua::EN::Tagger", + "pathname" : "A/AC/ACOBURN/Lingua-EN-Tagger-0.16.tar.gz", + "provides" : { + "Lingua::EN::Tagger" : { + "file" : "Lingua/EN/Tagger.pm", + "version" : "0.16" } }, - "version" : "1.22" + "version" : "0.16" }, - "Locale::Maketext::Lexicon" : { - "dist" : "Locale-Maketext-Lexicon-0.91", - "module" : "Locale::Maketext::Lexicon", + "Lingua::PT::Stemmer" : { + "dist" : "Lingua-PT-Stemmer-0.01", + "module" : "Lingua::PT::Stemmer", "mymeta" : { - "abstract" : "Use other catalog formats in Maketext", + "abstract" : "Portuguese language stemming", "author" : [ - "Audrey Tang <cpan@audreyt.org>" + "xern <xern@cpan.org>" ], "dynamic_config" : 0, - "generated_by" : "Module::Install version 1.01, CPAN::Meta::Converter version 2.112150", + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", "license" : [ - "mit" + "unknown" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, - "name" : "Locale-Maketext-Lexicon", + "name" : "Lingua-PT-Stemmer", "no_index" : { "directory" : [ - "inc", - "t" + "t", + "inc" ] }, "prereqs" : { "build" : { "requires" : { - "ExtUtils::MakeMaker" : "6.42", - "Test::More" : 0 + "ExtUtils::MakeMaker" : 0 } }, "configure" : { "requires" : { - "ExtUtils::MakeMaker" : "6.42" + "ExtUtils::MakeMaker" : 0 } }, "runtime" : { - "recommends" : { - "HTML::Parser" : "3.56", - "Lingua::EN::Sentence" : "0.25", - "PPI" : "1.203", - "Template" : "2.20", - "Template::Constants" : "2.75", - "YAML" : "0.66", - "YAML::Loader" : "0.66" - }, + "requires" : {} + } + }, + "release_status" : "stable", + "version" : "0.01" + }, + "name" : "Lingua::PT::Stemmer", + "pathname" : "X/XE/XERN/Lingua-PT-Stemmer-0.01.tar.gz", + "provides" : { + "Lingua::GL::Stemmer" : { + "file" : "Lingua/GL/Stemmer.pm", + "version" : "0.01" + }, + "Lingua::PT::Stemmer" : { + "file" : "Lingua/PT/Stemmer.pm", + "version" : "0.01" + } + }, + "version" : "0.01" + }, + "Lingua::Stem" : { + "dist" : "Lingua-Stem-0.84", + "module" : "Lingua::Stem", + "mymeta" : { + "abstract" : "Stemming of words in various languages", + "author" : [ + "Benjamin Franz <snowhare@nihongo.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Lingua-Stem", + "prereqs" : { + "runtime" : { "requires" : { - "Locale::Maketext" : "1.17", - "perl" : "5.005" + "Carp" : 0, + "Lingua::GL::Stemmer" : 0, + "Lingua::PT::Stemmer" : 0, + "Lingua::Stem::Fr" : "0.02", + "Lingua::Stem::It" : 0, + "Lingua::Stem::Ru" : 0, + "Lingua::Stem::Snowball::Da" : "1.01", + "Lingua::Stem::Snowball::No" : "1.00", + "Lingua::Stem::Snowball::Se" : "1.01", + "Text::German" : 0 } } }, + "provides" : { + "Lingua::Stem" : { + "file" : "lib/Lingua/Stem.pm", + "version" : "0.84" + }, + "Lingua::Stem::AutoLoader" : { + "file" : "lib/Lingua/Stem/AutoLoader.pm", + "version" : "1.02" + }, + "Lingua::Stem::Da" : { + "file" : "lib/Lingua/Stem/Da.pm", + "version" : "1.01" + }, + "Lingua::Stem::De" : { + "file" : "lib/Lingua/Stem/De.pm", + "version" : "1.01" + }, + "Lingua::Stem::En" : { + "file" : "lib/Lingua/Stem/En.pm", + "version" : "2.16" + }, + "Lingua::Stem::EnBroken" : { + "file" : "lib/Lingua/Stem/EnBroken.pm", + "version" : "2.13" + }, + "Lingua::Stem::Gl" : { + "file" : "lib/Lingua/Stem/Gl.pm", + "version" : "1.02" + }, + "Lingua::Stem::No" : { + "file" : "lib/Lingua/Stem/No.pm", + "version" : "1.01" + }, + "Lingua::Stem::Pt" : { + "file" : "lib/Lingua/Stem/Pt.pm", + "version" : "1.01" + }, + "Lingua::Stem::Sv" : { + "file" : "lib/Lingua/Stem/Sv.pm", + "version" : "1.01" + } + }, "release_status" : "stable", "resources" : { "license" : [ - "http://opensource.org/licenses/mit-license.php" + "http://dev.perl.org/licenses/" ] }, - "version" : "0.91" + "version" : "0.84" }, - "name" : "Locale::Maketext::Lexicon", - "pathname" : "D/DR/DRTECH/Locale-Maketext-Lexicon-0.91.tar.gz", + "name" : "Lingua::Stem", + "pathname" : "S/SN/SNOWHARE/Lingua-Stem-0.84.tar.gz", "provides" : { - "Locale::Maketext::Extract" : { - "file" : "Locale/Maketext/Extract.pm", - "version" : "0.38" + "Lingua::Stem" : { + "file" : "Lingua/Stem.pm", + "version" : "0.84" }, - "Locale::Maketext::Extract::Plugin::Base" : { - "file" : "Locale/Maketext/Extract/Plugin/Base.pm" + "Lingua::Stem::AutoLoader" : { + "file" : "Lingua/Stem/AutoLoader.pm", + "version" : "1.02" }, - "Locale::Maketext::Extract::Plugin::FormFu" : { - "file" : "Locale/Maketext/Extract/Plugin/FormFu.pm" + "Lingua::Stem::Da" : { + "file" : "Lingua/Stem/Da.pm", + "version" : "1.01" }, - "Locale::Maketext::Extract::Plugin::FormFu::Extractor" : { - "file" : "Locale/Maketext/Extract/Plugin/FormFu.pm" + "Lingua::Stem::De" : { + "file" : "Lingua/Stem/De.pm", + "version" : "1.01" }, - "Locale::Maketext::Extract::Plugin::Generic" : { - "file" : "Locale/Maketext/Extract/Plugin/Generic.pm" + "Lingua::Stem::En" : { + "file" : "Lingua/Stem/En.pm", + "version" : "2.16" }, - "Locale::Maketext::Extract::Plugin::Mason" : { - "file" : "Locale/Maketext/Extract/Plugin/Mason.pm" + "Lingua::Stem::EnBroken" : { + "file" : "Lingua/Stem/EnBroken.pm", + "version" : "2.13" }, - "Locale::Maketext::Extract::Plugin::PPI" : { - "file" : "Locale/Maketext/Extract/Plugin/PPI.pm" + "Lingua::Stem::Gl" : { + "file" : "Lingua/Stem/Gl.pm", + "version" : "1.02" }, - "Locale::Maketext::Extract::Plugin::Perl" : { - "file" : "Locale/Maketext/Extract/Plugin/Perl.pm" + "Lingua::Stem::No" : { + "file" : "Lingua/Stem/No.pm", + "version" : "1.01" }, - "Locale::Maketext::Extract::Plugin::TT2" : { - "file" : "Locale/Maketext/Extract/Plugin/TT2.pm" + "Lingua::Stem::Pt" : { + "file" : "Lingua/Stem/Pt.pm", + "version" : "1.01" }, - "Locale::Maketext::Extract::Plugin::TT2::Directive" : { - "file" : "Locale/Maketext/Extract/Plugin/TT2.pm" + "Lingua::Stem::Sv" : { + "file" : "Lingua/Stem/Sv.pm", + "version" : "1.01" + } + }, + "version" : "0.84" + }, + "Lingua::Stem::Fr" : { + "dist" : "Lingua-Stem-Fr-0.02", + "module" : "Lingua::Stem::Fr", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "unknown" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" }, - "Locale::Maketext::Extract::Plugin::TT2::Parser" : { - "file" : "Locale/Maketext/Extract/Plugin/TT2.pm" + "name" : "Lingua-Stem-Fr", + "no_index" : { + "directory" : [ + "t", + "inc" + ] }, - "Locale::Maketext::Extract::Plugin::TextTemplate" : { - "file" : "Locale/Maketext/Extract/Plugin/TextTemplate.pm", - "version" : "0.31" + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } }, - "Locale::Maketext::Extract::Plugin::TextTemplate::Parser" : { - "file" : "Locale/Maketext/Extract/Plugin/TextTemplate.pm" + "release_status" : "stable", + "version" : "0.02" + }, + "name" : "Lingua::Stem::Fr", + "pathname" : "S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz", + "provides" : { + "Lingua::Stem::Fr" : { + "file" : "Lingua/Stem/Fr.pm", + "version" : "0.02" + } + }, + "version" : "0.02" + }, + "Lingua::Stem::It" : { + "dist" : "Lingua-Stem-It-0.02", + "module" : "Lingua::Stem::It", + "mymeta" : { + "abstract" : "Porter's stemming algorithm for Italian", + "author" : [ + "Aldo Calpini <dada@perl.it>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" }, - "Locale::Maketext::Extract::Plugin::YAML" : { - "file" : "Locale/Maketext/Extract/Plugin/YAML.pm" + "name" : "Lingua-Stem-It", + "no_index" : { + "directory" : [ + "t", + "inc" + ] }, - "Locale::Maketext::Extract::Plugin::YAML::Extractor" : { - "file" : "Locale/Maketext/Extract/Plugin/YAML.pm" + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } }, - "Locale::Maketext::Extract::Run" : { - "file" : "Locale/Maketext/Extract/Run.pm" + "release_status" : "stable", + "version" : "0.02" + }, + "name" : "Lingua::Stem::It", + "pathname" : "A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz", + "provides" : { + "Lingua::Stem::It" : { + "file" : "Lingua/Stem/It.pm", + "version" : "0.02" + } + }, + "version" : "0.02" + }, + "Lingua::Stem::Ru" : { + "dist" : "Lingua-Stem-Ru-0.01", + "module" : "Lingua::Stem::Ru", + "mymeta" : { + "abstract" : "Porter's stemming algorithm for Russian", + "author" : [ + "Aleksandr Guidrevitch <pillgrim@mail.ru>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" }, - "Locale::Maketext::Lexicon" : { - "file" : "Locale/Maketext/Lexicon.pm", - "version" : "0.91" + "name" : "Lingua-Stem-Ru", + "no_index" : { + "directory" : [ + "t", + "inc" + ] }, - "Locale::Maketext::Lexicon::Auto" : { - "file" : "Locale/Maketext/Lexicon/Auto.pm", - "version" : "0.10" + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } }, - "Locale::Maketext::Lexicon::Extract::Run" : { - "file" : "Locale/Maketext/Extract/Run.pm", - "version" : "0.35" + "release_status" : "stable", + "version" : "0.01" + }, + "name" : "Lingua::Stem::Ru", + "pathname" : "A/AL/ALGDR/Lingua-Stem-Ru-0.01.tar.gz", + "provides" : { + "Lingua::Stem::Ru" : { + "file" : "Lingua/Stem/Ru.pm", + "version" : "0.01" + } + }, + "version" : "0.01" + }, + "Lingua::Stem::Snowball::Da" : { + "dist" : "Lingua-Stem-Snowball-Da-1.01", + "module" : "Lingua::Stem::Snowball::Da", + "mymeta" : { + "abstract" : "Porters stemming algorithm for Denmark", + "author" : [ + "Dennis Haney <davh@davh.dk>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" }, - "Locale::Maketext::Lexicon::Gettext" : { - "file" : "Locale/Maketext/Lexicon/Gettext.pm", - "version" : "0.17" + "name" : "Lingua-Stem-Snowball-Da", + "no_index" : { + "directory" : [ + "t", + "inc" + ] }, - "Locale::Maketext::Lexicon::Msgcat" : { - "file" : "Locale/Maketext/Lexicon/Msgcat.pm", - "version" : "0.03" + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } }, - "Locale::Maketext::Lexicon::Tie" : { - "file" : "Locale/Maketext/Lexicon/Tie.pm", - "version" : "0.05" + "release_status" : "stable", + "version" : "1.01" + }, + "name" : "Lingua::Stem::Snowball::Da", + "pathname" : "C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz", + "provides" : { + "Lingua::Stem::Snowball::Da" : { + "file" : "Lingua/Stem/Snowball/Da.pm", + "version" : "1.01" + } + }, + "version" : "1.01" + }, + "Lingua::Stem::Snowball::No" : { + "dist" : "Snowball-Norwegian-1.2", + "module" : "Lingua::Stem::Snowball::No", + "mymeta" : { + "abstract" : "Porters stemming algorithm for norwegian.", + "author" : [ + "Ask Solem <ASKSH@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Snowball-Norwegian", + "prereqs" : { + "build" : { + "requires" : { + "Test::More" : "0.42" + } + } + }, + "provides" : { + "Lingua::Stem::Snowball::No" : { + "file" : "lib/Lingua/Stem/Snowball/No.pm", + "version" : "1.2" + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ] + }, + "version" : "1.2" + }, + "name" : "Lingua::Stem::Snowball::No", + "pathname" : "A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz", + "provides" : { + "Lingua::Stem::Snowball::No" : { + "file" : "Lingua/Stem/Snowball/No.pm", + "version" : "1.2" + } + }, + "version" : "1.2" + }, + "Lingua::Stem::Snowball::Se" : { + "dist" : "Snowball-Swedish-1.2", + "module" : "Lingua::Stem::Snowball::Se", + "mymeta" : { + "abstract" : "Porters stemming algorithm for swedish.", + "author" : [ + "Ask Solem <ASKSH@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Snowball-Swedish", + "prereqs" : { + "build" : { + "requires" : { + "Test::More" : "0.42" + } + } + }, + "provides" : { + "Lingua::Stem::Snowball::Se" : { + "file" : "lib/Lingua/Stem/Snowball/Se.pm", + "version" : "1.2" + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ] + }, + "version" : "1.2" + }, + "name" : "Lingua::Stem::Snowball::Se", + "pathname" : "A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz", + "provides" : { + "Lingua::Stem::Snowball::Se" : { + "file" : "Lingua/Stem/Snowball/Se.pm", + "version" : "1.2" + } + }, + "version" : "1.2" + }, + "List::MoreUtils" : { + "dist" : "List-MoreUtils-0.33", + "module" : "List::MoreUtils", + "mymeta" : { + "abstract" : "Provide the stuff missing in List::Util", + "author" : [ + "Tassilo von Parseval <tassilo.von.parseval@rwth-aachen.de>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.56, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "List-MoreUtils", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "Test::More" : "0.42" + } + }, + "configure" : { + "requires" : { + "ExtUtils::CBuilder" : "0.27", + "ExtUtils::MakeMaker" : "6.52" + } + }, + "runtime" : { + "requires" : { + "Test::More" : "0.82", + "perl" : "5.00503" + } + } + }, + "release_status" : "stable", + "version" : "0.33" + }, + "name" : "List::MoreUtils", + "pathname" : "A/AD/ADAMK/List-MoreUtils-0.33.tar.gz", + "provides" : { + "List::MoreUtils" : { + "file" : "List/MoreUtils.pm", + "version" : "0.33" } }, - "version" : "0.91" + "version" : "0.33" }, "Log::Log4perl" : { "dist" : "Log-Log4perl-1.34", @@ -16595,91 +17511,24 @@ }, "version" : "2.08" }, - "Math::BigInt" : { - "dist" : "Math-BigInt-1.997", - "module" : "Math::BigInt", - "mymeta" : { - "abstract" : "Arbitrary size integer/float math package", - "author" : [ - "Original code by Mark Biggar, overloaded interface by Ilya Zakharevich., Tels <nospam-abuse@bloodgate.com>" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.59, CPAN::Meta::Converter version 2.112150", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Math-BigInt", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.42", - "Test::More" : "0.62" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : 0 - } - }, - "runtime" : { - "requires" : { - "perl" : "5.006002" - } - } - }, - "release_status" : "stable", - "version" : "1.997" - }, - "name" : "Math::BigInt", - "pathname" : "P/PJ/PJACKLAM/Math-BigInt-1.997.tar.gz", - "provides" : { - "Math::BigFloat" : { - "file" : "Math/BigFloat.pm", - "version" : "1.997" - }, - "Math::BigInt" : { - "file" : "Math/BigInt.pm", - "version" : "1.997" - }, - "Math::BigInt::Calc" : { - "file" : "Math/BigInt/Calc.pm", - "version" : "1.997" - }, - "Math::BigInt::CalcEmu" : { - "file" : "Math/BigInt/CalcEmu.pm", - "version" : "1.997" - } - }, - "version" : "1.997" - }, - "Math::BigInt::GMP" : { - "dist" : "Math-BigInt-GMP-1.37", - "module" : "Math::BigInt::GMP", + "Math::Round" : { + "dist" : "Math-Round-0.06", + "module" : "Math::Round", "mymeta" : { - "abstract" : "Use the GMP library for Math::BigInt routines", + "abstract" : "unknown", "author" : [ - "Tels" + "unknown" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.59, CPAN::Meta::Converter version 2.112150", + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", "license" : [ - "perl_5" + "unknown" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, - "name" : "Math-BigInt-GMP", + "name" : "Math-Round", "no_index" : { "directory" : [ "t", @@ -16698,28 +17547,25 @@ } }, "runtime" : { - "requires" : { - "Math::BigInt" : "1.997", - "XSLoader" : "0.02" - } + "requires" : {} } }, "release_status" : "stable", - "version" : "1.37" + "version" : "0.06" }, - "name" : "Math::BigInt::GMP", - "pathname" : "P/PJ/PJACKLAM/Math-BigInt-GMP-1.37.tar.gz", + "name" : "Math::Round", + "pathname" : "G/GR/GROMMEL/Math-Round-0.06.tar.gz", "provides" : { - "Math::BigInt::GMP" : { - "file" : "Math/BigInt/GMP.pm", - "version" : "1.37" + "Math::Round" : { + "file" : "Math/Round.pm", + "version" : "0.06" } }, - "version" : "1.37" + "version" : "0.06" }, - "Math::Round" : { - "dist" : "Math-Round-0.06", - "module" : "Math::Round", + "Memoize::ExpireLRU" : { + "dist" : "Memoize-ExpireLRU-0.55", + "module" : "Memoize::ExpireLRU", "mymeta" : { "abstract" : "unknown", "author" : [ @@ -16734,7 +17580,7 @@ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, - "name" : "Math-Round", + "name" : "Memoize-ExpireLRU", "no_index" : { "directory" : [ "t", @@ -16753,21 +17599,23 @@ } }, "runtime" : { - "requires" : {} + "requires" : { + "Memoize" : "0.52" + } } }, "release_status" : "stable", - "version" : "0.06" + "version" : "0.55" }, - "name" : "Math::Round", - "pathname" : "G/GR/GROMMEL/Math-Round-0.06.tar.gz", + "name" : "Memoize::ExpireLRU", + "pathname" : "B/BP/BPOWERS/Memoize-ExpireLRU-0.55.tar.gz", "provides" : { - "Math::Round" : { - "file" : "Math/Round.pm", - "version" : "0.06" + "Memoize::ExpireLRU" : { + "file" : "Memoize/ExpireLRU.pm", + "version" : "0.55" } }, - "version" : "0.06" + "version" : "0.55" }, "Module::Build" : { "dist" : "Module-Build-0.3800", @@ -17312,7 +18160,7 @@ "version" : "0.10" }, "Module::Metadata" : { - "dist" : "Module-Metadata-1.000007", + "dist" : "Module-Metadata-1.000009", "module" : "Module::Metadata", "mymeta" : { "abstract" : "Gather package and POD information from perl module files", @@ -17320,7 +18168,7 @@ "Ken Williams <kwilliams@cpan.org>, Randy W. Sims <RandyS@ThePierianSpring.org>" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.59, CPAN::Meta::Converter version 2.112150", + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112621, CPAN::Meta::Converter version 2.112150", "license" : [ "perl_5" ], @@ -17348,22 +18196,29 @@ }, "runtime" : { "requires" : { - "version" : "0.87" + "Carp" : 0, + "File::Find" : 0, + "File::Spec" : 0, + "IO::File" : 0, + "strict" : 0, + "vars" : 0, + "version" : "0.87", + "warnings" : 0 } } }, "release_status" : "stable", - "version" : "1.000007" + "version" : "1.000009" }, "name" : "Module::Metadata", - "pathname" : "D/DA/DAGOLDEN/Module-Metadata-1.000007.tar.gz", + "pathname" : "D/DA/DAGOLDEN/Module-Metadata-1.000009.tar.gz", "provides" : { "Module::Metadata" : { "file" : "Module/Metadata.pm", - "version" : "1.000007" + "version" : "1.000009" } }, - "version" : "1.000007" + "version" : "1.000009" }, "Module::Runtime" : { "dist" : "Module-Runtime-0.011", @@ -22024,6 +22879,1040 @@ }, "version" : "1.666001" }, + "SOAP::WSDL" : { + "dist" : "SOAP-WSDL-2.00.10", + "module" : "SOAP::WSDL::Client::Base", + "mymeta" : { + "abstract" : "SOAP with WSDL support", + "author" : [ + "Martin Kutter <martin.kutter@fen-net.de>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", + "license" : [ + "artistic_1" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "SOAP-WSDL", + "no_index" : { + "directory" : [ + "lib/SOAP/WSDL/Generator/Template/XSD/" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "Class::Std::Fast" : "v0.0.5", + "Cwd" : 0, + "Date::Format" : 0, + "Date::Parse" : 0, + "File::Basename" : 0, + "File::Path" : 0, + "File::Spec" : 0, + "Getopt::Long" : 0, + "LWP::UserAgent" : 0, + "List::Util" : 0, + "Module::Build" : 0, + "Storable" : 0, + "Template" : "2.18", + "Test::More" : 0, + "XML::Parser::Expat" : 0 + } + }, + "runtime" : { + "requires" : { + "Class::Std::Fast" : "v0.0.5", + "Data::Dumper" : 0, + "Date::Format" : 0, + "Date::Parse" : 0, + "File::Basename" : 0, + "File::Path" : 0, + "Getopt::Long" : 0, + "LWP::UserAgent" : 0, + "List::Util" : 0, + "Template" : "2.18", + "Term::ReadKey" : 0, + "URI" : 0, + "XML::Parser::Expat" : 0, + "perl" : "v5.8.0" + } + } + }, + "provides" : { + "SOAP::WSDL" : { + "file" : "lib/SOAP/WSDL.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Base" : { + "file" : "lib/SOAP/WSDL/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Binding" : { + "file" : "lib/SOAP/WSDL/Binding.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Client" : { + "file" : "lib/SOAP/WSDL/Client.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Client::Base" : { + "file" : "lib/SOAP/WSDL/Client/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Definitions" : { + "file" : "lib/SOAP/WSDL/Definitions.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::Hash" : { + "file" : "lib/SOAP/WSDL/Deserializer/Hash.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::SOM" : { + "file" : "lib/SOAP/WSDL/Deserializer/SOM.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::XSD" : { + "file" : "lib/SOAP/WSDL/Deserializer/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::Base" : { + "file" : "lib/SOAP/WSDL/Expat/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::Message2Hash" : { + "file" : "lib/SOAP/WSDL/Expat/Message2Hash.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::MessageParser" : { + "file" : "lib/SOAP/WSDL/Expat/MessageParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::MessageStreamParser" : { + "file" : "lib/SOAP/WSDL/Expat/MessageStreamParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::WSDLParser" : { + "file" : "lib/SOAP/WSDL/Expat/WSDLParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Deserializer" : { + "file" : "lib/SOAP/WSDL/Factory/Deserializer.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Generator" : { + "file" : "lib/SOAP/WSDL/Factory/Generator.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Serializer" : { + "file" : "lib/SOAP/WSDL/Factory/Serializer.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Transport" : { + "file" : "lib/SOAP/WSDL/Factory/Transport.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Iterator::WSDL11" : { + "file" : "lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::PrefixResolver" : { + "file" : "lib/SOAP/WSDL/Generator/PrefixResolver.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template" : { + "file" : "lib/SOAP/WSDL/Generator/Template.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template::Plugin::XSD" : { + "file" : "lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template::XSD" : { + "file" : "lib/SOAP/WSDL/Generator/Template/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Visitor" : { + "file" : "lib/SOAP/WSDL/Generator/Visitor.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Visitor::Typemap" : { + "file" : "lib/SOAP/WSDL/Generator/Visitor/Typemap.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Message" : { + "file" : "lib/SOAP/WSDL/Message.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::OpMessage" : { + "file" : "lib/SOAP/WSDL/OpMessage.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Operation" : { + "file" : "lib/SOAP/WSDL/Operation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Part" : { + "file" : "lib/SOAP/WSDL/Part.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Port" : { + "file" : "lib/SOAP/WSDL/Port.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::PortType" : { + "file" : "lib/SOAP/WSDL/PortType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Address" : { + "file" : "lib/SOAP/WSDL/SOAP/Address.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Body" : { + "file" : "lib/SOAP/WSDL/SOAP/Body.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Header" : { + "file" : "lib/SOAP/WSDL/SOAP/Header.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::HeaderFault" : { + "file" : "lib/SOAP/WSDL/SOAP/HeaderFault.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Operation" : { + "file" : "lib/SOAP/WSDL/SOAP/Operation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault" : { + "file" : "lib/SOAP/WSDL/SOAP/Typelib/Fault.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault11" : { + "file" : "lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault11Detail" : { + "file" : "lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm", + "version" : 0 + }, + "SOAP::WSDL::Serializer::XSD" : { + "file" : "lib/SOAP/WSDL/Serializer/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server" : { + "file" : "lib/SOAP/WSDL/Server.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::CGI" : { + "file" : "lib/SOAP/WSDL/Server/CGI.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::Mod_Perl2" : { + "file" : "lib/SOAP/WSDL/Server/Mod_Perl2.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::Simple" : { + "file" : "lib/SOAP/WSDL/Server/Simple.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Service" : { + "file" : "lib/SOAP/WSDL/Service.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::HTTP" : { + "file" : "lib/SOAP/WSDL/Transport/HTTP.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::Loopback" : { + "file" : "lib/SOAP/WSDL/Transport/Loopback.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::Test" : { + "file" : "lib/SOAP/WSDL/Transport/Test.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::TypeLookup" : { + "file" : "lib/SOAP/WSDL/TypeLookup.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Types" : { + "file" : "lib/SOAP/WSDL/Types.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Annotation" : { + "file" : "lib/SOAP/WSDL/XSD/Annotation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Attribute" : { + "file" : "lib/SOAP/WSDL/XSD/Attribute.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::AttributeGroup" : { + "file" : "lib/SOAP/WSDL/XSD/AttributeGroup.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Builtin" : { + "file" : "lib/SOAP/WSDL/XSD/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::ComplexType" : { + "file" : "lib/SOAP/WSDL/XSD/ComplexType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Element" : { + "file" : "lib/SOAP/WSDL/XSD/Element.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Enumeration" : { + "file" : "lib/SOAP/WSDL/XSD/Enumeration.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::FractionDigits" : { + "file" : "lib/SOAP/WSDL/XSD/FractionDigits.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Group" : { + "file" : "lib/SOAP/WSDL/XSD/Group.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Length" : { + "file" : "lib/SOAP/WSDL/XSD/Length.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxExclusive" : { + "file" : "lib/SOAP/WSDL/XSD/MaxExclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxInclusive" : { + "file" : "lib/SOAP/WSDL/XSD/MaxInclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxLength" : { + "file" : "lib/SOAP/WSDL/XSD/MaxLength.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinExclusive" : { + "file" : "lib/SOAP/WSDL/XSD/MinExclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinInclusive" : { + "file" : "lib/SOAP/WSDL/XSD/MinInclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinLength" : { + "file" : "lib/SOAP/WSDL/XSD/MinLength.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Pattern" : { + "file" : "lib/SOAP/WSDL/XSD/Pattern.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Schema" : { + "file" : "lib/SOAP/WSDL/XSD/Schema.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Schema::Builtin" : { + "file" : "lib/SOAP/WSDL/XSD/Schema/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::SimpleType" : { + "file" : "lib/SOAP/WSDL/XSD/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::TotalDigits" : { + "file" : "lib/SOAP/WSDL/XSD/TotalDigits.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Attribute" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Attribute.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::AttributeSet" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::ENTITY" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::ID" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/ID.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::IDREF" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/IDREF.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::IDREFS" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/IDREFS.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NCName" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/NCName.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NMTOKEN" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/NMTOKEN.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NMTOKENS" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/NMTOKENS.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NOTATION" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/NOTATION.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::Name" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/Name.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::QName" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/QName.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anyType" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anyURI" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::base64Binary" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::boolean" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::byte" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/byte.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::date" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/date.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::dateTime" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/dateTime.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::decimal" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/decimal.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::double" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/double.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::duration" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/duration.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::float" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/float.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gDay" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/gDay.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gMonth" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/gMonth.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/gMonthDay.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gYear" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/gYear.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/gYearMonth.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::hexBinary" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/hexBinary.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::int" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/int.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::integer" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/integer.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::language" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/language.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::list" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/list.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::long" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/long.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::negativeInteger" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/negativeInteger.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::nonNegativeInteger" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/nonNegativeInteger.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::nonPositiveInteger" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/nonPositiveInteger.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::normalizedString" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/normalizedString.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/positiveInteger.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::short" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/short.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::string" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/string.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::time" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::token" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/token.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedByte.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedInt.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedLong.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm", + "version" : 0 + }, + "SOAP::WSDL::XSD::Typelib::ComplexType" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Element" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/Element.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::SimpleType" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::SimpleType::restriction" : { + "file" : "lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::WhiteSpace" : { + "file" : "lib/SOAP/WSDL/XSD/WhiteSpace.pm", + "version" : "v2.0.10" + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://opensource.org/licenses/artistic-license.php" + ] + }, + "version" : "2.00.10" + }, + "name" : "SOAP::WSDL", + "pathname" : "M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz", + "provides" : { + "SOAP::WSDL" : { + "file" : "SOAP/WSDL.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Base" : { + "file" : "SOAP/WSDL/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Binding" : { + "file" : "SOAP/WSDL/Binding.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Client" : { + "file" : "SOAP/WSDL/Client.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Client::Base" : { + "file" : "SOAP/WSDL/Client/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Definitions" : { + "file" : "SOAP/WSDL/Definitions.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::Hash" : { + "file" : "SOAP/WSDL/Deserializer/Hash.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::SOM" : { + "file" : "SOAP/WSDL/Deserializer/SOM.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Deserializer::XSD" : { + "file" : "SOAP/WSDL/Deserializer/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::Base" : { + "file" : "SOAP/WSDL/Expat/Base.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::Message2Hash" : { + "file" : "SOAP/WSDL/Expat/Message2Hash.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::MessageParser" : { + "file" : "SOAP/WSDL/Expat/MessageParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::MessageStreamParser" : { + "file" : "SOAP/WSDL/Expat/MessageStreamParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Expat::WSDLParser" : { + "file" : "SOAP/WSDL/Expat/WSDLParser.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Deserializer" : { + "file" : "SOAP/WSDL/Factory/Deserializer.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Generator" : { + "file" : "SOAP/WSDL/Factory/Generator.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Serializer" : { + "file" : "SOAP/WSDL/Factory/Serializer.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Factory::Transport" : { + "file" : "SOAP/WSDL/Factory/Transport.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Iterator::WSDL11" : { + "file" : "SOAP/WSDL/Generator/Iterator/WSDL11.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::PrefixResolver" : { + "file" : "SOAP/WSDL/Generator/PrefixResolver.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template" : { + "file" : "SOAP/WSDL/Generator/Template.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template::Plugin::XSD" : { + "file" : "SOAP/WSDL/Generator/Template/Plugin/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Template::XSD" : { + "file" : "SOAP/WSDL/Generator/Template/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Visitor" : { + "file" : "SOAP/WSDL/Generator/Visitor.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Generator::Visitor::Typemap" : { + "file" : "SOAP/WSDL/Generator/Visitor/Typemap.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Message" : { + "file" : "SOAP/WSDL/Message.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::OpMessage" : { + "file" : "SOAP/WSDL/OpMessage.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Operation" : { + "file" : "SOAP/WSDL/Operation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Part" : { + "file" : "SOAP/WSDL/Part.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Port" : { + "file" : "SOAP/WSDL/Port.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::PortType" : { + "file" : "SOAP/WSDL/PortType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Address" : { + "file" : "SOAP/WSDL/SOAP/Address.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Body" : { + "file" : "SOAP/WSDL/SOAP/Body.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Header" : { + "file" : "SOAP/WSDL/SOAP/Header.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::HeaderFault" : { + "file" : "SOAP/WSDL/SOAP/HeaderFault.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Operation" : { + "file" : "SOAP/WSDL/SOAP/Operation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault" : { + "file" : "SOAP/WSDL/SOAP/Typelib/Fault.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault11" : { + "file" : "SOAP/WSDL/SOAP/Typelib/Fault11.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::SOAP::Typelib::Fault11Detail" : { + "file" : "SOAP/WSDL/SOAP/Typelib/Fault11.pm" + }, + "SOAP::WSDL::Serializer::XSD" : { + "file" : "SOAP/WSDL/Serializer/XSD.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server" : { + "file" : "SOAP/WSDL/Server.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::CGI" : { + "file" : "SOAP/WSDL/Server/CGI.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::Mod_Perl2" : { + "file" : "SOAP/WSDL/Server/Mod_Perl2.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Server::Simple" : { + "file" : "SOAP/WSDL/Server/Simple.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Service" : { + "file" : "SOAP/WSDL/Service.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::HTTP" : { + "file" : "SOAP/WSDL/Transport/HTTP.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::Loopback" : { + "file" : "SOAP/WSDL/Transport/Loopback.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Transport::Test" : { + "file" : "SOAP/WSDL/Transport/Test.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::TypeLookup" : { + "file" : "SOAP/WSDL/TypeLookup.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::Types" : { + "file" : "SOAP/WSDL/Types.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Annotation" : { + "file" : "SOAP/WSDL/XSD/Annotation.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Attribute" : { + "file" : "SOAP/WSDL/XSD/Attribute.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::AttributeGroup" : { + "file" : "SOAP/WSDL/XSD/AttributeGroup.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Builtin" : { + "file" : "SOAP/WSDL/XSD/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::ComplexType" : { + "file" : "SOAP/WSDL/XSD/ComplexType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Element" : { + "file" : "SOAP/WSDL/XSD/Element.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Enumeration" : { + "file" : "SOAP/WSDL/XSD/Enumeration.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::FractionDigits" : { + "file" : "SOAP/WSDL/XSD/FractionDigits.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Group" : { + "file" : "SOAP/WSDL/XSD/Group.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Length" : { + "file" : "SOAP/WSDL/XSD/Length.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxExclusive" : { + "file" : "SOAP/WSDL/XSD/MaxExclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxInclusive" : { + "file" : "SOAP/WSDL/XSD/MaxInclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MaxLength" : { + "file" : "SOAP/WSDL/XSD/MaxLength.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinExclusive" : { + "file" : "SOAP/WSDL/XSD/MinExclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinInclusive" : { + "file" : "SOAP/WSDL/XSD/MinInclusive.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::MinLength" : { + "file" : "SOAP/WSDL/XSD/MinLength.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Pattern" : { + "file" : "SOAP/WSDL/XSD/Pattern.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Schema" : { + "file" : "SOAP/WSDL/XSD/Schema.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Schema::Builtin" : { + "file" : "SOAP/WSDL/XSD/Schema/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::SimpleType" : { + "file" : "SOAP/WSDL/XSD/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::TotalDigits" : { + "file" : "SOAP/WSDL/XSD/TotalDigits.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Attribute" : { + "file" : "SOAP/WSDL/XSD/Typelib/Attribute.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::AttributeSet" : { + "file" : "SOAP/WSDL/XSD/Typelib/AttributeSet.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::ENTITY" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::ID" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/ID.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::IDREF" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/IDREF.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::IDREFS" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/IDREFS.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NCName" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/NCName.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NMTOKEN" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/NMTOKEN.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NMTOKENS" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/NMTOKENS.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::NOTATION" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/NOTATION.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::Name" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/Name.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::QName" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/QName.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anyType" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::anyURI" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::base64Binary" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::boolean" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::byte" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/byte.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::date" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/date.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::dateTime" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/dateTime.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::decimal" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/decimal.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::double" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/double.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::duration" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/duration.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::float" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/float.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gDay" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/gDay.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gMonth" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/gMonth.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/gMonthDay.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gYear" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/gYear.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/gYearMonth.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::hexBinary" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/hexBinary.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::int" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/int.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::integer" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/integer.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::language" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/language.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::list" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/list.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::long" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/long.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::negativeInteger" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/negativeInteger.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::nonNegativeInteger" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/nonNegativeInteger.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::nonPositiveInteger" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/nonPositiveInteger.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::normalizedString" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/normalizedString.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/positiveInteger.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::short" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/short.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::string" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/string.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::time" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/time.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::token" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/token.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/unsignedByte.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/unsignedInt.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/unsignedLong.pm" + }, + "SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort" : { + "file" : "SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm" + }, + "SOAP::WSDL::XSD::Typelib::ComplexType" : { + "file" : "SOAP/WSDL/XSD/Typelib/ComplexType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::Element" : { + "file" : "SOAP/WSDL/XSD/Typelib/Element.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::SimpleType" : { + "file" : "SOAP/WSDL/XSD/Typelib/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::Typelib::SimpleType::restriction" : { + "file" : "SOAP/WSDL/XSD/Typelib/SimpleType.pm", + "version" : "v2.0.10" + }, + "SOAP::WSDL::XSD::WhiteSpace" : { + "file" : "SOAP/WSDL/XSD/WhiteSpace.pm", + "version" : "v2.0.10" + } + }, + "version" : "v2.0.10" + }, "SQL::Abstract" : { "dist" : "SQL-Abstract-1.72", "module" : "SQL::Abstract", @@ -22385,6 +24274,57 @@ }, "version" : "1.4" }, + "String::CamelCase" : { + "dist" : "String-CamelCase-0.02", + "module" : "String::CamelCase", + "mymeta" : { + "abstract" : "camelcase, de-camelcase", + "author" : [ + "YAMASHINA Hio <hio@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MY_Metafile version 0.09, EUMM-6.17., CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "String-CamelCase", + "no_index" : { + "directory" : [ + "inc", + "t" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : { + "Test::More" : 0 + } + } + }, + "release_status" : "stable", + "version" : "0.02", + "x_installdirs" : "site", + "x_version_from" : "lib/String/CamelCase.pm" + }, + "name" : "String::CamelCase", + "pathname" : "H/HI/HIO/String-CamelCase-0.02.tar.gz", + "provides" : { + "String::CamelCase" : { + "file" : "String/CamelCase.pm", + "version" : "0.02" + } + }, + "version" : "0.02" + }, "String::RewritePrefix" : { "dist" : "String-RewritePrefix-0.006", "module" : "String::RewritePrefix", @@ -22617,6 +24557,89 @@ }, "version" : "0.006" }, + "String::ToIdentifier::EN" : { + "dist" : "String-ToIdentifier-EN-0.07", + "module" : "String::ToIdentifier::EN", + "mymeta" : { + "abstract" : "Convert Strings to English Program Identifiers", + "author" : [ + "Rafael Kitover, C<< <rkitover@cpan.org> >>", + "Rafael Kitover <rkitover@cpan.org>" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Install version 1.04, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "String-ToIdentifier-EN", + "no_index" : { + "directory" : [ + "inc", + "t" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.62", + "Test::More" : "0.92" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.62" + } + }, + "runtime" : { + "requires" : { + "Exporter" : "5.57", + "Lingua::EN::Inflect::Phrase" : "0.07", + "Test::More" : "0.92", + "Text::Unidecode" : "0.04", + "namespace::clean" : "0.20", + "perl" : "5.008001" + } + } + }, + "provides" : { + "String::ToIdentifier::EN" : { + "file" : "lib/String/ToIdentifier/EN.pm", + "version" : "0.07" + }, + "String::ToIdentifier::EN::Unicode" : { + "file" : "lib/String/ToIdentifier/EN/Unicode.pm", + "version" : 0 + } + }, + "release_status" : "stable", + "resources" : { + "license" : [ + "http://dev.perl.org/licenses/" + ], + "repository" : { + "type" : "git", + "url" : "git://github.com/rkitover/string-toidentifier-en.git" + } + }, + "version" : "0.07" + }, + "name" : "String::ToIdentifier::EN", + "pathname" : "R/RK/RKITOVER/String-ToIdentifier-EN-0.07.tar.gz", + "provides" : { + "String::ToIdentifier::EN" : { + "file" : "String/ToIdentifier/EN.pm", + "version" : "0.07" + }, + "String::ToIdentifier::EN::Unicode" : { + "file" : "String/ToIdentifier/EN/Unicode.pm" + } + }, + "version" : "0.07" + }, "Sub::Exporter" : { "dist" : "Sub-Exporter-0.982", "module" : "Sub::Exporter", @@ -23347,6 +25370,58 @@ }, "version" : "1.00" }, + "Term::ReadKey" : { + "dist" : "TermReadKey-2.30", + "module" : "Term::ReadKey", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "unknown" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "TermReadKey", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } + }, + "release_status" : "stable", + "version" : "2.30" + }, + "name" : "Term::ReadKey", + "pathname" : "J/JS/JSTOWE/TermReadKey-2.30.tar.gz", + "provides" : { + "Term::ReadKey" : { + "file" : "Term/ReadKey.pm", + "version" : "2.30" + } + }, + "version" : "2.30" + }, "Test::Base" : { "dist" : "Test-Base-0.60", "module" : "Test::Base", @@ -24883,6 +26958,82 @@ }, "version" : "0.02" }, + "Text::German" : { + "dist" : "Text-German-0.06", + "module" : "Text::German", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "unknown" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Text-German", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } + }, + "release_status" : "stable", + "version" : "0.06" + }, + "name" : "Text::German", + "pathname" : "U/UL/ULPFR/Text-German-0.06.tar.gz", + "provides" : { + "Text::German" : { + "file" : "Text/German.pm", + "version" : "0.06" + }, + "Text::German::Adjektiv" : { + "file" : "Text/German/Adjektiv.pm" + }, + "Text::German::Ausnahme" : { + "file" : "Text/German/Ausnahme.pm" + }, + "Text::German::Cache" : { + "file" : "Text/German/Cache.pm" + }, + "Text::German::Endung" : { + "file" : "Text/German/Endung.pm" + }, + "Text::German::Regel" : { + "file" : "Text/German/Regel.pm" + }, + "Text::German::Util" : { + "file" : "Text/German/Util.pm" + }, + "Text::German::Verb" : { + "file" : "Text/German/Verb.pm" + }, + "Text::German::Vorsilbe" : { + "file" : "Text/German/Vorsilbe.pm" + } + }, + "version" : "0.06" + }, "Text::Glob" : { "dist" : "Text-Glob-0.09", "module" : "Text::Glob", @@ -25046,6 +27197,58 @@ }, "version" : "1.45" }, + "Text::Unidecode" : { + "dist" : "Text-Unidecode-0.04", + "module" : "Text::Unidecode", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "unknown" + ], + "dynamic_config" : 0, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "unknown" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Text-Unidecode", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : 0 + } + }, + "runtime" : { + "requires" : {} + } + }, + "release_status" : "stable", + "version" : "0.04" + }, + "name" : "Text::Unidecode", + "pathname" : "S/SB/SBURKE/Text-Unidecode-0.04.tar.gz", + "provides" : { + "Text::Unidecode" : { + "file" : "Text/Unidecode.pm", + "version" : "0.04" + } + }, + "version" : "0.04" + }, "Tie::IxHash" : { "dist" : "Tie-IxHash-1.22", "module" : "Tie::IxHash", @@ -26362,216 +28565,6 @@ }, "version" : "1.11" }, - "XML::Parser" : { - "dist" : "XML-Parser-2.41", - "module" : "XML::Parser", - "mymeta" : { - "abstract" : "A perl module for parsing XML documents", - "author" : [ - "Clark Cooper (coopercc@netheaven.com)" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.56, CPAN::Meta::Converter version 2.112150", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "XML-Parser", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : 0 - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : 0 - } - }, - "runtime" : { - "requires" : { - "LWP" : 0, - "perl" : "5.00405" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "http://github.com/chorny/XML-Parser" - } - }, - "version" : "2.41" - }, - "name" : "XML::Parser", - "pathname" : "T/TO/TODDR/XML-Parser-2.41.tar.gz", - "provides" : { - "XML::Parser" : { - "file" : "XML/Parser.pm", - "version" : "2.41" - }, - "XML::Parser::Expat" : { - "file" : "XML/Parser/Expat.pm", - "version" : "2.41" - }, - "XML::Parser::Style::Debug" : { - "file" : "XML/Parser/Style/Debug.pm" - }, - "XML::Parser::Style::Objects" : { - "file" : "XML/Parser/Style/Objects.pm" - }, - "XML::Parser::Style::Stream" : { - "file" : "XML/Parser/Style/Stream.pm" - }, - "XML::Parser::Style::Subs" : { - "file" : "XML/Parser/Style/Subs.pm" - }, - "XML::Parser::Style::Tree" : { - "file" : "XML/Parser/Style/Tree.pm" - } - }, - "version" : "2.41" - }, - "XML::RSS" : { - "dist" : "XML-RSS-1.49", - "module" : "XML::RSS", - "mymeta" : { - "abstract" : "creates and updates RSS files", - "author" : [ - "Shlomi Fish <shlomif@cpan.org>" - ], - "dynamic_config" : 0, - "generated_by" : "Module::Build version 0.38, CPAN::Meta::Converter version 2.112150", - "keywords" : [ - "feed", - "feeds", - "generate", - "generating", - "parse", - "parsing", - "rss", - "RSS", - "web-feed", - "web-feeds", - "xml" - ], - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "XML-RSS", - "prereqs" : { - "build" : { - "requires" : { - "Test::Manifest" : "0.9", - "Test::More" : 0 - } - }, - "configure" : { - "requires" : { - "Module::Build" : "0.36" - } - }, - "runtime" : { - "requires" : { - "DateTime" : 0, - "DateTime::Format::Mail" : 0, - "DateTime::Format::W3CDTF" : 0, - "HTML::Entities" : 0, - "XML::Parser" : "2.23", - "perl" : "5.008" - } - } - }, - "provides" : { - "XML::RSS" : { - "file" : "lib/XML/RSS.pm", - "version" : "1.49" - }, - "XML::RSS::Private::Output::Base" : { - "file" : "lib/XML/RSS/Private/Output/Base.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::Roles::ImageDims" : { - "file" : "lib/XML/RSS/Private/Output/Roles/ImageDims.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::Roles::ModulesElems" : { - "file" : "lib/XML/RSS/Private/Output/Roles/ModulesElems.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::V0_9" : { - "file" : "lib/XML/RSS/Private/Output/V0_9.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::V0_91" : { - "file" : "lib/XML/RSS/Private/Output/V0_91.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::V1_0" : { - "file" : "lib/XML/RSS/Private/Output/V1_0.pm", - "version" : 0 - }, - "XML::RSS::Private::Output::V2_0" : { - "file" : "lib/XML/RSS/Private/Output/V2_0.pm", - "version" : 0 - } - }, - "release_status" : "stable", - "resources" : { - "homepage" : "http://perl-rss.sourceforge.net/", - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "url" : "https://svn.perl.org/modules/XML-RSS/trunk" - } - }, - "version" : "1.49" - }, - "name" : "XML::RSS", - "pathname" : "S/SH/SHLOMIF/XML-RSS-1.49.tar.gz", - "provides" : { - "XML::RSS" : { - "file" : "XML/RSS.pm", - "version" : "1.49" - }, - "XML::RSS::Private::Output::Base" : { - "file" : "XML/RSS/Private/Output/Base.pm" - }, - "XML::RSS::Private::Output::Roles::ImageDims" : { - "file" : "XML/RSS/Private/Output/Roles/ImageDims.pm" - }, - "XML::RSS::Private::Output::Roles::ModulesElems" : { - "file" : "XML/RSS/Private/Output/Roles/ModulesElems.pm" - }, - "XML::RSS::Private::Output::V0_9" : { - "file" : "XML/RSS/Private/Output/V0_9.pm" - }, - "XML::RSS::Private::Output::V0_91" : { - "file" : "XML/RSS/Private/Output/V0_91.pm" - }, - "XML::RSS::Private::Output::V1_0" : { - "file" : "XML/RSS/Private/Output/V1_0.pm" - }, - "XML::RSS::Private::Output::V2_0" : { - "file" : "XML/RSS/Private/Output/V2_0.pm" - } - }, - "version" : "1.49" - }, "XML::SAX" : { "dist" : "XML-SAX-0.99", "module" : "XML::SAX", @@ -27051,6 +29044,130 @@ }, "version" : "0.30" }, + "carton" : { + "dist" : "carton-v0.9.3", + "module" : "Carton", + "mymeta" : { + "abstract" : "unknown", + "author" : [ + "Tatsuhiko Miyagawa" + ], + "dynamic_config" : 0, + "generated_by" : "Module::Install version 1.03, CPAN::Meta::Converter version 2.112150", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "carton", + "no_index" : { + "directory" : [ + "inc", + "t", + "xt" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.62", + "Test::More" : "0.88", + "Test::Requires" : 0, + "version" : "0.77" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "6.59", + "version" : "0.77" + } + }, + "runtime" : { + "requires" : { + "App::cpanminus" : "1.5", + "CPAN::Meta" : "2.112", + "Exception::Class" : "1.32", + "ExtUtils::MakeMaker" : "6.59", + "JSON" : "2.53", + "Module::Build" : "0.38", + "Module::Metadata" : "1.000003", + "Term::ANSIColor" : "1.12", + "Try::Tiny" : "0.09", + "local::lib" : "1.008", + "parent" : "0.223", + "perl" : "5.008001" + } + } + }, + "provides" : { + "Carton" : { + "file" : "lib/Carton.pm", + "version" : "v0.9.3" + }, + "Carton::CLI" : { + "file" : "lib/Carton/CLI.pm", + "version" : 0 + }, + "Carton::Error" : { + "file" : "lib/Carton/Error.pm", + "version" : 0 + }, + "Carton::Tree" : { + "file" : "lib/Carton/Tree.pm", + "version" : 0 + }, + "Carton::TreeNode" : { + "file" : "lib/Carton/Tree.pm", + "version" : 0 + }, + "Carton::Util" : { + "file" : "lib/Carton/Util.pm", + "version" : 0 + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "web" : "https://github.com/miyagawa/carton/issues" + }, + "homepage" : "https://github.com/miyagawa/carton", + "license" : [ + "http://dev.perl.org/licenses/" + ], + "repository" : { + "type" : "git", + "url" : "git://github.com/miyagawa/carton.git" + } + }, + "version" : "v0.9.3" + }, + "name" : "carton", + "pathname" : "M/MI/MIYAGAWA/carton-v0.9.3.tar.gz", + "provides" : { + "Carton" : { + "file" : "Carton.pm", + "version" : "v0.9.3" + }, + "Carton::CLI" : { + "file" : "Carton/CLI.pm" + }, + "Carton::Error" : { + "file" : "Carton/Error.pm" + }, + "Carton::Tree" : { + "file" : "Carton/Tree.pm" + }, + "Carton::TreeNode" : { + "file" : "Carton/Tree.pm" + }, + "Carton::Util" : { + "file" : "Carton/Util.pm" + } + }, + "version" : "v0.9.3" + }, "local::lib" : { "dist" : "local-lib-1.008004", "module" : "local::lib", diff --git a/commonlib b/commonlib -Subproject 4c2e8e4d8b27aa043d5aa120622a659b56f494d +Subproject f81ec03692fac90792fc102f88f0afbf3d2f73b diff --git a/conf/crontab.ugly b/conf/crontab.ugly index 2d4467aab..1a4e82cee 100644 --- a/conf/crontab.ugly +++ b/conf/crontab.ugly @@ -7,7 +7,11 @@ # $Id: crontab.ugly,v 1.23 2010-01-07 10:32:24 louise Exp $ PATH=/usr/local/bin:/usr/bin:/bin +!!(* if ($vhost eq 'www.fixmystreet.com' || $vhost eq 'reportemptyhomes.com') { *)!! MAILTO=cron-!!(*= $site *)!!@mysociety.org +!!(* } else { *)!! +MAILTO=!!(*= $user *)!!@mysociety.org +!!(* } *)!! # On only one server !!(* if ($vhost eq 'reportemptyhomes.com') { *)!! @@ -18,7 +22,7 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org #2 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-alerts.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-alerts" || echo "stalled?" 0,30 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-questionnaires.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-questionnaires" || echo "stalled?" -!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'matthew.fixmystreet.com')) { *)!! +!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'matthew.fixmystreet.com') || ($vhost eq 'integration-staging.fixmystreet.com')) { *)!! 5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?" 0 0-8,10,11,13,14,16,17,19-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?" 0 9,12,15,18 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports --verbose" || echo "stalled?" diff --git a/conf/general.yml-example b/conf/general.yml-example index 06af11a55..ec77e6ba8 100644 --- a/conf/general.yml-example +++ b/conf/general.yml-example @@ -61,3 +61,5 @@ RSS_LIMIT: '20' # Should problem reports link to the council summary pages? AREA_LINKS_FROM_PROBLEMS: '0' + + diff --git a/conf/httpd.conf-example b/conf/httpd.conf-example index c1b6d96c2..e7900161e 100644 --- a/conf/httpd.conf-example +++ b/conf/httpd.conf-example @@ -67,6 +67,7 @@ ExpiresByType text/css "access plus 10 years" ExpiresByType application/javascript "access plus 10 years" <Location /js/> AddOutputFilter DEFLATE js + Header append Cache-Control "no-transform" </Location> # Don't want jslib being passed to Catalyst diff --git a/conf/packages b/conf/packages index 0f0c48df2..b5287718b 100644..120000 --- a/conf/packages +++ b/conf/packages @@ -1,38 +1 @@ -jhead -libdatetime-format-w3cdtf-perl -libcache-memcached-perl -libdbd-pg-perl -libdbi-perl -libdigest-sha1-perl -liberror-perl -libfcgi-perl -libfile-slurp-perl -libgeography-nationalgrid-perl -libhtml-parser-perl -libio-string-perl -liblingua-en-inflect-perl -liblocale-gettext-perl -libsoap-lite-perl -libstatistics-distributions-perl -liburi-perl -libwww-perl -libxml-rss-perl -memcached -perl -perl-base -perl-modules -perlmagick -libjson-perl -libimage-size-perl -libmath-bigint-gmp-perl -gettext -libtest-exception-perl -libipc-run3-perl -libyaml-perl -liblist-moreutils-perl -ruby-compass | libhaml-ruby -libtemplate-perl -postgresql-8.4 -postgresql-server-dev-8.4 -gnuplot -ttf-bitstream-vera +packages.debian-squeeze+testing
\ No newline at end of file diff --git a/conf/packages.debian-squeeze b/conf/packages.debian-squeeze new file mode 100644 index 000000000..cb494157d --- /dev/null +++ b/conf/packages.debian-squeeze @@ -0,0 +1,38 @@ +jhead +libdatetime-format-w3cdtf-perl +libcache-memcached-perl +libdbd-pg-perl +libdbi-perl +libdigest-sha1-perl +liberror-perl +libfcgi-perl +libfile-slurp-perl +libgeography-nationalgrid-perl +libhtml-parser-perl +libio-string-perl +liblingua-en-inflect-perl +liblocale-gettext-perl +libsoap-lite-perl +libstatistics-distributions-perl +liburi-perl +libwww-perl +libxml-rss-perl +memcached +perl +perl-base +perl-modules +perlmagick +libjson-perl +libimage-size-perl +libmath-bigint-gmp-perl +gettext +libtest-exception-perl +libipc-run3-perl +libyaml-perl +liblist-moreutils-perl +libhaml-ruby +libtemplate-perl +postgresql-8.4 +postgresql-server-dev-8.4 +gnuplot +ttf-bitstream-vera diff --git a/conf/packages.debian-squeeze+testing b/conf/packages.debian-squeeze+testing new file mode 100644 index 000000000..cec3a2624 --- /dev/null +++ b/conf/packages.debian-squeeze+testing @@ -0,0 +1,38 @@ +jhead +libdatetime-format-w3cdtf-perl +libcache-memcached-perl +libdbd-pg-perl +libdbi-perl +libdigest-sha1-perl +liberror-perl +libfcgi-perl +libfile-slurp-perl +libgeography-nationalgrid-perl +libhtml-parser-perl +libio-string-perl +liblingua-en-inflect-perl +liblocale-gettext-perl +libsoap-lite-perl +libstatistics-distributions-perl +liburi-perl +libwww-perl +libxml-rss-perl +memcached +perl +perl-base +perl-modules +perlmagick +libjson-perl +libimage-size-perl +libmath-bigint-gmp-perl +gettext +libtest-exception-perl +libipc-run3-perl +libyaml-perl +liblist-moreutils-perl +ruby-compass +libtemplate-perl +postgresql-8.4 +postgresql-server-dev-8.4 +gnuplot +ttf-bitstream-vera diff --git a/db/schema.sql b/db/schema.sql index 395d1c07b..e1205099d 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -189,7 +189,15 @@ create table problem ( send_questionnaire boolean not null default 't', extra text, -- extra fields required for open311 flagged boolean not null default 'f', - geocode bytea + geocode bytea, + + -- logging sending failures (used by webservices) + send_fail_count integer not null default 0, + send_fail_reason text, + send_fail_timestamp timestamp, + + -- record send_method used, which can be used to infer usefulness of external_id + send_method_used text ); create index problem_state_latitude_longitude_idx on problem(state, latitude, longitude); create index problem_user_id_idx on problem ( user_id ); @@ -419,5 +427,6 @@ create table open311conf ( area_id integer not null unique, endpoint text not null, jurisdiction text, - api_key text + api_key text, + send_method text ); diff --git a/db/schema_0013-add_send_method_column_to_open311conf.sql b/db/schema_0013-add_send_method_column_to_open311conf.sql new file mode 100644 index 000000000..516fdd698 --- /dev/null +++ b/db/schema_0013-add_send_method_column_to_open311conf.sql @@ -0,0 +1,7 @@ + +begin; + +ALTER table open311conf + ADD column send_method TEXT; + +commit; diff --git a/db/schema_0014-add_send_fail_columns_to_problem.sql b/db/schema_0014-add_send_fail_columns_to_problem.sql new file mode 100644 index 000000000..369c4118d --- /dev/null +++ b/db/schema_0014-add_send_fail_columns_to_problem.sql @@ -0,0 +1,10 @@ +begin; + +ALTER table problem + ADD column send_fail_count integer not null default 0; +ALTER table problem + ADD column send_fail_reason text; +ALTER table problem + ADD column send_fail_timestamp timestamp; + +commit; diff --git a/db/schema_0015-add_send_method_used_column_to_problem.sql b/db/schema_0015-add_send_method_used_column_to_problem.sql new file mode 100644 index 000000000..0c6e0851d --- /dev/null +++ b/db/schema_0015-add_send_method_used_column_to_problem.sql @@ -0,0 +1,6 @@ +begin; + +ALTER table problem + ADD column send_method_used text; + +commit; diff --git a/notes/INSTALL.pod b/notes/INSTALL.pod index ea549bd7e..701112b45 100644 --- a/notes/INSTALL.pod +++ b/notes/INSTALL.pod @@ -13,6 +13,11 @@ following command from inside the fixmystreet directory: git submodule update --init +If you're using git version 1.6.5 or later, you can do those steps in +one go with: + + git clone --recursive https://github.com/mysociety/fixmystreet.git + =head1 REQUIREMENTS On the server you are installing FixMyStreet on you will need the following things: @@ -50,17 +55,24 @@ to CSS convertor. You can get one from L<http://sass-lang.com/> If you're expecting a lot of traffic it's recommended that you install memcached: L<http://memcached.org/> -If you're using a Debian based Linux distribution then the packages to install -some required dependencies (though not all the required Perl modules) are -listed in C<conf/packages>. To install all of them you can run: +If you're using Debian 6.0 ("squeeze") then the packages to install +some required dependencies (though not all the required Perl modules) +are listed in C<conf/packages.debian-squeeze>. To install all of them +you can run: - xargs -a conf/packages apt-get install + sudo xargs -a conf/packages.debian-squeeze apt-get install -Note, you will need to either be logged in as root or to use +A similar list of packages should work for other Debian-based +distributions. (Please let us know if you would like to contribute +such a package list or instructions for other distributions.) - sudo xargs -a conf/packages apt-get install +To generate the CSS for the current design of FixMyStreet you will +also need Compass L<http://compass-style.org/>, but unfortunately +it is not packaged in Debian squeeze (or squeeze-backports). You +will either need to install the package from testing, or you could +install it from the Ruby gem with: -for this to work. + gem install compass =head2 Service dependencies @@ -81,22 +93,70 @@ geolocation services. =head1 DETAILED INSTALLATION INSTRUCTIONS -=head2 Unpacking the Code - -Once you've downloaded the code you should unpack it. The best place to do this -is in the location you want the web server vhost to be. - =head2 Creating the database -The default settings file assumes the database is called fms and the user the same. +The default settings file (C<conf/general.yml>) assumes the database is called fms and the user the same. You can change these if you like. +If you wish to create this new database and database user with +password authentication, the following steps may help. First, create +the fms user: + + $ sudo -u postgres createuser fms + Shall the new role be a superuser? (y/n) n + Shall the new role be allowed to create databases? (y/n) n + Shall the new role be allowed to create more new roles? (y/n) n + +Then create the fms database: + + $ sudo -u postgres createdb fms + +Set the password of the fms user, and change the owner of the fms database to be the fms user: + + $ sudo -u postgres psql + postgres=# ALTER USER fms WITH PASSWORD 'somepassword' + ALTER ROLE + postgres=# ALTER DATABASE fms OWNER to fms; + ALTER DATABASE + postgres=# \q + $ + +Then you need to configure PostgreSQL to allow password-based access +to the fms database as the user fms from using Unix-domain sockets. +Edit the file C</etc/postgresql/8.4/main/pg_hba.conf> and add as the +first line: + + local fms fms md5 + +You will then need to restart PostgreSQL with: + + $ sudo /etc/init.d/postgresql restart + +If you want to access the database from the command line, you can add +the following line to C<~/.pgpass>: + + localhost:*:fms:fms:somepassword + +Then you should be able to access the database with: + + $ psql -U fms fms + =head2 Set up the database -Once you've created the database you can use the sql in C<db/schema.sql> to create the required +Before creating the database schema, you will need to install the +PostgreSQL's SQL procedural language into the database: + + createlang -U fms plpgsql fms + +Now you can use the sql in C<db/schema.sql> to create the required tables, triggers and stored procedures. You will also need to run -C<db/alert_types.sql> which -populates the alert_types table. +C<db/alert_types.sql> which populates the alert_types table. For +example, you might run: + + $ psql -U fms fms < db/schema.sql + ... + $ psql -U fms fms < db/alert_types.sql + ... =head2 Install Perl modules @@ -130,6 +190,21 @@ the required development tools. =head2 Set up Webserver +For production use of FixMyStreet, we suggest you use Apache and +FastCGI. (See below.) For local development, however, you can use +the Catalyst development server. First, install the Catalyst +development tools with: + + ./bin/cron-wrapper local/bin/carton install Catalyst::Devel + +Then the development server can be run with: + + CATALYST_DEBUG=1 ./bin/cron-wrapper ./script/fixmystreet_app_server.pl -r + +The server will be accessible as L<http://localhost:3000/>. + +=head3 Setting up Apache + It is recommended that you run FixMyStreet using FastCGI. It should also be possible to run it using Plack/PSGI. diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm new file mode 100644 index 000000000..2c398ab1b --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm @@ -0,0 +1,248 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATE; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATE'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); + +use base qw( + SOAP::WSDL::XSD::Typelib::Element + SOAP::WSDL::XSD::Typelib::ComplexType +); + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ET_RETURN_of :ATTR(:get<ET_RETURN>); +my %IT_PROBLEM_DESC_of :ATTR(:get<IT_PROBLEM_DESC>); +my %IV_CUST_EMAIL_of :ATTR(:get<IV_CUST_EMAIL>); +my %IV_CUST_NAME_of :ATTR(:get<IV_CUST_NAME>); +my %IV_KBID_of :ATTR(:get<IV_KBID>); +my %IV_PROBLEM_ID_of :ATTR(:get<IV_PROBLEM_ID>); +my %IV_PROBLEM_LOC_of :ATTR(:get<IV_PROBLEM_LOC>); +my %IV_PROBLEM_SUB_of :ATTR(:get<IV_PROBLEM_SUB>); + +__PACKAGE__->_factory( + [ qw( ET_RETURN + IT_PROBLEM_DESC + IV_CUST_EMAIL + IV_CUST_NAME + IV_KBID + IV_PROBLEM_ID + IV_PROBLEM_LOC + IV_PROBLEM_SUB + + ) ], + { + 'ET_RETURN' => \%ET_RETURN_of, + 'IT_PROBLEM_DESC' => \%IT_PROBLEM_DESC_of, + 'IV_CUST_EMAIL' => \%IV_CUST_EMAIL_of, + 'IV_CUST_NAME' => \%IV_CUST_NAME_of, + 'IV_KBID' => \%IV_KBID_of, + 'IV_PROBLEM_ID' => \%IV_PROBLEM_ID_of, + 'IV_PROBLEM_LOC' => \%IV_PROBLEM_LOC_of, + 'IV_PROBLEM_SUB' => \%IV_PROBLEM_SUB_of, + }, + { + 'ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'IV_CUST_EMAIL' => 'BarnetTypes::char241', + 'IV_CUST_NAME' => 'BarnetTypes::char50', + 'IV_KBID' => 'BarnetTypes::char50', + 'IV_PROBLEM_ID' => 'BarnetTypes::char35', + 'IV_PROBLEM_LOC' => 'BarnetTypes::BAPI_TTET_ADDRESS_COM', + 'IV_PROBLEM_SUB' => 'BarnetTypes::char40', + }, + { + + 'ET_RETURN' => 'ET_RETURN', + 'IT_PROBLEM_DESC' => 'IT_PROBLEM_DESC', + 'IV_CUST_EMAIL' => 'IV_CUST_EMAIL', + 'IV_CUST_NAME' => 'IV_CUST_NAME', + 'IV_KBID' => 'IV_KBID', + 'IV_PROBLEM_ID' => 'IV_PROBLEM_ID', + 'IV_PROBLEM_LOC' => 'IV_PROBLEM_LOC', + 'IV_PROBLEM_SUB' => 'IV_PROBLEM_SUB', + } +); + +} # end BLOCK + + + + + + +} # end of BLOCK + + + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATE + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATE from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ET_RETURN + + $element->set_ET_RETURN($data); + $element->get_ET_RETURN(); + + + + +=item * IT_PROBLEM_DESC + + $element->set_IT_PROBLEM_DESC($data); + $element->get_IT_PROBLEM_DESC(); + + + + +=item * IV_CUST_EMAIL + + $element->set_IV_CUST_EMAIL($data); + $element->get_IV_CUST_EMAIL(); + + + + +=item * IV_CUST_NAME + + $element->set_IV_CUST_NAME($data); + $element->get_IV_CUST_NAME(); + + + + +=item * IV_KBID + + $element->set_IV_KBID($data); + $element->get_IV_KBID(); + + + + +=item * IV_PROBLEM_ID + + $element->set_IV_PROBLEM_ID($data); + $element->get_IV_PROBLEM_ID(); + + + + +=item * IV_PROBLEM_LOC + + $element->set_IV_PROBLEM_LOC($data); + $element->get_IV_PROBLEM_LOC(); + + + + +=item * IV_PROBLEM_SUB + + $element->set_IV_PROBLEM_SUB($data); + $element->get_IV_PROBLEM_SUB(); + + + + + +=back + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATE->new($data); + +Constructor. The following data structure may be passed to new(): + + { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + IV_CUST_EMAIL => $some_value, # char241 + IV_CUST_NAME => $some_value, # char50 + IV_KBID => $some_value, # char50 + IV_PROBLEM_ID => $some_value, # char35 + IV_PROBLEM_LOC => { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + IV_PROBLEM_SUB => $some_value, # char40 + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm new file mode 100644 index 000000000..ae95d3234 --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm @@ -0,0 +1,64 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATE.Exception'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); +use base qw( + SOAP::WSDL::XSD::Typelib::Element + BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException +); + +} + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATE.Exception from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception->new($data); + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + Name => $some_value, # Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions + Text => $some_value, # string + Message => { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm new file mode 100644 index 000000000..5755d0b49 --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm @@ -0,0 +1,183 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATEResponse'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); + +use base qw( + SOAP::WSDL::XSD::Typelib::Element + SOAP::WSDL::XSD::Typelib::ComplexType +); + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ET_RETURN_of :ATTR(:get<ET_RETURN>); +my %EV_ORDER_GUID_of :ATTR(:get<EV_ORDER_GUID>); +my %EV_ORDER_NO_of :ATTR(:get<EV_ORDER_NO>); +my %IT_PROBLEM_DESC_of :ATTR(:get<IT_PROBLEM_DESC>); + +__PACKAGE__->_factory( + [ qw( ET_RETURN + EV_ORDER_GUID + EV_ORDER_NO + IT_PROBLEM_DESC + + ) ], + { + 'ET_RETURN' => \%ET_RETURN_of, + 'EV_ORDER_GUID' => \%EV_ORDER_GUID_of, + 'EV_ORDER_NO' => \%EV_ORDER_NO_of, + 'IT_PROBLEM_DESC' => \%IT_PROBLEM_DESC_of, + }, + { + 'ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'EV_ORDER_GUID' => 'BarnetTypes::char32', + 'EV_ORDER_NO' => 'BarnetTypes::char10', + 'IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + }, + { + + 'ET_RETURN' => 'ET_RETURN', + 'EV_ORDER_GUID' => 'EV_ORDER_GUID', + 'EV_ORDER_NO' => 'EV_ORDER_NO', + 'IT_PROBLEM_DESC' => 'IT_PROBLEM_DESC', + } +); + +} # end BLOCK + + + + + + +} # end of BLOCK + + + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATEResponse from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ET_RETURN + + $element->set_ET_RETURN($data); + $element->get_ET_RETURN(); + + + + +=item * EV_ORDER_GUID + + $element->set_EV_ORDER_GUID($data); + $element->get_EV_ORDER_GUID(); + + + + +=item * EV_ORDER_NO + + $element->set_EV_ORDER_NO($data); + $element->get_EV_ORDER_NO(); + + + + +=item * IT_PROBLEM_DESC + + $element->set_IT_PROBLEM_DESC($data); + $element->get_IT_PROBLEM_DESC(); + + + + + +=back + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse->new($data); + +Constructor. The following data structure may be passed to new(): + + { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + EV_ORDER_GUID => $some_value, # char32 + EV_ORDER_NO => $some_value, # char10 + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm b/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm new file mode 100644 index 000000000..94e0cd4db --- /dev/null +++ b/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm @@ -0,0 +1,166 @@ +package BarnetInterfaces::service::ZLBB_SERVICE_ORDER; +use strict; +use warnings; +use Class::Std::Fast::Storable; +use Scalar::Util qw(blessed); +use base qw(SOAP::WSDL::Client::Base); + +# only load if it hasn't been loaded before +require BarnetTypemaps::service + if not BarnetTypemaps::service->can('get_class'); + +sub START { + $_[0]->set_proxy('http://lbbcrmdev.barnet.gov.uk:8000/sap/bc/srt/rfc/sap/zlbb_service_order/200/zlbb_service_order/zlbb_service_order') if not $_[2]->{proxy}; + $_[0]->set_class_resolver('BarnetTypemaps::service') + if not $_[2]->{class_resolver}; + + $_[0]->set_prefix($_[2]->{use_prefix}) if exists $_[2]->{use_prefix}; +} + +sub Z_CRM_SERVICE_ORDER_CREATE { + my ($self, $body, $header) = @_; + die "Z_CRM_SERVICE_ORDER_CREATE must be called as object method (\$self is <$self>)" if not blessed($self); + return $self->SUPER::call({ + operation => 'Z_CRM_SERVICE_ORDER_CREATE', + soap_action => '', + style => 'document', + body => { + + + 'use' => 'literal', + namespace => 'http://schemas.xmlsoap.org/wsdl/soap/', + encodingStyle => '', + parts => [qw( BarnetElements::Z_CRM_SERVICE_ORDER_CREATE )], + }, + header => { + + }, + headerfault => { + + } + }, $body, $header); +} + + + + +1; + + + +__END__ + +=pod + +=head1 NAME + +BarnetInterfaces::service::ZLBB_SERVICE_ORDER - SOAP Interface for the service Web Service + +=head1 SYNOPSIS + + use BarnetInterfaces::service::ZLBB_SERVICE_ORDER; + my $interface = BarnetInterfaces::service::ZLBB_SERVICE_ORDER->new(); + + my $response; + $response = $interface->Z_CRM_SERVICE_ORDER_CREATE(); + + + +=head1 DESCRIPTION + +SOAP Interface for the service web service +located at http://lbbcrmdev.barnet.gov.uk:8000/sap/bc/srt/rfc/sap/zlbb_service_order/200/zlbb_service_order/zlbb_service_order. + +=head1 SERVICE service + + + +=head2 Port ZLBB_SERVICE_ORDER + + + +=head1 METHODS + +=head2 General methods + +=head3 new + +Constructor. + +All arguments are forwarded to L<SOAP::WSDL::Client|SOAP::WSDL::Client>. + +=head2 SOAP Service methods + +Method synopsis is displayed with hash refs as parameters. + +The commented class names in the method's parameters denote that objects +of the corresponding class can be passed instead of the marked hash ref. + +You may pass any combination of objects, hash and list refs to these +methods, as long as you meet the structure. + +List items (i.e. multiple occurences) are not displayed in the synopsis. +You may generally pass a list ref of hash refs (or objects) instead of a hash +ref - this may result in invalid XML if used improperly, though. Note that +SOAP::WSDL always expects list references at maximum depth position. + +XML attributes are not displayed in this synopsis and cannot be set using +hash refs. See the respective class' documentation for additional information. + + + +=head3 Z_CRM_SERVICE_ORDER_CREATE + + + +Returns a L<BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse|BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse> object. + + $response = $interface->Z_CRM_SERVICE_ORDER_CREATE( { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + IV_CUST_EMAIL => $some_value, # char241 + IV_CUST_NAME => $some_value, # char50 + IV_KBID => $some_value, # char50 + IV_PROBLEM_ID => $some_value, # char35 + IV_PROBLEM_LOC => { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + IV_PROBLEM_SUB => $some_value, # char40 + },, + ); + + + +=head1 AUTHOR + +Generated by SOAP::WSDL on Fri Apr 8 10:23:03 2011 + +=cut diff --git a/perllib/BarnetTypemaps/service.pm b/perllib/BarnetTypemaps/service.pm new file mode 100644 index 000000000..dd9f98162 --- /dev/null +++ b/perllib/BarnetTypemaps/service.pm @@ -0,0 +1,103 @@ + +package BarnetTypemaps::service; +use strict; +use warnings; + +our $typemap_1 = { + 'Z_CRM_SERVICE_ORDER_CREATEResponse/EV_ORDER_NO' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/GEOCODE' => 'BarnetTypes::char32', + 'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/COUNTRY2' => 'BarnetTypes::char2', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/NUMBER' => 'BarnetTypes::numeric3', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC/item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V1' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/POSTALCODE' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/LOG_NO' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V2' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V3' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_SUB' => 'BarnetTypes::char40', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC/item/TEXT_LINE' => 'BarnetTypes::char132', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/LOG_NO' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC/item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + 'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/PARAMETER' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item' => 'BarnetTypes::BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_CUST_NAME' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V2' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message/ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/NUMBER' => 'BarnetTypes::numeric3', + 'Z_CRM_SERVICE_ORDER_CREATEResponse' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Text' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V1' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/PARAMETER' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE' => 'BarnetTypes::char220', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/TYPE' => 'BarnetTypes::char1', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE' => 'BarnetTypes::char220', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC' => 'BarnetTypes::BAPI_TTET_ADDRESS_COM', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/TYPE' => 'BarnetTypes::char1', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_CUST_EMAIL' => 'BarnetTypes::char241', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/FIELD' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Name' => 'BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC/item/TEXT_LINE' => 'BarnetTypes::char132', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/ID' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/EV_ORDER_GUID' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/SYSTEM' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_ID' => 'BarnetTypes::char35', + 'Z_CRM_SERVICE_ORDER_CREATE' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATE', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/REGION' => 'BarnetTypes::char3', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V4' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/FIELD' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/SYSTEM' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/COUNTY' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message' => 'BarnetTypes::RfcException::Message', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item' => 'BarnetTypes::BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/CITY' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V4' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception', + 'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/STREETNUMBER' => 'BarnetTypes::char5', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/ID' => 'BarnetTypes::char20', + 'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::token', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/STREET' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message/Number' => 'BarnetTypes::RfcException::Message::Number', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_KBID' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V3' => 'BarnetTypes::char50' + }; +; + +sub get_class { + my $name = join '/', @{ $_[1] }; + return $typemap_1->{ $name }; +} + +sub get_typemap { + return $typemap_1; +} + +1; + +__END__ + +__END__ + +=pod + +=head1 NAME + +BarnetTypemaps::service - typemap for service + +=head1 DESCRIPTION + +Typemap created by SOAP::WSDL for map-based SOAP message parsers. + +=cut + diff --git a/perllib/BarnetTypes/BAPIRET2.pm b/perllib/BarnetTypes/BAPIRET2.pm new file mode 100644 index 000000000..2ca20894c --- /dev/null +++ b/perllib/BarnetTypes/BAPIRET2.pm @@ -0,0 +1,219 @@ +package BarnetTypes::BAPIRET2; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %TYPE_of :ATTR(:get<TYPE>); +my %ID_of :ATTR(:get<ID>); +my %NUMBER_of :ATTR(:get<NUMBER>); +my %MESSAGE_of :ATTR(:get<MESSAGE>); +my %LOG_NO_of :ATTR(:get<LOG_NO>); +my %LOG_MSG_NO_of :ATTR(:get<LOG_MSG_NO>); +my %MESSAGE_V1_of :ATTR(:get<MESSAGE_V1>); +my %MESSAGE_V2_of :ATTR(:get<MESSAGE_V2>); +my %MESSAGE_V3_of :ATTR(:get<MESSAGE_V3>); +my %MESSAGE_V4_of :ATTR(:get<MESSAGE_V4>); +my %PARAMETER_of :ATTR(:get<PARAMETER>); +my %ROW_of :ATTR(:get<ROW>); +my %FIELD_of :ATTR(:get<FIELD>); +my %SYSTEM_of :ATTR(:get<SYSTEM>); + +__PACKAGE__->_factory( + [ qw( TYPE + ID + NUMBER + MESSAGE + LOG_NO + LOG_MSG_NO + MESSAGE_V1 + MESSAGE_V2 + MESSAGE_V3 + MESSAGE_V4 + PARAMETER + ROW + FIELD + SYSTEM + + ) ], + { + 'TYPE' => \%TYPE_of, + 'ID' => \%ID_of, + 'NUMBER' => \%NUMBER_of, + 'MESSAGE' => \%MESSAGE_of, + 'LOG_NO' => \%LOG_NO_of, + 'LOG_MSG_NO' => \%LOG_MSG_NO_of, + 'MESSAGE_V1' => \%MESSAGE_V1_of, + 'MESSAGE_V2' => \%MESSAGE_V2_of, + 'MESSAGE_V3' => \%MESSAGE_V3_of, + 'MESSAGE_V4' => \%MESSAGE_V4_of, + 'PARAMETER' => \%PARAMETER_of, + 'ROW' => \%ROW_of, + 'FIELD' => \%FIELD_of, + 'SYSTEM' => \%SYSTEM_of, + }, + { + 'TYPE' => 'BarnetTypes::char1', + 'ID' => 'BarnetTypes::char20', + 'NUMBER' => 'BarnetTypes::numeric3', + 'MESSAGE' => 'BarnetTypes::char220', + 'LOG_NO' => 'BarnetTypes::char20', + 'LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'MESSAGE_V1' => 'BarnetTypes::char50', + 'MESSAGE_V2' => 'BarnetTypes::char50', + 'MESSAGE_V3' => 'BarnetTypes::char50', + 'MESSAGE_V4' => 'BarnetTypes::char50', + 'PARAMETER' => 'BarnetTypes::char32', + 'ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'FIELD' => 'BarnetTypes::char30', + 'SYSTEM' => 'BarnetTypes::char10', + }, + { + + 'TYPE' => 'TYPE', + 'ID' => 'ID', + 'NUMBER' => 'NUMBER', + 'MESSAGE' => 'MESSAGE', + 'LOG_NO' => 'LOG_NO', + 'LOG_MSG_NO' => 'LOG_MSG_NO', + 'MESSAGE_V1' => 'MESSAGE_V1', + 'MESSAGE_V2' => 'MESSAGE_V2', + 'MESSAGE_V3' => 'MESSAGE_V3', + 'MESSAGE_V4' => 'MESSAGE_V4', + 'PARAMETER' => 'PARAMETER', + 'ROW' => 'ROW', + 'FIELD' => 'FIELD', + 'SYSTEM' => 'SYSTEM', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::BAPIRET2 + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +BAPIRET2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * TYPE + + +=item * ID + + +=item * NUMBER + + +=item * MESSAGE + + +=item * LOG_NO + + +=item * LOG_MSG_NO + + +=item * MESSAGE_V1 + + +=item * MESSAGE_V2 + + +=item * MESSAGE_V3 + + +=item * MESSAGE_V4 + + +=item * PARAMETER + + +=item * ROW + + +=item * FIELD + + +=item * SYSTEM + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm b/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm new file mode 100644 index 000000000..b4a8b00ca --- /dev/null +++ b/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm @@ -0,0 +1,165 @@ +package BarnetTypes::BAPI_TTET_ADDRESS_COM; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %COUNTRY2_of :ATTR(:get<COUNTRY2>); +my %REGION_of :ATTR(:get<REGION>); +my %COUNTY_of :ATTR(:get<COUNTY>); +my %CITY_of :ATTR(:get<CITY>); +my %POSTALCODE_of :ATTR(:get<POSTALCODE>); +my %STREET_of :ATTR(:get<STREET>); +my %STREETNUMBER_of :ATTR(:get<STREETNUMBER>); +my %GEOCODE_of :ATTR(:get<GEOCODE>); + +__PACKAGE__->_factory( + [ qw( COUNTRY2 + REGION + COUNTY + CITY + POSTALCODE + STREET + STREETNUMBER + GEOCODE + + ) ], + { + 'COUNTRY2' => \%COUNTRY2_of, + 'REGION' => \%REGION_of, + 'COUNTY' => \%COUNTY_of, + 'CITY' => \%CITY_of, + 'POSTALCODE' => \%POSTALCODE_of, + 'STREET' => \%STREET_of, + 'STREETNUMBER' => \%STREETNUMBER_of, + 'GEOCODE' => \%GEOCODE_of, + }, + { + 'COUNTRY2' => 'BarnetTypes::char2', + 'REGION' => 'BarnetTypes::char3', + 'COUNTY' => 'BarnetTypes::char30', + 'CITY' => 'BarnetTypes::char30', + 'POSTALCODE' => 'BarnetTypes::char10', + 'STREET' => 'BarnetTypes::char30', + 'STREETNUMBER' => 'BarnetTypes::char5', + 'GEOCODE' => 'BarnetTypes::char32', + }, + { + + 'COUNTRY2' => 'COUNTRY2', + 'REGION' => 'REGION', + 'COUNTY' => 'COUNTY', + 'CITY' => 'CITY', + 'POSTALCODE' => 'POSTALCODE', + 'STREET' => 'STREET', + 'STREETNUMBER' => 'STREETNUMBER', + 'GEOCODE' => 'GEOCODE', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::BAPI_TTET_ADDRESS_COM + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +BAPI_TTET_ADDRESS_COM from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * COUNTRY2 + + +=item * REGION + + +=item * COUNTY + + +=item * CITY + + +=item * POSTALCODE + + +=item * STREET + + +=item * STREETNUMBER + + +=item * GEOCODE + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm b/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm new file mode 100644 index 000000000..39e2ad1ce --- /dev/null +++ b/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm @@ -0,0 +1,102 @@ +package BarnetTypes::CRMT_SERVICE_REQUEST_TEXT; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %TEXT_LINE_of :ATTR(:get<TEXT_LINE>); + +__PACKAGE__->_factory( + [ qw( TEXT_LINE + + ) ], + { + 'TEXT_LINE' => \%TEXT_LINE_of, + }, + { + 'TEXT_LINE' => 'BarnetTypes::char132', + }, + { + + 'TEXT_LINE' => 'TEXT_LINE', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +CRMT_SERVICE_REQUEST_TEXT from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * TEXT_LINE + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/RfcException/Message.pm b/perllib/BarnetTypes/RfcException/Message.pm new file mode 100644 index 000000000..71b94bf7c --- /dev/null +++ b/perllib/BarnetTypes/RfcException/Message.pm @@ -0,0 +1,111 @@ +package BarnetTypes::RfcException::Message; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ID_of :ATTR(:get<ID>); +my %Number_of :ATTR(:get<Number>); + +__PACKAGE__->_factory( + [ qw( ID + Number + + ) ], + { + 'ID' => \%ID_of, + 'Number' => \%Number_of, + }, + { + 'ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Number' => 'BarnetTypes::RfcException::Message::Number', + }, + { + + 'ID' => 'ID', + 'Number' => 'Number', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::RfcException::Message + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +RfcException.Message from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ID + + +=item * Number + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/RfcException/Message/Number.pm b/perllib/BarnetTypes/RfcException/Message/Number.pm new file mode 100644 index 000000000..9353df454 --- /dev/null +++ b/perllib/BarnetTypes/RfcException/Message/Number.pm @@ -0,0 +1,65 @@ +package BarnetTypes::RfcException::Message::Number; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +RfcException.Message.Number from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm b/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm new file mode 100644 index 000000000..c248bc907 --- /dev/null +++ b/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm @@ -0,0 +1,117 @@ +package BarnetTypes::TABLE_OF_BAPIRET2; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %item_of :ATTR(:get<item>); + +__PACKAGE__->_factory( + [ qw( item + + ) ], + { + 'item' => \%item_of, + }, + { + 'item' => 'BarnetTypes::BAPIRET2', + }, + { + + 'item' => 'item', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::TABLE_OF_BAPIRET2 + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +TABLE_OF_BAPIRET2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * item + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm b/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm new file mode 100644 index 000000000..62eb7b774 --- /dev/null +++ b/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm @@ -0,0 +1,104 @@ +package BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %item_of :ATTR(:get<item>); + +__PACKAGE__->_factory( + [ qw( item + + ) ], + { + 'item' => \%item_of, + }, + { + 'item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + }, + { + + 'item' => 'item', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +TABLE_OF_CRMT_SERVICE_REQUEST_TEXT from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * item + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm new file mode 100644 index 000000000..8d04adf53 --- /dev/null +++ b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm @@ -0,0 +1,123 @@ +package BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %Name_of :ATTR(:get<Name>); +my %Text_of :ATTR(:get<Text>); +my %Message_of :ATTR(:get<Message>); + +__PACKAGE__->_factory( + [ qw( Name + Text + Message + + ) ], + { + 'Name' => \%Name_of, + 'Text' => \%Text_of, + 'Message' => \%Message_of, + }, + { + 'Name' => 'BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions', + 'Text' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Message' => 'BarnetTypes::RfcException::Message', + }, + { + + 'Name' => 'Name', + 'Text' => 'Text', + 'Message' => 'Message', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +Z_CRM_SERVICE_ORDER_CREATE.RfcException from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * Name + + +=item * Text + + +=item * Message + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + Name => $some_value, # Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions + Text => $some_value, # string + Message => { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm new file mode 100644 index 000000000..ffc2237bc --- /dev/null +++ b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm @@ -0,0 +1,65 @@ +package BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char1.pm b/perllib/BarnetTypes/char1.pm new file mode 100644 index 000000000..d0bab8e5e --- /dev/null +++ b/perllib/BarnetTypes/char1.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char1; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char1 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char10.pm b/perllib/BarnetTypes/char10.pm new file mode 100644 index 000000000..6ff454e4b --- /dev/null +++ b/perllib/BarnetTypes/char10.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char10; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char10 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char132.pm b/perllib/BarnetTypes/char132.pm new file mode 100644 index 000000000..46a41077b --- /dev/null +++ b/perllib/BarnetTypes/char132.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char132; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char132 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char2.pm b/perllib/BarnetTypes/char2.pm new file mode 100644 index 000000000..35c476fbe --- /dev/null +++ b/perllib/BarnetTypes/char2.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char2; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char20.pm b/perllib/BarnetTypes/char20.pm new file mode 100644 index 000000000..1c2df092a --- /dev/null +++ b/perllib/BarnetTypes/char20.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char20; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char20 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char220.pm b/perllib/BarnetTypes/char220.pm new file mode 100644 index 000000000..7ccde81f8 --- /dev/null +++ b/perllib/BarnetTypes/char220.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char220; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char220 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char241.pm b/perllib/BarnetTypes/char241.pm new file mode 100644 index 000000000..e6567554f --- /dev/null +++ b/perllib/BarnetTypes/char241.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char241; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char241 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char3.pm b/perllib/BarnetTypes/char3.pm new file mode 100644 index 000000000..f9d001cda --- /dev/null +++ b/perllib/BarnetTypes/char3.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char3; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char3 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char30.pm b/perllib/BarnetTypes/char30.pm new file mode 100644 index 000000000..91d98eb30 --- /dev/null +++ b/perllib/BarnetTypes/char30.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char30; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char30 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char32.pm b/perllib/BarnetTypes/char32.pm new file mode 100644 index 000000000..c5efdaabd --- /dev/null +++ b/perllib/BarnetTypes/char32.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char32; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char32 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char35.pm b/perllib/BarnetTypes/char35.pm new file mode 100644 index 000000000..40aef3d7a --- /dev/null +++ b/perllib/BarnetTypes/char35.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char35; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char35 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char40.pm b/perllib/BarnetTypes/char40.pm new file mode 100644 index 000000000..4402875c1 --- /dev/null +++ b/perllib/BarnetTypes/char40.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char40; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char40 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char5.pm b/perllib/BarnetTypes/char5.pm new file mode 100644 index 000000000..fed108437 --- /dev/null +++ b/perllib/BarnetTypes/char5.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char5; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char5 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char50.pm b/perllib/BarnetTypes/char50.pm new file mode 100644 index 000000000..34e5720d1 --- /dev/null +++ b/perllib/BarnetTypes/char50.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char50; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char50 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/numeric3.pm b/perllib/BarnetTypes/numeric3.pm new file mode 100644 index 000000000..c473d2866 --- /dev/null +++ b/perllib/BarnetTypes/numeric3.pm @@ -0,0 +1,65 @@ +package BarnetTypes::numeric3; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +numeric3 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/numeric6.pm b/perllib/BarnetTypes/numeric6.pm new file mode 100644 index 000000000..b5438c1aa --- /dev/null +++ b/perllib/BarnetTypes/numeric6.pm @@ -0,0 +1,65 @@ +package BarnetTypes::numeric6; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +numeric6 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index 83f77f401..198acade6 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -6,6 +6,7 @@ BEGIN { extends 'Catalyst::Controller'; } use POSIX qw(strftime strcoll); use Digest::MD5 qw(md5_hex); +use mySociety::EmailUtil qw(is_valid_email); =head1 NAME @@ -473,17 +474,33 @@ sub search_reports : Path('search_reports') { $c->model('DB')->schema->storage->sql_maker->quote_char( '"' ); $c->model('DB')->schema->storage->sql_maker->name_sep( '.' ); + my $query; + if (is_valid_email($search)) { + $query = [ + 'user.email' => { ilike => $like_search }, + ]; + } elsif ($search =~ /^id:(\d+)$/) { + $query = [ + 'me.id' => int($1), + ]; + } elsif ($search =~ /^area:(\d+)$/) { + $query = [ + 'me.areas' => { like => "%,$1,%" } + ]; + } else { + $query = [ + 'me.id' => $search_n, + 'user.email' => { ilike => $like_search }, + 'me.name' => { ilike => $like_search }, + title => { ilike => $like_search }, + detail => { ilike => $like_search }, + council => { like => $like_search }, + cobrand_data => { like => $like_search }, + ]; + } my $problems = $c->cobrand->problems->search( { - -or => [ - 'me.id' => $search_n, - 'user.email' => { ilike => $like_search }, - 'me.name' => { ilike => $like_search }, - title => { ilike => $like_search }, - detail => { ilike => $like_search }, - council => { like => $like_search }, - cobrand_data => { like => $like_search }, - ] + -or => $query, }, { prefetch => 'user', @@ -499,26 +516,44 @@ sub search_reports : Path('search_reports') { $c->stash->{edit_council_contacts} = 1 if ( grep {$_ eq 'councilcontacts'} keys %{$c->stash->{allowed_pages}}); - my $updates = $c->model('DB::Comment')->search( - { - -or => [ - 'me.id' => $search_n, - 'problem.id' => $search_n, - 'user.email' => { ilike => $like_search }, - 'me.name' => { ilike => $like_search }, - text => { ilike => $like_search }, - 'me.cobrand_data' => { ilike => $like_search }, - %{ $site_restriction }, - ] - }, - { - -select => [ 'me.*', qw/problem.council problem.state/ ], - prefetch => [qw/user problem/], - order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created'] - } - ); + if (is_valid_email($search)) { + $query = [ + 'user.email' => { ilike => $like_search }, + %{ $site_restriction }, + ]; + } elsif ($search =~ /^id:(\d+)$/) { + $query = [ + 'me.id' => int($1), + 'problem.id' => int($1), + %{ $site_restriction }, + ]; + } elsif ($search =~ /^area:(\d+)$/) { + $query = []; + } else { + $query = [ + 'me.id' => $search_n, + 'problem.id' => $search_n, + 'user.email' => { ilike => $like_search }, + 'me.name' => { ilike => $like_search }, + text => { ilike => $like_search }, + 'me.cobrand_data' => { ilike => $like_search }, + %{ $site_restriction }, + ]; + } - $c->stash->{updates} = [ $updates->all ]; + if (@$query) { + my $updates = $c->model('DB::Comment')->search( + { + -or => $query, + }, + { + -select => [ 'me.*', qw/problem.council problem.state/ ], + prefetch => [qw/user problem/], + order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created'] + } + ); + $c->stash->{updates} = [ $updates->all ]; + } # Switch quoting back off. See above for explanation of this. $c->model('DB')->schema->storage->sql_maker->quote_char( '' ); diff --git a/perllib/FixMyStreet/App/Controller/Photo.pm b/perllib/FixMyStreet/App/Controller/Photo.pm index c54bad238..5d5832b08 100644 --- a/perllib/FixMyStreet/App/Controller/Photo.pm +++ b/perllib/FixMyStreet/App/Controller/Photo.pm @@ -114,6 +114,7 @@ sub _shrink { $image->BlobToImage($photo); my $err = $image->Scale(geometry => "$size>"); throw Error::Simple("resize failed: $err") if "$err"; + $image->Strip(); my @blobs = $image->ImageToBlob(); undef $image; return $blobs[0]; @@ -129,6 +130,7 @@ sub _crop { throw Error::Simple("resize failed: $err") if "$err"; $err = $image->Extent( geometry => '90x60', gravity => 'Center' ); throw Error::Simple("resize failed: $err") if "$err"; + $image->Strip(); my @blobs = $image->ImageToBlob(); undef $image; return $blobs[0]; diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index af4cdd5aa..6d22a0556 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -78,6 +78,8 @@ partial =cut +use constant COUNCIL_ID_BARNET => 2489; + sub report_new : Path : Args(0) { my ( $self, $c ) = @_; @@ -545,9 +547,15 @@ sub setup_categories_and_councils : Private { } elsif ($first_council->{type} eq 'LBO') { $area_ids_to_list{ $first_council->{id} } = 1; + my @local_categories; + if ($first_council->{id} == COUNCIL_ID_BARNET) { + @local_categories = sort(keys %{ Utils::barnet_categories() }); # removed 'Other' option + } else { + @local_categories = sort keys %{ Utils::london_categories() } + } @category_options = ( _('-- Pick a category --'), - sort keys %{ Utils::london_categories() } + @local_categories ); $category_label = _('Category:'); @@ -733,8 +741,15 @@ sub process_report : Private { $councils = join( ',', @{ $c->stash->{area_ids_to_list} } ) || -1; $report->council( $councils ); - } elsif ( $first_council->{type} eq 'LBO') { + } elsif ( $first_council->{id} == COUNCIL_ID_BARNET ) { + unless ( exists Utils::barnet_categories()->{ $report->category } or $report->category eq 'Other') { + $c->stash->{field_errors}->{category} = _('Please choose a category'); + } + $report->council( $first_council->{id} ); + + } elsif ( $first_council->{type} eq 'LBO') { + unless ( Utils::london_categories()->{ $report->category } ) { $c->stash->{field_errors}->{category} = _('Please choose a category'); } diff --git a/perllib/FixMyStreet/DB.pm b/perllib/FixMyStreet/DB.pm index 18c8cc2ca..a1767abe9 100644 --- a/perllib/FixMyStreet/DB.pm +++ b/perllib/FixMyStreet/DB.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB; # Created by DBIx::Class::Schema::Loader @@ -10,8 +11,9 @@ use base 'DBIx::Class::Schema'; __PACKAGE__->load_namespaces; -# Created by DBIx::Class::Schema::Loader v0.07009 @ 2011-03-01 15:43:43 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tJZ+CpaAfZVPrctDXTZTuQ + +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CjFpUvon7KggFM7OF7VK/w # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/Abuse.pm b/perllib/FixMyStreet/DB/Result/Abuse.pm index b1cf9c1ed..e8e554afa 100644 --- a/perllib/FixMyStreet/DB/Result/Abuse.pm +++ b/perllib/FixMyStreet/DB/Result/Abuse.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Abuse; # Created by DBIx::Class::Schema::Loader @@ -7,15 +8,14 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("abuse"); __PACKAGE__->add_columns("email", { data_type => "text", is_nullable => 0 }); __PACKAGE__->set_primary_key("email"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IuTLiJSDZGLF/WX8q3iKIQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:PnQhGMx+ktK++3gWOMJBpQ # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/AdminLog.pm b/perllib/FixMyStreet/DB/Result/AdminLog.pm index da97950a0..ede786871 100644 --- a/perllib/FixMyStreet/DB/Result/AdminLog.pm +++ b/perllib/FixMyStreet/DB/Result/AdminLog.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AdminLog; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("admin_log"); __PACKAGE__->add_columns( @@ -36,8 +36,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7427CuN3/6IL2GxiQDoWUA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+NlSH8U+beRjBZl8CpqK9A # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Alert.pm b/perllib/FixMyStreet/DB/Result/Alert.pm index eddd98f37..ca9ad45c2 100644 --- a/perllib/FixMyStreet/DB/Result/Alert.pm +++ b/perllib/FixMyStreet/DB/Result/Alert.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Alert; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert"); __PACKAGE__->add_columns( @@ -24,6 +24,8 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 1 }, "parameter2", { data_type => "text", is_nullable => 1 }, + "user_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, "confirmed", { data_type => "integer", default_value => 0, is_nullable => 0 }, "lang", @@ -40,8 +42,6 @@ __PACKAGE__->add_columns( }, "whendisabled", { data_type => "timestamp", is_nullable => 1 }, - "user_id", - { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->belongs_to( @@ -50,22 +50,22 @@ __PACKAGE__->belongs_to( { ref => "alert_type" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); +__PACKAGE__->has_many( + "alerts_sent", + "FixMyStreet::DB::Result::AlertSent", + { "foreign.alert_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); __PACKAGE__->belongs_to( "user", "FixMyStreet::DB::Result::User", { id => "user_id" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); -__PACKAGE__->has_many( - "alert_sents", - "FixMyStreet::DB::Result::AlertSent", - { "foreign.alert_id" => "self.id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:d2TrE9UIZdXu3eXYJH0Zmw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vump36YxUO4FQi5Do6DwvA # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/AlertSent.pm b/perllib/FixMyStreet/DB/Result/AlertSent.pm index a901c2fde..a537c95cd 100644 --- a/perllib/FixMyStreet/DB/Result/AlertSent.pm +++ b/perllib/FixMyStreet/DB/Result/AlertSent.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AlertSent; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert_sent"); __PACKAGE__->add_columns( @@ -30,8 +30,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fTiWIoriQUvHpWc9PpFLvA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oN+36hDWJuc0hqkCW9BHOw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/AlertType.pm b/perllib/FixMyStreet/DB/Result/AlertType.pm index d23a2983d..3aa9677e0 100644 --- a/perllib/FixMyStreet/DB/Result/AlertType.pm +++ b/perllib/FixMyStreet/DB/Result/AlertType.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AlertType; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert_type"); __PACKAGE__->add_columns( @@ -47,8 +47,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+PKqo7IZ4MlM9ur4V2P9tA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:KDBYzNEAM5lPvZjb9cv22g # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Comment.pm b/perllib/FixMyStreet/DB/Result/Comment.pm index 195fe4019..5b45c63a8 100644 --- a/perllib/FixMyStreet/DB/Result/Comment.pm +++ b/perllib/FixMyStreet/DB/Result/Comment.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Comment; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("comment"); __PACKAGE__->add_columns( @@ -20,6 +20,10 @@ __PACKAGE__->add_columns( }, "problem_id", { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "user_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "anonymous", + { data_type => "boolean", is_nullable => 0 }, "name", { data_type => "text", is_nullable => 1 }, "website", @@ -48,30 +52,26 @@ __PACKAGE__->add_columns( { data_type => "boolean", is_nullable => 0 }, "mark_open", { data_type => "boolean", default_value => \"false", is_nullable => 0 }, - "user_id", - { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, - "anonymous", - { data_type => "boolean", is_nullable => 0 }, "problem_state", { data_type => "text", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->belongs_to( - "user", - "FixMyStreet::DB::Result::User", - { id => "user_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); -__PACKAGE__->belongs_to( "problem", "FixMyStreet::DB::Result::Problem", { id => "problem_id" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); +__PACKAGE__->belongs_to( + "user", + "FixMyStreet::DB::Result::User", + { id => "user_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-27 10:07:32 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ilLn3dlagg5COdpZDmzrVQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:E+96vo/AB0zz1jAEPj/OKw use DateTime::TimeZone; use Image::Size; diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm index 941e4e1bb..c32b75d0c 100644 --- a/perllib/FixMyStreet/DB/Result/Contact.pm +++ b/perllib/FixMyStreet/DB/Result/Contact.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Contact; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("contacts"); __PACKAGE__->add_columns( @@ -40,8 +40,9 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("contacts_area_id_category_idx", ["area_id", "category"]); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-08-01 10:07:59 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4y6yRz4rMN66pBpkzfJJhg + +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hyvU0bMWSFxEPAJT7wqM/Q __PACKAGE__->filter_column( extra => { diff --git a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm index 811a06b44..deb00fb95 100644 --- a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm +++ b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::ContactsHistory; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("contacts_history"); __PACKAGE__->add_columns( @@ -40,8 +40,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("contacts_history_id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9APvBwAOebG5g4MGxJuVKQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dN2ueIDoP3d/+Mg1UDqsMw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Open311conf.pm b/perllib/FixMyStreet/DB/Result/Open311conf.pm index 0a5784560..742a12ebd 100644 --- a/perllib/FixMyStreet/DB/Result/Open311conf.pm +++ b/perllib/FixMyStreet/DB/Result/Open311conf.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Open311conf; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("open311conf"); __PACKAGE__->add_columns( @@ -26,13 +26,15 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 1 }, "api_key", { data_type => "text", is_nullable => 1 }, + "send_method", + { data_type => "text", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("open311conf_area_id_key", ["area_id"]); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-07-29 18:09:25 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ryqCpvwjNtQrZm4I3s0hxg +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ClYnPB2gsKapnfHuco5d/w # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index ce7488703..192e539bd 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Problem; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("problem"); __PACKAGE__->add_columns( @@ -84,6 +84,14 @@ __PACKAGE__->add_columns( { data_type => "boolean", default_value => \"false", is_nullable => 0 }, "geocode", { data_type => "bytea", is_nullable => 1 }, + "send_fail_count", + { data_type => "integer", default_value => 0, is_nullable => 0 }, + "send_fail_reason", + { data_type => "text", is_nullable => 1 }, + "send_fail_timestamp", + { data_type => "timestamp", is_nullable => 1 }, + "send_method_used", + { data_type => "text", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->has_many( @@ -92,22 +100,22 @@ __PACKAGE__->has_many( { "foreign.problem_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -__PACKAGE__->belongs_to( - "user", - "FixMyStreet::DB::Result::User", - { id => "user_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); __PACKAGE__->has_many( "questionnaires", "FixMyStreet::DB::Result::Questionnaire", { "foreign.problem_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->belongs_to( + "user", + "FixMyStreet::DB::Result::User", + { id => "user_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-09-19 14:38:43 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:nq8Ufn/SEoDGSrrGlHIxag +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-05-03 16:05:20 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EvwI91Ot7SioQWqwnXRTBQ # Add fake relationship to stored procedure table __PACKAGE__->has_one( @@ -562,7 +570,50 @@ sub body { return $body; } +# returns true if the external id is the council's ref, i.e., useful to publish it +# (by way of an example, the barnet send method returns a useful reference when +# it succeeds, so that is the ref we should show on the problem report page). +# Future: this is installation-dependent so maybe should be using the contact +# data to determine if the external id is public on a council-by-council basis. +# Note: this only makes sense when called on a problem that has been sent! +sub can_display_external_id { + my $self = shift; + if ($self->external_id && $self->send_method_used eq 'barnet') { + return 1; + } + return 0; +} + # TODO Some/much of this could be moved to the template + +# either: +# "sent to council 3 mins later" +# "[Council name] ref: XYZ" +# or +# "sent to council 3 mins later, their ref: XYZ" +# +# Note: some silliness with pronouns and the adjacent comma mean this is +# being presented as a single string rather than two +sub processed_summary_string { + my ( $problem, $c ) = @_; + my ($duration_clause, $external_ref_clause); + if ($problem->whensent) { + $duration_clause = $problem->duration_string($c) + } + if ($problem->can_display_external_id) { + if ($duration_clause) { + $external_ref_clause = sprintf(_('their ref: %s'), $problem->external_id); + } else { + $external_ref_clause = sprintf(_('%s ref: %s'), $problem->external_body, $problem->external_id); + } + } + if ($duration_clause and $external_ref_clause) { + return "$duration_clause, $external_ref_clause" + } else { + return $duration_clause || $external_ref_clause + } +} + sub duration_string { my ( $problem, $c ) = @_; my $body = $problem->body( $c ); diff --git a/perllib/FixMyStreet/DB/Result/Questionnaire.pm b/perllib/FixMyStreet/DB/Result/Questionnaire.pm index cc4ec300b..b6791603a 100644 --- a/perllib/FixMyStreet/DB/Result/Questionnaire.pm +++ b/perllib/FixMyStreet/DB/Result/Questionnaire.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Questionnaire; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("questionnaire"); __PACKAGE__->add_columns( @@ -40,8 +40,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QNFqqCg6J4SFlg4zwm7TWw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:NGlSRjoBpDoIvK3EueqN6Q use DateTime::TimeZone; diff --git a/perllib/FixMyStreet/DB/Result/Secret.pm b/perllib/FixMyStreet/DB/Result/Secret.pm index 8a1fa671d..449dfec0e 100644 --- a/perllib/FixMyStreet/DB/Result/Secret.pm +++ b/perllib/FixMyStreet/DB/Result/Secret.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Secret; # Created by DBIx::Class::Schema::Loader @@ -7,14 +8,13 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("secret"); __PACKAGE__->add_columns("secret", { data_type => "text", is_nullable => 0 }); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MfqW1K0aFtwpa/1c/UwHjg +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9XiWSKJ1PD3LSYjrSA3drw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Session.pm b/perllib/FixMyStreet/DB/Result/Session.pm index 9d5d509dc..4713c99eb 100644 --- a/perllib/FixMyStreet/DB/Result/Session.pm +++ b/perllib/FixMyStreet/DB/Result/Session.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Session; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("sessions"); __PACKAGE__->add_columns( @@ -21,8 +21,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TagSQOXnDttkwfJ7oDH8Yw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MVmCn4gLQWXTDIIaDHiVmA # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/Token.pm b/perllib/FixMyStreet/DB/Result/Token.pm index 3a900858d..b223ada3a 100644 --- a/perllib/FixMyStreet/DB/Result/Token.pm +++ b/perllib/FixMyStreet/DB/Result/Token.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Token; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("token"); __PACKAGE__->add_columns( @@ -27,8 +27,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("scope", "token"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:frl+na3HrIzGw9D1t891nA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+LLZ8P5GXqPetuGyrra2vw # Trying not to use this # use mySociety::DBHandle qw(dbh); diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm index 56d726a8d..e13d88b88 100644 --- a/perllib/FixMyStreet/DB/Result/User.pm +++ b/perllib/FixMyStreet/DB/Result/User.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::User; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("users"); __PACKAGE__->add_columns( @@ -53,8 +53,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-27 10:25:21 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9IHuqRTcHZCqJeBAaiQxzw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tM1LUGrqDeQnF4BDgnYXGQ __PACKAGE__->add_columns( "password" => { diff --git a/perllib/FixMyStreet/Geocode/Bing.pm b/perllib/FixMyStreet/Geocode/Bing.pm index 4ba00dbfe..a24f7c102 100644 --- a/perllib/FixMyStreet/Geocode/Bing.pm +++ b/perllib/FixMyStreet/Geocode/Bing.pm @@ -69,7 +69,14 @@ sub string { ); ( $latitude, $longitude ) = @{ $_->{point}->{coordinates} }; - push (@$error, { address => $address, latitude => $latitude, longitude => $longitude }); + # These co-ordinates are output as query parameters in a URL, make sure they have a "." + mySociety::Locale::in_gb_locale { + push (@$error, { + address => $address, + latitude => sprintf('%0.6f', $latitude), + longitude => sprintf('%0.6f', $longitude) + }); + }; push (@valid_locations, $_); } diff --git a/perllib/FixMyStreet/Geocode/Google.pm b/perllib/FixMyStreet/Geocode/Google.pm index 83b36dbcd..1ab347066 100644 --- a/perllib/FixMyStreet/Geocode/Google.pm +++ b/perllib/FixMyStreet/Geocode/Google.pm @@ -75,7 +75,14 @@ sub string { my $address = $_->{address}; next unless $c->cobrand->geocoded_string_check( $address ); ( $longitude, $latitude ) = @{ $_->{Point}->{coordinates} }; - push (@$error, { address => $address, latitude => $latitude, longitude => $longitude }); + # These co-ordinates are output as query parameters in a URL, make sure they have a "." + mySociety::Locale::in_gb_locale { + push (@$error, { + address => $address, + latitude => sprintf('%0.6f', $latitude), + longitude => sprintf('%0.6f', $longitude) + }); + }; push (@valid_locations, $_); } return { latitude => $latitude, longitude => $longitude } if scalar @valid_locations == 1; diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm index a8cbc98f2..7daf01f56 100644 --- a/perllib/FixMyStreet/TestMech.pm +++ b/perllib/FixMyStreet/TestMech.pm @@ -151,7 +151,7 @@ sub delete_user { ok( $p->delete, "delete problem " . $p->title ); } for my $a ( $user->alerts ) { - $a->alert_sents->delete; + $a->alerts_sent->delete; ok( $a->delete, "delete alert " . $a->alert_type ); } ok( $_->delete, "delete comment " . $_->text ) for $user->comments; diff --git a/perllib/SOAP/WSDL/Serializer/XSD.pm b/perllib/SOAP/WSDL/Serializer/XSD.pm new file mode 100644 index 000000000..f233f74e7 --- /dev/null +++ b/perllib/SOAP/WSDL/Serializer/XSD.pm @@ -0,0 +1,148 @@ +#!/usr/bin/perl -w +package SOAP::WSDL::Serializer::XSD; +use strict; +use warnings; +use Class::Std::Fast::Storable; +use Scalar::Util qw(blessed); + +use version; our $VERSION = qv('2.00.10'); + +use SOAP::WSDL::Factory::Serializer; + +my $SOAP_NS = 'http://schemas.xmlsoap.org/soap/envelope/'; +my $XML_INSTANCE_NS = 'http://www.w3.org/2001/XMLSchema-instance'; + +sub serialize { + my ($self, $args_of_ref) = @_; + + my $opt = $args_of_ref->{ options }; + + if (not $opt->{ namespace }->{ $SOAP_NS }) + { + $opt->{ namespace }->{ $SOAP_NS } = 'SOAP-ENV'; + } + + if (not $opt->{ namespace }->{ $XML_INSTANCE_NS }) + { + $opt->{ namespace }->{ $XML_INSTANCE_NS } = 'xsi'; + } + + my $soap_prefix = $opt->{ namespace }->{ $SOAP_NS }; + + # envelope start with namespaces + my $xml = "<$soap_prefix\:Envelope "; + + while (my ($uri, $prefix) = each %{ $opt->{ namespace } }) + { + $xml .= "xmlns:$prefix=\"$uri\" "; + } + # + # add namespace for user-supplied prefix if needed + $xml .= "xmlns:$opt->{prefix}=\"" . $args_of_ref->{ body }->get_xmlns() . "\" " + if $opt->{prefix}; + + # TODO insert encoding + $xml.='>'; + $xml .= $self->serialize_header($args_of_ref->{ method }, $args_of_ref->{ header }, $opt); + $xml .= $self->serialize_body($args_of_ref->{ method }, $args_of_ref->{ body }, $opt); + $xml .= '</' . $soap_prefix .':Envelope>'; + return $xml; +} + +sub serialize_header { + my ($self, $method, $data, $opt) = @_; + + # header is optional. Leave out if there's no header data + return q{} if not $data; + return join ( q{}, + "<$opt->{ namespace }->{ $SOAP_NS }\:Header>", + blessed $data ? $data->serialize_qualified : (), + "</$opt->{ namespace }->{ $SOAP_NS }\:Header>", + ); +} + +sub serialize_body { + my ($self, $method, $data, $opt) = @_; + + # TODO This one wipes out the old class' XML name globally + # Fix in some more appropriate place... + # $data->__set_name("$opt->{prefix}:" . $data->__get_name() ) if $opt->{prefix}; + # fix: -------v from https://rt.cpan.org/Public/Bug/Display.html?id=38035 + if ( $opt->{prefix} ) { + my $body_name = $data->__get_name(); + $body_name =~ s/.+://; + $data->__set_name($opt->{prefix} . ":" . $body_name ); + } + # fix end ----^ + + # Body is NOT optional. Serialize to empty body + # if we have no data. + return join ( q{}, + "<$opt->{ namespace }->{ $SOAP_NS }\:Body>", + defined $data + ? ref $data eq 'ARRAY' + ? join q{}, map { blessed $_ ? $_->serialize_qualified() : () } @{ $data } + : blessed $data + ? $opt->{prefix} + ? $data->serialize() + : $data->serialize_qualified() + : () + : (), + "</$opt->{ namespace }->{ $SOAP_NS }\:Body>", + ); +} + +__END__ + +=pod + +=head1 NAME + +SOAP:WSDL::Serializer::XSD - Serializer for SOAP::WSDL::XSD::Typelib:: objects + +=head1 DESCRIPTION + +This is the default serializer for SOAP::WSDL::Client and Interface classes +generated by SOAP::WSDL + +It may be used as a template for creating custom serializers. + +See L<SOAP::WSDL::Factory::Serializer|SOAP::WSDL::Factory::Serializer> for +details on that. + +=head1 METHODS + +=head2 serialize + +Creates a SOAP envelope based on the body and header arguments passed. + +Sets SOAP namespaces. + +=head2 serialize_body + +Serializes a message body to XML + +=head2 serialize_header + +Serializes a message header to XML + +=head1 LICENSE AND COPYRIGHT + +Copyright (c) 2007 Martin Kutter. All rights reserved. + +This file is part of SOAP-WSDL. You may distribute/modify it under +the same terms as perl itself + +=head1 AUTHOR + +Martin Kutter E<lt>martin.kutter fen-net.deE<gt> + +=head1 REPOSITORY INFORMATION + + $Rev: 851 $ + $LastChangedBy: kutterma $ + $Id: XSD.pm 851 2009-05-15 22:45:18Z kutterma $ + $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Serializer/XSD.pm $ + +=cut + diff --git a/perllib/Utils.pm b/perllib/Utils.pm index 4e64836c6..6a47fd17d 100644 --- a/perllib/Utils.pm +++ b/perllib/Utils.pm @@ -140,6 +140,47 @@ sub london_categories { }; } +sub barnet_categories { + # The values here are KBIDs from Barnet's system: see bin/send-reports for formatting + if (mySociety::Config::get('STAGING_SITE')) { # note staging site must use different KBIDs + return { + 'Blocked drain' => 255, # Gullies-Blocked + 'Dead animal' => 286, # Animals-Dead-Removal + 'Dog fouling' => 288, # Dog Fouling-Clear + 'Fly tipping' => 347, # Fly tipping-Clear + 'Graffiti' => 292, # Graffiti-Removal + 'Litter, accumulated' => 349, # Accumulated Litter + 'Litter, overflowing bins' => 205, # Litter Bins-Overflowing + 'Pavements' => 195, # Pavements-Damaged/Cracked + 'Pothole' => 204, # Pothole + 'Roads Signs' => 432, # Roads Signs - Maintenance + 'Street Lighting' => 251, # Street Lighting + 'Traffic Lights' => 103, # Traffic Lights + } + } else { + return { + 'Abandoned Vehicle' => 468, + 'Accumulated Litter' => 349, + 'Dog Bin' => 203, + 'Dog Fouling' => 288, + 'Drain or Gully' => 256, + 'Fly Posting' => 465, + 'Fly Tipping' => 449, + 'Graffiti' => 292, + 'Gritting' => 200, + 'Highways' => 186, + 'Litter Bin Overflowing' => 205, + 'Manhole Cover' => 417, + 'Overhanging Foliage' => 421, + 'Pavement Damaged/Cracked' => 195, + 'Pothole' => 204, + 'Road Sign' => 80, + 'Roadworks' => 246, + 'Street Lighting' => 251, + }; + } +} + =head2 trim_text my $text = trim_text( $text_to_trim ); diff --git a/t/app/controller/alert_new.t b/t/app/controller/alert_new.t index 5ea73625a..3a4c2ef81 100644 --- a/t/app/controller/alert_new.t +++ b/t/app/controller/alert_new.t @@ -452,7 +452,7 @@ subtest "Test normal alert signups and that alerts are sent" => sub { $count++ if $_->body =~ /The following updates have been left on this problem:/; $count++ if $_->body =~ /The following new problems have been reported to City of\s*Edinburgh Council:/; $count++ if $_->body =~ /The following nearby problems have been added:/; - $count++ if $_->body =~ / -\s+Testing, EH1 1BB/; + $count++ if $_->body =~ /\s+-\s+Testing,\s+EH1\s+1BB/; } is $count, 5, 'Five emails with the right things in them'; diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t index ab129b4e7..67ddc10aa 100644 --- a/t/app/model/alert_type.t +++ b/t/app/model/alert_type.t @@ -202,7 +202,7 @@ for my $test ( (my $title = $report->title) =~ s/ /\\s+/; my $body = $email->body; - like $body, qr#report/$report_id - $title, $pc#, 'email contains expected postcode'; + like $body, qr#report/$report_id\s+-\s+$title,\s+$pc#, 'email contains expected postcode'; }; } diff --git a/templates/web/default/admin/council_contacts.html b/templates/web/default/admin/council_contacts.html index acfec3ed4..da7223aa6 100644 --- a/templates/web/default/admin/council_contacts.html +++ b/templates/web/default/admin/council_contacts.html @@ -10,7 +10,11 @@ [% IF example_pc %] <a href="[% c.uri_for_email( '/around', { pc => example_pc } ) %]">[% tprintf( loc('Example postcode %s'), example_pc ) | html %]</a> | [% END %] +[% IF c.cobrand.moniker == 'emptyhomes' %] +<a href="[% c.uri_for( 'search_reports', search => 'area:' _ area_id ) %]">[% loc('List all reported problems' ) %]</a> +[% ELSE %] <a href="[% c.uri_for_email( '/reports/' _ area_id ) %]">[% loc('List all reported problems' ) %]</a> +[% END %] <a href="[% c.uri_for( 'council_contacts', area_id, { text => 1 } ) %]">[% loc('Text only version') %]</a> </p> diff --git a/templates/web/default/admin/search_users.html b/templates/web/default/admin/search_users.html index b4fa2c2da..18c964dfe 100644 --- a/templates/web/default/admin/search_users.html +++ b/templates/web/default/admin/search_users.html @@ -18,7 +18,7 @@ [%- FOREACH user IN users %] <tr> <td>[% PROCESS value_or_nbsp value=user.name %]</td> - <td>[% PROCESS value_or_nbsp value=user.email %]</td> + <td><a href="[% c.uri_for( 'search_reports', search => user.email ) %]">[% PROCESS value_or_nbsp value=user.email %]</a></td> <td>[% PROCESS value_or_nbsp value=user.from_council %]</td> <td>[% user.flagged ? loc('Yes') : ' ' %]</td> <td><a href="[% c.uri_for( 'user_edit', user.id ) %]">[% loc('Edit') %]</a></td> diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html index e74ae7b70..c87f93994 100644 --- a/templates/web/default/common_header_tags.html +++ b/templates/web/default/common_header_tags.html @@ -3,7 +3,7 @@ <script type="text/javascript" src="/js/validation_strings.[% lang_code %].js?[% Math.int( date.now / 3600 ) %]"></script> -<script type="text/javascript" src="/jslib/jquery-1.7.0.min.js"></script> +<script type="text/javascript" src="/jslib/jquery-1.7.2.min.js"></script> <script src="[% version('/js/jquery.validate.min.js') %]" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" src="[% version('/js/geo.min.js') %]"></script> diff --git a/templates/web/default/js/validation_strings.html b/templates/web/default/js/validation_strings.html index 70a0ed41c..718d10d56 100644 --- a/templates/web/default/js/validation_strings.html +++ b/templates/web/default/js/validation_strings.html @@ -1,18 +1,18 @@ validation_strings = { - update: '[% loc('Please enter a message') %]', - title: '[% loc('Please enter a subject') %]', - detail: '[% loc('Please enter some details') %]', + update: '[% loc('Please enter a message') | replace("'", "\\'") %]', + title: '[% loc('Please enter a subject') | replace("'", "\\'") %]', + detail: '[% loc('Please enter some details') | replace("'", "\\'") %]', name: { - required: '[% loc('Please enter your name') %]', - validName: '[% loc('Please enter your full name, councils need this information – if you do not wish your name to be shown on the site, untick the box below') %]' + required: '[% loc('Please enter your name') | replace("'", "\\'") %]', + validName: '[% loc('Please enter your full name, councils need this information – if you do not wish your name to be shown on the site, untick the box below') | replace("'", "\\'") %]' }, - category: '[% loc('Please choose a category') %]', + category: '[% loc('Please choose a category') | replace("'", "\\'") %]', rznvy: { - required: '[% loc('Please enter your email') %]', - email: '[% loc('Please enter a valid email') %]' + required: '[% loc('Please enter your email') | replace("'", "\\'") %]', + email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]' }, email: { - required: '[% loc('Please enter your email') %]', - email: '[% loc('Please enter a valid email') %]' + required: '[% loc('Please enter your email') | replace("'", "\\'") %]', + email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]' } }; diff --git a/templates/web/default/report/_main.html b/templates/web/default/report/_main.html index 8cc1efec2..3a9e60e7b 100644 --- a/templates/web/default/report/_main.html +++ b/templates/web/default/report/_main.html @@ -2,9 +2,11 @@ <p><em>[% problem.meta_line(c) | html %] [% IF problem.council %] - [% IF problem.whensent %] - <small class="council_sent_info"><br>[% problem.duration_string(c) %]</small> - [% END %] + [% IF problem.whensent || problem.can_display_external_id %] + <small class="council_sent_info"><br> + [% problem.processed_summary_string(c) %] + </small> + [% END %] [% ELSE %] <br><small>[% loc('Not reported to council') %]</small> [% END %] diff --git a/templates/web/fixmystreet/header.html b/templates/web/fixmystreet/header.html index cfd13415d..4b1a40f71 100644 --- a/templates/web/fixmystreet/header.html +++ b/templates/web/fixmystreet/header.html @@ -13,7 +13,7 @@ <link rel="stylesheet" href="[% version('/cobrands/fixmystreet/base.css') %]"> <link rel="stylesheet" href="[% version('/cobrands/fixmystreet/layout.css') %]" media="(min-width:48em)"> - <link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]"> + [% extra_css %] <!--[if (lt IE 9) & (!IEMobile)]> <link rel="stylesheet" href="[% version('/cobrands/fixmystreet/layout.css') %]"> <![endif]--> @@ -21,7 +21,7 @@ <script src="[% version('/js/modernizr.custom.76759.js') %]" charset="utf-8"></script> <script src="[% version('/cobrands/fixmystreet/position_map.js') %]" charset="utf-8"></script> [% INCLUDE 'common_header_tags.html', js_override = '/cobrands/fixmystreet/fixmystreet.js' %] - <script src="[% version('/js/fancybox/jquery.fancybox-1.3.4.pack.js') %]" charset="utf-8"></script> + [% extra_js %] [% IF c.req.uri.host == 'osm.fixmystreet.com' %] <link rel="canonical" href="http://www.fixmystreet.com[% c.req.uri.path_query %]"> diff --git a/templates/web/fixmystreet/questionnaire/index.html b/templates/web/fixmystreet/questionnaire/index.html index 3b23c81cd..ded95df04 100644 --- a/templates/web/fixmystreet/questionnaire/index.html +++ b/templates/web/fixmystreet/questionnaire/index.html @@ -1,4 +1,5 @@ [% + PROCESS "report/photo-js.html"; PROCESS "maps/${map.type}.html"; INCLUDE 'header.html', title = loc('Questionnaire'), bodyclass = 'mappage' %] diff --git a/templates/web/fixmystreet/report/_main.html b/templates/web/fixmystreet/report/_main.html index 762aa10f7..7ceb1f6a5 100644 --- a/templates/web/fixmystreet/report/_main.html +++ b/templates/web/fixmystreet/report/_main.html @@ -4,8 +4,10 @@ <p><em> [% problem.meta_line(c) | html %] [% IF problem.council %] - [% IF problem.whensent %] - <small class="council_sent_info"><br>[% problem.duration_string(c) %]</small> + [% IF problem.whensent || problem.can_display_external_id %] + <small class="council_sent_info"><br> + [% problem.processed_summary_string(c) %] + </small> [% END %] [% ELSE %] <br><small>[% loc('Not reported to council') %]</small> diff --git a/templates/web/fixmystreet/report/display.html b/templates/web/fixmystreet/report/display.html index 6db70f5ad..c0d89973c 100644 --- a/templates/web/fixmystreet/report/display.html +++ b/templates/web/fixmystreet/report/display.html @@ -1,4 +1,5 @@ [% + PROCESS "report/photo-js.html"; PROCESS "maps/${map.type}.html"; problem_title = problem.title _ ' - ' _ loc('Viewing a problem'); diff --git a/templates/web/fixmystreet/report/new/councils_text_all.html b/templates/web/fixmystreet/report/new/councils_text_all.html index fb10ec4fd..fe2d5be12 100644 --- a/templates/web/fixmystreet/report/new/councils_text_all.html +++ b/templates/web/fixmystreet/report/new/councils_text_all.html @@ -1,5 +1,5 @@ <p> -[% IF all_councils.${area_ids_to_list.0}.type == 'LBO' %] +[% IF area_ids_to_list.0 != 2489 && all_councils.${area_ids_to_list.0}.type == 'LBO' %] [% tprintf( loc('All the information you provide here will be sent to <strong>%s</strong> or a relevant local body such as <strong>TfL</strong>, via the London Report-It system.'), @@ -16,4 +16,4 @@ [% END %] [% loc('The subject and details of the problem will be public, plus your name if you give us permission.') %] -</p>
\ No newline at end of file +</p> diff --git a/templates/web/fixmystreet/report/photo-js.html b/templates/web/fixmystreet/report/photo-js.html new file mode 100644 index 000000000..df0e2f92d --- /dev/null +++ b/templates/web/fixmystreet/report/photo-js.html @@ -0,0 +1,8 @@ +[% IF c.cobrand.allow_photo_display %] + [% extra_css = BLOCK %] + <link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]"> + [% END %] + [% extra_js = BLOCK %] + <script src="[% version('/js/fancybox/jquery.fancybox-1.3.4.pack.js') %]" charset="utf-8"></script> + [% END %] +[% END %] diff --git a/templates/web/fixmystreet/static/for_councils.html b/templates/web/fixmystreet/static/for_councils.html index 2e83c7c6c..1e1789df7 100644 --- a/templates/web/fixmystreet/static/for_councils.html +++ b/templates/web/fixmystreet/static/for_councils.html @@ -38,8 +38,6 @@ forty local authorities in the UK. We understand the challenges that councils face in channel shift, and will bring our passion and expertise to support your journey. -<p><a href="http://www.mysociety.org/wp/wp-content/uploads/2012/02/FixMyStreet_for_councils_2012.pdf">FixMyStreet for Councils brochure</a> - <p>Have questions? Read our <a href="/for-councils/faq">Questions and Answers for Councils</a> or get in touch at <a href="mailto:hello@mysociety.org">hello@mysociety.org</a>. diff --git a/templates/web/fixmystreet/static/for_councils_faq.html b/templates/web/fixmystreet/static/for_councils_faq.html index 16c7d5cfe..d45166ed1 100644 --- a/templates/web/fixmystreet/static/for_councils_faq.html +++ b/templates/web/fixmystreet/static/for_councils_faq.html @@ -131,15 +131,22 @@ href="mailto:hello@mysociety.org">let us know</a>. <dd> <ul> -<li>The front end product costs £3,500 in year one, reducing to £1,500 per annum in future years. -<li>The mobile web version costs £3,000 in year one and £1,000 per annum subsequently. -<li>Back-end integration costs depend on the complexity of your systems. Prices start at £3,500 in year one, then £1,500 per annum. +<li>The front end product costs £3,500 in year one, reducing to £2,000 per annum in future years. +<li>Web and mobile-optimised site together cost £5,500 in year one and £3,000 per annum subsequently. +<li>Web, mobile-optimised site, and iPhone and Android apps cost £9,500 in year one, then £4,000 per annum. </ul> +<p>We also offer fixed price for integration with Microsoft, Oracle and +Lagan CRM systems, at £5,500 in year one, then £2,000 per annum +thereafter. Integration with other CRM or back-office systems costs +£6,500 in year one, + +<p>These prices exclude VAT and assume standard FixMyStreet for councils +product - if you need further customisations please get in touch with +us for a quote. + <p>The prices are all-inclusive, covering installation, updates, unlimited -problem reports and user training. There are no hidden fees. Please see <a -href="http://www.mysociety.org/wp/wp-content/uploads/2012/02/FixMyStreet_for_councils_2012.pdf">our -brochure</a> for more detail on what’s included. +problem reports and user training. There are no hidden fees. <p>There’s no commitment beyond the first 12 months, so you won’t be locked into a lengthy contract. diff --git a/templates/web/fixmystreet/static/privacy.html b/templates/web/fixmystreet/static/privacy.html index 17480f68b..933afe1e5 100755 --- a/templates/web/fixmystreet/static/privacy.html +++ b/templates/web/fixmystreet/static/privacy.html @@ -3,9 +3,9 @@ <div class="sticky-sidebar"> <aside> <ul class="plain-list"> - <li><a href="#faq">Frequently Asked Questions</a></li> - <li><a href="#practical">Practical Questions</a></li> - <li><a href="#organisation">Organisation Questions</a></li> + <li><a href="/faq#faq">Frequently Asked Questions</a></li> + <li><a href="/faq#practical">Practical Questions</a></li> + <li><a href="/faq#organisation">Organisation Questions</a></li> <li><strong>Privacy and cookies</strong></li> </ul> </aside> diff --git a/urls.txt b/urls.txt deleted file mode 100644 index 5c9b25f34..000000000 --- a/urls.txt +++ /dev/null @@ -1,12 +0,0 @@ -This is a list of some of the urls currently served: - -homepage: / -postcode search: /?pc=SW1A+1AA -placename: /?pc=Westminster -street (ambiguous): /?pc=St+Margaret+St -street (exact): /?pc=St+Margaret+St%2c+Westminster%2c+London+SW1A+2 - -all reports: /reports -council reports: /reports/Aberdeen -individual report: /report/173526 - diff --git a/web/cobrands/fixmystreet/_base.scss b/web/cobrands/fixmystreet/_base.scss index 4202564f7..644b015b5 100644 --- a/web/cobrands/fixmystreet/_base.scss +++ b/web/cobrands/fixmystreet/_base.scss @@ -1,7 +1,7 @@ /* HEADINGS and TYPOGRAPHY */ body { - font-family: 'MuseoSans', 'Helvetica', 'Arial', sans-serif; + font-family: MuseoSans, Helmet, Freesans, sans-serif; margin:0; font-size:1em; line-height:1.5; @@ -17,14 +17,14 @@ p { } small{ - font-family: 'helvetica', 'arial',sans-serif; + font-family: Helmet, Freesans, sans-serif; font-style: italic; font-size: 0.8125em; line-height: 1.2307em; } h1 { - font-family:'Museo300-display', 'Helvetica', 'Arial', sans-serif; + font-family: 'Museo300-display', MuseoSans, Helmet, Freesans, sans-serif; font-size: 2em; line-height: 1em; font-weight: normal; @@ -43,7 +43,7 @@ h1#reports_heading a { } h2 { - font-family:'Museo300-display', 'Helvetica', 'Arial', sans-serif; + font-family:'Museo300-display', MuseoSans, Helmet, Freesans, sans-serif; font-size: 1.5em; /*24px*/ line-height: 1.3333em; /*32px*/ font-weight: normal; @@ -56,12 +56,12 @@ h3 { line-height: 1.20em; margin-top: 1.2em; margin-bottom: 0.8em; - font-weight: bold + font-weight: normal; } h4 { font-size: 1em; - font-weight: bold; + font-weight: normal; margin-bottom: 1em; } @@ -105,7 +105,7 @@ ol.big-numbers { color:#ccc; line-height:1; font: { - family: 'helvetica', 'arial', sans-serif; + family: Helmet, Freesans, sans-serif; weight:bold; size:2.5em; } @@ -151,7 +151,10 @@ select, input, textarea { font-size: 99%; max-width: 95%; } - +// To deal with bug from drop-down being wider than holder +select { + width: 100%; +} // links a, @@ -177,14 +180,14 @@ a:visited { margin-bottom: 0px; } .meta-2{ - font-family: 'helvetica', 'arial',sans-serif; + font-family: Helmet, Freesans, sans-serif; color:#666666; font-style: italic; font-size: 0.75em; } h4.static{ - font-family: 'helvetica', 'arial',sans-serif; + font-family: Helmet, Freesans, sans-serif; text-transform: uppercase; font-size: 0.875em; line-height: 1.71428em; @@ -256,7 +259,7 @@ textarea { display: block; font-size: 1em; line-height: 1.5em; - font-family: 'helvetica', 'arial', sans-serif; + font-family: Helmet, Freesans, sans-serif; min-height:8em; } @@ -379,7 +382,7 @@ p.label-valid { // Padding creates page margins on mobile .container{ - padding: 0 1em; + padding: 0 1em 1em; } // Use full width to reverse .container margins @@ -402,7 +405,7 @@ p.label-valid { width: 175px; height: 40px; top: 0.4em; - background: url('/cobrands/fixmystreet/images/sprite.png') -3px -3px no-repeat; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK8AAAAoCAYAAACIJ6oVAAAACW9GRnMAAAADAAAAAwB3k5ejAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAF5AAAQZgCwCYXlAAAABmJLR0QA/wD/AP+gvaeTAAAag0lEQVR42u1cB1RWx7YeBBW7YAOViL0bNSomdsWADVsQbEHFiAUUMYmiokEUWzQiiQ0VNSC2gFiJmthbiF1jwxaNGr0pKra8t1be3r/frLc99/zwo7nv3rzFWWuv/z9zZs6ZM/PtPd/eM3OUyj1yj9wj98g9co/cI/fIPXKP3MPaYQfJY6Po/LlH7vFvBa09ST6SIiROJM7ZiBPy5kPZXBDnHv8W0OYHGCuSeJB4kniReFsRL+TxQBkngDhPbpPmHv8XRx4AjoFXiaQFSUDXrl2XxMfHp585c+b2nyZHZmbmM742b968gx4eHvO5DElzkgokhXKtcO7xrz7sAbQKAF7AoEGDEk+ePPnznzk8tm3bdhUg7kFSE5QiJ1bY7jXkrxyB/pX5/4o2yD0EcKuQdHdzc5t14MCBm3++5rFy5cqjdL9AKMMbJAWzAbB0DLlODlmIPeSvdBrNnFNr97LmyL4OsOQ97bNoA/nuf1eA/yX1zCOA69uxY8eEhw8f/mEGxrt37z5OS0vLWLZs2QmS4yzr168/d/Xq1V+sAfjKlSu/kjLMpHv7AMD5TCprJ7h2XvDtAqgXS2EhOq0g8jgiv5Z8ooNtbRj5fAfcI5+VexkBlhf5XvXZRsXVz3fEOxrbQL+7I/LlNVFio2Lb/YeBNqt62uXkRvlAFboDuP9lQgOudenSZRmsqI+Js+bj6en58erVq/cT/31uLH/p0qUHAHALUAj7LJzEQuDcpUlcScqRlBfC52VJypCUElEOluIkRdG5OYl4GJ9fVNyrENKlpcsD0DgiulIczy+G/DmNtkjFLYj7lCRxsfL+Lnh3JwC6gEGBHYVS531FZfpXWVppoMzqabOy2aMBmjNHNVrcCxcuPPL29l4D0LYkqQzQlICUhJSB5W5ZtWrV4KNHj14xs8C4T010cB4rIbkycBbrkLyF6EVTIU1IGpHUJ6lFUg31qowoR3nUqbCNIJLALQqleQP3egPnRXHdwQAyZ4CpEp5fAfmLCMDb2QjcfKgzg9Id79YQ7/82yTv49UC71EWblxdALo46lUT/FLeifLZSjFelIXZZjFTaQBQX+HFGGxdA22YLYDvciBs+4NSpUy85ZhcvXnxUtmzZhXTNTzhdjrh5ATxMx3eLocNKIK9fbGzsXiOAU1JSTsKJqyDogx1AUQgdX33RRDX84EqV8G2cWrdzkfpqx0KVzML/dy5WX1H6+n3LVdKsUPUR5W/DFn3BeBV8ap2KS5hmUZBK6NBC2TSGUXHY0tc4s0EtObFWLW3R0HLvGkgvIqhBQbwrP6dB0gwVfixJLY+brIYivwuAmF1H2IkITxGU4/LvvPnmm73IZ1hAo9axe/fu3dBtyP8vX76cnpSUFPPWW291pbyNAXStwNXQBzWggC7oH0dh3ewNw7Y138HeRPKYgNnOCl+3N3B3R9TFBW3H9ayNOruhTQvZAmBtdVtOnz59i9HiAri+JFVFRxhjv+1I2nIHwmLqYZTL+JoBGFGI5riPvei8orB0jffHq9V/nlR/2iLV3dUQKtNrz1K1ls/TE9UKWGU3aLcjGi6PlUbOJxWHFUHfmxUEI051XC8M4DrBOjauV035PU9XmSJ/M1jEElByBxM+Z2diccsAhG0GDx4c/vTp0yfZOcTPnj17PGnSpEjE2LmeLVJTU2fytT/++OPR2rVrxwIc5dAWBcVQbSb5BdfXfkdBIVnxbAcDHSggRPP34qhL7QEDBrz3+PHju1xXUsY0KGEVWOKCot2scl0GYYDkqcx5GzZsuAoWVwL3pTAaNfCqmJiY/dOmTdtepUqVkRjGCgsrymX9jBSCoxiIA1cUw1l+vJgltuzdTI0a5quWaBD17ahS+3dWyQFd1PoAH7V2YFeV9Mte9RtfG9lbxVKZYUsi1PKbX6sf1sxU8zDEVhVDfgHhTDkYnKLCAFpF0BJf/dzf96t/QIGbAqzOqCdb4noknbZ+rjbr/Fti1Rb4BA0wnBcXzzZyZiNVYOvTysvLa/QTOnIS1RkzZswcKtufhQGt02/dunUOxqUOlLm0GKpL4rlaSor3K442KQUr6WrCsx0NQC8oRuNSUMYy4t6l0CZcl3a7du3aIN/Bx8cnCLSokhjlTWlXHjyo6cyZM1PlTRYvXnxWcFMJXEsYjfNLsGdkZPzm7u4+AR1WWHQM/6/JjpzRiYP19YCV1p1YHABi5ehHMlGDgv4vImFQstMXTTLtYqq6xtdG+CkeIUJJRpAMIunJIEAjVUCjlxDOV0HhlDmjgSvAWncK7afmScv+ebj6ktOhnOVxvyp6AufXfS+UiOXgCnUcINLWuhyeXUTwOQfh7GmOXVkrzqFDh743gvO77777nQzFtfnz51/ZvXv3P8Xdjx07dpHKch9EyHTqmwy0ZRu8n6YTtdA+daGEdZFWHe9WFXnrgXc3wm8dXC8HQBaDOKNdKkAJ6+J59fFfP/dNKFP/DRs27JJ1DQkJ+ZzxBT5fDm2W18z62kMTOh0+fPiatLrly5efi8Z3FhaKh/NuNCQdN/Dih+XKlfuCrnVFHkcxdORHx7XcsmXLd7Icz8RhKtlJOEBFAI5GAOAYAd5Z3DEkYSRs5UcBsKMgnBZM8gFGjHehHPXQcFVQP1eA1RXnVdBpDdDB/Yf0VMv5mZmH1XP+ZQtP6e8DrDVQhvN3mT/2Bb3ReS9sVDcofTjA7mHo7BIiMqCpRzncsyksdsiNGzfuybaaM2fObUrn9tpFso1kO1naMzIP9eF1Sud+WCTTf/jhBx7lPibpizq9O3r06BHdu3dn49SN/Y8uXboMjYyMjECaN/qlPeevXbt2/wkTJkSNHz9+6sSJE6d07dr1A1xvjHatiBGpGoDavH79+j2nTJkykekMCyxqJ1CbzlDu8BUrVqTLugYEBKxD27VHm5REW9mbOWqs7YPkDQhk12F1KyNPHoCqyZAhQ5YbeHEm8eI4QS+KoHNc8ELa4lRh6yvL8lQyGspZEPoCsEK1AL4PBHiZuzG37Q1g98RzuSEGX9umLl3dqi6nr1aH331bjYFT6H1vtzpJVOJAYrTFKjUBmGvDAniwk8V5yNFLpvP3GDxMS/iZqTHq1t1v1GP+/8lQtRwK2hSWgYH+/i+wultj1XX+/SFFMVj4+X1C+6pgvvf5FLUWHasjNU5oG1aeeuMDVeC5ZPXt9e2KrecUo1Ul0Nyi9H0kTEk2QFK++OKLi3rka9u27ba4uLhT1mjF7du3f2Jg7N279xudRqBMSEtLO2Ri/UIqVqw4jhTie7N7Xbt27RJhYSzA2Bwc35OBfvz48QNWYv0Z/v7+bIBC33777bnEdZ+Z5SO29DQiIiISylFeWN+XwMuJHrxmwVD5HdCSUoKjcWN7Hjly5KoB6GxlhsG6FMMQyB3Uvm7dur0BwqLoMJ+ff/75kVwLIcCrCb/kvdwofQV4QxgQJB0x7LSBBejC6XKY3xRjsU4DjenEoT/Eu/FzO++Gg8fCXBlKGx7zsdrPafR7Lay/Osv/iaKwUg+G5eBO8x3ZR8XytZ+/VY/oPJn/39+jHtD/8axo4YFqmr7/jkUW2uMhvGp3KJDn5c0qXbxnjNl0/DfffHM/Ojr6LLXrJsqTSLKahEOYrBjsJGY7jc90S57L/tDH8uXLvyfOvd4auCTIevfuPR2+S0CbNm0mZOdg8j3p3mup3Las8q2hg+7ZGlgqjpH/Jb5rAWTfvn1TDaQ5DtalqAAVA8ybAWcSt+0HE18WYPWdPXt2CvG2Y2JCgs1/B+OiHhPwaurgho7uJTo1FEO3D0DbCuIFCxw8O+wFgDZ8qr4BleCw1fBdi9VeTv9tv/oFvHhonw7UkZT29Kh60ruDmg6rzkNWRPwU9T3Ay4DdTdY3E+BfAgBzPYZf2vSCc48frA7R+TpR14mgMcNH9VHzOe3BQXUfitZU8MG27Jjy9SdH1dNypVUMpS0MDw8/klXn3r17N5PXjgwdOnQv5Wc+vpLF19f3W+K+L810Mg08ceLEPZ4JpTyLs7rvo0eP/qhVq9aeS5cuPZTp5PQ9Jyucyb8y/dy5czwicNtFG6kO5X1Gxu4R0ZYnxsmqUqVK7SJl/IfxfkxB2UBWqlTpI1CHqsBpfiN4LYAkLdhqANRwkHZHEX8tExwcHGpFm9nK9AJ/GkpcZ6fgWu2FV+vNDZgFePWzCoMHNpZeP1mnK0wN2ELe3qXOkLU7xUMy7sHgHTm4u1rFedfMVNypH4EDM4gnEhe1DOuJ09UBOp9B97nL53GTLVZ6NMDLYJ+wYor6jq9FjVAXmGdGh6gzfL47TrEjO4mt8wc91ApOozo8BHhWCfBGCD4+lhy6Xzn9owEW3t4FSsejhy+PEnxtzzJ1hs4/ZctLsiwxMTHDligDWc9MomSpXAZA3iyvp6en/waawbQn3lj+/Pnzj4lrniOjdYKu7xk1atRlQ2TomZOTE1M8ph03k5KSXrLWrVu33kUU4qBMO3v2LJfhUZkxcHP16tUvlSHacJrSj82aNeu+TO/Wrdt3lB6LfmiTleW1Bbw6YlCLONV4s8a7fPny79u3b88g/nRw+vTppw2TEZ5iFs57xIgRu3II3l7ZxXhxDw5lhQQCvEkzLPyQKUIQGiK8UW21+PER9Yyvpy1Qly38NNnSuJPxzv0wBH6Ynqgy+HqPdhagby7trLZoh6xBDZVAaZ+TNb/A58sjFY8wbJEXE2e9z2lvuKhpAC5TnbEzQ9VGTj+9wQLQQeDWrPBBGtidW6p4Op9KEgUQx/fo0eMQ04XsAMyRnPbt26dwGZL1higEh/o47LmAJM5YFqBlLr2RncHk5OS78vrmzZufR0VFPWGZOnXqk4SEhKfyOjlkNzZs2HDfUOYZ5X3M+Vm+/PLLpyYO6AkC70vWumfPnvvZsMCPaYoR+J84r1Xa4OHhEYuCxcRkgx87ZmZrHqwd48aNW4uhX8/RdyAivs8G8BYCBWkkLS/9j4Q11U6bDyy7J8Irwwf3UCuF5R2l4574P2POGHVU34/B2LCmZTIjHKDtBiUI5ogB5+n1rtoJbpm0eOIL7rv1c3WtbhW1Rd/DtaQFMBz2m8fOGqcHvWexgiOhOKPdXNT0J0fUU77WvIFlmGXqEhwx5IWy/UijADtqJOPwjmy5OeLD9UvhYXbAgAFn4uPjf6LDlIsePHjwBqxvgkwnHnwPwGWFiDUZOdkqL0UoMsFIO7I7ZsyY8Ss9O0cxaQIvW/H0Tz/99I5M79Wr1y5Qru5wrMsgKmNvk8M2cuTINPDI8rDAvjzTxjNutlbu9OnTd8ELK+LhFodt3bp1P2ThsJmBt6ch2sBg8IfT1RoTEc1wPuSDnjQsUt61s9QeWNNeiEow4KM8PdQmfT/msRiixiCfFxTiA81l+3VSKTr85FJCJT06pJ6T/EFD/U1QjpMY5hmQM86nqB85fUhPC6BDYGXZoR2/ef4Lpwy0hYE65ViSushp00daLN8ETTWaNWs2kxc4YaIoHg7aWljHHdWrVz9u5JIAIoN3hUw7deoU98VnHBdnhTApswD14RFoHoM9J0D8+OOPf2NqkZMykydPvkrP2j937txbMt3f3387RswOwF4JEfHKPlTGAINlY1D4M3B5jYOtFeOlke7u7hGYKXECeDnOGZiRkfG7lVCZGXg5IN5NgDcIw20bALsO4oz1YX0H6fgswDsM+bshijDl6lb1C19/SADk35VR6qgBvMxHA/VQjg7/BMP5fLrveWm5yeouxzUG3ifMW/nauEGWKEAwrD5b9dAmddQXfI2pCysD0w9xPgWdFtKiRYso2Z59+vTZzJQEws9bzzy8Y8eOF02A+E+8FuCdBwX7zKTMVCgajwafkOF5yRrSkK8pQCZ+Lf+jo6MfBgUFsRN6hSzvU0OZ56JM5rRp0zj/A+a4zKlpJGGHOi0mJua6LMdRCPSHF6IyzmbgtTpJwR4nhugxrq6uy2y1uBwGWbNmzV6yCkMBXBfEbS2TFLycMotJCiN4XTEJ4CPA2xtOTj1YdL1MsBomVAJouF4qwDsCjhxTgSCmEnzt+Br1j5qV1F62onze09NiOd8XtCFIPPMjPcTzcEY0I15f+2qOhb9OR2NbuO3qGS9CbKAtwXj+e1CeieeS1S2+Hh6ojiyJeAH01HmWGTkdnQg2zjoxn61fv34SLORCOGXbiGteN+aD5V1mQhsWA8ALTcA7DgrGijaGOO9LsWIC3iM4axxZuEWO2E9jx479NTw8nO/LjteJuLi4+4YyPKrdRpmbVOZHzk+08UcGLRRwQ2xsbIbB8qahPp0RuSopfC/bpod59oa0Ywd5opnWwMr8t1+/filhYWFzQkJCRoF/yo2XeoEOW8dAXg+cxfSwnQl4LVO1AkjdkF+vFtNz7+5Qlr5Dfckh+V/wcARhAIufl5oFa/msThW1lWOys0LVMU67tUPdAfgGIgw2WjxT0xRfXP+IhvjNidHqYNN6lqF4JIDPMlIriADve6A0DOLRYf1VKl/fu0zdvoPJD3YkoQD87KE8cWDmkPEGgKVLl57kqXuz6WFymq+Cty42hr849IaIRKIJeEdj5OFJnaCBAwcmGfOQI/5b48aNf/Lz87vLkQSdHhkZeZnK7CSak25WpnLlyjepzB1ZhrB2AkoWv3DhwvPGrWODBw9eWbNmzYGYCHIFHhyyXJjDIRd9kwcPHvy3fKAZcDt06JCITqklZo2KiEXFhbWzxyDPYmGO2bJIF1hYbwGkjrDG5eAE6kUgOjLhN9xPLcJs11FwZLaaI27vVD9x+vyxlijEIkQHFmlLuG62+panUJvVVzPIKiZx2u1dFqsRAP7VGjN+vrCiQbjWA9d55m3wp2HqK1j3C6P6Wix6Tyh1Z0xbR/OEhn6nQ6ssceRIMaXNEY8xHGbMCYdkgMI68+Kcz+7du2c6WrZq1Wq3CXiHgy55QVF5Zu26Lc/FGhgOE65OSEi4aksZcjq/Rz1jrM0IkqJuxCSVO/o4b46WRNoAXLlU0sGwLE4D1+LsGaMU7CQalkQqAd6CmCLmKdx2ArztkFZGLK4uhHOeqeqqJwREmbCNn6k0/n8pVV0Dt5wEbz6SeaiOAnRppZbqYZ+Fp5phkVpAkd6E5W+NurTCeSP89wv2f8FrxfN7gKO3BzAj5n6oDuvroX0tjloYLHR7WGm2Op8QfThrS3/cuXPncfv27ZOxWIlj7pM2btx43Cxvy5Yt93F+fX7z5s07GJ084fwygAe5ubnNJh77Y3a+TaNGjZYitMfPXrB169ZrWZUhpXrYpEmTzxHhmUQOabzZrhu6z2a0sekkhU2L0c2A6+XltQ4aWh2W1sGwQt5ZL0Y3c/asLEaXi8IdQQe44m8f+VKtYgE1qCrWyOYTnLo6+PD7q6aq5OS5ageDlukATwIQr9zu722ZIBgq+B0P06ETBqsEGub3MB0Y1E0lcoyYZ+j6d7YAvROsvd6dUQHOZzWxa6MygM0dP2DlVJWS8pn6evsXKhUWWYPdYtW83nkxJY3JjSkAT1sMk01gyblukQ0aNEhYsmTJaZ4h41k1uYpv//79t4hiHECYbiIc1AGIrIyLior6+tChQze4T3mkGzZsGFOZhHbt2m2h9Ovp6emXaUifjb7wELtWvDESRJGzuIWfw7F8rSh8v8mTJ+/mDbqgTYNQX6Y+M8jp2sIgNpYhH+cAlZmB0VDXM5wNIQcJOA878VT2KO/EQZtkCd5stwFJKsGai0o2Ewu9C8O0l0JHsvMUyFuHbt++/dTGbUByR0F+0AI3TKN6QOoirZjYjqMXsLshOuENkASAh/bDaqo+GCk6wRK2BA14D40fgvf6EJZwCIb8ZmJNcHE828mwZ64UQNwI1KYPnu2H83aoF9dlPCnVCQZv7DiLUxkm1v7qXRD1Ubf3cT0SK+rmCJmNSMh4gMEfz2gL8PfGO0UgX7SYAIkUDqI/Ro2aYtuTfP4YKNhsPHcWyoehjTujPdviPQaiDbMq0wWWXrfVSNQzCr8jhEJVQJvne60NmGvWrHmAEEckXlqvKHoLvwyMQBoWFhidMxs3YCpBOwrC03wD4KmK/3qFfV6xraQA7ueul+QBMJ5il0crWO76WIdRFZZGfwXIB0D2FTz2HXSq3v5j3KGcXyxkL4nRqyEsrTc6pyM6mOnHcDcXNVPP8vF/dHZLWHO9SLw8/Agdv9bKOAiKHwjL1QdOrCcsdm28W13UXc889jUosb9Q5OZil4Xek2jt+QOFUuqy9TAKVcPo0wLva61MC7HvsB7q2QH16YN8nZFeQ1BEh9fe+s7Wd9OmTTd5Kphn5tgzDQoKWsa/c+fOPbxv376fXmPru3E/WSGAsjTE2bArVy7mkRshK4NG1IBUB1h1eK0UOkkvQK8uFly/BStYB2B0Mdl4adzbpeuqlzjWBpjadG+rAu/vUdenBatFHMb7MU39LNYxhGEmqQHi2kXFAvnSOdiAWRWAKy12PbiLGHgjOLSN8V+/Y23xjsXENh+z5zcRG18bIr2iWORfAv8r2lCmrNgVbqxnQyttb/93+uiIvdhpIPdO5TX5foJxC7qTYVdzCbG1pbDYU6WBUkI0ptlWl+x23UoFchKWq/mCCS9WrklhAL/hahkiB8BKVzVsbM33Clvfi4hvWBRC2RJi0X1Zw/uVMXnHvIKKGZ9fVnxuwEXsoCgk9r4VsqFMcbEH0KyeLugLY9vbvA3+3/25JzvDxzekmH2Uwvjxj/xWNhbmEx1kb9jDVkA0aEHxDQRbvndgBLDeC8cWx4ccv8iv5qidHPudGWpx4sLh4HTEUOtq2GWc04+O5M/Be0kpYPKthOyeb/zYiYNhZ7AtZfKa7CEskEW9cvStif+UD+3l5NNFdla+wmKfxRdZrH1S6VW+NGPcvu6K4a8N+O4QTFoMA//sgOG7AqxRfisjyqt+7slaG2TXJsqG59v6XFvK2NJXr/Rlk7/rJ07tXhH4r/uNLxnqc9JbfOCQdRA7MHTcuAJGI7013i6Hdcuujn/FRwn/6ue+rpF6pQ7J/bi07dZXR0D05soqcI7qiA2LLmJLvIP6z/uW2P+7jsn9rL/tAJYOpLP4LoLx80u5wLXx+B+cTUKEm3GYQAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMi0wNS0wMlQxOTo0Njo1MSswMTowMBx1tHgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTItMDUtMDJUMTk6NDY6NTErMDE6MDBtKAzEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg==') no-repeat; text-indent: -999999px; position: absolute; z-index:2; @@ -410,11 +413,15 @@ p.label-valid { .ie6 #site-logo { background: url('/cobrands/fixmystreet/images/ie_logo.gif') 0 -5px no-repeat; } +.ie7 #site-logo { + background: url('/cobrands/fixmystreet/images/sprite.png') -3px -3px no-repeat; +} + // this is a skip to nav for mobile users only #nav-link { width: 50px; height: 48px; - background: url('/cobrands/fixmystreet/images/sprite.png') -5px -916px no-repeat; + background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAwCAMAAABkKdmIAAAACW9GRnMAAAAFAAADlACdjNY6AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAF5AAAQZgCwCYXlAAABEVBMVEUAAAAiIiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJAAAAABPQAAAAAAlHgBnVAAAAACSdwAAAAAAAAAaFQAAAAAAAAAAAAAAAACRdgCqigAAAAAAAABHOgDCnwAAAACriwCAaAApIQDOqABIOwCgggBqVwB8ZQDVrgCwkADjuQCafgDftgDetQCqigDrwADHogDGoQDFoAD1yADzxgDyxQDwxAD/0AD///+ZbHkYAAAAWXRSTlMAAAECAwQFBgkLDA0OEBESExQVFxgeHyEkJSkqMTI2Oj0/Q0RHSEpOT1FSVVtmZmxsdX6Kj5ebnp+goaenqKmru7y9vsTY3uPk5OTl5+zs7e7x9PX3+Pr7/fI8qpUAAAABYktHRFoDu6WiAAABMklEQVRIx+3T2VLCMBSA4ZjU1hhpUKgWlaq0VSuutYg7IJuIogKKvv+LSM2AelNOuHCGGf77b7KcBKGwT2AzYej/CIYSPCBEhRKVCILVBJQkVCwIS0NJmglCYhkoycSIINyBEocPiAsl7ljkeypTMhHko9tpD+t0QavUSjcX+bDzy9vSPYj0zg523LDtvaNCD3aWh11ziXMeT64fP0OPX1xbmCVEXdyqwm/sNEWJMr96LXHJb4fLczR1IjWXx83kyv6r3CiLG05VdvpXd9IP5n36XyaStGCiNSS6XYaRsq0LgpnlNyGi6VsMC6IZXlAfLeqBZ2iCIELNbFBpvLQjempUgqxJxb76KdT0/Fw+spzvmVRB6McYlu24ETm2ZfwW/b1pTOeR6Uwj6E8YkxFhjMbuC8zPYpEN6mT7AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEyLTA1LTAyVDE5OjQ2OjUxKzAxOjAwHHW0eAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMi0wNS0wMlQxOTo0Njo1MSswMTowMG0oDMQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC') no-repeat; display: block; text-indent: -999999px; position: absolute; @@ -443,15 +450,17 @@ p.label-valid { color:#fff; text-decoration: none; } + span { + background-color: #ccc; + } } &#mysoc-menu{ li { a { background:$primary; &#mysoc-logo { - background-image:url('/cobrands/fixmystreet/images/sprite.png'); + background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIkAAAAyCAMAAABf9whNAAAACW9GRnMAAADwAAAAJgAMZizzAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAF5AAAQZgCwCYXlAAAANlBMVEUAAAAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiL///90WH2CAAAAEHRSTlMADx8vP09fb3+Pn6+/z9/v+t8hjgAAAAFiS0dEEeK1PboAAAGqSURBVFjD7ZbNjtwgEAY/oIE2YKj3f9ocPDOZ3eN6FCUKdWsJQ+H+saXNZrPZbDabzf/GovwdIhH8LUzHn/PqI32Jcw1v0fjidQf30EZPqmMURXeT5F5kbYwqSQbeWpAU6xg961pT+mgm+WR4Ke6SzG9JwQRWB6iaTClCzQBLknT0AibZAnCBSx2ALACGQ5JOznsmq1TA82LKIalC6Jwh5seaMGdUWKxiJQpclWVqLNlJsxThUIB6z8Qft3FQgEODrs4qUuj9qoljpAr2euKkmxVIjzrpTBUI90xMGgzJQGrMAEUGrGKQn6c7/HbngT1MMqRO1wdNDA6WpNgW5Ld38s1kuLt7fPbO5Lg7Z76ZaLJoV3WAa6wsxbmiyrMMruyMVxc3SaqvAv+YSQWS1Fs9oAi8jQKmsGB4zwJXgdO9VWnAkaUAHJ81CTAkLYAm5ZbB/QhSmm9d7Ff7Splr5jaI90zMgpQsScHsGmRFUsheH6O1jecR5m5BZlFSzF5NkpJ7lMJ85etDlPWjHdMJ6aMiFdYPdgzw6Q90Yvwo2+fM+3dps9lsNpvNP8gvi7UYry9B6TcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTItMDUtMDJUMTk6NDY6NTErMDE6MDAcdbR4AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDEyLTA1LTAyVDE5OjQ2OjUxKzAxOjAwbSgMxAAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII='); background-repeat:no-repeat; - background-position:-240px -38px; text-indent:-999999px; } } @@ -462,6 +471,10 @@ p.label-valid { .ie6 #main-nav ul#mysoc-menu li a#mysoc-logo { background: url('/cobrands/fixmystreet/images/ie_mysoc_logo.gif') center no-repeat; } +.ie7 #main-nav ul#mysoc-menu li a#mysoc-logo { + background: url('/cobrands/fixmystreet/images/sprite.png') -240px -38px no-repeat; +} + //defines where the table caption is (login stuff on mob, nav menu on desktop) .wrapper { width:100%; @@ -514,7 +527,7 @@ p.label-valid { text-transform:uppercase; font: { size:0.6875em; - family: 'helvetica', 'arial', sans-serif; + family: Helmet, Freesans, sans-serif; } &:hover, &.hover, &.active { text-decoration:none; @@ -1356,7 +1369,7 @@ table.nicetable { h2 { font: { style:italic; - family: 'helvetica', 'arial', sans-serif; + family: Helmet, Freesans, sans-serif; size:1.1875em; } color:#4d4d4d; @@ -1366,7 +1379,7 @@ table.nicetable { padding:1em; color: $primary_text; background: $primary; - font-family: 'helvetica', 'arial', sans-serif; + font-family: Helmet, Freesans, sans-serif; label { margin:0; } @@ -1408,7 +1421,7 @@ table.nicetable { color:#C8C8C8; padding:0.5em; font: { - family: 'helvetica', 'arial', sans-serif; + family: Helmet, Freesans, sans-serif; size:0.8125em; } @include border-radius(0 0 0.25em 0.25em); @@ -1425,7 +1438,7 @@ table.nicetable { width:100%; color: $primary_text; background: $primary; - font-family: 'helvetica', 'arial', sans-serif; + font-family: Helmet, Freesans, sans-serif; div { display:table-cell; text-align:center; diff --git a/web/cobrands/fixmystreet/_layout.scss b/web/cobrands/fixmystreet/_layout.scss index 6d6ad8a78..d9084d928 100644 --- a/web/cobrands/fixmystreet/_layout.scss +++ b/web/cobrands/fixmystreet/_layout.scss @@ -176,7 +176,7 @@ h1 { &#mysoc-logo { width:84px; height:16px; - background-position:-260px -43px; + background-position: -20px -5px; opacity: 0.8; &:hover { opacity: 1; @@ -190,9 +190,9 @@ h1 { } } } - - - +.ie7 #main-nav ul#mysoc-menu li a#mysoc-logo { + background-position: -260px -43px; +} // .content Is the white box @@ -799,7 +799,7 @@ body.frontpage { top:3em; width: 300px; height: 60px; - background-position:-2px -108px; + background: url('/cobrands/fixmystreet/images/sprite.png') -2px -108px no-repeat; } #user-meta { z-index:10; diff --git a/web/cobrands/fixmystreet/_mixins.scss b/web/cobrands/fixmystreet/_mixins.scss index f77152dd6..4c7bc5af8 100644 --- a/web/cobrands/fixmystreet/_mixins.scss +++ b/web/cobrands/fixmystreet/_mixins.scss @@ -3,7 +3,7 @@ cursor:pointer; font:{ size: 0.875em; - family: 'Helvetica', 'Arial', sans-serif; + family: Helmet, Freesans, sans-serif; weight:bold; } text-transform:uppercase; diff --git a/web/cobrands/fixmystreet/base.scss b/web/cobrands/fixmystreet/base.scss index 55b006b42..21cc16cb4 100644 --- a/web/cobrands/fixmystreet/base.scss +++ b/web/cobrands/fixmystreet/base.scss @@ -8,70 +8,5 @@ @import "_colours"; @import "_mixins"; @import "compass"; - -/* HEADINGS and TYPOGRAPHY */ - -@font-face { - font-family: 'MuseoSans'; - src: url('fonts/MuseoSans_300-webfont.eot'); - src: url('fonts/MuseoSans_300-webfont.eot?#iefix') format('embedded-opentype'), - url('fonts/MuseoSans_300-webfont.woff') format('woff'), - url('fonts/MuseoSans_300-webfont.ttf') format('truetype'), - url('fonts/MuseoSans_300-webfont.svg#MuseoSans300') format('svg'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'MuseoSans'; - src: url('fonts/MuseoSans_300_Italic-webfont.eot'); - src: url('fonts/MuseoSans_300_Italic-webfont.eot?#iefix') format('embedded-opentype'), - url('fonts/MuseoSans_300_Italic-webfont.woff') format('woff'), - url('fonts/MuseoSans_300_Italic-webfont.ttf') format('truetype'), - url('fonts/MuseoSans_300_Italic-webfont.svg#MuseoSans300Italic') format('svg'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'MuseoSans'; - src: url('fonts/MuseoSans_500-webfont.eot'); - src: url('fonts/MuseoSans_500-webfont.eot?#iefix') format('embedded-opentype'), - url('fonts/MuseoSans_500-webfont.woff') format('woff'), - url('fonts/MuseoSans_500-webfont.ttf') format('truetype'), - url('fonts/MuseoSans_500-webfont.svg#MuseoSans500') format('svg'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'MuseoSans'; - src: url('fonts/MuseoSans_500_Italic-webfont.eot'); - src: url('fonts/MuseoSans_500_Italic-webfont.eot?#iefix') format('embedded-opentype'), - url('fonts/MuseoSans_500_Italic-webfont.woff') format('woff'), - url('fonts/MuseoSans_500_Italic-webfont.ttf') format('truetype'), - url('fonts/MuseoSans_500_Italic-webfont.svg#MuseoSans500Italic') format('svg'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'Museo300-display'; - src: url('fonts/Museo300-Regular-webfont.eot'); - src: url('fonts/Museo300-Regular-webfont.eot?#iefix') format('embedded-opentype'), - url('fonts/Museo300-Regular-webfont.woff') format('woff'), - url('fonts/Museo300-Regular-webfont.ttf') format('truetype'), - url('fonts/Museo300-Regular-webfont.svg#Museo300') format('svg'); - font-weight: normal; - font-style: normal; -} - - -/* Opera has a bug (from around 10.5 upwards to current 11.6) with showing the - * table caption *at all* if the header is set to a font-face :( */ -noindex:-o-prefocus, #site-header { - font-family: sans-serif; -} - @import "_base"; diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js index 0be355fe3..085765c75 100644 --- a/web/cobrands/fixmystreet/fixmystreet.js +++ b/web/cobrands/fixmystreet/fixmystreet.js @@ -493,6 +493,7 @@ $.fn.drawer = function(id, ajax) { $('.container').on('click', '#alert_email_button', function(e){ e.preventDefault(); var form = $('<form/>').attr({ method:'post', action:"/alert/subscribe" }); + form.append($('<input name="alert" value="Subscribe me to an email alert" type="hidden" />')); $('#alerts input[type=text], #alerts input[type=hidden], #alerts input[type=radio]:checked').each(function() { var $v = $(this); $('<input/>').attr({ name:$v.attr('name'), value:$v.val(), type:'hidden' }).appendTo(form); @@ -550,9 +551,11 @@ $.fn.drawer = function(id, ajax) { /* * Fancybox fullscreen images */ - $('a[rel=fancy]').fancybox({ - 'overlayColor': '#000000' - }); + if (typeof $.fancybox == 'function') { + $('a[rel=fancy]').fancybox({ + 'overlayColor': '#000000' + }); + } /* * heightfix the desktop .content div diff --git a/web/cobrands/fixmystreet/images/sprite.png b/web/cobrands/fixmystreet/images/sprite.png Binary files differindex cfa2ba098..61c27b32a 100644 --- a/web/cobrands/fixmystreet/images/sprite.png +++ b/web/cobrands/fixmystreet/images/sprite.png diff --git a/web/cobrands/fixmystreet/layout.scss b/web/cobrands/fixmystreet/layout.scss index f9d5b3930..ff7080c11 100644 --- a/web/cobrands/fixmystreet/layout.scss +++ b/web/cobrands/fixmystreet/layout.scss @@ -1,3 +1,68 @@ +@font-face { + font-family: 'MuseoSans'; + src: url('fonts/MuseoSans_300-webfont.eot'); + src: url('fonts/MuseoSans_300-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/MuseoSans_300-webfont.woff') format('woff'), + url('fonts/MuseoSans_300-webfont.ttf') format('truetype'), + url('fonts/MuseoSans_300-webfont.svg#MuseoSans300') format('svg'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'MuseoSans'; + src: url('fonts/MuseoSans_300_Italic-webfont.eot'); + src: url('fonts/MuseoSans_300_Italic-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/MuseoSans_300_Italic-webfont.woff') format('woff'), + url('fonts/MuseoSans_300_Italic-webfont.ttf') format('truetype'), + url('fonts/MuseoSans_300_Italic-webfont.svg#MuseoSans300Italic') format('svg'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'MuseoSans'; + src: url('fonts/MuseoSans_500-webfont.eot'); + src: url('fonts/MuseoSans_500-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/MuseoSans_500-webfont.woff') format('woff'), + url('fonts/MuseoSans_500-webfont.ttf') format('truetype'), + url('fonts/MuseoSans_500-webfont.svg#MuseoSans500') format('svg'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'MuseoSans'; + src: url('fonts/MuseoSans_500_Italic-webfont.eot'); + src: url('fonts/MuseoSans_500_Italic-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/MuseoSans_500_Italic-webfont.woff') format('woff'), + url('fonts/MuseoSans_500_Italic-webfont.ttf') format('truetype'), + url('fonts/MuseoSans_500_Italic-webfont.svg#MuseoSans500Italic') format('svg'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'Museo300-display'; + src: url('fonts/Museo300-Regular-webfont.eot'); + src: url('fonts/Museo300-Regular-webfont.eot?#iefix') format('embedded-opentype'), + url('fonts/Museo300-Regular-webfont.woff') format('woff'), + url('fonts/Museo300-Regular-webfont.ttf') format('truetype'), + url('fonts/Museo300-Regular-webfont.svg#Museo300') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* Opera has a bug (from around 10.5 upwards to current 11.6) with showing the + * table caption *at all* if the header is set to a font-face :( */ +noindex:-o-prefocus, #site-header { + font-family: sans-serif; +} + +h3, h4 { + font-weight: bold; +} + @import "_colours"; @import "_layout"; diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index a215e923e..20c2ea720 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -118,10 +118,10 @@ function fixmystreet_onload() { var markers = fms_markers_list( fixmystreet.pins, true ); fixmystreet.markers.addFeatures( markers ); if (fixmystreet.page == 'around' || fixmystreet.page == 'reports' || fixmystreet.page == 'my') { - var select = new OpenLayers.Control.SelectFeature( fixmystreet.markers ); + fixmystreet.select_feature = new OpenLayers.Control.SelectFeature( fixmystreet.markers ); var selectedFeature; function onPopupClose(evt) { - select.unselect(selectedFeature); + fixmystreet.select_feature.unselect(selectedFeature); OpenLayers.Event.stop(evt); } fixmystreet.markers.events.register( 'featureunselected', fixmystreet.markers, function(evt) { @@ -142,8 +142,8 @@ function fixmystreet_onload() { feature.popup = popup; fixmystreet.map.addPopup(popup); }); - fixmystreet.map.addControl( select ); - select.activate(); + fixmystreet.map.addControl( fixmystreet.select_feature ); + fixmystreet.select_feature.activate(); } else if (fixmystreet.page == 'new') { fixmystreet_activate_drag(); } @@ -164,9 +164,11 @@ function fixmystreet_onload() { for (var i=0; i<showhide.length; i+=2) { if (this.innerHTML == showhide[i]) { fixmystreet.markers.setVisibility(true); + fixmystreet.select_feature.activate(); this.innerHTML = showhide[i+1]; } else if (this.innerHTML == showhide[i+1]) { fixmystreet.markers.setVisibility(false); + fixmystreet.select_feature.deactivate(); this.innerHTML = showhide[i]; } } |