From 3fbb36e1fe1378c2ca736b6f7776c93a40eb9650 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 19 May 2016 09:42:48 +0100 Subject: [PATCH] [PASSED QA] Bug 16552: Add the ability to change the default holdings sort This new enhancement will add the ability to change the default holdings sort on OPAC displays to be by library, instead of item type. This patch adds a new pref OPACHoldingsDefaultSortField with 3 different possible values: - Item type - Home library - Holding library Note that if OpacLocationBranchToDisplay is set not to display home libraries, unexpected behaviors might happen if OPACHoldingsDefaultSortField is set to "Home library", same for "Holding library". Test plan: - Confirm that the default value for OPACHoldingsDefaultSortField is 'first column' after executing the DB entry and that there is no change in the behavior (first column is used to sort the holdings table on the detail page). - Set OpacLocationBranchToDisplay to both and play with the different values of OPACHoldingsDefaultSortField => Confrm that the default column used to sort the table is correctly changed - Set the pref SeparateHoldings on => Confirm that both tables (Holdings and other holdings) are sorted using the OPACHoldingsDefaultSortField value. Sponsored-by: University of the Arts London Signed-off-by: Claire Gravely Signed-off-by: Katrin Fischer --- installer/data/mysql/atomicupdate/bug_16552.sql | 2 ++ installer/data/mysql/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/opac.pref | 7 +++++++ koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt | 14 +++++++++++++- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 installer/data/mysql/atomicupdate/bug_16552.sql diff --git a/installer/data/mysql/atomicupdate/bug_16552.sql b/installer/data/mysql/atomicupdate/bug_16552.sql new file mode 100644 index 0000000..21fdb5c --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_16552.sql @@ -0,0 +1,2 @@ +INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES +('OPACHoldingsDefaultSortField','first_column','first_column|homebranch|holdingbranch','Default sort field for the holdings table at the OPAC','choice'); diff --git a/installer/data/mysql/sysprefs.sql b/installer/data/mysql/sysprefs.sql index 5dc6bb9..93fd7cb 100644 --- a/installer/data/mysql/sysprefs.sql +++ b/installer/data/mysql/sysprefs.sql @@ -308,6 +308,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('opacheader','','70|10','Add HTML to be included as a custom header in the OPAC','Textarea'), ('OpacHiddenItems','','','This syspref allows to define custom rules for hiding specific items at opac. See docs/opac/OpacHiddenItems.txt for more informations.','Textarea'), ('OpacHighlightedWords','1','','If Set, then queried words are higlighted in OPAC','YesNo'), +('OPACHoldingsDefaultSortField','first_column','first_column|homebranch|holdingbranch','Default sort field for the holdings table at the OPAC','choice'), ('OpacHoldNotes','0','','Show hold notes on OPAC','YesNo'), ('OPACISBD','#100||{ 100a }{ 100b }{ 100c }{ 100d }{ 110a }{ 110b }{ 110c }{ 110d }{ 110e }{ 110f }{ 110g }{ 130a }{ 130d }{ 130f }{ 130g }{ 130h }{ 130k }{ 130l }{ 130m }{ 130n }{ 130o }{ 130p }{ 130r }{ 130s }{ 130t }|

\r\n#245||{ 245a }{ 245b }{245f }{ 245g }{ 245k }{ 245n }{ 245p }{ 245s }{ 245h }|\r\n#246||{ : 246i }{ 246a }{ 246b }{ 246f }{ 246g }{ 246n }{ 246p }{ 246h }|\r\n#242||{ = 242a }{ 242b }{ 242n }{ 242p }{ 242h }|\r\n#245||{ 245c }|\r\n#242||{ = 242c }|\r\n#250| - |{ 250a }{ 250b }|\r\n#254|, |{ 254a }|\r\n#255|, |{ 255a }{ 255b }{ 255c }{ 255d }{ 255e }{ 255f }{ 255g }|\r\n#256|, |{ 256a }|\r\n#257|, |{ 257a }|\r\n#258|, |{ 258a }{ 258b }|\r\n#260| - |{ 260a }{ 260b }{ 260c }|\r\n#300| - |{ 300a }{ 300b }{ 300c }{ 300d }{ 300e }{ 300f }{ 300g }|\r\n#306| - |{ 306a }|\r\n#307| - |{ 307a }{ 307b }|\r\n#310| - |{ 310a }{ 310b }|\r\n#321| - |{ 321a }{ 321b }|\r\n#340| - |{ 3403 }{ 340a }{ 340b }{ 340c }{ 340d }{ 340e }{ 340f }{ 340h }{ 340i }|\r\n#342| - |{ 342a }{ 342b }{ 342c }{ 342d }{ 342e }{ 342f }{ 342g }{ 342h }{ 342i }{ 342j }{ 342k }{ 342l }{ 342m }{ 342n }{ 342o }{ 342p }{ 342q }{ 342r }{ 342s }{ 342t }{ 342u }{ 342v }{ 342w }|\r\n#343| - |{ 343a }{ 343b }{ 343c }{ 343d }{ 343e }{ 343f }{ 343g }{ 343h }{ 343i }|\r\n#351| - |{ 3513 }{ 351a }{ 351b }{ 351c }|\r\n#352| - |{ 352a }{ 352b }{ 352c }{ 352d }{ 352e }{ 352f }{ 352g }{ 352i }{ 352q }|\r\n#362| - |{ 362a }{ 351z }|\r\n#440| - |{ 440a }{ 440n }{ 440p }{ 440v }{ 440x }|.\r\n#490| - |{ 490a }{ 490v }{ 490x }|.\r\n#800| - |{ 800a }{ 800b }{ 800c }{ 800d }{ 800e }{ 800f }{ 800g }{ 800h }{ 800j }{ 800k }{ 800l }{ 800m }{ 800n }{ 800o }{ 800p }{ 800q }{ 800r }{ 800s }{ 800t }{ 800u }{ 800v }|.\r\n#810| - |{ 810a }{ 810b }{ 810c }{ 810d }{ 810e }{ 810f }{ 810g }{ 810h }{ 810k }{ 810l }{ 810m }{ 810n }{ 810o }{ 810p }{ 810r }{ 810s }{ 810t }{ 810u }{ 810v }|.\r\n#811| - |{ 811a }{ 811c }{ 811d }{ 811e }{ 811f }{ 811g }{ 811h }{ 811k }{ 811l }{ 811n }{ 811p }{ 811q }{ 811s }{ 811t }{ 811u }{ 811v }|.\r\n#830| - |{ 830a }{ 830d }{ 830f }{ 830g }{ 830h }{ 830k }{ 830l }{ 830m }{ 830n }{ 830o }{ 830p }{ 830r }{ 830s }{ 830t }{ 830v }|.\r\n#500|

|{ 5003 }{ 500a }|\r\n#501|

|{ 501a }|\r\n#502|

|{ 502a }|\r\n#504|

|{ 504a }|\r\n#505|

|{ 505a }{ 505t }{ 505r }{ 505g }{ 505u }|\r\n#506|

|{ 5063 }{ 506a }{ 506b }{ 506c }{ 506d }{ 506u }|\r\n#507|

|{ 507a }{ 507b }|\r\n#508|

|{ 508a }{ 508a }|\r\n#510|

|{ 5103 }{ 510a }{ 510x }{ 510c }{ 510b }|\r\n#511|

|{ 511a }|\r\n#513|

|{ 513a }{513b }|\r\n#514|

|{ 514z }{ 514a }{ 514b }{ 514c }{ 514d }{ 514e }{ 514f }{ 514g }{ 514h }{ 514i }{ 514j }{ 514k }{ 514m }{ 514u }|\r\n#515|

|{ 515a }|\r\n#516|

|{ 516a }|\r\n#518|

|{ 5183 }{ 518a }|\r\n#520|

|{ 5203 }{ 520a }{ 520b }{ 520u }|\r\n#521|

|{ 5213 }{ 521a }{ 521b }|\r\n#522|

|{ 522a }|\r\n#524|

|{ 524a }|\r\n#525|

|{ 525a }|\r\n#526|

|{\\n510i }{\\n510a }{ 510b }{ 510c }{ 510d }{\\n510x }|\r\n#530|

|{\\n5063 }{\\n506a }{ 506b }{ 506c }{ 506d }{\\n506u }|\r\n#533|

|{\\n5333 }{\\n533a }{\\n533b }{\\n533c }{\\n533d }{\\n533e }{\\n533f }{\\n533m }{\\n533n }|\r\n#534|

|{\\n533p }{\\n533a }{\\n533b }{\\n533c }{\\n533d }{\\n533e }{\\n533f }{\\n533m }{\\n533n }{\\n533t }{\\n533x }{\\n533z }|\r\n#535|

|{\\n5353 }{\\n535a }{\\n535b }{\\n535c }{\\n535d }|\r\n#538|

|{\\n5383 }{\\n538a }{\\n538i }{\\n538u }|\r\n#540|

|{\\n5403 }{\\n540a }{ 540b }{ 540c }{ 540d }{\\n520u }|\r\n#544|

|{\\n5443 }{\\n544a }{\\n544b }{\\n544c }{\\n544d }{\\n544e }{\\n544n }|\r\n#545|

|{\\n545a }{ 545b }{\\n545u }|\r\n#546|

|{\\n5463 }{\\n546a }{ 546b }|\r\n#547|

|{\\n547a }|\r\n#550|

|{ 550a }|\r\n#552|

|{ 552z }{ 552a }{ 552b }{ 552c }{ 552d }{ 552e }{ 552f }{ 552g }{ 552h }{ 552i }{ 552j }{ 552k }{ 552l }{ 552m }{ 552n }{ 562o }{ 552p }{ 552u }|\r\n#555|

|{ 5553 }{ 555a }{ 555b }{ 555c }{ 555d }{ 555u }|\r\n#556|

|{ 556a }{ 506z }|\r\n#563|

|{ 5633 }{ 563a }{ 563u }|\r\n#565|

|{ 5653 }{ 565a }{ 565b }{ 565c }{ 565d }{ 565e }|\r\n#567|

|{ 567a }|\r\n#580|

|{ 580a }|\r\n#581|

|{ 5633 }{ 581a }{ 581z }|\r\n#584|

|{ 5843 }{ 584a }{ 584b }|\r\n#585|

|{ 5853 }{ 585a }|\r\n#586|

|{ 5863 }{ 586a }|\r\n#020|

|{ 020a }{ 020c }|\r\n#022|

|{ 022a }|\r\n#222| = |{ 222a }{ 222b }|\r\n#210| = |{ 210a }{ 210b }|\r\n#024|

|{ 024a }{ 024c }{ 024d }{ 0242 }|\r\n#027|

|{ 027a }|\r\n#028|

|{ 028a }{ 028b }|\r\n#013|

|{ 013a }{ 013b }{ 013c }{ 013d }{ 013e }{ 013f }|\r\n#030|

|{ 030a }|\r\n#037|

|{ 037a }{ 037b }{ 037c }{ 037f }{ 037g }{ 037n }|\r\n#010|

|{ 010a }|\r\n#015|

|{ 015a }{ 0152 }|\r\n#016|

|{ 016a }{ 0162 }|\r\n#600|

|{\\n6003 }{\\n600a}{ 600b }{ 600c }{ 600d }{ 600e }{ 600f }{ 600g }{ 600h }{--600k}{ 600l }{ 600m }{ 600n }{ 600o }{--600p}{ 600r }{ 600s }{ 600t }{ 600u }{--600x}{--600z}{--600y}{--600v}|\r\n#610|

|{\\n6103 }{\\n610a}{ 610b }{ 610c }{ 610d }{ 610e }{ 610f }{ 610g }{ 610h }{--610k}{ 610l }{ 610m }{ 610n }{ 610o }{--610p}{ 610r }{ 610s }{ 610t }{ 610u }{--610x}{--610z}{--610y}{--610v}|\r\n#611|

|{\\n6113 }{\\n611a}{ 611b }{ 611c }{ 611d }{ 611e }{ 611f }{ 611g }{ 611h }{--611k}{ 611l }{ 611m }{ 611n }{ 611o }{--611p}{ 611r }{ 611s }{ 611t }{ 611u }{--611x}{--611z}{--611y}{--611v}|\r\n#630|

|{\\n630a}{ 630b }{ 630c }{ 630d }{ 630e }{ 630f }{ 630g }{ 630h }{--630k }{ 630l }{ 630m }{ 630n }{ 630o }{--630p}{ 630r }{ 630s }{ 630t }{--630x}{--630z}{--630y}{--630v}|\r\n#648|

|{\\n6483 }{\\n648a }{--648x}{--648z}{--648y}{--648v}|\r\n#650|

|{\\n6503 }{\\n650a}{ 650b }{ 650c }{ 650d }{ 650e }{--650x}{--650z}{--650y}{--650v}|\r\n#651|

|{\\n6513 }{\\n651a}{ 651b }{ 651c }{ 651d }{ 651e }{--651x}{--651z}{--651y}{--651v}|\r\n#653|

|{ 653a }|\r\n#654|

|{\\n6543 }{\\n654a}{--654b}{--654x}{--654z}{--654y}{--654v}|\r\n#655|

|{\\n6553 }{\\n655a}{--655b}{--655x }{--655z}{--655y}{--655v}|\r\n#656|

|{\\n6563 }{\\n656a}{--656k}{--656x}{--656z}{--656y}{--656v}|\r\n#657|

|{\\n6573 }{\\n657a}{--657x}{--657z}{--657y}{--657v}|\r\n#658|

|{\\n658a}{--658b}{--658c}{--658d}{--658v}|\r\n#050|

|{ 050a }{ / 050b }|\r\n#082|

|{ 082a }{ / 082b }|\r\n#080|

|{ 080a }{ 080x }{ / 080b }|\r\n#070|

|{ 070a }{ / 070b }|\r\n#060|

|{ 060a }{ / 060b }|\r\n#074|

|{ 074a }|\r\n#086|

|{ 086a }|\r\n#088|

|{ 088a }|','70|10','OPAC ISBD','Textarea'), ('OpacItemLocation','callnum','callnum|ccode|location','Show the shelving location of items in the opac','Choice'), 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 a565f57..b74f19c 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 @@ -309,6 +309,13 @@ OPAC: holdingbranch: 'holding library' - "is the logged in user's library. The second tab will contain all other items." - + - pref: OPACHoldingsDefaultSortField + choices: + first_column: First column of the table + homebranch: Home library + holdingbranch: Holding library + - "is the default sort field for the holdings table" + - - pref: OpacSuggestionManagedBy choices: yes: Show 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 f64e3f1..696f3a4 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt @@ -1430,6 +1430,17 @@ }); [% END %] + [%# Note that there is no way atm to target a column with its class name to set it as the default sort order %] + [% IF Koha.Preference('OpacLocationBranchToDisplay') == 'home' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND item_level_itypes + OR Koha.Preference('OpacLocationBranchToDisplay') == 'holding' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'holdingbranch' AND item_level_itypes + OR Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND NOT item_level_itypes + OR Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'holdingbranch' AND item_level_itypes %] + var default_order_index = 1; + [% ELSIF Koha.Preference('OpacLocationBranchToDisplay') == 'both' AND Koha.Preference('OPACHoldingsDefaultSortField') == 'homebranch' AND item_level_itypes %] + var default_order_index = 2; + [% ELSE %] + var default_order_index = 0; + [% END %] $(".holdingst").dataTable($.extend(true, {}, dataTablesDefaults, { "aoColumns": [ [% IF ( item_level_itypes ) %]null,[% END %] @@ -1452,7 +1463,8 @@ null, [% END %] [% IF ( ShowCourseReservesHeader ) %]null,[% END %] - ] + ], + "aaSorting": [[ default_order_index, 'asc' ]] })); [% IF ( query_desc ) %][% IF ( OpacHighlightedWords ) %]var query_desc = "[% query_desc |replace("'", "\'") |replace('\n', '\\n') |replace('\r', '\\r') |html %]"; -- 2.7.4