Bug 8597: Add system preferences to configure the mobile view.
authorFrédérick <frederick.capovilla@libeo.com>
Mon, 13 Aug 2012 16:29:35 +0000 (12:29 -0400)
committerPaul Poulain <paul.poulain@biblibre.com>
Tue, 18 Sep 2012 11:42:18 +0000 (13:42 +0200)
This patch adds the following system preferences:
* OpacMainUserBlockMobile - alternate content for the MainUserBlock for
  mobile
* OPACMobileUserCSS - custom CSS for mobile views only
* OpacShowFiltersPulldownMobile - whether or not to show the index
  dropdown on the mobile view
* OpacShowLibrariesPulldownMobile - whether or not to show the library
  dropdown on the mobile view

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
C4/Auth.pm
installer/data/mysql/sysprefs.sql
installer/data/mysql/updatedatabase.pl
koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
koha-tmpl/opac-tmpl/ccsr/en/css/mobile.css
koha-tmpl/opac-tmpl/ccsr/en/css/opac.css
koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc
koha-tmpl/opac-tmpl/ccsr/en/includes/masthead.inc
koha-tmpl/opac-tmpl/prog/en/css/opac.css
koha-tmpl/opac-tmpl/prog/en/includes/doc-head-close.inc
koha-tmpl/opac-tmpl/prog/en/modules/opac-main.tt

index 59c9955..d4ad292 100644 (file)
@@ -402,6 +402,7 @@ sub get_template_and_user {
             OpacShowRecentComments    => C4::Context->preference("OpacShowRecentComments"),
             OPACURLOpenInNewWindow    => "" . C4::Context->preference("OPACURLOpenInNewWindow"),
             OPACUserCSS               => "". C4::Context->preference("OPACUserCSS"),
+            OPACMobileUserCSS         => "". C4::Context->preference("OPACMobileUserCSS"),
             OPACViewOthersSuggestions => "" . C4::Context->preference("OPACViewOthersSuggestions"),
             OpacAuthorities           => C4::Context->preference("OpacAuthorities"),
             OPACBaseURL               => ($in->{'query'}->https() ? "https://" : "http://") . $ENV{'SERVER_NAME'} .
@@ -413,6 +414,9 @@ sub get_template_and_user {
             OpacCloud                 => C4::Context->preference("OpacCloud"),
             OpacKohaUrl               => C4::Context->preference("OpacKohaUrl"),
             OpacMainUserBlock         => "" . C4::Context->preference("OpacMainUserBlock"),
+            OpacMainUserBlockMobile   => "" . C4::Context->preference("OpacMainUserBlockMobile"),
+            OpacShowFiltersPulldownMobile => C4::Context->preference("OpacShowFiltersPulldownMobile"),
+            OpacShowLibrariesPulldownMobile => C4::Context->preference("OpacShowLibrariesPulldownMobile"),
             OpacNav                   => "" . C4::Context->preference("OpacNav"),
             OpacNavRight              => "" . C4::Context->preference("OpacNavRight"),
             OpacNavBottom             => "" . C4::Context->preference("OpacNavBottom"),
index d1d2ab5..4b4bf77 100644 (file)
@@ -375,3 +375,7 @@ INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('
 INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AgeRestrictionOverride',0,'Allow staff to check out an item with age restriction.',NULL,'YesNo');
 INSERT INTO systempreferences (variable,value,explanation,type) VALUES('DidYouMeanFromAuthorities','0','Suggest searches based on authority file.','YesNo');
 INSERT INTO systempreferences (variable,value,options,explanation,type) VALUES ('IncludeSeeFromInSearches','0','','Include see-from references in searches.','YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OPACMobileUserCSS','','Include the following CSS for the mobile view on all pages in the OPAC:',NULL,'free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacMainUserBlockMobile','','Show the following HTML in its own column on the main page of the OPAC (mobile version):',NULL,'free');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowLibrariesPulldownMobile','1','Show the libraries pulldown on the mobile version of the OPAC.',NULL,'YesNo');
+INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowFiltersPulldownMobile','1','Show the search filters pulldown on the mobile version of the OPAC.',NULL,'YesNo');
index a25469e..7c9d936 100755 (executable)
@@ -5681,6 +5681,7 @@ if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
     "INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES ('SubfieldsToUseWhenPrefill','','Define a list of subfields to use when prefilling items (separated by space)','','Free');
     ");
     print "Upgrade to $DBversion done (Adding PrefillItem and SubfieldsToUseWhenPrefill sysprefs)\n";
+    SetVersion ($DBversion);
 }
 
 $DBversion = "3.09.00.036";
@@ -5693,6 +5694,16 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
     $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('AgeRestrictionOverride',0,'Allow staff to check out an item with age restriction.',NULL,'YesNo')");
 
     print "Upgrade to $DBversion done (Add colum agerestriction to biblioitems and deletedbiblioitems, add system preferences AgeRestrictionMarker and AgeRestrictionOverride)\n";
+   SetVersion ($DBversion);
+}
+
+$DBversion ="XXX";
+if(C4::Context->preference("Version") < TransformToNum($DBversion) ) {
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OPACMobileUserCSS','','Include the following CSS for the mobile view on all pages in the OPAC:',NULL,'free');");
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacMainUserBlockMobile','','Show the following HTML in its own column on the main page of the OPAC (mobile version):',NULL,'free');");
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowLibrariesPulldownMobile','1','Show the libraries pulldown on the mobile version of the OPAC.',NULL,'YesNo');");
+    $dbh->do("INSERT INTO systempreferences (variable,value,explanation,options,type) VALUES('OpacShowFiltersPulldownMobile','1','Show the search filters pulldown on the mobile version of the OPAC.',NULL,'YesNo');");
+    print "Upgrade to $DBversion done (Add OPACMobileUserCSS, OpacMainUserBlockMobile, OpacShowLibrariesPulldownMobile and OpacShowFiltersPulldownMobile sysprefs)\n";
     SetVersion($DBversion);
 }
 
index 4df81b4..e645785 100644 (file)
@@ -162,11 +162,33 @@ OPAC:
             - pref: OPACUserCSS
               type: textarea
               class: code
+        -
+            - "Include the following CSS for the mobile view on all pages in the OPAC:"
+            - pref: OPACMobileUserCSS
+              type: textarea
+              class: code
         -
             - "Show the following HTML in its own column on the main page of the OPAC:"
             - pref: OpacMainUserBlock
               type: textarea
               class: code
+        -
+            - "Show the following HTML in its own column on the main page of the OPAC (mobile version):"
+            - pref: OpacMainUserBlockMobile
+              type: textarea
+              class: code
+        -
+            - pref: OpacShowLibrariesPulldownMobile
+              choices:
+                  yes: Show
+                  no: "Don't show"
+            - the libraries pulldown on the mobile version of the OPAC.
+        -
+            - pref: OpacShowFiltersPulldownMobile
+              choices:
+                  yes: Show
+                  no: "Don't show"
+            - the search filters pulldown on the mobile version of the OPAC.
         -
             - "Show the following HTML on the left hand column of the main page and patron account on the OPAC (generally navigation links):"
             - pref: OpacNav
index 7917e77..58da8bd 100644 (file)
@@ -5,9 +5,11 @@
 
 /* Hidden elements */
 
+.mobile-hidden,
 body#opac-main #login,
 body#opac-main #login~div,
 body#opac-main #opacnav,
+body#opac-main #opacmainuserblock,
 body#opac-main #news,
 body#results #facetcontainer,
 body#opac-detail #ulactioncontainer>:not(#action),
@@ -99,14 +101,15 @@ body#results #breadcrumbs>*{
 
 /* Main */
 
-body#opac-main #opacmainuserblock {
-    padding: 0
-}
-
 body#opac-main #container #ctn_lt{
     padding: 15px;
 }
 
+body#opac-main #opacmainuserblockmobile {
+    display: block;
+}
+
+
 
 /* Results */
 
@@ -257,30 +260,29 @@ form#searchform {
     padding-top: 50px;
 }
 
-form.single-library #filters .jqTransformSelectWrapper {
+form#searchform #filters .jqTransformSelectWrapper,
+form#searchform #libraries .jqTransformSelectWrapper {
     position: relative;
-    width: 100% !important;
     left: 0;
     top: 0;
     border-radius: 3px;
 }
 
 form.multi-libraries #filters .jqTransformSelectWrapper{
-    position: relative;
     width: 49% !important;
     float: left;
-    top: 0px;
-    left: 0px;
-    border-radius: 3px;
 }
 
 form.multi-libraries #libraries .jqTransformSelectWrapper{
-    position: relative;
     width: 49% !important;
     float: right;
-    top: 0px;
-    left: 0px;
-    border-radius: 3px;
+}
+
+form.single-library #filters .jqTransformSelectWrapper,
+form.multi-libraries.single-field-mobile #filters .jqTransformSelectWrapper,
+form.multi-libraries.single-field-mobile #libraries .jqTransformSelectWrapper{
+    width: 100% !important;
+    float:left;
 }
 
 form.multi-libraries .input-wrapper{
index 413d547..d235584 100644 (file)
@@ -2620,6 +2620,10 @@ ul.ui-tabs-nav li {
     box-shadow: 1px 1px 3px 0 #666;
 }
 
+body#opac-main #opacmainuserblockmobile {
+    display: none;
+}
+
 .mobile_only {
    display : none;
 }
index e733dbd..5b6981d 100644 (file)
@@ -22,6 +22,7 @@
 <link rel="stylesheet" type="text/css" media="print" href="[% themelang %]/css/print.css" />
 <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
 <link rel="stylesheet" type="text/css" media="screen and (max-width:700px)" href="[% themelang %]/css/mobile.css" />
+[% IF ( OPACMobileUserCSS ) %]<style type="text/css" media="screen and (max-width:700px)">[% OPACMobileUserCSS %]</style>[% END %]
 [% IF ( OPACUserCSS ) %]<style type="text/css">[% OPACUserCSS %]</style>[% END %]
 <!-- yui js -->
 <script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script>
index 6eec70c..79a1219 100644 (file)
 
 [% IF ( OpacPublic ) %]
 <div id="fluid-offset">
-[% UNLESS ( advsearch ) %]<form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="[% IF ( OpacAddMastheadLibraryPulldown ) %]multi-libraries[% ELSE %]single-library[% END %]">
+[% UNLESS ( advsearch ) %]
+[% IF ( OpacAddMastheadLibraryPulldown ) %]
+    [% IF ( OpacShowFiltersPulldownMobile and not OpacShowLibrariesPulldownMobile ) or ( not OpacShowFiltersPulldownMobile and OpacShowLibrariesPulldownMobile ) %]
+        <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="multi-libraries single-field-mobile">
+    [% ELSE %]
+        <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="multi-libraries">
+    [% END %]
+[% ELSE %]
+    <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="single-library">
+[% END %]
     <label for="masthead_search" class="left"> Search
     [% UNLESS ( OpacAddMastheadLibraryPulldown ) %]
             [% IF ( mylibraryfirst ) %] (in [% mylibraryfirst %] only)[% END %]
     [% END %]
     </label>
-
-    <div id="filters">
+    [% IF ( OpacShowFiltersPulldownMobile ) %]
+        <div id="filters">
+    [% ELSE %]
+        <div id="filters" class="mobile-hidden">
+    [% END %]
     <select name="idx" id="masthead_search" class="left">
     [% IF ( ms_kw ) %]
         <option selected="selected" value="">Library catalog</option>
 </div>
 
    [% IF ( OpacAddMastheadLibraryPulldown ) %]
-    <div id="libraries">
+        [% IF ( OpacShowLibrariesPulldownMobile ) %]
+            <div id="libraries">
+        [% ELSE %]
+            <div id="libraries" class="mobile-hidden">
+        [% END %]
       <select name="limit" id="select_library" class="left">
          <option value="">All libraries</option>
          [% FOREACH BranchesLoo IN BranchesLoop %]
 
     </form>
 [% ELSE %] <!--advsearch -->
-<form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="[% IF ( OpacAddMastheadLibraryPulldown ) %]multi-libraries[% ELSE %]single-library[% END %]">
+    [% IF ( OpacAddMastheadLibraryPulldown ) %]
+        [% IF ( OpacShowFiltersPulldownMobile and not OpacShowLibrariesPulldownMobile ) or ( not OpacShowFiltersPulldownMobile and OpacShowLibrariesPulldownMobile ) %]
+            <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="multi-libraries single-field-mobile">
+        [% ELSE %]
+            <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="multi-libraries">
+        [% END %]
+    [% ELSE %]
+        <form name="searchform" method="get" action="/cgi-bin/koha/opac-search.pl" id="searchform" class="single-library">
+    [% END %]
     <label for="masthead_search" class="left"> Search
     [% UNLESS ( OpacAddMastheadLibraryPulldown ) %]
             [% IF ( mylibraryfirst ) %] (in [% mylibraryfirst %] only)[% END %]
     [% END %]
     </label>
-
-    <div id="filters" class="transparent">
+    [% IF ( OpacShowFiltersPulldownMobile ) %]
+        <div id="filters" class="transparent">
+    [% ELSE %]
+        <div id="filters" class="transparent mobile-hidden">
+    [% END %]
         <select name="idx" id="masthead_search" class="left" disabled="disabled">
             <option selected="selected" value="">Library Catalog</option>
         </select>
 </div>
 
    [% IF ( OpacAddMastheadLibraryPulldown ) %]
-        <div id="libraries">
+        [% IF ( OpacShowLibrariesPulldownMobile ) %]
+            <div id="libraries">
+        [% ELSE %]
+            <div id="libraries" class="mobile-hidden">
+        [% END %]
           <select name="limit" id="select_library" class="left transparent">
              <option value="">All Libraries</option>
           </select>
index 9611ff7..2c756e8 100644 (file)
@@ -2747,6 +2747,10 @@ ul.ui-tabs-nav li {
     display: inline;
 }
 
+body#opac-main #opacmainuserblockmobile {
+    display: none;
+}
+
 .mobile_only {
    display : none;
 }
index 1ea41be..f032b20 100644 (file)
@@ -22,6 +22,7 @@
     <link rel="stylesheet" type="text/css" href="[% themelang %]/css/[% opac_css_override %]" />
 [% END %]
 <link rel="stylesheet" type="text/css" media="print" href="[% themelang %]/css/print.css" />
+[% IF ( OPACMobileUserCSS ) %]<style type="text/css" media="screen and (max-width:700px)">[% OPACMobileUserCSS %]</style>[% END %]
 [% IF ( OPACUserCSS ) %]<style type="text/css">[% OPACUserCSS %]</style>[% END %]
 <!-- yui js --> 
 <script type="text/javascript" src="[% yuipath %]/utilities/utilities.js"></script> 
index d291b2a..cc67ff2 100644 (file)
@@ -37,6 +37,7 @@
 [% END %]
 
        [% IF ( OpacMainUserBlock ) %]<div id="opacmainuserblock" class="container">[% OpacMainUserBlock %]</div>[% END %]
+ [% IF ( OpacMainUserBlockMobile ) %]<div id="opacmainuserblockmobile" class="container">[% OpacMainUserBlockMobile %]</div>[% END %]
 
 </div>