diff --git a/devops/i18n-merge.sh b/devops/i18n-merge.sh index 2dafe51188842c1a773d98377d6ae3500002850c..9f9a20e0e0186a9225438133f61a32040f3ada06 100755 --- a/devops/i18n-merge.sh +++ b/devops/i18n-merge.sh @@ -20,14 +20,34 @@ # this script merges token files and removes unused / duplicate tokens with parent and target translation file *.ini # assumes You are in projects base dir +# if new translations are on alpha, first copy files via: +# scp -r [user]@139.18.19.237:/usr/local/vufind/[instance]/[issue_number]/data/i18n/languages /[path_to_instance_directory]/data/i18n/languages + +Help() +{ + # Display Help + echo "Usage: $0 path/to/language/with/new/tokens path/to/language/file/of/instance [path/to/parent/file/of/instance]" + echo "example command 1: \"devops/i18n-merge.sh data/i18n/languages/de.ini de_zi4/languages/de.ini local/languages/de.ini\""; + echo "if new translations are on alpha, first copy files via: scp -r [user]@139.18.19.237:/usr/local/vufind/[instance]/[issue_number]/data/i18n/languages /[path_to_instance_directory]/data/i18n/languages" +} + +while getopts ":h" option; do + case $option in + h) # display Help + Help + exit;; + \?) # incorrect option + echo "Error: Invalid option" + exit 1; + esac +done + CACHE_FILE=$1; INSTANCE_FILE=$2; PARENT_FILE=$3; HAS_ERROR=0; if [ -z "$CACHE_FILE" ] || [ -z "$INSTANCE_FILE" ]; then - SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - HAS_ERROR=1 - echo "Usage: $0 path/to/language/with/new/tokens path/to/language/file/of/instance [path/to/parent/file/of/instance]" - echo "example command 1: \"devops/i18n-merge.sh data/i18n/languages/de.ini de_zi4/languages/de.ini local/languages/de.ini\""; + Help + exit 1; else if [ ! -f "$CACHE_FILE" ] then @@ -38,6 +58,12 @@ else then echo "Language File "$INSTANCE_FILE" does not exist on your filesystem."; HAS_ERROR=1; fi + + if [ ${CACHE_FILE##*/} != ${INSTANCE_FILE##*/} ] + then + echo "Cache file "$CACHE_FILE" and language file "$INSTANCE_FILE" must have same file name."; + HAS_ERROR=1; + fi fi if [ -z "$CACHE_FILE" ]; then @@ -45,11 +71,21 @@ if [ -z "$CACHE_FILE" ]; then echo "Parent Language File "$PARENT_FILE" does not exist on your filesystem."; HAS_ERROR=1; fi + if [ ${CACHE_FILE##*/} != ${PARENT_FILE##*/} ]; then + echo "Cache file "$CACHE_FILE" and parent file "$PARENT_FILE" must have same file name."; + HAS_ERROR=1; + fi +fi + +if [ ! -z "$PARENT_FILE" ]; then + if [ ${INSTANCE_FILE##*/} != ${PARENT_FILE##*/} ]; then + echo "Instance file "$INSTANCE_FILE" and parent file "$PARENT_FILE" must have same file name."; + HAS_ERROR=1; + fi fi if [ $HAS_ERROR = 1 ] then - #echo "exit 1: aborting" exit 1; fi @@ -58,10 +94,12 @@ declare -A newTokens declare -a newTokensOrder while IFS= read -r line || [ -n "$line" ] # handle possible missing newline in last line do - key=$(echo "$line" | awk -F: '{ st = index($0,"=");print substr($0,0,st-1)}') - value=$(echo "$line" | awk -F: '{ st = index($0,"=");print substr($0,st+1)}') - newTokens["$key"]="$value" - newTokensOrder+=("$key"); + if [ ! -z "$line" ]; then # ignore empty lines + key=$(echo "$line" | awk -F: '{ st = index($0,"=");print substr($0,0,st-1)}') + value=$(echo "$line" | awk -F: '{ st = index($0,"=");print substr($0,st+1)}') + newTokens["$key"]="$value" + newTokensOrder+=("$key"); + fi done < $CACHE_FILE echo "Reading and minify existing tokens from $INSTANCE_FILE" diff --git a/local/config/vufind/searches.ini b/local/config/vufind/searches.ini index 82440759a23ef798b0fbd54f85784c6f4c0e66d8..d55eda57d759b3414ead0fb607a0c3028421fd3f 100644 --- a/local/config/vufind/searches.ini +++ b/local/config/vufind/searches.ini @@ -133,7 +133,6 @@ Author = Author ISN = "ISBN/ISSN" Signatur = "Call Number" Barcode = Barcode -tag = Tag ; This section defines which search options will be included on the advanced ; search screen. All the notes above [Basic_Searches] also apply here. diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index 40b481986aa08dd0ab481261e1f8250a95a8dc6c..fb499209ebb4c3333a6ea0eede93fa1f250363a0 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -125,6 +125,14 @@ trait SolrMarcFincTrait '609' => ['a'] ]; + // access status mappings for subfield $7 + $accessStatusMapping = [ + '0' => 'Open', + '1' => 'Restricted', + 'u' => 'unspecified', + 'z' => 'Other' + ]; + foreach ($fieldsToCheck as $field => $subfields) { $urls = $this->getMarcRecord()->getFields($field); $resultsPerIndicator2 = []; @@ -172,10 +180,17 @@ trait SolrMarcFincTrait } } + $sub7 = $url->getSubfield("7"); + if ($sub7) { + $accessStatus = $sub7->getData(); + } + $resultsPerIndicator2[$indicator2][$isil][] = [ 'url' => $address, 'desc' => $desc, 'indicators' => $indicator1 . $indicator2, + 'accessStatus' => isset($accessStatus) + ? $accessStatusMapping[$accessStatus] : '', ]; } if ($field == '609') {