View | Details | Raw Unified | Return to bug 15326
Collapse All | Expand All

(-)a/Koha/CmsPages.pm (+9 lines)
Lines 131-136 sub list { Link Here
131
131
132
    my $page_list = [];
132
    my $page_list = [];
133
    my $parent_list = [];
133
    my $parent_list = [];
134
    my $navigation = [];
134
    my %index;
135
    my %index;
135
    my $data;
136
    my $data;
136
    while ( my $page = $pages->next ) {
137
    while ( my $page = $pages->next ) {
Lines 163-170 sub list { Link Here
163
        my $parent = { id => $old_id };
164
        my $parent = { id => $old_id };
164
        $parent->{'title_link'} = $index{ $old_id }->{'title_link'} unless not defined $old_id;
165
        $parent->{'title_link'} = $index{ $old_id }->{'title_link'} unless not defined $old_id;
165
        $page->{'parent'} = $parent;
166
        $page->{'parent'} = $parent;
167
    use Data::Dumper;
168
    warn Dumper($page->{title});
169
        if ( !$page->{parent} ) {
170
            push @{ $navigation }, $page;
171
        }
166
    }
172
    }
167
173
174
    while ( scalar @{ $page_list } > 0 ) {
175
176
168
    return ( $page_list, $parent_list, $data );
177
    return ( $page_list, $parent_list, $data );
169
}
178
}
170
179
(-)a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.pl (+30 lines)
Line 0 Link Here
1
use Modern::Perl;
2
3
{
4
    bug_number => "15326",
5
    description => "Add new table cms_pages",
6
    up => sub {
7
        my ($args) = @_;
8
        my ($dbh, $out) = @$args{qw(dbh out)};
9
10
        unless( TableExists( 'cms_pages' ) ) {
11
            $dbh->do(q{ CREATE TABLE `cms_pages` (
12
              `id` int(6) NOT NULL AUTO_INCREMENT,
13
              `parent` int(6) DEFAULT NULL,
14
              `branchcode` varchar(10) DEFAULT NULL,
15
              `lang` varchar(25) NOT NULL DEFAULT '',
16
              `title` varchar(255) DEFAULT NULL,
17
              `title_link` varchar(64) DEFAULT NULL,
18
              `sortorder` int(3) NOT NULL DEFAULT 0,
19
              `location` tinyint(1) DEFAULT NULL,
20
              `publish` tinyint(1) NOT NULL DEFAULT 0,
21
              `content` text,
22
              PRIMARY KEY (`id`),
23
              INDEX `parent_index` (`parent`),
24
              INDEX `lang_index` (`lang`),
25
              INDEX `branchcode_index` (`branchcode`),
26
              CONSTRAINT `cmspages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
27
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci });
28
        }
29
    }
30
}
(-)a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages.sql (-17 lines)
Lines 1-17 Link Here
1
 CREATE TABLE `cms_pages` (
2
  `id` int(6) NOT NULL AUTO_INCREMENT,
3
  `parent` int(6) DEFAULT NULL,
4
  `branchcode` varchar(10) DEFAULT NULL,
5
  `lang` varchar(25) NOT NULL DEFAULT '',
6
  `title` varchar(255) DEFAULT NULL,
7
  `title_link` varchar(64) DEFAULT NULL,
8
  `sortorder` int(3) NOT NULL DEFAULT 0,
9
  `location` tinyint(1) DEFAULT NULL,
10
  `publish` tinyint(1) NOT NULL DEFAULT 0,
11
  `content` text,
12
  PRIMARY KEY (`id`),
13
  INDEX `parent_index` (`parent`),
14
  INDEX `lang_index` (`lang`),
15
  INDEX `branchcode_index` (`branchcode`),
16
  CONSTRAINT `cmspages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
17
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
(-)a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.pl (+12 lines)
Line 0 Link Here
1
use Modern::Perl;
2
3
{
4
    bug_number => "15326",
5
    description => "Add new permission edit_pages",
6
    up => sub {
7
        my ($args) = @_;
8
        my ($dbh, $out) = @$args{qw(dbh out)};
9
10
        $dbh->do(q{INSERT IGNORE INTO permissions (`module_bit`, `code`, `description`) VALUES ('13', 'edit_pages', 'Create, edit and delete CMS pages for OPAC and staff interfaces') });
11
    }
12
}
(-)a/installer/data/mysql/atomicupdate/bug15326-add_cms_pages_permission.sql (-1 lines)
Line 1 Link Here
1
INSERT IGNORE INTO permissions (`module_bit`, `code`, `description`) VALUES ('13', 'edit_pages', 'Create, edit and delete CMS pages for OPAC and staff interfaces');
(-)a/installer/data/mysql/kohastructure.sql (-23 / +23 lines)
Lines 1974-1979 CREATE TABLE `clubs` ( Link Here
1974
/*!40101 SET character_set_client = @saved_cs_client */;
1974
/*!40101 SET character_set_client = @saved_cs_client */;
1975
1975
1976
--
1976
--
1977
-- Table structure for table 'cms_pages', used for CMS functionality.
1978
--
1979
1980
DROP TABLE IF EXISTS `cms_pages`;
1981
CREATE TABLE `cms_pages` (
1982
  `id` int(6) NOT NULL AUTO_INCREMENT,
1983
  `parent` int(6) DEFAULT NULL,
1984
  `branchcode` varchar(10) DEFAULT NULL,
1985
  `lang` varchar(25) NOT NULL DEFAULT '',
1986
  `title` varchar(255) DEFAULT NULL,
1987
  `title_link` varchar(64) DEFAULT NULL,
1988
  `sortorder` int(3) NOT NULL DEFAULT 0,
1989
  `location` tinyint(1) DEFAULT NULL,
1990
  `publish` tinyint(1) NOT NULL DEFAULT 0,
1991
  `content` text,
1992
  PRIMARY KEY (`id`),
1993
  INDEX `parent_index` (`parent`),
1994
  INDEX `lang_index` (`lang`),
1995
  INDEX `branchcode_index` (`branchcode`),
1996
  CONSTRAINT `pages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
1997
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1998
1999
--
1977
-- Table structure for table `collections`
2000
-- Table structure for table `collections`
1978
--
2001
--
1979
2002
Lines 5357-5385 CREATE TABLE `zebraqueue` ( Link Here
5357
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
5380
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
5358
/*!40101 SET character_set_client = @saved_cs_client */;
5381
/*!40101 SET character_set_client = @saved_cs_client */;
5359
5382
5360
--
5361
-- Table structure for table 'cms_pages', used for CMS functionality.
5362
--
5363
5364
DROP TABLE IF EXISTS `cms_pages`;
5365
 CREATE TABLE `cms_pages` (
5366
  `id` int(6) NOT NULL AUTO_INCREMENT,
5367
  `parent` int(6) DEFAULT NULL,
5368
  `branchcode` varchar(10) DEFAULT NULL,
5369
  `lang` varchar(25) NOT NULL DEFAULT '',
5370
  `title` varchar(255) DEFAULT NULL,
5371
  `title_link` varchar(64) DEFAULT NULL,
5372
  `sortorder` int(3) NOT NULL DEFAULT 0,
5373
  `location` tinyint(1) DEFAULT NULL,
5374
  `publish` tinyint(1) NOT NULL DEFAULT 0,
5375
  `content` text,
5376
  PRIMARY KEY (`id`),
5377
  INDEX `parent_index` (`parent`),
5378
  INDEX `lang_index` (`lang`),
5379
  INDEX `branchcode_index` (`branchcode`),
5380
  CONSTRAINT `pages_branchcode_ibfk` FOREIGN KEY (`branchcode`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE
5381
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
5382
5383
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
5383
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
5384
5384
5385
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
5385
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/cms-pages-nav.inc (-3 / +7 lines)
Lines 1-14 Link Here
1
[% IF pages %]
1
[% IF pages %]
2
    <ul id="cms_nav">
2
    <ul id="cms_nav">
3
    [% FOREACH page IN pages %]
4
<li>[% page.title_link %]</li>
5
    [% END %]
6
    <hr>
3
        [% FOREACH page IN pages %]
7
        [% FOREACH page IN pages %]
4
            [% IF page.parentObj %]
8
            [% IF page.parentObj %]
5
                <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.parentObj.id | uri %]">[% page.parentObj.title | html %]</a></li>
9
                <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.parentObj.id | uri %]">[% page.parentObj.title_link | html %]</a></li>
6
                <ul>
10
                <ul>
7
                    <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.id | uri %]">[% page.title | html %]</a></li>
11
                    <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.id | uri %]">[% page.title_link | html %]</a></li>
8
                </ul>
12
                </ul>
9
            [% ELSE %]
13
            [% ELSE %]
10
                [% UNLESS page.isaParent %]
14
                [% UNLESS page.isaParent %]
11
                    <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.id | uri %]">[% page.title | html %]</a></li>
15
                    <li><a href="/cgi-bin/koha/tools/cmspages.pl?op=view&id=[% page.id | uri %]">[% page.title_link | html %]</a></li>
12
                [% END %]
16
                [% END %]
13
            [% END %]
17
            [% END %]
14
        [% END %]
18
        [% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/cmspages.tt (-28 / +51 lines)
Lines 2-51 Link Here
2
[% USE KohaDates %]
2
[% USE KohaDates %]
3
[% USE Koha %]
3
[% USE Koha %]
4
[% USE Asset %]
4
[% USE Asset %]
5
[% USE Branches %]
5
[% SET footerjs = 1 %]
6
[% SET footerjs = 1 %]
6
[% SET link_opac_base = Koha.Preference( 'OPACBaseURL' ) %]
7
[% SET link_opac_base = Koha.Preference( 'OPACBaseURL' ) %]
7
[% SET link_opac = link_opac_base _ '/cgi-bin/koha/opac-cmspages.pl' %]
8
[% SET link_opac = link_opac_base _ '/cgi-bin/koha/opac-cmspages.pl' %]
8
[% INCLUDE 'doc-head-open.inc' %]
9
[% INCLUDE 'doc-head-open.inc' %]
9
<title>
10
<title>
10
    Koha &rsaquo; Tools &rsaquo; Pages
11
    [% IF ( form ) %]
11
    [% IF ( form ) %]
12
        [% IF ( id ) %]
12
        [% IF ( id ) %]
13
            &rsaquo; Edit page [% data.title | html %]
13
            Edit page [% data.title | html %] &rsaquo;
14
        [% ELSE %]
14
        [% ELSE %]
15
            &rsaquo; Add page
15
            Add page &rsaquo;
16
        [% END %]
16
        [% END %]
17
    [% ELSIF ( view ) %]
17
    [% ELSIF ( view ) %]
18
        [% IF ( cms_page.parent ) %]
18
        [% IF ( cms_page.parent ) %]
19
             [% FOREACH parent IN parent_list %]
19
             [% FOREACH parent IN parent_list %]
20
                &rsaquo; [% IF parent.id == cms_page.parent %][% parent.title_link | uri %][% END %]
20
                [% IF parent.id == cms_page.parent %][% parent.title_link | uri %] &rsaquo;[% END %]
21
             [% END %]
21
             [% END %]
22
        [% END %]
22
        [% END %]
23
        &rsaquo; [% cms_page.title_link | html %]
23
        [% cms_page.title_link | html %] &rsaquo;
24
    [% END %]
24
    [% END %]
25
    Pages &rsaquo; Tools &rsaquo; Koha
25
</title>
26
</title>
26
[% INCLUDE 'doc-head-close.inc' %]
27
[% INCLUDE 'doc-head-close.inc' %]
27
</head>
28
</head>
28
<body id="tools_koha-content" class="tools">
29
<body id="tools_koha-content" class="tools">
29
    [% INCLUDE 'header.inc' %]
30
    [% INCLUDE 'header.inc' %]
30
    [% INCLUDE 'cat-search.inc' %]
31
    [% INCLUDE 'cat-search.inc' %]
31
    <div id="breadcrumbs">
32
    <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
32
        <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
33
        <ol>
33
        <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> &rsaquo;
34
            <li>
34
        [% IF ( form ) %]
35
                <a href="/cgi-bin/koha/mainpage.pl">Home</a>
35
            <a href="[% link_self | url %]">Pages</a> &rsaquo;
36
            </li>
36
            [% IF ( id ) %]Edit page <em>[% data.title | html %]</em>[% ELSE %]Add page[% END %]
37
            <li>
37
        [% ELSIF ( view ) %]
38
                <a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a>
38
            <a href="[% link_self | url %]">Pages</a> &rsaquo;
39
            </li>
39
            [% IF ( cms_page.parent ) %]
40
            <li>
40
                 [% FOREACH parent IN parent_list %]
41
                [% IF form || view %]
41
                     [% IF parent.id == cms_page.parent %]<a href="[% link_self | url %]?op=view&amp;id=[% cms_page.parent | uri %]">[% parent.title_link | uri %]</a> &rsaquo;[% END %]
42
                    <a href="/cgi-bin/koha/tools/cmspages.pl">Pages</a>
42
                 [% END %]
43
                [% ELSE %]
44
                    <a href="/cgi-bin/koha/tools/cmspages.pl" aria-current="page">Pages</a>
45
                [% END %]
46
            </li>
47
            [% IF ( form ) %]
48
                <li>
49
                    <a href="#" aria-current="page">
50
                        [% IF ( id ) %]
51
                            Edit page <em>[% data.title | html %]</em>
52
                        [% ELSE %]
53
                            Add page
54
                        [% END %]
55
                    </a>
56
                </li>
57
            [% ELSIF ( view ) %]
58
                <li>
59
                [% IF ( cms_page.parent ) %]
60
                     [% FOREACH parent IN parent_list %]
61
                         [% IF parent.id == cms_page.parent %]<a href="[% link_self | url %]?op=view&amp;id=[% cms_page.parent | uri %]" aria-current="page">[% parent.title_link | uri %]</a>[% END %]
62
                     [% END %]
63
                [% END %]
64
                [% cms_page.title_link | html %]
65
                </li>
43
            [% END %]
66
            [% END %]
44
            [% cms_page.title_link | html %]
67
        </ol>
45
        [% ELSE %]
68
    </nav>
46
            Pages
47
        [% END %]
48
    </div>
49
69
50
    [% IF ( form ) %]
70
    [% IF ( form ) %]
51
        <div class="main container-fluid">
71
        <div class="main container-fluid">
Lines 58-70 Link Here
58
    [% END %]
78
    [% END %]
59
                <main>
79
                <main>
60
80
61
                    [% UNLESS ( link_opac_base ) %]
62
                        <div class="dialog alert">
63
                            Warning: Preference <em>OPACBaseURL</em> not set. Some links might not work!
64
                        </div>
65
                    [% END %]
66
67
                    [% UNLESS ( form || view ) %]
81
                    [% UNLESS ( form || view ) %]
82
                        [% UNLESS ( link_opac_base ) %]
83
                            <div class="dialog error">
84
                                System preference <strong class="error"><a href="/cgi-bin/koha/admin/preferences.pl?op=search&searchfield=OPACBaseURL">OPACBaseURL</a></strong> not set. Some links might not work!
85
                            </div>
86
                        [% END %]
87
68
                        <div id="toolbar" class="btn-toolbar">
88
                        <div id="toolbar" class="btn-toolbar">
69
                            <a class="btn btn-default" id="newentry" href="[% link_self | url %]?op=form"><i class="fa fa-plus"></i> New page</a>
89
                            <a class="btn btn-default" id="newentry" href="[% link_self | url %]?op=form"><i class="fa fa-plus"></i> New page</a>
70
                        </div>
90
                        </div>
Lines 84-89 Link Here
84
                        <div class="row">
104
                        <div class="row">
85
                            <div id="cms-page" class="col-sm-8">
105
                            <div id="cms-page" class="col-sm-8">
86
                                <h1>Pages: [% cms_page.title | html %]</h1>
106
                                <h1>Pages: [% cms_page.title | html %]</h1>
107
                                [% IF ( cms_page.branchcode && cms_page.branchcode != Branches.GetLoggedInBranchcode ) %]
108
                                    <div class="dialog message">This page is listed to display for [% Branches.GetName( cms_page.branchcode ) %] only.</div>
109
                                [% END %]
87
                                [% IF ( cms_page.publish == 1 ) %]
110
                                [% IF ( cms_page.publish == 1 ) %]
88
                                    [% cms_page.content | $raw %]
111
                                    [% cms_page.content | $raw %]
89
                                [% ELSE %]
112
                                [% ELSE %]
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-cmspages.tt (-13 / +18 lines)
Lines 2-8 Link Here
2
[% USE Koha %]
2
[% USE Koha %]
3
[% USE Branches %]
3
[% USE Branches %]
4
[% INCLUDE 'doc-head-open.inc' %]
4
[% INCLUDE 'doc-head-open.inc' %]
5
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online catalog[% END %][% IF (cms_page.title) %] &rsaquo; [% cms_page.title | html %][% END%]</title>
5
<title>[% IF (cms_page.title) %][% cms_page.title | html %] &rsaquo; [% END %][% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online catalog[% END %]</title>
6
[% INCLUDE 'doc-head-close.inc' %]
6
[% INCLUDE 'doc-head-close.inc' %]
7
[% BLOCK cssinclude %][% END %]
7
[% BLOCK cssinclude %][% END %]
8
</head>
8
</head>
Lines 10-29 Link Here
10
[% INCLUDE 'masthead.inc' %]
10
[% INCLUDE 'masthead.inc' %]
11
11
12
<div class="main">
12
<div class="main">
13
    <ul class="breadcrumb">
13
    <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumbs">
14
        <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">&rsaquo;</span></li>
14
        <ol class="breadcrumb">
15
        [% IF ( cms_page.parent ) %]
15
            <li class="breadcrumb-item active">
16
            [% FOREACH parent IN parents %]
16
                <a href="#" aria-current="page">[% cms_page.title_link | html %]</a>
17
                [% IF parent.id == cms_page.parent %]
17
            </li>
18
                    <li>
18
            [% IF ( cms_page.parent ) %]
19
                        <a href="/cgi-bin/koha/opac-cmspages.pl?id=[% cms_page.parent | uri %]">[% parent.title_link | html%]</a>
19
                [% FOREACH parent IN parents %]
20
                        <span class="divider">&rsaquo;</span>
20
                    [% IF parent.id == cms_page.parent %]
21
                    </li>
21
                        <li class="breadcrumb-item">
22
                            <a href="/cgi-bin/koha/opac-cmspages.pl?id=[% cms_page.parent | uri %]">[% parent.title_link | html%]</a>
23
                        </li>
24
                    [% END %]
22
                [% END %]
25
                [% END %]
23
            [% END %]
26
            [% END %]
24
        [% END %]
27
            <li class="breadcrumb-item">
25
        <li><a href="#">[% cms_page.title_link | html %]</a></li>
28
                <a href="/cgi-bin/koha/opac-main.pl">Home</a>
26
    </ul>
29
            </li>
30
        </ol>
31
    </nav>
27
32
28
    [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
33
    [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
29
        [% IF ( loggedinusername ) %]
34
        [% IF ( loggedinusername ) %]
(-)a/opac/opac-cmspages.pl (-2 / +21 lines)
Lines 19-26 Link Here
19
19
20
use Modern::Perl;
20
use Modern::Perl;
21
use CGI qw( -utf8 );
21
use CGI qw( -utf8 );
22
use C4::Auth;
22
use C4::Auth qw( get_template_and_user );
23
use C4::Output;
23
use C4::Output qw( output_html_with_http_headers );
24
use C4::Languages qw( getTranslatedLanguages accept_language );
24
use C4::Languages qw( getTranslatedLanguages accept_language );
25
use Koha::CmsPages;
25
use Koha::CmsPages;
26
use Data::Dumper;
26
use Data::Dumper;
Lines 47-52 my ( $page_list, $parent_list, $page_data ) = Koha::CmsPages->list( $id ); Link Here
47
47
48
my $links = Koha::CmsPages->search( { publish => 1 }, { order_by => 'sortorder' } );
48
my $links = Koha::CmsPages->search( { publish => 1 }, { order_by => 'sortorder' } );
49
my $cms_data = Koha::CmsPages->find( $id );
49
my $cms_data = Koha::CmsPages->find( $id );
50
if ( $cms_data->publish ) {
51
    # page has not been published
52
    print $input->redirect("/cgi-bin/koha/errors/404.pl");
53
    exit;
54
}
55
56
if ( $cms_data->location == 1 ) {
57
    # page for staff client only
58
    print $input->redirect("/cgi-bin/koha/errors/404.pl");
59
    exit;
60
}
61
62
my $patron = Koha::Patrons->find( $borrowernumber );
63
if ( $cms_data->branchcode and $cms_data->branchcode ne $patron->branchcode ) {
64
    # page not to display for this library
65
    print $input->redirect("/cgi-bin/koha/errors/404.pl");
66
    exit;
67
}
68
50
$template->param(
69
$template->param(
51
    links       => $links,
70
    links       => $links,
52
    cms_page    => $cms_data,
71
    cms_page    => $cms_data,
(-)a/tools/cmspages.pl (-3 / +2 lines)
Lines 20-27 Link Here
20
20
21
use Modern::Perl;
21
use Modern::Perl;
22
use CGI qw( -utf8 );
22
use CGI qw( -utf8 );
23
use C4::Auth;
23
use C4::Auth qw( get_template_and_user );
24
use C4::Output;
24
use C4::Output qw( output_html_with_http_headers );
25
use C4::Languages qw( getTranslatedLanguages );
25
use C4::Languages qw( getTranslatedLanguages );
26
use Koha::CmsPages;
26
use Koha::CmsPages;
27
use Koha::Libraries;
27
use Koha::Libraries;
28
- 

Return to bug 15326