]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/extras/fieldmapper.pl
safer MR mapping
[Evergreen.git] / Open-ILS / src / extras / fieldmapper.pl
1 #!/usr/bin/perl
2 use strict; use warnings;
3 use Data::Dumper; 
4 use OpenILS::Utils::Fieldmapper;  
5 use OpenSRF::Utils::SettingsClient;
6
7 OpenSRF::System->bootstrap_client(config_file => $ARGV[0]);
8 Fieldmapper->import(IDL => OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
9
10 my $map = $Fieldmapper::fieldmap;
11
12 # if a true value is provided, we generate the web (light) version of the fieldmapper
13 my $web = $ARGV[0];
14 if(!$web) { $web = ""; }
15
16
17 my @web_core = qw/ 
18         aou au perm_ex ex aout 
19         mvr ccs ahr aua ac actscecm cbreb acpl 
20         cbrebi acpn acp acnn acn bren asc asce 
21         clfm cifm citm cam ahtc
22         asv asva asvr asvq 
23         circ ccs ahn bre mrd
24         crcd crmf crrf mbts aoc aus 
25         mous mobts mb ancc cnct cnal
26         /;
27
28 my @reports = qw/ perm_ex ex ao aou aout /;
29
30
31 print "var _c = {};\n";
32
33 for my $object (keys %$map) {
34
35         my $hint = $map->{$object}->{hint};
36
37         if($web eq "web_core") {
38                 next unless (grep { $_ eq $hint } @web_core );
39         }
40
41         if($web eq "reports") {
42                 next unless (grep { $_ eq $hint } @web_core );
43         }
44
45
46         my $short_name = $map->{$object}->{hint};
47
48         my @fields;
49         for my $field (keys %{$map->{$object}->{fields}}) {
50                 my $position = $map->{$object}->{fields}->{$field}->{position};
51                 $fields[$position] = $field;
52         }
53
54         print "_c[\"$short_name\"] = [";
55         for my $f (@fields) { 
56                 next unless $f;
57                 if( $f ne "isnew" and $f ne "ischanged" and $f ne "isdeleted" ) {
58                         print "\"$f\","; 
59                 }
60         }
61         print "];\n";
62
63
64 }
65
66 print "var fmclasses = _c;\n";
67