Bugzilla – Attachment 181288 Details for
Bug 39698
Add option to expand responsive datatable rows by default
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 39698: Add option to expand responsive datatable
Bug-39698-Add-option-to-expand-responsive-datatabl.patch (text/plain), 24.36 KB, created by
Jake Deery
on 2025-04-22 14:52:27 UTC
(
hide
)
Description:
Bug 39698: Add option to expand responsive datatable
Filename:
MIME Type:
Creator:
Jake Deery
Created:
2025-04-22 14:52:27 UTC
Size:
24.36 KB
patch
obsolete
>From 4d0999e529f87c0b082967c8a3c5a46faf6613c8 Mon Sep 17 00:00:00 2001 >From: Jake Deery <jake.deery@openfifth.co.uk> >Date: Tue, 22 Apr 2025 09:45:35 +0100 >Subject: [PATCH] Bug 39698: Add option to expand responsive datatable > >This patch adds the 'OPACTableColExpandedByDefault' system preference, >disabled by default, which controls whether responsive datatable rows >are expanded or not. This work has been performed after recommendations >from a recent accessibility audit. > >TO TEST: >a) set 'OpacLocationBranchToDisplay' to both >b) search the OPAC for history, select first result >c) zoom your browser in to maxiumum, scroll down to holdings table > - notice how the rows are collapsed by default, with '+' visible >**apply patch** >e) refresh details page, notice how the behaviour is currently unchanged >f) change new 'OPACTableColExpandedByDefault' syspref to 'Expand' >g) return to OPAC details page, refresh, zoom in > - notice how the rows are now expanded by default, with '-' visible >**sign off** >--- > ..._add_syspref_for_responsive_opac_tables.pl | 19 +++++++++++++++ > installer/data/mysql/mandatory/sysprefs.sql | 3 ++- > .../en/modules/admin/preferences/opac.pref | 6 +++++ > .../bootstrap/en/modules/clubs/clubs-tab.tt | 12 +++++++++- > .../opac-authoritiessearchresultlist.tt | 12 +++++++++- > .../en/modules/opac-course-details.tt | 13 +++++++++- > .../en/modules/opac-course-reserves.tt | 13 +++++++++- > .../en/modules/opac-curbside-pickups.tt | 12 +++++++++- > .../bootstrap/en/modules/opac-detail.tt | 24 ++++++++++++++++--- > .../bootstrap/en/modules/opac-messaging.tt | 13 +++++++++- > .../en/modules/opac-readingrecord.tt | 12 +++++++++- > .../bootstrap/en/modules/opac-recalls.tt | 13 +++++++++- > .../en/modules/opac-search-history.tt | 13 +++++++++- > .../bootstrap/en/modules/opac-tags.tt | 7 ++++++ > .../bootstrap/en/modules/opac-topissues.tt | 7 ++++++ > .../bootstrap/en/modules/opac-user.tt | 12 +++++++++- > .../bootstrap/en/modules/sco/sco-main.tt | 7 ++++++ > 17 files changed, 184 insertions(+), 14 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_xxxxx_add_syspref_for_responsive_opac_tables.pl > >diff --git a/installer/data/mysql/atomicupdate/bug_xxxxx_add_syspref_for_responsive_opac_tables.pl b/installer/data/mysql/atomicupdate/bug_xxxxx_add_syspref_for_responsive_opac_tables.pl >new file mode 100644 >index 0000000000..0aab79db59 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_xxxxx_add_syspref_for_responsive_opac_tables.pl >@@ -0,0 +1,19 @@ >+use Modern::Perl; >+ >+return { >+ bug_number => "xxxxx", >+ description => "Add system preferences for responsive OPAC tables", >+ up => sub { >+ my ($args) = @_; >+ my ( $dbh, $out ) = @$args{qw(dbh out)}; >+ >+ $dbh->do( >+ q{ >+ INSERT IGNORE INTO systempreferences (variable,value,options,explanation,type) >+ VALUES ('OPACTableColExpandedByDefault', '0', NULL, 'Determines whether or not table rows are expanded by default on mobile', 'YesNo'); >+ } >+ ); >+ say $out "Added OPACTableColExpandedByDefault syspref"; >+ >+ } >+}; >diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql >index ab0bc8ee80..9e2698f58a 100644 >--- a/installer/data/mysql/mandatory/sysprefs.sql >+++ b/installer/data/mysql/mandatory/sysprefs.sql >@@ -574,6 +574,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('OpacSuppression','0','','Turn ON the OPAC Suppression feature, requires further setup, ask your system administrator for details','YesNo'), > ('OpacSuppressionByIPRange','','','Restrict the suppression to IP adresses outside of the IP range','free'), > ('OpacSuppressionRedirect','1','Redirect the opac detail page for suppressed records to an explanatory page (otherwise redirect to 404 error page)','','YesNo'), >+('OPACTableColExpandedByDefault','0',NULL,'Determines whether or not table rows are expanded by default on mobile','YesNo'), > ('opacthemes','bootstrap','','Define the current theme for the OPAC interface.','Themes'), > ('OpacTopissue','0',NULL,'If ON, enables the \'most popular items\' link on OPAC. Warning, this is an EXPERIMENTAL feature, turning ON may overload your server','YesNo'), > ('OpacTrustedCheckout', '0', NULL, 'Allow logged in OPAC users to check out to themselves', 'YesNo'), >@@ -879,4 +880,4 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('z3950AuthorAuthFields','701,702,700',NULL,'Define the MARC biblio fields for Personal Name Authorities to fill biblio.author','free'), > ('z3950NormalizeAuthor','0','','If ON, Personal Name Authorities will replace authors in biblio.author','YesNo'), > ('z3950Status','','','This syspref allows to define custom YAML based rules for marking items unavailable in z3950 results.','Textarea') >-; >\ No newline at end of file >+; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >index 265272f534..99904b62eb 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref >@@ -18,6 +18,12 @@ OPAC: > - pref: opacthemes > choices: opac-templates > - theme on the OPAC. >+ - >+ - pref: OPACTableColExpandedByDefault >+ choices: >+ 1: Expand >+ 0: Don't expand >+ - tables on the OPAC by default, when zoomed in or viewed on a mobile screen. > - > - Use the > - pref: OPACFallback >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/clubs/clubs-tab.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/clubs/clubs-tab.tt >index 818e363ea4..5d4b9bbaba 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/clubs/clubs-tab.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/clubs/clubs-tab.tt >@@ -96,6 +96,12 @@ > return false; > } > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > var Tables = $("#clubs-table-enrolled,#clubs-table-unenrolled"); > Tables.each(function(){ > $(this).kohaTable({ >@@ -103,7 +109,11 @@ > paging: false, > info: false, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [ > { className: "dtr-control", orderable: false, targets: -1 }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-authoritiessearchresultlist.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-authoritiessearchresultlist.tt >index 8075aaa423..0c57b63e0b 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-authoritiessearchresultlist.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-authoritiessearchresultlist.tt >@@ -121,12 +121,22 @@ > [% INCLUDE 'datatables.inc' %] > <script type="text/JavaScript"> > $(document).ready(function () { >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $(".table").kohaTable({ > searching: false, > paging: false, > info: false, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > }); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-details.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-details.tt >index 1c9056645c..bc3a00a859 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-details.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-details.tt >@@ -139,6 +139,13 @@ > <script> > $(document).ready(function() { > table_settings = [% TablesSettings.GetTableSettings( 'opac', 'course_items', 'course-items-table', 'json' ) | $raw %]; >+ >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#course-items-table").kohaTable( > { > dom: '<"top"<"table_controls"f>>t', >@@ -148,7 +155,11 @@ > searchPlaceholder: _("Search course reserves"), > }, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [ > { className: "dtr-control", orderable: false, targets: -1 }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-reserves.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-reserves.tt >index 04212c0cb1..ab446e3240 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-reserves.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-reserves.tt >@@ -86,6 +86,13 @@ > <script> > $(document).ready(function() { > table_settings = [% TablesSettings.GetTableSettings( 'opac', 'course_list', 'course_reserves_table', 'json' ) | $raw %] >+ >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#course_reserves_table").kohaTable( > { > dom: '<"top"<"table_controls"f>>rt<"clear">', >@@ -96,7 +103,11 @@ > searchPlaceholder: _("Search courses"), > }, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > cColumnDefs: [ > { className: "dtr-control", orderable: false, targets: -1 }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-curbside-pickups.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-curbside-pickups.tt >index 1bc70627f5..915bfcc5e3 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-curbside-pickups.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-curbside-pickups.tt >@@ -324,13 +324,23 @@ > existingPickupMoments[pickup.branchcode].push(pickupMoment); > }); > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $(document).ready(function() { > $("#pickups-table").kohaTable({ > searching: false, > paging: false, > info: false, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > }); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >index 8792eb3912..d749c648e3 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >@@ -1861,6 +1861,12 @@ > > var table_settings = [% TablesSettings.GetTableSettings( 'opac', 'biblio-detail', 'holdingst', 'json' ) | $raw %]; > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#holdingst").kohaTable( > { > dom: '<"clearfix">t', >@@ -1869,7 +1875,11 @@ > ], > bKohaColumnsUseNames: true, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > }, > table_settings >@@ -1882,7 +1892,11 @@ > ], > bKohaColumnsUseNames: true, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > }, > table_settings >@@ -1896,7 +1910,11 @@ > sorting: [[1, "desc"]], > bKohaColumnsUseNames: true, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [ > { className: "dtr-control", orderable: false, targets: -1 }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >index 6c4c4db1c6..afec1fc3a4 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt >@@ -407,12 +407,23 @@ > }, 100); > }); > } >+ >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $(".table").kohaTable({ > searching: false, > paging: false, > info: false, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > }); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >index f3775159ac..f32ec60744 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-readingrecord.tt >@@ -228,6 +228,12 @@ > $('#sortform').submit(); > }); > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > var table = $("#readingrec").kohaTable( > { > dom: '<"top"<"table_entries"i><"table_controls"fB>>t', >@@ -236,7 +242,11 @@ > searchPlaceholder: _("Search"), > }, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [ > { className: "dtr-control", orderable: false, targets: [-1] }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recalls.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recalls.tt >index c681ab1a70..fc4df6b6eb 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recalls.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-recalls.tt >@@ -135,9 +135,20 @@ > $(".cancel_recall").click(function () { > return confirmDelete(_("Are you sure you want to remove this recall?")); > }); >+ >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#recalls-table").kohaTable({ > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > }); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-search-history.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-search-history.tt >index ffd3c69649..23013376f7 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-search-history.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-search-history.tt >@@ -296,6 +296,13 @@ > $(document).ready(function () { > // We show table ordered by descending dates by default > // (so that the more recent query is shown first) >+ >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > let history_tables = $(".historyt").kohaTable({ > order: [[1, "desc"]], > dom: '<"top"<"table_entries"><"table_controls"fB>>t', >@@ -305,7 +312,11 @@ > searchPlaceholder: _("Search"), > }, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > }); > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt >index cb7a27db39..2fdec4bb74 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-tags.tt >@@ -295,6 +295,12 @@ > } > }); > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#mytagst").kohaTable({ > sorting: [[2, "asc"]], > columnDefs: [ >@@ -303,6 +309,7 @@ > ], > responsive: { > details: { >+ display: responsive_display, > type: "column", > target: -1, > }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt >index 407fc2f4d4..af5d856dc2 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt >@@ -147,11 +147,18 @@ > [% INCLUDE 'datatables.inc' %] > <script> > $(function () { >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > $("#topissuest").kohaTable({ > sorting: [[3, "desc"]], > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > responsive: { > details: { >+ display: responsive_display, > type: "column", > target: -1, > }, >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >index 852e6be2d4..dfac69ba41 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >@@ -1247,6 +1247,12 @@ > }); > }); > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > var dataTables = $("#recalls-table,#article-requests-table"); > dataTables.each(function(){ > $(this).kohaTable({ >@@ -1254,7 +1260,11 @@ > paging: false, > info: false, > responsive: { >- details: { type: "column", target: -1 }, >+ details: { >+ display: responsive_display, >+ type: "column", >+ target: -1 >+ }, > }, > columnDefs: [{ className: "dtr-control", orderable: false, targets: -1 }], > }); >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >index d2d87448b2..e4b859bbc5 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt >@@ -460,6 +460,12 @@ > dofocus(); > [% IF ( patronid ) %]sco_init();[% END %] > >+ [% IF ( Koha.Preference('OPACTableColExpandedByDefault') ) %] >+ var responsive_display = DataTable.Responsive.display.childRowImmediate; >+ [% ELSE %] >+ var responsive_display = DataTable.Responsive.display.childRow; >+ [% END %] >+ > var dTables = $("#loanTable, #holdst, #finestable"); > dTables.each(function(){ > var thIndex = $(this).find("th.psort").index(); >@@ -477,6 +483,7 @@ > }, > responsive: { > details: { >+ display: responsive_display, > type: "column", > target: -1, > }, >-- >2.43.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 39698
:
181288
|
181560
|
181561
|
183250