| 774 | | sub delete_map { |
| 775 | | my $app = shift; |
| 776 | | $app->validate_magic() or return; |
| 777 | | my $perms = $app->{perms} |
| 778 | | or return $app->error( $app->translate("No permissions") ); |
| 779 | | my $q = $app->param; |
| 780 | | my $id = $q->param('id'); |
| 781 | | |
| 782 | | require MT::TemplateMap; |
| 783 | | MT::TemplateMap->remove( { id => $id } ); |
| 784 | | my $html = |
| 785 | | _generate_map_table( $app, $q->param('blog_id'), |
| 786 | | $q->param('template_id') ); |
| 787 | | $app->{no_print_body} = 1; |
| 788 | | $app->send_http_header("text/plain"); |
| 789 | | $app->print($html); |
| 790 | | } |
| 791 | | |
| 792 | | sub add_map { |
| 793 | | my $app = shift; |
| 794 | | $app->validate_magic() or return; |
| 795 | | my $perms = $app->{perms} |
| 796 | | or return $app->error( $app->translate("No permissions") ); |
| 797 | | |
| 798 | | my $q = $app->param; |
| 799 | | |
| 800 | | require MT::TemplateMap; |
| 801 | | my $blog_id = $q->param('blog_id'); |
| 802 | | my $at = $q->param('new_archive_type'); |
| 803 | | my $count = MT::TemplateMap->count( |
| 804 | | { |
| 805 | | blog_id => $blog_id, |
| 806 | | archive_type => $at |
| 807 | | } |
| 808 | | ); |
| 809 | | my $map = MT::TemplateMap->new; |
| 810 | | $map->is_preferred( $count ? 0 : 1 ); |
| 811 | | $map->template_id( scalar $q->param('template_id') ); |
| 812 | | $map->blog_id($blog_id); |
| 813 | | $map->archive_type($at); |
| 814 | | $map->save |
| 815 | | or return $app->error( |
| 816 | | $app->translate( "Saving map failed: [_1]", $map->errstr ) ); |
| 817 | | my $html = |
| 818 | | _generate_map_table( $app, $blog_id, scalar $q->param('template_id') ); |
| 819 | | $app->rebuild( |
| 820 | | BlogID => $blog_id, |
| 821 | | ArchiveType => $at, |
| 822 | | TemplateMap => $map, |
| 823 | | TemplateID => scalar $q->param('template_id'), |
| 824 | | NoStatic => 1 |
| 825 | | ) or return $app->publish_error(); |
| 826 | | $app->{no_print_body} = 1; |
| 827 | | $app->send_http_header("text/plain"); |
| 828 | | $app->print($html); |
| 829 | | } |
| 830 | | |