adding a few missing sysprefs
[koha.git] / admin / systempreferences.pl
index 5fa34e5..773fbfe 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 
-#script to administer the systempref table
-#written 20/02/2002 by paul.poulain@free.fr
+# script to administer the systempref table
+# written 20/02/2002 by paul.poulain@free.fr
 # This software is placed under the gnu General Public License, v2 (http://www.gnu.org/licenses/gpl.html)
 
 # Copyright 2000-2002 Katipo Communications
@@ -45,11 +45,13 @@ use CGI;
 use C4::Auth;
 use C4::Context;
 use C4::Koha;
-use C4::Languages;
+use C4::Languages qw(getTranslatedLanguages);
 use C4::ClassSource;
 use C4::Output;
 use C4::Context;
 
+# use Smart::Comments;
+
 
 # FIXME, shouldnt we store this stuff in the systempreferences table? 
 
@@ -57,8 +59,15 @@ my %tabsysprefs;
 # Acquisitions
     $tabsysprefs{acquisitions}="Acquisitions";
     $tabsysprefs{gist}="Acquisitions";
+    $tabsysprefs{emailPurchaseSuggestions}="Acquisitions";
+
 # Admin
-    $tabsysprefs{dateformat}="Admin";
+    $tabsysprefs{singleBranchMode}="Admin";
+    $tabsysprefs{staffClientBaseURL}="Admin";
+    $tabsysprefs{Version}="Admin";
+    $tabsysprefs{OpacMaintenance}="Admin";
+    $tabsysprefs{FrameworksLoaded}="Admin";
+    $tabsysprefs{libraryAddress}="Admin";
     $tabsysprefs{delimiter}="Admin";
     $tabsysprefs{IndependantBranches}="Admin";
     $tabsysprefs{HomeOrHoldingBranch}="Admin";
@@ -71,36 +80,36 @@ my %tabsysprefs;
     $tabsysprefs{AutoLocation}="Admin";
     $tabsysprefs{DebugLevel}="Admin";
     $tabsysprefs{SessionStorage}="Admin";
+    $tabsysprefs{noItemTypeImages}="Admin";
+    $tabsysprefs{OPACBaseURL}="Admin";
 
 # Authorities
     $tabsysprefs{authoritysep}="Authorities";
     $tabsysprefs{AuthDisplayHierarchy}="Authorities";
     $tabsysprefs{dontmerge}="Authorities";
     $tabsysprefs{BiblioAddsAuthorities}="Authorities";
-# Catalogue
-    $tabsysprefs{advancedMARCEditor}="Catalogue";
-    $tabsysprefs{autoBarcode}="Catalogue";
-    $tabsysprefs{hide_marc}="Catalogue";
-    $tabsysprefs{IntranetBiblioDefaultView} = "Catalogue";
-    $tabsysprefs{ISBD}="Catalogue";
-    $tabsysprefs{itemcallnumber}="Catalogue";
-    $tabsysprefs{LabelMARCView}="Catalogue";
-    $tabsysprefs{marc}="Catalogue";
-    $tabsysprefs{marcflavour}="Catalogue";
-    $tabsysprefs{serialsadditems}="Catalogue";
-    $tabsysprefs{sortbynonfiling}="Catalogue";
-    $tabsysprefs{MARCOrgCode}="Catalogue";
-    $tabsysprefs{z3950AuthorAuthFields}="Catalogue";
-    $tabsysprefs{z3950NormalizeAuthor}="Catalogue";
-    $tabsysprefs{Stemming}="Catalogue";
-    $tabsysprefs{WeightFields}="Catalogue";
-    $tabsysprefs{expandedSearchOption}="Catalogue";
-    $tabsysprefs{NoZebra}="Catalogue";
-    $tabsysprefs{NoZebraIndexes}="Catalogue";
-    $tabsysprefs{ReceiveBackIssues}="Catalogue";
-    $tabsysprefs{DefaultClassificationSource}="Catalogue";
-    $tabsysprefs{RoutingSerials}="Catalogue";
-    $tabsysprefs{'item-level_itypes'}="Catalogue";
+# Cataloguing
+    $tabsysprefs{advancedMARCEditor}="Cataloguing";
+    $tabsysprefs{autoBarcode}="Cataloguing";
+    $tabsysprefs{hide_marc}="Cataloguing";
+    $tabsysprefs{IntranetBiblioDefaultView} = "Cataloguing";
+    $tabsysprefs{ISBD}="Cataloguing";
+    $tabsysprefs{itemcallnumber}="Cataloguing";
+    $tabsysprefs{LabelMARCView}="Cataloguing";
+    $tabsysprefs{marc}="Cataloguing";
+    $tabsysprefs{marcflavour}="Cataloguing";
+    $tabsysprefs{serialsadditems}="Cataloguing";
+    $tabsysprefs{MARCOrgCode}="Cataloguing";
+    $tabsysprefs{z3950AuthorAuthFields}="Cataloguing";
+    $tabsysprefs{z3950NormalizeAuthor}="Cataloguing";
+    $tabsysprefs{Stemming}="Cataloguing";
+    $tabsysprefs{WeightFields}="Cataloguing";
+    $tabsysprefs{NoZebra}="Cataloguing";
+    $tabsysprefs{NoZebraIndexes}="Cataloguing";
+    $tabsysprefs{ReceiveBackIssues}="Cataloguing";
+    $tabsysprefs{DefaultClassificationSource}="Cataloguing";
+    $tabsysprefs{RoutingSerials}="Cataloguing";
+    $tabsysprefs{'item-level_itypes'}="Cataloguing";
 
 # Circulation
     $tabsysprefs{maxoutstanding}="Circulation";
@@ -118,43 +127,78 @@ my %tabsysprefs;
     $tabsysprefs{ReservesNeedReturns}="Circulation";
     $tabsysprefs{CircAutocompl}="Circulation";
     $tabsysprefs{canreservefromotherbranches}="Circulation";
+    $tabsysprefs{finesMode}="Circulation";
+    $tabsysprefs{emailLibrarianWhenHoldIsPlaced}="Circulation";
+    $tabsysprefs{globalDueDate}="Circulation";
+    $tabsysprefs{holdCancelLength}="Circulation";
+    $tabsysprefs{itemBarcodeInputFilter}="Circulation";
+    $tabsysprefs{noOPACHolds}="Circulation";
+    $tabsysprefs{WebBasedSelfCheck}="Circulation";
+    $tabsysprefs{CircControl}="Circulation";
+    $tabsysprefs{finesCalendar}="Circulation";
+    $tabsysprefs{previousIssuesDefaultSortOrder}="Circulation";
+    $tabsysprefs{todaysIssuesDefaultSortOrder}="Circulation";
 
-# Intranet
-    $tabsysprefs{TemplateEncoding}="Intranet";
-    $tabsysprefs{template}="Intranet";
-    $tabsysprefs{intranetstylesheet}="Intranet";
-    $tabsysprefs{IntranetNav}="Intranet";
-    $tabsysprefs{intranetcolorstylesheet}="Intranet";
-    $tabsysprefs{intranetuserjs}="Intranet";
-       $tabsysprefs{yuipath}="Intranet";
-       $tabsysprefs{IntranetmainUserblock}="Intranet";
-       
-# Members
-    $tabsysprefs{automembernum}="Members";
-    $tabsysprefs{checkdigit}="Members";
-    $tabsysprefs{intranetreadinghistory}="Members";
-    $tabsysprefs{NotifyBorrowerDeparture}="Members";
-    $tabsysprefs{memberofinstitution}="Members";
-    $tabsysprefs{ReadingHistory}="Members";
-    $tabsysprefs{BorrowerMandatoryField}="Members";
-    $tabsysprefs{borrowerRelationship}="Members";
-    $tabsysprefs{BorrowersTitles}="Members";    
-    $tabsysprefs{patronimages}="Members";
-    $tabsysprefs{MinPasswordLength}="Members";
-    $tabsysprefs{uppercasesurnames}="Members";
-    $tabsysprefs{NoReturnSetLost}="Members";
-    $tabsysprefs{MaxFine}="Members";
-    $tabsysprefs{NotifyBorrowerDeparture}="Members";
-# FRBA
-       $tabsysprefs{FRBRizeEditions}="FRBR";
-       $tabsysprefs{XISBN}="FRBR";
-       $tabsysprefs{OCLCAffiliateID}="FRBR";
-       $tabsysprefs{XISBNDailyLimit}="FRBR";
-       $tabsysprefs{PINESISBN}="FRBR";
+# Staff Client
+    $tabsysprefs{TemplateEncoding}="StaffClient";
+    $tabsysprefs{template}="StaffClient";
+    $tabsysprefs{intranetstylesheet}="StaffClient";
+    $tabsysprefs{IntranetNav}="StaffClient";
+    $tabsysprefs{intranetcolorstylesheet}="StaffClient";
+    $tabsysprefs{intranetuserjs}="StaffClient";
+    $tabsysprefs{yuipath}="StaffClient";
+    $tabsysprefs{IntranetmainUserblock}="StaffClient";
+    
+# Patrons
+    $tabsysprefs{automembernum}="Patrons";
+    $tabsysprefs{checkdigit}="Patrons";
+    $tabsysprefs{intranetreadinghistory}="Patrons";
+    $tabsysprefs{NotifyBorrowerDeparture}="Patrons";
+    $tabsysprefs{memberofinstitution}="Patrons";
+    $tabsysprefs{ReadingHistory}="Patrons";
+    $tabsysprefs{BorrowerMandatoryField}="Patrons";
+    $tabsysprefs{borrowerRelationship}="Patrons";
+    $tabsysprefs{BorrowersTitles}="Patrons";    
+    $tabsysprefs{patronimages}="Patrons";
+    $tabsysprefs{MinPasswordLength}="Patrons";
+    $tabsysprefs{uppercasesurnames}="Patrons";
+    $tabsysprefs{NoReturnSetLost}="Patrons";
+    $tabsysprefs{MaxFine}="Patrons";
+    $tabsysprefs{NotifyBorrowerDeparture}="Patrons";
+
+# FRBR
+    $tabsysprefs{FRBRizeEditions}="FRBR";
+    $tabsysprefs{XISBN}="FRBR";
+    $tabsysprefs{OCLCAffiliateID}="FRBR";
+    $tabsysprefs{XISBNDailyLimit}="FRBR";
+    $tabsysprefs{PINESISBN}="FRBR";
     $tabsysprefs{ThingISBN}="FRBR";
     $tabsysprefs{OPACFRBRizeEditions}="FRBR";
     $tabsysprefs{XISBNAmazonSimilarItems}="FRBR";
 
+# I18N/L10N
+    $tabsysprefs{dateformat}="I18N/L10N";
+    $tabsysprefs{opaclanguages}="I18N/L10N";
+    $tabsysprefs{opacthemes}="I18N/L10N";
+    $tabsysprefs{language}="I18N/L10N";
+
+# Searching
+    $tabsysprefs{defaultSortField}="Searching";
+    $tabsysprefs{defaultSortOrder}="Searching";
+    $tabsysprefs{maxItemsInSearchResults}="Searching";
+    $tabsysprefs{numSearchResults}="Searching";
+    $tabsysprefs{OPACdefaultSortField}="Searching";
+    $tabsysprefs{OPACdefaultSortOrder}="Searching";
+    $tabsysprefs{OPACItemsResultsDisplay}="Searching";
+    $tabsysprefs{OPACnumSearchResults}="Searching";
+    $tabsysprefs{QueryFuzzy}="Searching";
+    $tabsysprefs{QueryStemming}="Searching";
+    $tabsysprefs{QueryWeightFields}="Searching";
+    $tabsysprefs{expandedSearchOption}="Searching";
+    $tabsysprefs{sortbynonfiling}="Searching";
+    $tabsysprefs{QueryAutoTruncate}="Searching";
+    $tabsysprefs{QueryRemoveStopwords}="Searching";
+
 # OPAC
     $tabsysprefs{AmazonAssocTag}="OPAC";
     $tabsysprefs{AmazonSimilarItems}="OPAC";
@@ -165,7 +209,6 @@ my %tabsysprefs;
     $tabsysprefs{LibraryName}="OPAC";
     $tabsysprefs{opaccolorstylesheet}="OPAC";
     $tabsysprefs{opaccredits}="OPAC";
-    $tabsysprefs{opaclanguages}="OPAC";
     $tabsysprefs{opaclargeimage}="OPAC";
     $tabsysprefs{opaclayoutstylesheet}="OPAC";
     $tabsysprefs{OpacNav}="OPAC";
@@ -177,9 +220,19 @@ my %tabsysprefs;
     $tabsysprefs{opacheader}="OPAC";
     $tabsysprefs{OPACAmazonSimilarItems}="OPAC";
     $tabsysprefs{OPACXISBNAmazonSimilarItems}="OPAC";
-    
+
+    $tabsysprefs{hideBiblioNumber}="OPAC";
+    $tabsysprefs{noOPACUserLogin}="OPAC";
+    $tabsysprefs{OPACDisplayExtendedSubInfo}="OPAC";
+    $tabsysprefs{OpacMainUserBlock}="OPAC";
+    $tabsysprefs{OPACSubscriptionDisplay}="OPAC";
+    $tabsysprefs{OPACURLOpenInNewWindow}="OPAC";
+    $tabsysprefs{OPACUserCSS}="OPAC";
+    $tabsysprefs{OPACViewOthersSuggestions}="OPAC";
+    $tabsysprefs{URLLinkText}="OPAC";
+
 # OPACFeatures
-       $tabsysprefs{SearchMyLibraryFirst}="OPACFeatures";
+    $tabsysprefs{SearchMyLibraryFirst}="OPACFeatures";
     $tabsysprefs{Disable_Dictionary}="OPACFeatures";
     $tabsysprefs{hidelostitems}="OPACFeatures";
     $tabsysprefs{opacbookbag}="OPACFeatures";
@@ -216,8 +269,24 @@ sub StringSearch  {
     my $count=@data;
     my @results;
     my $cnt=0;
-    if ($type){
-        foreach my $syspref (sort keys %tabsysprefs){
+
+    # used for doing a plain-old sys-pref search
+    if ($type eq 'all' ){
+        my $sth=$dbh->prepare("SELECT * FROM systempreferences 
+                WHERE variable LIKE ? OR explanation LIKE ? 
+                ORDER BY VARIABLE");
+        $sth->execute("%$searchstring%", "%$searchstring%");
+        while (my $data=$sth->fetchrow_hashref){
+            $data->{value} =~ s/</&lt;/g;
+            $data->{value} =~ s/>/&gt;/g;
+            $data->{value}=substr($data->{value},0,100)."..." if length($data->{value}) >100;
+            push(@results,$data);
+            $cnt++;
+        }
+        $sth->finish;
+
+    }  elsif ($type){
+        foreach my $syspref (sort { lc $a cmp lc $b } keys %tabsysprefs){
             if ($tabsysprefs{$syspref} eq $type){
                 my $sth=$dbh->prepare("Select variable,value,explanation,type,options from systempreferences where (variable like ?) order by variable");
                 $sth->execute($syspref);
@@ -343,6 +412,8 @@ if ($op eq 'add_form') {
         $data=$sth->fetchrow_hashref;
         $sth->finish;
         $template->param(modify => 1);
+        # save tab to return to if user cancels edit
+        $template->param(return_tab => $tabsysprefs{$searchfield});
     }
 
     my @options;
@@ -411,11 +482,11 @@ if ($op eq 'add_form') {
             $currently_selected_languages->{$language}=1;
             $counter++;
         }
-               my $langavail = getTranslatedLanguages();
+        my $langavail = getTranslatedLanguages();
         foreach my $language (@$langavail) {
             my $selected='0';
             next if $currently_selected_languages->{$language->{'language_code'}};
-                       #FIXME: could add language_name and language_locale_name for better display
+            #FIXME: could add language_name and language_locale_name for better display
             push @options, { option => $language->{'language_code'}, counter => $counter };
             $counter++;
         }
@@ -473,12 +544,13 @@ if ($op eq 'add_form') {
     my $sth=$dbh->prepare("delete from systempreferences where variable=?");
     $sth->execute($searchfield);
     $sth->finish;
+
                                                     # END $OP eq DELETE_CONFIRMED
 ################## DEFAULT ##################################
 } else { # DEFAULT
     #Adding tab management for system preferences
     my $tab=$input->param('tab');
-    
+    $template->param($tab => 1);
     my ($count,$results)=StringSearch($searchfield,$tab);
     my $toggle=0;
     my @loop_data = ();
@@ -491,15 +563,15 @@ if ($op eq 'add_form') {
         my %row_data;  # get a fresh hash for the row data
         $row_data{variable} = $results->[$i]{'variable'};
         $row_data{value} = $results->[$i]{'value'};
-               $row_data{yes} = 1 if ($results->[$i]{'value'} == 1);
-               $row_data{yesno} = 1 if ($results->[$i]{'type'} eq 'YesNo');
+        $row_data{yes} = 1 if ($results->[$i]{'value'} == 1);
+        $row_data{yesno} = 1 if ($results->[$i]{'type'} eq 'YesNo');
         $row_data{explanation} = $results->[$i]{'explanation'};
         $row_data{toggle} = $toggle;
         $row_data{edit} = "$script_name?op=add_form&amp;searchfield=".$results->[$i]{'variable'};
         $row_data{delete} = "$script_name?op=delete_confirm&amp;searchfield=".$results->[$i]{'variable'};
         push(@loop_data, \%row_data);
     }
-    $tab=($tab?$tab:"Others");
+    $tab=($tab?$tab:"Local Use");
     $template->param(loop => \@loop_data, $tab => 1);
     if ($offset>0) {
         my $prevpage = $offset-$pagesize;