Changeset 11875


Ignore:
Timestamp:
2006-05-29T14:58:43+12:00 (18 years ago)
Author:
mdewsnip
Message:

Fixed up write_bilevel_static_browser_macrofile() so it uses write_static_browser_macros(), and thus sorts the entries as CIC desires.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/cic-hcap/perllib/plugins/CICPlug.pm

    r11874 r11875  
    861861    print STDERR "Writing $static_browser_macrofile_path...\n";
    862862    open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n";
     863    &write_static_browser_macros($static_browser_package_name, $name_to_id_mapping);
    863864    close(BROWSER_MACROFILE);
    864 
    865     &write_static_browser_macros($static_browser_package_name, $name_to_id_mapping);
    866865}
    867866
     
    871870    my $static_browser_package_name = shift(@_);
    872871    my $name_to_id_mapping = shift(@_);
     872    my $id_to_extra_mapping = shift(@_);
    873873    my $table_columns = 2;
    874874
    875     my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_name.dm";
    876     open(BROWSER_MACROFILE, ">>$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n";
    877875    print BROWSER_MACROFILE "package $static_browser_package_name\n\n";
    878876    print BROWSER_MACROFILE "_cicstaticbrowser_ {\n";
     
    907905        my $name = $letter_names[$i];
    908906        my $id = $name_to_id_mapping->{$name};
    909         print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a></td>";
     907        my $extra = "";
     908        if (defined($id_to_extra_mapping)) {
     909        $extra = $id_to_extra_mapping->{$id};
     910        }
     911        print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>";
    910912
    911913        $name = $letter_names[$i+$half_point];
    912914        if (defined($name)) {
    913915        $id = $name_to_id_mapping->{$name};
    914         print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a></td>";
     916        $extra = "";
     917        if (defined($id_to_extra_mapping)) {
     918            $extra = $id_to_extra_mapping->{$id};
     919        }
     920        print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>";
    915921        }
    916922        else {
     
    923929
    924930    print BROWSER_MACROFILE "}\n";
    925     close(BROWSER_MACROFILE);
    926931}
    927932
     
    945950    $static_browser_package_name =~ s/\W//g;
    946951
    947     print BROWSER_MACROFILE "package $static_browser_package_name\n\n";
    948         print BROWSER_MACROFILE "_cicstaticbrowser_ {\n";
    949 
    950         print BROWSER_MACROFILE "<center><b>";
    951         foreach my $letter (split(//, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) {
    952         print BROWSER_MACROFILE "<a href=\"#$letter\">$letter</a>&nbsp;";
    953         }
    954         print BROWSER_MACROFILE "</b></center>\n";
    955 
    956     print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n";
    957 
    958     my $last_name = "";
    959         my $current_letter = "";
    960         my $current_position = 0;
     952    my %name_to_id_mapping_for_category = ();
    961953    foreach my $name (sort(@{$category_to_names_mapping->{$category}})) {
    962         # Ignore duplicates
    963         next if ($name eq $last_name);
    964 
    965         $name =~ /^(.)/;
    966         if ($1 ne $current_letter) {
    967         if ($current_position > 0) {
    968             while ($current_position > 0) {
    969             print BROWSER_MACROFILE "<td></td>";
    970             $current_position--;
    971             }
    972             print BROWSER_MACROFILE "</tr>\n";
    973         }
    974         print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td width=\"50%\"></td></tr>\n";
    975         $current_letter = $1;
    976         }
    977 
    978         my $id = $name_to_id_mapping->{$name};
    979         my $extra = "";
    980         if (defined($id_to_extra_mapping)) {
    981         $extra = $id_to_extra_mapping->{$id};
    982         }
    983 
    984         if ($current_position == 0) {
    985         print BROWSER_MACROFILE "<tr>";
    986         }
    987         print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>";
    988         $current_position++;
    989         if ($current_position == $table_columns) {
    990         print BROWSER_MACROFILE "</tr>\n";
    991         $current_position = 0;
    992         }
    993 
    994         $last_name = $name;
    995     }
    996 
    997     print BROWSER_MACROFILE "}\n\n";
    998     }
    999 
    1000     close(BROWSER_MACROFILE);
    1001 }
    1002 
    1003 
    1004 sub write_bilevel_static_browser_macrofile_new
    1005 {
    1006     my $static_browser_package_root = shift(@_);
    1007     my $category_to_names_mapping = shift(@_);
    1008     my $name_to_id_mapping = shift(@_);
    1009     my $id_to_extra_mapping = shift(@_);
    1010     my $table_columns = 2;
    1011 
    1012     my $static_browser_macrofile_path = "$ENV{'GSDLHOME'}\\collect\\cic-hcap\\macros\\$static_browser_package_root.dm";
    1013     print STDERR "Writing $static_browser_macrofile_path...\n";
    1014     open(BROWSER_MACROFILE, ">$static_browser_macrofile_path") or die "Error: Could not write to $static_browser_macrofile_path.\n";
    1015 
    1016     foreach my $category (keys(%{$category_to_names_mapping})) {
    1017     # print STDERR "Category: $category\n";
    1018 
    1019     my $static_browser_package_name = $static_browser_package_root . $category;
    1020     $static_browser_package_name =~ s/\W//g;
    1021 
    1022     print BROWSER_MACROFILE "package $static_browser_package_name\n\n";
    1023         print BROWSER_MACROFILE "_cicstaticbrowser_ {\n";
    1024 
    1025     my %letter_to_name_mapping;
    1026     foreach my $name (@{$category_to_names_mapping->{$category}}) {
    1027         my ($letter) = ($name =~ /^(.)/);
    1028         push(@{$letter_to_name_mapping{$letter}}, $name);
    1029     }
    1030 
    1031         print BROWSER_MACROFILE "<center><b>";
    1032         foreach my $letter (split(//, "ABCDEFGHIJKLMNOPQRSTUVWXYZ")) {
    1033         if (defined($letter_to_name_mapping{$letter})) {
    1034         print BROWSER_MACROFILE "<a href=\"#$letter\">$letter</a>&nbsp;";
    1035         }
    1036         else {
    1037         print BROWSER_MACROFILE "$letter&nbsp;";
    1038         }
    1039     }
    1040         print BROWSER_MACROFILE "</b></center>\n";
    1041 
    1042     print BROWSER_MACROFILE "<table cellpadding=\"0\" cellspacing=\"0\" width=\"_pagewidth_\">\n";
    1043 
    1044     foreach my $letter (sort(keys %letter_to_name_mapping)) {
    1045         print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$letter\"/><span style=\"color: black;\"><b>$letter</b></span></td><td width=\"50%\"></td></tr>\n";
    1046 
    1047         my @letter_names = sort(@{$letter_to_name_mapping{$letter}});
    1048         my $half_point = ((scalar(@letter_names) % 2 == 0) ? scalar(@letter_names) / 2 : (scalar(@letter_names) + 1) / 2);
    1049         for (my $i = 0; $i < $half_point; $i++) {
    1050         print BROWSER_MACROFILE "<tr>";
    1051 
    1052         my $name = $letter_names[$i];
    1053         my $id = $name_to_id_mapping->{$name};
    1054         my $extra = $id_to_extra_mapping->{$id};
    1055         print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>";
    1056 
    1057         $name = $letter_names[$i+$half_point];
    1058         if (defined($name)) {
    1059             $id = $name_to_id_mapping->{$name};
    1060             $extra = $id_to_extra_mapping->{$id};
    1061             print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id\">$name</a>$extra</td>";
    1062         }
    1063         else {
    1064             print BROWSER_MACROFILE "<td></td>";
    1065         }
    1066 
    1067         print BROWSER_MACROFILE "</tr>\n";
    1068         }
    1069     }
    1070 
    1071 #   my $last_name = "";
    1072 #          my $current_letter = "";
    1073 #          my $current_position = 0;
    1074 #   foreach my $name (sort(@{$category_to_names_mapping->{$category}})) {
    1075 #       # Ignore duplicates
    1076 #       next if ($name eq $last_name);
    1077 
    1078 #       $name =~ /^(.)/;
    1079 #       if ($1 ne $current_letter) {
    1080 #       if ($current_position > 0) {
    1081 #           while ($current_position > 0) {
    1082 #           print BROWSER_MACROFILE "<td></td>";
    1083 #           $current_position--;
    1084 #           }
    1085 #           print BROWSER_MACROFILE "</tr>\n";
    1086 #       }
    1087 #       if ($table_columns == 2) {
    1088 #           print BROWSER_MACROFILE "<tr><td width=\"50%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td width=\"50%\"></td></tr>\n";
    1089 #       }
    1090 #       else {
    1091 #           print BROWSER_MACROFILE "<tr><td width=\"33%\"><br /><a name=\"$1\"/><span style=\"color: black;\"><b>$1</b></span></td><td style=\"padding-left: 3px; padding-right: 3px;\" width=\"34%\"></td><td width=\"33%\"></td></tr>\n";
    1092 #       }
    1093 #       $current_letter = $1;
    1094 #       }
    1095 
    1096 #       my $id = $name_to_id_mapping->{$name};
    1097 #       my $extra = "";
    1098 #       if (defined($id_to_extra_mapping)) {
    1099 #       $extra = $id_to_extra_mapping->{$id};
    1100 #       }
    1101 
    1102 #       if ($current_position == 0) {
    1103 #       print BROWSER_MACROFILE "<tr>";
    1104 #       }
    1105 #       if (!defined($name) || !defined($id_prefix) || !defined($id) || !defined($extra)) {
    1106 #       print STDERR "Name: $name\n";
    1107 #       print STDERR "ID prefix: $id_prefix\n";
    1108 #       print STDERR "ID: $id\n";
    1109 #       print STDERR "Extra: $extra\n";
    1110 #       }
    1111 #       print BROWSER_MACROFILE "<td valign=\"top\"><a href=\"_gwcgi_?a=d&d=$id_prefix$id\">$name</a>$extra</td>";
    1112 #       $current_position++;
    1113 #       if ($current_position == $table_columns) {
    1114 #       print BROWSER_MACROFILE "</tr>\n";
    1115 #       $current_position = 0;
    1116 #       }
    1117 
    1118 #       $last_name = $name;
    1119 #   }
    1120 
    1121     print BROWSER_MACROFILE "}\n\n";
     954        $name_to_id_mapping_for_category{$name} = $name_to_id_mapping->{$name};
     955    }
     956    &write_static_browser_macros($static_browser_package_name, \%name_to_id_mapping_for_category, $id_to_extra_mapping);
    1122957    }
    1123958
Note: See TracChangeset for help on using the changeset viewer.