2 use strict; use warnings;
4 # ------------------------------------------------------------
5 # turns the orgTree and orgTypes into js files
6 # ------------------------------------------------------------
9 use OpenILS::Utils::Fieldmapper;
10 use OpenSRF::Utils::SettingsClient;
11 use OpenSRF::Utils::Cache;
13 die "usage: perl org_tree_js.pl <bootstrap_config>" unless $ARGV[0];
14 OpenSRF::System->bootstrap_client(config_file => $ARGV[0]);
16 Fieldmapper->import(IDL => OpenSRF::Utils::SettingsClient->new->config_value("IDL"));
18 # must be loaded after the IDL is parsed
19 require OpenILS::Utils::CStoreEditor;
21 warn "removing OrgTree from the cache...\n";
22 my $cache = OpenSRF::Utils::Cache->new;
23 $cache->delete_cache('orgtree');
25 # fetch the org_unit's and org_unit_type's
26 my $e = OpenILS::Utils::CStoreEditor->new;
27 my $tree = $e->retrieve_all_actor_org_unit;
28 my $types = $e->retrieve_all_actor_org_unit_type;
33 return 'null' unless defined $v;
35 # required for JS code this is checking truthness
36 # without using isTrue() (1/0 vs. t/f)
37 return 1 if $v eq 't';
38 return 0 if $v eq 'f';
40 $v =~ s/([\x{0080}-\x{fffd}])/sprintf('\u%04x',ord($1))/sgoe;
45 my $pile = "var _l = [";
49 my ($i,$t,$p,$n,$v) = ($o->id,$o->ou_type,$o->parent_ou,val($o->name),val($o->opac_visible));
51 push @array, "[$i,$t,$p,$n,$v]";
54 $pile .= join ',', @array;
55 $pile .= "]; /* Org Units */ \n";
58 $pile .= 'globalOrgTypes = [';
60 my ($u,$v,$d,$i,$n,$o,$p) = (val($t->can_have_users),val($t->can_have_vols),$t->depth,$t->id,val($t->name),val($t->opac_label),$t->parent);
62 $pile .= "new aout([null,null,null,null,$u,$v,$d,$i,$n,$o,$p]), ";
64 $pile =~ s/, $//; # remove trailing comma
65 $pile .= ']; /* OU Types */';