| | 1031 | sub dialog_refresh_templates { |
| | 1032 | my $app = shift; |
| | 1033 | $app->validate_magic or return; |
| | 1034 | |
| | 1035 | # permission check |
| | 1036 | my $perms = $app->permissions; |
| | 1037 | return $app->errtrans("Permission denied.") |
| | 1038 | unless $app->user->is_superuser || |
| | 1039 | $perms->can_administer_blog || |
| | 1040 | $perms->can_edit_templates; |
| | 1041 | |
| | 1042 | my $param = {}; |
| | 1043 | my $blog = $app->blog; |
| | 1044 | $param->{return_args} = $app->param('return_args'); |
| | 1045 | |
| | 1046 | if ($blog) { |
| | 1047 | $param->{blog_id} = $blog->id; |
| | 1048 | |
| | 1049 | my $sets = $app->registry("template_sets"); |
| | 1050 | $sets->{$_}{key} = $_ for keys %$sets; |
| | 1051 | $sets = $app->filter_conditional_list([ values %$sets ]); |
| | 1052 | |
| | 1053 | no warnings; # some sets may not define an order |
| | 1054 | @$sets = sort { $a->{order} <=> $b->{order} } @$sets; |
| | 1055 | $param->{'template_set_loop'} = $sets; |
| | 1056 | |
| | 1057 | my $existing_set = $blog->template_set || 'mt_blog'; |
| | 1058 | foreach (@$sets) { |
| | 1059 | if ($_->{key} eq $existing_set) { |
| | 1060 | $_->{selected} = 1; |
| | 1061 | } |
| | 1062 | } |
| | 1063 | $param->{'template_set_index'} = $#$sets; |
| | 1064 | $param->{'template_set_count'} = scalar @$sets; |
| | 1065 | |
| | 1066 | $param->{template_sets} = $sets; |
| | 1067 | $param->{screen_id} = "refresh-templates-dialog"; |
| | 1068 | } |
| | 1069 | |
| | 1070 | # load template sets |
| | 1071 | $app->build_page('dialog/refresh_templates.tmpl', |
| | 1072 | $param); |
| | 1073 | } |
| | 1074 | |